渲染为 PDF 时 Markdown 中的 kableExtra 错误?
kableExtra error in Markdown when rendering to PDF?
在尝试通过从 R 脚本渲染 Rmd 文件来创建 PDF 时,我在使用 kableExtra
时遇到了问题。我在尝试按照以下说明进行操作时没有成功:
https://github.com/rstudio/bookdown/issues/440
https://community.rstudio.com/t/rendering-both-pdf-and-html-is-only-possible-interactively-not-via-script/19520/3
https://github.com/haozhu233/kableExtra/issues/301
我将从脚本访问包:
library(tidyverse)
library(knitr)
library(rmarkdown)
library(tinytex)
制作 Rmd 文件:
---
output: pdf_document
---
{r, comment = NA, echo = FALSE, message = FALSE, warning = FALSE}
tibble(x = 1, y = 2, z = 3) %>%
kable()
使用脚本渲染 Rmd 文件:
render('C:/Users/Rasmus/SO/Test.Rmd',
output_file = "Test.pdf",
output_format = 'pdf_document',
output_dir = 'C:/Users/Rasmus/SO')
这给了我一个带有 table 的 PDF。但是,如果我从 运行 library(kableExtra)
开始,然后应用渲染程序,我会得到一个 PDF:
x
y
z
1
2
3
在运行 library(kableExtra)
之后,我尝试了以下Rmd文件的渲染程序:
---
output: pdf_document
---
{r, comment = NA, echo = FALSE, message = FALSE, warning = FALSE}
tibble(x = 1, y = 2, z = 3) %>%
kable() %>%
kable_styling(latex_options = 'scale_down')
这个returns:
output file: Test.knit.md
Error: Functions that produce HTML output found in document targeting latex output.
Please change the output type of this document to HTML. Alternatively, you can allow
HTML output in non-HTML formats by adding this option to the YAML front-matter of
your rmarkdown file:
always_allow_html: true
Note however that the HTML output will not be visible in non-HTML formats.
是什么阻止我使用 kableExtra
?
当使用 kableExtra 和 kable 进行 PDF 输出时,您需要在 kable 函数中显式添加 format="latex"
(例如,kable(format="latex")
)。有关更多信息和示例,请参阅 the kableExtra
introduction。
kableExtra
PDF output Vignette表示0.9.0以上版本不需要设置format="latex"
,但我发现(目前使用1.1.0版本)还是需要的设置 format="latex"
或者我默认得到 html 输出。
您可以 运行 options(knitr.table.format = "latex")
在任何脚本或 Rmarkdown
文档的开头,使 Latex 成为该 R 会话的默认输出,并避免必须添加 format="latex"
每个人 kable
table.
在尝试通过从 R 脚本渲染 Rmd 文件来创建 PDF 时,我在使用 kableExtra
时遇到了问题。我在尝试按照以下说明进行操作时没有成功:
我将从脚本访问包:
library(tidyverse)
library(knitr)
library(rmarkdown)
library(tinytex)
制作 Rmd 文件:
---
output: pdf_document
---
{r, comment = NA, echo = FALSE, message = FALSE, warning = FALSE}
tibble(x = 1, y = 2, z = 3) %>%
kable()
使用脚本渲染 Rmd 文件:
render('C:/Users/Rasmus/SO/Test.Rmd',
output_file = "Test.pdf",
output_format = 'pdf_document',
output_dir = 'C:/Users/Rasmus/SO')
这给了我一个带有 table 的 PDF。但是,如果我从 运行 library(kableExtra)
开始,然后应用渲染程序,我会得到一个 PDF:
x
y
z
1
2
3
在运行 library(kableExtra)
之后,我尝试了以下Rmd文件的渲染程序:
---
output: pdf_document
---
{r, comment = NA, echo = FALSE, message = FALSE, warning = FALSE}
tibble(x = 1, y = 2, z = 3) %>%
kable() %>%
kable_styling(latex_options = 'scale_down')
这个returns:
output file: Test.knit.md
Error: Functions that produce HTML output found in document targeting latex output.
Please change the output type of this document to HTML. Alternatively, you can allow
HTML output in non-HTML formats by adding this option to the YAML front-matter of
your rmarkdown file:
always_allow_html: true
Note however that the HTML output will not be visible in non-HTML formats.
是什么阻止我使用 kableExtra
?
当使用 kableExtra 和 kable 进行 PDF 输出时,您需要在 kable 函数中显式添加 format="latex"
(例如,kable(format="latex")
)。有关更多信息和示例,请参阅 the kableExtra
introduction。
kableExtra
PDF output Vignette表示0.9.0以上版本不需要设置format="latex"
,但我发现(目前使用1.1.0版本)还是需要的设置 format="latex"
或者我默认得到 html 输出。
您可以 运行 options(knitr.table.format = "latex")
在任何脚本或 Rmarkdown
文档的开头,使 Latex 成为该 R 会话的默认输出,并避免必须添加 format="latex"
每个人 kable
table.