Desarrollador(es) | Donald Knuth |
---|---|
Lanzamiento inicial | 1978 ( 1978 ) |
Versión estable | TeX Live 2024 [1] / 13 de marzo de 2024 ( 13-03-2024 ) |
Repositorio |
|
Escrito en | WEB / Pascal |
Sistema operativo | Multiplataforma |
Tipo | Tipografía |
Licencia | Software libre permisivo |
Sitio web | remolcador.org |
Extensión de nombre de archivo | .Texas |
---|---|
Tipo de medio de Internet | aplicación/x-tex [a] |
Lanzamiento inicial | 1978 ( 1978 ) |
Tipo de formato | Formato de archivo de documento |
TeX ( / t ɛ x / , ver abajo), estilizado dentro del sistema como T e X , es un programa de composición tipográfica que fue diseñado y escrito por el científico informático y profesor de la Universidad de Stanford Donald Knuth [2] y lanzado por primera vez en 1978. El término ahora se refiere al sistema de extensiones, que incluye programas de software llamados motores TeX, conjuntos de macros TeX y paquetes que brindan funcionalidad de composición tipográfica adicional, construidos alrededor del lenguaje TeX original. TeX es un medio popular para componer fórmulas matemáticas complejas ; se ha destacado como uno de los sistemas tipográficos digitales más sofisticados. [3]
TeX se utiliza ampliamente en el ámbito académico , especialmente en matemáticas , informática , economía , ciencias políticas , ingeniería , lingüística , física , estadística y psicología cuantitativa . Hace tiempo que desplazó a Unix troff , [b] el sistema de formato preferido anteriormente, en la mayoría de las instalaciones de Unix . También se utiliza para muchas otras tareas de composición tipográfica, especialmente en forma de LaTeX , ConTeXt y otros paquetes de macros .
TeX fue diseñado con dos objetivos principales en mente: permitir a cualquiera producir libros de alta calidad con un mínimo esfuerzo y proporcionar un sistema que diera exactamente los mismos resultados en todas las computadoras, en cualquier momento (junto con el lenguaje Metafont para la descripción de fuentes y la familia de tipos de letra Computer Modern ). [4] TeX es un software libre , lo que lo hizo accesible a una amplia gama de usuarios.
Cuando se publicó el primer volumen en papel de El arte de la programación informática de Knuth en 1968, [5] se compuso mediante composición tipográfica con metal caliente en una máquina Monotype . Este método, que data del siglo XIX, produjo un "estilo clásico" apreciado por Knuth. [6] Cuando se publicó la segunda edición, en 1976, todo el libro tuvo que ser compuesto de nuevo porque la tecnología Monotype había sido reemplazada en gran medida por la fotocomposición y las fuentes originales ya no estaban disponibles. Cuando Knuth recibió las pruebas de imprenta del nuevo libro el 30 de marzo de 1977, las encontró inferiores. Decepcionado, Knuth se propuso diseñar su propio sistema de composición tipográfica.
Knuth vio por primera vez el resultado de un sistema de composición digital de alta calidad y se interesó en la tipografía digital. El 13 de mayo de 1977, escribió un memorando para sí mismo describiendo las características básicas de TeX. [7] Planeaba terminarlo en su año sabático en 1978, pero resultó que el lenguaje no estuvo " congelado " (listo para usar) hasta 1989, más de diez años después. Guy Steele estaba en Stanford durante el verano de 1978, cuando Knuth estaba desarrollando su primera versión de TeX. Cuando Steele regresó al Instituto Tecnológico de Massachusetts ese otoño, reescribió la entrada/salida ( E/S ) de TeX para que funcionara bajo el sistema operativo Incompatible Timesharing System (ITS). La primera versión de TeX, llamada TeX78, fue escrita en el lenguaje de programación SAIL para funcionar en un PDP-10 bajo el sistema operativo WAITS de Stanford . [8]
Para versiones posteriores de TeX, Knuth inventó el concepto de programación literaria , una forma de producir código fuente compilable y documentación enlazada entre sí, compuesta en TeX a partir del mismo archivo original. El lenguaje utilizado se denomina WEB y produce programas en DEC PDP-10 Pascal .
TeX82, una nueva versión de TeX reescrita desde cero, fue publicada en 1982. Entre otros cambios, el algoritmo de separación de palabras original fue reemplazado por un nuevo algoritmo escrito por Frank Liang. TeX82 también utiliza aritmética de punto fijo en lugar de punto flotante , para asegurar la reproducibilidad de los resultados en diferentes hardware de computadora, [9] e incluye un lenguaje de programación real, Turing-completo , luego de una intensa presión por parte de Guy Steele. [10] En 1989, Donald Knuth lanzó nuevas versiones de TeX y Metafont . [11] A pesar de su deseo de mantener estable el programa, Knuth se dio cuenta de que 128 caracteres diferentes para la entrada de texto no eran suficientes para dar cabida a idiomas extranjeros; el principal cambio en la versión 3.0 de TeX es, por tanto, la capacidad de trabajar con entradas de 8 bits , lo que permite 256 caracteres diferentes en la entrada de texto. TeX3.0 fue lanzado el 15 de marzo de 1990. [12]
Desde la versión 3, TeX ha utilizado un sistema de numeración de versiones idiosincrásico , donde las actualizaciones se han indicado añadiendo un dígito extra al final del decimal, de modo que el número de versión se acerca asintóticamente a π . Esto es un reflejo del hecho de que TeX ahora es muy estable, y solo se anticipan actualizaciones menores. La versión actual de TeX es 3.141592653; se actualizó por última vez en 2021. [13] El diseño se congeló después de la versión 3.0, y no se añadirá ninguna característica nueva o cambio fundamental, por lo que todas las versiones más nuevas contendrán solo correcciones de errores . [14] Aunque el propio Donald Knuth ha sugerido algunas áreas en las que TeX podría haberse mejorado, indicó que cree firmemente que tener un sistema sin cambios que produzca el mismo resultado ahora y en el futuro es más importante que introducir nuevas características. Por esta razón, ha declarado que el "cambio absolutamente final (que se realizará después de mi muerte)" será cambiar el número de versión a π , momento en el que todos los errores restantes se convertirán en características. [15] Del mismo modo, las versiones de Metafont posteriores a la 2.0 se aproximan asintóticamente a e (actualmente en 2.7182818), y se aplicará un cambio similar después de la muerte de Knuth. [14]
Dado que el código fuente de TeX es esencialmente de dominio público (ver más abajo), se permite (y se alienta explícitamente) a otros programadores a mejorar el sistema, pero se les exige que utilicen otro nombre para distribuir el TeX modificado, lo que significa que el código fuente aún puede evolucionar. Por ejemplo, el proyecto Omega se desarrolló después de 1991, principalmente para mejorar las capacidades de composición tipográfica multilingüe de TeX. [16] Knuth creó versiones modificadas "no oficiales", como TeX-XeT, que permite a un usuario mezclar textos escritos en sistemas de escritura de izquierda a derecha y de derecha a izquierda en el mismo documento. [17]
En varios campos técnicos como la informática, las matemáticas, la ingeniería y la física, TeX se ha convertido en un estándar de facto . Se han publicado miles de libros utilizando TeX, incluidos libros publicados por Addison-Wesley , Cambridge University Press , Elsevier , Oxford University Press y Springer . Numerosas revistas en estos campos se producen utilizando TeX o LaTeX, lo que permite a los autores enviar su manuscrito original escrito en TeX. [18] Si bien muchas publicaciones en otros campos, incluidos diccionarios y publicaciones legales, se han producido utilizando TeX, no ha tenido tanto éxito como en los campos más técnicos, ya que TeX fue diseñado principalmente para componer matemáticas.
Cuando diseñó TeX, Donald Knuth no creía que un único sistema de composición tipográfica pudiera satisfacer las necesidades de todos; en lugar de eso, diseñó muchos ganchos dentro del programa para que fuera posible escribir extensiones y publicó el código fuente, con la esperanza de que los editores diseñaran versiones adaptadas a sus propias necesidades. Si bien se han creado extensiones de este tipo (incluidas algunas creadas por el propio Knuth), [17] la mayoría de las personas han ampliado TeX solo mediante macros y ha seguido siendo un sistema asociado con la composición tipográfica técnica. [19] [20]
Los comandos de TeX suelen empezar con una barra invertida y se agrupan entre llaves . Casi todas las propiedades sintácticas de TeX se pueden cambiar sobre la marcha, lo que hace que la entrada de TeX sea difícil de analizar por cualquier cosa que no sea TeX en sí. TeX es un lenguaje basado en macros y tokens : muchos comandos, incluidos la mayoría de los definidos por el usuario, se expanden sobre la marcha hasta que solo quedan tokens no expandibles, que luego se ejecutan. La expansión en sí está prácticamente libre de efectos secundarios. La recursión de cola de macros no ocupa memoria y están disponibles construcciones if-then-else. Esto hace de TeX un lenguaje Turing-completo incluso en el nivel de expansión. [21] El sistema se puede dividir en cuatro niveles: en el primero, se leen caracteres del archivo de entrada y se les asigna un código de categoría (a veces llamado "catcode", para abreviar). Las combinaciones de una barra invertida (en realidad, cualquier carácter de categoría cero) seguida de letras (caracteres de categoría 11) o un solo carácter se reemplazan por un token de secuencia de control. En este sentido, esta etapa es como el análisis léxico, aunque no forma números a partir de dígitos. En la siguiente etapa, las secuencias de control expandibles (como condicionales o macros definidas) se reemplazan por su texto de reemplazo. La entrada para la tercera etapa es entonces un flujo de caracteres (incluidos los que tienen un significado especial) y secuencias de control no expandibles (normalmente asignaciones y comandos visuales). Aquí, los caracteres se ensamblan en un párrafo, y el algoritmo de división de párrafos de TeX funciona optimizando los puntos de ruptura en todo el párrafo. La cuarta etapa divide la lista vertical de líneas y otro material en páginas.
El sistema TeX tiene un conocimiento preciso de los tamaños de todos los caracteres y símbolos, y usando esta información, calcula la disposición óptima de letras por línea y líneas por página. Luego produce un archivo DVI ("DeVice Independent") que contiene las ubicaciones finales de todos los caracteres. Este archivo DVI puede luego imprimirse directamente si se le da un controlador de impresora apropiado, o puede convertirse a otros formatos. Hoy en día, se usa a menudo pdfTeX , que evita por completo la generación de DVI. [22] El sistema TeX básico entiende alrededor de 300 comandos, llamados primitivos . [23] Estos comandos de bajo nivel rara vez son utilizados directamente por los usuarios, y la mayoría de la funcionalidad es provista por archivos de formato (imágenes de memoria pre-volcadas de TeX después de que se han cargado grandes colecciones de macros). El formato predeterminado original de Knuth, que agrega alrededor de 600 comandos, es Plain TeX. [24] El formato más utilizado es LaTeX , desarrollado originalmente por Leslie Lamport , que incorpora estilos de documentos para libros, cartas, diapositivas, etc., y añade soporte para referencias y numeración automática de secciones y ecuaciones. Otro formato ampliamente utilizado, AMS-TeX , es producido por la American Mathematical Society y proporciona muchos más comandos fáciles de usar, que pueden ser modificados por las revistas para adaptarse a su estilo propio. La mayoría de las características de AMS-TeX se pueden utilizar en LaTeX mediante el uso de los "paquetes AMS" (por ejemplo, amsmath
, amssymb
) y las "clases de documentos AMS" (por ejemplo, amsart
, amsbook
). Esto se conoce entonces como AMS-LaTeX . [25] Otros formatos incluyen ConTeXt , utilizado principalmente para autoedición y escrito principalmente por Hans Hagen en Pragma.
Un ejemplo de programa Hola mundo en TeX simple es:
Hola, mundo \bye % marca el final del archivo; no se muestra en la salida final
Esto podría estar en un archivo myfile.tex , ya que .tex es una extensión de archivo común para archivos TeX simples. De forma predeterminada, todo lo que sigue a un signo de porcentaje en una línea es un comentario, ignorado por TeX. Ejecutar TeX en este archivo (por ejemplo, escribiendo tex myfile.texen un intérprete de línea de comandos o llamándolo desde una interfaz gráfica de usuario ) creará un archivo de salida llamado myfile.dvi , que representa el contenido de la página en un formato independiente del dispositivo (DVI). Un archivo DVI podría entonces verse en pantalla o convertirse a un formato adecuado para cualquiera de las diversas impresoras para las que existía un controlador de dispositivo (la compatibilidad con impresoras generalmente no era una característica del sistema operativo en el momento en que se creó TeX). Knuth ha dicho que no hay nada inherente en TeX que requiera DVI como formato de salida, y las versiones posteriores de TeX, en particular pdfTeX, XeTeX y LuaTeX, todas admiten la salida directamente a PDF .
TeX ofrece una sintaxis de texto diferente específicamente para fórmulas matemáticas. Por ejemplo, la fórmula cuadrática (que es la solución de la ecuación cuadrática ) aparece como:
Código fuente | Se representa como |
---|---|
La fórmula cuadrática es $ - b \pm \sqrt {b^ 2 - 4 ac} \over 2 a $ \bye |
La fórmula se imprime de la misma manera que una persona escribiría a mano o escribiría la ecuación. En un documento, para ingresar al modo matemático se comienza con un símbolo $, luego se ingresa una fórmula en sintaxis TeX y se cierra nuevamente con otro símbolo del mismo símbolo. Knuth explicó en broma que eligió el símbolo de dólar para indicar el comienzo y el final del modo matemático en TeX simple porque tradicionalmente se suponía que la composición tipográfica de las matemáticas era costosa. [26] Las matemáticas de visualización (matemáticas presentadas centradas en una nueva línea) son similares, pero usan $$ en lugar de un solo símbolo $. Por ejemplo, lo anterior con la fórmula cuadrática en matemáticas de visualización:
Código fuente | Se representa como |
---|---|
La fórmula cuadrática es $$ - b \pm \sqrt {b^ 2 - 4 ac} \over 2 a $$ \bye |
(Los ejemplos aquí no están realmente renderizados con TeX; el espaciado, el tamaño de los caracteres y todo lo demás pueden diferir).
El software TeX incorpora varios aspectos que no estaban disponibles, o eran de menor calidad, en otros programas de composición tipográfica en el momento en que se lanzó TeX. Algunas de las innovaciones se basan en algoritmos interesantes y han dado lugar a varias tesis para los estudiantes de Knuth. Si bien algunos de estos descubrimientos ya se han incorporado a otros programas de composición tipográfica, otros, como las reglas para el espaciado matemático, siguen siendo únicos.
Dado que el objetivo principal del lenguaje TeX es la composición tipográfica de alta calidad para los editores de libros, Knuth prestó mucha atención a las reglas de espaciado para fórmulas matemáticas. [27] [28] Tomó tres cuerpos de trabajo que consideró estándares de excelencia para la tipografía matemática: los libros compuestos por la editorial Addison-Wesley (la editorial de The Art of Computer Programming ) bajo la supervisión de Hans Wolf; ediciones de la revista matemática Acta Mathematica que datan de alrededor de 1910; y una copia de Indagationes Mathematicae , una revista matemática holandesa . Knuth examinó atentamente estos documentos impresos para ordenarlos y buscar un conjunto de reglas para el espaciado. [29] Si bien TeX proporciona algunas reglas básicas y las herramientas necesarias para especificar el espaciado adecuado, los parámetros exactos dependen de la fuente utilizada para componer la fórmula. Por ejemplo, el espaciado de las fuentes Computer Modern de Knuth se ha ajustado con precisión a lo largo de los años y ahora está establecido; Pero cuando Knuth utilizó por primera vez otras fuentes, como AMS Euler , fue necesario definir nuevos parámetros de espaciado. [30]
La composición tipográfica de las matemáticas en TeX no está exenta de críticas, en particular en lo que respecta a los detalles técnicos de las métricas de las fuentes, que se diseñaron en una época en la que se prestaba mucha atención a los requisitos de almacenamiento. Esto dio lugar a algunos "trucos" que sobrecargaban algunos campos, lo que a su vez requería otros "trucos". A nivel estético, también se ha criticado la representación de los radicales. [31] La especificación de fuentes matemáticas OpenType toma prestado en gran medida de TeX, pero tiene algunas características/mejoras nuevas. [32] [33] [34]
En comparación con la composición tipográfica manual, el problema de la justificación es fácil de resolver con un sistema digital como TeX, que, siempre que se hayan definido buenos puntos para el salto de línea, puede distribuir automáticamente los espacios entre las palabras para rellenar la línea. El problema es, por tanto, encontrar el conjunto de puntos de corte que dará el resultado visualmente más agradable. Muchos algoritmos de salto de línea utilizan un enfoque de primer ajuste , donde los puntos de corte para cada línea se determinan uno después del otro, y no se cambia ningún punto de corte después de que se haya elegido. [35] Un sistema de este tipo no puede definir un punto de corte en función del efecto que tendrá en las líneas siguientes. En comparación, el algoritmo de salto de línea de ajuste total utilizado por TeX y desarrollado por Donald Knuth y Michael Plass [36] considera todos los posibles puntos de corte en un párrafo y encuentra la combinación de saltos de línea que producirá la disposición globalmente más agradable.
Formalmente, el algoritmo define un valor llamado maldad asociado con cada posible salto de línea; la maldad se incrementa si los espacios en la línea deben estirarse o encogerse demasiado para que la línea tenga el ancho correcto. Se añaden penalizaciones si un punto de interrupción es particularmente indeseable: por ejemplo, si una palabra debe estar separada por guiones , si dos líneas seguidas están separadas por guiones o si una línea muy suelta es seguida inmediatamente por una línea muy ajustada. El algoritmo encontrará entonces los puntos de interrupción que minimizarán la suma de cuadrados de la maldad (incluyendo las penalizaciones) de las líneas resultantes. Si el párrafo contiene posibles puntos de interrupción, el número de situaciones que deben evaluarse ingenuamente es . Sin embargo, al utilizar el método de programación dinámica , la complejidad del algoritmo se puede reducir a (ver notación Big O ). Simplificaciones adicionales (por ejemplo, no probar puntos de interrupción extremadamente improbables como una separación por guiones en la primera palabra de un párrafo o líneas muy sobrecargadas) conducen a un algoritmo eficiente cuyo tiempo de ejecución es , donde es el ancho de una línea. Un algoritmo similar se utiliza para determinar la mejor manera de dividir párrafos en dos páginas, con el fin de evitar líneas viudas o huérfanas (líneas que aparecen solas en una página mientras el resto del párrafo está en la página siguiente o anterior). Sin embargo, en general, una tesis de Michael Plass muestra cómo el problema de salto de página puede ser NP-completo debido a la complicación añadida de colocar figuras. [37] El algoritmo de salto de línea de TeX ha sido adoptado por varios otros programas, como Adobe InDesign (una aplicación de autoedición ) [38] y la utilidad de línea de comandos de Unix GNU fmt . [39]
Si no se puede encontrar un salto de línea adecuado para una línea, el sistema intentará dividir una palabra con guiones. La versión original de TeX utilizaba un algoritmo de división de palabras basado en un conjunto de reglas para la eliminación de prefijos y sufijos de palabras, y para decidir si debía insertar un salto entre las dos consonantes en un patrón de la forma vocal – consonante – consonante – vocal (lo que es posible la mayor parte del tiempo). [40] TeX82 introdujo un nuevo algoritmo de división de palabras, diseñado por Frank Liang en 1983, para asignar prioridades a los puntos de corte en grupos de letras. Primero se genera automáticamente una lista de patrones de división de palabras a partir de un corpus de palabras con guiones (una lista de 50.000 palabras). Si TeX debe encontrar las posiciones de división de palabras aceptables en la palabra encyclopedia , por ejemplo, considerará todas las subpalabras de la palabra extendida .encyclopedia. , donde . es un marcador especial para indicar el comienzo o el final de la palabra. La lista de subpalabras incluye todas las subpalabras de longitud 1 ( . , e , n , c , y , etc.), de longitud 2 ( . e , en , nc , etc.), etc., hasta la subpalabra de longitud 14, que es la palabra misma, incluidos los marcadores. TeX buscará entonces en su lista de patrones de separación de palabras y encontrará subpalabras para las que ha calculado la conveniencia de la separación de palabras en cada posición. En el caso de nuestra palabra, se pueden encontrar 11 patrones de este tipo, a saber: 1 c 4 l 4 , 1 cy, 1 d 4 i 3 a, 4 edi, e 3 dia, 2 i 1 a, ope 5 d, 2 p 2 ed, 3 pedi, pedia 4 , y 1 c. Para cada posición de la palabra, TeX calculará el valor máximo obtenido entre todos los patrones coincidentes, dando como resultado en 1 cy 1 c 4 l 4 o 3 p 4 e 5 d 4 i 3 a 4 . Finalmente, las posiciones aceptables son aquellas indicadas por un número impar , dando como resultado las separaciones silábicas aceptables en-cy-clo-pe-di-a . Este sistema basado en subpalabras permite la definición de patrones muy generales (como 2 i 1a), con números indicativos bajos (ya sean pares o impares), que luego pueden ser reemplazados por patrones más específicos (como 1 d 4 i 3 a) si es necesario. Estos patrones encuentran alrededor del 90% de los guiones en el diccionario original; lo que es más importante, no insertan ningún guión falso. Además, se incluye una lista de excepciones (palabras para las que los patrones no predicen la separación de sílabas correcta) con el formato Plain TeX; el usuario puede especificar otras adicionales. [41] [ página necesaria ] [42]
Metafont, que no forma parte estrictamente de TeX, es un sistema de descripción de fuentes que permite al diseñador describir caracteres de forma algorítmica. Utiliza curvas de Bézier de una forma bastante estándar para generar los caracteres reales que se van a mostrar, pero Knuth dedica una atención considerable al problema de la rasterización en pantallas de mapa de bits . Otra tesis, de John Hobby, explora más a fondo este problema de digitalización de "trayectorias de pincel". Este término deriva del hecho de que Metafont describe caracteres como si hubieran sido dibujados con pinceles abstractos (y borradores). Se cree comúnmente que TeX se basa en fuentes de mapa de bits pero, de hecho, estos programas "no saben" nada sobre las fuentes que están utilizando más allá de sus dimensiones. Es responsabilidad del controlador del dispositivo manejar adecuadamente las fuentes de otros tipos, incluidas PostScript Type 1 y TrueType. Computer Modern (comúnmente conocida como "la fuente TeX") está disponible gratuitamente en formato Type 1, al igual que las fuentes matemáticas AMS. Los usuarios de sistemas TeX que generan directamente archivos PDF, como pdfTeX, XeTeX o LuaTeX, generalmente nunca utilizan la salida Metafont.
Los documentos TeX se escriben y programan utilizando un lenguaje de macros poco común. En términos generales, la ejecución de este lenguaje de macros implica etapas de expansión y ejecución que no interactúan directamente. La expansión incluye tanto la expansión literal de las definiciones de macros como la ramificación condicional, y la ejecución implica tareas como la configuración de variables/registros y el proceso de composición tipográfica real de agregar glifos a los cuadros.
La definición de una macro no solo incluye una lista de comandos, sino también la sintaxis de la llamada. Se diferencia de los preprocesadores léxicos más utilizados, como M4 , en que el cuerpo de una macro se convierte en un token en el momento de la definición.
El lenguaje macro TeX se ha utilizado para escribir sistemas de producción de documentos más grandes, entre los que se incluyen principalmente LaTeX y ConTeXt.
El código fuente original del software TeX actual está escrito en WEB , una mezcla de documentación escrita en TeX y un subconjunto de Pascal con el fin de garantizar la legibilidad y portabilidad. Por ejemplo, TeX hace toda su asignación dinámica por sí mismo a partir de matrices de tamaño fijo y utiliza solo aritmética de punto fijo para sus cálculos internos. Como resultado, TeX ha sido portado a casi todos los sistemas operativos , generalmente mediante el uso del programa web2c para convertir el código fuente a C en lugar de compilar directamente el código Pascal. Knuth ha mantenido un registro muy detallado de todos los errores que ha corregido y los cambios que ha realizado en el programa desde 1982; a partir de 2021 [update], la lista contiene 440 entradas, sin incluir la modificación de la versión que debería realizarse después de su muerte como cambio final en TeX. [43] [44] Knuth ofrece premios monetarios a las personas que encuentran y reportan un error en TeX. El premio por cada error comenzó en 2,56 dólares estadounidenses (un "dólar hexadecimal" [45] ) y se duplicó cada año hasta que se congeló en su valor actual de 327,68 dólares. Knuth ha perdido relativamente poco dinero, ya que ha habido muy pocos errores denunciados. Además, se sabe que los destinatarios han presentado su cheque como prueba de que encontraron un error en TeX en lugar de cobrarlo. [46] [47]
Debido a que los estafadores encontraron copias escaneadas de sus cheques en Internet y las usaron para intentar vaciar su cuenta bancaria, Knuth ya no envía cheques reales, pero aquellos que envían informes de errores pueden obtener crédito en el Banco de San Serriffe . [48]
TeX se proporciona generalmente en forma de un paquete fácil de instalar que incluye el propio TeX junto con Metafont y todas las fuentes, formatos de documentos y utilidades necesarias para utilizar el sistema de composición tipográfica. En los sistemas compatibles con UNIX, incluidos Linux y Apple macOS , TeX se distribuye como parte de la distribución más grande TeX Live . (Antes de TeX Live, la distribución teTeX era el estándar de facto en los sistemas compatibles con UNIX). En Microsoft Windows , existe la distribución MiKTeX (mejorada por proTeXt) y la versión Microsoft Windows de TeX Live.
Varios sistemas de procesamiento de documentos se basan en TeX, en particular jadeTeX, que utiliza TeX como backend para la impresión desde el motor DSSSL de James Clark , el sistema de publicación Arbortext y Texinfo , el sistema de procesamiento de documentación de GNU. TeX ha sido el paquete de composición tipográfica oficial para el sistema operativo GNU desde 1984.
Existen numerosas extensiones y programas complementarios para TeX, entre ellos BibTeX para bibliografías (distribuido con LaTeX); pdfTeX, un motor compatible con TeX que puede producir directamente una salida PDF (además de seguir admitiendo la salida DVI original); XeTeX , un motor compatible con TeX que admite Unicode y OpenType ; y LuaTeX , una extensión de TeX compatible con Unicode que incluye un entorno de ejecución Lua con amplios enlaces a las rutinas y algoritmos TeX subyacentes. La mayoría de las extensiones de TeX están disponibles de forma gratuita en CTAN , la Red Integral de Archivos TeX.
Hay una variedad de editores diseñados para trabajar con TeX :
<math>
etiquetas.Donald Knuth ha indicado varias veces [54] [55] [56] que el código fuente de TeX ha sido colocado en el " dominio público ", y alienta firmemente las modificaciones o experimentaciones con este código fuente. Sin embargo, dado que Knuth valora mucho la reproducibilidad del resultado de todas las versiones de TeX, cualquier versión modificada no debe llamarse TeX, ni nada similar que pueda causar confusión. Para hacer cumplir esta regla, cualquier implementación del sistema debe pasar un conjunto de pruebas llamado prueba TRIP [57] antes de que se le permita llamarse TeX. La cuestión de la licencia es algo confusa por las declaraciones incluidas al principio del código fuente de TeX, [58] que indican que "todos los derechos están reservados. La copia de este archivo está autorizada solo si ... no realiza absolutamente ningún cambio en su copia". Esta restricción debe interpretarse como una prohibición de cambiar el código fuente siempre que el archivo se llame tex.web . La nota de derechos de autor al principio de tex.web (y mf.web) se modificó en 2021 para indicar esto explícitamente. Esta interpretación se confirma más adelante en el código fuente cuando se menciona la prueba TRIP ("Si se modifica este programa, el sistema resultante no debería llamarse 'TeX ' "). [59] La American Mathematical Society intentó a principios de los años 1980 reclamar una marca registrada para TeX. Esto fue rechazado porque en ese momento "TEX" (todo en mayúsculas) estaba registrado por Honeywell para el sistema de procesamiento de texto " Text EXecutive ". [ cita requerida ]
Es posible utilizar TeX para la generación automática de diseños sofisticados para datos XML. Las diferencias de sintaxis entre los dos lenguajes de descripción se pueden superar con la ayuda de TeXML . En el contexto de la publicación XML, TeX puede considerarse una alternativa a XSL-FO . TeX permitió reducir los artículos científicos en disciplinas matemáticas a archivos relativamente pequeños que podían reproducirse en el lado del cliente, lo que permitió intercambiar artículos científicos completamente compuestos a través de Internet y la emergente World Wide Web, incluso cuando era difícil enviar archivos grandes. Esto allanó el camino para la creación de repositorios de artículos científicos como arXiv , a través de los cuales los artículos podían "publicarse" sin un editor intermediario. [60]
El nombre TeX está previsto por su desarrollador para ser pronunciado / t ɛ x / , con la consonante final de loch. [61] Las letras del nombre están destinadas a representar las letras griegas mayúsculas tau , epsilon y chi , ya que TeX es una abreviatura de τέχνη ( ΤΕΧΝΗ technē ), griego para "arte" y "artesanía", que también es la raíz de la palabra technical . Los angloparlantes a menudo lo pronuncian / t ɛ k / , como la primera sílaba de technical . Knuth indica que se componga con la "E" debajo de la línea de base y se reduzca el espacio entre las letras. Esto se hace, como menciona Knuth en su TeXbook , para distinguir TeX de otros nombres de sistemas como TEX, el procesador Text EXecutive (desarrollado por Honeywell Information Systems). [62] A los fanáticos les gusta proliferar nombres a partir de la palabra "TeX", como TeXnician (usuario del software TeX), TeXhacker (programador TeX), TeXmaster (programador TeX competente), TeXhax y TeXnique . [63]
Entre las entidades notables de la comunidad TeX se incluyen el TeX Users Group (TUG), que actualmente publica TUGboat y anteriormente publicaba The PracTeX Journal , que cubre una amplia gama de temas en tipografía digital relevantes para TeX. El Deutschsprachige Anwendervereinigung TeX (DANTE) es un gran grupo de usuarios en Alemania. El TeX Users Group se fundó en 1980 con fines educativos y científicos, proporciona una organización para aquellos que tienen interés en la tipografía y el diseño de fuentes, y son usuarios del sistema de composición tipográfica TeX inventado por Knuth. El TeX Users Group representa los intereses de los usuarios de TeX en todo el mundo. El TeX Users Group publica la revista TUGboat tres veces al año; [64] DANTE publica Die TeXnische Komödie cuatro veces al año. Otros grupos de usuarios incluyen DK-TUG en Dinamarca , GUTenberg en Francia , GuIT en Italia , NTG en los Países Bajos y UK-TUG en el Reino Unido ; Los grupos de usuarios mantienen conjuntamente una lista completa. [65]
Knuth definitivamente escribió la mayor parte del código él mismo, al menos para la reescritura de Metafont, de la cual tengo conocimiento personal. Sin embargo, algunos de sus estudiantes (como Michael Plass y John Hobby) trabajaron en los algoritmos utilizados en TeX y Metafont.
{{cite journal}}
: Requiere citar revista |journal=
( ayuda ){{cite book}}
: |journal=
ignorado ( ayuda ){{cite book}}
: |journal=
ignorado ( ayuda ){{cite book}}
: |journal=
ignorado ( ayuda ){{cite book}}
: |journal=
ignorado ( ayuda ){{cite book}}
: |journal=
ignorado ( ayuda ){{cite book}}
: |journal=
ignorado ( ayuda ){{cite book}}
: |journal=
ignorado ( ayuda ) .