我想花时间编辑块并记录在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)))
}
})
它确实产生了正确的时间注释,但问题是它被包装在kframe中,这导致了LaTeX输出中的丑陋空白:
\begin{kframe}
% Chunk rendering time: 12.786 seconds.
\end{kframe}
有没有办法制作无包装的评论?
答案 0 :(得分:4)
试试这个:
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}')
}
})
})
但是,这是一个黑客攻击。基本上你从kframe
环境中逃避了LaTeX评论。