



Quand Metafont rencontre une erreur dans un fichier d'entrée, vous pouvez appeler un
éditeur en frappant E (cf. The METAFONTbook, page 43).
6.4.1 Configurer l'éditeur
Si vous terminez Metafont en tapant E, Metafont écrira dans un fichier le numéro de la
ligne, le nom du fichier d'entrée fautif, et le nom du fichier LOG. Le fichier écrit par
Metafont sera utilisé pour appeler l'éditeur.
La variable d'environnement EMTEXED contrôle la sortie vers ce fichier. Dans EMTEXED,
la valeur `%1' sera remplacée par le numéro de la ligne, `%2' par le nom du chemin du
fichier d'entrée, et `%3' par le nom du chemin du fichier LOG. Vous pouvez insérer un
signe pour cent avec `%%'. Si la variable d'environnement EMTEXED n'est pas
définie,
sera utilisé comme modèle, c-à-d., le programme ou le fichier batch emtexed sera appelé
avec trois arguments: le numéro de la ligne, le fichier en entrée, et le fichier
LOG.
Si par exemple vous utilisez le Norton Editor, vous devrez entrer
Pour QEdit v2.1 vous pouvez utiliser
Notez que vous devez doubler tous les signes pour cent si vous définissez EMTEXED dans
un fichier batch (tel que autoexec.bat mais pas config.sys):
Si vous ne voulez pas définir EMTEXED, vous pouvez créer un fichier batch emtexed.bat
ou emtexed.cmd qui appellera l'éditeur:
Si, par exemple, Metafont trouve une erreur à la ligne 172 de test.mf (dans le
répertoire d:\mymf), Metafont écrira
|
emtexed
172
d:\mymf\test.mf
d:\mymf\test.log |
dans le fichier (ici EMTEXED n'est pas définie).
Pour GNU Emacs sous OS/2, utilisez ceci:
|
set
emtexed=emacsclient
+%1
%2 |
et exécutez la commande de lancement du serveur (server-start) lorsque vous lancez
GNU Emacs. Avec ce paramétrage, le fichier
|
emacsclient
+172
d :\mymf\test.mf
d :\mymf\test.log |
sera écrit, pour l'exemple ci-dessus.
6.4.2 Configurer les fichiers batch
L'option /a* est utilisée pour donner le nom du fichier dans lequel Metafont écrit
le numéro de ligne, le nom du fichier fautif en entrée, et le nom du fichier
LOG.
Pour appeler automatiquement un éditeur, vous devez appeler Metafont depuis un
fichier batch, par exemple mfed.bat (ou mfed.cmd):
|
@echo
off
rem
mfed.bat
if
exist
mfed2.bat
del
mfed2.bat
mf
/a=mfed2.bat
%1
%2
%3
%4
%5
%6
%7
%8
%9
if
exist
mfed2.bat
mfed2 |
Attention: en exécutant Metafont sur un réseau, un fichier batch unique devra être utilisé
par chaque utilisateur pour éviter les conflits. Vous pouvez utiliser des variables
d'environnement pour ce faire. Si vous ne définissez pas la variable d'environnement
EMTEXED, vous devrez créer un autre fichier batch (emtexed.bat ou emtexed.cmd) qui
appellera l'éditeur.
6.4.3 Exemple
Voici un exemple pour le Programmer's WorkBench (ou l'Éditeur Microsoft) sous
OS/2. Il est recommandé de laisser l'éditeur chargé pendant l'exécution de Metafont.
Vous devriez appeler Metafont par le fichier batch suivant (cmmfed.cmd):
|
@echo off
rem cmmfed.cmd
set emtexed=%%2 %%1
mfp -a=c:\init\emtexed.m ^&cm %1 %2 %3 %4 %5 %6 %7 %8 %9
|
|
Pour le Programmer's WorkBench, définissez les macros suivantes:
|
texed:=Arg "c:\\init\\emtexed.m" Setfile Begfile Arg
Setfile -> _texed2
_texed2:=Setfile Arg Arg " [0-9]" Psearch -> _texed3
_texed3:=Right Arg Endline Lasttext Mark Arg Refresh Lasttext Mark
|
|
Pour l'Éditeur Microsoft, utilisez:
|
texed:=Arg "c:\\init\\emtexed.m" Setfile Arg Mpage Arg
Setfile -> _texed2
_texed2:=Setfile Arg Arg " [0-9]" Psearch -> _texed3
_texed3:=Right Arg Endline " " Emacscdel Mark Arg Refresh
Lasttext Mark
|
|
et assignez cette macro texed à une touche:
Vous pouvez maintenant aller à la ligne désirée en tapant Ctrl+E (le répertoire
c:\init et le fichier c:\init\emtexed.m doivent exister avant la frappe de
Ctrl+E).



