【问题标题】:LaTeX figure label from R plot using KnitR?使用 KnitR 的 R 图中的 LaTeX 图形标签?
【发布时间】: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 来处理这个问题。

【问题讨论】:

  • 你试过&lt;&lt;plot&gt;&gt;=而不是&lt;&lt;plot, fig.lp="fig:"&gt;&gt;=吗?
  • 我实际上首先尝试了 >=,只是忘记在 MWE 中更正它。现在修好了。谢谢。
  • 我认为您还可以通过将 \label{mylabel} 直接放入 KnitR fig.cap 块选项中来包含自定义标签。然后它应该将其转储到输出中。但是您可能必须小心使用以下内容转义 \ 字符:&lt;&lt;plot, fig.cap="My caption text.\\label{mylabel}"&gt;&gt;=。我无法测试,但如果它有效,欢迎您转发作为解决方案。

标签: r latex knitr


【解决方案1】:

您需要设置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}

我同意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 和块标签的组合。因为 figure 是一个浮点数 环境,它可以从块输出浮动到其他地方 例如编译 TEX 文档时页面的顶部或底部。

如果您希望复制R 会话输出,您不希望这些数字从定义其创建方式的代码行中浮动。

【讨论】:

  • 完美。那解决了它。谢谢mnel!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2015-11-02
  • 2021-08-21
  • 1970-01-01
  • 1970-01-01
  • 2012-10-02
  • 2017-10-30
  • 2014-02-27
相关资源
最近更新 更多