2013-05-07 6 views
18

Ich benutze die Knitr Package und Pandoc in R, um eine. RMD-Datei in ein PDF zu konvertieren. Pandoc ist mit einer bib-Datei verknüpft und fügt automatisch die Bibliographie am Ende des PDF Die Einträge in meiner bib-Datei wie diese aussehen, genommen von http://johnmacfarlane.net/pandoc/demo/biblio.bib:Pandoc einfügen Anhang nach Bibliografie

@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" 
} 

Zu meiner Bibliographie zu bauen, ich bin unter Verwendung der folgenden Funktion, entnommen aus: 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")) 
} 

den Inhalt meiner .Rmd Datei ist:

This is some text [@item1] 

This is more text [@item2] 

# References 

und ausgegeben PDF sieht wie folgt aus:

enter image description here

Wenn ich versuche, einen Anhang einzufügen, noch die Hinweise am Ende des Dokuments drucken, wie folgt aus:

enter image description here

Wie einen Anhang einfügen nach den Referenzen?

Antwort

12

Irgendwann wird sich die Referenzbehandlung ändern, um es zu ermöglichen, die Referenzen wo immer Sie wollen (https://github.com/jgm/pandoc/issues/771) zu setzen, aber im Moment gibt es keinen einfachen Weg, dies zu tun.

Wie vorgeschlagen here, könnten Sie Ihren Anhang in eine separate Datei, verwenden Sie Pandoc, um es in ein LaTeX-Fragment zu konvertieren, dann fügen Sie dieses Fragment mit dem --include-after-body Flag. Es würde dann nach der Bibliographie kommen.

+3

Whew froh das ist es. Ich vermutete, dass Yihui ein Backend in knitr gesetzt hatte und es benutzte, um die Daten der Leute zu stehlen. –

+1

Aber, wie NOON SILK in dem von Ihnen zitierten Link sagt: "Dies funktioniert nicht, wenn der Anhang eine Referenz zitiert." :-( – Tripartio

16

Bei neueren pandoc Versionen können Sie die Position der Bibliographie angeben mit <div id="refs"></div>source

This is some text [@item1] 

This is more text [@item2] 

# References 

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

# appendix