LaTeX使用KnitR绘制R图的标签?
我无法让R / KnitR为graphics创buildLaTeX \label{}
语句。 该手册似乎表明将通过将图.lp中的string(默认为“fig:”)与R代码块的标签连接来创build\label{}
语句。 但是,我还没有能够得到这个工作。 对于通过编织下面的MWE创build的第一个graphics,将会创buildNo \label{}
语句。 第二个图是标签添加了一个我刚刚发现的解决方法,将R块放在graphics环境中,并将\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}
好的,我已经find了一个解决方法,把R块放在\begin{figure} . . .\end{figure}
\begin{figure} . . .\end{figure}
。LaTeX中的\begin{figure} . . .\end{figure}
环境。 我可以在同一个环境中创build标签。 不过,我想了解Yihui打算如何使用KnitR来处理这个问题。
你需要设置fig.cap = ''
(或任何你想要的)来确保在latex
文档中使用graphics环境。 (您可能已经注意到\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的graphics环境中使用(在\ caption {}); 如果是NULL或NA,它将被忽略,否则graphics环境将被用于块中的图(在\ begin {figure}和\ end {figure}中输出)
虽然graphics手册是清晰的 ,推理是有道理的
图标题
如果块选项fig.cap不为NULL或NA,则当输出格式为LATEX时,图将放置在graphics环境中,并且此选项用于在此环境中使用\ caption {}写入标题。 另外两个相关的选项是fig.scap和fig.lp,它为数字标签设置短字幕和前缀string。 通过在第一个句点或冒号或分号截断标题提取默认的短标题。 标签是fig.lp和块标签的组合。 因为figure是一个浮动环境,所以当编译TEX文档时,它可以从块输出浮动到其他地方,例如页面的顶部或底部。
如果您希望复制R
会话输出,您不希望这些数字从定义如何创build的代码行中浮现出来。