这里有一个文件 kable.Rmd
在RStudio中正确编织。
---
title: "latex kable"
output: pdf_document
---
```{r table1, echo=FALSE}
library(magrittr)
library(kableExtra)
kable(data.frame(a=c(1,2,3), b=c(4,5,6))) %>%
kable_styling(latex_options = c("striped", "hold_position", "repeat_header"),
full_width = F)
```
输出显示了一个表格。
这是一个用来配置bookdown的YAML文件,叫 "YAML"。kable_bookdown.yml
:
# See https://bookdown.org/yihui/bookdown/usage.html
rmd_files: ["kable.Rmd"]
delete_merged_file: true
这里是调用渲染。
bookdown::render_book(input='kable.Rmd', config_file='kable_bookdown.yml')
下面是我从渲染中得到的错误。
ApplicationsRStudio.appContentsMacOSpandocpandoc +RTS -K512m -RTS _main.utf8.md --to latex --from markdown+autolink_bare_uris+tex_math_single_backslash --output _main.tex --self-contained --highlight-style tango --pdf-engine pdflatex --variable graphics --lua-filter LibraryFrameworksR. frameworkVersions3.6Resourceslibraryrmarkdownrmdluapebreak.lua-filter LibraryFrameworksR.frameworkVersions3.6Resourceslibraryrmarkdownrmdlualatex-div.lua --变量'geometry:margin=1in'。
! Undefined control sequence.
<recently read> \rowcolor
该 rowcolor
可能来自 "striped"
乳胶选项。
為什麼在RStudio中可以使用,但在render call中卻無法使用?
RStudio似乎使用了相同的latex(pdflatex)。
我使用的是RStudio版本1.2.5042,R 3.6.3,bookdown 0.18,kableExtra 1.1.0,knitr 1.28,tinytex 0.20。
EDIT: 我没能得到 header_includes
来工作。 将此添加到 kable.Rmd
为我工作。
header-includes:
- \usepackage{colortbl}
- \usepackage{xcolor}
EDIT 2: 这对我也有效(来自 此处):
output:
pdf_document:
# list latex packages:
extra_dependencies: ["colortbl", "xcolor"]
出现这种情况是因为 kableExtra
添加额外的包到 .tex
头,而这些都会在 bookdown
做处理。 我相信 \rowcolor
来自 colortbl
包。 所以你需要告诉 bookdown
来包含该包。 如果我把这一行放到YAML中的 kable.Rmd
,它的工作原理。
header_includes: "colortbl"
但在一个更复杂的例子中,你可能需要更多的包含。 下面是那些 kableExtra
导致插入。
\usepackage{booktabs}
\usepackage{longtable}
\usepackage{array}
\usepackage{multirow}
\usepackage{wrapfig}
\usepackage{float}
\usepackage{colortbl}
\usepackage{pdflscape}
\usepackage{tabu}
\usepackage{threeparttable}
\usepackage{threeparttablex}
\usepackage[normalem]{ulem}
\usepackage{makecell}
\usepackage{xcolor}