启用 c_t 和 longs_t 而不启用 s_t 连字符

启用 c_t 和 longs_t 而不启用 s_t 连字符

我正在使用长 s 的Hoefler Text字体:xelatex

\usepackage{fontspec}
\setmainfont[Contextuals=Inner]{Hoefler Text}

在此处输入图片描述

但我想使用ct连字(它来自Rare集合):

\usepackage{fontspec}
\setmainfont[Contextuals=Inner, Ligatures={Rare}]{Hoefler Text}

在此处输入图片描述

哦不!fontspec在从连字符集中加载 ct 连字符时,还将 Hoefler 的所有最长连字符都替换为 st 连字符Rare

有没有办法启用 ( Rare) ct 连字符Hoefler Text而不启用 ( Rare) st 连字符?我尝试使用该selnolig包选择性地禁用 st 连字符 ( \nolig{st}{s|t}),但这也会阻止使用最长的连字符。我试图制作文本,说明 19 世纪早期的人们如何做到:

注意:19 世纪早期的人们不会花 199 美元购买 Minion Pro(这相当于我们支付 410 万美元),所以我也不想买 =)

答案1

@tohecz:Thomas 的问题与我提到的问题密切相关,但似乎他遇到的问题在这些问题中没有得到解决。

我尝试使用 selnolig 包来选择性地禁用 s_t 连字符(\nolig{st}{s|t}),但这也会阻止使用最长的连字符。

如果我理解正确的话,你希望selnolig区分和sſ你没有提供 MWE,但我假设你的情况selnolig无法区分这两者,因为不要——我猜你的文本只有ss,所以没有什么selnolig可以为你做的。

有根据的猜测:正确输入您的ss 将会产生不错的结果。

在此处输入图片描述

  • selnolig已禁用。Minion Pro,所有可用的ſ_连字以及和c_t(不合适?)s_t都存在。

在此处输入图片描述

  • selnolig已启用。如上,只有s_t消失了。

代码:

\documentclass{scrartcl}
\usepackage{fontspec,selnolig}
\setmainfont[Ligatures=Rare]{Minion Pro}
\nolig{st}{s|t}
\begin{document}
The ſide attraction for moſt ſpectators was the mustard
\end{document}

那怎么样ſ_t?——我没有 Hoefler Text,Minion Pro 也没有ſ_t(从技术上讲,它有,只是与未连接的 无法区分ſ t)。但是,例如,EB Garamond 有,并且它不受\nolig{st}{s|t}(qed)的影响。

附言:如果你打算重现 19 世纪早期的风格,Hoefler Text(以及 Minion)将是一个糟糕的选择。它至少偏离了两个世纪,从两页 Encyclopædia Britannia 中可以明显看出(第二页比第一页更明显)。也许可以看看 Hoefler's Didot旧标准或者——便宜又最合适——磨坊主来自 Font Bureau。

更新

看着你自己回答而你坚持认为仅仅一个Contextuals=Inner就足以产生正确的结果——什么需求需要强调的是,正确的ſ用法是没那么简单如“用 替换所有非最终词sſ。我建议您看一下ſ在您想要重现其风格的那个时期/文化中, 是如何处理的。它在什么情况下使用?什么时候用 代替s?想想复合词的词界。有哪些ſ_连字可用?想想,其中包括ſ_s。在什么情况下哪些ſ_连字合适/不合适?再次想想复合词的词界。首先,什么被认为是复合词?等等。

在此处输入图片描述

在此处输入图片描述

进一步阅读:http://babelstone.blogspot.ca/2006/06/rules-for-long-s.html

答案2

我最终实现预期结果的最快方法是保留XeLaTeX该功能,并用替换连字符的命令Contextuals=Inner替换所有出现的ct(出现的频率远低于) :ſc_t

\documentclass{standalone}
\usepackage{fontspec}

\newfontfamily\hoefler[Ligatures={TeX,Common},Contextuals=Inner]{Hoefler Text}
\newfontfamily\rareliga[Ligatures={TeX,Rare}]{Hoefler Text}
\newcommand{\ct}{\rareliga{}ct{}\hoefler}

\begin{document}
\hoefler
The side attra\ct{}ion for most spe\ct{}ators was the mustard
\end{document}

对于大多数观众来说,芥末也是一大吸引力。

虽然不是最优雅的方式,但确实有效。我现在要开始为 Latin Modern 添加连字符。

答案3

以下是如何Contextuals=Inner向拉丁现代字体添加自动 s → ſ 替换(启用时):

feature hist {
  @notf = [a-e g-z];
  sub s' @notf by longs; # use "sf", not "longs f"
  sub longs longs' by s; # words don't end with longs
  sub f longs' by s;     # end with fs, not f_longs
} hist;

feature hlig {
  sub c t by c_t;
} hlig;

现在我只需要为 longs_i、longs_l、longs_longs、longs_longs_i、longs_longs_l 以及每个请求的连字符添加适当的连字符http://wiki.contextgarden.net/Wishes_for_Latin_Modern

答案4

对我来说,输入Style = Historic, Ligatures = Historic

值得一提的是,我的字体坏了,没有任何上下文功能。它是 Hoefler Text Pro v1.201

相关内容