我意识到knitr::kable()中的表格布局会根据制作pdf或html的选择而有所不同。这可以通过选择knitr()中最常用的参数格式来解决。很多时候,我用.Rmd制作html和pdf输出(不同的目标受众-不同的习惯),在那里,我很难用一个. Rmd为他们两个都制作好看的结果。
理想情况下,我只想使用一个Rmd文件(对于给定的项目...),并在运行render()时采用一些细节(例如函数kable()中的format="”参数),并避免制作两个不同版本的Rmd(一个用于html,一个用于pdf)。
我的问题在某种程度上与R - kable() used in .Rmd does not show output in notebook有关。有人建议使用rmarkdown::metadata可以看到yaml头中写入的内容。在我的yaml头中,我通常指定pdf和html。所以最后这对我没有帮助,因为rmarkdown::metadata的结果总是相同的,独立于我调用rmarkdown::render(“test1.Rmd”,output_format ='pdf_document')或rmarkdown::render(“test1.Rmd”,output_format ='html_document')。
1.有没有一种方法可以从块中知道调用rmarkdown::render()时选择了哪个output_format?
1.另一个选项可能是yaml-header:我可以在头文件中指定使用knitr时应该选择哪个'format'参数吗?
title: "my title"
header-includes: \usepackage{float}
output:
html_document:
toc: true
knitr_format: html
pdf_document:
number_sections: no
knitr_format: latex
这样,我想让R运行knitr::kable(xx,format=“latex”)或knitr::kable(xx,format=“html”),这取决于rmarkdown::render()是如何被调用的。
如前所述,我查看了rmarkdown::metadata,但这并不允许知道render()是如何被调用的。
1条答案
按热度按时间bis0qfac1#
一个选项是使用
knitr::is_html_output
和/或knitr::is_latex_output
根据输出格式有条件地运行代码: