我想定时编织块并记录使用LaTeX输出中的注释渲染它们需要多长时间.
我试过以下钩子:
now = Sys.time()
knit_hooks$set(timeit = function(before) {
if (before) { now <<- Sys.time() }
else {
paste("%", sprintf("Chunk rendering time: %s seconds.\n", round(Sys.time() - now, digits = 3)))
}
})
Run Code Online (Sandbox Code Playgroud)
并且它确实产生了正确的时间注释,但问题是它被包装在kframe中,这导致LaTeX输出中的丑陋空白:
\begin{kframe}
% Chunk rendering time: 12.786 seconds.
\end{kframe}
Run Code Online (Sandbox Code Playgroud)
有没有办法产生解开的评论?
尝试这个:
local({
now = Sys.time()
knit_hooks$set(timeit = function(before) {
if (before) {
now <<- Sys.time()
} else {
x = round(Sys.time() - now, digits = 3)
x = sprintf("%% Chunk rendering time: %s seconds.", x)
paste('\\end{kframe}\n', x, '\n\\begin{kframe}')
}
})
})
Run Code Online (Sandbox Code Playgroud)
不过,这是一个黑客。基本上你从kframe环境中逃脱 LaTeX 评论。