我试图理解以下代码:
\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}
我想了解嵌套的\def
s 是如何扩展的以及如何阅读初始示例。