使用knitr

时间:2016-07-13 08:33:45

标签: r latex knitr

我正在使用knitr包编写PDF文档。我在数据帧中有几个长字符串(一些句子)。我只想在PDF文档中制作这些句子的简单xtable。

但我有两个问题:

1)我看不到口音(我是法语,所以我的句子中有很多)。因此,我尝试将é替换为\'{e}以示例(我为其他重音项做了)。这是一个例子:

> string<-"Compétences et gentillese remarquables."
> string<-gsub("é","\\'{e}",string)
> string
[1] "Comp'{e}tences et gentillese remarquables."

我没有任何反斜杠......这在我的xtable中无效。

2)对于我的大部分字符串,它太长了,它们溢出右边的页面。有没有办法(使用latex或使用xtable命令)指定我想在表中自动换行?这是我想要做的一个例子:

<<echo=FALSE,results="asis">>=
  xtab<-data.frame(c(
    "A very very very very very very very very very very very very very very very very very very very very very very very long string that could be so much longer",
    "Another very very very very very very very very very very very very very very very very very very very very very very very long string"))
  print.xtable(xtab)
@

PS:我不能直接使用{tabular},因为我的数据(句子)早先取决于闪亮的应用用户的输入,所以当我写.rnw时,我不知道有多少个文件。

1 个答案:

答案 0 :(得分:0)

这是两个独立的问题。

问题1:口音不可见。

解决方案:使用UTF-8对文档进行编码,并将(至少)\usepackage[utf8]{inputenc}添加到前导码中,例如, Wikibooks: Special Characters

问题2:在表格中换行。

解决方案:使用段落列类型(pmb,请参阅here)。例如,p{5cm}生成一个宽度为5厘米的文本换行列。 align的{​​{1}}参数允许指定这样的列类型:

xtable

完整代码(原谅我滥用口音;仅供演示):

print.xtable(xtable(xtab, align = c("l", "p{5cm}"))) # row names aligned left, second column 5cm wide