Можно ли добавлять метки и ссылки к выводам Knitr, кроме рисунков и таблиц. Я знаю, что могу использовать xtable
соответственно print.xtable
, чтобы устанавливать подписи для таблиц и размещать их так, как мне хочется. То же самое можно сделать и с фигурами. Но можно ли пометить и подписать некоторые выходные данные, которые были сгенерированы простым повторением некоторого кода R? Чтобы я мог написать в своем тексте что-то вроде этого: code chunk \ref{mychunk} shows how to do XYZ
.
Могу ли я пометить фрагменты и выходные данные кода Knitr и добавить к ним подписи?
Ответы (3)
Да, это возможно. См. пример 074 о том, как определить среду. для фрагментов R, чтобы вы могли использовать перекрестные ссылки. Чтобы полностью понять это, вам может понадобиться прочитать документацию по chunk hooks.
Мне нужен был дополнительный текст в заголовке после заголовка, поэтому я использовал его в преамбуле для настройки заголовков фрагментов кода с помощью 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$:
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
Не уверен, что это именно то, что вы ищете, но попробуйте этот сайт:
http://yihui.name/knitr/demo/reference/
Пусть вас не раздражает первое предложение, в котором говорится о кусках Sweave, оно полностью сосредоточено на кусках вязания.
Ваше здоровье ...