LinuxLibertine 摧毁了 biblatex 的 supercite

LinuxLibertine 摧毁了 biblatex 的 supercite

可能重复:
用 xelatex 加上标?(脚注,natbib)

我想使用\supercitebiblatex它工作正常,除非我切换到LinuxLibertine。字体弄乱了“上标”逗号和 - 线。

顺便说一句:我使用 XeLaTeX。

图片: 在此处输入图片描述

最小示例:

\documentclass{article}

\usepackage[style=numeric-comp]{biblatex}

\usepackage{fontspec,xunicode}
\usepackage{xltxtra}


% ACTIVATE TO SEE EFFECT
\setmainfont[Mapping=tex-text]{Linux Libertine O}
\setsansfont[Mapping=tex-text]{Linux Biolinum O}



\usepackage{filecontents}

\begin{filecontents}{test.bib}
@book{kastenholz,
      author = {Author, A.},
               year = {2001},
                      title = {Alpha},
}
@book{companion,
      author = {Buthor, B.},
               year = {2002},
                      title = {Bravo},
}
@article{augustine,
         author = {Cuthor, C.},
                  year = {2003},
                         title = {Charlie},
}
\end{filecontents}

\addbibresource{test.bib}

\let\cite=\supercite
\begin{document}

Note the comma \cite{augustine,companion} and the underline \cite{augustine,companion,kastenholz}.

\printbibliography
\end{document}    

答案1

正如其他人所评论的:这是重新定义的问题\textsuperscript。有关完整解释,请参阅这个答案

简而言之:xltxtra重新定义\textsuperscript以利用 OpenType 字体提供的上标。这可能会导致不良行为。

最简单的解决方案是不加载xltxtra包。但如果确实需要,xltxtra您可以使用以下命令:

\let\textsuperscriptoriginal\textsuperscript % Save original command
\usepackage{xltxtra}                         % Load package
\let\textsuperscript\textsuperscriptoriginal % Restore original command

答案2

我看不到它:

\documentclass{article}
\usepackage[style=numeric-comp]{biblatex}
\usepackage{fontspec}
\setmainfont[Mapping=tex-text]{Linux Libertine O}
\setsansfont[Mapping=tex-text]{Linux Biolinum O}
... 

所有其他软件包均fontspec单独安装。

相关内容