我在生成时遇到问题\label{}
对于使用 knitr 进行绘图时*.Rmd
文件到一个*.md
文件通过knitr
;然后转换为*.pdf
via pandoc
.
我的 MWE*.Rmd
包括如下:
```{r Setup, include=FALSE, results="hide", warning=FALSE}
opts_chunk$set(dev="cairo_pdf", fig.lp="fig:", echo=FALSE, results="hide",
message=FALSE, warning=FALSE)
```
```{r mwe-plot, fig.cap = "MWE plot."}
library(ggplot2)
ggplot(mtcars, aes(factor(cyl))) +
geom_bar()
```
I knit:
knit("mwe.Rmd")
然后我使用pandoc
pandoc -o mwe.pdf mwe.md
我应该能够与以下内容交叉引用该图Figure \ref{fig:mwe-plot}
in my *.Rmd
来源。但似乎\label{fig:mwe-plot}
尚未创建于mwe.tex
如果我跑:
pandoc -o mwe.pdf mwe.md
谢谢你!
问题是您正在编写 R markdown 文件,并且与 LaTeX 相关的选项在此类文档中不起作用(它们没有效果)。fig.cap
有效,但是fig.lp
不会,你也不会得到任何\label{}
之所以添加,是因为 Rmd 文档的输出挂钩是 markdown,并且通常没有标签等。
在这种情况下,您需要编写\label{}
手动进入fig.cap
就像您在 LaTeX 文档中显式添加它一样。例如:
```{r mwe-plot, fig.cap = "\\label{fig:mwe-plot}MWE plot."}
library(ggplot2)
ggplot(mtcars, aes(factor(cyl))) +
geom_bar()
```
现在,knitr 将使用 markdown 图像标记约定将该标题逐字转储到 markdown 文件中(在 R 中输入字符串时,我们需要转义反斜杠,因此\\
in the fig.cap
争论)。然后 Pandoc 将能够使用此标题和标签以及对它的引用都应该自行解析。
另一种选择更复杂;没有什么可以阻止您编写自己的自定义挂钩来为您执行此操作,但是您必须研究 LaTeX 挂钩和 MD 挂钩,以了解如何组合您需要的两者的元素。
请注意,此问题(与 LaTeX 输出相关的块选项)适用于写入 Rmd 文件时的所有此类块选项。这在 KNitr 网站的“选项”页面中有所暗示,但当我第一次开始使用带有 markdown 的 Knit 并使用 pandoc 进行渲染时,它仍然让我感到惊讶。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)