Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/77.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用kable和kableExtra使用bookdown呈现gitbook和pdf_book 请考虑以下事项:_R_Report_Knitr_Bookdown_Kableextra - Fatal编程技术网

使用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"]