
Estoy usando la última versión de Aquamacs en MacOS (y me pregunto por qué todas estas preguntas relacionadas con emacs están publicadas en tex.stackexchange.com y no en emacs.stackexchange.com).
Espero haber configurado mi Emacs correctamente. Al menos, estas son las definiciones relacionadas en .emacs
:
(setq reftex-extra-bindings t)
(require 'reftex)
(add-hook 'LaTeX-mode-hook 'turn-on-reftex)
(setq reftex-plug-into-AUCTeX t)
(require 'bibtex)
(bibtex-set-dialect 'biblatex)
(setq LaTeX-biblatex-use-Biber t)
(setq TeX-command-BibTeX "Biber")
(setq reftex-bibliography-commands
'("bibliography" "nobibliography" "addbibresource"))
(setq reftex-bibpath-environment-variables
'(".:~/lib/texmf/bibtex/bib//:/usr/local/texlive/texmf-local/bibtex/bib//:/usr/local/texlive/2018/texmf-dist/bibtex/bib//"))
; (reftex-use-external-file-finders t)
(setq reftex-external-file-finders
'(("tex" . "kpsewhich -format=.tex %f")
("bib" . "kpsewhich -format=.bib %f")))
Emacs se inicia sin quejas.
A continuación, configuro este MWE (solo para estar completo...) como archivo test.tex
:
\documentclass{scrbook}
\usepackage[T1]{fontenc}
\usepackage[backend=biber,style=numeric]{biblatex}
\addbibresource{computer.bib}
\begin{document}
% Waiting to insert \cite{} here
\end{document}
Agregué la línea \addbibresource{computer.bib}
de la forma habitual: C-cRET addbi
TABRET. En este punto, al presionar TAB, Emacs completa el comando \addbibresource
e inserta este comando LaTeX en el búfer, mientras todavía estoy en el Minibúfer, se me piden opciones. Me salté esa pregunta, presionando RETnuevamente. Ahora Emacs solicita (aún en el minibúfer) qué archivo de bibliografía desea utilizar. Escribí com
TABy Emacs volvió a completar con el nombre de archivo completo computer.bib
, que inserté con RET.
Sospecho que Emacs conocía la existencia de ~/lib/texmf/bibtex/bib/JB/computer.bib
y, por lo tanto, pudo completar su nombre de archivo, porque lo definí reftex-bibpath-environment-variables
(como se vio arriba).
Emacs también recibe instrucciones de escanear automáticamente los archivos LaTeX. Por lo tanto, en este momento el archivo generado automáticamente auto/test.el
muestra:
(TeX-add-style-hook
"test"
(lambda ()
(TeX-add-to-alist 'LaTeX-provided-package-options
'(("fontenc" "T1") ("biblatex" "backend=biber" "style=numeric")))
(add-to-list 'LaTeX-verbatim-environments-local "semiverbatim")
(add-to-list 'LaTeX-verbatim-environments-local "minted")
(add-to-list 'LaTeX-verbatim-environments-local "Verbatim")
(add-to-list 'LaTeX-verbatim-environments-local "Verbatim*")
(add-to-list 'LaTeX-verbatim-environments-local "BVerbatim")
(add-to-list 'LaTeX-verbatim-environments-local "BVerbatim*")
(add-to-list 'LaTeX-verbatim-environments-local "LVerbatim")
(add-to-list 'LaTeX-verbatim-environments-local "LVerbatim*")
(add-to-list 'LaTeX-verbatim-environments-local "SaveVerbatim")
(add-to-list 'LaTeX-verbatim-environments-local "VerbatimOut")
(add-to-list 'LaTeX-verbatim-macros-with-braces-local "hyperref")
(add-to-list 'LaTeX-verbatim-macros-with-braces-local "hyperimage")
(add-to-list 'LaTeX-verbatim-macros-with-braces-local "hyperbaseurl")
(add-to-list 'LaTeX-verbatim-macros-with-braces-local "nolinkurl")
(add-to-list 'LaTeX-verbatim-macros-with-braces-local "path")
(add-to-list 'LaTeX-verbatim-macros-with-braces-local "url")
(add-to-list 'LaTeX-verbatim-macros-with-delims-local "path")
(add-to-list 'LaTeX-verbatim-macros-with-delims-local "Verb")
(add-to-list 'LaTeX-verbatim-macros-with-delims-local "url")
(TeX-run-style-hooks
"latex2e"
"scrbook"
"scrbook10"
"fontenc"
"biblatex")
(LaTeX-add-bibliographies
"computer"))
:latex)
Tengo suerte de que la penúltima entrada muestre el archivo de bibliografía correcto "computer"
. Una prueba rápida en el terminal/shell da
<funnyprompt>:~$ kpsewhich bib computer.bib
/Users/tmjb/Library/texmf/bibtex/bib/JB/computer.bib
<funnyprompt>:~$ grep texstudio `kpsewhich bib computer.bib`
@Online{texstudio,
url = {http://texstudio.sourceforge.net/manual/current/usermanual_en.html},
Esto debería probar que el archivo existe y contiene una entrada con la clave deseada "texstudio".
EDITAR: ~/lib/
se expande en mi caso a /Users/tmjb/Library/
.
Luego muevo el cursor hacia abajo \begin{document}
y empiezo a insertar el \cite
comando - (nuevamente de la forma habitual): C-cc(este es un atajo para mí, igual que C-c[). Mientras estoy en el minibúfer, RefTeX me pide que inserte la expresión regular. Inserto texstudio
, que sé que existe en ese archivo de bibliografía determinado. Después de presionar, RETEmacs se queja Sorry, no matches found
. El cursor sale del Minibuffer y sigue esperando en el buffer principal, pero no se inserta ningún texto, ni siquiera el comando ya definido \cite
.
El *Message*
-buffer dice:
Making completion list...
(?=Help)
Scanning bibliography database test.bib
Sorry, no matches found
¿Por qué diablos Emacs quiere escanear test.bib
? Este archivo no existe en ninguna parte. ¡Tampoco estaba definido en ninguna parte (incluido el archivo LaTeX ni los archivos de configuración de emacs)!
¿Qué me perdí en mi configuración? Para que Emacs escaneara el archivo de bibliografía, pudo completar su nombre de archivo.
ACTUALIZAR
Según lo sugerido por Arash Esbati, lo reemplacé ~
con la ruta expandida /Users/tmjb
, finalmente incluso reinicié mi emacs, ¡y funcionó!
Eliminé las \addbibliography{...}
entradas de mi archivo y volví a ingresar los archivos de bibliografía agregando una \bibliography{tuc-thesis,latex-base,typographie,computer}
línea grande (cada uno de los archivos enumerados se completó en el minibúfer) y luego cuatro \addbibresource{}
nuevamente. Escribí C-cC-npara volver a escanear el archivo LaTeX. Luego verifiqué el archivo automático. Sorprendentemente, contenía sólo tres de los cuatro archivos bibliográficos. Independientemente de cómo configuré mi archivo, solo aquellos archivos de bibliografía que no estaban ubicados en el directorio local se enumeraban en el archivo automático.
Pude insertar un \cite{}
comando en el archivo maestro. Hasta ahora, este es un paso en la dirección correcta :-)
Después de haber insertado con éxito a \cite
en el archivo maestro, también pude insertar \cite
s en los subarchivos.
Lo que todavía no funciona correctamente es que el autocompletado de etiquetas no funciona para bibliografías que no están ubicadas en el directorio local. ¡Pero creo que puedo vivir con eso por el momento!