编译 pdf 输出时 knitr -pandoc-citeproc 错误

knitr -pandoc-citeproc error when compiling pdf output

有人可以帮我解决这个错误吗? 当我尝试使用外部乳胶 .bib 文件

编译西班牙语 .Rmd 文档时出现下一个错误
---
title: "Untitled"
output: 
  pdf_document: 
    fig_caption: yes
bibliography: biblio.bib
lang: spanish
---

错误信息是:

  |.................................................................| 100%
label: unnamed-chunk-3 (with options) 
List of 2
 $ echo   : logi FALSE
 $ results: chr "asis"


/usr/bin/pandoc bib.utf8.md --to latex --from markdown+autolink_bare_uris+ascii_identifiers+tex_math_single_backslash --output bib.pdf --filter /usr/bin/pandoc-citeproc --template /home/juanchi/R/x86_64-pc-linux-gnu-library/3.2/rmarkdown/rmd/latex/default.tex --highlight-style tango --latex-engine pdflatex --variable 'geometry:margin=1in' --bibliography biblio.bib 
output file: bib.knit.md

pandoc-citeproc: could not find locale data for spanish
pandoc: Error running filter /usr/bin/pandoc-citeproc
Filter returned error status 1
Error: pandoc document conversion failed with error 83

使用此会话信息:

> sessionInfo()
R version 3.2.2 (2015-08-14)
Platform: x86_64-pc-linux-gnu (64-bit)
Running under: Ubuntu 15.10

locale:
 [1] LC_CTYPE=pt_BR.UTF-8       LC_NUMERIC=C               LC_TIME=pt_BR.UTF-8       
 [4] LC_COLLATE=es_ES.UTF-8     LC_MONETARY=pt_BR.UTF-8    LC_MESSAGES=es_ES.UTF-8   
 [7] LC_PAPER=pt_BR.UTF-8       LC_NAME=C                  LC_ADDRESS=C              
[10] LC_TELEPHONE=C             LC_MEASUREMENT=pt_BR.UTF-8 LC_IDENTIFICATION=C       

attached base packages:
[1] stats     graphics  grDevices utils     datasets  methods   base     

loaded via a namespace (and not attached):
[1] htmltools_0.2.6   tools_3.2.2       yaml_2.1.13       rmarkdown_0.6.2.2
[5] knitr_1.10.5      digest_0.6.8  

如果我这样做是为了分离它有效:

---
title: "Untitled"
output: 
  pdf_document: 
    fig_caption: yes
bibliography: biblio.bib
---

---
title: "Untitled"
output: 
  pdf_document: 
    fig_caption: yes
lang: spanish
---

当我尝试更改 yaml 时

lang: es-ES

出现此错误:

! Package babel Error: Unknown option `es-ES'. Either you misspelled it
(babel)                or the language definition file es-ES.ldf was not found.


See the babel package documentation for explanation.
Type  H <return>  for immediate help.
 ...                                              

l.299 \ProcessOptions*

pandoc: Error producing PDF from TeX source
Erro: pandoc document conversion failed with error 43

您的 rmarkdown 版本似乎太旧了。我认为你需要 update.packages(ask = FALSE)。最新版本的 rmarkdown 可以在使用 pdf_documentcitation_package 参数时不使用 pandoc-citeproc 处理书目,例如

---
title: "Untitled"
output: 
  pdf_document: 
    fig_caption: yes
    citation_package: natbib
bibliography: biblio.bib
lang: spanish
---