Texas

Sistema de composición tipográfica

Texas
Desarrollador(es)Donald Knuth
Lanzamiento inicial1978 ; hace 46 años ( 1978 )
Versión estable
TeX Live 2024 [1] / 13 de marzo de 2024 ; hace 7 meses ( 13-03-2024 )
Repositorio
  • www.tug.org/svn/texlive/
Escrito enWEB / Pascal
Sistema operativoMultiplataforma
TipoTipografía
LicenciaSoftware libre permisivo
Sitio webremolcador.org
Texas
Extensión de nombre de archivo
.Texas
Tipo de medio de Internet
aplicación/x-tex [a]
Lanzamiento inicial1978 ; hace 46 años ( 1978 )
Tipo de formatoFormato 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.

Historia

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]

WEB y programación alfabetizada

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

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]

Dominio público

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]

Uso de TeX

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]

Sistema de composición tipográfica

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.

Cómo se ejecuta

Una página de muestra producida usando TeX con las macros LaTeX

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 .

Ejemplo matemático

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 fuenteSe representa como
La fórmula cuadrática es $ - b \pm \sqrt {b^ 2 - 4 ac} \over 2 a $ \bye    
La fórmula cuadrática es  b ± b 2 4 a do 2 a {\displaystyle {\hbox{La fórmula cuadrática es}}\textstyle {-b\pm {\sqrt {b^{2}-4ac}} \sobre 2a}}

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 fuenteSe representa como
La fórmula cuadrática es $$ - b \pm \sqrt {b^ 2 - 4 ac} \over 2 a $$ \bye    
La fórmula cuadrática es b ± b 2 4 a do 2 a {\displaystyle {\begin{matrix}{\text{The quadratic formula is}}\\\displaystyle {\frac {-b\pm {\sqrt {b^{2}-4ac}}}{2a}}\end{matrix}}}

(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).

Aspectos

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.

Espaciamiento matemático

Composición tipográfica de texto matemático utilizando TeX y la fuente AMS Euler

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]

Separación de palabras y justificación

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] n {\displaystyle n} 2 n {\displaystyle 2^{n}} O ( n 2 ) {\displaystyle O(n^{2})} O ( n w ) {\displaystyle O(nw)} w {\displaystyle w}

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 vocalconsonanteconsonantevocal (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

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.

Lenguaje macro

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.

Desarrollo

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]

Distribuciones y extensiones

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.

Editores

Hay una variedad de editores diseñados para trabajar con TeX :

  1. El editor de texto TeXmacs es un editor de texto científico WYSIWYG - WYSIWYM , inspirado tanto en TeX como en Emacs . Utiliza las fuentes de Knuth y puede generar salidas TeX.
  2. Overleaf es un editor en línea parcialmente WYSIWYG que proporciona una solución basada en la nube para TeX junto con funciones adicionales en edición colaborativa en tiempo real.
  3. LyX es un procesador de documentos WYSIWYM que se ejecuta en una variedad de plataformas, incluidas:
    1. Linux ,
    2. Microsoft Windows (las versiones más nuevas requieren Windows 2000 o posterior)
    3. Apple macOS (usando un front-end Qt no nativo ).
  4. TeXShop (para macOS), TeXworks (para Linux, macOS y Windows) y WinShell (para Windows) son herramientas similares y proporcionan un entorno de desarrollo integrado (IDE) para trabajar con LaTeX o TeX. Para KDE /Qt, Kile proporciona un IDE de este tipo.
  5. Texmaker es el equivalente Pure Qt de Kile, con una interfaz de usuario que es casi la misma que la de Kile.
  6. TeXstudio es una bifurcación de código abierto (2009) de Texmaker que ofrece un enfoque diferente en cuanto a configurabilidad y funciones. Se proporcionan binarios descargables gratuitos para Windows, Linux, macOS, OS/2 y FreeBSD.
  7. GNU Emacs tiene varios paquetes integrados y de terceros con soporte para TeX, siendo el principal AUCTeX .
  8. Visual Studio Code . Una extensión notable es LaTeX Workshop
  9. Para Vim , los complementos posibles incluyen Vim-LaTeX Suite, [49] Automatic TeX [50] y TeX-9. [51]
  10. Para Apache OpenOffice y LibreOffice , las extensiones iMath y TexMaths pueden proporcionar composición tipográfica matemática TeX. [52] [53]
  11. Para MediaWiki , la extensión Math proporciona composición tipográfica matemática TeX, pero el código debe estar rodeado de <math>etiquetas.

Licencia

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 ]

Publicación XML

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]

Pronunciación y ortografía

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]

Comunidad

Logotipo del grupo de usuarios de TeX

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  [de] cuatro veces al año. Otros grupos de usuarios incluyen DK-TUG en Dinamarca , GUTenberg  [fr] 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]

