不使用 Lua-/Xe-Latex 访问花式 /es/ 连字符

不使用 Lua-/Xe-Latex 访问花式 /es/ 连字符

在此处输入图片描述

这是在 LuaLaTeX 中使用 和 表示的fontspec\setmainfont{EB Garamond}第一个表示为\emph{es},第二个表示用 分隔字母\emph{e\mbox{}s}

我发现以前的连字符在文本中非常有吸引力。现在我经常使用\usepackage{ebgaramond}相同的字体,但它不再产生这种连字符。有没有办法手动访问这个连字符?

答案1

可以启用花式 es 连字符以在常规 LaTeX/pdfLaTeX 中使用,但您需要构建适当的支持文件。基本上,您需要重新安装字体才能与 LaTeX 一起使用(例如,使用不同的字体名称来区分它与官方软件包提供的现有支持)。

我不知道字体,但我从评论中得知,只有当此字母组合出现在单词末尾时,花式连字才应替换“es”。这可以自动启用。

其原理与字尾花饰相同。venturisadf 提供了一个如何执行此操作的示例。字尾花饰本身在定义 TeX 字体的文件中设置为连字。对于 es,您需要从“e”后跟“s”创建一个普通的“es”连字。然后,您将需要另一个连字,用于普通 es 连字后跟字尾的组合。

最简单的方法是使用 fontinst。您可以从 venturisadf 和 fontinst 包本身复制和改编代码。例如,如果字体中缺少“fi”连字,则有代码可以创建该连字。您可以使用它来创建普通的“es”连字。请注意,正确执行此操作需要保留“e”和“s”以及“e”和“s”之间的字距调整信息。fontinst 中为“fi”、“ff”、“ffi”伪造的连字的构造向您展示了如何正确执行此操作。

要决定的主要问题是要使用的编码。您需要 3 个空闲插槽才能使其正常工作。要制作单词结尾的花饰,您需要保留一个未定义的插槽。然后,您需要一个插槽用于您的单词结尾花饰,即花式连字符 es。第三个插槽用于您从上面提到的“e”和“s”创建的普通 es 连字符。

LY1 编码有空闲的插槽。否则,您可以重新分配 T1 编码中的插槽。我通常的做法(例如在 venturisadf 中)是包含常规 T1 编码,然后包含重新分配插槽的花饰变体。这确保支持花哨的东西和 T1 支持的语言(字体允许)。有关设置单词结尾花饰的示例,请参阅 t1-venturis.etx,这是我用于花饰变体的编码。请注意

\setrightboundary{bound}

在 t1-venturis.etx 中对应于

/.notdef

在 t1-venturis.enc 中。这是使单词结尾连字起作用的关键位置。然后在 t1-venturis.etx 中将“a”的单词结尾花饰设置为连字:

\setslot{\lc{A}{a}}
        \ligature{LIG}{bound}{\lc{A.end}{a.end}}
   \comment{The letter `{a}'.}
\endsetslot

并为单词结尾的花饰本身分配一个槽位:

\setslot{\lc{A.end}{a.end}}
\endsetslot

当通过 TeX 运行时,fontinst 会生成编码并设置适当的 .tfm 和 .vf 文件来支持您在编码文件中定义的连字。

如果这只是供您个人使用,并且您知道您永远不会使用某些字符,那么您可以省去标准 T1 编码,只创建一个使用这些字符的插槽来容纳您需要的字体版本。

您还可以查看字体是否缺少某些字符。有时您可以释放插槽而不会丢失任何东西,因为字体不提供某些字符,而 fontinst 无法人为地构造这些字符。例如,我在 t1-venturisold.etx 的顶部添加了一条注释,其中指出我出于这个原因重新分配了 3 个插槽。

如果您以前从未使用过 fontinst,我建议您尽可能多地阅读文档。这些文档以教程的形式提供,可帮助您熟悉基本概念。完成这些后,请查看 venturisadf 或其他类似软件包,并根据您的目的调整其中的代码。

相关内容