sigplanconf 的 \thanks 和 cleveref 之间不兼容

sigplanconf 的 \thanks 和 cleveref 之间不兼容

cleveref和类\thanks的命令之间似乎存在不兼容性sigplanconf(参见这里了解更多信息)。

以下是显示该问题的 MWE(使用最新的sigplanconfv3.2):

\documentclass{sigplanconf}

\usepackage{cleveref}% Commenting this makes the example compile just fine

\begin{document}


\title{Title}

% \authorinfo{Au Thor}% without \thanks cleveref is not an issue
\authorinfo{Au Thor\thanks{a}}
{University of Nowhere}
{[email protected]}

\maketitle

\end{document}

有人知道如何解决这个问题并同时使用cleveref\thankssigplanconf

答案1

该类未定义\@thefnmark何时\thanks处理,因为它不调用\footnote,而是调用\titlenote。但是,cleveref需要\@thefnmark像标准脚注中那样的定义。只需以与工作方式兼容的方式为其提供定义sigplanconf。处理实际脚注时,此类定义将被覆盖,但正如\thanks只能在之前出现一样\maketitle,不会出现任何问题。

\documentclass{sigplanconf}

\usepackage{cleveref}

\makeatletter
\providecommand{\@thefnmark}{\the\@fnmark}
\makeatother

\begin{document}

\title{Title}

\authorinfo{Au Thor\thanks{a}}
  {University of Nowhere}
  {[email protected]}

\maketitle

\end{document}

相关内容