【问题标题】:Referencing figures with bookdown参考带有 bookdown 的数字
【发布时间】:2017-01-20 15:10:53
【问题描述】:

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

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

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

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

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

Warning message:
The label(s) fig:plot-cars not found

... 结果如下:

这个问题好像和this one很像,通过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)

有什么想法吗?

【问题讨论】:

  • 如有疑问,update.packages(ask = FALSE)(现在是 2017 年,您还有 2014 年的包裹吗?:)。您的 RStudio 版本也有点低,但我认为在这种情况下这并不重要。
  • 我知道。这是因为在我的办公室,我无法从 R 中访问 Internet。因此,接收软件包更新有点乏味。我希望得到一个具体的提示,但我想我必须编译一个过时的包列表,以便为负责的学院更新。不过,谢谢!
  • 我最好的猜测是knitr版本太低了。
  • 我设法更新了所有相关的软件包。现在pandoc 版本太低,无法创建编号数字。简单的文件工作。我是否正确地记得pandoc 是 RStudio 附带的?
  • 是的,如果你有最新版本的RStudio,它应该有一个内置的Pandoc版本,即1.17.2。您可以通过rmarkdown::pandoc_version()进行验证。

标签: r r-markdown cross-reference figures bookdown


【解决方案1】:

代码块的名称中不能有特殊字符。我建议使用 camelCase 来确定。 IE。这应该工作:

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

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

Reference example: \@ref(fig:plotCars):

【讨论】:

  • 哇显然下划线算作特殊字符。谢谢!
【解决方案2】:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-12-16
    • 2018-10-12
    • 2019-08-14
    相关资源
    最近更新 更多