Могу ли я пометить фрагменты и выходные данные кода Knitr и добавить к ним подписи?

Можно ли добавлять метки и ссылки к выводам Knitr, кроме рисунков и таблиц. Я знаю, что могу использовать xtable соответственно print.xtable, чтобы устанавливать подписи для таблиц и размещать их так, как мне хочется. То же самое можно сделать и с фигурами. Но можно ли пометить и подписать некоторые выходные данные, которые были сгенерированы простым повторением некоторого кода R? Чтобы я мог написать в своем тексте что-то вроде этого: code chunk \ref{mychunk} shows how to do XYZ.


person Matt Bannert    schedule 15.01.2013    source источник


Ответы (3)


Да, это возможно. См. пример 074 о том, как определить среду. для фрагментов R, чтобы вы могли использовать перекрестные ссылки. Чтобы полностью понять это, вам может понадобиться прочитать документацию по chunk hooks.

person Yihui Xie    schedule 16.01.2013
comment
Спасибо за помощь во второй раз за последние 24 часа. Для меня это может быть наоборот: читать слишком много документации и меньше примеров. Только что узнал, что они существуют, несмотря на то, что какое-то время использовал Knitr и несколько его расширенных опций. Возможно, вам следует дать ссылку из демо на примеры на github. Тем не менее, другие, возможно, лучше их найдут, спасибо, чувак! - person Matt Bannert; 16.01.2013
comment
Я работал над книгой по вязанию (в которой подробно обсуждалась эта функция), поэтому на веб-сайте приоритет был ниже. Вы абсолютно правы в том, что у меня должна быть ссылка на демонстрационной странице, хотя она уже есть на главной странице. - person Yihui Xie; 16.01.2013
comment
книга по вязанию! это абсолютно потрясающе. Это определенно правильное оправдание для этого недостающего звена. Я расскажу всем и их бабушкам, когда эта книга выйдет. - person Matt Bannert; 17.01.2013

Мне нужен был дополнительный текст в заголовке после заголовка, поэтому я использовал его в преамбуле для настройки заголовков фрагментов кода с помощью 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

person Philip Hurvitz    schedule 26.03.2014

Не уверен, что это именно то, что вы ищете, но попробуйте этот сайт:
http://yihui.name/knitr/demo/reference/

Пусть вас не раздражает первое предложение, в котором говорится о кусках Sweave, оно полностью сосредоточено на кусках вязания.

Ваше здоровье ...

person GWD    schedule 15.01.2013