\def\inst{\beamer@insttitle}\def\and{\beamer@andtitle} 中的嵌套 \def 是如何工作的

\def\inst{\beamer@insttitle}\def\and{\beamer@andtitle} 中的嵌套 \def 是如何工作的

我试图理解以下代码:

\def\author{\@dblarg\beamer@author}
\long\def\beamer@author[#1]#2{%
  \def\insertauthor{\def\inst{\beamer@insttitle}\def\and{\beamer@andtitle}#2}%
}

与上述示例类似的模式出现在beamerbasetitle.sty

我目前所理解的

\def\author{\@dblarg\beamer@author}

SE 帖子中解释了这一行q/56329。我们需要这条线来定义它处理情况和的\beamer@author方式。\author{abc}\author[xyz]{abc}

\long\def\beamer@author[#1]#2{%

此行(重新)定义\beamer@author命令(?)

\def\insertauthor{\def\inst{\beamer@insttitle}\def\and{\beamer@andtitle}#2}%

这行代码是最让我困惑的。它\def\insertauthor定义了\insertauthor命令,并且,从我从这个问题中得到的信息来看q/541515,类似这样的调用\insertauthor{J. Doe} 将扩展为

\def\inst{\beamer@insttitle}\def\and{\beamer@andtitle}J. Doe

对吗?为什么我们需要添加\def\inst{\beamer@insttitle}\def\and{\beamer@andtitle}?我觉得

\def\insertauthor{#2}%

也能完成这项工作。我还注意到beamerbasetitle.sty.:

% Aux commands for \author
\def\beamer@insttitle#1{\textsuperscript{#1}}
\def\beamer@andtitle{\quad}

我想了解嵌套的\defs 是如何扩展的以及如何阅读初始示例。

相关内容