Rmarkdown PDF引文无法正确呈现(csl问题?)

时间:2015-12-22 13:18:24

标签: r-markdown pandoc bibtex xelatex

我正准备在rmarkdown中撰写出版物。没有问题产生.html文件或.docx文件,但是当我生成.pdf文件时,引用似乎不会继承.csl文件中定义的样式。

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

[@Author_Title_2003] - > (1)

在.html和.docx文件中哪个成功,但在.pdfs中我得到:

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

也印有方括号。

一个例子:

test.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

references.bib:

@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:link

运行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 

输出文件是:

Bad PDF output

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

pandoc版本1.15.2.1,pandoc-citeproc版本0.8.1.3。

1 个答案:

答案 0 :(得分:1)

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

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

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

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

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