Convertisseurs DVI

La commande latex et les commandes japonaises platex / uplatex ne produisent pas un PDF, mais un fichier intermédiaire DVI. Le transformer en document lisible est le rôle d’un convertisseur DVI : dvipdfmx pour le PDF, dvips pour PostScript, et, pour le japonais, ptex2pdf, qui enchaîne composition et conversion en une seule commande. Cette page présente les trois outils et les options réellement utiles.

Ce qu’est DVI, et pourquoi le convertir

DVI (device-independent) est le format intermédiaire émis par TeX : il enregistre *quel glyphe ou filet se trouve à quelle position*. Comme son nom l’indique, il est indépendant du périphérique de sortie et n’embarque pas les polices elles-mêmes. Il est donc compact, mais peu pratique à afficher, imprimer ou partager directement ; on le convertit vers la cible voulue : PDF pour l’écran et la diffusion, PostScript pour les flux d’impression et certains packages. Les commandes qui *produisent* du DVI sont traitées dans « Compile commands ».

dvipdfmx — de DVI vers PDF

dvipdfmx est le convertisseur DVI vers PDF standard de TeX Live. Son ancêtre dvipdfm a été écrit par Mark A. Wicks ; dvipdfmx en est la version étendue, par Jin-Hwan Cho, Shunsaku Hirata et d’autres, avec prise en charge CJK, incorporation des polices, flux d’objets, etc. xdvipdfmx, utilisé en interne par XeTeX, appartient à la même famille, mais n’est pas destiné à être appelé directement.

terminal
dvipdfmx document.dvi            # → document.pdf
dvipdfmx -p a4 -o out.pdf document.dvi
OptionRôle
-o FILENom du fichier de sortie (- pour stdout) ; par défaut, dérivé du nom d’entrée
-p SIZEFormat papier par nom : a4, letter, a3, legal, ...
-V NVersion mineure du PDF (défaut 5 = PDF 1.5)
-lPaysage (inverse largeur et hauteur du papier)
-s RANGELimite les pages traitées, par ex. -s 1-10

dvips — de DVI vers PostScript

dvips (par Tomas Rokicki) est l’outil historique qui convertit le DVI en PostScript (.ps). Il sert encore pour les remises à l’imprimeur, la génération d’EPS et les packages de dessin fondés sur PostScript, comme PSTricks. Si vous voulez un PDF, le chemin habituel consiste à passer le .ps obtenu dans ps2pdf (fourni avec Ghostscript).

terminal
dvips -t a4 -o document.ps document.dvi   # DVI → PostScript
ps2pdf document.ps                        # PostScript → PDF
OptionRôle
-o FILENom du fichier PostScript de sortie
-t PAPERType de papier : a4, letter, legal ou landscape
-P NAMECharge la configuration d’imprimante config.NAME (résolution, polices)

ptex2pdf — le japonais en PDF en une étape

Pour le japonais, on suit normalement deux étapes : composer avec uplatex, puis produire le PDF avec dvipdfmx. ptex2pdf regroupe cela en une commande : il lance un moteur de la famille pTeX puis appelle automatiquement dvipdfmx. C’est un script texlua de texjporg, la communauté japonaise de développement TeX, et de Norbert Preining, créé à l’origine pour que TeXworks puisse choisir facilement un moteur japonais.

Le moteur se choisit en combinant des options. Sans rien, c’est ptex ; -l choisit un format LaTeX, -u la famille upTeX, -e la famille e-pTeX. Par exemple, upLaTeX, le standard pour les articles japonais, correspond à -l -u.

OptionsMoteur utilisé
(なし / none)ptex
-lplatex (pLaTeX)
-uuptex
-l -uuplatex (upLaTeX)
terminal
# upLaTeX で組版し、UTF-8 入力と SyncTeX を指定して PDF まで
ptex2pdf -l -u -ot '-kanji=utf8 -synctex=1' document.tex

Pour transmettre des options fines, utilisez -ot '...' pour le moteur TeX et -od '...' pour dvipdfmx. Ajoutez -s pour s’arrêter au DVI, -i pour conserver les fichiers intermédiaires, et -output-directory pour rediriger la sortie.

Lequel choisir ?

  • PDF, texte anglais/européenlatexdvipdfmx.
  • PDF, japonais — une seule commande avec ptex2pdf -l -u ….
  • Remise imprimeur, EPS, PSTricksdvipsps2pdf.
  • Éviter complètement DVI — produire le PDF directement avec pdflatex / lualatex.

En pratique, on lance rarement ces commandes à la main dans l’ordre. Un outil de build comme latexmk gère pour vous le nombre de passes de compilation et la conversion DVI ; latexmk prend aussi en charge la configuration (u)platex + dvipdfmx.

Vérification de conversion DVI avant soumission

  • Pour une soumission PDF : après dvipdfmx, ouvrez le PDF dans le même lecteur ou la même cible d’envoi que celle que vous utiliserez, et vérifiez les polices incorporées, le format papier, les signets et les liens.
  • Pour un flux d’impression : avant et après ps2pdf sur le PostScript produit par dvips, vérifiez que les EPS et les specials PostScript ont survécu.
  • Pour les documents japonais : ptex2pdf -l -u est pratique, mais le vrai contrat est que la chaîne en deux étapes uplatex plus dvipdfmx réussisse.
  • Noms et emplacements : gardez les mêmes noms de base pour DVI, PDF et .synctex.gz ; si les sorties vont ailleurs, faites préciser ce chemin de façon cohérente par l’outil de build.