Extensiones

Véase también

Notas

  1. ^ Tipo de medio no registrado
  2. ^ Aunque troff sigue siendo el formateador predeterminado de la documentación de UNIX.

Referencias

  1. ^ "TeX Live - Grupo de usuarios de TeX". tug.org . Consultado el 25 de abril de 2024 .
  2. ^ "Per Bothner (asistente de las reuniones del Proyecto TeX) habla sobre la autoría". 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.
  3. ^ Yannis Haralambous. Fuentes y codificaciones (traducido por P. Scott Horne) . Pekín; Sebastopol, California: O'Reilly Media, 2007, págs. 235.
  4. ^ Gaudeul, Alexia (27 de marzo de 2006). "¿Responden los desarrolladores de código abierto a la competencia?: El caso de estudio de (La)TeX". doi :10.2139/ssrn.908946. S2CID  154052655. SSRN  908946. {{cite journal}}: Requiere citar revista |journal=( ayuda )
  5. ^ Knuth, Donald E. "Biografía menos breve". Página de inicio de Don Knuth . Archivado desde el original el 5 de diciembre de 2016. Consultado el 9 de enero de 2017 .
  6. ^ Knuth, Donald E. «Conferencia conmemorativa del Premio Kioto, 1996» (PDF) . Premio Kioto . Archivado desde el original (PDF) el 27 de enero de 2018. Consultado el 18 de agosto de 2018 .
  7. ^ Knuth, Donald Ervin, TEXDR.AFT, archivado desde el original el 12 de enero de 2015
  8. ^ Este artículo se basa en material tomado de TeX en el Diccionario gratuito en línea de informática antes del 1 de noviembre de 2008 e incorporado bajo los términos de "renovación de licencia" del GFDL , versión 1.3 o posterior.
  9. ^ Knuth y Plass 1981, pág. 144.
  10. ^ Knuth, Donald E. Knuth se reúne con miembros del NTG , NTG: MAPS. 16 (1996), 38–49. Reimpreso como Preguntas y respuestas, III , capítulo 33 de Tipografía digital , pág. 648.
  11. ^ Knuth, Donald E. Las nuevas versiones de TeX y METAFONT, TUGboat 10 (1989), 325–328; 11 (1990), 12. Reimpreso como capítulo 29 de Tipografía digital .
  12. ^ Hoenig, Alan (1998). TeX Unbound: LaTeX & TeX Strategies for Fonts, Graphics, & More [TeX sin límites: estrategias de LaTeX y TeX para fuentes, gráficos y más]. Oxford University Press. ISBN 978-0-19-509686-6.
  13. ^ "Lanzamiento de TeX 21" . Consultado el 5 de enero de 2022 .
  14. ^ ab "¿Cuál es el futuro de TeX?". Preguntas frecuentes sobre TeX . 27 de mayo de 2018. Archivado desde el original el 28 de abril de 2019. Consultado el 21 de julio de 2019 .
  15. ^ Knuth, Donald E. El futuro de TeX y METAFONT, NTG journal MAPS (1990), 489. Reimpreso como capítulo 30 de Digital Typography , pág. 571.
  16. ^ "Desarrollo de TeX Engine". Preguntas frecuentes sobre TeX . 24 de mayo de 2018. Archivado desde el original el 28 de abril de 2019. Consultado el 21 de julio de 2019 .
  17. ^ ab Knuth, Donald E; MacKay, Pierre (1987), "Mezcla de textos de derecha a izquierda con textos de izquierda a derecha" (PDF) , TUGboat , 8 : 14–25. Reimpreso como Bigelow, Charles; Day, Donald (1983). "Capítulo 4". Tipografía digital . Vol. 249. pág. 106. Código Bibliográfico :1983SciAm.249b.106B. doi :10.1038/scientificamerican0883-106. {{cite book}}: |journal=ignorado ( ayuda )
  18. ^ Beebe 2004, pág. 10.
  19. ^ Knuth, Donald E (1996), "Preguntas y respuestas I", TUGboat , 17 : 7–22. Reimpreso como Bigelow, Charles; Day, Donald (1983). "Capítulo 31". Tipografía digital . Vol. 249. pág. 598. Código Bibliográfico :1983SciAm.249b.106B. doi :10.1038/scientificamerican0883-106. {{cite book}}: |journal=ignorado ( ayuda )
  20. ^ Knuth, Donald E (1996), "Preguntas y respuestas II", TUGboat , 17 : 355–367. Reimpreso como Bigelow, Charles; Day, Donald (1983). "Capítulo 32". Tipografía digital . Vol. 249. págs. 616–617. Código Bibliográfico :1983SciAm.249b.106B. doi :10.1038/scientificamerican0883-106. {{cite book}}: |journal=ignorado ( ayuda )
  21. ^ Jeffrey, Alan (1990), "Listas en boca de TeX" (PDF) , TUGboat , 11 (2): 237–45
  22. ^ "CTAN: Paquete pdftex". ctan.org . Consultado el 21 de julio de 2019 .
  23. ^ Knuth 1984, pág. 9.
  24. ^ Plain TeX (código fuente), CTAN
  25. ^ "¿Qué son los paquetes AMS (amsmath, etc.)?". Preguntas frecuentes sobre TeX . 27 de mayo de 2018. Archivado desde el original el 28 de abril de 2019. Consultado el 21 de julio de 2019 .
  26. ^ Knuth 1984, pág. 127, cap. 16: Mecanografía de fórmulas matemáticas.
  27. ^ Slater, Robert (1989), Retratos en silicio, MIT Press, p. 349, ISBN 9780262691314
  28. ^ Syropoulos, Apóstolos; Tsolomitis, Antonis; Sofroniou, Nick (2003), Tipografía digital con LaTeX, Springer, p. 93, ISBN 9780387952178
  29. ^ Knuth, Donald E (1996), "Preguntas y respuestas II", TUGboat , 17 : 355–367. Reimpreso como Bigelow, Charles; Day, Donald (1983). "Capítulo 32". Tipografía digital . Vol. 249. págs. 620–624. Código Bibliográfico :1983SciAm.249b.106B. doi :10.1038/scientificamerican0883-106. {{cite book}}: |journal=ignorado ( ayuda )
  30. ^ Knuth, Donald E. Typesetting Concrete Mathematics, TUGboat 10 (1989), págs. 31–36, 342. Reimpreso como capítulo 18 de Digital Typography , págs. 367–378.
  31. ^ Vieth, Ulrik. «Composición tipográfica matemática en TEX: lo bueno, lo malo y lo feo» (PDF) . Archivado desde el original (PDF) el 20 de enero de 2022.
  32. ^ "Edición y visualización de texto matemático de alta calidad en Office 2007".
  33. ^ "Servicios de Línea".
  34. ^ "Mapa" (PDF) . ntg.nl .
  35. ^ Barnett, Michael P (1965), Composición tipográfica por ordenador: experimentos y perspectivas , Cambridge , MA : MIT Press
  36. ^ URL = http://svn.tug.org/interviews/plass.html
  37. ^ Knuth y Plass 1981.
  38. ^ "Donald E. Knuth", TUGboat (entrevista), 21 , Advogato : 103–10, 2000, archivado desde el original el 22 de enero de 2009 , consultado el 26 de diciembre de 2005
  39. ^ "4.1 fmt: Reformatear el texto de un párrafo", Manual de utilidades básicas de GNU (GNU coreutils) , Proyecto GNU, 2016
  40. ^ Liang 1983, pág. 3.
  41. ^ Liang 1983.
  42. ^ "Apéndice H: Separación de palabras", The TeXbook , págs. 449-55
  43. ^ Knuth, Donald E. Lista de actualizaciones del listado TeX82 publicado en septiembre de 1982, disponible en CTAN .
  44. ^ Knuth, Donald E. Apéndice al artículo Errores de TeX, disponible en CTAN, última modificación en enero de 2003.
  45. ^ Knuth, Donald E. "Knuth: Preguntas frecuentes". Stanford Computer Science . Archivado desde el original el 6 de marzo de 2008. Consultado el 28 de noviembre de 2019 .
  46. ^ Kara Platoni (mayo-junio de 2006). "Love at First Byte". Stanford Magazine . Archivado desde el original el 4 de junio de 2006.
  47. ^ "Historia de TeX". Grupo de usuarios de TeX . Consultado el 28 de noviembre de 2019 .
  48. ^ Knuth, Donald E (2008). «Knuth: Noticias recientes: fiasco financiero». Stanford Computer Science . Archivado desde el original el 29 de noviembre de 2019. Consultado el 29 de noviembre de 2019 .
  49. ^ Vim-LaTex, SourceForge, archivado desde el original el 8 de marzo de 2024
  50. ^ Complemento automático TeX, Plataforma de lanzamiento [ enlace muerto permanente ]
  51. ^ TeX-9, Vim.org
  52. ^ Página de inicio de TexMaths, free.fr
  53. ^ iMath, FuenteForge
  54. ^ Bigelow, Charles; Day, Donald (1983). "El futuro de TeX y METAFONT". Tipografía digital . Vol. 249. pág. 572. Código Bibliográfico :1983SciAm.249b.106B. doi :10.1038/scientificamerican0883-106. {{cite book}}: |journal=ignorado ( ayuda )
  55. ^ Knuth, Donald E (1986), "Computadoras y composición tipográfica" (PDF) , TUGboat , 7 : 95–98
  56. ^ Bigelow, Charles; Day, Donald (1983). "Capítulo 28" (PDF) . Tipografía digital . Vol. 249. pág. 560. Código Bibliográfico :1983SciAm.249b.106B. doi :10.1038/scientificamerican0883-106. {{cite book}}: |journal=ignorado ( ayuda )
  57. ^ "Viaje", CTAN (TeX) (código fuente)
  58. ^ Knuth, Donald E (1986), TeX: El programa , Computadoras y composición tipográfica, vol. B, Reading, MA: Addison-Wesley, ISBN 0-201-13437-3
  59. ^ Código abierto: tecnología y política, de Fadi P. Deek y James AM McHugh, "Dominio público", página 227 (2008)
  60. ^ O'Connell, Heath (2002). "Los físicos prosperan con la publicación sin papel". Hep Lib.web . 6 : 3. arXiv : physics/0007040 .
  61. ^ Knuth, Donald E. The TeXbook , Cap. 1: El nombre del juego, pág. 1.
  62. ^ Knuth, Donald E. El logotipo de TeX en varias fuentes, TUGboat 7 (1986), 101. Reimpreso como capítulo 6 de Tipografía digital .
  63. ^ "El archivo de jerga—TeX" . Consultado el 23 de julio de 2016 .
  64. ^ "Las comunicaciones del grupo de usuarios de TeX". tug.org . Grupo de usuarios de TeX . Consultado el 15 de marzo de 2019 .
  65. ^ "Todos los grupos de usuarios de TeX". tug.org . Grupo de usuarios de TeX . Consultado el 17 de noviembre de 2019 .

