2012-11-24 5 views
15

Wie kann ich automatisch eine Literaturliste aus einer Bibtex-Datei erstellen, vorzugsweise im Abschriftenformat (genauer gesagt im Pandoc-Format)?Bibliographie von bibtex in pandoc/markdown ohne Inline-Literatur automatisch erstellen

Ich bin dabei, meine persönliche, akademische Website zu erstellen. Wie die meisten persönlichen, akademischen Websites, schließe ich eine Seite ein, die meine Publikationen auflistet. Ich möchte jedoch nicht jedes Zitat von Hand schreiben, also versuche ich eine automatisierte Methode zu finden, um die Zitate aus einer oder mehreren Bibtex-Dateien zu erstellen.

Idealerweise würde es ein Werkzeug geben, mit dem ich einfach eine Bibtex-Datei mit meinen Publikationen übergeben könnte, und es würde Markdown ausspucken (Ich benutze Pandoc + Makefile, um die Site zu erstellen). Mir ist momentan kein solches Werkzeug bekannt.

Noch komplizierter meine Bedürfnisse ist die Tatsache, dass eine einfache flache Auflistung von Publikationen nicht ausreicht. Ich muss in der Lage sein, verschiedene Publikationen in verschiedenen Kategorien aufzulisten (peer reviewed und nicht peer reviewed am allerwenigsten). Obwohl, wenn ein Werkzeug, wie ich es mir gewünscht habe, existiert, könnte ich einfach mehrere Bibtex-Dateien verwalten und einige bash-fu verwenden, um dies zu erreichen.

Antwort

8

Ich wollte das gleiche aus dem gleichen Grund (Erstellen einer Website mit Hakyll) und ich fand das "Problem": die CSL-Datei.

Pandoc in der Tat, übernimmt diese Aufgabe perfekt und the solution provided by MacFarlane richtig ist, aber es fehlt Erklärung über die Herrschaft der CSL-Datei-es ist was passiert, wenn Sie mit einer Liste eine nummerierte Referenz in der Mitte Text gehen zu müssen, definiert von Publikationen am Ende oder nicht.

Julien Tanguy hat eine CSL style that puts the publication simplied information from BibTeX in the place where the reference is cited, abgeleitet von Chicago Style erstellt. Natürlich können Sie es verwenden (es ist unter Creative Commons Attribution-Share Alike 3.0 lizenziert), aber Sie können auch Ihre erstellen.

So, jetzt (eine lange Zeit nachdem Sie die Frage gestellt haben), hoffe ich, dass Sie die vollständige Antwort haben.

10

Sie können dafür die eigene Zitatunterstützung von Pandoc verwenden. Erstellen Sie eine Datei Abschlags entlang der folgenden Zeilen:

# Peer-reviewed papers 

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

# Non-peer-reviewed papers 

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

wo me1999 etc sind die Schlüssel in Ihrer bibtex-Datei. Dann finden oder eine CSL-Datei erstellen, die Zitate in der Art und Weise formatiert möchten Sie und Prozess mit pandoc:

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

Oder Sie können -t markdown hinzufügen und eine Abschlags Version erhalten, wenn Sie es wünschen.

Wenn Sie die Eingabemarkierungsdatei nicht von Hand erstellen möchten, könnten Sie wahrscheinlich ein Skript schreiben, um es aus Ihrer bibtex-Datei zu generieren, wenn es genügend Metadaten enthält, um zwischen Peer-Review-Artikeln und nicht-peer-reviewten Papers zu unterscheiden .

+1

Dies ist, was ich ursprünglich versucht. Was passiert war, dass es anzog ein Zitierverfahren an der Stelle der Schlüssel, wie etwa (Me 2001), anstelle des vollständigen bibliographischen Zitats. Die vollständige Bibliographie wurde am Ende des Dokuments eingefügt. Ist dies nur aufgrund der CSL, die ich verwendet habe? – cledoux

+0

Does das funktioniert immer noch John? Ich habe Probleme, die Zitate geparst zu bekommen, wenn ich von .md zu .md umwandle; der Code, der oben zur Verfügung gestellt wird, funktioniert nicht für mich. – sebpardo

+0

Sie können die 'Markdown-Zitate' für verwenden rmat dafür. Siehe hier: https://groups.google.com/d/msg/pandoc-discuss/DJ_XxxvkJEg/KjJ6iDiVAwAJ – twsh

0

Ich verwende bibtexbrowser für meine persönliche Website. Es ist ein PHP-Skript, das leicht in andere Webseiten integriert werden kann (solange der Server PHP unterstützt). Diese Lösung erzeugt leider keinen Abschlag, aber sie ist ziemlich flexibel und hat den Vorteil, dass sie direkt die bibtex-Datei liest.

Alternativ können Sie bibtex2html (oder ein ähnliches Tool) verwenden, um HTML zu generieren. Pandoc verkettet mehrere Eingabedateien und Sie können Roh-HTML innerhalb von Markdown verwenden, daher sollte es einfach sein, es an einer beliebigen Stelle einzufügen. Sie können Pandoc auch verwenden, um HTML in Markdown zu konvertieren, wenn Markdown Ihre endgültige Ausgabe sein muss.

1

Wie andere darauf hingewiesen haben, ist der einfachste Weg, dies zu erreichen, die Verwendung einer geeigneten CSL-Datei. Kieran Healy stellt eine solche Datei in seinem pandoc-templates-Repository zur Verfügung, hosted on GitHub.

Die Chicago-syllabus.csl Datei macht eine kleine Änderung an einen Standard Chicago Notes-CSL-Datei, so dass Sie es zur Ausgabe Zitat Informationen im Text eines Dokuments verwenden können. Dies macht es nützlich für Referenzlisten in Lebensläufe und Kurslehrpläne.

einfach die Datei herunterladen und die Option --csl==<link to CSL-file> zu pandoc geben (wo <link to CSL-file> ist der Pfad zu dem Sie die heruntergeladene Datei gespeichert haben.

Verwandte Themen