Texas

Texas

Información
Creador Donald Knuth
Primera versión 1978
Última versión 3.141592653 (Enero de 2021)
Depositar www.tug.org/svn/texlive
Escrito en WEB y Pascal
Sistema de explotación GNU / Linux , Microsoft Windows y macOS
Tipo Software de composición ( d )
Lenguaje de marcado
Formato de archivo ( en )
Lenguaje de programación
Licencia Licencia pública general GNU y licencia libre permisiva
Sitio web www.tug.org

TeX es un sistema de software gratuito para componer documentos, independientemente del hardware utilizado para verlos o imprimirlos. Fue creado en 1977 por el matemático e informático Donald Knuth , indignado por la mala calidad de la tipografía del software de edición de la época. Está diseñado principalmente para editar documentos técnicos y es ampliamente utilizado por científicos, especialmente en matemáticas , física , bioinformática , astronomía e informática . También es extensible y permite, en particular, la edición de documentos más complejos (carteles, folletos publicitarios, partituras musicales, etc.). TeX proviene de τεχ , comienzo de la palabra τέχνη ("arte, ciencia", en griego antiguo ), y se pronuncia / tɛx / o / tɛk /, según se desee. A veces escribimos T E X en lugar de TeX, el software que permite el formateo correspondiente al logo.

Origen e historia

Orígenes del programa

Cuando el primer volumen de The Art of Computer Programming fue publicado en 1968, el primer libro de Donald Knuth , que fue impreso por primera vez por la composición del metal caliente, una copia de la técnica que data del XIX °  siglo que dio un carácter "viejo" apreciado por Knuth . Sin embargo, en la segunda edición del segundo volumen en 1976, el libro completo tuvo que recomponerse porque los editores estaban usando una nueva técnica llamada fotocomposición que ya no funcionaba con las fuentes antiguas. De hecho, las antiguas prensas de impresión habían sido reemplazadas por prensas de impresión fotográfica. Cuando Knuth recibió los primeros ensayos de su segundo libro, los encontró horribles. Tanto es así que decidió solucionar el problema y crear su propia herramienta de edición tipográfica que no sería fotográfica sino informática.

Knuth inicialmente planeó completarlo en seis meses al final de su año sabático. Eventualmente tomará casi 10 años, desde 1977 hasta 1989 . Aunque fue el único que lo desarrolló, recibió la ayuda de muchos colaboradores, incluidos Hermann Zapf , Chuck Bigelow, Kris Holmes , Matthew Carter y Richard Southall.

Decidiendo ir a trabajar a Stanford en lugar de a los Xerox Labs en Palo Alto , Knuth se puso a trabajar en TeX en la primavera de 1977. Tomando como referencia una gran cantidad de libros de tipografía, especialmente los de la antigua colección Aldine, lo tomó en su cabeza para transcribir los viejos caracteres en su programa usando fórmulas matemáticas. Entonces estaba tratando de entender la lógica detrás de las letras. Así que se puso a trabajar en su propio software de fuentes Metafont .

El primer prototipo de TeX fue implementado en el verano de 1977 por 2 estudiantes de Knuth, Michael F. Plass y Frank M. Liang , de acuerdo con las especificaciones que les había dado. Inicialmente contenía solo algunas definiciones de macros y operaciones elementales en cajas.

Primera versión

La primera versión de TeX, también conocida como Tau Epsilon Chi, fue completada en 1978 por Knuth basándose en el prototipo. Esto se implementó en lenguaje SAIL, un lenguaje de compilación similar a Algol , y el primer manual de usuario se escribió en el verano de 1978.

A principios de 1979, Trabb Pardo y Knuth comenzaron a planificar una conversión de SAIL a WEB . Esto dará lugar a una conversión completa entre 1979 y 1980 realizada por Ignacio A. Zabala. Al mismo tiempo, Knuth lanzó la primera versión de Metafont en 1979.

Segunda versión

En 1982 se publicó una nueva versión llamada TeX82 , prácticamente reescrita de la A a la Z. Esta versión incluye notablemente ideas de la implementación de 1979 en MESA escritas por Leonidas Guibas, Robert Sedgewick y Douglas Wyatt del centro de investigación Xerox en Palo Alto . El algoritmo original de separación de sílabas fue reemplazado por un nuevo algoritmo escrito por Frank Liang en 1983. TeX82 usó una representación de punto fijo en lugar de un punto flotante para mejorar la portabilidad en varios hardware. Knuth también incluye un verdadero lenguaje de programación certificado completo de Turing bajo la presión de programadores, incluido Guy Steele .

