TeX

sistema de tipografía escrito por Donald E. Knuth

TeX, estilizado como , es un sistema de tipografía escrito por Donald E. Knuth, muy popular en el entorno académico, especialmente entre las comunidades de matemáticos, físicos e informáticos. Ha conseguido sustituir con creces a troff, otro programa de tipografía habitual en Unix.

TeΧ
Información general
Tipo de programa tipografía
Autor Donald Knuth
Desarrollador Donald Knuth
Lanzamiento inicial 1978
Licencia Licencia de software libre con permisos
Información técnica
Programado en
Versiones
Última versión estable 3,14159265 ( Enero de 2014)
Archivos editables
DVI (TeX)
Enlaces

TeX se considera generalmente la mejor forma de componer fórmulas matemáticas complejas pero, especialmente en la forma de LaTeX y otros paquetes de macros, se puede usar para otras tareas de composición.

Historia editar

Knuth empezó a escribir TeX porque se sentía molesto con la calidad cada vez menor de la tipografía en los volúmenes I a III de su obra El arte de programar ordenadores. Empezó por ello a diseñar su propio lenguaje de tipografía. Pensó que podría acabarlo en su año sabático, 1978; se equivocó por tan solo ocho años. El lenguaje se finalizó y congeló (no se hicieron más modificaciones) alrededor de 1985.

Guy Steele coincidió en Stanford en el verano de 1978, cuando Knuth estaba desarrollando su primera versión de TeX. Cuando volvió al MIT a finales de año, reescribió la entrada/salida de TeX para que se ejecutase en el ITS.

La primera versión de TeX se escribió usando el lenguaje de programación SAIL que se ejecutaba en una PDP-10 en el sistema operativo WAITS de la Universidad de Stanford. Para las versiones posteriores de TeX, Knuth inventó el concepto de programación literaria, una forma de producir código fuente compilable y documentación con referencias de alta calidad (por supuesto, escrito en TeX) partiendo del mismo archivo original. El lenguaje usado se llama WEB y produce programas en Pascal.

TeX tiene un sistema de numeración de versiones peculiar. Desde la versión 3, las actualizaciones se indican añadiendo una cifra decimal extra al final, de modo que el número de versión se aproxime asintóticamente a π. La versión más reciente es la 3,14159265 y por ser muy estable solo se prevén pequeñas actualizaciones.

Knuth ha indicado que el "último cambio final (hecho después de mi muerte)" será cambiar el número de versión a π, y que en ese momento todos los errores que queden serán considerados características.

El sistema tipográfico editar

