【发布时间】:2013-02-06 03:44:16
【问题描述】:
我无法让 R/KnitR 为图形创建 LaTeX \label{} 语句。 manual 似乎表明\label{} 语句将通过连接 fig.lp 中的字符串(默认为“fig:”)与 R 代码块的标签来创建。但是,我无法让它发挥作用。没有为通过编织下面的 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} 环境中。我可以在相同的环境中创建标签。不过,我想了解一辉打算如何用 KnitR 来处理这个问题。
【问题讨论】:
-
你试过
<<plot>>=而不是<<plot, fig.lp="fig:">>=吗? -
我实际上首先尝试了 >=,只是忘记在 MWE 中更正它。现在修好了。谢谢。
-
我认为您还可以通过将
\label{mylabel}直接放入 KnitRfig.cap块选项中来包含自定义标签。然后它应该将其转储到输出中。但是您可能必须小心使用以下内容转义\字符:<<plot, fig.cap="My caption text.\\label{mylabel}">>=。我无法测试,但如果它有效,欢迎您转发作为解决方案。