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可能包含經過排版的材料。在盒子內進行的任何最終排版材料都不會在文件內部產生任何問題,因為盒子會被丟棄。此程式碼之後所需要的只是解碼結果,這些結果是全域設定的,因此可用。

相關內容