使用kable和kableExtra使用bookdown呈现gitbook和pdf_book 请考虑以下事项:
背景使用kable和kableExtra使用bookdown呈现gitbook和pdf_book 请考虑以下事项:,r,report,knitr,bookdown,kableextra,R,Report,Knitr,Bookdown,Kableextra,背景 我使用了bookdown包,并在几个.Rmd文件中编写了整个项目。所有表格都是使用knitr::kable()和kableExtra::kable_styleing()生成的,以使它们看起来可读 为了方便地将相同的样式应用于所有表,我编写了一个函数来应用所需的kableExtra::kable_styleing()参数(KableStyleFun) 将gitbook与“M-K”方法合并是没有问题的。然而,现在我需要制作一些更“可共享”和“可打印”的东西,比如PDF文档 关于如何做到这一点而
我使用了
bookdown
包,并在几个.Rmd文件中编写了整个项目。所有表格都是使用knitr::kable()
和kableExtra::kable_styleing()
生成的,以使它们看起来可读
为了方便地将相同的样式应用于所有表,我编写了一个函数来应用所需的kableExtra::kable_styleing()
参数(KableStyleFun
)
将gitbook
与“M-K”方法合并是没有问题的。然而,现在我需要制作一些更“可共享”和“可打印”的东西,比如PDF文档
关于如何做到这一点而不必重新编写整个代码,几乎没有什么信息
朱昊解释了一种可能性。然而,这个来源是相当混乱的,因为(我认为)它将“M-K”误认为“K-M”方法。据称:
要在多格式簿记项目中使用kableExtra
生成跨格式表,您必须使用“M-K”方法,在\u bookdown.yml
中设置new\u session:true
new_session:true
实际上启动了“K-M”方法。看
尽管如此,“K-M”方法对我来说是没有选择的,因为我将对象从一章“传递”到另一章
问题
如何使用
bookdown
从以下示例创建一本pdf\u书籍
,并对代码进行最小调整
文件“01 render.Rmd”的内容
使用
bookdown::render\u book(“01 render.Rmd”,output\u format=“bookdown::gitbook”)
=没问题
bookdown::render\u book(“01 render.Rmd”,output\u format=“bookdown::pdf\u book”)
=
错误:在文档输出中找到生成HTML输出的函数。
请将此文档的输出类型更改为HTML。或者,您可以允许
通过将此选项添加到
您的rmarkdown文件:
始终\u允许\u html:是
但是请注意,HTML输出在非HTML格式中不可见
非常感谢 我可以用
bookdown::render\u book
重现该问题。不过,使用bookdown::render_site
确实适合我。顺便说一句,我想把booktabs=TRUE
添加到knitr::kable()
。您能指定吗<代码>渲染站点不是从“命名空间:bookdown”导出的对象。也许你的意思是rmarkdown::render_site()
?在后一种情况下,您是否获得HTML文档的PDF文档?我收到错误消息找不到站点生成器。
是的,我的意思是rmarkdown::render\u site()
。您需要一个文件index.Rmd
,它才能工作。使用rmarkdown::render\u站点(输出格式='bookdown::gitbook',编码='UTF-8')
和rmarkdown::render\u站点(输出格式='bookdown::pdf\u book',编码='UTF-8')
我可以生成这两种输出格式。但是,rmarkdown::render_site(encoding='UTF-8')
会产生相同的错误,它应该产生所有的输出格式。
# First part
```{r echo = FALSE, warning=FALSE, message=FALSE}
knitr::opts_chunk$set(echo = FALSE, warning=FALSE, message=FALSE)
library(dplyr)
library(knitr)
library(kableExtra)
# Define function for all tables
KabelStyleFun <- function(dat){
dat %>% kableExtra::kable_styling(full_width = F,
latex_options = "striped",
bootstrap_options = c("striped",
"hover"))
}
```
Table \@ref(tab:test-tab1) in the `gitbook` renders well. But how can I make
this work in a `pdf_book`?
```{r test-tab1}
head(mtcars) %>%
knitr::kable(caption = "testtab") %>%
KabelStyleFun
```
book_filename: "test_book"
delete_merged_file: true
language:
ui:
chapter_name: "Section "
rmd_files: ["01-render.Rmd"]