Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentesRévision précédente
Prochaine révision
Révision précédente
fichiers:dvi:qu_est_qu_un_fichier_dvi [2018/06/03 10:02] d.p.carlisle5_fichiers:dvi:qu_est_qu_un_fichier_dvi [2022/09/23 16:44] (Version actuelle) – Suppression d'espace inutile dbitouze
Ligne 1: Ligne 1:
---- +====== Qu'est-ce qu'un fichier DVI? ======
-title: What is a DVI file? +
-category: concepts +
-permalink: /FAQ-dvi +
-date: 2014-06-10 +
----+
  
-"DVI" is supposed to be an acronym for 
-DeVice-Independent, meaning that the file may be 
-processed for printing or viewing on most kinds of typographic output 
-device or display. 
  
-DVI file (that is, a file with the type or extension +"DVI" est censé être l'acronyme de //DeVice-Independent//
-`dvi`) is the main output file of "original" TeX (later +C'est historiquement le format de fichier de sortie de TeX. 
-TeX-like systems, such as [pdfTeX](FAQ-pdftex) may use +Il porte ce nom car il est conçu pour pouvoir être converti 
-other formats).+en vue d'être imprimé ou visualisé sur la plupart des types 
 +de périphériques de sortie (écransimprimantes...). 
 +Ce format de fichier n'rien à voir avec le type de connexion 
 +//[[wpfr>Digital_visual_interface|Digital visual interface]]// 
 +que vous utilisez pour brancher un écran sur votre ordinateur.
  
-A DVI file contains all the information that is needed for 
-printing or previewing, except for the actual bitmaps or outlines of 
-fonts, and any material to be introduced by means of  
-[`\special` commands](FAQ-specials).  Characters in the 
-DVI file (representing glyphs for printing or display) appear 
-in an encoding determined in the document. 
  
-Any TeX input file should produce the same DVI file +===== Où rencontre-t-on les fichiers DVI ? =====
-regardless of which implementation of TeX is used to produce it.+
  
-An DVI file may be processed by a [DVI driver](FAQ-driver+Lorsque vous compilez votre document avec les commandes ''tex'' ou ''latex'', vous obtenez 
-to produce further output designed specifically for particular +un fichier dont l'extension est ''.dvi''(([[1_generalites:glossaire:qu_est_ce_que_pdftex|pdfTeX]
-printeror for output in another format (for distribution)or it may +et [[1_generalites:glossaire:qu_est_ce_que_luatex|luaTeX]], apparus plus tard, peuvent produire d'autres formats, 
-be used by a previewer for display on a computer screen.+et sont généralement utilisés pour produire directement des fichiers PDF.)). 
 +Ce format DVI est le format de fichier de sortie d'origine de TeX, développé par David R. Fuchs en 1982 pour le projet, 
 +et implémenté par Donald E. Knuth quand il écrit le moteur TeX. 
 +Contrairement aux fichiers TeX ou LaTeXqui sont dans un langage balisé fait pour être écrit et lu par des humains, 
 +les fichiers DVI ne sont pas destinés à être directement compréhensibles ; ils sont constitués de données binaires décrivant 
 +la présentation visuelle d'un document d'une manière qui ne dépend pas d'un format d'imaged'un matériel d'affichage ou 
 +d'une imprimante particuliers.
  
-Note that [XeTeX](FAQ-xetex) (released some time after +Un fichier TeX doit donner la même sortie DVI quelle que soit l'implémentation 
-pdfTeX) uses an "extended DVI format" (XDV) to send +de TeX utilisée pour le compiler.
-its output to a close-coupled [DVI driver](FAQ-driver), +
-`xdvipdfmx`.+
  
