交叉引用的rticles

时间:2017-02-19 18:28:33

标签: r knitr r-markdown bookdown

Bookdown为方程式,图形,表格和部分提供了很好的交叉引用选项: https://bookdown.org/yihui/bookdown/cross-references.html

但是,当我设置为输出' rticles :: elsevier_article'时,它们似乎无效。

rticles中交叉引用的可用选项有哪些?

3 个答案:

答案 0 :(得分:4)

我还没试过,但这里有一个可能的解决方案:https://bookdown.org/yihui/bookdown/a-single-document.html

特别是,在您的YAML元数据中指定:

output:
  bookdown::pdf_book:
    base_format: rticles::elsevier_article

答案 1 :(得分:1)

由于我是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包中选择From TemplateElsevier Journal Article的{​​{1}}。之后,我使用了 F Rodriguez-Sanchez 建议的答案,并且有效!

最终的yaml标头为:

rticles

答案 2 :(得分:0)

@maycca,请确保通过从模板中选择“新建文件”并选择Elsevier Journal版本/模板来打开RMarkdown。模板安装后即可使用。

这将设置文章“基础结构”(尤其是相应的cls和其他文件)。这也包括一个mybibfile.bib示例(因此,我不需要注释掉biblio)。 如果您选择将其保存在子文件夹中,请确保将Rmd文件保存在该子文件夹中。

如上/下所示,更改YAML的output:标签,以包括bookdown和baseformat rticles :: elsevier_article指针。
仔细检查冒号和制表符的用途。

基于上面的示例,然后可以使用书本交叉引用,如下所示。我用过
(i)使用(ref:awesomeplotcaption)在代码块之前定义的外部(书本)图形标题。这有助于使块选项更短。
(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).

结果如下:

bookdown-reference-in-elsevier-template

P.S。着重于交叉引用并忽略代码块,这可以用echo = FALSE隐藏。下图如下(在此示例中,通过LATEX放置)。我将其截短以使数字易于管理:)