繁体   English   中英

如何通过LaTeX将字符串列表添加到使用R脚本生成的PDF中

[英]How to add a list of strings to a PDF generated with a R script via LaTeX

我有一个包含调查结果的数据集,其中一栏可以包含调查参与者的评论。 如果受访者未发表评论,则相应单元格为空。 我编写了一个R脚本,以生成带有数字和表格的PDF,以显示调查结果。 作为结果的一部分,我希望有一页将上述注释作为列表打印出来。

我尝试了以下代码来做到这一点:

{r, echo=FALSE}
cat(df$comments[!is.na(df$comments)], sep="\n")

基本上,此代码可以按预期工作,但不幸的是,注释过长超出了页边距。 在这种情况下是否有可能包含换行符。

现在,我为自己提供了以下内联代码片段的列表:

`r df$comments[!is.na(df$comments)][1]`
`r df$comments[!is.na(df$comments)][2]`
...etc.

与第一个提到的代码相反,这可以正常工作。 因此,我认为代码块的格式就是问题所在。 由于第二个代码仅在我事先知道注释数的情况下才有效,所以这并不是一个可持续的解决方案。

这可能是块选项results可以帮助的。 LaTeX文档中的results = 'asis'将输出更改为LaTeX文本而不是等宽代码块。 有关更多选项,请参见此处

我假设您正在使用.rmd和pandoc来生成此PDF。

我建议使用R中易于使用的表函数之一(例如xtable或kable)将注释数组写为乳胶表。 使用kable,您可以使用'width'参数来定义列宽,并且作为副作用,可以使用'p'属性(即文本换行)来格式化表格。 例如,考虑以下最小Rmd文件:

---
output:
    output: pdf_document
    latex_engine: xelatex
header-includes:
   - \usepackage{colortbl} 
---
```{r setup, include=FALSE}
library(lipsum, kableExtra)
```
```{r}
set.seed(3)
df <- data.frame(text=replicate(4, lipsum::sentence()))
kable(df, "latex")  %>%
column_spec(., 1, width = "3in")  
```

随机文字评论

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM