Tucumn
Emacs y LaTeX
autor Gustavo Cortez Wednesday, 10 de October de 2007 Modificado el Wednesday, 10 de October de 2007
Haca un buen tiempo que no escriba algn artculo interesante para la comunidad de software libre por este medio. Pero con un poco ms de frecuencia lo haca en mi blog. Ahora es la oportunidad de mostrar de lleno las bondades y caractersticas del mejor entorno de edicin para documentos TeX. No quiero entrar en la discusin de si Emacs es mejor que Vim, o mejor que Nano, Pico, etc. No es el objetivo de este artculo. Sino ms bien demostrar lo que Emacs es capaz de hacer y trabajar con este tipo de documentos como si fuera un entorno especialmente diseado para ello. No se mucho sobre Vim, y tampoco averigu demasiado, pero creo que la mayora de las personas que trabajan con LaTeX recomiendan Emacs, aunque Vim tambin puede llegar a ser un potente entorno de programacin. Quizs porque los dos ofrecen la misma potencia y flexibilidad para trabajar, sea objeto de la constante lucha entre ambos. En este artculo intento explicar de manera rpida y resumida como comenzar a escribir documento LaTeX con un bonito entorno de programacin como lo es Emacs con sus modos mayor activado para el resaltado de sintaxis y la comodidad de apretar botones para previsualizar o lanzar un consola si se necesita hacer algunas tareas rpidas en la linea de comandos. Tambin encontrarn una manera de compilar sus documentos en el formato que mejor les convenga y as tambin como un breve ejemplo introductorio a LaTeX. Requisitos Para comenzar a componer documentos en LaTeX, es necesario tener Emacs en su versin 22 (o 21 si no quieren usar ACCEPT_KEYWORDS="~x86" con Gentoo), y los siguientes paquetes: - AUC TeX: es un paquete de ampliacin de emacs que permite agregar ttulos, secciones, listas, etc., mediante combinaciones de teclas. Adems probee al entorno visual de Emacs de resaltado de sintaxis tanto en colores como en tamao de las fuentes. Adems permite visualizar el esqueleto de un documento de forma comprimida, permitiendonos saltar a cualquier prrafo de alguna seccin rpidamente sin necesidad de desplazar por todo el documento. - RefTeX: es una paquete que a partir de la versin 21 de Emacs, ya viene incorporado en la distribucin oficial, as que no es necesario instalarlo. Este paquete ofrece diversa funcionalidades con respecto al manejo de las referencias cruzadas, etiquetas, etc. - BibTeX: tambin esta incluido en la distribucin a partir de su versin 21, y permite el manejo del archivo de referencias bibliogrficas, artculos, sitios web, prrafos, etc.De esta manera ya deberamos tener un entorno totalmente funcional, pero antes Emacs debe saber cmo tratar a los archivos .tex. La manera de hacerlo es incluyendo una sentencia al archivo .emacs para que cargue el modo en cuestin al abrir o crear un archivo con extensin .tex:(setq TeX-default-mode '"LaTeX-mode"); (setq TeX-default-mode t); Pero como estoy usando Gentoo, para tener todo compilado y listo para usar, solo hice: - ACCEPT_KEYWORDS="~x86" emerge emacs app-emacs/auctexAl terminar de compilar e instalar los binarios, el ltimo mensaje que se recibe de Portage es que para activar los modos mayores instalados mediante emerge, se tiene que agregar la siguiente linea al archivo .emacs: (load "/usr/share/emacs/site-lisp/site-gentoo" nil t) Ajustes de edicin Para no cansar de tanto palabreros e ir directamente a lo que nos interesa, que es escribir 'lo que sea' en LaTeX, solamente voy a comentar algunos parmetros que utilizo en la configuracin de mi Emacs para hacer ms efectiva y segura la edicin. Se trata de la copia de seguridad y control de versiones de los archivos de edicin. Esto puede llegar a ser muy til por si tenemos problemas con las ltimas modificaciones realizadas o si cortan la luz (algo muy comn por aqu), siempre podemos volver a recuperar el documento, en mi caso usando el nmero de documentos guardados por defecto que es de cinco versiones. Las lineas que agregu a .emacs para esta tarea son: (setq version-control t) (setq backup-directory-alist (quote ((".*" . "~/.emacs_backups/")))) (setq delete-old-versions t) La primera indica que se debe hacer un control de versiones del documento. La segunda le dice a Emacs que a las copias de seguridad de las versiones las guarde en un directorio creado por mi llamado .emacs_backups. La ltima linea indica que elimine las copias viejas, cosa que a mi no me gusta tener, pero quizs alguien encuentre mantener todo este historial como lo hacen los grandes servicios como Google Docs o similares.
Una ltima sugerencia para un "Happy TeXing" es activar el modo auto-filling, que ayuda mucho a la hora de escribir un documento y detectar errores en la linea. Esto se debe a que Emacs por defecto, como lo hacen muchos otros editores de texto, al llegar al final de la linea no agregan una nueva linea ni caracter de retorno de carro, sino que continuan la linea con un smbolo que indica que sigue abajo. Al escribir un documento, esta convencin puede resultar un poco
http://www.lugtucuman.org.ar Potenciado por Joomla! Generado: 24 November, 2007, 18:29
L.U.G. Tucumn
confusa, por varios motivos. Uno es que al depurar el documento, y teniendo en cuenta que cada prrafo es una sola linea, sera ms difcil encontrar el error en una sola linea con mucho texto. El otro motivo (y quizs haya ms) es que mejor el arpecto visual del documento y lo hace transportable para cualquier editor de texto que soporten o no auto-fill. La siguiente linea en .emacs activa el modo auto-fill por defecto: (add-hook 'LaTeX-mode-hook 'turn-on-auto-fill)Primer ejemplo Listo, basta de palabreros y empecemos a escribir un documento. Para empezar abrimos Emacs y con C-x C-f abrimos un archivo .tex o escribimos el nombre del nuevo documento.tex. El esquema tradicional de un artculo puede ser el siguiente: % <-- Inicio de preambulo --> % Tipo y clase de documento \documentclass[a4paper,12pt,oneside]{article} % Paquetes adicionales \usepackage[spanish]{babel} % Diccionario castellano \usepackage[latin1]{inputenc} % Caracteres iso8859-1 \usepackage[pdftex]{graphicx} % Soporte de graficos \pagestyle{headings} % <-- Fin de preambulo --> % <- Inicio documento -> \begin{document} % <- Inicio del Titulo -> \begin{titlepage} \begin{center} \textsc{\Large Documento de ejemplo} \end{center} \end{titlepage} % <- Fin del titulo -> \begin{abstract} Esto sera un resmen. \end{abstract} % <- Inicio del informe -> \section{Introduccin} \label{sec:intro} Esta es una introduccin. \section{Primera seccin} \label{sec:primera_seccion} Esta es una primera seccin. \subsubsection{Primera Subseccin} \label{sec:primero_subseccion} Ejemplo de insercin de una figura. \begin{figure} \includegraphics{imagen} \caption{Descripcin de la imagen.} \label{fig:etiqueta_imagen} \end{figure}
http://www.lugtucuman.org.ar Potenciado por Joomla! Generado: 24 November, 2007, 18:29
L.U.G. Tucumn
% <- Fin del informe -> % Archivo externo para la bibliografa \bibliographystyle{plain} \bibliography{bibliografia} % <- Fin documento -> \end{document} En base a esto, ya pueden empezar rpidamente a escribir la documentacin y cualquier duda consultar el manual citado en Referencias. Sino tambin pueden buscar informacin en la web que hay mucho sobre las combinaciones de teclas y posibilidades con LaTeX. Compilando mi documento A pesar de que Emacs al cargar el modo mayor de AUC TeX, dispone de los botones correspondientes para compilar el documento, generar el PDF (en este caso, definido por \usepackage[pdftex]{graphicx}), y previsualizarlo usando xpdf o algn otro, tambin podemos hacer uso de la herramienta make muy conocida y utilizada para compilar aplicaciones y eso. Bueno, tambin sirve para compilar documentos LaTeX y generar la salida que queramos. Un ejemplo del archivo Makefile para realizar este proceso podra ser: ARCHIVO=main all: latex latex: pdflatex $(ARCHIVO) pdflatex $(ARCHIVO) bibidx: makeindex main.idx bibtex main web: latex2html -dir html -split +1 -white main ortografia: ispell -T latin1 -d spanish *.tex clean: rm -f *.aux *.lof *.log *.lot *.mtc* *.toc *.log *~ \ *.bbl *.blg *.bmt *.bak *.backup *.ilg *.ind *.idx mrproper: clean rm -f main.pdf main.ps *.dvi html/* Creo que el archivo no requiere de mucha explicacin. Con el comando "make", se ejecuta dos veces el compilador de LaTeX porque en la primera pasada crea las entradas de la bibliografa y en la segunda las referencia. Con "make bibidx" se crea el archivo de la bibliografa. Con "make web" se crea el documento en formato html con pginas separadas dentro del directorio html, que debe ser creado a mano. Luego, el comando "make ortografia" utiliza la herramienta ispell para chequear el documento de errores de ortografas y genera una salida por pantalla. Por ltimo "make clean" y "make mrproper" realizar la limpieza de todos los archivos generados por el compilador y hasta los "binarios" PDF, PS o DVI generados respectivamente. Referencias - Generacin de ficheros LaTeX con GNU Emacs.
http://www.lugtucuman.org.ar