Formato de archivo independiente del dispositivo


El formato de archivo independiente del dispositivo ( DVI ) es el formato de archivo de salida del programa de composición tipográfica TeX , diseñado por David R. Fuchs e implementado por Donald E. Knuth en 1982. [1] A diferencia de los archivos de marcado TeX utilizados para generarlos, los archivos DVI no están destinados a ser legibles por humanos ; consisten en datos binarios que describen el diseño visual de un documento de una manera que no depende de ningún formato de imagen específico , hardware de visualización o impresora . Los archivos DVI generalmente se usan como entrada para un segundo programa (llamado controlador DVI)) que traduce archivos DVI a datos gráficos. Por ejemplo, la mayoría de los paquetes de software TeX incluyen un programa para obtener una vista previa de los archivos DVI en la pantalla de la computadora del usuario; este programa es un controlador. Los controladores también se utilizan para convertir de DVI a lenguajes de descripción de página populares (p. ej ., PostScript , PDF ) y para imprimir.

El marcado TeX puede tener, al menos , ingeniería inversa parcial a partir de archivos DVI, aunque es poco probable que este proceso produzca construcciones de alto nivel idénticas a las presentes en el marcado original, especialmente si el marcado original usaba extensiones TeX de alto nivel (por ejemplo, LaTeX ).

DVI se diferencia de PostScript y PDF en que no admite ninguna forma de incrustación de fuentes. (Tanto los formatos PostScript como PDF pueden incrustar sus fuentes dentro de los documentos o hacer referencia a fuentes externas). Para que un archivo DVI se imprima o incluso se previsualice correctamente, las fuentes a las que hace referencia deben estar instaladas. Al igual que PDF, DVI utiliza un tipo limitado de lenguaje de máquina con garantías de terminación que no es un lenguaje de programación completo de Turing como PostScript.

A partir de 2004, existe una compilación de las especificaciones que debe implementar un controlador DVI por parte del "Comité de estándares de controladores TUG DVI". [2] Parece estar basado en un artículo de TUGboat del mismo nombre de 1992, pero que es mucho más breve. [3] Estos documentos no especifican el endianness , que sin embargo es big endian, como se puede ver al examinar un archivo DVI.

El formato DVI fue diseñado para ser compacto y fácilmente legible por máquina. Con este fin, un archivo DVI es una secuencia de comandos que forman "un lenguaje similar a una máquina ", en palabras de Knuth . [1] Cada comando comienza con un código de operación de ocho bits , seguido de cero o más bytes de parámetros. Por ejemplo, un código de operación del grupo 0x00hasta 0x7F(decimal 127) , compone un solo carácter y mueve el cursor implícito a la derecha por el ancho de ese carácter. Por el contrario, el código de operación (decimal 247), (el preámbulo, que debe ser el primer código de operación en el archivo DVI), toma al menos catorce bytes de parámetros, más un comentario opcional de hasta 255 bytes.set_char_i0xF7pre

En un sentido más amplio, un archivo DVI consta de un preámbulo, una o más páginas y un epílogo. Se mantienen seis variables de estado como una tupla de enteros de 32 bits con signo: . h y v son los desplazamientos horizontales y verticales actuales desde la esquina superior izquierda (aumentando v se mueve hacia abajo en la página), w y x contienen valores de espacio horizontal, y y z , verticales.