2016-03-24 41 views
5

[Il mio ambiente: Win 7 Pro/R 3.2.1/knitr_1.12.3/R Studio Versione 0.99.892]rmarkdown: come utilizzare più bibliografie per un documento

Sto cercando di scrivere un articolo in .Rmd formattare usando R Studio, Knit -> PDF, e ho seguito http://rmarkdown.rstudio.com/authoring_bibliographies_and_citations.html per dettagli su come ottenere pandoc e pandoc-citeproc per produrre una sezione Riferimenti e citazioni nel testo.

mio BibTeX riferimenti sono in molti .bib file diversi, che, quando si utilizza LaTeX in .Rnw file, si trovano tutti nella mio albero texmf locale via

\bibliography{statistics, graphics} 

io non riesco a fare questa lavorare con pandoc-citeproc. Il mio colpo di testa YAML ha la seguente, che lavora per uno.bib di file, a patto che sia nella stessa directory del file di origine .Rmd:

--- 
    title: "Notes on Testing Equality of Covariance Matrices" 
    author: "Michael Friendly" 
    date: '`r format(Sys.time(), "%B %d, %Y")`' 
    output: 
     pdf_document: 
     fig_caption: yes 
     keep_tex: yes 
     number_sections: yes 
    csl: apa.csl 
    bibliography: statistics.bib 
    --- 

Seguendo il consiglio nel link di cui sopra, ho provato :

bibliography: [statistics.bib,graphics.bib] 

questo dà:

pandoc-citeproc.exe: "stdin" (line 50, column 12): 
unexpected ":" 
expecting letter, digit, white space or "=" 
pandoc.exe: Error running filter pandoc-citeproc 
Filter returned error status 1 

[Edit: Per completezza, vi mostro il pandoc di comando generato, dove sembra che entrambi i file .bib sono passati correttamente]:

"C:/Program Files/RStudio/bin/pandoc/pandoc" +RTS -K512m -RTS EqCov.utf8.md --to latex --from markdown+autolink_bare_uris+ascii_identifiers+tex_math_single_backslash --output EqCov.pdf --template "C:\R\R-3.2.1\library\rmarkdown\rmd\latex\default-1.15.2.tex" --number-sections --highlight-style tango --latex-engine pdflatex --variable graphics=yes --variable "geometry:margin=1in" --bibliography statistics.bib --bibliography graphics.bib --filter pandoc-citeproc 
output file: EqCov.knit.md 

così fanno tutte le seguenti forme:

bibliography: ["statistics.bib","graphics.bib"] 

    bibliography: 
     - "statistics.bib" 
     - "graphics.bib" 

    bibliography: 
     - statistics.bib 
     - graphics.bib 

Idealmente, mi 'Mi piacerebbe essere in grado di utilizzare uno dei seguenti moduli e non copiare i file .bib nella directory del documento.

bibliography: ["C:/Dropbox/localtexmf/bibtex/bib/statistics.bib","C:/Dropbox/localtexmf/bibtex/bib/graphics.bib"] 

bibliography: 
- "C:/Dropbox/localtexmf/bibtex/bib/statistics.bib" 
- "C:/Dropbox/localtexmf/bibtex/bib/graphics.bib" 

risposta

1

Per la cronaca: ho sollevato questo come un problema per Pandoc-citeproc a https://github.com/jgm/pandoc-citeproc/issues/220

Si scopre che ci sono stati problemi nel modo in cui pandoc-citeproc gestisce alcuni caratteri in @{string={}} e non ASCII caratteri in .bib file , quindi quello che stavo cercando ora funziona, con i nomi dei percorsi hard-coded, in tutte le forme che ho provato.

per farlo funzionare più come l'elaborazione di .Rnw file via Latex/BibTex sarebbe bello essere in grado di usare qualcosa come

bibliography: 
    - `r system(kpsewhich statistics.bib)` 
    - `r system(kpsewhich graphics.bib)` 

Quei comandi fare trovare i file corretti in una sessione R, ma non da un'intestazione YAML.