在下面这个使用 Palatino Linotype 字体的最小示例中:
\documentclass[twoside]{book}
\usepackage{mathspec}
\setmainfont{PalatinoLinotype}[
Extension = .ttf,
Ligatures = TeX,
WordSpace = {1.1,1.1,1.0},
UprightFont={PalatinoLinotype},
ItalicFont={PalatinoLinotypeItalic},
Numbers = Lining,
Scale = 0.95
]
\usepackage{polyglossia}
\setdefaultlanguage{french}
\begin{document}
\Huge
Battra
\textsc{Battra}
\end{document}
我在小型大写字母字符串里面得到了一个(常规)tt 连字:
这并不正常,因为字体中有一个带有替换liga
的表格sub t t by t_t;
,但此替换不适用于称为 的小写字母字形T.c2sc
。事实上,我在 Illustrator 中做了同样的事情,结果如下:
所以这不是字体的问题,而是 的问题fontspec
。我该如何解决这个问题?
不幸的是,我主要在参考书目中使用小写字母表示作者姓名(这是法国的习惯),因此我几乎无法进入 BIB 数据并添加命令\/
来分隔所有 tt 和 tz 字母对,这会破坏我的字母顺序。而且我不想从 Palatino 字体中删除 tt、tz 连字符,这是其魅力的一部分(普通人看不到)。你能给我一个解决方案吗fontspec
?也许有某种方法可以liga
仅在使用小写字母时停用连字符?
供参考,这里是liga
字体的表格:
feature liga {
# GSUB feature: Standard Ligatures
# Lookups: 1
script latn; # Latin
sub f b by f_b;
sub f f b by f_f_b;
sub f f h by f_f_h;
sub f f i by f_f_i;
sub f f k by f_f_k;
sub f f l by f_f_l;
sub f f by f_f;
sub f h by f_h;
sub f i by fi;
sub f j by f_j;
sub f k by f_k;
sub f l by fl;
sub t t by t_t;
sub t z by t_z;
language TRK ; # Turkish
language ROM ; # Romanian
} liga;
它们都不适合小写字母……
我注意到一个奇怪的现象:这个问题出现在 tt 和 tz 连字符上,但不出现在常见的 fi、ff、fl、ffi、ffl 上。我猜后者被Ligatures = TeX
中的选项覆盖了fontspec
,因为某种原因 tt 和 tz 无法正确处理……