-The canonical reference for the structure of a DVI file is the 
-source of Knuth's program `dvitype` (whose original purpose, 
-as its name implies, was to view the content of a DVI file). 
-A partially complete "standard" for the way they should be 
-processed may offer further enlightenment. 
  
 +Un fichier DVI est généralement utilisé comme entrée d'un second programme, appelé « [[5_fichiers:dvi:qu_est_qu_un_pilote_dvi|pilote DVI]] »),
 +qui va s'occuper de le traduire en informations graphiques.
 +Par exemple, la plupart des distributions TeX comprennent un programme permettant de prévisualiser les fichiers DVI
 +sur un écran d'ordinateur. D'autres pilotes vont convertir les fichiers DVI en PostScript ou en PDF
 +(des langages de description de pages), ou dans des formats spéciaux pour tel ou tel modèle d'imprimante.
 +
 +
 +
 +Le DVI diffère du PostScript et du PDF en ce que, s'il contient bien toute les autres informations nécessaires
 +à l'impression ou à l'affichage, il n'intégre pas les polices de caractères (les formats PostScript et PDF peuvent
 +soit intégrer leurs polices à l'intérieur des documents, soit faire référence à des polices externes).
 +Dans le fichier DVI, les caractères (représentant les glyphes pour l'impression ou l'affichage)
 +apparaissent selon un codage décrit dans le document.
 +Donc pour qu'un fichier DVI puisse être imprimé ou même correctement prévisualisé,
 +les polices auxquelles il fait référence doivent être déjà installées.
 +
 +Autre élément manquant dans le fichier DVI: tout ce qui a été introduit
 +par [[5_fichiers:postscript:commandes_special|des commandes]]''\special''
 +(qui sont généralement une façon de contourner volontairement le pilote DVI,
 +pour s'adresser directement au pilote PostScript depuis le document TeX;
 +voir ci-après).
 +
 +
 +Comme le PDF, et à la différence du PS, le DVI utilise un langage qui n'est pas
 +un langage de programmation complet ([[wpfr>Turing-complet|au sens de Turing]]).
 +Il est est limité et offre une [[wpfr>https://fr.wikipedia.org/wiki/Terminaison_d%27un_algorithme|garantie de terminaison]].
 +
 +
 +Le balisage du document TeX initial peut être en partie retrouvé par ingénierie inverse à partir du fichiers DVI,
 +mais ce processus ne retrouvera pas les constructions de haut niveau, surtout si le balisage d'origine utilisait
 +des extensions complexes (ne serait-ce que LaTeX).
 +
 +
 +<note tip>
 +[[1_generalites:glossaire:qu_est_ce_que_xetex|XeTeX]] (publié quelque temps après pdfTeX)
 +utilise un "format DVI étendu" (XDV, pour //Extended DVI format//) au lieu du format DVI de base
 +et il faut utiliser le [[5_fichiers:dvi:qu_est_qu_un_pilote_dvi|pilote DVI]] adapté: ''xdvipdfmx''.
 +</note>
 +
 +
 +===== Spécifications =====
 +
 +La référence ultime pour la structure d'un fichier DVI est le code-source
 +du programme [[ctanpkg>dvitype]] de Knuth (dont le but initial, comme son nom l'indique,
 +était de visualiser le contenu d'un fichier DVI). Mais ce n'est pas très pratique
 +pour rendre ce format accessible à d'autres développeurs, donc depuis 2004,
 +le [[https://www.tug.org/twg.html|TUG DVI Driver Standards Committee]] a documenté
 +les [[ctanpkg>dvistd|spécifications qu'un pilote DVI doit implémenter]].
 +Ces spécifications sont partiellement basées sur un [[https://www.tug.org/TUGboat/tb13-1/tb34dvistd.pdf|article de TUGboat de 1992]], beaucoup plus court.
 +
 +
 +Le format DVI a été conçu pour être compact et facilement lisible par une machine.
 +Dans ce but, un fichier DVI est une séquence de commandes qui forment une sorte de
 +« langage machine », selon les termes de Knuth.
 +Chaque commande commence par un opcode de huit bits, suivi de zéro octet ou plus de paramètres.
 +Par exemple, un opcode du groupe ''0x00'' à ''0x7F'' (127 en décimal), ''set_char_i'',
 +insère un unique caractère et déplace le curseur de la largeur de ce caractère.
 +L'opcode ''0xF7'' (décimal 247), au contraire, ''pre'' (le préambule, qui doit être le premier opcode du fichier DVI),
 +prend au moins quatorze octets de paramètres, plus un commentaire facultatif pouvant aller jusqu'à
 +255 octets((Les spécifications du format ne le précisent pas, mais DVI est [[wpfr>Boutisme|gros-boutiste]] (//big endian//).)).
 +
 +
 +De façon plus générale, un fichier DVI se compose d'un préambule, d'une ou plusieurs pages et d'un postambule.
 +Six variables d'état sont maintenues sous forme d'un tuple d'entiers signés de 32 bits:
 +(//h//, //v//, //w//, //x//, //y//, //z//):
 +  * //h// et //v// sont les décalages horizontaux et verticaux actuels par rapport au coin supérieur gauche (quand //v// augmente le curseur se déplace vers le bas de la page),
 +  * //w// et //x// contiennent les informations d'espacement horizontal,
 +  * //y// et //z// contiennent les informations d'espacement vertical.
 +
 +Ces variables peuvent être ajoutée ou retirées de la pile (//pushed// et //popped//).
 +En outre, la police actuelle, notée //f//, est stockée sous forme d'un entier,
 +mais elle pas stockées dans la pile avec les autres variables d'état lorsque les opcodes ''push'' et ''pop'' sont exécutés.
 +Les informations sur la taille de chaque caractère sont chargées depuis les fichiers TFM.
 +Les polices elles-mêmes ne sont pas incluses dans le fichier DVI, mais seulement référencées
 +par un entier défini par l'opérateur ''fnt_defi'' (cette opération est effectuée exactement deux fois
 +pour chaque police chargée : une fois avant qu'elle ne soit référencée et une fois dans le postambule).
 +//f// contient une valeur entière d'une longueur maximale de quatre octets, bien qu'en pratique,
 +TeX ne donne que des numéros de polices compris entre 0 et 255.
 +
 +De même, le format DVI prend en charge les codes de caractères d'une longueur maximale de quatre octets,
 +même si seule la plage 0-255 est couramment utilisée, le format TFM étant limité à cette plage.
 +Les codes de caractères du fichier DVI font référence au codage des caractères dans la police actuelle,
 +et non à celui du système. Cela signifie, par exemple, qu'un système EBCDIC peut traiter un fichier DVI généré
 +sur un système ASCII, à condition que les mêmes polices soient installées. 
 +
 +
 +===== L'inclusion de dessins =====
 +
 +Le format DVI ne prend pas en charge les dessins, à l'exception des traits en noir et blanc les plus simples.
 +Par contre, le format DVI propose un mécanisme général d'échappement (et d'extension), appelé //specials//,
 +qui permet que le pilote DVI passe simplement les informations à l'étape suivante du traitement.
 +Ainsi, avec la commande TeX ''\special'', on pourra stocker des informations de dessin ou de manipulation
 +des couleurs dans le fichier DVI. Le pilote DVI n'y touchera pas, il se contentera de transmettre ces information
 +à des filtres de post-traitement. Il existe de nombreuses commandes spéciales DVI, dont les plus remarquables
 +sont des commandes spéciales PostScript (utilisée intensivement par l'extension [[ctanpkg>pstricks|PStricks]]),
 +mais d'autres programmes comme [[ctanpkg>eepic|tpic]] ont leurs propres commandes.
 +
 +
 +-----
 +//Sources://
 +  * [[faquk>FAQ-dvi|What is a DVI file?]]
 +  * [[wpfr>DVI_(TeX)|Format DVI]],
 +  * [[http://mirrors.ctan.org/dviware/driv-standard/level-0/dvistd0.pdf|The DVI Driver Standard, Level 0]],
 +  * [[https://tex.stackexchange.com/questions/330106/does-dvi-file-appear-same-on-different-dvi-viewers|Does DVI file appear same on different DVI viewers?]]
 +  * [[https://tex.stackexchange.com/questions/130518/is-the-dvi-format-de-facto-dead|Is the DVI format de facto dead?]]
 +
 +{{htmlmetatags>metatag-keywords=(LaTeX,fichier DVO,format DVI,conversion de fichiers DVI,lecture de fichier DVI,comment ouvrir un fichier DVI,DeVice-Independent file,fichier device-indépendant)
 +metatag-og:title=(Qu'est-ce qu'un fichier DVI)
 +metatag-og:site_name=(FAQ LaTeX francophone)
 +}}
  
5_fichiers/dvi/qu_est_qu_un_fichier_dvi.1528020162.txt.gz · Dernière modification : 2018/06/03 10:02 de d.p.carlisle
CC Attribution-Share Alike 4.0 International
Driven by DokuWiki Recent changes RSS feed Valid CSS Valid XHTML 1.0