使用kable和kableExtra

时间:2019-08-15 13:58:37

标签: r report knitr bookdown kableextra

请考虑以下内容:

背景
我使用bookdown程序包,并将整个项目写在了几个.Rmd文件中。所有表都是用knitr::kable()kableExtra::kable_styling()制作的,以使它们看起来可读。

为了轻松地将相同的样式应用于所有表,我编写了一个函数来应用所需的kableExtra::kable_styling()自变量(KableStyleFun)。

用“ M-K”方法合并gitbook没问题。但是,现在我需要生成一些更“可共享”和“可打印”的文件,例如PDF文档。

关于如何执行此操作而无需重写整个代码的信息很少。

郝Zhu解释了一种可能性here。但是,由于(我认为)它将“ M-K”误认为是“ K-M”方法,因此该来源非常令人困惑。据说:

  

要在多格式书本项目中使用kableExtra生成跨格式表,您必须通过在new_session: true中设置_bookdown.yml来使用“ MK”方法。

new_session: true实际上会启动“ K-M”方法。参见here

尽管如此,“ K-M”方法对我来说是不可行的,因为我将对象从一个章节“传递”到另一章。


问题
在下面的示例中,如何以最小的代码适应性来创建带有pdf_book的{​​{1}}?


“ 01-render.Rmd”文件的内容

bookdown

“ _ bookdown.yml”文件的内容

# 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"] =没问题

bookdown::render_book("01-render.Rmd", output_format = "bookdown::gitbook") =

  

错误:产生HTML输出的函数可在针对乳胶输出的文档中找到。   请将此文档的输出类型更改为HTML。或者,您可以允许   通过将此选项添加到以下项目的YAML前端,可以以非HTML格式输出HTML:   您的rmarkdown文件:     always_allow_html:是   但是请注意,HTML输出在非HTML格式中将不可见。

非常感谢!

0 个答案:

没有答案
相关问题