
Esta pregunta está relacionada con las respuestas a esta pregunta:¿Cómo TeX crea DVI sin leer el archivo TFM?
Modifiquemos solo el archivo TFM para cmr10 (y cambiemos el nombre de la fuente, por supuesto), dejando el resto de archivos relacionados con las fuentes sin cambios:
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
Probar nueva métrica:
\setbox0=\hbox{A}
\showbox0
\font\myfont=mycmr10\myfont
\setbox0=\hbox{A}
\showbox0
El resultado confirma que la nueva métrica funciona:
\hbox(6.83331+0.0)x7.50002
\hbox(6.83331+0.0)x3.99998
Ahora compila este test.tex
\font\myfont=mycmr10\myfont
Ab
\bye
En la salida de xdvi, las letras dvips y dvipdfmx se superponen. Entonces, ¿todos ellos leen el archivo TFM? Aunque la salida de dvips no indica esto, xdvi no debería hacerlo.
Respuesta1
El mycmr10.vf
archivo incluye el nuevo ancho de carácter. Entonces xdvi
lo sabe por esta fuente y los personajes se superponen. Pero xdvi
no lee el cmr10.tfm
archivo (como se mencionó en el hilo anterior).
Puedes probar esto en tu directorio de trabajo:
tftopl cmr10.tfm > cmr10.pl
edite cmr10.pl para que el carácter A tenga un ancho diferente.
pltotf cmr10.pl
Ahora tiene una "métrica incorrecta" cmr10.tfm
en su directorio de trabajo. Generar formato:
tex -ini plain
\dump
utilizar formato:
tex -fmt plain \\relax Ab\\end
Luego xdvi texput
muestra caracteres que no se superponen (porque coloca los caracteres según el ancho de los caracteres leídos desde cmr10.pfb
), pero dvips
lee dvipdfmx
la métrica modificada y corrige los caracteres: se superponen.