En Agosto de 1989, Donald Knuth inicia nuevos cambios en el código de TeX y Metafont . De hecho, hasta entonces los caracteres estaban codificados en 7 bits, lo que es suficiente para mostrar 128 letras, es decir el alfabeto inglés más algunos caracteres especiales, pero claramente insuficiente para alfabetos extranjeros (en particular en Europa y Asia). Por lo tanto, tuvo que readaptar completamente TeX y Metafont para operar en 8 bits, o 256 caracteres diferentes, lo que lo hizo utilizable para una gran parte de los idiomas de Europa Occidental. También introdujo en TeX la capacidad de separar con guiones en idiomas distintos del inglés, basándose en varias ideas de Michael J. Ferguson. Luego, TeX cambió a su versión estable 3.0.

Tercera versión

A partir de la versión 3, TeX utilizó un sistema idiosincrásico de numeración de versiones , las actualizaciones se indican agregando un dígito extra después del punto decimal, el número de versión y acercándose asintóticamente al número . La versión actual de TeX es 3.14159265, siendo la última actualización12 de enero de 2014. Las características esenciales de TeX se congelaron después de la versión 3.0 y todas las versiones posteriores contienen solo correcciones de errores . Donald Knuth, aunque señaló posibles mejoras, insistió en que tener un sistema fijo que siempre producirá el mismo resultado es más importante que introducir nuevas funciones.

Operación

Características principales

Desde el principio, el sistema TeX fue diseñado para ser:

Durante el desarrollo, el software se independizó de su soporte. Para el mismo archivo de entrada, entrega el mismo archivo de salida independientemente de la computadora o sistema operativo en el que esté instalado.

El lenguaje TeX

El lenguaje TeX es un lenguaje de marcado . Utiliza tanto texto sin formato para el texto del cuerpo como comandos que comienzan con una barra invertida "\".

Los comandos reconocidos por el compilador TeX se dividen en "primitivas" (hay alrededor de 300) y "macros", creadas a partir de las primitivas. Las macros posibilitan estructuras bastante complejas (bucles, condiciones, etc.) así como la realización de cálculos.

Para simplificar la preparación de un documento, D. Knuth definió un conjunto de alrededor de 600 macros llamado TeX simple que se describe en su libro The TeXbook junto con las primitivas y los mecanismos internos. Esto a menudo causa confusión entre TeX simple y el compilador TeX. Para acelerar la creación de un documento, este conjunto de macros, llamado formato , está precompilado.

Dado que el uso directo del formato plano TeX es bastante difícil, se ha extendido a LaTeX (nuevamente, sin distinción con el nombre del idioma en el que se describe el documento, que también se llama LaTeX), originalmente escrito por Leslie Lamport , que es en realidad un conjunto de comandos macro basados ​​en TeX. También están disponibles otros formatos, como ConTeXt , AMS-LaTeX .

Los comandos de TeX tienen muchos usos. Se utilizan por ejemplo para definir las fuentes a utilizar, para añadir espacios, etc.

Ejemplos de

Aquí hay un ejemplo de código TeX para mostrar "¡Hola mundo!".

Hello World! \bye %\Bye désigne la fin du fichier

A continuación se muestra un ejemplo de código de fórmula matemática. Esto muestra las soluciones de una ecuación cuadrática .

Margen Representación
Les solutions de $ax^2+bx+c=0$ sont $-b\pm\sqrt{b^2-4ac}\over2a$. \bye .

El programa TeX

TeX interpreta un lenguaje de descripción de documentos formal definido por D. Knuth (actualmente, no distinguimos entre el software TeX y este lenguaje que también se llama TeX). En otras palabras, no se trata de un formateador de texto de renderizado inmediato donde el documento en preparación aparece en la pantalla como se supone que debe ser cuando se imprime, sino un software que traduce una descripción textual en un documento gráfico.

TeX toma como entrada un documento escrito en lenguaje TeX y crea un archivo en formato dvi que contiene una descripción de las páginas, es decir las posiciones de caracteres, imágenes, figuras, etc. en la página. Para ser impreso o exportado, el dvi debe traducirse a otro formato reconocido por el dispositivo. PostScript (especialmente para impresoras) y PDF son los formatos más populares para TeX.

TeX lee el byte de entrada por byte. Primero, reunirá estos bytes en unidades léxicas. Para ello, TeX utiliza un sistema de categorización de caracteres muy flexible. Tan pronto como encuentra un personaje de escape, lee todo lo que sigue hasta que encuentra un personaje que no está categorizado como letra. Este conjunto de caracteres se almacena como un nombre de comando. Esto puede usarse como una abreviatura, y simplemente se desarrollará durante la composición, o puede ejecutarse, un poco como una función o un procedimiento de un lenguaje de programación.

Algunos de los algoritmos utilizados por TeX son bastante complejos. Por ejemplo, uno de ellos lee un párrafo completo para decidir dónde realizar un retorno de carro. El de la separación por sílabas se describe en particular poco después.

Algoritmo de separación de sílabas de Frank Liang

