Estoy tratando de usar org-mode
para hacer casi todo. En mi actividad de escritura científica, me gustaría dibujar un artículo completo en un .org
archivo y luego exportarlo en LaTeX. No quiero cargar el .bib
archivo bibtex en el, init.el
ya que podría tener varios. Por ahora, he agregado esto al principio de mi .org
archivo:
#+BEGIN_SRC elisp
(setq reftex-default-bibliography '("./references.bib"))
#+END_SRC
Pero tengo que ejecutarlo manualmente cada vez. ¿Hay alguna manera de hacerlo automático? Lo óptimo sería tener una directiva al comienzo de cada .org
archivo que diga emacs: "ok, ahora debes cargar este .bib
archivo". Alguna pista? Gracias.
org-mode
reftex-mode
bibtex
petrux
fuente
fuente
M-x add-file-local-variable
#+STARTUP: do this
.add-file-local-variable-prop-line
I podría generar la# -*- reftex-default-bibliography: ("./references.bib"); -*-
línea al comienzo del archivo.Respuestas:
Agregar una línea como la siguiente es suficiente para indicar
org-mode
qué.bib
archivo consultar:refs
es el nombre del archivo BibTeX (se.bib
omite la extensión) yplain
es elbibliographystyle
.Luego puede llamar
org-reftex-citation
(vinculadoC-c C-x [
de forma predeterminada) para insertar referencias.De la documentación:
Como sugiere la última oración, deberá agregar
a su archivo init para asegurarse de que las referencias se exporten a LaTeX correctamente. Cuando configuré esto por mí mismo, descubrí que también necesitaba personalizarlo
org-latex-pdf-process
para que las exportaciones de PDF funcionaran:Apéndice
Si no desea utilizar el enlace predeterminado para
org-reftex-citation
, puede configurar un enlace de clave personalizado para él. Por ejemplo, lo siguiente se uneorg-reftex-citation
al enlace predeterminado parareftex-citation
:fuente
# -*- reftex-default-bibliography: ("./references.bib"); -*-
equivalentes, con la ventaja de que puedo usar el enlace de teclas RefTeX habitual para agregar una nueva referencia. ¿Me estoy perdiendo de algo? ¿Vamos a editar la respuesta para que sea más completa para cualquier futuro lector? Gracias.org-reftex-citation
a la misma secuencia de teclas quereftex-citation
normalmente usa ... Vea las actualizaciones de mi respuesta.org-reftex-citation
? Si agrego un segundo#+BIBLIOGRAPHY
, entonces el primero parece ser ignorado.(setq reftex-default-bibliography '("./a.bib" "./b.bib"))
parece hacer el truco. También lo hace# -*- reftex-default-bibliography: ("./refs1.bib" "./refs2.bib"); -*-
, aunque arroja una advertencia de que esta variable no debe definirse localmente.Parece que ox-bibtex no está incluido en el último paquete de organización (8.2.10-34-gc41bbc-elpa). Así que lo busqué en línea y lo puse en el directorio / org / lisp / una vez descargado. Pero me encontré con el siguiente error al intentar hacer una exportación que involucra algún bibtex.
Luego verifico el archivo 'org-element.el', por supuesto, no existe tal función predefinida. ¿Pero por qué no está ahí? El documento API en línea de org-element lo mencionó en una vez .
Así que supongo que actualmente es imposible usar RefTeX como se describe en el documento, a menos que esté dispuesto a cambiar a la versión beta o alguna anterior. Ver
Aquí comparto mi manera de usar la versión beta
git clone git://orgmode.org/org-mode.git
Mueve la carpeta
~/.emacs.d/
y nómbrala comoorg-beta
Modifique
load-path
, deje que la versión beta sombree otra versión e incluya el directorio de contribución del usuario(opcional) puede usar el comando make para compilar el archivo fuente y compilar el documento
Ahora puedes
(require 'ox-bibtex)
. Prefiero escribir así:(eval-after-load 'org (require 'ox-bibtex))
Para generar una lista de referencia en el lugar correcto, coloque algo parecido
#+BIBLIOGRAPHY: your_bib_lib_name plain option:-d
al final del archivo de organización. Más opciones, consulte el documento de ayuda enox-bibtex.el
Para que la parte de exportación HTML funcione correctamente, es posible que necesite la última bibtex2html, es decir, 1.98. Para compilarlo desde el código fuente, descárguelo de github y siga las instrucciones del documento de ayuda 'README'.
Si está utilizando ventanas como yo, use Cygwin64 con todos los paquetes de desarrollo. Usando Cygwin64, cd al directorio de bibtex2html, y escriba
./configure
, wait finish, luego escribamake
, wait finish. Ahora en este directorio, obtendrábib2bib.exe
,bibtex2html.exe
yaux2bib
. Cópielos en algún directorio en su entorno varPATH
. Pruébelo escribiendobibtex2html
el cmd.Tengo que hacer el trabajo anterior porque uso texlive2014. Si usted es un usuario de miktek, bibtex2html 1.95 puede funcionar bien, lo que se puede instalar fácilmente con un instalador de Windows.
Para que la parte de exportación de PDF funcione correctamente, use el siguiente código para inicializar su modo de organización:
Es la parte 'bibtex' que hace el trabajo. Uso el comando de escape de shell para el paquete de látex acuñado.
fuente
contrib/lisp
, que incluyen ox-bibtex. Por lo que tendría que instalar org-mode de la fuente incluyendocontrib/lisp
o simplemente copiarox-bibtex.el
a su load-path.org-mode
desde la fuente para obtener elcontrib
directorio. Como se explica aquí , Org tiene su propio archivo ELPA. Todo lo que necesita hacer es agregar ese archivo apackage-archives
; luego puede instalar (y actualizar)org-plus-contrib
usando el administrador de paquetes. Por supuesto, esto no quiere decir que el enfoque que sugiera no funcione; Solo quería mencionar (para cualquier otra persona que se encuentre con esta discusión) que hay otro enfoque que no implica la sobrecarga de tener que actualizarorg-mode
por separadogit
.