2013-01-15 69 views
15

是否可以將標籤和引用添加到除圖形和表格之外的針織輸出。 我知道我可以使用xtable分別爲print.xtable設置表格的標題並按照我的意願放置它們。對數字也可以做類似的事情。但是,是否可以簡單地通過回顯一些R代碼來標記和標註一些產生 的輸出?所以我可以在我的文本中寫下這樣的內容:code chunk \ref{mychunk} shows how to do XYZ我可以標籤knitr代碼塊和輸出並添加標題給他們嗎?

回答

9

是的,這是可能的。有關如何爲R塊定義環境,請參閱example 074,以便您可以使用交叉引用。要完全理解它,您可能需要閱讀chunk hooks的文檔。

+1

THX在過去24個小時內幫助了第二次。對我來說可能是相反的:閱讀過多的文檔和更少的例子。剛剛得知他們存在,儘管使用knitr和它的一些先進的選項一段時間。也許你應該從演示鏈接到github上的例子。但是,其他人可能會更好地找到他們,thx男人! –

+0

我一直在編寫一本knitr書(詳細討論了這個功能),所以網站上的優先級較低。您絕對正確,我應該在演示頁面中有一個鏈接,但我已經在主頁上有一個鏈接。 –

+2

一本針織書!這絕對是真棒。這絕對是這個缺失環節的正確藉口。當這本書出來的時候,我會告訴每個人和他們的祖母。 –

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} 

以下的例子中,我用的選項$評論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

相關問題