我正在编辑论文的这种样式,在显示带有正确脚注的作者时遇到了这个问题。我们使用包authblk
和thanks
命令来定义/显示作者。代码如下所示
\author[1]{First Author \thanks{Research supported by blah}}
\author[2]{Second Author \thanks{Research supported by blih}}
\affil[1]{Department of Mathematics in the University of Lost Dimensions}
\affil[2]{Department of Computer Science in the Binary Group Institute}
这很有效,为隶属关系和致谢部分添加了脚注标记(这是一个实际的脚注)
当两位作者都获得相同的资助时,问题就出现了。我想用thank
引用第一个命令的脚注标记替换第二个命令。如果直接使用footnotemark
中的命令author
,会出现错误,所以我使用protect
如下命令
\author[1]{First Author \thanks{Research supported by blah}}
\author[2]{Second Author \protect\footnotemark[1]}
然后,我对首页上的作者很满意,但我们的样式定义了以下函数来在其他页面上打印作者的姓名
\newcommand*{\authors}{%
\begingroup
\let\footnote\@gobble% ignore \footnote
\let\thanks\@gobble% ignore \thanks
\let\textsuperscript\@gobble% ignore protected \textsuperscript
\expandafter\let\csname textsuperscript \endcsname\@gobble
\let\Authfont\relax% do not use a special font
\def\Authand{, }% separate list of authors by ,
\ifnum\value{authors}<3 % one ore two authors
\AB@authlist% show them all
\else% 3 or more authors
\ABgetauthor{1}\,et~al.
\fi
\endgroup
}
如果我保留原样,第二位作者会在后面的页面上出现脚注标记。因此,我在作者函数中添加了以下行
\let\footnotemark\@gobble% ignore \footnotemark
现在这显示为“第一作者,第二作者1]”,因为的参数\footnotemark
没有被 gobble 方法吞噬。我发现的唯一办法是改用这一行
\let\footnotemark\@gobblethree% ignore \footnotemark
它有效,但我想知道是否有更好/更干净的方法来实现它
非常感谢您的帮助
答案1
由于我在 David 的评论中得到了答案,因此我将其发布在这里,以便有人遇到类似问题时可以更清楚地看到。
authors
我使用renewcommand
而不是更改了命令的定义gobble
:
\newcommand*{\authors}{%
\begingroup
\renewcommand\footnotemark[1][]{}% ignore \footnotemark
\let\footnote\@gobble% ignore \footnote
\let\thanks\@gobble% ignore \thanks
\let\textsuperscript\@gobble% ignore protected \textsuperscript
\expandafter\let\csname textsuperscript \endcsname\@gobble
\let\Authfont\relax% do not use a special font
\def\Authand{, }% separate list of authors by ,
\ifnum\value{authors}<3 % one ore two authors
\AB@authlist% show them all
\else% 3 or more authors
\ABgetauthor{1}\,et~al.
\fi
\endgroup
}
此代码位于我们用于论文的自制 sty 文件中。现在一切都按预期运行。