16

除了图形和表格之外,是否可以为 knitr 输出添加标签和引用。我知道我可以xtable分别使用print.xtable为表格设置标题并按照我的意愿放置它们。可以对数字做类似的事情。但是是否有可能标记和说明仅通过回显某些 R 代码而生成的某些输出?这样我就可以在我的文本中写下这样的内容:code chunk \ref{mychunk} shows how to do XYZ.

4

3 回答 3

9

是的,有可能。请参阅示例 074,了解如何为 R 块定义环境,以便您可以使用交叉引用。要完全理解它,您可能需要阅读chunk hooks的文档。

于 2013-01-16T04:04:24.857 回答
3

我想在标题后面的标题中添加额外的文本,所以在序言中使用它来使用 amsthm 自定义我的代码块标题:

\usepackage{amsthm}
\newtheoremstyle{rexample}
    {3pt}%Space above
    {3pt}% Space below
    {}%Body font
    {}%Indent amount
    {\bfseries}%Theorem head font
    {:}%Punctuation after theorem head
    {.5em}%Space after theorem head
    {}%Theorem head spec (can be left empty, meaning `normal')
\theoremstyle{rexample}
\newtheorem{rexample}{Code chunk}

按照示例,我使用带有 options$comment 的 knit_hooks:

knit_hooks$set(rexample = function(before, options, envir) {
  if (before) sprintf('\\begin{rexample}%s\\label{%s}\\hfill{}', options$comment, options$label) else '\\end{rexample}'
})

并且在块定义中,注释被传递以形成标签:

<<setup, echo=TRUE, tidy=FALSE, eval=FALSE, rexample=TRUE, comment='Setups for some management functions and database connections'>>=

这给了我一个很好的标题:

http://gis.washington.edu/phurvitz/knitr/rexample_theorem_caption.png

于 2014-03-26T18:03:34.917 回答
2

不确定这是否正是您正在寻找的,但请尝试给这个网站一个机会:http:
//yihui.name/knitr/demo/reference/

不要对第一句话谈论 Sweave 块感到恼火,它完全专注于 knitr 块。

干杯...

于 2013-01-15T21:08:59.400 回答