在 Rnw/LaTeX 中,来自 knitr hooks 的常见输出的一种用途可能是用一些花哨的环境来装饰来自块的数据。
例如,特定于块的代码可以为表格生成核心数据,并且在提供重复修饰之前和之后的钩子代码。
考虑以下代码段:
\documentclass{article}
\begin{document}
<<myhooks, include=FALSE>>=
printhook=function(before, options, envir) {
if (before) {
return('\nCommon R \\LaTeX\\ in before-hook')
} else {
return('\nCommon R \\LaTeX\\ in after-hook')
}
}
knit_hooks$set(lprint = printhook)
@
<<test, results='asis', lprint=TRUE, echo=FALSE>>=
cat("R \\LaTeX\\ in current chunk\n")
@
\end{document}
问题是 LaTeX 输出大致如下:
\begin{kframe}
Common R \LaTeX\ in before-hook
\end{kframe}
R \LaTeX\ in current chunk
\begin{kframe}
Common R \LaTeX\ in after-hook
\end{kframe}
钩子代码实际上不是asis,但它被包装在kframe
环境中,这可以防止将三个部分粘合在一起。
我们怎样才能删除封闭kframe
?