SuivantPrec.Bas prec.BasNiv. sup.

4.4 Création automatique des fontes manquantes avec MFjob et METAFONT 

Les polices manquantes peuvent être créées dans les agrandissements requis à partir de leurs sources METAFONT. Les options suivantes de la ligne de commande sont requises:
+batch-mode Remplace automatiquement les fontes manquantes. Vous pouvez utiliser +interactive-mode mais vous serez alors invité à donner une fonte de remplacement pour chaque fonte manquante. Si +change-mode est actif, les fontes manquantes ne seront pas créées automatiquement.
+metafont-mode Mode METAFONT pour le périphérique de sortie. Cette option est définie dans les fichiers de configuration fournis avec les pilotes.
+mfjob-file Nom d'un fichier MFjob. Sous DOS, cette option est définie par le programme dvidrv.exe. Sous OS/2, la valeur par défaut peut être utilisée.
Si ces options sont correctement définies -- et s'il manque des fontes -- le pilote créera un fichier (avec le nom spécifié par +mfjob-file) qui contiendra les commandes pour MFjob (version 1.1m ou ultérieure) requises pour la création des fontes manquantes. Puis le pilote posera la question suivante (sauf si +ask-mfjob :off est active):

Warning 1209: do you want to call MFjob to generate # missing fonts now?
Type Y, N, ou ?:
(Avertissement: voulez-vous appeler MFjob maintenant pour créer # fontes manquantes?
Tapez Y, N, ou ?:)

Si vous tapez N, le traitement (impression ou sortie sur fichier ou à l'écran) continuera -- mais avec des fontes remplacées. Si le fichier de travail MFjob n'a pas été supprimé par Dvidrv (ou votre fichier batch), vous pouvez créer les fontes manquantes en appelant MFjob après l'impression (non recommandé) ou après avoir vu le fichier DVI.

Si vous tapez Y (ou si +ask-mfjob :off est active), l'action prise par le pilote dépend du système d'exploitation et de l'option +call-mfjob : sous DOS (ou si +call-mfjob :off est activé sous OS/2), le pilote s'arrêtera avec un code retour de 8 (qui peut être testé avec IF ERRORLEVEL). Si le pilote avait été lancé par Dvidrv, MFjob sera appelé par Dvidrv, puis le pilote à nouveau. Si +call-mfjob :on(valeur par défaut) est actif sous OS/2, le pilote appellera MFjob directement, supprimera le fichier MFjob et rechargera le fichier DVI.

Si vous tapez ?, le pilote affichera une liste des fontes à créer. Cette liste inclut les noms et les agrandissements des fontes.

Le fichier de travail MFjob ressemblera à ceci:

 input [dvidrv];
 {
 pilote=dvidot;
 mode=lqlores[180 180];
 output=pk[$DVIDRVFONTS:pixel.p6l\@Rrdpi\@f{.pk,.pxl}];
 {font=cmr10; mag=0.5;}
 {font=cmbx10; mag=0.5;}
 }
En voici une brève explication:
input [dvidrv]insère les déclarations de dvidrv.mfj
pilote= nom du pilote, utilisé pour remplacer @d
mode= mode et résolution (fixés par +metafont-mode et +font-resolution)
output= chemin des fichiers en sortie (fixé par +font-files)
font= nom de la fonte
mag= agrandissement de la fonte
Gardez à l'esprit que MFjob n'utilisera que la PREMIERE expansion du modèle donné dans la déclaration output=. Dans l'exemple ci-dessus, les fichiers de fonte cmr10.pk et cmbx10.pk seront créés dans le PREMIER répertoire listé dans la variable d'environnement DVIDRVFONTS, sous le répertoire pixel.p6l\#dpi (# sera remplacé par 90). La PREMIERE extension de la liste d'alternatives sera utilisée.

Vous devrez vous assurer que l'écriture est autorisée dans le premier répertoire donné par +font-files. Vous pouvez créer un répertoire séparé pour les fontes générées automatiquement -- ce répertoire devra être le premier de la liste.

Sous DOS, il est recommandé d'utiliser le programme Dvidrv, qui prend soin de définir +mfjob-file sur un nom de fichier unique (d'un fichier non existant) pour prévenir les problèmes avec utilisateurs multiples (réseaux!) travaillant dans le même répertoire. Dvidrv appellera aussi MFjob et -- après avoir créé les fontes -- à nouveau le pilote.

Dvidrv créera un fichier temporaire MFjob dans le répertoire donné par la variable d'environnement TMP (utilisez SET TMP=F:\, par exemple).Si TMP n'est pas définie, le répertoire racine du disque courant sera utilisé, il doit être inscriptible.

Comme alternative à Dvidrv, vous pouvez utiliser les fichiers batch suivants, mais cela ne fonctionne pas en exécutant plusieurs pilotes concurremment dans le même répertoire:

 @echo off
 :loop
 dviscr @lj /fl:-1 %1 %2 %3 %4 %5 %6 %7 %8 %9
 /pj:dvihplj.mfj
 if errorlevel 9 goto end
 if not errorlevel 8 goto end
 mfjob dvihplj.mfj
 if not errorlevel 1 goto loop
 :end
Les options suivantes affectent aussi la génération automatique des fontes manquantes:
+ask-mfjob Sélectionne s'il faut ou non demander onfirmation avant de lancer MFjob.
+call-mfjob Sous OS/2, sélectionne si MFjob est exécuté directement ou s'il faut s'arrêter sur un code de retour spécial. Cette option est ignorée sous DOS.
SuivantPrec.Bas prec.HautNiv. sup.