authblk/xltxtra 上标错误

authblk/xltxtra 上标错误

我正在使用 XeLaTeX 类编写文档article,并authblk使用上标显示作者/所属机构。我还想使用该包xltxtra排版更好的上标(用于脚注)。

然而,在使用最后一个包时,我注意到上标在隶属关系中不再正确排版。实际上它们显示为正常字体。

以下是 MWE(注释掉了 2 个可能的解决方法):

\documentclass{article}

\usepackage{fontspec}
\usepackage{xltxtra}
% \usepackage[no-sscript]{xltxtra}
\defaultfontfeatures{Mapping=tex-text}
\setmainfont{Minion Pro}
\usepackage[noblocks]{authblk}
% \makeatletter
% \renewcommand\AB@authnote[1]{\textsuperscript{#1}}
% \renewcommand\AB@affilnote[1]{\textsuperscript{#1}}
% \makeatother

\title{Bad superscript with authblk / xltxtra}
\author{Author A}
\affil{Affiliation A}

\begin{document}
  \maketitle
\end{document}

第一个解决方法

作为第一个解决方法(上面第一个注释部分),我注意到我可以通过添加选项来禁用textsuperscript包中的定义。但是我宁愿避免这样做,因为我想在正文中保留更好的上标。xltxtra[no-sscript]

第二种解决方法

另一种解决方法(上面第二部分注释)是authblk通过重新定义命令进行修补AB@authnoteAB@affilnote以便删除对的调用\normalfont,即更改

\renewcommand\AB@affilnote[1]{\textsuperscript{\normalfont#1}}

进入

\renewcommand\AB@affilnote[1]{\textsuperscript{#1}}

这个方法效果不错,但这是一个 13 年前的软件包的补丁,所以我猜应该有更好的解决方案。此外,当使用没有“高级”版本的字形(如“A”或 $\dagger$)时,这个补丁不起作用。

第三个解决方法

最后一个(糟糕的)解决方法是在数学模式下强制上标,例如\author[$^1]{...},但是如果我们选择没有上级字形的字体,我们可能会得到双重上标。

任何能够克服这些解决方法的局限性的解决方案都将受到赞赏。

答案1

不加载 xltxtra

\documentclass{article}
\usepackage[noblocks]{authblk}
\usepackage{fontspec}

\setmainfont{Minion Pro}

\makeatletter
\renewcommand\AB@authnote[1]{\textsuperscript{#1}}
\renewcommand\AB@affilnote[1]{\textsuperscript{#1}}
\makeatother

\title{Good superscript without xltxtra}
\author{Author A}
\affil{Affiliation A}

\begin{document}
  \maketitle
\end{document}

在此处输入图片描述

顺便说一句,Mapping=tex-text应该是Ligatures=TeX,但这不是必需的,因为fontspec默认使用该选项,等宽字体除外。


如果字体有真正的上标,但您只能通过实验知道,则必须重新定义\AB@authnote\AB@affilnote,因为它们设置了\normalfont。 可能\upshape是唯一需要采取的预防措施。

\documentclass{article}
\usepackage[noblocks]{authblk}
\usepackage{fontspec}
\usepackage{realscripts}

\setmainfont{Minion Pro}

\makeatletter
\renewcommand\AB@authnote[1]{\textsuperscript{\upshape#1}}
\renewcommand\AB@affilnote[1]{\textsuperscript{\upshape#1}}
\makeatother

\title{Good superscript without xltxtra}
\author{Author A}
\affil{Affiliation A}

\begin{document}
  \maketitle
\end{document}

在此处输入图片描述

相关内容