用 xelatex 加上标?(脚注,natbib)

用 xelatex 加上标?(脚注,natbib)

此示例说明了 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本质上用于^{}创建上标。现在,当使用\textsuperscriptwith 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}

在此处输入图片描述

您可以从逗号的位置看到,字符是否可用作上级字符取决于字体。

相关内容