期刊风格要求 \@authors 大写

期刊风格要求 \@authors 大写

我们正在向一家期刊提交一篇文章,该期刊要求提供照相排版稿件。格式要求作者栏必须大写,但期刊没有提供样式文件。因此,我们正尝试开发自己的.cls文件,但遇到了困难。

主要问题涉及包含通常在前导命令中找到的\footnote或命令(例如)。使用将导致类似以下错误\thanks\author\author{Arthur Pewtie \thanks{Chartered Accountancy Firm}}\MakeUppercase{\@author}

 Use of \@xfootnotemark doesn't match its definition

可以通过将 侵入定义 ( ) 来避免这种情况\protect\author\author{Arthur Pewtie \protect\thanks{Chartered Accountancy Firm}}随后\MakeUppercase中的.cls会使整个脚注大写。

我们寻求authblk帮助,但它能做的最接近的就是用小型大写字母格式化作者区块。

任何建议都将不胜感激。我们确实希望在文件内解决这个问题.cls,而不是让作者在.tex文档中提供文章字段的破解方法。

答案1

我的解决方案使用文本大小写包,它修改\MakeUppercase并提供一个\NoCaseChange宏。然后我重新定义为在其参数上\author使用,并为其参数使用。由于宏的工作方式,我需要定义一个辅助宏来包装\MakeUppercase\thanks\NoCaseChange\uppercase\thanks

\documentclass{article}
\usepackage[overload]{textcase}

\makeatletter
\def\author#1{\gdef\@author{\MakeUppercase{#1}}}
\let\case@thanks\thanks
\def\thanks#1{\NoCaseChange{\case@thanks{#1}}}
\makeatother

\begin{document}
\title{My title}
\author{My Name\thanks{Thanks to the little people}}
\maketitle
\end{document}

答案2

有一些诡计正在发生。

好的,我来分享一下这个秘密。逻辑如下:

  1. \author我保存了最初定义和的副本\thanks

  2. 我重新定义\author如下:

    a)我重新定义\thanks为仅将其参数的副本保存到中ThanksText

    b)\setbox0完成将\thanks的参数放入\author的阶段\ThanksText,无需排版任何内容。

    c) 然后我\thanks通过重新定义宏{}并丢弃其参数来使宏消失。

    \authord)我使用以下参数调用已保存的副本:

    • 原始\MakeUppercase#1,除了\thanks和它的参数被丢弃,所以\MakeUppercase不会中断;然后是

    • 我检查是否\ThanksText已定义。如果已定义,则\thanks使用 调用已保存的副本\ThanksText


\documentclass{article}
\usepackage{etoolbox}
\let\svauthor\author
\let\svthanks\thanks
\def\author#1{%
  \def\thanks##1{\gdef\ThanksText{##1}}%
  \setbox0=\hbox{#1}%
  \def\thanks##1{}%
  \svauthor{%
    \MakeUppercase{#1}%
    \ifdef{\ThanksText}{\svthanks{\ThanksText}}{}}%
}
\begin{document}
\title{My title}
\author{My Name\thanks{Thanks to the little people}}
%\author{My Name}
\maketitle
\end{document}

在此处输入图片描述

相关内容