通过 LyX 在 XeTeX 中使用 Curly Quote

通过 LyX 在 XeTeX 中使用 Curly Quote

我的 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

相关内容