2013-05-07 10 views
18

Sto utilizzando il pacchetto knitr e pandoc in R per convertire un file .Rmd in un PDF. Pandoc è collegato a un file .bib e inserisce automaticamente la bibliografia alla fine del PDF Le voci nel mio file .bib assomigliano questi, preso da http://johnmacfarlane.net/pandoc/demo/biblio.bib:Pandoc insert appendice after bibliography

@Book{item1, 
     author="John Doe", 
     title="First Book", 
     year="2005", 
     address="Cambridge", 
     publisher="Cambridge University Press" 
    } 

@Article{item2, 
     author="John Doe", 
     title="Article", 
     year="2006", 
     journal="Journal of Generic Studies", 
     volume="6", 
     pages="33-34" 
} 

a costruire la mia bibliografia, io sono utilizzando la seguente funzione, tratto da: http://quantifyingmemory.blogspot.co.il/2013/02/reproducible-research-with-r-knitr.html

knitsPDF <- function(name) { 
    library(knitr) 
    knit(paste0(name, ".Rmd"), encoding = "utf-8") 
    system(paste0("pandoc -o ", name, ".pdf ", name, ".md --bibliography /Users/.../Desktop/test.bib --csl /Users/.../Desktop/taylor-and-francis-harvard-x.csl")) 
} 

il contenuto del mio file .RMD è:

This is some text [@item1] 

This is more text [@item2] 

# References 

E outputted PDF assomiglia a questo:

enter image description here

Se provo ad inserire un'appendice, i riferimenti ancora stampati alla fine del documento, in questo modo:

enter image description here

come si fa inserire un'appendice dopo i riferimenti?

risposta

12

Eventualmente la gestione dei riferimenti cambierà per rendere possibile il posizionamento dei riferimenti dove preferisci (https://github.com/jgm/pandoc/issues/771), ma al momento non esiste un modo semplice per farlo.

Come suggerito here, è possibile inserire l'appendice in un file separato, utilizzare pandoc per convertirlo in un frammento LaTeX, quindi includere quel frammento utilizzando il flag --include-after-body. Verrebbe quindi dopo la bibliografia.

+3

Whew contento questo è tutto. Sospettavo che Yihui avesse messo un backend in knitr e lo stesse usando per rubare i dati della gente. –

+1

Tuttavia, come dice NOON SILK nel collegamento che hai citato, "Questo non funziona se l'Appendice cita un riferimento". :-( – Tripartio

16

Con le versioni più recenti Pandoc, è possibile specificare la posizione della bibliografia con <div id="refs"></div>source

This is some text [@item1] 

This is more text [@item2] 

# References 

<div id="refs"></div> 

# appendix