sábado, 21 de marzo de 2009

HAL y las marcas (LaTeX - IV)

Vale. Hemos marcado nuestro texto como LaTeX prescribe. Pero ¿cómo podemos ver el resultado?

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 con pdflatex.

No hay comentarios:

Publicar un comentario