Ich versuche org-mode
fast alles zu machen. In meiner wissenschaftlichen Schreibtätigkeit möchte ich eine ganze Arbeit in einer .org
Datei skizzieren und dann in LaTeX exportieren. Ich möchte die .bib
bibtex-Datei nicht in die laden, init.el
da ich mehrere haben könnte. Im Moment habe ich dies am Anfang meiner .org
Datei hinzugefügt :
#+BEGIN_SRC elisp
(setq reftex-default-bibliography '("./references.bib"))
#+END_SRC
Aber ich muss es jedes Mal manuell ausführen. Gibt es eine Möglichkeit, es automatisch zu machen? Das Optimum wäre eine Direktive am Anfang jeder .org
Datei, die emacs sagt: "ok, jetzt solltest du diese .bib
Datei laden ". Irgendein Hinweis? Vielen Dank.
org-mode
reftex-mode
bibtex
petrux
quelle
quelle
M-x add-file-local-variable
#+STARTUP: do this
.add-file-local-variable-prop-line
könnte ich die# -*- reftex-default-bibliography: ("./references.bib"); -*-
Zeile am Anfang der Datei erzeugen .Antworten:
Das Hinzufügen einer Zeile wie der folgenden reicht aus, um anzugeben,
org-mode
welche.bib
Datei abgerufen werden soll:refs
ist der Name der BibTeX-Datei (.bib
Erweiterung weggelassen), undplain
ist diebibliographystyle
.Sie können dann anrufen
org-reftex-citation
(C-c C-x [
standardmäßig gebunden ), um Referenzen einzufügen.Aus der Dokumentation:
Wie der letzte Satz andeutet, müssen Sie hinzufügen
in Ihre Init-Datei, um sicherzustellen, dass die Referenzen ordnungsgemäß nach LaTeX exportiert werden. Als ich dies für mich selbst einrichtete, stellte ich fest, dass ich auch Anpassungen
org-latex-pdf-process
vornehmen musste, damit PDF-Exporte funktionieren:Nachtrag
Wenn Sie die Standardbindung für nicht verwenden möchten
org-reftex-citation
, können Sie eine benutzerdefinierte Schlüsselbindung dafür einrichten. Beispiel: Folgendes wird anorg-reftex-citation
die Standardbindung für gebundenreftex-citation
:quelle
# -*- reftex-default-bibliography: ("./references.bib"); -*-
Äquivalent sehe , mit dem Vorteil, dass ich die übliche RefTeX-Schlüsselbindung verwenden kann, um eine neue Referenz hinzuzufügen. Vermisse ich etwas? Sollen wir die Antwort bearbeiten, um sie für zukünftige Leser vollständiger zu machen? Vielen Dank.org-reftex-citation
dieselbe Tastenfolge binden , diereftex-citation
normalerweise verwendet wird ... Siehe die Aktualisierungen zu meiner Antwort.org-reftex-citation
. Wenn ich eine Sekunde hinzufüge#+BIBLIOGRAPHY
, scheint die erste ignoriert zu werden.(setq reftex-default-bibliography '("./a.bib" "./b.bib"))
scheint den Trick zu tun.# -*- reftex-default-bibliography: ("./refs1.bib" "./refs2.bib"); -*-
Dies gilt auch , obwohl eine Warnung ausgegeben wird, dass diese Variable nicht lokal definiert werden sollte.Es scheint, dass ox-bibtex nicht im neuesten org-Paket enthalten ist (8.2.10-34-gc41bbc-elpa). Also suchte ich es online und legte es in das Verzeichnis / org / lisp /, sobald es heruntergeladen war. Aber ich bin auf folgenden Fehler gestoßen, als ich versucht habe, einen Export mit Bibtex durchzuführen.
Dann überprüfe ich die Datei 'org-element.el', natürlich ist keine solche Funktion vordefiniert. Aber warum ist es nicht da? Das Online-API-Dokument von org-element hat es einmal erwähnt .
Ich vermute, dass es derzeit unmöglich ist, RefTeX so zu verwenden, wie es im Dokument beschrieben wird, es sei denn, Sie sind bereit, auf die Betaversion oder eine ältere Version zu wechseln. Sehen
Hier teile ich meinen Weg, um die Beta-Version zu nutzen
git clone git://orgmode.org/org-mode.git
Verschieben Sie den Ordner in
~/.emacs.d/
und benennen Sie ihn alsorg-beta
Ändern Sie
load-path
, lassen Sie die Betaversion eine andere Version spiegeln und fügen Sie das Verzeichnis hinzu, in das der Benutzer Beiträge eingibt(Optional) Mit dem Befehl make können Sie die Quelldatei kompilieren und das Dokument erstellen
Jetzt kannst du
(require 'ox-bibtex)
. Ich schreibe lieber so:(eval-after-load 'org (require 'ox-bibtex))
Um eine Referenzliste an der richtigen Stelle zu
#+BIBLIOGRAPHY: your_bib_lib_name plain option:-d
erstellen , setzen Sie etwas an das Ende der Organisationsdatei. Weitere Optionen finden Sie im Hilfedokument inox-bibtex.el
Damit der HTML-Export richtig funktioniert, benötigen Sie möglicherweise das neueste bibtex2html, also 1,98. Um es aus dem Quellcode zu erstellen, laden Sie es von github herunter und folgen Sie den Anweisungen im Hilfedokument 'README'.
Wenn Sie Windows wie ich verwenden, verwenden Sie Cygwin64 mit allen Entwicklungspaketen. Wechseln Sie mit Cygwin64 in das Verzeichnis von bibtex2html und geben Sie
./configure
, wait finish und dannmake
, wait finish ein. Jetzt in dieser Richtung werden Sie bekommenbib2bib.exe
,bibtex2html.exe
undaux2bib
. Kopieren Sie sie in ein Verzeichnis in Ihrer UmgebungPATH
. Testen Sie es, indem Siebibtex2html
den Befehl "cmd" eingeben .Ich muss den obigen Job machen, weil ich texlive2014 benutze. Wenn Sie ein Miktek-Benutzer sind, funktioniert bibtex2html 1.95 möglicherweise nur gut, was mit einem Windows-Installationsprogramm einfach installiert werden kann.
Verwenden Sie den folgenden Code zum Initialisieren Ihres Organisationsmodus, damit der PDF-Exportteil ordnungsgemäß funktioniert:
Es ist der 'bibtex'-Teil, der die Arbeit erledigt. Ich benutze den Shell-Escape-Befehl für eine geprägte Latexpackung.
quelle
contrib/lisp
denen ox-bibtex enthalten ist. So würden Sie org-Modus von der Quelle installieren müssen einschließlichcontrib/lisp
oder kopieren Sie einfachox-bibtex.el
auf Ihren Last-Pfad.org-mode
von der Quelle zu installieren , um dascontrib
Verzeichnis abzurufen . Wie hier erklärt , hat Org ein eigenes ELPA-Archiv. Alles, was Sie tun müssen, ist das Archiv hinzuzufügenpackage-archives
; Sie können dannorg-plus-contrib
mithilfe des Paketmanagers installieren (und aktualisieren) . Dies bedeutet natürlich nicht, dass der von Ihnen vorgeschlagene Ansatz nicht funktioniert. Ich wollte nur erwähnen (für jeden anderen, der auf diese Diskussion stößt), dass es einen anderen Ansatz gibt, der nicht den Overhead mit sich bringt,org-mode
separat aktualisiert zu werdengit
.