Bookdown / Knitr / Kable 完美输出为 HTML 但没有 Table 为 PDF
Bookdown / Knitr / Kable Outputting Perfectly to HTML but No Table to PDF
我正在使用 bookdown 包使用 knitr::kable 函数生成一个包含 tables 的大型文档。我可以让文档完美地在 HTML 中生成 tables,但在 PDF 中,table 内容仅显示为数字列表。输出到 Word 也是如此。编译后的 LaTeX 似乎也是一个数字列表。
其他包(如 sjplot)的输出也是如此。
同样的问题也出现在sample code from the bookdown book.
knitr::kable(
list(
head(iris[, 1:2], 3),
head(mtcars[, 1:3], 5)
),
caption = 'A Tale of Two Tables.', booktabs = TRUE
)
在 HTML 中产生预期的输出:
但是,在 PDF 中生成以下内容:
index.rmd 中的 YAML header 是:
#output ~~~~~~~~~~~ [see _output.yml]
site: bookdown::bookdown_site
output: [bookdown::gitbook, bookdown::pdf_book, bookdown::word_document2, bookdown::html_document2]
documentclass: book
_output.yml中的输出设置为:
bookdown::pdf_book:
keep_tex: true
latex_engine: xelatex
includes:
in_header: tex/biblio.tex
number_sections: yes
pandoc_args: ["--top-level-division=chapter"]
事实证明问题出在与 kableExtra 包的一些交互中
因此,即使您指定(正如我在示例代码中所做的那样)knitr 命名空间 (knitr::kable),如果 kableExtra 已加载。因此,此 在呈现为 PDF 时将不起作用:
library(kableExtra, warn.conflicts = TRUE)
knitr::kable(head(iris, 20), caption = 'Here is a nice table!', booktabs = TRUE)
虽然 HTML 输出一切正常,但 PDF 格式的渲染对 table 不起作用,您最终得到的是 table 单元格值的列表(对于 PDF 和 Word)- 如上图所示。
要解决,删除任何库语句
然后,确保卸载包:
detach("package:kableExtra", unload = TRUE)
最后,对我来说,我发现我需要从 R-Studio "Session" 菜单中 "Restart R and Clear All Outputs" 或 "Terminate R"。
我正在使用 bookdown 包使用 knitr::kable 函数生成一个包含 tables 的大型文档。我可以让文档完美地在 HTML 中生成 tables,但在 PDF 中,table 内容仅显示为数字列表。输出到 Word 也是如此。编译后的 LaTeX 似乎也是一个数字列表。
其他包(如 sjplot)的输出也是如此。
同样的问题也出现在sample code from the bookdown book.
knitr::kable(
list(
head(iris[, 1:2], 3),
head(mtcars[, 1:3], 5)
),
caption = 'A Tale of Two Tables.', booktabs = TRUE
)
在 HTML 中产生预期的输出:
但是,在 PDF 中生成以下内容:
index.rmd 中的 YAML header 是:
#output ~~~~~~~~~~~ [see _output.yml]
site: bookdown::bookdown_site
output: [bookdown::gitbook, bookdown::pdf_book, bookdown::word_document2, bookdown::html_document2]
documentclass: book
_output.yml中的输出设置为:
bookdown::pdf_book:
keep_tex: true
latex_engine: xelatex
includes:
in_header: tex/biblio.tex
number_sections: yes
pandoc_args: ["--top-level-division=chapter"]
事实证明问题出在与 kableExtra 包的一些交互中
因此,即使您指定(正如我在示例代码中所做的那样)knitr 命名空间 (knitr::kable),如果 kableExtra 已加载。因此,此 在呈现为 PDF 时将不起作用:
library(kableExtra, warn.conflicts = TRUE)
knitr::kable(head(iris, 20), caption = 'Here is a nice table!', booktabs = TRUE)
虽然 HTML 输出一切正常,但 PDF 格式的渲染对 table 不起作用,您最终得到的是 table 单元格值的列表(对于 PDF 和 Word)- 如上图所示。
要解决,删除任何库语句
然后,确保卸载包:
detach("package:kableExtra", unload = TRUE)
最后,对我来说,我发现我需要从 R-Studio "Session" 菜单中 "Restart R and Clear All Outputs" 或 "Terminate R"。