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 pantalla o impresora . Los archivos DVI se utilizan normalmente como entrada a 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 de un 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 (por ejemplo , PostScript , PDF ) y para imprimir.

El marcado TeX puede tener ingeniería inversa al menos parcialmente 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 usó extensiones TeX de alto nivel (por ejemplo, LaTeX ).

DVI se diferencia de PostScript y PDF en que no admite ningún tipo 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 ya 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 un controlador DVI debe implementar 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 corto. [3] Estos documentos no especifican el endianness , que sin embargo es big endian, como se puede ver en 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 0x00al 0x7F(decimal 127) ,, escribe 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 postámbulo. Seis variables de estado se mantienen como una tupla de firmados, números enteros de 32 bits: . h y v son los desplazamientos horizontales y verticales actuales desde la esquina superior izquierda (el aumento de v se mueve hacia abajo en la página), w y x mantienen valores de espacio horizontal, y y z , vertical.