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.
Extensión de nombre de archivo | .dvi |
---|---|
Tipo de medio de Internet | application/x-dvi (no oficial) |
Desarrollado por | David R. Fuchs |
Tipo de formato | documento |
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 y 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.
Especificación
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 desde el grupo 0x00
hasta 0x7F
(decimal 127) ,, escribe 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_i
0xF7
pre
En un sentido más amplio, un archivo DVI consta de un preámbulo, una o más páginas y un postámbulo. 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 (el aumento de v se mueve hacia abajo en la página), w y x mantienen valores de espacio horizontal, y y z , vertical.
Estas variables se pueden insertar o extraer de la pila . Además, la fuente actual f se mantiene como un valor entero, pero no se empuja ni aparece con el resto de las variables de estado cuando se encuentran los códigos de operación push
o pop
. La información de espaciado de fuentes se carga desde archivos TFM . Las fuentes en sí mismas no están incrustadas en el archivo DVI, solo referenciadas por 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 una vez en el postámbulo). 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 0 a 255.fnt_defi
De manera similar, el formato DVI admite códigos de caracteres de hasta cuatro bytes de longitud, aunque solo se ve comúnmente el rango 0-255, ya que el formato TFM está limitado a ese rango. Los códigos de caracteres de los archivos DVI se refieren 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 para los cuadros en blanco y negro más básicos. En cambio, DVI tiene un mecanismo de escape / extensión general, conocido como especiales (expresados por el \special
comando en TeX), que difiere los gráficos (y el color) a los filtros de posprocesamiento. Existen numerosos especiales 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 a menudo se convierten a formato PDF, PostScript o PCL para su lectura e impresión. También se pueden ver directamente mediante visores 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 desaparecido comercial Y&Y TeX, que ha sido de código abierto). [5]
- DVI a formato legible por humanos: dvitype (tipo 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 de que perdieron su participación de mercado hace mucho tiempo. [7]
- Convertidores de DVI a mapa de bits: dvipng (genera GIF o PNG), o use dvips y Ghostscript
- Convertidores de 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 visores DVI capaces de previsualizar en pantalla y modificar documentos LaTeX se ejecutaron 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 actuales de Linux como Ubuntu , es una envoltura delgada alrededor de dvips y Ghostscript , y tiene derechos de autor de 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 JPEG e imágenes PNG ; Otras características de dvipdfm incluyen la incrustación parcial de fuentes (reducción del tamaño del archivo) y el equilibrio de los árboles de documentos PDF internos para acelerar la reproducció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 en PDF. La 4ª edición de 2004 de la Guía de LaTeX 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 tienden a respetar este ideal. Después de todo, nadie pensó en 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 preferir pdfTEX sobre un convertidor de DVI a PDF, ni 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 mejores resultados para el usuario en particular.
dvipdfmx es una versión extendida del traductor de DVI a PDF dvipdfm, incluido en las distribuciones actuales de TeX como TeX Live 2014 [21] y MiKTeX 2.9. [22] El objetivo principal del proyecto dvipdfmx es admitir codificaciones de caracteres de varios bytes y conjuntos de caracteres CJK para idiomas de Asia oriental. [23] dvipdfmx también se incluye (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 sencilla es utilizar látex, seguido de dvips y finalmente ps2pdf . Si todos sus 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 puede combinar ambos enfoques ejecutando latex y el programa dvipdfmx. Si hace mucho uso de PSTricks , debería mirar el [...] paquete pst-pdf.
Referencias y notas
- ↑ a b Donald E. Knuth (diciembre de 1995). "DVItype" ( código fuente WEB ; extraer la documentación completa usando WEAVE ) . Versión 3.6 . Consultado el 7 de mayo de 2008 . Cite journal requiere
|journal=
( ayuda ) - ^ Comité de Normas para Conductores TUG DVI. "El estándar del controlador DVI, nivel 0" (PDF) . ctan.org .
- ^ Comité de Normas de Conductores TUG DVI (1992). "El estándar del controlador DVI, nivel 0" (PDF) . Remolcador . 13 : 54.
- ^ a b c d e f g Michel Goossens, Frank Mittelbach, Sebastian Rahtz , Denis Roegel, Herbert Voß (2008). The LaTeX Graphics Companion (2ª ed.). Addison-Wesley. ISBN 978-0-321-50892-8.CS1 maint: varios nombres: lista de autores ( enlace )
- ^ "Y&Y Inc. - DVIWindo" . www.tug.org .
- ^ "Y&Y Inc. - DVIPSONE" . www.tug.org .
- ^ "CTAN: / tex-archive / dviware / dvitops" . ctan.org .
- ^ https://www.tug.org/TUGboat/tb27-2/tb87frischauf.pdf
- ^ "CTAN: / tex-archive / dviware" . ctan.org .
- ^ 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 . Un enlace a la información de la reliquia sobre los hitos de la historia de LaTeX está disponible en este sitio externo .
- ^ Rokicki, Tomas (abril de 1988). "El Commodore Amiga: una máquina mágica TeX" (PDF) . Remolcador . 9 (1): 40–41 . Consultado el 19 de noviembre de 2010 .
- ^ "Copia archivada" . Archivado desde el original el 9 de septiembre de 2015 . Consultado el 3 de agosto de 2014 .CS1 maint: copia archivada como título ( enlace )
- ^ https://www.tug.org/TUGboat/tb17-3/tb52lese.pdf
- ^ https://www.tug.org/TUGboat/tb18-3/tb56lese.pdf
- ^ http://tex.loria.fr/general/eurotex98/eurotex98-lesenko.ps.gz
- ^ Helmut Kopka; Patrick W. Daly (febrero de 2008) [2004]. Guía de LaTeX (4ª; 9ª edición de impresión). Educación Pearson. § 13.2.2 el controlador dvipdfm. ISBN 0-321-17385-6.
- ^ "¿Dónde art dvipdf? - comp.text.tex" . compgroups.net .
- ^ Mark A. Wicks, Dvipdfm User's Manual Archivado 2015-07-06 en Wayback Machine , Versión 0.12.4 19 de septiembre de 1999, página 2
- ^ "texfaq2html redirecciona emulando la búsqueda cgi-bin en el sitio original" . www.texfaq.org .
- ^ Helmut Kopka; Patrick W. Daly (febrero de 2008) [2004]. Guía de LaTeX (4ª; 9ª edición de impresión). Educación Pearson. § 13.2.3 El programa pdfTEX. ISBN 0-321-17385-6.
- ^ "Debian - Detalles del paquete texlive-base en sid" . packages.debian.org .
- ^ "Paquetes MiKTeX AZ" . miktex.org .
- ^ "El proyecto DVIPDFMx" . project.ktug.org .
- Fuchs, David (octubre de 1982). "El formato de los archivos DVI de TeX" (PDF) . Remolcador . 3 (2): 13-19 . Consultado el 19 de agosto de 2009 .
enlaces externos
- Descripción (no oficial) del formato de archivo DVI
- Utilidad de información de archivos TeX DVI
- CTAN: / tex-archive / dviware
- pdftex - ¿Por qué pdflatex produce archivos de salida más grandes que latex + dvipdfm?