我正在尝试使用rmarkdown作为以下最小(非)工作示例,从RStudio Cloud编译PDF文档。
首先,为了能够安装某些乳胶软件包(MWE中未包含),我必须使用选项force = TRUE
安装tinytex。现在,如果我运行命令pdflatex --version
,我会看到以下结果:
pdfTeX 3.14159265-2.6-1.40.19 (TeX Live 2018)
MWE刚好在下面,如果我尝试从RStudio Cloud会话中编织它,则会出现此错误:
! \ @startpbox的使用与它的定义不匹配。
\ @startpbox {l> {\参差不齐的\ arraybackslash} p {12cm} l}
l.101 ... {l> {\ raggedright \ arraybackslash} p {12cm} l}
错误:编译MWE.tex失败。有关更多信息,请参见MWE.log。
执行停止
---
output:
bookdown::pdf_book:
toc: false
keep_tex: true
---
```{r setup, include = FALSE}
knitr::opts_chunk$set(echo = FALSE)
```
```{r start, include = FALSE}
library(tibble)
library(magrittr)
```
```{r table, results = "asis"}
tbl <- tribble(~number, ~descrip, ~perc,
"8415", "long long very long description of something. More text and stuff here.", "10%")
kableExtra::kable(tbl,
booktabs = TRUE,
longtable = TRUE,
col.names = c("NCM", "Description", "IPI%")) %>%
kableExtra::kable_styling(full_width = FALSE) %>%
kableExtra::column_spec(2, width = "12cm")
```
有趣的是,尽管我使用的是手动安装的TeX Live 2017,但在我的本地R会话中,我可以毫无问题地对其进行编译。
有人知道这里发生了什么吗?我知道这是一个Latex问题,但是不知何故,正是knitr(或pandoc?)和kableExtra的相互作用导致了某种冲突。
非常感谢您!