如何制作扩展字体并安装它们?

如何制作扩展字体并安装它们?

我正在运行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-ot1ntx-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 ,以免混淆。)pkautoexpand\pdffontexpandpdftex

对于 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。)

  • 您可以使用以下方式创建扩展的tfms afm2tfm

    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
    
  • 对所有步骤和所有字体重复此操作。

相关内容