next up previous contents index
Siguiente: Lenguajes y utilidades de Subir: Programas Anterior: Programas   Índice General   Índice de Materias

Formateado y procesado de textos

Prácticamente todos los usuarios de ordenadores necesitan de un sistema para preparar documentos. En el mundo de los ordenadores personales, el procesamiento de textos es lo más habitual: Se trata de editar y manipular textos en un entorno de tipo ``lo que ves es lo que obtienes'', obteniendo copias impresas del documento completo con sus gráficos, tablas y adornos.

Existen procesadores de textos comerciales para el mundo UNIX producidos por Corel, Star Division y Applix, pero es más común el formateo de textos, que es conceptualmente diferente. En los sistemas de formateo de documentos, el texto es introducido en un lenguaje de descripción de páginas que describe la forma en que ha de darse formato al texto. En lugar de introducir el texto en un entorno de procesador de textos, se puede modificar el texto con cualquier editor, como vi o GNU Emacs. Una vez hemos acabado con la introducción del texto fuente (en el lenguaje de formateo de texto) un programa aparte convierte el texto fuente en un formato adecuado para su impresión. Es un proceso análogo al de programar en un lenguaje, como el C, y ``compilar'' el documento en un formato imprimible.

En hay disponibles muchos sistemas de formateo de documentos. Uno de ellos es groff, la versión GNU del formateador de documentos troff, un clásico desarrollado originalmente en los laboratorios Bell y que aún se usa en muchos sistemas UNIX de todo el mundo. Otro sistema moderno es TEX, desarrollado por Donald Knuth, famoso en la ciencia de la computación. También pueden obtenerse dialectos de TEX, como LATEX.

Los formateadores como groff y TEX se diferencian sobre todo en la sintaxis de su lenguaje de formateo. Elegir un sistema concreto en vez de otro es una decisión que se toma basándose en las utilidades disponibles que satisfagan nuestras necesidades, y en el gusto personal.

Muchos consideran que el lenguaje de formateo de groff es un poco oscuro y encuentran que TEX es más legible. Sin embargo, groff, produce salida ASCII, que puede leerse en un terminal, mientras que TEX está pensado sobre todo para que la salida sea por un dispositivo de impresión. Hay que disponer de algunos programas adicionales para conseguir salida ASCII a partir de textos formateados en TEX y para convertir un texto introducido en TEX al formato de groff.

Otro programa es texinfo, una extensión de TEX utilizada para la documentación de los programas llevada a cabo por la Free Software Foundation. Texinfo puede producir salida de impresora o un hypertexto navegable en línea de tipo ``Info'', y todo ello a partir de un sólo fichero de texto fuente. Los ficheros ``info'' son la principal fuente de documentación de los programas GNU, como por ejemplo GNU Emacs.

En la comunidad informática se usan extensamente los formateadores de documentos para producir comunicaciones, tesis, artículos para revistas y libros. (Este libro ha sido generado con LATEX). La capacidad de manejar como un fichero de texto el documento fuente escrito en lenguaje de formateo abre la puerta a muchas posibilidades de extensión del sistema mismo de formateado. Gracias a que el documento fuente no se almacena en un oscuro formato que sólo puede leer un procesador de textos determinado, los programadores pueden escribir analizadores y traductores para el lenguaje de formateo, ampliando así el sistema.

¿A qué se parece un sistema de formateo? En general el fichero de texto fuente formateado está compuesto en su mayor parte por el texto en sí, además de unos códigos de control para producir efectos como cambios de tipo de letra y márgenes, creación de listas, etcétera.

Examina el siguiente texto:

Sr. Torvalds:

Andamos bastante mosqueados con sus planes de implementar sugestión post-hipnótica en el código del controlador del terminal de . Nos sentimos así por tres razones:

  1. Mostrar mensajes subliminales en el controlador del terminal no sólo es inmoral, sino además una pérdida de tiempo.
  2. Se ha demostrado que las ``sugestiones post-hipnóticas'' carecen de efecto cuando se usan contra incautos hackers de UNIX;
  3. Ya hemos implementado descargas eléctricas de alto voltaje en el código del login de , como medida de seguridad.
Esperamos que lo reconsidere.

Este texto deberia aparecer en el lenguaje de formateo LATEX como lo siguiente:

