当我使用\label{}从一个*.Rmd文件通过knitr从一个*.md文件到一个*.md文件,然后通过pandoc转换到*.pdf时,我很难为情节生成*.md。
我的*.Rmd的MWE包括在下面:
```{r Setup, include=FALSE, results="hide", warning=FALSE}opts_chunk$set(dev="cairo_pdf",fig.lp=“图:”,echo=FALSE,results=“隐藏”,
message=FALSE, warning=FALSE)```{r mwe-plot, fig.cap = "MWE plot."}图书馆(Ggplot2)
(mtcar,aes(因子(Cyl)+
geom_bar()
我织:
knit("mwe.Rmd") 然后我用pandoc
pandoc -o mwe.pdf mwe.md 我应该能够在我的Figure \ref{fig:mwe-plot}源代码中交叉引用这个情节。但是,如果我运行的话,\label{fig:mwe-plot}似乎还没有在mwe.tex中创建:
pandoc -o mwe.pdf mwe.md谢谢!
发布于 2014-06-06 17:20:14
问题是,您正在编写一个R标记文件,而与LaTeX相关的选项在此类文档中不起作用(它们没有效果)。fig.cap可以工作,但是fig.lp不会,也不会添加任何\label{},因为Rmd文档的输出钩子是可标记的,而且通常没有标签等等。
在这种情况下,您需要手动用\label{}编写fig.cap,就像在LaTeX文档中显式地添加它一样。例如:
```{r mwe-plot, fig.cap = "\\label{fig:mwe-plot}MWE plot."}图书馆(Ggplot2)
(mtcar,aes(因子(Cyl)+
geom_bar()
现在,针织品将使用标记图像标记约定逐字将标题转储到标记文件中(在R中输入字符串时,我们需要转义反斜杠,因此\\在fig.cap参数中)。然后,Pandoc将能够使用这个标题,标签和对它的引用都应该自己解决。
另一个选项更复杂;没有什么可以阻止您编写自己的自定义钩子来帮助您这样做,但是您必须研究LaTeX钩子和MD钩子,以了解如何将两者的元素组合起来。
请注意,此问题(与LaTeX输出相关的块选项)适用于编写Rmd文件时的所有此类块选项。这在KNitr网站的选项页面中是隐含的,但当我第一次开始使用带有标记的Knitr和使用pandoc渲染时,它仍然让我感到意外。
https://stackoverflow.com/questions/24086498
复制相似问题