我的 LyX 文档中有这样的序言:
\widowpenalty=10000
\clubpenalty=10000
\raggedbottom
\usepackage{dtklogos}
\usepackage{fontspec}
%\defaultfontfeatures{Contextuals=Alternate,Numbers=Lining,SmallCapsFeatures={Kerning=Uppercase}}
%\setmainfont{Calluna}
%\setsansfont{Calluna Sans}
\setmainfont[Numbers={Lining},Ligatures={Historic,Rare,Discretionary,TeX},Contextuals=Swash]{Calluna}
\pagenumbering{roman}
\usepackage{microtype}
并得到以下输出:
请注意使用适合该语言的花括号引号。
一旦我删除了Ligature={...}
的部分\setmainfont
,我就会得到这个输出:
\defaultfontfeatures
如果我取消注释,然后立即\setmainfont
注释掉,也会出现这种情况。\setmainfont [...],Liga...
我似乎无法准确指出 XeTeX 中默认使用“花括号”的选项(我在 LyX 菜单中看到的)。
答案1
这里的问题是,传统 TeX/LaTeX 和传统 TeX 字体的各种功能不受使用相同字体的较新 TeX 引擎的支持。这是它们的优势,但有时也是它们的弱点。
在 LaTeX 中,双引号的生成实际上分为两个阶段。第一阶段是识别 ` 以生成单左引号,识别 ' 以生成单右引号。第二阶段涉及 TeX 字体文件中定义的连字,该连字规定,当两个单左引号连续出现时,双左引号应替换它们,右引号亦同。
由于 XeLaTeX 和 LuaLaTeX 以不同的方式处理输入编码和字体,因此这些都不能开箱即用。fontspec
提供轻松访问模拟此行为的功能,以便传统的 TeX 代码继续产生预期的结果。
如果不启用此功能,则无法进行模拟。因此,如果您想要模拟,请不要禁用此功能。
答案2
这个问题在另一个 Stack 中得到了回答。从实用角度来说:
答案是添加Ligatures={TeX}
到\setmainfont
, 或\defaultfontfeatures
。