0

我开始掌握在 rmarkdown 中编写出版物。生成 .html 文件或 .docx 文件完全没有问题,但是当我生成 .pdf 文件时,引用似乎没有继承 .csl 文件中定义的样式。

例如,我期望使用编号的 .csl 样式:

[@Author_Title_2003]-> (1)

这在 .html 和 .docx 文件中是成功的,但在 .pdfs 中我得到:

[@Author_Title_2003]-> [作者,2003]

还印有方括号。

一个例子:

测试.rmd:

---
title: 'My Title'
author: "Me me me me!"
output: pdf_document
bibliography: references.bib
csl: elsevier-vancouver.csl
---

Application written in the R programming language [@RCoreTeam] using the Shiny framework [@Chang2015].

# REFERENCES

参考书目:

@Misc{Chang2015,
  Title                    = {shiny: Web Application Framework for R. R package version 0.12.1},
  Author                   = {Chang, W. and Cheng, J. and Allaire, JJ. and Xie, Y. and McPherson, J. },
  Year                     = {2015},
  Type                     = {Computer Program},
  Url                      = {http://CRAN.R-project.org/package=shiny}
}
@Article{RCoreTeam,
  Title                    = {R: A Language and Environment for Statistical Computing},
  Author                   = {{R Core Team}},
  Year                     = {2015},
  Type                     = {Journal Article},
  Url                      = {http://www.R-project.org}
}

elsevier-vancouver.csl:链接

运行rmarkdown::render("test.Rmd", "pdf_document")给出:

/home/jordan/.cabal/bin/pandoc +RTS -K512m -RTS paper.utf8.md --to latex --from markdown+autolink_bare_uris+ascii_identifiers+tex_math_single_backslash-implicit_figures --output paper.tex --template /home/jordan/R/x86_64-pc-linux-gnu-library/3.2/rmarkdown/rmd/latex/default-1.14.tex --highlight-style tango --latex-engine pdflatex --natbib --variable graphics=yes --variable 'geometry:margin=1in' --bibliography references.bib 

输出文件是:

错误的 PDF 输出

查看格式不正确的引文。另请注意,无论标头中的 csl 参数如何,都会生成此格式。任何帮助将非常感激。

pandoc 1.15.2.1 版,pandoc-citeproc 0.8.1.3 版。

4

1 回答 1

1

所以我弄清楚了在 a) 阅读 rmarkdown 包代码和 b) 更好地了解乳胶之后发生了什么。我想我会在这里发布我的答案,以防有人遇到类似问题。

简而言之,rmarkdown 从 .rmd 文件生成 .tex 文件,然后使用latexmk(或类似的 R 系统调用)处理 .tex 文件。Latex 引擎当然实际上并不使用 .csl 样式文件,而是bibtex使用 .bst 文件。

简而言之,对于 .pdf 文档(从 .rmd 生成)中的格式化参考:

  1. 创建所需格式的 .bst 文件,并手动转换 R(Studio) 生成的 .tex 文件。

  2. 再次使用pandoc将.tex文件转换为pdf,过程中可以使用.csl文件。但是,这似乎确实删除了超链接。

于 2015-12-31T17:53:02.980 回答