Fue escrito por Frank Liang durante su tesis doctoral en 1983 en el departamento de informática de Stanford . Es este algoritmo el que determina en qué lugares debe cortarse correctamente una palabra entre dos líneas. La implementación utilizada en TeX, el programa Patgen , usa poco espacio y su tasa de éxito es de alrededor del 90-95% de posibilidades de obtener una separación de palabras adecuada. Su principio se basa en el uso de diccionarios y el reconocimiento de patrones en palabras.

Metafont

Metafont es un software también diseñado por Knuth que le permite crear caracteres y, por extensión, fuentes. Aunque Metafont no es parte de TeX per se, todavía está muy vinculado a él. Esto se debe a que el tipo de letra utilizado por TeX, Computer Modern, fue diseñado con Metafont .

Metafont utiliza muchas técnicas para dibujar letras, como las curvas de Bézier . Al diseñarlo, Knuth trató de encontrar cierta lógica entre letras. Por ejemplo, la letra n toma exactamente 2 veces el ancho de la letra i , la letra m toma 3 veces el ancho de la letra i y la letra u toma el mismo ancho que la letra n .

En Metafont, las letras se crean a partir de ecuaciones.

usar

TeX se usa a menudo en la academia y la ciencia para producir documentos técnicos, principalmente debido a su interpretación de fórmulas y otros símbolos.

Sin embargo, tiene otros usos, especialmente en el ámbito profesional. Por ejemplo, puede producir tarjetas de presentación, cartas, programas de conciertos o incluso libros (la motivación inicial de Knuth).

Es posible utilizar TeX para generar el delicado diseño de datos XML de forma completamente automática. Esto permite la reconciliación de diferencias sintácticas entre los dos lenguajes descriptivos usando TeXML . Por tanto, podemos considerar a TeX como una alternativa a XSL-FO en el contexto de la publicación en XML.

Licencia

Donald Knuth ha dicho varias veces que el código fuente de TeX es de dominio público y que recomienda encarecidamente que se modifiquen. Por otro lado, aunque es de dominio público, Knuth solicita que, cuando se publique una modificación de TeX, lleve un nombre diferente a TeX, para permitir su distinción (ejemplo con LaTeX o ConTeXt ).

Extensiones

El compilador de TeX ha sido objeto de algunas extensiones (no confundir con formatos como LaTeX , ConTeXt ), entre las cuales:

  • pdfTeX  : crea archivos directamente en formato de documento portátil  ;
  • MlTeX  : TeX multilingüe  ;
  • TeX-XeT  : admite escrituras de derecha a izquierda;
  • VTeX  : compilador comercial de MicroPress;
  • Omega  : para procesar documentos multilingües;
  • epsilon-TeX  : agregue algunas primitivas a TeX;
  • XeTeX  : una versión Unicode de TeX con soporte de fuentes modernas;
  • LuaTeX  : una versión Unicode que incorpora un intérprete para el idioma Lua  ;
  • XyMTeX  (en)  : una extensión para mostrar fórmulas químicas.

Comunidad

Hay muchos grupos de usuarios de TeX / LaTeX en todo el mundo, que generalmente están vinculados a un idioma: GUTenberg (de habla francesa), TUG (de habla inglesa, significa Grupo de usuarios de TeX ), DANTE (de habla alemana), CervanTeX (de habla española), GuIT (De habla italiana), NTG (de habla holandesa)…

Algunos de estos grupos publican periódicos ( Cahiers GUTenberg , Lettre GUTenberg , PracTeX , TUGboat …) y también organizan conferencias, a veces de forma conjunta ( EuroTeX …).

Caza de errores

Donald Knuth anima a cualquiera a encontrar errores y errores tipográficos en el código fuente de TeX y en el resto de su trabajo: software o libros. Hasta 2008, incluso ofreció una recompensa económica. Esto equivalía a $ 2.56  (un "dólar hexadecimal  ") por un error ( tipográfico o de otro tipo) en un libro impreso. Para un error de software , la cantidad aumentaba con la edad: de 1,28  dólares el primer año de existencia del error, se duplicaba cada año hasta un límite de 327,68  dólares (es decir, 128 "dólares hexadecimales", alcanzados después de ocho años).

A pesar de la gran cantidad de cheques enviados y su monto a veces elevado, muy pocos de ellos fueron cobrados, sus destinatarios prefirieron enmarcarlos.

A partir de 2008, Knuth ya no envía cheques reales, prefiriendo certificados de depósito de la nación imaginaria del banco San Serriffe .

Etimología y pronunciación

