我正在运行pdfTeX
输出dvi
。如果启用了字体扩展,那么我需要额外的字体,例如cmr10+20
。当我尝试查看 dvi 时,xdvi 会尝试制作各种字体并失败;文件missfont.log
会附加各种命令,例如mktexpk --mfmode / --bdpi 600 --mag 1+0/600 --dpi 600 cmr10+20
。如果我尝试该命令,我会收到错误,似乎mktexpk: perhaps cmr10+20 is missing from the map file.
首先我必须修改映射文件。我不知道这是否是我所要做的全部,但我不知道如何对尚不存在的字体执行此操作。我意识到如果我使用 pdf 输出,则不需要这样做。我正在运行 Ubuntu 14.04。
编辑:应要求,这里提供了一个示例文件。但是,任何需要字体扩展的文件都会出现此问题。
\pdfoutput=0
\pdffontexpand\tenrm 20 20 10 autoexpand
\pdfadjustspacing=2
\hsize=3in
There is a striking, but easily established, correspondence between
electrical networks and
random walks on graphs (or on networks).
\bye
编辑2:
我实际使用最多且因此想要启用扩展的字体是ntx-Regular-tlf-ot1
和ntx-Italic-tlf-ot1
。我还想启用扩展ntxmi
。
答案1
该autoexpand
选项仅适用于 PDF 输出,而对于 DVI 输出,您必须提前创建扩展字体实例。假设您想使用原始的 Computer Modern Roman MetaFont,您必须:
- 创建字体源的副本(假设
cmr10.mf
), - 在定义单位宽度的地方后面添加一行:
u#:=20/36pt#; % unit width
u#:=u#+20/1000u#; % <-- scale by 20
将修改后的文件重命名为
cmr10+20.mf
。根据需要对多个实例重复上述步骤(例如
-20
,,,,,,,,)。-15
-10
-5
+5
+10
+15
对您想要扩展的所有字体重复上述步骤(例如,,
cmr12.mf
...cmti10.mf
)。
运行时将创建pdftex
相应的tfm
和文件。(顺便说一句:您应该删除关键字 for ,以免混淆。)pk
autoexpand
\pdffontexpand
pdftex
对于 Type1 字体和 Multiple Master 字体,流程有所不同。您可以在 Hàn Thé Thành 的论文,第 370 页。
编辑由于您实际上使用的不是 CMR,而是 Type1 字体,因此您必须tfm
提前创建扩展文件:
grep ntx-Regular-tlf-ot1 `kpsewhich newtx.map`
告诉我们该字体是重新编码的 Type1 字体:ntx-Regular-tlf-ot1 TeXGyreTermes-Regular " encntx-ot1-tlf ReEncodeFont " <[ntx-ot1-tlf.enc <qtmr.pfb
基本
afm
文件为ntxtmr.afm
(在 中fonts/afm/public/newtx/
)。(斜体的基本文件为ntxtmri.afm
,粗体的基本文件ntxtmb.afm
为 ,粗体斜体的基本文件为ntxtmbi.afm
。)您可以使用以下方式创建扩展的
tfm
safm2tfm
:afm2tfm ntxtmr.afm -e 1.020 -T ntx-ot1-tlf.enc ntx-Regular-tlf-ot1+20.tfm afm2tfm ntxtmr.afm -e 0.980 -T ntx-ot1-tlf.enc ntx-Regular-tlf-ot1-20.tfm
等等,完成所有必需的步骤。
最后,您必须
map
在原有条目的基础上添加新条目newtx.map
,添加ExtendFont
部分(让我们将它们写入新文件newtx-ext.map
):ntx-Regular-tlf-ot1+20 TeXGyreTermes-Regular " 1.020 ExtendFont encntx-ot1-tlf ReEncodeFont " <[ntx-ot1-tlf.enc <qtmr.pfb ntx-Regular-tlf-ot1-20 TeXGyreTermes-Regular " 0.980 ExtendFont encntx-ot1-tlf ReEncodeFont " <[ntx-ot1-tlf.enc <qtmr.pfb
然后您可以使用以下命令启用该地图文件:
updmap-sys --enable Map=newtx-ext.map
对所有步骤和所有字体重复此操作。