Lo que he aprendido: AUCTeX

Me he hartado de usar más de un programa y he decidido que las pocas veces que escriba en LaTeX a pelo lo haré también en Emacs. Así soy, cada día más simple. Para ello estoy usando AUCTeX, un modo hiperpotente que tiene una manual de solo 130 páginas y que se autodefine como un sofisticado entorno TeX para Emacs.

Lo curioso del tema es que instalé AUCTeX hace más de un año porque fue la única manera de hacer funcionar CDLaTeX, el modo menor que ayuda a crear entornos y movidas matemáticas y que uso con Org. En todo este año no he configurado AUCTeX y he seguido usando Texmaker y Kile por pura inercia. Ahora que lo he puesto a mi gusto y que llevo usándolo una semana, he desinstalado el resto de editores de LaTeX y no creo que vuelva atrás, ¡me encanta!

Unas órdenes básicas

Como siempre, para usar AUCTeX hay que instalarlo y activarlo, a mí se me activa solo al abrir un archivo con extensión .tex, pero si no fuera el caso, M-x LaTeX-mode y adelante. Cuidado con confundirlo con latex-mode, el modo para LaTeX que viene con Emacs. Sí, lo hacemos aposta para liar.

Usar AUCTeX es bastante sencillo, hay un par de atajos de teclado que valen para casi todo y que os listo aquí. La palabreja que pongo en cursiva es con lo que yo relaciono la combinación de teclas para acordarme (que puede o no ser la  idea del autor original).

  • C-c C-c (compile) ejecuta una orden, dando a TAB podemos ver las opciones, hay opciones molonas como Clean all y Clean que eliminan respectivamente todo lo creado por la compilación y solo los archivos auxiliares.
  • C-c C-v (view) muestra el resultado.
  • C-c C-e (environment) introduce un entorno y te va pidiendo los datos que necesite.
  • Si tenemos el activado el parser automático, con C-c C-a (all) deduce qué tiene que usar y compila las veces que haga falta. No viene activado por defecto porque tarda un poco. Esta historieta nos fabrica una carpeta `auto` con cosas dentro, no os asustéis como hice yo. En el archivo de configuración que he puesto más abajo podéis ver cómo se activa.

Como hereje del Emacs que soy os voy a decir algo: no hace falta aprenderse todo esto. Utilizad la GUI y los menús desplegables sin pudor alguno (yo lo hago, un botón tiene un leoncito muy cuqui).

Embellecedores

AUCTeX tiene herramientas interesantes para que nos resulte más sencillo escribir y entender lo que hemos escrito. Lo que yo llamo embellecedores son sus capacidades de sustituir las letras griegas y otros símbolos con su equivalente Unicode (prettify) y de escribir la letra que está entre etiquetas de formato con el formato en sí (fontify).

Así, cuando escribimos \omega nos pone una ω, si escribimos \emph{cosa en cursiva}, nos escribe el texto en cursiva y demás. Creo que la parte de cambiar la fuente viene activada por defecto pero para los símbolos hay que llamar al modo prettify-symbols-mode.

Tiene además un montón de opciones para previsualizar trocitos de documento, aunque yo no las uso porque estoy muy acostumbrada a escribir en LaTeX y generalmente no la organizo estoy acostumbrada a compilar y mirar los errores en el log por otros editores que he utilizado.

Doblado

Otra cosa que nos ayuda a la hora de leer lo que hemos escrito es el doblado (folding) que consiste en ocultar etiquetas como \section o \emph dejando solamente el texto con el formato.

Si activamos el modo de doblado con M-x TeX-fold-mode y hacemos C-c C-o C-b nos quita el barullo y nos deja un documento mucho más sencillo de leer. Haciendo click o entrando sobre el ítem doblado con el puntero vuelve a mostrarse como LaTeX.

Como esta herramienta me encanta, hago que Emacs me la active siempre cuando uso AUCTeX, más abajo en el archivo de configuración pone cómo lo he hecho.

Autocompletado

Esto ha sido sin duda lo más difícil de configurar, probablemente porque soy una novata del Emacs1 y pego cosas sin sentido en el archivo de configuración. Después de hurgar en diferentes modos y destruir, me he quedado con la variante para AUCTeX de Company mode que se llama contra todo pronóstico Company AUCTeX.

Para que me funcione tengo que activar  company-mode y luego evaluar (company-auctex-init) así que he puesto eso en el archivo de configuración, probablemente haya maneras mejores.

En fin, dejando a un lado la configuración, esto sirve para que según vayas escribiendo las órdenes Emacs te de sugerencias.

Buffer de Emacs con funcionamiento de company-auctex: al escribir \app predice appendix, approx y approxeq

En la imagen se ven además las variables locales que me ha escrito AUCTeX. Ese TeX-master: t significa que este archivo es el archivo maestro, algo muy útil cuando estamos usando subdocumentos, ya que podemos mandar la orden de compilar desde cualquiera de ellos y AUCTeX sabrá cuál es el maestro. Esto me aparece ahí porque le digo en el archivo de configuración que me pregunte la primera vez que compilo cuál es el archivo maestro con (setq-default TeX-master nil).

