在 XeLaTeX 中,我\textsuperscript
测试过的所有字体都存在破折号问题。与 LaTeX 中的情况相反,在 XeLaTeX 中破折号不会上标。
这是一个 MWE:
\documentclass{article}
\usepackage{xltxtra}
\defaultfontfeatures{Ligatures=TeX, Scale=MatchLowercase}
\setmainfont[Ligatures=Common,
Numbers=OldStyle,
]{Minion Pro}
\begin{document}
88--100\textsuperscript{88--100}
\end{document}
结果如下:
你知道发生了什么事吗?
答案1
xltxtra
我发现,如果你不加载包并添加指令,问题就会完全消失
\usepackage{fontspec}
回到序言。
摘自手册第 4 页fontspec
:
该
xltxtra
软件包为 XELATEX 添加了一些额外的小功能,包括通过该metalogo
软件包使用\XeTeX
宏来排版 XETEX 徽标。虽然之前推荐过这个软件包,但现在它的作用已经小了很多,一般不需要了。在加载它之前,请查阅其文档以评估其功能是否有必要。
简而言之,您可能xltxtra
根本不需要该包。
% !TEX TS-program = xelatex
\documentclass{article}
\usepackage{fontspec}
\defaultfontfeatures{Ligatures=TeX, Scale=MatchLowercase}
\setmainfont[Ligatures=Common,
Numbers=OldStyle,]{Minion Pro}
\begin{document}
88--100 \textsuperscript{88--100}
\end{document}
答案2
我使用了 MWE,只需将“Minion Pro”替换为“Arial”,问题就消失了。
删除 xltxtra 需要添加 fontspec。根据 xltxtra 软件包手册,它会加载“fixltx2e、metalogo、xunicode 和 fontspec”。我逐个尝试将 fontspec 与 xltxtra 加载的每个软件包一起使用,问题不再出现。如果我添加 xltxtra,问题又会出现。
因此,该问题与 xltxtra 有关。
但是,如果你使用没有 fontspec 的 xltxtra,并使用不同的字体,例如“Arial”或“Times New Roman”,则不存在该问题。
引起我注意的是,我没有安装“Minion Pro”,但 MWE 可以通过 XeLaTeX 编译。因此,我必须得出结论,问题出在 xltxtra 上,以及“setmainfont”如何管理“Minion Pro”或其缺失。
我应该补充一点,在第二次阅读手册(第 2.1 节)时,如果在 MWE 中使用“\usepackage[no-sscript]{xltxtra}”,问题就会消失。