J'essaye d'utiliser org-mode
pour faire presque tout. Dans mon activité d'écriture scientifique, je souhaite esquisser un document entier dans un .org
fichier puis exporter dans LaTeX. Je ne veux pas charger le .bib
fichier bibtex dans le init.el
car je pourrais en avoir plusieurs. Pour l'instant, j'ai ajouté ceci en tête de mon .org
dossier:
#+BEGIN_SRC elisp
(setq reftex-default-bibliography '("./references.bib"))
#+END_SRC
Mais je dois l'exécuter manuellement à chaque fois. Existe-t-il un moyen de le rendre automatique? L'optimal serait d'avoir une directive au début de chaque .org
fichier disant emacs: "ok, maintenant vous devez charger ce .bib
fichier". Un indice? Merci.
org-mode
reftex-mode
bibtex
Petrux
la source
la source
M-x add-file-local-variable
#+STARTUP: do this
.add-file-local-variable-prop-line
I, je pouvais générer la# -*- reftex-default-bibliography: ("./references.bib"); -*-
ligne au début du fichier.Réponses:
L'ajout d'une ligne comme celle-ci suffit pour dire
org-mode
quel.bib
fichier consulter:refs
est le nom du fichier BibTeX (.bib
extension omise), etplain
est lebibliographystyle
.Vous pouvez ensuite appeler
org-reftex-citation
(liéC-c C-x [
par défaut) pour insérer des références.De la documentation:
Comme le suggère la dernière phrase, vous devrez ajouter
dans votre fichier init pour vous assurer que les références sont correctement exportées vers LaTeX. Lorsque j'ai configuré cela pour moi-même, j'ai constaté que je devais également personnaliser
org-latex-pdf-process
pour que les exportations PDF fonctionnent:Addenda
Si vous ne souhaitez pas utiliser la liaison par défaut pour
org-reftex-citation
, vous pouvez configurer une liaison de clé personnalisée pour celle-ci. Par exemple, ce qui suit se lieorg-reftex-citation
à la liaison par défaut pourreftex-citation
:la source
# -*- reftex-default-bibliography: ("./references.bib"); -*-
équivalent, avec l'avantage que je peux utiliser la liaison de clé RefTeX habituelle pour ajouter une nouvelle référence. Suis-je en train de manquer quelque chose? Faut-il éditer la réponse afin de la rendre plus complète pour tout futur lecteur? Merci.org-reftex-citation
à la même séquence de touchesreftex-citation
normalement utilisée ... Voir les mises à jour de ma réponse.org-reftex-citation
? Si j'ajoute une seconde#+BIBLIOGRAPHY
, alors la première semble être ignorée.(setq reftex-default-bibliography '("./a.bib" "./b.bib"))
semble faire l'affaire. Il en va de# -*- reftex-default-bibliography: ("./refs1.bib" "./refs2.bib"); -*-
même, bien qu'il lance un avertissement que cette variable ne doit pas être définie localement.Il semble que ox-bibtex ne soit pas inclus dans le dernier package org (8.2.10-34-gc41bbc-elpa). Je l'ai donc cherché en ligne et mis dans le répertoire / org / lisp / une fois téléchargé. Mais j'ai rencontré l'erreur suivante en essayant de faire une exportation impliquant du bibtex.
Ensuite, je vérifie le fichier 'org-element.el', bien sûr il n'y a pas une telle fonction prédéfinie. Mais pourquoi n'y en a-t-il pas? Le document API en ligne de org-element l'a mentionné une fois .
Donc, je suppose qu'il est actuellement impossible d'utiliser RefTeX comme le décrit le document, sauf si vous êtes prêt à passer à la version bêta ou à une version plus ancienne. Voir
Ici, je partage ma façon d'utiliser la version bêta
git clone git://orgmode.org/org-mode.git
Déplacez le dossier vers
~/.emacs.d/
et nommez-leorg-beta
Modifiez
load-path
, laissez la version bêta masquer une autre version et incluez le répertoire de contribution de l'utilisateur(facultatif) vous pouvez utiliser la commande make pour compiler le fichier source et créer le document
Maintenant c'est possible
(require 'ox-bibtex)
. Je préfère écrire comme ceci:(eval-after-load 'org (require 'ox-bibtex))
Afin de générer la liste de référence au bon endroit, mettez quelque chose comme
#+BIBLIOGRAPHY: your_bib_lib_name plain option:-d
à la fin du fichier org. Pour plus d'options, reportez-vous au document d'aide dansox-bibtex.el
Pour que la partie d'exportation HTML fonctionne correctement, vous pouvez avoir besoin de la dernière version de bibtex2html, c'est-à-dire 1.98. Pour le construire à partir de la source, téléchargez-le depuis github et suivez les instructions du document d'aide 'README'.
Si vous utilisez des fenêtres comme moi, utilisez Cygwin64 avec tous les packages devel. En utilisant Cygwin64, cd dans le répertoire de bibtex2html, et tapez
./configure
, attendez la fin, puis tapezmake
, attendez la fin. Maintenant, dans ce répertoire, vous obtiendrezbib2bib.exe
,bibtex2html.exe
etaux2bib
. Copiez-les dans un répertoire de votre environnement varPATH
. Testez-le en tapantbibtex2html
le cmd.Je dois faire le travail ci-dessus car j'utilise texlive2014. Si vous êtes un utilisateur de miktek, bibtex2html 1.95 peut bien fonctionner, ce qui peut être facilement installé avec un programme d'installation Windows.
Pour que la partie d'exportation PDF fonctionne correctement, utilisez le code suivant pour initialiser votre mode d'organisation:
C'est la partie «bibtex» qui fait le travail. J'utilise la commande shell escape pour le paquet fabriqué de latex.
la source
contrib/lisp
, qui comprend ox-bibtex. Vous devez donc installer le mode organisation à partir de la source, y compriscontrib/lisp
ou simplement copierox-bibtex.el
sur votre chemin de chargement.org-mode
partir des sources pour obtenir lecontrib
répertoire. Comme expliqué ici , Org possède ses propres archives ELPA. Tout ce que vous devez faire est d'ajouter cette archive àpackage-archives
; vous pouvez ensuite installer (et mettre à jour)org-plus-contrib
à l'aide du gestionnaire de packages. Bien sûr, cela ne veut pas dire que l'approche que vous proposez ne fonctionne pas; Je voulais juste mentionner (pour tous ceux qui rencontrent cette discussion) qu'il existe une autre approche qui n'implique pas la surcharge d'avoir à mettre à jourorg-mode
séparément viagit
.