Bookdown:另一个文件中的交叉引用图

时间:2018-07-30 14:11:49

标签: r r-markdown bookdown cross-reference literate-programming

我大跌眼镜,正在准备一本手抄本,完全在RStudio中出版。在正文中,我想在单独的支持信息.Rmd文件中交叉引用数字。

假设这是我的主要文本文件,名为main.Rmd

---
title: "Main text"
output:
  bookdown::pdf_book:
    toc: no
---
Here is the main text file. I would like to refer to \@ref(fig:supporting-figure).

以下是名为supporting.Rmd的辅助文字,并将要引用的图形保存在同一文件夹中:

---
title: "Supporting info"
output:
  bookdown::pdf_book:
    toc: no
---

Here is the supporting text.

```{r supporting-figure}
plot(cars)
```

如何在正文中交叉引用supporting-figure

我已经检查了Yihui的bookdown manual中的交叉引用部分,但是我看不到如何将其扩展到文件之间的交叉引用。

我也发现了这个问题: Cross-reference figure in a separate Rmarkdown (PDF) file  但是接受的答案对我不起作用(也许是因为我使用的是bookdown而非base Rmarkdown?)

2 个答案:

答案 0 :(得分:3)

我不完全确定如何将这两个文件编译为单个bookdown文档,因为就目前而言,它们只是两个单独的R Markdown文档。但是有两个问题:

  1. 图形需要标题供交叉引用

您只能交叉引用标题为fig.cap且为explained here的图形:

  

如果我们通过块选项将图形标题分配给代码块   fig.cap,R图将被放置到图形环境中,这将是   自动标记和编号,也可以交叉引用。

  1. 配置错误的预订项目

据我所知,您尚未为bookdown正确配置项目:

  • 主文件应称为index.Rmd
  • 支持文件不应包含任何YAML
  • 您应将site: bookdown::bookdown_site包含在主要紫cum烯的YAML中
  

请查看this answer,以获取有关最小Bookdown文件的一些提示。


解决方案

index.Rmd

---
title: "Main text"
site: bookdown::bookdown_site
output:
  bookdown::pdf_book:
    toc: no
---
Here is the main text file. I would like to refer to \@ref(fig:supporting-figure).

supporting.Rmd

Here is the supporting text.

```{r supporting-figure, fig.cap= "Some Figure"}
plot(cars)
```

enter image description here

答案 1 :(得分:0)

如果您要编译2个不同的pdf,我遇到了同样的问题,并提出了此解决方案。它依靠LaTeX的xr包进行交叉引用:https://stackoverflow.com/a/52532269/576684