Was sind die genauen Regeln zum Lesen von TFM-Dateien?

Was sind die genauen Regeln zum Lesen von TFM-Dateien?

Diese Frage hängt mit den Antworten auf diese Frage zusammen:Wie erstellt TeX DVI, ohne die TFM-Datei zu lesen?

Lassen Sie uns nur die TFM-Datei für cmr10 ändern (und natürlich den Schriftnamen ändern) und alle anderen Schriftartdateien unverändert lassen:

tftopl cmr10.tfm > mycmr10.vpl
patch <<EOF
--- mycmr10.vpl
+++ mycmr10.vpl
@@ -1,3 +1,4 @@
+(MAPFONT D 0 (FONTNAME cmr10))
 (FAMILY CMR)
 (FACE O 352)
 (CODINGSCHEME TEX TEXT)
@@ -466,7 +467,7 @@
    (CHARHT R 0.694445)
    )
 (CHARACTER C A
-   (CHARWD R 0.750002)
+   (CHARWD R 0.4)
    (CHARHT R 0.683332)
    (COMMENT
       (KRN C t R -0.027779)
EOF
vptovf mycmr10.vpl

Neue Metrik testen:

\setbox0=\hbox{A}
\showbox0
\font\myfont=mycmr10\myfont
\setbox0=\hbox{A}
\showbox0

Die Ausgabe bestätigt, dass die neue Metrik funktioniert:

\hbox(6.83331+0.0)x7.50002
\hbox(6.83331+0.0)x3.99998

Kompilieren Sie nun diese Datei test.tex

\font\myfont=mycmr10\myfont
Ab
\bye

In der Ausgabe von xdvi überlappen sich die Buchstaben dvips und dvipdfmx. Lesen sie also trotzdem alle die TFM-Datei? Obwohl die Ausgabe von dvips dies nicht anzeigt und xdvi dies nicht tun sollte.

Antwort1

Die mycmr10.vfDatei enthält Ihre neue Zeichenbreite. xdviKennt dies also aus dieser Quelle und die Zeichen überlappen sich. xdviLiest die Datei jedoch nicht cmr10.tfm(wie im vorherigen Thread erwähnt).

Sie können Folgendes in Ihrem Arbeitsverzeichnis versuchen:

tftopl cmr10.tfm > cmr10.pl

Bearbeiten Sie cmr10.pl, damit der Buchstabe A eine andere Breite hat.

pltotf cmr10.pl

Jetzt haben Sie „schlechte Metrik“ cmr10.tfmin Ihrem Arbeitsverzeichnis. Format generieren:

tex -ini plain
\dump

Format verwenden:

tex -fmt plain \\relax Ab\\end

Dann xdvi texputwerden nicht überlappende Zeichen angezeigt (weil es die Zeichen nach der ausgelesenen Zeichenbreite platziert cmr10.pfb), aber dvipses dvipdfmxwird Ihre geänderte Metrik gelesen und die Korrektur der Zeichen vorgenommen: Sie überlappen sich.

verwandte Informationen