2012-11-24 8 views
15

Jak mogę automatycznie utworzyć listę cytatów z pliku bibtex, najlepiej w formacie Markdown (bardziej szczegółowo, pandoc)?Automatyczne tworzenie bibliografii z bibtex w pandoc/markdown bez inline cytowań

Jestem w trakcie budowy mojej osobistej, akademickiej strony internetowej. Jak większość osobistych, akademickich stron internetowych, zamieszczam stronę z listą moich publikacji. Jednak naprawdę nie chcę pisać każdego cytatu ręcznie, więc staram się znaleźć automatyczną metodę tworzenia cytatów z jednego lub więcej plików bibtex.

Idealnie byłoby narzędzie, którym mógłbym po prostu podać plik bibtex zawierający moje publikacje i wyplułoby to przecenę (używam pandoc + makefile do stworzenia strony). Obecnie nie jestem świadomy takiego narzędzia.

Dalsze komplikowanie moich potrzeb to fakt, że prosty, płaski wykaz publikacji nie jest wystarczający. Muszę umieć wymieniać różne publikacje w różnych kategoriach (recenzowane i niezaangażowane). Gdyby istniało takie narzędzie jak ja, mogłem z łatwością utrzymać wiele plików bibtex i użyć bash-fu, aby to osiągnąć.

Odpowiedz

8

Chciałem tego samego z tego samego powodu (tworzenie strony internetowej przy użyciu Hakyll) i znalazłem "problem": plik CSL.

Pandoc, w rzeczywistości robi to zadanie doskonale i the solution provided by MacFarlane jest poprawne, ale brakuje wyjaśnienia na panowaniem CSL pliku-to jest to, co określa, czy masz zamiar mieć numerowaną odniesienia w tekście środkowej z listy publikacji w końcu lub nie.

Julien Tanguy stworzył CSL style that puts the publication simplied information from BibTeX in the place where the reference is cited, pochodzący ze stylu Chicago. Z pewnością możesz z niego korzystać (jest on objęty licencją Creative Commons Uznanie autorstwa-Na tych samych warunkach 3.0), ale możesz także tworzyć swoje.

Tak, teraz (długo po opublikowaniu pytania), mam nadzieję, że masz kompletną odpowiedź.

10

Możesz użyć do tego własnego wsparcia cytowania pandoc. Utwórz plik markdown wzdłuż następujących linii:

# Peer-reviewed papers 

1. [@me2001] 
2. [@me2002] 

# Non-peer-reviewed papers 

1. [@me1999] 
2. [@me1998] 

gdzie me1999 etc są klucze w pliku bibtex. Następnie znaleźć lub utworzyć plik CSL, które formatuje cytowań w sposób, który chcesz, a proces pandoc:

pandoc --bibliography mybiblio.bib --csl mycsl.csl -o citations.html -s citations.txt 

Albo można dodać -t markdown i uzyskać wersji markdown jeśli chcesz.

Jeśli nie chcesz ręcznie tworzyć pliku danych wejściowych, prawdopodobnie możesz napisać skrypt, aby wygenerować go z pliku bibtex, jeśli zawiera on wystarczające metadane do odróżnienia recenzowanych artykułów od recenzowanych przez innych recenzentów .

+1

To, co początkowo próbował. Co się dzieje, było to, że wprowadzenie w cytacie tekstowej w lokalizacji kluczy, takich jak (Me 2001), zamiast pełnego bibliograficznego cytatu.Pełna bibliografia została umieszczona na końcu dokumentu.Czy to tylko ze względu na CSL użyłem? – cledoux

+0

Czy to nadal działa John? Mam problem z odczytaniem cytatów podczas konwersji z .md na .md, kod podany powyżej nie działa dla mnie. – sebpardo

+0

Możesz użyć "cytatów" dla rmat za to. Zobacz tutaj: https://groups.google.com/d/msg/pandoc-discuss/DJ_XxxvkJEg/KjJ6iDiVAwAJ – twsh

0

Używam bibtexbrowser dla mojej osobistej strony. Jest to skrypt PHP, który można łatwo zintegrować z innymi stronami (o ile serwer obsługuje PHP). To rozwiązanie niestety nie generuje przecen, ale jest dość elastyczne i ma tę zaletę, że czyta bezpośrednio plik bibtex.

Alternatywnie możesz użyć bibtex2html (lub podobnego narzędzia) do wygenerowania HTML. Pandoc łączy wiele plików wejściowych i możesz użyć surowego html w Markdown, więc powinno być proste umieszczenie go w dowolnym miejscu. Możesz także użyć Pandoc, aby przekonwertować HTML na Markdown, jeśli Markdown ma być ostatecznym wyjściem.

1

Jak zauważyli inni, najprostszym sposobem osiągnięcia tego celu jest użycie odpowiedniego pliku CSL. Kieran Healy udostępnia taki plik w swoim repozytorium szablonów pandoc, hosted on GitHub.

Plik Chicago syllabus.csl sprawia malutką zmianę standardowej Chicago zauważa pliku CSL, dzięki czemu można używać go do wyjścia cytat informacje w tekście dokumentu. Dzięki temu jest on przydatny w przypadku list referencyjnych w życiorysach i sylabusach kursów.

Wystarczy pobrać plik i przekazać opcję --csl==<link to CSL-file> do pandoc (gdzie <link to CSL-file> jest ścieżką, gdzie został zapisany pobrany plik.

Powiązane problemy