在 xelatex 中停用小写字母的连字

在 xelatex 中停用小写字母的连字

在下面这个使用 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 无法正确处理……

相关内容