beamerbasedecode.sty
クラスのソース ファイルの先頭にはbeamer
、2 つのスイッチが定義されています。
\newif\ifbeamer@anotherslide
\newif\ifbeamer@localanotherslide
beamerbasedecode.sty
と を読んでbeamerbaseframe.sty
、 についてある程度の知識を得ました\ifbeamer@anotherslide
。どのframe
環境でも、beamer
は を呼び出し\beamer@masterdecode
、\beamer@masterdecode
スイッチ を変更します\ifbeamer@anotherslide
。これが真である間、beamer
は何度も を呼び出し\beamer@masterdecode
、最終的にフレーム内のすべてのスライドを生成します。
内部では、と は常に同じ値を持つよう\beamerbasedecode.sty
です。\ifbeamer@anotherslide
\ifbeamer@localanotherslide
\global\beamer@anotherslidetrue\beamer@localanotherslidetrue
唯一の違いは、\global
最初のマクロの前の部分です。ただし、メインのマクロでは\beamer@masterdecode
、2 番目のマクロもグローバルになります。
\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}%
}%
\ifbeamer@anotherslide
これは私を混乱させます。との違いは何ですか\ifbeamer@localanotherslide
? なぜ が必要なのですか\ifbeamer@localanotherslide
?