我正在考虑用rmarkdown和latex编写我的论文。然而,当我尝试在文本中添加一个图形(而不是R图)并将其渲染为pdf时,标题和文本引用会消失,我将了解它是如何工作的。
这是我用来添加数字的代码片段:
---
title: "Untitled"
output: pdf_document
---
see figure \ref{fig1}.
![picture \label{fig1}](figure1.png)
这就是knitr创造的:
这就是pandoc创造的:
问题: 如何在渲染为pdf时显示Rmarkdown中的那些数字的图形标题和文本引用?
OR
如何告诉pandoc Rmarkdown是什么,以便呈现R代码和绘图?
答案 0 :(得分:10)
请参阅PDF output的R Markdown文档,特别是查找fig_caption
。 R Markdown中默认关闭图标题,您必须打开它们(fig_caption: true
)。您也可以从RStudio IDE工具栏上的齿轮按钮找到此设置。
答案 1 :(得分:3)
更新:请检查https://github.com/yihui/knitr/issues/1063。
问题:如何在渲染为pdf时显示Rmarkdown中的那些数字的图形标题和文本引用?
要获得LaTeX生成的PDF中的交叉引用,您需要多次运行LaTeX。有些LaTeX IDE会为你做这件事。
knitr只运行一次LaTeX,这就是你只得到??
的原因。为了确认这是我跑的问题
library(knitr)
knitr()
在返回的R中
see figure \ref{fig1}.
\begin{figure}[htbp]
\centering
\includegraphics{imagem.jpg}
\caption{picture \label{fig1}}
\end{figure}
这是一个有效的LaTeX代码。
如何告诉pandoc Rmarkdown是什么,它将呈现R代码和图?
Pandoc只了解Markdown(不是RMarkdown )。首先,您必须调用knitr从RMarkdown生成Markdown,然后调用Pandoc将Markdown转换为LaTeX。
答案 2 :(得分:1)
我刚刚找到了一个非常有用的解决方案here。
首先,包括以下块:
```{r functions, include=FALSE}
# A function for captioning and referencing images
fig <- local({
i <- 0
ref <- list()
list(
cap=function(refName, text) {
i <<- i + 1
ref[[refName]] <<- i
paste("Figure ", i, ": ", text, sep="")
},
ref=function(refName) {
ref[[refName]]
})
})
```
之后,我们可以在图块块选项中添加图形/表格的标题,如:
```{r, fig.cap=paste("Your caption.")}
fig.cap
paste.
效果更好