Según su autor, la palabra "TeX" deriva del griego antiguo τέχνη ( tekhnê  " , que significa "arte" o "artesanía", raíz etimológica de la palabra "  técnica  "); de hecho, el logotipo de T E X está formado por las letras griegas tau , épsilon y khi en su forma mayúscula.

Dependiendo del período, esta última letra se pronuncia [ k ] (como k en “kayak” y ch en “técnica”) luego [  x ] (como ch en alemán “  Buch  ” y j en español “  Juan Carlos  ” ). Donald Knuth recomienda la segunda pronunciación, [ t ɛ x ] . Sin embargo, como el sonido [  x ] no se conoce ni en francés ni en inglés (excepto los préstamos), muchos usuarios utilizan la primera pronunciación, [ t ɛ k ] .

También escuchamos, particularmente de novatos, la pronunciación considerada errónea [ t ɛ k s ] , como en la palabra "texto".

Notas y referencias

  1. "  https://www-cs-faculty.stanford.edu/~knuth/abcde.html  "
  2. (en) Donald E. Knuth, The TeXbook , cap. 1: El nombre del juego, p.  1
  3. (en) Donald Knuth E., Tipografía digital , p.5

    "" Pasé 15 años escribiendo esos libros, pero si iban a quedar horribles no quería escribir más ""

  4. (en) "  Entrevista a Donald Knuth - Decidir hacer mi propio programa de composición tipográfica  " [video] en webofstories.com ,2001(consultado el 7 de junio de 2017 )
  5. (en) Donald E. Knuth, Computadoras y tipografía, Volumen E: Tipografías modernas de computadora , Massachusetts, Addison-Wesley ,1984, 483  p. ( ISBN  0-201-13448-9 ) , pág.  Introducción
  6. (in) "  Entrevista con Donald Knuth - Trabajando en mi programa de composición tipográfica  " [video] en webofstories.com ,2001(consultado el 7 de junio de 2017 )
  7. (en) John E Mustain, "  Aldine Collection  " en library.stanford.edu (consultado el 3 de enero de 2018 )
  8. (en) Donald E. Knuth, TeX: El programa , vol.  B, Addison-Wesley ,1991( 1 st  ed. 1986), 600 p. pag. ( ISBN  0-201-13437-3 ) , pág.
  9. (en) Donald Knuth, Tau Epsilon Chi, A System for Technical Text , Providence, RI: American Mathematical Society,1978( ISBN  0-8218-0209-7 , leer en línea )
  10. (in) Ignacio Zabala y Luis Trabb-Pardo, "  El estado de la implementación Pascal de TeX  " , TUGboat , vol.  1, n o  1,Octubre de 1980( leer en línea )
  11. Knuth y Plass, p.  144
  12. (en) Christina Thiele, "  Knuth se encuentra con los miembros de NTG  " [PDF] en aanhet.net ,13 de marzo de 1996(consultado el 7 de junio de 2017 )
  13. (en) Donald E. Knuth, "  Las nuevas versiones de TeX y METAFONT  " en TUGboat ,1989(consultado el 7 de junio de 2017 )
  14. (en) Donald E. Knuth. El futuro de TeX y METAFONT , NTG journal MAPS (1990), 489. Reimpreso como capítulo 30 de Digital Typography , p.  571.
  15. (in) "  encabezado del código fuente de TeX  " , enumerando las actualizaciones.
  16. (en) Donald E. Knuth, The TeXBook , vol.  A, American Mathematical Society y Addison Wesley,1986, Apéndice H - p449
  17. (in) "  Fórmula matemática para la forma de la letra  " , Entrevista con Donald Knuth [video] en webofstories.com ,2001(consultado el 7 de junio de 2017 ) .
  18. (en) Donald Knuth, "  Computers and Typesettings  " [PDF] en TUGboat 1995-1998 (consultado el 11 de junio de 2017 )
  19. (en) Donald Knuth, Preguntas frecuentes  " en su sitio web personal (consultado el 28 de noviembre de 2019 )
  20. (en) Historia de TeX  " en tug.org ,12 de agosto de 2015(consultado el 3 de enero de 2018 )
  21. (en) Donald Knuth, Noticias recientes - Financiero Fiasco  " en su página web ,2008
  22. (en) Kara Platoni, Love at First Byte  " [ archivo25 de septiembre de 2008] , en stanfordalumni.org ,2006

Ver también

Artículos relacionados

Bibliografía

  • Donald Knuth (traducido por Jean-Côme Charpentier), Le TeXbook: composición informatique , Vuibert, 2003, 555 p. ( ISBN  978-2-7117-4819-8 ) .
  • (en) Donald Knuth (original), The TeXbook , Vol. A.: Computers & Typesetting , Addison-Wesley, 1984 (primera edición), 483 p. ( ISBN  0-201-13448-9 ) .
  • (en) Donald Knuth , TeX: El programa , vol. B.: Computadoras y tipografía , Addison-Wesley Professional, 1986, 624 p. ( ISBN  978-0-201-13437-7 ) .Este libro contiene la fuente del compilador TeX en Pascal, utilizando técnicas de programación alfabetizadas .

enlaces externos