
這個問題與這個問題的答案有關:TeX 如何在不讀取 TFM 檔案的情況下建立 DVI?
讓我們只修改 cmr10 的 TFM 檔案(當然也要更改字體名稱),其餘所有與字體相關的檔案都保持不變:
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
測試新指標:
\setbox0=\hbox{A}
\showbox0
\font\myfont=mycmr10\myfont
\setbox0=\hbox{A}
\showbox0
輸出確認新指標有效:
\hbox(6.83331+0.0)x7.50002
\hbox(6.83331+0.0)x3.99998
現在編譯這個 test.tex
\font\myfont=mycmr10\myfont
Ab
\bye
在 xdvi 的輸出中,dvips 和 dvipdfmx 字母重疊。那麼,他們都讀取了 TFM 檔嗎?儘管 dvips 的輸出並未表明這一點,並且 xdvi 不應該這樣做。
答案1
該mycmr10.vf
文件包含新的字元寬度。所以xdvi
從這個來源知道這一點,而且角色是重疊的。但xdvi
不讀取cmr10.tfm
文件(如上一個線程所述)。
您可以在工作目錄中嘗試此操作:
tftopl cmr10.tfm > cmr10.pl
編輯 cmr10.pl 以使字元 A 具有不同的寬度。
pltotf cmr10.pl
cmr10.tfm
現在你的工作目錄中有「壞指標」 。生成格式:
tex -ini plain
\dump
使用格式:
tex -fmt plain \\relax Ab\\end
然後xdvi texput
顯示不重疊的字元(因為它按照從 讀取的字元寬度放置字元cmr10.pfb
),但讀取變更的度量dvips
並dvipdfmx
修正字元:它們重疊。