Otras magias

Este modo hace muchas más cosas, por ejemplo, M-RET al final de línea en un entorno predice lo que necesitamos en la línea siguiente, probadlo en las tablas, vais a ver.

He instalado además el paquete latex-extra para poder abrir y cerrar los títulos como hago en Org.

RefTeX

Estoy usando además RefTeX en combinación con AUCTeX para manejar las referencias y las citas. Este modo lo escribió el creador de Org y es utilísimo para las académicas como yo.

Os pongo un par de atajos que se aprenden rápido por la lógica que se usa generalmente al referenciar en el mundillo (referencias a algo del propio documento entre paréntesis y a la bibliografía entre corchetes):

  • C-c = crea un índice que nos permite navegar rápidamente por el documento.
  • C-c ( crea una etiqueta (\label)
  • C-c ) inserta una referencia (`\ref`) a una etiqueta previamente definida
  • C-c [ hace una referencia a una referencia bibliográfica (`\cite`). Dando a la combinación de teclas y escribiendo el nombre de un autor o autora busca en el archivo de bibliografía definido en `\bibliography` y muestra diferentes opciones. A mí al principio me funcionó raro y solo me dejaba buscar la palabra anterior a donde tecleaba la combinación.

Tiene muchas más opciones pero yo tengo un tiempo de vida limitado.

 

Archivo de configuración

Añadiendo todas las cosas que he comentado, la parte de AUCTeX del archivo de configuración me queda así:

;; Activar CDLaTeX
(add-hook 'LaTeX-mode-hook 'turn-on-cdlatex)
;; Activar prettify
(add-hook 'LaTeX-mode-hook 'prettify-symbols-mode)

;; Autocompletar
(add-hook 'LaTeX-mode-hook (lambda ()(company-mode 1)))
(company-auctex-init)

;; Pide archivo maestro, para documentos con subdocumentos
(setq-default TeX-master nil)

;; Parser automático
(setq TeX-parse-self t) ; activar el parser al cargar
(setq TeX-auto-save t) ; activar el parser al guardar

;; Fold por defecto
(add-hook 'LaTeX-mode-hook (lambda ()(TeX-fold-mode 1)))

;; Activar RefTeX
(add-hook 'LaTeX-mode-hook 'turn-on-reftex)
(setq reftex-plug-into-AUCTeX t)

;; LaTeX extra para tener doblado de secciones como Org
(add-hook 'LaTeX-mode-hook #'latex-extra-mode)

Estoy muy contenta. hay que saber de LaTeX para sacarle partido, pero es maravilloso. Hasta he grabado un minivídeo para que se viesen algunas de las cosas de las que hablo2:

Lo único raro que me ocurre es que no me cierra los paréntesis. Los corchetes, las llaves y los dólares sí, el problema solo es con los paréntesis.

Si fuera perfecto no sería divertido.

Referencias

Manual de AUCTeX

Chuleta de AUCTeX (pdf)

What is your favorite Emacs and/or AUCTeX command/trick? en TeXExchange

Manual de RefTeX

How can I make AUCTeX use the spelling dictionary in the same language as babel is loaded with? en TeXExchange

Useful shortcuts or key bindings or predefined commands for emacs+AUCTeX en TeXExchange

Company AUCTeX

Company mode

Actualización (21/03/2019)

En Vim se puede hacer más o menos lo mismo, tenéis un ejemplo en el flujo de trabajo de este chico para coger apuntes


Sonando este homenaje a Cantona, un futbolista que tiene los nada desdeñables méritos de salir en una película de Ken Loach, decirle a la peña que sacase su dinero del banco para hacer caer el sistema y darle una patada voladora en la boca a un racista.


  1. Me estoy leyendo los artículos de Notxor sobre Elisp y pronto sabré lo que hago ¡JA! 
  2. Y esta en Archive, que te den Google

3 pensamientos en “Lo que he aprendido: AUCTeX

  1. Javi

    ¡Si LaTeX mola, LaTeX en Emacs mola el doble!
    Solo quería mencionar que una cosa que he incluido en mi configuración es la siguiente, por si te sirve:

    (setq-default TeX-engine 'xetex)
    

    Para que la compilación haga uso automáticamente de XeTeX en lugar de pdflatex u otro motor.
    Pero del resto de opciones que mencionas no tenía ni idea, me las apunto. ¡Gracias!

    Responder
    1. Ondiz Autor de la entrada

      ¡Hola! ¡Qué bien que te pases por el blog!

      Compilo con xelatex en org, pero AUCTeX lo uso para escribir papers y en algunas revistas me han obligado a compilar con pdflatex, no lo he cambiado para no llevarme la sorpresita al subir el artículo a la plataforma.

      Así que cambiaré el compilador en las variables locales.

      Gracias por comentar 🙂

      Responder
  2. Pingback: En qué ando: febrero | Onda Hostil

¡Opina sin miedo! (Puedes usar Markdown)

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión /  Cambiar )

Google photo

Estás comentando usando tu cuenta de Google. Cerrar sesión /  Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión /  Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión /  Cambiar )

Conectando a %s