如何在 Rmarkdown 中制作图形标题?

How to make a figure caption in Rmarkdown?

我正在考虑用 rmarkdown 和 latex 写我的论文。我正在了解它是如何工作的,但是,当我尝试向文本添加图形(不是 R 图)并将其呈现为 pdf 时,标题和 in-text 参考消失了。

这是我用来添加图形的代码片段:

---
title: "Untitled"
output: pdf_document
---

see figure \ref{fig1}.

![picture \label{fig1}](figure1.png)

这是 knitr 创建的:

这是 pandoc 创建的:

问题: 如何制作图形标题和 in-text 引用 Rmarkdown 中呈现为 pdf 时将显示的图形?

我如何告诉 pandoc Rmarkdown 是什么以便它渲染 R 代码和绘图?

更新:请检查https://github.com/yihui/knitr/issues/1063

Question: How do I make figure captions and in-text references to those figures in Rmarkdown that will display when rendered to pdf?

要在 LaTeX 生成的 PDF 中获得交叉引用,您需要多次 运行 LaTeX。一些 LaTeX IDE 为您完成。

knitr 只 运行ning LaTeX 一次,这就是你只得到 ?? 的原因。为了确认这是我的问题 运行

library(knitr)
knitr()

在返回的 R 中

see figure \ref{fig1}.

\begin{figure}[htbp]
\centering
\includegraphics{imagem.jpg}
\caption{picture \label{fig1}}
\end{figure}

这是一个有效的 LaTeX 代码。

How do I tell pandoc what Rmarkdown is so it will render R code and plots?

Pandoc 只理解 Markdown(不理解 RMarkdown)。首先,您必须调用 knitr 从 RMarkdown 生成 Markdown,然后调用 Pandoc 将 Markdown 转换为 LaTeX。

请参阅 PDF output 的 R Markdown 文档,特别是查找 fig_caption。默认情况下,R Markdown 中的图形标题是关闭的,您必须将其打开 (fig_caption: true)。您也可以从 RStudio 工具栏上的齿轮按钮找到此设置 IDE.

我刚刚找到了一个非常有用的解决方案 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]]
        })
})
``` 

之后,我们可以在图块选项中添加figure/table的标题,如:

```{r, fig.cap=paste("Your caption.")}
  • 发现 fig.cappaste.
  • 配合使用效果更好