2013-05-07 14 views
18

Bir .Rmd dosyasını bir PDF'ye dönüştürmek için knitr paketini ve pandoc'u R'de kullanıyorum. Pandoc bir .bib dosyaya bağlı ve otomatik http://johnmacfarlane.net/pandoc/demo/biblio.bib alınan benim .bib dosyasında girdileri bu gibi bakmak PDF yılı sonunda kaynakça ekler edilir: Ben, benim kaynakça oluşturmak içinPandoc ek bibliyografiden sonra eki ekle

@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şağıdaki fonksiyonu kullanılarak, alınan: my .Rmd dosyanın 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")) 
} 

içerikleri geçerli:

This is some text [@item1] 

This is more text [@item2] 

# References 

Ve outputted PDF şuna benzer: Ben bir ek eklemek çalışırsanız

enter image description here

, referanslar hala bu gibi dokümanın sonunda yazdırmak:

enter image description here

Nasıl bir ek eklemek yapmak referanslardan sonra?

cevap

12

Sonunda, referansları istediğiniz yere koymanızı (https://github.com/jgm/pandoc/issues/771) mümkün kılmak için, değişime uğrayan referanslar değişecektir, ancak şimdi bunu yapmanın kolay bir yolu yoktur.

here önerildiği gibi, ekinizi ayrı bir dosyaya koyabilirsiniz, bir LaTeX parçasına dönüştürmek için pandoc kullanın, ardından bu parçayı --include-after-body bayrağını kullanarak ekleyin. Daha sonra bibliyografiden sonra gelirdi. yeni Pandoc sürümleri ile

+3

Whew memnun hepsi bu bibliyografyası konumunu belirleyebilirsiniz. Yihui'nin arka tarafını knitr'e koyduğundan ve insanların verilerini çalmak için kullandığını sanmıştım. –

+1

Ancak, NOON SILK'in belirttiğiniz bağlantıda dediği gibi, "Ek referans gösterdiğinde işe yaramaz." :-( – Tripartio

16

, sen <div id="refs"></div>source

This is some text [@item1] 

This is more text [@item2] 

# References 

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

# appendix