参考数字与书籍

der*_*und 5 r cross-reference figures r-markdown bookdown

由于某种原因,我在书籍文档中交叉引用数字时遇到问题。这是一个最小的例子:

---
output: 
  bookdown::html_document2: 
    fig_caption: yes
---

Reference example: \@ref(fig:plot-cars):

```{r plot-cars, fig.cap = "A car plot"}
plot(cars)
```
Run Code Online (Sandbox Code Playgroud)

当我编织这个时,R Markdown 抛出以下警告......

Warning message:
The label(s) fig:plot-cars not found
Run Code Online (Sandbox Code Playgroud)

...这个结果: 在此输入图像描述

这个问题似乎与这个问题非常相似,通过更新解决了这个问题bookdown。据我了解,session_info()这应该不再是问题:

Session info -----------------------------------------------------------------------------------------
 setting  value                       
 version  R version 3.3.1 (2016-06-21)
 system   i386, mingw32               
 ui       RStudio (0.99.489)          
 language (EN)                        
 collate  German_Germany.1252         
 tz       Europe/Berlin               
 date     2017-01-20                  

Packages ---------------------------------------------------------------------------------------------
 package   * version date       source        
 bookdown    0.3     2016-11-28 CRAN (R 3.3.2)
 devtools    1.9.1   2015-09-11 CRAN (R 3.2.2)
 digest      0.6.8   2014-12-31 CRAN (R 3.2.2)
 htmltools   0.3.5   2016-03-21 CRAN (R 3.2.4)
 knitr       1.11    2015-08-14 CRAN (R 3.2.2)
 memoise     0.2.1   2014-04-22 CRAN (R 3.2.2)
 Rcpp        0.12.8  2016-11-17 CRAN (R 3.3.2)
 rmarkdown   0.8.1   2015-10-10 CRAN (R 3.2.2)
 yaml        2.1.13  2014-06-12 CRAN (R 3.2.2)
Run Code Online (Sandbox Code Playgroud)

有任何想法吗?

小智 5

代码块的名称中不能包含特殊字符。为了确定起见,我建议使用驼峰命名法。即这应该有效:

---
output: 
  bookdown::html_document2: 
    fig_caption: yes
---

```{r plotCars, fig.cap = "A car plot"}
plot(cars)
```

Reference example: \@ref(fig:plotCars):
Run Code Online (Sandbox Code Playgroud)

  • 哇,显然下划线算作特殊字符。谢谢! (2认同)

小智 0

如果有人在更新所有软件包后遇到此问题,请检查您的引用是否正确指定。当使用而不是??引用带有表的块时,也会出现在 pdf 输出中。这为我解决了这个问题。\@ref(fig:missings)\@ref(tab:missings)