交叉引用和标题在Rmd文件中不起作用

时间:2019-04-02 07:06:16

标签: r latex r-markdown pdflatex caption

有人可以帮助我理解如何编写标题,以便图形标题和交叉引用起作用吗?

我正在练习为Rmd文件中的简单绘图制作字幕和交叉引用。我知道要这样做,我应该在标题中添加“ output:bookend :: pdf_document2”和“ fig_caption = yes”。然后,在一个名为myfigure的块中,我应该添加“ fig.cap =“ \ label {fig:myfigure}我的标题”。要交叉引用该图,我应该在文本中输入“ @ref(fig:myfigure)”。代码在下面。由于标题格式错误,因此无法编织。

---
title: "knit"
author: "Chase Hommeyer"
date: "4/1/2019"
output: bookdown::pdf_document2
  toc: true
  fig_caption: yes
---

```{r myfigure, fig.cap = "\\label{fig:myfigure} My caption"}
plot(pressure)
```

My plot is called \@ref(fig:myfigure).

然后,我尝试删除toc和fig_caption之前的空白,并且将其编织起来,但没有标题出现,并且文本按字面意义打印为“ @ref(fig:myfigure)”,而不是交叉引用。我试过的标题在这里:

---
title: "knit"
author: "Chase Hommeyer"
date: "4/1/2019"
output: bookdown::pdf_document2
toc: true
fig_caption: yes
---

我还尝试在标题中添加“ pdf_document:”,但是同一问题没有标题,并且交叉引用字面意思是“ @ref(fig:myfigure)”。我尝试过的标头在这里:

 ---
title: "knit"
author: "Chase Hommeyer"
date: "4/1/2019"
output: bookdown::pdf_document2
  pdf_document:
    toc: true
    fig_caption: yes
---

任何人都可以帮助我理解如何编写标题以便工作吗?

2 个答案:

答案 0 :(得分:0)

您有错误的YAML标头和对引用的一些错误理解。我使用了这个RMD文件:

---
title: "knit"
author: "Chase Hommeyer"
date: "4/1/2019"
output: 
  bookdown::pdf_document2:
    toc: true
    fig_caption: yes
---

```{r myfigure, fig.cap = "My caption"}
plot(pressure)
```

My plot is called Figure \@ref(fig:myfigure).

首先,在标头中output之后的行断开。在YAML标头中,空格非常重要!

然后,阅读本书手册:

  

图形环境的标签是由代码块的标签生成的,例如,如果块标签为foo,则图形标签将为fig:foo(前缀图:在foo之前添加)。要引用图形,请使用以下语法,其中label是图形标签,例如fig:foo

要使用块名称“ myfigure”引用您的绘图,只需编写\@ref(fig:myfigure)。可以通过块选项中的fig.cap设置图形的标题。

答案 1 :(得分:0)

使用\ref{fig:myfigure}代替\\@ref(fig:myfigure)

请参见RStudio Community Post