Las órdenes de TeX empiezan con una barra invertida ("\") y sus argumentos se indican mediante llaves ("{}"). Sin embargo, casi todas las propiedades sintácticas de TeX pueden cambiarse sobre la marcha, con lo que la entrada de TeX es algo difícil de analizar salvo por el propio TeX. TeX es un lenguaje basado en órdenes básicas y macros: muchas órdenes, incluidas la mayoría de las que definen los usuarios, se sustituyen sobre la marcha hasta que solo quedan órdenes básicas, que entonces se ejecutan. La sustitución en sí misma está libre de efectos secundarios. La recursión de macros no consume memoria y asimismo se dispone de construcciones if-then-else. Todo ello hace de TeX un lenguaje Turing completo incluso al nivel de sustitución.

El sistema TeX tiene un conocimiento preciso de los tamaños de los caracteres y símbolos, y usando esta información calcula el alineamiento óptimo de letras por línea y de líneas en cada página. Posteriormente produce un archivo DVI (de las siglas en inglés device independent, independiente del dispositivo) que contiene la posición final de todos los caracteres. El archivo dvi se puede imprimir directamente usando un controlador de impresora adecuado, o puede convertirse a otros formatos. Actualmente, pdfTeX se usa para generar archivos PDF saltándose la generación del DVI.

La mayor parte de la funcionalidad viene dada por diversas macros: las originales de Knuth englobadas en lo que se llama plainTeX, LaTeX (mayoritario en las ciencias técnicas) y ConTeXt (usado principalmente para publicaciones).

La referencia principal de TeX son los dos primeros volúmenes de la obra Computers and Typesetting de Knuth: `The TeXbook'´ y `TeX: The Program´ (éste incluye el código fuente de TeX completo y documentado).

La organización de los directorios en una instalación de TeX está normalizada en un árbol llamado texmf.

Licencia editar

La licencia de TeX permite la distribución y modificación libres, pero exige que cualquier versión modificada no se llame TEX, TeX o algo similar, que pueda ser confundido con la versión original. La licencia da derechos similares a aquellos de una marca registrada.

Calidad editar

Aunque está bien escrito, TeX es tan grande (y tan lleno de técnica avanzada) que se dice haber descubierto al menos un error en cada sistema Pascal en el que se ha compilado, ya que TeX se ejecuta en la mayoría de los sistemas operativos.

Knuth ofrece recompensas monetarias para la gente que encuentre e informe de un error en el programa. El premio por error empezó con un centavo y se doblaba cada año hasta que quedó congelado en su valor actual de 327,68 dólares. Esto, sin embargo, no ha arruinado a Knuth, porque se han encontrado muy pocos errores y en cualquier caso el cheque que prueba que el propietario encontró un error en TeX se suele enmarcar en vez de cobrarlo.

Acerca del nombre editar

Donald Knuth explica en su obra The TeXbook que la palabra technology ("tecnología") tiene raíz griega y esta comienza por las letras τεχ. Por tanto, el nombre TeX en español se tiene que pronunciar [tej], y no [teks]. Ello se debe a que TeX no quiere decir TEX sino τεχ, acabado en la letra griega χ [ji]. La misma palabra griega τέχνη (ΤΕΧΝΗ – technē) significa "arte", una referencia a que la técnica no está reñida con el arte ni con la presentación elegante.

Cuando se está escribiendo un archivo en TeX y se quiere hacer referencia al nombre se dispone de la orden \TeX, definida así:

 \hbox{T\kern-.1667em\lower.5ex\hbox{E}\kern-.125ex X}

O así en  :

 \TeX

y que fue creada por Knuth para demostrar lo que es posible hacer con TeX. La letra "E" queda por debajo de la línea base y más unida a la T; en los otros sistemas se escribe usando la aproximación "TeX".

Trabajos derivados editar

Varios sistemas de procesamiento de documentos están basados en TeX; destacan entre ellos:

  • LaTeX (su nombre viene de Leslie Lamport, su creador), que incorpora estilos de documento para libros, cartas, transparencias, etc., y añade características de referencias cruzadas y numeración automática de secciones y ecuaciones.
  • ConTeXt, creado en su mayoría por Hans Hagen en Pragma, es una herramienta de diseño de documentos profesional basada en TeX. Es más reciente que LaTeX y por ello quizás menos popular.
  • AMS-TeX, producido por la Sociedad Matemática Americana, tiene muchas órdenes más cómodas para el usuario, que pueden ser modificadas por las revistas para acomodarse al estilo editorial. La mayoría de las características de AMS-TeX se pueden usar en LaTeX usando los distintos "paquetes" de AMS y se hace referencia a AMS-LaTeX. El manual principal de AMS-TeX se titula The Joy of TeX.
  • jadeTeX que usa TeX como base para imprimir desde el sistema DSSSL de James Clark.
  • Texinfo, el sistema de preparación de documentación del proyecto GNU.

Todos estos sistemas están escritos en el lenguaje de programación TeX (algunos con complementos en otros lenguajes de programación). Además, hay programas que extienden el lenguaje de programación con nuevas órdenes y capacidades:

  • pdfTeX permite crear archivos PDF y añade nuevas funciones tipográficas, como puntuación marginal.
  • Omega permite usar Unicode y la escritura en varios sentidos (de derecha a izquierda o de arriba abajo).
  • NTS reimplementa TeX en Java y permite extenderlo con nuevas clases.
  • LuaTeX combina pdfTeX, Omega y el lenguaje de programación Lua.

Además, hay programas asociados como BibTeX para el manejo de bibliografías, MakeIndex y xindy para los índices alfabéticos y Metafont para gráficos.

Todas las extensiones están disponibles en el CTAN, (Comprehensive TeX Archive Network).

Herramientas compatibles editar

En sistemas compatibles Unix, TeX se distribuye bajo la forma teTeX. En sistemas Windows existen MiKTeX y fpTeX. En sistemas Mac OS X existe MacTeX con utilidades como TeXShop.

El editor de texto TeXmacs es un editor de textos científicos WYSIWYG que pretende ser compatible con TeX. Usa las tipografías de Knuth y puede generar un archivo TeX. Otra herramienta similar es LyX.

Ejemplos editar

Un ejemplo simple en TeX: crea un archivo llamado miprimer.tex que contenga lo siguiente:

 hola
 \bye

Abre un intérprete de órdenes y escribe

tex miprimer.tex

TeX creará un archivo llamado miprimer.dvi. Usa un programa adecuado para visualizarlo. Por ejemplo, MiKTeX incluye el visor yap

yap miprimer.dvi

El visor muestra hola en una página. \bye es la orden Tex que marca el final de un archivo y no se muestra en la salida final.

El archivo dvi puede ser impreso directamente desde el visor o convertido a un formato más común tal como PostScript usando el programa dvips.

Es posible crear directamente archivos PDF usando pdfTeX:

 pdftex miprimer.tex

pdfTeX se creó originalmente porque al convertir los PostScript generados en PDF se obtenía una visualización de las tipografías de baja calidad, aunque la impresión era buena. La causa es que TeX usa de forma nativa tipografías Tipo 3 de mapas de bits, que no se visualizan tan bien como las tipografías Tipo 1 escalables.

Es posible actualmente hacer que dvips use las tipografías escalables con un poco de configuración (versiones recientes de Ghostscript lo permiten), pero una conversión directa a PDF tiene otros beneficios: es un proceso en un solo paso, en lugar de dos, y pdfTeX incluye cosas tales como marcadores e hipervínculos, ausentes en PostScript.

Ejemplos matemáticos editar

Para ver a TeX en acción, prueba a escribir la conocida fórmula de la ecuación cuadrática:

 La f\'ormula cuadr\'atica es $x_{1,2}={-b\pm\sqrt{b^2-4\times a\times c} \over {2 \times a}}$
 \bye

Con el texto de arriba deberías obtener algo que se viese como esto

La fórmula cuadrática es  

En un documento, para entrar en el modo matemático se escribe un signo $, a continuación la fórmula de manera que la entienda TeX y se cierra con otro signo $. Otro modo de presentación, que deja la fórmula centrada en una nueva línea, se consigue usando $$. Por ejemplo, la fórmula anterior se escribiría

 La f\'ormula cuadr\'atica es $$x_{1,2}={-b\pm\sqrt{b^2-4\times a\times c} \over {2\times a}}$$
 \bye

y se vería como

La fórmula cuadrática es
 

Ejemplos para raíces, derivadas y límites editar

Ecuación algebraica de primer grado editar

:<math>\sqrt[3]{x+5+2x} = \sqrt[3]{3x+7x+12}</math>
:<math>x+5+2x = 3x+7x+12</math>
 
 

Derivada de un cociente editar

:<math>\left ( {x^2 \over x^3 +1} \right ) ^\prime = { \left ( x^3 +1 \right ) 
\left ( x^2 \right )^\prime - \left ( x^2 \right ) \left ( x^3 +1 \right ) ^\prime
 \over \left ( x^3 +1 \right )^2 }  </math>
Aplicación de Fórmula del cociente
 

Aplicación de Fórmula del cociente

Límites editar

:<math>\lim_{x \to 1^+} {1 \over x - 1}  = ? </math>
: Solución
:<math> = {1 \over 1,001 - 1} </math>
:<math> = {1 \over 0,001} </math>
:<math>\lim_{x \to 1^+} {1 \over x - 1}  = +\infty \ \Rightarrow \ </math>  Esto significa que tiende a <math>+\infty</math>
 
Solución
 
 
  Esto significa que tiende a  

Referencias editar

  • FOLDOC (2002-03-11) TeX (en inglés).

Véase también editar

Bibliografía editar

  • Norman Walsh (1994). Making TeX Work (libro completo en html) (en inglés). O'Reilly & Associates, Inc. ISBN 156592-051-1.  (Republicado bajo licencia GFDL)
  • Donald E. Knuth, The TeXbook (Volumen A de la colección Computers and Typesetting), Addison-Wesley, 1984. ISBN 0-201-13448-9. El código fuente del libro hecho en TeX está disponible en el CTAN. Solo se expone como ejemplo y no está permitido su uso para preparar otro libro similar.
  • Eijkhout, Victor (1992). TeX by Topic, A TeXnician's Reference (en inglés). Addison-Wesley Publishing Company, Wokingham (Inglaterra). p. 307. ISBN 0-201-56882-9. Archivado desde el original el 25 de febrero de 2021. Consultado el 26 de agosto de 2004.  (Bajo licencia GFDL)

Enlaces externos editar