At the beginning of the source file beamerbasedecode.sty of beamer class, two switches are defined:


By reading beamerbasedecode.sty and beamerbaseframe.sty, I have some knowledge of \ifbeamer@anotherslide: In every frame environment, beamer calls \beamer@masterdecode, and \beamer@masterdecode would change the switch \ifbeamer@anotherslide. While it is true, beamer would calls \beamer@masterdecode again and again, and at last generates all slides in the frame.

Inside \beamerbasedecode.sty, It seems that \ifbeamer@anotherslide and \ifbeamer@localanotherslide always have the same value:


The only difference is the \global before the first one. But in the main macro \beamer@masterdecode, the second one is also made global.

\def\beamer@stoptexts{| stop:0| }
   \catcode`\ =13
\gdef\beamer@masterdecode#1{% must be called within a group
\ifnum\catcode`\ =13\edef {\string }\fi%

This confuses me: what are the differences between \ifbeamer@anotherslide and \ifbeamer@localanotherslide? Why we needs \ifbeamer@localanotherslide?

  • 1
    I think it's fair to say this is not really clear, certainly without any notes! It would be easy enough to do some tests but as there is no full suite for beamer I'd be extremely wary of altering it in the release version! – Joseph Wright Apr 27 '15 at 14:53

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Browse other questions tagged or ask your own question.