此示例说明了 xelatex 和 natbib 及脚注生成的上标之间存在一些冲突。不同引文之间的分号没有排版为上标,匕首也没有。但是,星号对我来说看起来不错。有什么建议可以让这些自动生成的上标看起来更正常吗?
更新 大部分已修复,请参见下面的第二张屏幕截图。
更新 2 已完全修复!使用此代码修改下面的 MWE:
\DefineFNsymbols*{safestar}{{$*$}{\textdagger}{\textdaggerdbl}{\textsection}
{\textparagraph}{\textbardbl}{$**$}{\textdagger\textdagger}
{\textdaggerdbl\textdaggerdbl}{\textsection\textsection}
{\textparagraph\textparagraph}{\textbardbl\textbardbl}}
\setfnsymbol{safestar}
这来了转交MinionPro 邮件列表中的 Achim Blumensath,以及文档用于 footmisc 包。
\documentclass[article, a4paper, 12pt, oneside]{memoir}
\usepackage{fontspec}
\usepackage{xunicode}
\usepackage{xltxtra} % c/o @wasteofspace, this is the "offending" line
\defaultfontfeatures{Mapping=tex-text}
\setmainfont{Linux Libertine O}
\usepackage[super]{natbib}
\usepackage[perpage,symbol]{footmisc}
\let\sc\scshape
\let\bf\bfseries
\let\it\itfamily
\setlrmarginsandblock{23mm}{23mm}{*}
\setulmarginsandblock{23mm}{198mm}{*}
\checkandfixthelayout
\begin{document}
\bibliographystyle{plainnat}
\setcitestyle{nature}
\thispagestyle{empty}
This is a nice\footnote{(That is to say, minimal.)}
example.\cite{lenat1976artificial,lenat1984and} Unfortunately, it has
some problems.\footnote{From an aesthetic point of view.}
\bibliography{corneli}{}
\end{document}
分号 http://metameso.org/~joe/superscripts.png
但如果我们不加载繁體中文,然后我们得到另一个稍微有问题的结果: 星号 http://metameso.org/~joe/superscript2.png
我想我可以忍受小而过高的星号。当它跟在句号后面时看起来就没那么糟糕了。
答案1
我知道问题已经解决了。不过,我还是想解释一下这个“冲突”是怎么回事。
问题不在于xltxtra
本身但事实上它重新定义\textsuperscript
为使用实际的高级字形。引用手册:
2.1
\textsuperscript
和\textsubscript
这两个宏已被重新定义,以便在可能的情况下利用主文档字体中实际的上部或下部字形。这对于高质量排版非常重要
的标准定义\textsuperscript
本质上用于^{}
创建上标。现在,当使用\textsuperscript
with xltxtra
(或直接使用上级)并且字体没有字符作为上级字形时,它将被替换为正常字形:
\documentclass{article}
\usepackage{fontspec}
\begin{document}
\setmainfont{Minion Pro}
foo%
{\addfontfeatures{VerticalPosition=Superior}123,456 * \textdagger} % superior
\textsuperscript{123,456 * \textdagger}% vs standard
\setmainfont{Linux Libertine O}
foo%
{\addfontfeatures{VerticalPosition=Superior}123,456 * \textdagger} % superior
\textsuperscript{123,456 * \textdagger}% vs standard
\end{document}
您可以从逗号的位置看到,字符是否可用作上级字符取决于字体。