在Rmd内联输出中抑制冗长的可扩展表,同时保留在最终PDF中
我试图让R在内联Rmd输出中抑制使用kable&kableExtra创建的长表,同时将它们保留在最终的PDF中。我只想用几个块来实现这一点,所以我不想设置全局选项来关闭所有内联输出 我已经对这里列出的块选项进行了多次迭代:这里:但是没有找到正确的块选项,所以我不确定我是否在正确的位置查找,或者是否跳过了正确的设置 亚马尔: 代码:在Rmd内联输出中抑制冗长的可扩展表,同时保留在最终PDF中,r,r-markdown,knitr,R,R Markdown,Knitr,我试图让R在内联Rmd输出中抑制使用kable&kableExtra创建的长表,同时将它们保留在最终的PDF中。我只想用几个块来实现这一点,所以我不想设置全局选项来关闭所有内联输出 我已经对这里列出的块选项进行了多次迭代:这里:但是没有找到正确的块选项,所以我不确定我是否在正确的位置查找,或者是否跳过了正确的设置 亚马尔: 代码: 如果您可以想象在编写代码时必须滚动50-100行这类内容,您会发现这是多么烦人和耗时。此函数检测到RMarkdown文档正在RStudio中进行内联处理,而不是通过编
如果您可以想象在编写代码时必须滚动50-100行这类内容,您会发现这是多么烦人和耗时。此函数检测到RMarkdown文档正在RStudio中进行内联处理,而不是通过编织:
is_inline <- function() {
is.null(knitr::opts_knit$get('rmarkdown.pandoc.to'))
}
或者做另一个功能
hide_inline <- function(x) {
if (is_inline())
cat("[output hidden]")
else
x
}
这两种方法都有一个缺点,即需要对代码进行修改,如果echo=TRUE
,代码就会显示出来。我不认为有任何区块选项等同于hide\u inline
,但我可能错了
如果你真的很绝望,你可以使用echo=2:3
或类似的方法来隐藏If(!is_inline()){
和}
行
\begin{table}[H]
\centering
\begin{tabular}{rl}
\toprule
A & B\\
\midrule
1 & Imagine a really long table\\
2 & With at least 50 rows or so\\
3 & Which get in the way in the inline output\\
4 & But I want in the final PDF\\
5 & Without influencing the other chunks\\
\bottomrule
\end{tabular}
\end{table}
is_inline <- function() {
is.null(knitr::opts_knit$get('rmarkdown.pandoc.to'))
}
if (!is_inline()) {
kable(dat, booktabs=TRUE, format="latex", longtable=TRUE) %>%
kable_styling(latex_options="HOLD_position")
}
hide_inline <- function(x) {
if (is_inline())
cat("[output hidden]")
else
x
}
kable(dat, booktabs=TRUE, format="latex", longtable=TRUE) %>%
kable_styling(latex_options="HOLD_position") %>%
hide_inline()