[R] wrap long lines in table using "latex" in Hmisc

Sharpie chuck at sharpsteen.net
Sat Feb 27 00:18:12 CET 2010



Ista Zahn wrote:
> 
> Hi Tao,
> Just set the appropriate *.just argument, e.g.:
> 
> Dat <- data.frame(x1 = rep("this value consists of a long string of
> text", 5), x2 = rep("this value consists of an even longer string of
> text", 5))
> 
> library(Hmisc)
> latex(Dat, col.just = rep("p{1in}",  2))
> 
> You can also set justification for column headings, column group
> headings etc. See ?latex for details.
> 
> Best,
> Ista
> 
> 

As Ista said, you can use the p{}, m{} and b{} LaTeX column specifications
to create a table column that enforces a line wrap on it's contents.  See: 

  http://en.wikibooks.org/wiki/LaTeX/Tables#The_tabular_environment

for full details.

However, one problem with using say, p{2in}, is that the text is set *fully
justified*.  This means that the inter-word spacing in each line is expanded
so that the line fully occupies the allotted 2 inches of space.  For some
tables the results are a typographical travesty.

The solution is to prepend a ">{justificationCommand}" to your column
specification, such as:

  >{\centering}p{2in}

The justification commands you can use are :

  \centering    -> Centers wrapped text
  \raggedright -> *left* aligns wrapped text
  \raggedleft   -> *right* aligns wrapped text

Remember to double the backslash if you are passing this command as an
argument in R.

This trick will cause a LaTeX compilation error if used to specify the
right-most column in a table, unless the hmisc latex() command produces
tables that use "\tabularnewline" to invoke table row breaks instead of
"\\".

Hope this helps.

-Charlie
-- 
View this message in context: http://n4.nabble.com/wrap-long-lines-in-table-using-latex-in-Hmisc-tp1571298p1571496.html
Sent from the R help mailing list archive at Nabble.com.



More information about the R-help mailing list