【发布时间】:2017-02-19 18:28:32
【问题描述】:
这本书为方程式、图形、表格和部分提供了很好的交叉引用选项: https://bookdown.org/yihui/bookdown/cross-references.html
但是,当我设置为输出 'rticles::elsevier_article' 时,它们似乎不起作用。
文章中的交叉引用有哪些可用选项?
【问题讨论】:
标签: r knitr r-markdown bookdown
这本书为方程式、图形、表格和部分提供了很好的交叉引用选项: https://bookdown.org/yihui/bookdown/cross-references.html
但是,当我设置为输出 'rticles::elsevier_article' 时,它们似乎不起作用。
文章中的交叉引用有哪些可用选项?
【问题讨论】:
标签: r knitr r-markdown bookdown
我没试过,但是这里有一个可能的解决方案:https://bookdown.org/yihui/bookdown/a-single-document.html
特别是,在您的 YAML 元数据中指定:
output:
bookdown::pdf_book:
base_format: rticles::elsevier_article
【讨论】:
由于我是使用R Markdown 的新手,因此我决定发布此答案,因为有些人可能会犯同样的错误。我自己尝试过 F Rodriguez-Sanchez 的答案,但没有奏效。我收到以下消息:
! LaTeX Error: File `elsarticle.cls' not found.
! Emergency stop.
<read *>
Erro: Failed to compile report.tex. See report.log for more info.
它不起作用,因为我尝试添加建议的答案,选择New Markdown,然后选择Document,因此犯了一个新手错误。
然后我尝试打开一个New R Markdown,从rticles 包中选择From Template 和Elsevier Journal Article。在那之后,我使用了 F Rodriguez-Sanchez 建议的答案,并且成功了!
最终的 yaml 标头是:
---
title: Short Paper
author:
- name: Alice Anonymous
email: alice@example.com
affiliation: Some Institute of Technology
footnote: Corresponding Author
- name: Bob Security
email: bob@example.com
affiliation: Another University
address:
- code: Some Institute of Technology
address: Department, Street, City, State, Zip
- code: Another University
address: Department, Street, City, State, Zip
abstract: |
This is the abstract.
It consists of two paragraphs.
journal: "An awesome journal"
date: "`r Sys.Date()`"
bibliography: mybibfile.bib
output:
bookdown::pdf_book:
base_format: rticles::elsevier_article
---
【讨论】:
\@ref(my-chunk-name) 的建议不起作用。谢谢
output: bookdown::pdf_book: base_format: rticles::elsevier_article。也许还有另一种解决方案?再次感谢
@maycca 请确保通过从模板中选择新文件并选择 Elsevier Journal 版本/模板来打开 RMarkdown。模板将在文章安装后可用。
这将设置文章“基础设施”(特别是相应的 cls 和其他文件)。这还包括一个 mybibfile.bib 示例(因此,我不需要将 biblio 注释掉)。 如果您选择将其保存在子文件夹中,请确保您的 Rmd 文件保存在该子文件夹中。
如上/下所示,更改 YAML 的 output: 标记以包含 bookdown 和基本格式 rticles::elsevier_article 指针。
仔细检查冒号和制表符的使用。
根据上面的示例,您可以使用 bookdown 交叉引用,如下所示。我用过
(i) 在代码块之前使用(ref:awesomeplotcaption) 定义的外部(bookdown)图形标题。这对于保持块选项简短(呃)很有用。
(ii) 对图\@ref(fig:awesomeplot) 的(书本)交叉引用。请注意\@ref(fig:...) 使用块名称来使指针工作。因此,请确保您的块名称带有标准字母、数字和破折号,即没有下划线!
点击编织按钮会变魔术!
---
title: Short Paper
author:
- name: Alice Anonymous
email: alice@example.com
affiliation: Some Institute of Technology
footnote: Corresponding Author
- name: Bob Security
email: bob@example.com
affiliation: Another University
address:
- code: Some Institute of Technology
address: Department, Street, City, State, Zip
- code: Another University
address: Department, Street, City, State, Zip
abstract: |
This is the abstract.
It consists of two paragraphs.
journal: "An awesome journal"
date: "`r Sys.Date()`"
#bibliography: mybibfile.bib
output:
bookdown::pdf_book:
base_format: rticles::elsevier_article
---
# First Heading
Some cool introductory text.
And an even more fascinating plot.
(ref:awesomeplotcaption) A simple demo plot
```{r awesomeplot, fig.cap="(ref:awesomeplotcaption)"}
x <- -5:5
y <- x^2
plot(x,y)
```
More explanatory text.
Using bookdown cross-referencing, have again a closer look at Fig. \@ref(fig:awesomeplot).
这会导致以下结果:
附:关注交叉引用并忽略代码块,这可以用echo = FALSE 隐藏。如下图(在本例中,通过 LATEX 放置)。我将其截断以保持图形易于管理:)
【讨论】: