我已经购买了传统的 sans 和 serif 字体包,并通过 pltotf、vptovf 和类似的实用程序将其插入到我的 TeX/LaTeX 发行版中。
然后我创建了一个包,允许我在数学模式下使用这些字体,我已经展示过但是,我需要增加一些字形框的拉伸,例如“f”斜体字形框,如下图所示
为了获得第二个输出,实际上我需要手动添加\,
指令。那么,如何创建旧字体的 OML 字体编码,以调整数学字形之间的跳跃?
此外,这是获得我所说的结果的正确方法吗?我必须说,我不会创建这样的命令\def\f{f\,}
,因为在我看来,这是一个微不足道的解决方案
答案1
这是我第一次使用下面将要描述的工具,但让我解释一下我刚刚尝试过的操作(我确信至少有一个关键步骤可能是错误的,必须予以纠正。)
[以下进行了编辑,以对步骤进行必要的添加]
[当然,在.tex
下面的源代码中,这只是为了测试,我粗暴地重新分配了letters
符号字体,根本不关心希腊字母;当然,这里缺少一些额外的步骤来将希腊字母与拉丁字母分开,并且仅有的重新分配拉丁字母以使用 T1 编码中的 Times Italic 字体]
- 我创建了一个临时目录
- 然后我就照做了
tftopl ptmri8r.tfm ptmmi8r.pl
。这样,我就从中获得了 Times 字体的可读字体规格psnfss
。 - 在我的文本编辑器中我打开了
ptmmi8r.pl
然后替换(SPACE R 0.25)
为(SPACE R 0.0)
。
在步骤2中创建的文件的顶部附近ptmmi8r.pl
有:
(FONTDIMEN
(SLANT R 0.277)
(SPACE R 0.25) <-- this is the 0.25 which I replace with 0.0
(STRETCH R 0.15)
(SHRINK R 0.0599985)
(XHEIGHT R 0.440991)
(QUAD R 1.0)
(EXTRASPACE R 0.0599985)
)
继续(抱歉,我不知道如何用 4、5、6……来恢复枚举):
我保存了文件然后执行了。现在我的工作目录中
pltotf ptmmi8r.pl ptmmi8r.tfm
有这个文件。ptmmi8r.tfm
我创建了一个
ptmm.map
只有一行的文件:ptmmi8r NimbusRomNo9L-ReguItal "TeXBase1Encoding ReEncodeFont" <8r.enc <utmri8a.pfb
这需要进行一些研究,因为我必须pdftex.map
从我的安装中挖出该文件,然后将该行复制ptmri8r
到上面的文件中。- 然后我创建了以下测试文件,用 进行编译
pdftex
。并且它可以工作。
但是:tfm 文件中似乎有一个校验和,我不知道修改参数是否font dimension 2
需要更新校验和。
但是第二点:Times 字体的标准用法似乎psnfss
是通过虚拟字体,这肯定有充分的理由。我尝试使用 和工具ptmri8t
执行与上述相同的步骤,但不知何故始终无法理解到底该怎么做。vftovp
vptovf
更新:好的,现在我可能明白了正确获取文件进行T1
编码所需的一些额外步骤。除上述内容外,我还做了:
vftovp ptmri8t.vf ptmri8t.tfm ptmmi8t.vpl
- 我对生成的 ptmmi8t.vpl 进行了两处编辑:首先是 fontdimen 2,然后是条目的下方
FONTNAME
:我将其更改为(FONTNAME ptmmi8r)
- 经过这两次修改后,我做到了
vptovf ptmmi8t.vpl ptmmi8t.vf ptmmi8t.tfm
- 然后
\DeclareFontShape {T1}{ptmm}{m}{it}
使用ptmmi8t
而不是ptmmi8r
。
更新结束
再次重申,我对此领域的唯一了解可以追溯到三十分钟前,从阅读第 9 页开始字体安装指南,然后输入man tftopl
和man pltotf
。我希望字体专家能来纠正我的步骤:唯一的目标是获取现有字体的副本,并将其字间空间设置为零,以便 TeX 可以在数学模式下自动插入斜体修正。
\documentclass{article}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
% for pdf output only
\pdfmapfile{+ptmm.map}
% ptmmi8r NimbusRomNo9L-ReguItal "TeXBase1Encoding ReEncodeFont" <8r.enc <utmri8a.pfb
\DeclareFontFamily{T1}{ptmm}{}
% earlier versions had ptmmi8r, but certainly this was wrong
% now that files ptmmi8t.vf and ptmmi8t.tfm have also been prepared
% (see update above)
% additionally to ptmmi8r.tfm, the following presumably should be done:
% (does not matter for the Latin letters in math, but I guess does matter
% for accented letters or other symbols in text, with `\usefont{t1}{ptmm}{m}{it}`
\DeclareFontShape{T1}{ptmm}{m}{it}{
<-> ptmmi8t
}{}
\SetSymbolFont{letters}{normal}{T1}{ptmm}{m}{it}
\DeclareMathVersion {standardinterword}
\SetSymbolFont {letters}{standardinterword}{T1}{ptm}{m}{it}
\usepackage{times}
\begin{document}\thispagestyle{empty}
$f(x)$
% with the edit done for correctly generating also files for T1,
% we can compare the original with the font without interword space:
{\usefont{T1}{ptmm}{m}{it} àé ù}
{\usefont{T1}{ptm}{m}{it} àé ù}
$abcdefghijklmnopqrstuvwxyz$
\textit{abcdefghijklmnopqrstuvwxyz}
\mathversion{standardinterword}
$abcdefghijklmnopqrstuvwxyz$
\mathversion{normal}
$abcdefghijklmnopqrstuvwxyz$
\end{document}