1.2 Sistemas actuales

Cuando escribimos la segunda edición de The \(\LaTeX\) Companion (es decir, 2003–2004), el estándar \(\LaTeX\) era (oficialmente) compatible sólo con motores de 8 bits, por ejemplo, pdf\(\TeX\). Casi al mismo tiempo, apareció la primera versión del motor Unicode \(XE \TeX\) y (algo más tarde, en 2007) la primera versión beta de Lua\(\TeX\), y pronto aparecieron archivos de soporte no oficiales que ayudaban a las personas que ejecutaban \(\ LaTeX\) también en estos motores Unicode.

Cuando Lua\(\TeX\) alcanzó la versión 1.0, el equipo del proyecto \(\LaTeX\) aprovechó la oportunidad y asumió oficialmente el soporte de \(\LaTeX\) para los tres motores que incluía, por ejemplo, ejecutar el conjunto de pruebas de regresión de lanzamiento con sus aproximadamente 1000 pruebas. contra los tres motores. Además de estos tres motores (que se tratan en este libro), hay otros, como p\(\TeX\) y up\(\TeX\) para japonés, donde los ajustes de \(\LaTeX\) para el motor los mantiene el usuario respectivo. grupos.

Lo que se describe en este libro debería funcionar con todos estos motores; en los casos en que existan diferencias entre los motores de 8 bits y Unicode, se describen explícitamente (consulte la página 18 para obtener una descripción de cómo hacerlo).

Sin embargo, cada uno de los motores también tiene una u otra especialidad en comparación con el programa \(\TeX\) original, que está disponible sólo con ese motor en particular; por ejemplo, Lua\(\TeX\) admite código escrito en Lua, o up\(\TeX\) ofrece comandos especiales para tipografía japonesa, etc. El estándar \(\LaTeX\) abstrae dichas características (cuando el soporte está disponible en todos los motores y solo los métodos difieren). ) o no hace uso de las funciones, y por esa razón dichos comandos específicos del motor no se analizan en el \(\LaTeX\) Companion. Si está interesado en ese nivel de codificación, consulte la documentación del motor, por ejemplo, para pdf\(\TeX\) [65], para \(XE\TeX\) [173] y para Lua\(\TeX\) [122].

En el resto de la sección actual presentamos una descripción general de la amplia gama de archivos utilizados por un sistema típico \(\LaTeX\) con sus numerosos componentes. Esta descripción general también incluye algunas descripciones de cómo interactúan los distintos componentes del programa. La mayoría de los usuarios nunca necesitarán conocer los detalles exactos de este entorno de software que respalda su trabajo, pero esta sección será una referencia general útil y una ayuda para comprender algunas de las partes más técnicas de este libro.

Aunque los sistemas \(\LaTeX\) modernos suelen estar integrados en interfaces orientadas a proyectos y controladas por menús, detrás de escena poco ha cambiado con respecto a la descripción basada en archivos que se proporciona aquí. La Figura 1.1 muestra esquemáticamente el flujo de información.

La siguiente descripción supone familiaridad con un sistema de archivos informático estándar en el que se utiliza una “extensión de archivo” para indicar el “tipo de archivo”. Al procesar un documento, el programa \(\LaTeX\) lee y escribe varios archivos, algunos de los cuales son procesados posteriormente por otras aplicaciones. Los más importantes se enumeran en la Tabla 1.1 en la página siguiente. El libro cubre un total de 64 tipos de archivos, pero los que no se describen en la sección actual son bastante especializados y utilizados sólo por paquetes individuales.

Los archivos obviamente más importantes en cualquier proyecto de documentación basado en \(\LaTeX\) son los archivos fuente de entrada. Normalmente, habrá un archivo principal que utiliza otros archivos subsidiarios (consulte la Sección 2.1). Estos archivos suelen tener la extensión .tex (la documentación del código para \(\LaTeX\) normalmente lleva la extensión .dtx; consulte el Capítulo 17). Se les conoce comúnmente como “archivos de texto sin formato”, porque pueden prepararse con un editor de texto básico. A menudo, las imágenes gráficas externas se incluyen en el documento tipográfico utilizando la interfaz “gráfica” descrita en la Sección 8.1.

