我正在使用长 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 世纪早期的人们如何做到:
示例 1:不列颠百科全书(第五版),1817 年。
示例 2:Minion Pro 字体正确使用了 longst 和 ct 连字。
注意:19 世纪早期的人们不会花 199 美元购买 Minion Pro(这相当于我们支付 410 万美元),所以我也不想买 =)
答案1
@tohecz:Thomas 的问题与我提到的问题密切相关,但似乎他遇到的问题在这些问题中没有得到解决。
我尝试使用 selnolig 包来选择性地禁用 s_t 连字符
(\nolig{st}{s|t})
,但这也会阻止使用最长的连字符。
如果我理解正确的话,你希望selnolig
区分和s
。ſ
你没有提供 MWE,但我假设你的情况selnolig
无法区分这两者,因为你不要——我猜你的文本只有s
和s
,所以没有什么selnolig
可以为你做的。
有根据的猜测:正确输入您的s
s 将会产生不错的结果。
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