![用 fontforge 修改 cmsy 的副本并使用它](https://linux22.com/image/280081/%E7%94%A8%20fontforge%20%E4%BF%AE%E6%94%B9%20cmsy%20%E7%9A%84%E5%89%AF%E6%9C%AC%E5%B9%B6%E4%BD%BF%E7%94%A8%E5%AE%83.png)
我尝试通过重命名来修改 cmsy10 的副本。我的目标是插入来自另一个字体系列(例如 euler)的外部字形。使用 fontforge 工具,我创建了字体并将其插入到我的本地树中。当我尝试使用它(在 Plain TeX 中)时,日志显示没有足够的符号。
我已经正确插入了新字体并创建了映射文件。此外,TeX 似乎可以识别它,因为它正确创建了字体表。但是,它不能用作符号字体系列。
目前,我认为有两个可能的方面:我在使用 fontforge 进行定制时做错了什么,或者 TeX 不允许如此轻松地为符号插入新字体。
这样对吗?
答案1
无需修改字体即可使特定字符在数学模式下使用不同的字形。以下显示了指定应使用粗体欧拉花型字体$abc+123$
后的排版结果,也按要求重新定义为使用 Palatino 中的字符(例如,您可以使用任何您想要的插槽)。a
\leq
<
$abc + 123 \leq a$
\font\foo=eufb10
\newfam\foofam
\textfont\foofam=\foo
\count0=\foofam
\multiply\count0 by "100
\advance\count0 by `a
\mathcode`a=\count0
\count0=0
\font\foob=pplr8r at 10pt % map file resolves this to <8r.enc <uplr8a.pfb
\newfam\foobfam
\textfont\foobfam=\foob
\count0=\foobfam
\multiply\count0 by "100 % the new fam
\advance\count0 by "3000 % mathrel
\advance\count0 by "3C % The character we want (not sure which you do want)
\mathchardef\leq\count0
\count0=0
$abc + 123 \leq a $
\bye