\(\LaTeX\) también necesita varios archivos que contengan definiciones de estructura y diseño: archivos de clase con la extensión .cls; opción archivos con la extensión .clo; paquete archivos con la extensión .sty (ver Apéndice A). Muchos de ellos los proporciona la configuración básica del sistema, pero otros pueden ser proporcionados por otros desarrolladores. \(\LaTeX\) se distribuye con cinco clases de documentos estándar: artículo, informe, libro, diapositivas y carta. Estas clases de documentos se pueden personalizar según el contenido de otros archivos especificados mediante opciones de clase o cargando paquetes adicionales como se describe en la Sección 2.1. Además, muchos documentos \(\LaTeX\) ingresan automáticamente archivos de definición de lenguaje del sistema babel con la extensión .ldf (ver Capítulo 13) y archivos de definición de codificación de los paquetes inputenc/fontenc con la extensión .def (ver Capítulo 9).

La información que \(\LaTeX\) necesita sobre los glifos a componer se encuentra en los archivos \(\TeX\) font metric (extensión .tfm). Esto no incluye información sobre las formas de los glifos, sólo sobre sus dimensiones. La información sobre qué archivos de fuentes necesita \(\LaTeX\) se almacena en archivos de definición de fuentes (extensión.fd), o en el caso de motores Unicode, a veces en archivos.fontspec. Ambos tipos se cargan automáticamente cuando es necesario. Consulte el Capítulo 9 para obtener más información sobre los recursos de fuentes.

Algunos otros archivos deben estar disponibles para \(\TeX\), pero es aún menos probable que los encuentres directamente. Un ejemplo incluye el archivo de formato \(\LaTeX\) pdflatex.fmt que contiene las instrucciones principales de \(\LaTeX\), precompiladas para ser procesadas por el formateador pdf\(\TeX\). Hay algunas situaciones en las que es necesario volver a compilar este formato, por ejemplo, cuando se cambia el conjunto de reglas de separación de palabras disponibles para \(\LaTeX\) (configurado en language.dat; consulte la Sección 13.6.2) y, por supuesto, cuando un nuevo kernel \(\LaTeX\) está disponible. Los detalles sobre cómo se generan dichos formatos difieren de una implementación \(\TeX\) a otra, por lo que no se describen en este libro, pero normalmente todo esto sucede detrás de escena con las herramientas de la distribución que utiliza.

La salida de \(\LaTeX\) en sí es una colección de archivos internos (ver más abajo), más un archivo muy importante que contiene toda la información producida por \(\TeX\) sobre la forma tipográfica del documento.

La representación particular de \(\TeX\) del documento formateado es la de un archivo independiente del dispositivo (extensión .dvi). \(\TeX\) posiciona glifos y reglas con una precisión mucho mejor que 0,01\(μ\)m (1/4.000.000 de pulgada). Por lo tanto, la salida generada por \(\TeX\) puede considerarse efectivamente independiente de las capacidades de cualquier dispositivo de renderizado físico, de ahí el nombre. Hoy en día, todos los principales motores \(\TeX\) pueden producir alternativamente resultados PDF (extensión .pdf) y, con el tiempo, este se ha convertido en el formato de salida estándar que reemplaza en gran medida a .dvi. El formato de archivo .dvi especifica solo los nombres/ubicaciones de las fuentes y sus glifos; no contiene ninguna información de representación para esos glifos. El formato de archivo .pdf puede contener, y normalmente contiene, dicha información de representación.

Algunos de los archivos internos contienen código necesario para pasar información de una ejecución de \(\LaTeX\) a la siguiente, como por ejemplo para referencias cruzadas (el archivo auxiliar, extensión .aux; consulte la Sección 2.3) y para composición tipográfica. elementos particulares del documento como la tabla de contenidos (extensión .toc) y las listas de figuras (extensión .lof) y de tablas (extensión .lot). Otros son específicos de paquetes particulares (como acro, Sección 3.3.2, o enotz, Sección 3.5.10) o de otras partes del sistema (ver más abajo).

Finalmente, \(\TeX\) genera un archivo de transcripción de sus actividades con la extensión .log.

Este archivo contiene mucha información, como los nombres de los archivos leídos, los números de página (entre paréntesis) de las páginas procesadas, mensajes de advertencia y error, y otros datos pertinentes que son especialmente útiles al depurar errores (ver Apéndice B). Cuando utiliza un editor con soporte integrado para \(\TeX\), este archivo .log a veces se le oculta y sus datos solo se presentan de forma selectiva. Si ese es el caso, puede que valga la pena buscarlo en el nivel del sistema de archivos, porque es probable que contenga información importante en caso de problemas que le desconcierten.

