beamerbasedecode.sty 中未使用的 \setbox0

beamerbasedecode.sty 中未使用的 \setbox0

beamerbasedecode.sty在包的源文件里面beamer,有以下几行:

\def\beamer@stoptexts{| stop:0| }
{
   \catcode`\|=13
   \catcode`\:=13
   \catcode`\,=13
   \catcode`\.=13
   \catcode`\+=13
   \catcode`\-=13
   \catcode`\(=13
   \catcode`\)=13
   \catcode`\ =13
\gdef\beamer@masterdecode#1{% must be called within a group
\ifnum\catcode`\|=13\edef|{\string|}\fi%
\ifnum\catcode`\:=13\edef:{\string:}\fi%
\ifnum\catcode`\,=13\edef,{\string,}\fi%
\ifnum\catcode`\.=13\edef.{\string.}\fi%
\ifnum\catcode`\+=13\edef+{\string+}\fi%
\ifnum\catcode`\-=13\edef-{\string-}\fi%
\ifnum\catcode`\(=13\edef({\string(}\fi%
\ifnum\catcode`\)=13\edef){\string)}\fi%
\ifnum\catcode`\ =13\edef {\string }\fi%
\edef\beamer@@@temp{#1\beamer@stoptexts}%
\beamer@localanotherslidefalse%
\setbox0=\hbox{%
\expandafter\beamer@decode\beamer@@@temp%
\ifbeamer@localanotherslide\global\beamer@localanotherslidetrue\fi}%
}%
}

真正的解码宏在哪里\beamer@decode。但是我没有找到\box0源文件中哪里使用了。为什么要\beamer@decode放入\box0

答案1

盒子是故意从不使用的。这里的想法是,它\beamer@@@temp可能包含要排版的材料。在盒子内执行,任何最终排版的材料都不会在文档内部造成问题,因为盒子会被丢弃。此代码之后所需要的只是解码的结果,这些结果是全局设置的,因此可用。

相关内容