我无法让R / KnitR为数字创建LaTeX \label{}
语句。 manual似乎表明将通过将图.lp("图:"默认情况下)中的字符串与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块放在LaTeX的\begin{figure} . . .\end{figure}
环境中找到了解决方法。我可以在同一个环境中创建标签。不过,我想了解Yihui打算如何处理KnitR。
答案 0 :(得分:34)
您需要设置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}
例如
R
我同意description from the website不太明确,因为这是必要的。
fig.env :('figure')用于数字的LaTeX环境,例如:设置fig.env ='marginfigure'来获得\ begin {marginfigure}
fig.cap :( NULL;字符)在LaTeX的图形环境中使用的图形标题(在\ caption {}中);如果为NULL或NA,则为 忽略,否则数字环境将用于图中 块(在\ begin {figure}和\ end {figure}中输出)
虽然graphics manual is clear,但推理有意义
图标题
如果块选项fig.cap不是NULL或NA,则 输出格式为时,绘图将放在图形环境中 LATEX,此选项用于在此环境中编写标题 使用\ caption {}。另外两个相关选项是fig.scap和 fig.lp设置短标题和图的前缀字符串 标签。默认的短标题是从标题中提取的 在第一个时期或结肠或分号截断它。标签是 fig.lp和chunk标签的组合。因为数字是一个浮点数 环境,它可以从块输出浮动到其他地方 例如编译TEX文档时页面的顶部或底部。
如果您希望复制{{1}}会话输出,则不希望这些数字偏离定义它们如何创建的代码行。