包含这个之后,通常用 `` and '' 引用不再起作用(这也会将引擎更改为 XeTeX):
\usepackage{fontspec}
\setmainfont{Helvetica}
它们只是在输出中逐字打印。双破折号和三破折号也一样,不再转换为 en/em 破折号。
答案1
XeLaTeX 解决方案
该fontspec
软件包默认不启用连字。要启用它们,您可以使用:
\defaultfontfeatures{Ligatures=TeX}
或者在加载字体时添加它:
\setmainfont[Ligatures=TeX]{Helvetica}
LuaLaTeX
但是,正如这里讨论的那样如何在 LuaTeX 中启用 emdash/endash 连字?(并在 Ulrike Fischer 的评论中指出)使用 LuaLaTeX 时,将此方法与 LuaLatTeX 一起使用可能不是最好的主意(即使它可以与 XeLaTeX 配合使用)。
这意味着将现有文档转换为 LuaLaTeX 可能会引发问题。对于新文档,这意味着将您的常规方法调整为可用于 LuaLaTeX 的方法。
TeX 连字符的等价形式
标准 TeX 连字符为:
`` '' -- --- !` ?` << >>
这些组合变成:
“ ” – — ¡ ¿ « »
适应在 XeLaTeX 或 LuaLaTeX 中不使用连字符
最简单的解决方案就是直接在源代码中输入实际字符。对于 en-dash、em-dash、¡ 和 ¿,这是一个简单的解决方案,但对于引号来说,这有点烦人,因为我们大多数人不习惯在源代码中输入“和”。这个问题有两种可能的解决方案。
基于编辑器的解决方案
使用好的编辑器,可以轻松绑定例如“”键以便在您键入时自动插入“”。
基于 LaTeX 的解决方案
或者,您可以使用csquotes
包,它允许非常复杂的引用机制。然而,这对许多用户来说可能有点过分。 csquotes
允许您定义一个活动引号字符,以便它会自动插入正确的引号字符。或者,您可以使用命令进行显式标记\enquote
。(该csquotes
包有许多其他复杂的功能;这只是一个基本示例。)
如果你使用多种语言,并且使用不同的引用约定,那么这会非常有用。这是一个简单的例子:
\documentclass{article}
\usepackage{fontspec}
%\usepackage[french,english]{babel} % if using lualatex
\usepackage{polyglossia} % if using xelatex
\setmainlanguage{english} % if using xelatex & polyglossia
\setotherlanguage{french} % if using xelatex & polyglossia
\usepackage[autostyle=true,english=american,french=guillemets]{csquotes}
\MakeOuterQuote{"}
\begin{document}
"This is \enquote{some} text".
\enquote{This is \enquote{some} text}.
\begin{otherlanguage}{french}
"Une exemple en français."
\enquote{Une exemple en français.}
\end{otherlanguage}
\end{document}
使用 LuaLaTeX 会稍微复杂一些,因为根据您使用的语言,babel
LuaLaTeX 并不完全支持 ,而polyglossia
与 XeLaTeX 一起使用的 不能与 LuaLaTeX 一起使用。请参阅以下问题以进行讨论。