Roa*_*ark 7 markdown latex xtable pandoc knitr
我在Rstudio中使用Knitr来生成markdown文件.我通过xtable包显示表格,它在html文件中很好地显示.但是,当我通过pandoc将.md转换为latex时 - latex文件不包含应该包含的表,而只包含表中没有任何命令的值.
为了给出更好的想法,下表提供了数据行的示例:
```{r table, results='asis', echo=FALSE}
r = read.table("C:/aR_files/data.txt",sep=",", header=TRUE,as.is=TRUE)
r$X = NULL;
print(xtable(r), type='html')
```
Run Code Online (Sandbox Code Playgroud)
In order to give a better idea, the following table provides a sample of
data rows:
Row1
Row2
Val1
Val1
Run Code Online (Sandbox Code Playgroud)
我以为我可能会错过一个乳胶包,所以我下载了ctable.sty,但我仍然得到相同的输出.任何想法都赞赏,谢谢!
我使用与您非常相似的工作流程,您最好的选择是放弃经常笨重的xtable
包裹并使用pander
包装打印您的桌子.您可以将任何可能要显示的对象包装为泛型pander()
函数中的表.这是pandoc.table()
函数的包装器,它有几个选项.如果您指定选项,style = "XXX"
您可以在此处实现您的要求.有4种不同的款式可供选择; "multiline"(默认值),"grid","simple"或"rmarkdown".我经常在Rstudio中编写rmarkdown文档,然后使用pander包将它们转换为Word文档:
library(pander)
Pandoc.convert("C:/Users/BlahBlahBlah/Document.md", format="docx")
Run Code Online (Sandbox Code Playgroud)
转换为.docx格式后,所有4种表格样式都会转换为表格对象,但只有一种表格样式在.docx文档中显示,而.html文件则由初始"编织"产生.那种风格是"rmarkdown".您可以实现这两种方式.一个是:
```{r table, results='asis'}
pandoc.table(myTable, style = "rmarkdown")
```
Run Code Online (Sandbox Code Playgroud)
我更喜欢在我的文档开头全局设置表格样式,但确保我的所有表格都具有相同的格式,并允许我使用更简洁pander(x)
而不是更详细的pandoc.table(x, style = "someStyle")
:
```{r table, results='asis'}
panderOptions("table.style", "rmarkdown")
pander(myTable)
```
Run Code Online (Sandbox Code Playgroud)
rmarkdown
然而,使用这种风格有一些副作用.主要是,它不支持单元格中的换行符,所以买家要小心.我尝试了不同的风格,并最终决定我喜欢默认的"多线"风格,因为它在单元格中的换行灵活性,即使我生成的.html文件看起来很傻.这不会打扰我,因为我真的只使用我从.md文件转换的.docx文件.我写了一篇关于制作你可能觉得有用的好桌子的博客文章.它权衡了几种方法的优缺点,包括xtable()
几种pander()
方案.
归档时间: |
|
查看次数: |
6453 次 |
最近记录: |