Fuentes

  • Beebe, Nelson HF (2004), "25 años de TeX y METAFONT: una mirada al pasado y al futuro" (PDF) , TUGboat , 25 : 7–30.
  • Knuth, Donald Ervin (1984), The TeXbook , Computadoras y composición tipográfica , vol. A, Reading, MA : Addison-Wesley, ISBN 0-201-13448-9El código fuente del libro en TeX (y un conjunto de macros necesario [1]) está disponible en línea en CTAN . Se proporciona solo como ejemplo y no se permite su uso para preparar un libro como The TeXbook.
  • ——— (1986), TeX: El programa , Computadoras y composición tipográfica, vol. B, Reading, MA : Addison-Wesley, ISBN 0-201-13437-3El código fuente completo de TeX; también disponible en CTAN . Al estar escrito con programación alfabetizada , contiene abundante documentación legible para humanos.
  • ——— (1999), Tipografía digital , Apuntes de clase, Centro de Estudios del Lenguaje y la Información, ISBN 1-57586-010-4.
  • ———; Plass, Michael F (1981), "Dividir párrafos en líneas", Software: Practice and Experience , 11 (11): 1119–84, doi :10.1002/spe.4380111102, S2CID  206508107. Reimpreso como Bigelow, Charles; Day, Donald (1983). "Capítulo 3". Tipografía digital . Vol. 249. págs. 67–155. Código Bibliográfico :1983SciAm.249b.106B. doi :10.1038/scientificamerican0883-106. {{cite book}}: |journal=ignorado ( ayuda ) .
  • ———, TeX (código fuente), archivado desde el original ( WEB ) el 27 de septiembre de 2011Contiene documentación extensa sobre los algoritmos utilizados en TeX.
  • Lamport, Leslie (1994), LaTeX : un sistema de preparación de documentos (2.ª ed.), Reading, MA : Addison-Wesley, ISBN 0-201-52983-1.
  • Liang, Franklin Mark (agosto de 1983), Word Hy-phen-a-tion by Comp-put-er ( tesis doctoral ), Departamento de Ciencias de la Computación, Universidad de Stanford.
  • Salomon, David (1995), El TeXbook avanzado , Springer, Bibcode :1995adte.book.....S, ISBN 0-387-94556-3.
  • Spivak, MD (1990), The Joy of TeX (referencia) (2.ª ed.), American Mathematical Society, ISBN 0-8218-2997-1en AMS-TeX.
  • Vulis, Michael (1992), TeX moderno y sus aplicaciones, CRC Press, ISBN 0-8493-4431-X.
  • Grupo de usuarios de TeX
  • TeX (preguntas y respuestas), StackExchange.
  • Eijkhout, Victor. TeX por tema Archivado el 25 de febrero de 2021 en Wayback Machine.
  • TeX para los impacientes
  • Donald Knuth analiza el desarrollo del software para TEX en Xerox PARC el 21/02/1980 https://archive.org/details/xerox-parc-tapes-v49
Retrieved from "https://en.wikipedia.org/w/index.php?title=TeX&oldid=1250142173"