报价发生了什么变化?

报价发生了什么变化?

这是我的 MWE:

%!TEX TS-program = xelatex
\documentclass[a4paper]{report}
\usepackage{xltxtra}
\defaultfontfeatures{Mapping=tex-text}
\setromanfont{Times New Roman}

\begin{document}
``abcde''
\end{document}

得出的结果为:

在此处输入图片描述

如果我注释掉该\defaultfontfeatures行,结果是:

在此处输入图片描述

如果我删除那个和的使用xltxtra(显然还有\setromanfont),我会得到:

在此处输入图片描述

那么问题是:引号发生了什么?xltxtra它们发生了什么\defaultfontfeatures变化?

答案1

几年前,该软件包xltxtra被推荐用于 XeLaTeX,但现在不再如此了。相反,它是不是建议加载xltxtra,除非您确实需要它的额外功能(通常不需要)。

\setromanfont命令几年前就被弃用了,取而代之的是更清晰的命令\setmainfontMapping=tex-text选项已更改为

Ligatures=TeX

而对于 TeX Live 2014 上最新版本的,fontspec甚至不需要指定它。因此,对于最新的 TeX 发行版,正确的代码是

\documentclass[a4paper]{report}

\usepackage{fontspec}

\setmainfont{Times New Roman}

\begin{document}
``parola''.
\end{document}

在较旧的 TeX 发行版(如 TeX Live 2013)上,你需要

\setmainfont[Ligatures=TeX]{Times New Roman}

不要在中指定选项\defaultfontfeatures,因为它也会影响等宽字体(如果您声明它)并且您不希望这样。


现在回答你的问题。

  1. 选项Ligatures=TeX(以前称为Mapping=tex-text)使常用连字符也适用于 XeLaTeX;因此``映射到、、''到短破折号、到长破折号(还有其他一些)。这解释了第一种情况-----

  2. 如果删除该Ligatures=TeX选项,这些连字符就不会被定义,因此您会得到预期的``结果''

  3. 如果不加载fontspec(由 完成xltxtra),XeLaTeX 会加载常用字体,有连字符。但是,当然,重音字符可能不起作用。

  4. 如果您加载fontspec但不使用\setmainfont,则使用预加载的标准拉丁现代字体Ligatures=TeX

相关内容