Rmarkdown YAML标头中的作者从属关系,使用标准

时间:2019-10-17 18:28:07

标签: r r-markdown bookdown

我想将作者从属关系添加到我的YAML标头中,并按照此处的建议(Authors and affiliations in the YAML of RMarkdown),使用rticles::elsevier_article输出格式非常好,并且省略了第一个页码页面,这也是可取的。问题在于1)文本引用定义在渲染为pdf时显示(它们不应),2)文本引用不起作用-调用它们只会导致显示调用文本(而不是引用文本),以及3 )对表格和数字的引用无法像bookdown::pdf_document2输出那样使用。如何在bookdown::pdf_document2输出中获取作者和页码,或者如何在rticles::elsevier_article中获取引用以工作?

下面是一个说明问题的示例。我正在使用RStudio 1.2.1335。

---
title: Problems with `rticles::elsevier_article` output 
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.

journal: "Ecological Monographs"
date: "`r Sys.Date()`"
csl: elsevier-harvard.csl
output: rticles::elsevier_article
#output:bookdown::pdf_document2
geometry: margin=2.54cm
---

The Problems I have
==========================

I would like to use the `rticles::elsevier_article` output because it 1) handles authors and affiliations the way I want, and 2) it nicely omits the page number from the firat page. Both of these things I can't seem to easily (if at all) accomplish using `bookdown::pdf_document2` output. 

However, when I specify `rticles::elsevier_article` output, I run into several problems: 1) text reference definitions are displayed upon rendering to pdf (they should not), 2) text references do not work - calling them results only in the text of the call (not the referenced text) being displayed, and 3) references to table and figures does not work as it does with `bookdown::pdf_document2` output. There is one more issue too - in one test case I inserted a table (using `kableExtra`), and knitting failed because of some latex `tabu` environment error, even though it looks to me like the `rticles::elsevier_article` output does indeed load the `tabu` package (but I had to load it in the YAML header to get the knitting to work). 

For example, lets define a text reference so I can use a super script 2 to specify square kilometers in a figure caption. The reference definition should not show in the rendered pdf (and it does not when I use the `bookdown::pdf_document2` output, but it frustratingly does so when I use the `rticles::elsevier_article` output).

<!-- text references for use in tables and captions (must be separated by empty line)-->
(ref:km2) km^2^

Now lets make a figure (below) and reference it here (Figure \@ref(fig:testfig)). The figure includes the text reference in the caption, but it does not display the referenced text, but only the exact text that is suppose to call the reference text. And my inline reference to the figure does not work.

```{r,testfig, echo=FALSE, fig.height = 2.5, fig.width = 3, fig.align = "center",fig.cap=paste0("This is a classic quadratic plot - it could represent ","(ref:km2)",".")}

x=-5:5

plot(x,x**2,xlab="my assets", ylab="my joy", main="Not true")

```

1 个答案:

答案 0 :(得分:1)

detailed in the documentation一样,您可以将bookdown功能与其他格式结合使用。就您而言,您必须替换

output: rticles::elsevier_article

使用

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