amsart 类中 \author 内的 \normalsize

amsart 类中 \author 内的 \normalsize

当我尝试在 Overleaf 中编译这个 MWE 时(尽管我应该说“最小非工作示例”):

\documentclass[12pt,reqno]{amsart}

\title{Title}
\author{\normalsize John Doe}

\begin{document}

\maketitle

\end{document}

我收到以下错误:

在此处输入图片描述

\normalsize但是,如果我们用\tiny\scriptsize\footnotesize\small、或代替\large,代码就能按预期正确编译。那么发生了什么呢?\LARGE\huge\HUGE

答案1

在 \author 中添加任何格式显然都是不好的风格,因为关键是要将作者姓名作为文本,并在\maketitle设置中的其他地方指定样式,因此虽然可以使用宏来避免这个错误,但删除 \normalsize 是正确的解决方法。

也就是说,您可以使用\protect它来避免错误。

在当前版本中你会得到一个稍微不同的错误:

! TeX capacity exceeded, sorry [input stack size=10000].
\__bool_quark_recursion_tail:w ...n_tail #2?#3?!->
                                                  #1#2
l.8 \maketitle
              
!  ==> Fatal error occurred, no output PDF file produced!

\protect没有出现任何错误:

\documentclass[12pt,reqno]{amsart}

\title{Title}
\author{\protect\normalsize John Doe}

\begin{document}

\maketitle

\end{document}

在此处输入图片描述

答案2

您不需要\normalsize在里面\author,因为这也会影响偶数页的页眉。

最好对\@setauthors负责排版作者姓名的人进行修补。

\documentclass[12pt,reqno]{amsart}
\usepackage{etoolbox}

\makeatletter
\patchcmd{\@setauthors}{\footnotesize}{\normalsize}{}{}
\makeatother

\title{Title}
\author{John Doe}

\begin{document}

\maketitle

\end{document}

在此处输入图片描述

相关内容