\begin{quote}
Sr. Torvalds: 

Andamos bastante mosqueados con sus planes de 
implementar {\em sugestión post-hipnótica\/}
en el código del controlador del terminal de 
{\bf {\linux}}.
Nos sentimos así por tres razones:
\begin{enumerate}
\item Mostrar mensajes subliminales en el controlador del terminal 
      no sólo es inmoral, sino además una pérdida de tiempo.
\item Se ha demostrado que las ``sugestiones post-hipnóticas'' 
      carecen de efecto cuando se usan contra incautos hackers de 
      UNIX;
\item Ya hemos implementado descargas eléctricas de alto voltaje 
      en el código del {\tt login} de {\linux}, como medida de 
      seguridad.
\end{enumerate}
Esperamos que lo reconsidere.
\end{quote}

El autor introduce el texto utilizando un editor de texto cualquiera y genera una salida formateada tras procesar el texto fuente con LATEX. A primera vista, el sistema de formateo puede parecer arcano, pero en realidad es bastante sencillo de entender. Utilizar un sistema de formateo de documentos obliga a usar estándares tipográficos al escribir. Todas las listas numeradas dentro del documento tendrán el mismo aspecto, a menos que su autor modifique la definición de lista numerada. El objetivo es permitir al autor concentrarse en el texto, no en las convenciones tipográficas.

Cuando se escribe con un editor de textos, generalmente no se piensa en el aspecto que tendrá el texto impreso. El autor se acostumbra a imaginar la apariencia que tendrá el texto gracias a las órdenes de formateo en el fichero fuente.

Los procesadores de textos tipo ``Lo que ves es lo que obtienes'' (en inglés WYSIWYG) son atractivos por muchos conceptos. Proporcionan un interfaz visual fácil de usar para la edición de documentos. Pero este interfaz está limitado a los aspectos de la disposición del texto que son accesibles para el usuario. Por ejemplo, muchos procesadores de textos proporcionan todavía un lenguaje especial de formateo para producir expresiones complicadas, como las fórmulas matemáticas. Esto último constituye formateo de documentos, aunque en una escala mucho más modesta.

Un beneficio no tan sutil del formateo de documentos es que se puede especificar exactamente el formato que se necesita. En muchos casos, el sistema de procesado de documentos requiere de una especificación de formato. Los sistemas de formateo de documentos permiten además editar el texto con cualquier editor de texto, en lugar de basarse en códigos de formato que queden escondidos detrás del opaco interfaz de usuario de un procesador de textos. El precio a pagar por esta potencia y flexibilidad es la falta de un interfaz de tipo ``lo que ves es lo que obtienes''.

Existes programas que te dejan visualizar el documento formateado en un dispositivo de pantalla gráfica antes de imprimirlo. El programa xdvi muestra bajo el entorno X-Window un fichero ``independiente del dispositivo'', generado por el sistema TEX. Aplicaciones del tipo de xfig y gimp proporcionan interfaces gráficos para dibujar figuras y diagramas, que se convierten posteriormente al sistema de formateo de texto para poder incluirlos en tus documentos.

Los formateadores de texto como troff ya estaban ahí mucho antes de que hubiera a disposición del público ningún procesador de textos. Muchos prefieren aún hoy su versatilildad y su independiencia del entorno gráfico.

Existen muchas utilidades relacionadas con el formateo de texto. El poderoso sistema METAFONT, que se usa para diseñar fuentes de TEX, viene incluido con la versión de TEX que se ha portado a . Otros programas son ispell, un corrector ortográfico; makeindex genera índices para los documentos en LATEX; hay muchos otros paquetes basados en groff y TEX que son capaces de formatear diversos tipos de textos técnicos y matemáticos. También existen programas que transforman el texto en TEX o groff a una infinidad de formatos, y viceversa.

Un lenguaje nuevo en la escena es YODL, escrito por Karel Kubat. Se trata de un lenguaje fácil de aprender, y que incorpora filtros para producir salidas en diversos formatos, como LATEX, SGML y HTML.


next up previous contents index
Siguiente: Lenguajes y utilidades de Subir: Programas Anterior: Programas   Índice General   Índice de Materias
Ismael Olea 2002-09-26