Formato de archivo independiente del dispositivo

Formato de archivo de composición tipográfica
Independiente del dispositivo (DVI)
Vista previa de un archivo DVI en Evince . Tenga en cuenta que las imágenes a las que se hace referencia no se muestran porque no forman parte del archivo DVI. Las imágenes se agregarán mediante un controlador de impresión, como dvips .
Extensión de nombre de archivo
.dvi
Tipo de medio de Internetapplication/x-dvi (no oficial)
Desarrollado porDavid R. Fuchs
Tipo de formatodocumento

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 en 1979. [1] A diferencia de los archivos de marcado TeX utilizados para generarlos, los archivos DVI no están pensados ​​para 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 , hardware de visualización o impresora específicos . Los archivos DVI se utilizan normalmente como entrada para un segundo programa (llamado controlador DVI ) que traduce los 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 ser al menos parcialmente diseñado a la inversa 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 ningún tipo de incrustación de fuentes, sino que simplemente hace referencia a nombres de fuentes externas. (Tanto los formatos PostScript como PDF pueden incrustar sus fuentes dentro de los documentos). Para que un archivo DVI se pueda imprimir o incluso previsualizar correctamente, las fuentes a las que hace referencia ya 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 y de Turing-completo como PostScript.

A partir de 2004 existe una compilación de las especificaciones que debe implementar un controlador DVI por parte del "TUG DVI Driver Standards Committee". [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 al observar un archivo DVI en sí.

Especificación

El formato DVI fue diseñado para ser compacto y fácil de leer por máquina. Con este fin, un archivo DVI es una secuencia de comandos que forman "un lenguaje similar al de 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. En contraste, 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 números enteros de 32 bits con signo: . h y v son los desplazamientos horizontales y verticales actuales desde la esquina superior izquierda (el aumento de v hace que se desplace hacia abajo en la página), w y x contienen valores de espacio horizontal, y y z , verticales. ( yo , en , el , incógnita , y , el ) {\estilo de visualización (h,v,w,x,y,z)}

Estas variables se pueden insertar o extraer de la pila . Además, la fuente actual f se conserva como un valor entero, pero no se inserta ni se extrae con el resto de las variables de estado cuando se encuentran los códigos de operación pusho . La información de espaciado de fuentes se carga desde archivos TFM . Las fuentes en sí no están incrustadas en el archivo DVI, solo se hace referencia a ellas mediante un valor entero definido en la operación relevante. (Esto se hace exactamente dos veces para cada fuente cargada: una vez antes de que se haga referencia a ella y otra en el epílogo). f contiene un valor entero de hasta cuatro bytes de longitud, aunque en la práctica, TeX solo genera números de fuente en el rango de 0 a 255.popfnt_defi

De manera similar, el formato DVI admite códigos de caracteres de hasta cuatro bytes de longitud, aunque normalmente solo se ve el rango de 0 a 255, ya que el formato TFM está limitado a ese rango. Los códigos de caracteres en los archivos DVI hacen referencia a la codificación de caracteres de la fuente actual, en lugar de a la del sistema que la procesa. Esto significa, por ejemplo, que un sistema basado en EBCDIC puede procesar un archivo DVI generado por un sistema basado en ASCII , siempre que tenga instaladas las mismas fuentes.

Gráficos como especiales

El formato DVI no admite gráficos, excepto los cuadros en blanco y negro más básicos. En su lugar, DVI tiene un mecanismo de escape/extensión general, conocido como specials (expresado por el \specialcomando en TeX), que posterga los gráficos (y el color) a los filtros de posprocesamiento. Existen numerosos specials de DVI, los más notables de los cuales son los especiales de PostScript , pero otros programas como tpic tienen los suyos propios. [4] : 6, 17 

Versiones DVI

Los archivos DVI suelen convertirse a formato PDF, PostScript o PCL para su lectura e impresión. También pueden visualizarse directamente mediante visualizadores DVI.

  • Visores DVI: YAP (incluido en MiKTeX ), xdvi , windvi, Evince , KDVI, Okular , dviout, dviwin, DView (incluido en la distribución comercial BaKoMa TeX), javaDVI, MDVI y DVIWindo (del ahora extinto Y&Y TeX comercial, que se ha convertido en código abierto). [5]
  • DVI a formato legible para humanos: dvitype (una especie de desensamblador)
  • Convertidores de DVI a PDF: dvipdf, dvipdfm, dvipdfmx
  • Convertidores DVI a PS: dvips es el estándar de facto. CTAN incluye algunos más antiguos como dvitops (y DVIPSONE [6] ) con una nota que dice que perdieron su participación en el mercado hace mucho tiempo. [7]
  • Convertidores de DVI a mapa de bits: dvipng (genera GIF o PNG), o utilice dvips y Ghostscript
  • Convertidores DVI a SVG: dvisvg, [4] : 13  dvisvgm, [4] : 13  dvi2svg; [4] : 13  [8] A partir de 2014, [actualizar]el único incluido en CTAN y mantenido activamente es dvisvgm. [9]

Los primeros previsualizadores DVI capaces de previsualizar y modificar documentos LaTeX en pantalla funcionaban en Amigas . [10] [11]

Convertidores de DVI a PDF

dvipdf es una herramienta para traducir archivos DVI (generados por TeX ) a archivos PDF . En las distribuciones Linux actuales como Ubuntu , es una envoltura delgada alrededor de dvips y Ghostscript , y sus derechos de autor pertenecen a Artifex Software (los creadores de Ghostscript). [12] Un programa posiblemente diferente con el mismo nombre, descrito como una versión modificada de dvips, fue anunciado a fines de la década de 1990 por Sergey Lesenko, [13] [14] [15] sin embargo, aparentemente nunca fue lanzado . [16] [17]

dvipdfm es un traductor de DVI a PDF desarrollado por Mark A. Wicks. La documentación inicial de dvipdfm menciona específicamente la disponibilidad limitada de dvipdf de Lesenko como una razón para crear dvipdfm. [18] dvipdfm admite la mayoría de las funciones especiales más nuevas del formato PDF, incluidos marcadores , anotaciones , miniaturas y especiales de dvips (una característica que hace posible la inclusión de archivos PostScript encapsulado (.eps) como la salida METAPOST ), así como la inclusión de imágenes JPEG y PNG ; otras características de dvipdfm incluyen la incrustación parcial de fuentes (reduciendo el tamaño del archivo) y el equilibrio de los árboles de documentos PDF internos para acelerar la representación de documentos grandes. [4] : 798  Muchas de estas características (excepto el soporte directo para archivos .eps [19] ) también están presentes en pdfTeX , que compone TeX directamente a PDF. La cuarta edición de la Guía de LaTeX de 2004 los compara de la siguiente manera: [20]

El programa dvipdfm sigue el espíritu original de TEX, que utiliza DVI como formato intermedio universal para todas las salidas. Los puristas pueden tender a respetar este ideal. Después de todo, nadie jamás consideró reescribir TEX para producir una salida PostScript directamente. Dicho esto, hay que tener en cuenta que TEX se inventó en los días en que ninguna especificación de impresora dominaba el campo. Hoy, PDF es mucho más que un formato de impresora; es el medio de representar documentos electrónicamente. Eso por sí solo no justificaría la preferencia de pdfTEX por sobre un conversor de DVI a PDF, ni tampoco el hecho de que ahorra un paso de procesamiento; el argumento decisivo es que pdfTEX se ha establecido como confiable, robusto y flexible. Al final, es probable que sea una cuestión de con qué programa uno se siente más cómodo y cuál ha dado los mejores resultados para el usuario en particular.

dvipdfmx es una versión extendida del traductor DVI-a-PDF dvipdfm, incluido en distribuciones TeX actuales como TeX Live 2014 [21] y MiKTeX 2.9. [22] El objetivo principal del proyecto dvipdfmx es soportar codificaciones de caracteres multibyte y conjuntos de caracteres CJK para idiomas del este asiático. [23] dvipdfmx también está incluido (en una forma algo modificada) en XeTeX . [4] : 798 

La segunda edición de 2008 de LaTeX Graphics Companion hace la siguiente sugerencia de flujo de trabajo: [4] : 803 

La ruta que debes seguir depende principalmente del material gráfico que quieras incluir. Si la mayor parte está en formato EPS, la forma más fácil es utilizar latex, seguido de dvips y, por último, ps2pdf . Si todos tus archivos gráficos ya están en formato PDF, con algunas imágenes JPEG y PNG, la ruta más directa es ejecutar pdflatex. También puedes combinar ambos enfoques ejecutando latex y el programa dvipdfmx. Si utilizas mucho PSTricks , deberías echar un vistazo al paquete pst-pdf.

Referencias y notas

  1. ^ de Donald E. Knuth (diciembre de 1995). "DVItype" ( código fuente WEB ; extraiga la documentación completa utilizando WEAVE ) . Versión 3.6 . Consultado el 7 de mayo de 2008. El primer programa DVItype fue diseñado por David Fuchs en 1979 .
  2. ^ Comité de estándares para conductores de TUG DVI. "Estándar para conductores de DVI, nivel 0" (PDF) . ctan.org .
  3. ^ Comité de normas para conductores de TUG DVI (1992). "Norma para conductores de DVI, nivel 0" (PDF) . TUGboat . 13 : 54.
  4. ^ abcdefg Michel Goossens, Frank Mittelbach, Sebastian Rahtz , Denis Roegel, Herbert Voß (2008). El compañero de gráficos LaTeX (2ª ed.). Addison-Wesley. ISBN 978-0-321-50892-8.{{cite book}}: CS1 maint: varios nombres: lista de autores ( enlace )
  5. ^ "Y&Y Inc. - DVIWindo". www.tug.org .
  6. ^ "Y&Y Inc. - DVIPSONE". www.tug.org .
  7. ^ "CTAN: /tex-archive/dviware/dvitops". ctan.org .
  8. ^ https://www.tug.org/TUGboat/tb27-2/tb87frischauf.pdf [ URL básica PDF ]
  9. ^ "CTAN: /tex-archive/dviware". ctan.org .
  10. ^ En 1986, Tomas Rokicki imprimió su primera página con dvisw, uno de los primeros controladores de impresora DVI para Amiga, en un QMS SmartWriter utilizando AmigaTeX de Radical Eye Software. En este sitio externo se encuentra disponible un enlace a información remanente sobre los hitos de la historia de LaTeX.
  11. ^ Rokicki, Tomas (abril de 1988). "The Commodore Amiga: A Magic TeX Machine" (PDF) . TUGboat . 9 (1): 40–41 . Consultado el 19 de noviembre de 2010 .
  12. ^ "Página de manual de Ubuntu: Dvipdf: convertir archivos TeX DVI a PDF con ghostscript y dvips". Archivado desde el original el 9 de septiembre de 2015. Consultado el 3 de agosto de 2014 .
  13. ^ https://www.tug.org/TUGboat/tb17-3/tb52lese.pdf [ URL básica PDF ]
  14. ^ https://www.tug.org/TUGboat/tb18-3/tb56lese.pdf [ URL básica PDF ]
  15. ^ "Navegador (La)TeX".
  16. ^ Helmut Kopka; Patrick W. Daly (febrero de 2008) [2004]. Guía de LaTeX (4.ª; 9.ª edición). Pearson Education. § 13.2.2 El controlador dvipdfm. ISBN 978-0-321-17385-0.
  17. ^ "¿Dónde está el archivo dvipdf? - comp.text.tex". compgroups.net . Archivado desde el original el 11 de agosto de 2014.{{cite web}}: CS1 maint: unfit URL (link)
  18. ^ Mark A. Wicks, Manual del usuario de Dvipdfm Archivado el 6 de julio de 2015 en Wayback Machine , versión 0.12.4 19 de septiembre de 1999, página 2
  19. ^ "Redireccionamiento texfaq2html que emula la búsqueda cgi-bin en el sitio original". www.texfaq.org .
  20. ^ Helmut Kopka; Patrick W. Daly (febrero de 2008) [2004]. Guía de LaTeX (4.ª; 9.ª edición impresa). Educación Pearson. § 13.2.3 El programa pdfTEX. ISBN 978-0-321-17385-0.
  21. ^ "Debian -- Detalles del paquete texlive-base en sid". packages.debian.org .
  22. ^ "Paquetes MiKTeX AZ". miktex.org .
  23. ^ "El Proyecto DVIPDFMx". project.ktug.org .
  • Fuchs, David (octubre de 1982). "El formato de los archivos DVI de TeX" (PDF) . TUGboat . 3 (2): 13–19 . Consultado el 19 de agosto de 2009 .
  • Descripción (no oficial) del formato de archivo DVI
  • Utilidad de información de archivos TeX DVI
  • CTAN: /archivo-tex/dviware
  • pdftex - ¿Por qué pdflatex produce archivos de salida más grandes que latex+dvipdfm?
Retrieved from "https://en.wikipedia.org/w/index.php?title=Device_independent_file_format&oldid=1259818540"