在编织到.doc后,使R Markdown表格边框可见

时间:2015-08-04 18:09:13

标签: r r-markdown pandoc

我有像这样定义的表

```{r results='asis'}
library(Ryacas)
library(pander)
m<-rbind(c("x","x^2"),c("y","y^2"))
Apycs<-function(m){
  library(Ryacas)
  m1<-m 
  for (k in 1:nrow(m)){ for (l in 1:ncol(m)){
    m.2<-yacas(TeXForm(m[k,l]))[[2]]
    m1[k,l]<-substr(m.2,2,nchar(m.2)-2)}}
  return(m1)}
m<-Apycs(m)
pandoc.table(m, style="grid")

```

如何制作分隔表格单元格的行(在.doc中打印预览)
文件而不手动执行?

1 个答案:

答案 0 :(得分:0)

它将涉及两个步骤,并且都需要kableExtra包,并且不需要 pander包。保持一切相同,直到下面的代码:

pandoc.table(m, style="grid")

在第1步中:创建一个带边框的LaTeX表,将booktabs保持为FALSE并使用 kable_styling 形式kableExtra。将LaTeX表转换为具有 kable_as_image 形式kableExtra的图像,以便在第2步中的rmarkdown文档中使用。然后编织成pdf。正如kableExtra所示,这是一个比没有更好的&#34;&#34;在rmarkdown Word文档中打印高质量表格的解决方案。

```{r results='asis'}
library(kableExtra)
library(Ryacas)

m<-rbind(c("x","x^2"),c("y","y^2"))
Apycs<-function(m){
m1<-m
for (k in 1:nrow(m)){ for (l in 1:ncol(m)){
m.2<-yacas(TeXForm(m[k,l]))[[2]]
m1[k,l]<-substr(m.2,2,nchar(m.2)-2)}}
return(m1)}
m<-Apycs(m)

knitr::kable(m, "latex", booktabs = F) %>%
       column_spec(1, border_left = T) %>%
       column_spec(2, border_right = T) %>%
       kable_as_image("my_latex_table")

```

请注意, kable_as_image 是一项仅限LaTeX的功能,此功能要求您安装magick(install.packages(&#34; magick&#34;))。除此之外,如果您打算在Windows计算机上使用它,则需要安装Ghostscript。

我们所追求的输出称为 my_latex_table.png ,可以在工作目录所在的位置找到。

在第二步中:我们只需在.Rmd文件中包含 my_latex_table.png 即可编入.doc

![Bordered Table](my_latex_table.png)