I have a macro that I want to run just before every new beamer frame. I could just a define myframe
environment that runs the macro then starts a standard frame, but I'd rather do it differently if I can.
Beamer has neat \AtBeginSection
functionality, but am I right in thinking there's no such analogue like \AtBeginFrame
…
And would the situation be different if I actually wanted to do something before setting each slide? [Edit: I asked this last part as a separate question]
Best Answer
Use the patching facilities of
etoolbox
to patch\frame
to do what you want.Since
\frame
is parameterless, it'd seem like you want to doThis will cause
\foo
to happen before the frame.If you want things to happen after all of the argument processing, it's significantly more complex because it appears that beamer follows lots of different paths. (I sort of gave up after
\beamer@@@@frame
which then sets\beamer@howtotreatframe
in a bunch of different ways depending on some conditions.)Here's a simple example: