Para un texto marcado con marcas HTML el navegador hace las veces del experto que lo procesa y del soporte para su visualización. Para un texto marcado con LaTeX, las dos acciones, la de procesar el documento y la de visualizarlo, son, sin embargo, competencia de dos agentes diferentes: el tipógrafo y el "lector" o "visualizador" del documento resultante, normalmente, en nuestros días, un fichero PDF.
El tipógrafo más recomendable en la actualidad para documentos LaTeX se llama pdfTeX, un descendiente del original TeX, que todavía se sigue usando, y mucho. LuaTeX, nieto de TeX e hijo de pdfTeX, podría consolidarse como el noble heredero de ambos en los próximos años.
pdfTeX y todo lo que se requiere para procesar un documento LaTeX viene incluido en todas las distribuciones modernas de GNU/Linux. En Debian, por ejemplo, se empaqueta dentro de los paquetes que incluyen el prefijo texlive-. TeX Live, que es la distribución más completa que existe para procesar documentos con LaTeX, es realmente grande y por eso Debian ofrece la posibilidad de instalar todo TeX Live, mediante el paquete texlive-full, o sólo una parte básica, mediante el paquete texlive y otros posibles añadidos.
Si el lector dispone de una gran cantidad de disco duro puede proceder a instalar texlive-full:
aptitude install texlive-full
En caso de que quiera ahorrar espacio, bastará con que instale, por lo pronto, tres paquetes (de los cuales sólo los dos primeros son imprescindibles):
aptitude install texlive texlive-lang-spanish texlive-doc-es
Tenemos ya a nuestros expertos ahí disponibles para todo lo que les ordenemos. No perdamos más tiempo y hagamos que pongan su imprenta en marcha sobre nuestro documento. Llamaremos a
pdflatex
que es el ayudante de pdfTeX encargado de procesar los documentos LaTeX:pdflatex texto_etiquetado.tex
Si no hay ningún error sintáctico en nuestras marcas LaTeX,
pdflatex
terminará su trabajo rápidamente tras expulsar algunos mensajes sobre el procesamiento. El resultado quedará guardado en el fichero texto_etiquetado.pdf
. Cualquier lector de PDF nos mostrará el resultado:Pero, ¿y si hemos cometido un error sintáctico en las marcas? Lo que sucederá es que
pdflatex
se detendrá y nos mostrará un mensaje de error. Los mensajes de error de pdflatex
pueden ser difícilmente comprensibles; lo peor, sin embargo, es que tendremos que aprender algunos atajos de teclado para salir del procesamiento detenido y, sobre todo, nos veremos obligados a volver a ejecutar pdflatex
cuantas veces sea necesario hasta corregir todos los errores. Una opción para evitar, al menos, esto último, es utilizar un corrector de la sintaxis de LaTeX antes de procesar el documento con pdflatex
. Podemos recurrir a lacheck
, que viene incluido en TeX Live.Imaginemos, por ejemplo, que nos comimos ---un hambre descuidada produce estos males--- la llave de cierre en la primera sección y el
\end{enumerate}
al final de la lista. O sea:
...
6 \begin{document}
7 \section{Navegación gráfica <== Falta llave de cierre
8 Si hubiésemos estado visitando la página con un buen navegador gráfico que disponga de la opción de guardar las páginas web como texto, tendríamos que realizar al menos dos acciones, ambas independientes:
9
10 \begin{enumerate}
11 \item Ir al menú <<Archivo>> del navegador y guardar como texto la página web. (Lo que además implica seleccionar un nombre de fichero y un directorio).
12 \item Crear en Vim una nueva ventana para editar en ella el documento que acabamos de guardar, mediante la orden :new ruta\_fichero.
13 <== Falta \end{enumerate}
14
15 \section{Navegación desde consola}
16 Si navegamos con w3m, y gracias a la interacción entre las aplicaciones de consola, bastaría ejecutar una única acción desde el propio Vim, que, además, podríamos abreviar para reproducirla en situaciones semejantes. Veamos cómo.
17
18 Con w3m el proceso de convertir una página web entexto es absolutamente elemental: añadir la opción -dump. Por ejemplo:
19
20 w3m -dump http://www.w3.org/TR/html401/struct/lists.html
21
22 nos devuelve la página dada como argumento, tal cual se presenta en el navegador, pero como puro texto.
23
24 \end{document}
Sobre este texto, que guardamos como el nombre
texto_erroneo.tex
, ejecutamos ahora lacheck
:lacheck texto_erroneo.tex
Aparecerán los siguientes mensajes:
"texto_erroneo.tex", line 24: <- unmatched "\end{document}"
"texto_erroneo.tex", line 10: -> unmatched "\begin{enumerate}"
"texto_erroneo.tex", line 25: <- unmatched "end of file texto_erroneo.tex"
"texto_erroneo.tex", line 7: -> unmatched "{"
"texto_erroneo.tex", line 25: <- unmatched "end of file texto_erroneo.tex"
"texto_erroneo.tex", line 6: -> unmatched "\begin{document}"
El analizador sintáctico, aunque emite mensajes que no son absolutamente claros, ayuda a localizar rápida y exactamente la línea o líneas que contiene los errores cometidos. Nótese que se muestran mensajes de error para las últimas líneas del fichero, la 24 y la 25, así como para la primera del fragmento, la línea 6. Estos mensajes de error son provocados por nuestros verdaderos errores, los que afectan a las líneas 7 y 13, que, como un efecto en cadena, disparan los mensajes relativos al resto de líneas. Una vez corregidas las líneas defectuosas (la 7 y la 13), el resto de mensajes de error desaparecerá.
La moraleja es que hay que ser cuidadoso a la hora de marcar textos (los buenos editores como Vim o Emacs suelen ayudar ya de entrada en esta tarea) y que conviene utilizar un analizador sintáctico como
lacheck
antes de procesar el documento con pdflatex
.Resumen:
pdflatex
es el tipógrafo de documentos LaTeX recomendado en la actualidad.pdflatex
forma parte de la máquina tipográfica pdfTeX.- pdfTeX es heredero de TeX. LuaTeX, por su parte, es heredero de pdfTeX y se perfila como su futuro sucesor.
- La distribución actualmente más completa para procesar documentos LaTeX es TeX Live. TeX Live viene empaquetada por Debian en el paquete texlive (que contiene lo básico) y otros paquetes con el prefijo texlive-.
lacheck
es un analizador de la sintaxis de marcas LaTeX. Es recomendable analizar la corrección de nuestra sintaxis antes de procesar nuestro documento conpdflatex
.
No hay comentarios:
Publicar un comentario