Un archivo con la extensión .idx contiene elementos individuales sin clasificar que se indexarán. Estos elementos deben ordenarse, cotejarse y unificarse mediante un programa como MakeIndex, upmendex o xindy (consulte el Capítulo 14). La versión ordenada normalmente se coloca en un archivo (extensión .ind) que a su vez se ingresa en \(\LaTeX\). Para MakeIndex o upmendex, el archivo de información de estilo de índice tiene una extensión de .ist y el archivo de transcripción tiene una extensión de .ilg; por el contrario, xindy parece no utilizar ningún tipo de archivo predefinido.

La información sobre citas bibliográficas (ver Capítulo 16) en un documento normalmente es enviada por \(\LaTeX\) al archivo auxiliar o al archivo de control biber (extensión .bcf). Esta información se utiliza primero para extraer la información necesaria de una base de datos bibliográfica y luego para ordenarla; la versión ordenada se coloca en un archivo bibliografía (extensión .bbl) que a su vez se ingresa en \(\LaTeX\). Si el sistema usa BIB\(\TeX\) o biber (ver Capítulo 15) para esta tarea, entonces los archivos de base de datos bibliográfica tendrán una extensión de .bib, y el archivo de transcripción tendrá la extensión .blg. Con BIB\(\TeX\), la información adicional sobre el proceso estará en un archivo estilo bibliografía (extensión .bst); biber no usa estilos; en ese caso, esto lo maneja biblatex.

Debido a las limitaciones de \(\TeX\), especialmente su incapacidad para manejar gráficos o colores de forma nativa, a menudo es necesario completar el formato de algunos elementos del documento tipográfico después de que \(\TeX\) haya posicionado todo y escrito esta información en el Archivo .dvi en algún paso de posprocesamiento. Esto normalmente se hace adjuntando información adicional e instrucciones de manejo en la “posición geométrica correcta en el documento tipográfico”, usando la primitiva \especial de \(\TeX\) que simplemente coloca esta información en el lugar correcto en el .dvi. archivo (ver Capítulo 8). Esta información puede ser simplemente el nombre de un archivo de gráficos que se ingresará; o pueden ser instrucciones en un lenguaje gráfico. Luego, esto se procesa posteriormente cuando el archivo .dvi se convierte mediante un programa independiente, como dvips, para imprimirlo o mostrarlo. Si \(\TeX\) genera PDF directamente, conceptualmente no hay mucha diferencia, excepto que el posprocesamiento ocurre directamente en el motor \(\TeX\) extendido (por ejemplo, pdftex, \(X e T eX\) o Lua$ $) en el punto donde \(\TeX\) ha terminado una página y pasa el resultado a un componente que lo traduce a una página PDF. Este componente luego desempeña el papel que desempeñan los programas externos en el flujo de trabajo .dvi: también utiliza \specials para comunicarse o primitivas adicionales del motor particular que hacen un trabajo similar.

En cualquier caso, \(\LaTeX\) se abstrae de las peculiaridades subyacentes del flujo de trabajo para que siempre pueda especificar \color o \includegraphics. \(\LaTeX\) traduce eso en los comandos \special correctos según su flujo de trabajo y el motor \(\TeX\) elegido.

Una vez que \(\TeX\) haya procesado exitosamente el documento (y posiblemente lo haya transformado a PostScript o PDF), probablemente desee echar un vistazo al texto formateado. Esto normalmente se hace en pantalla, pero la inspección detallada de la salida impresa siempre debe realizarse imprimiendo en papel con la resolución más alta disponible. Las aplicaciones disponibles para ver documentos en pantalla varían mucho según el flujo de trabajo elegido y el sistema operativo. Si generas PDF, existen varias herramientas gratuitas y comerciales que se diferencian principalmente en sus características para posprocesar el documento, pero no en la representación real, porque el PDF normalmente incluye todos los recursos utilizados por el documento. Si, por otro lado, desea ver un archivo .dvi, necesita un visor que pueda encontrar y mostrar las fuentes o gráficos a los que se hace referencia en el .dvi, porque no forman parte del archivo en sí. Por lo tanto, de vez en cuando encontrará que algunas aplicaciones producen resultados de pantalla muy superiores que otras; esto se debe a las limitaciones de las diferentes tecnologías y a la disponibilidad de recursos tipográficos adecuados.