簡體   English   中英

使用KnitR從R圖繪制LaTeX圖形標簽?

[英]LaTeX figure label from R plot using KnitR?

我無法讓R / KnitR為圖形創建LaTeX \\label{}語句。 手冊似乎表明,通過將fig.lp中的字符串(默認為“ fig:”)與R代碼塊的標簽連接起來,將創建\\label{}語句。 但是,我無法使它正常工作。 沒有為通過編織以下MWE創建的第一個圖形創建\\label{}語句。 第二個圖形在其標簽上添加了我剛剛發現的解決方法,將R塊放置在圖形環境中,並將\\label標記放在\\caption標記之后或內部。

\documentclass[12pt, english, oneside]{amsart}
\begin{document}

Figure \ref{fig:plot} doesn't have it's label.

<<plot>>=
plot(x=0, y=0)
@

Figure \ref{fig:plot2} has its label.

\begin{figure}
\caption{\label{fig:plot2}}
<<>>=
plot(x=1,y=1)
@
\end{figure}

\end{document}

好的,我找到了一種解決方法,將R塊放在\\begin{figure} . . .\\end{figure} \\begin{figure} . . .\\end{figure} LaTeX中的。 \\begin{figure} . . .\\end{figure}環境。 我可以在相同的環境中創建標簽。 不過,我想了解Yihui打算如何使用KnitR處理此問題。

您需要設置fig.cap = '' (或任何您想要的值)以確保在latex文檔中使用了圖形環境。 (您可能已經注意到\\begin{figure} ... \\end{figure}\\label{}組件一起丟失了

例如

\documentclass[12pt, english, oneside]{amsart}
\begin{document}
See Figure \ref{fig:plot}.
<<plot, fig.lp="fig:", fig.cap = ''>>=
plot(x=0, y=0)
@
\end{document}

我同意, 網站上的描述對於這一點是不夠清楚的。

  • fig.env :(“ figure”)數字的LaTeX環境,例如,將fig.env ='marginfigure'設置為\\ begin {marginfigure}

  • fig.cap:(NULL;字符)要在LaTeX的圖形環境中使用的圖形標題(在\\ caption {}中); 如果為NULL或NA,它將被忽略,否則將使用圖形環境用於塊中的繪圖(在\\ begin {figure}和\\ end {figure}中輸出)

盡管圖形手冊很清楚 ,而且推理合理。

圖標題

如果塊選項fig.cap不為NULL或NA,則當輸出格式為LATEX時,繪圖將放置在圖形環境中,並且該選項用於在該環境中使用\\ caption {}來編寫標題。 其他兩個相關選項是fig.scap和fig.lp,它們為圖形標簽設置了簡短標題和前綴字符串。 通過在第一句或冒號或分號處將其截斷,可以從標題中提取默認的簡短標題。 該標簽是fig.lp和塊標簽的組合。 由於圖形是浮動環境,因此在編譯TEX文檔時,它可以從塊輸出浮動到其他位置,例如頁面的頂部或底部。

如果您希望復制R會話輸出,則不希望這些圖形脫離定義它們如何創建的代碼行。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM