Mol*_*lly 4 r r-markdown kableextra kable
当我使用kableExtra进行PDF输出时,表格渲染得很漂亮,如果程序中没有另一个非kable额外表格,则会出错.有没有人见过这种行为?该文件似乎编织好,但然后在pandoc中抛出错误?
例如,这段代码:
---
output:
beamer_presentation:
fontsize: 10pt
---
```{r global_options, include=FALSE}
library(rmarkdown)
library(knitr)
library(kableExtra)
```
### Slide with table
```{r echo=FALSE, warning=FALSE, message=FALSE}
df=mtcars[1:8,1:3]
kable(df,format="latex",booktabs=T,row.names=F) %>%
row_spec(6, color = "red")
```
Run Code Online (Sandbox Code Playgroud)
给出了这个错误
processing file: t.rmd
List of 1
$ include: logi FALSE
|....................................... | 60%
ordinary text without R code
|.................................................... | 80%
label: unnamed-chunk-1 (with options)
List of 3
$ echo : logi FALSE
$ warning: logi FALSE
$ message: logi FALSE
|.................................................................| 100%
ordinary text without R code
"C:/PROGRA~2/Pandoc/pandoc" +RTS -K512m -RTS t.utf8.md --to beamer --from markdown+autolink_bare_uris+ascii_identifiers+tex_math_single_backslash --output t.pdf --highlight-style tango --latex-engine pdflatex
output file: t.knit.md
! Undefined control sequence.
\beamer@doifinframe ...in {tabular}{rrr} \toprule
mpg & cyl & disp\\ \midrul...
l.86 \end{frame}
pandoc.exe: Error producing PDF
Error: pandoc document conversion failed with error 43
In addition: Warning message:
running command '"C:/PROGRA~2/Pandoc/pandoc" +RTS -K512m -RTS t.utf8.md --to beamer --from markdown+autolink_bare_uris+ascii_identifiers+tex_math_single_backslash --output t.pdf --highlight-style tango --latex-engine pdflatex' had status 43
Execution halted
Run Code Online (Sandbox Code Playgroud)
但是,如果我再添加一张带有虚拟表的幻灯片,它会打印得很漂亮:
---
output:
beamer_presentation:
fontsize: 10pt
---
```{r global_options, include=FALSE}
library(rmarkdown)
library(knitr)
library(kableExtra)
```
### Slide with table
```{r echo=FALSE, warning=FALSE, message=FALSE}
df=mtcars[1:8,1:3]
kable(df,format="latex",booktabs=T,row.names=F) %>%
row_spec(6, color = "red")
```
### Non-kableExtra table needed for some reason?
```{r echo=FALSE}
kable(df)
```
Run Code Online (Sandbox Code Playgroud)
有没有人见过这种行为?除了"把假表作为最后一张幻灯片?"之外的任何变通办法?
Beamer幻灯片不允许kableExtra像常规pdf文档中那样自动加载乳胶包.您在LaTeX中看到了该错误消息,因为未加载booktabs.当你把一个正常的降价表,在rmarkdown pandoc模板一些神奇的将加载booktabs和longtable自动,这就是为什么错误不见了.
您可以按照文档Getting Started部分中的kableExtra文档进行操作
header-includes:
- \usepackage{booktabs}
- \usepackage{longtable}
- \usepackage{array}
- \usepackage{multirow}
- \usepackage{wrapfig}
- \usepackage{float}
- \usepackage{colortbl}
- \usepackage{pdflscape}
- \usepackage{tabu}
- \usepackage{threeparttable}
Run Code Online (Sandbox Code Playgroud)
请注意,我- \usepackage[table]{xcolor}从列表中删除了因为beamer加载xcolor了不同的选项设置.