RMarkdown for Word文档中的交叉引用

时间:2018-09-14 15:33:23

标签: r label r-markdown

我正在编写一个Rmd文件,该文件将编织到Word中的报表中。 我正在尝试为图形创建标签,以及对其的交叉引用,如:

  

如图\ref{fig:TotalCarStock}等所示。

```{r TotalCarStock, echo=FALSE, fig.cap="Forecasted versus actual car stock", out.width = '100%'}
knitr::include_graphics("C:/Usr/WP vehicle stock/TotalCarStock.jpg")
```

我在这里看到的所有讨论都表明,在创建pdf文档时,此方法可以正常工作,但是我希望将Rmd文件“编织”为Word文档。正确创建Word文档,除了标签和交叉引用保留空白。

2 个答案:

答案 0 :(得分:1)

根据创建者@Yihui的the Rmarkdown guide,应使用\@ref(figure's label)来指代人物。因此,您可以使用\@ref(fig:TotalCarStock)而不是\ref{fig:TotalCarStock},如下所示:

  

如图\ @ref(fig:TotalCarStock)等所示。

在编织\@ref(figure's/table's label).docx.pdf时,符号.html可用于引用图像,图形或表格。

答案 1 :(得分:1)

@LaurentFrankx最后,我找到了解决方案:如果在YAML标头的bookdown::word_document2:行中使用word_document而不是output,则可以得到以下结果:如下所示。

enter image description here

---
title: "VHS Report"
author: "Laurent Franckx"
date: "14 September 2018"
output: 
  bookdown::word_document2:
  fig_caption: yes
#pdf_document: default
---

As illustrated in Figure \@ref(fig:TotalCarStock), etc, etc. However, `out.width = '100%'` in an R chunk cannnot be specified when we want to produce a `.docx` output, because `out.width = '100%'` is used for creating `.pdf` outcome.

```{r TotalCarStock, echo=FALSE, fig.cap="Forecasted versus actual car stock"}
knitr::include_graphics("https://i.stack.imgur.com/JlNbf.png")
```

bookdown::word_document2:和其他***_document2函数由@Yihui创建。我们可以在官方guidebook中看到它们的用法。这些使我们能够进行自动编号,如here中所述。

有关进一步的自定义,我们可以参考标题为Happy collaboration with Rmd to docx的文章。尽管本文介绍了如何使用word_document配置格式,但是这些技巧对于更新的功能word_document2仍然有效且有用。