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.
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 | ||
Sitio web oficial
Repositorio de código
| ||
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.
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.
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.
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.
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.
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".
Varios sistemas de procesamiento de documentos están basados en TeX; destacan entre ellos:
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:
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).
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.
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.
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
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
:<math>\sqrt[3]{x+5+2x} = \sqrt[3]{3x+7x+12}</math>
:<math>x+5+2x = 3x+7x+12</math>
:<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
:<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>