使用 pdfLaTeX 轻松分配未定义的连字符?

使用 pdfLaTeX 轻松分配未定义的连字符?

Ulrike Fischer 表示Linux Libertine 的特殊连字符如何访问。尽管她也向我指出了其中一章LaTeX 图形伴侣,我不太确定如何自动获取这些连字符,可能是因为我对字体并不熟悉,而且我可能永远不会熟悉。我最终要寻找的是

\newligature{tt}{\libertineGlyph{uniE03C}}

将 (tt-ligature) 处的字形分配0xeo3c给输入字母组合tt

我假设没有软件包可以做到这一点,但如果可能的话,这可能是对源自 tex.sx 的软件包列表的一个很好的补充!也许了解 (La)TeX 核心的人可以尝试模仿标准连字符的方式,例如ff生产了?

Libertine 连字符的代码点列于Libertine 的 XeTeX 德语文档,但我希望此解决方案适用于任何字体。显然,使用 XeLaTeX 的连字很简单,但我喜欢独立于系统上安装的字体,并且使用此处所需的解决方案,您可以准确指定所需的连字。

答案1

这在 LaTeX 级别是不可能的;连字是在.tfm字体文件中定义的,并且无法更改它们(pdftex只能清除特定字体的连字列表)。

t为了检查是否有另一个命令跟随而进行活动的策略t只适用于有限数量的文本,因为它会破坏所有包含 的命令名称t

答案2

我承诺的 luatex 概念验证比我想象的要容易,因为:

\documentclass{article}
\usepackage{fontspec}
\setmainfont{Linux Libertine O}
\begin{document}
Whatt?
\end{document}

已经使用 tt-ligature。

但是假设您想要花哨的 s_t 连字,而又不启用Ligatures=Historicfontspec 中的功能,则可以使用.fea-file:

\documentclass{article}
\usepackage{fontspec}
\setmainfont[FeatureFile=myligatures.fea]{Linux Libertine O}
\begin{document}
strict
\end{document}

其中myligatures.fea

languagesystem DFLT dflt ;
languagesystem latn dflt ;
feature liga {
   sub s t  by s_t ;
} liga ;

这是一个例子(第一行包含常规连字符 + 文件myligatures.fea,第二行包含Ligatures=Historicfontspec 功能:

功能文件 fontspec

相关内容