如何制作一种新的希腊字体以与 Babel 配合使用

如何制作一种新的希腊字体以与 Babel 配合使用

我有一个 OpenType 字体 (.otf),我需要从 pdftex 中使用它。我使用 8 位输入编码。我在使用 babel 时卡在了希腊语部分。我使用的输入如下:

\selectlanguage{polutonikogreek}>~h

应该输出ἦ(U+1F26,带有PSILI 和PERISPOMENI 的希腊小写字母ETA)。

字体中没有字形 ἦ,但有 ῏(U+1FCF,希腊语 PSILI 和 PERISPOMENI)和 η(U+03B7,希腊语小写字母 ETA),因此将它们组合起来就可以了:

\selectlanguage{polutonikogreek}{\accent92\char104}

看起来不错。

现在的问题是:如何>~h实现{\accent92\char104}

注意:我所知道的希腊字体需要连字>~h才能获得所需的输出。

答案1

我使用 otftotfm 从 OpenType 字体生成 tfm 文件。我创建了一个自定义编码文件,其中包含如下行:

% LIGKERN uni0313 uni1FC0 =: uni1FCF
% LIGKERN uni0313 tonos =: uni1FCE
% LIGKERN uni0313 uni1FEF =: uni1FCD
% LIGKERN uni0313 alpha =: uni1F00
% LIGKERN uni0313 epsilon =: uni1F10
% LIGKERN uni0313 eta =: uni1F20
% LIGKERN uni0313 rho =: uni1FE4
% LIGKERN uni0313 omicron =: uni1F40
% LIGKERN uni0313 omega =: uni1F60
% LIGKERN uni0313 iota =: uni1F30
% LIGKERN uni0313 upsilon =: uni1F50

% POSITION uni1FCF 180 00 -300
% POSITION uni1FCE 200 00 -300
% POSITION uni1FCD 200 00 -300

otftotfm这些是使用连字符和命令添加虚拟字体的说明MOVERIGHT

这还不完美,但就可重复性而言是最好的方法(我正在编写字体转换过程的脚本)。重音位置仍然存在一些问题。更多内容将在此处发布。

相关内容