-
Notifications
You must be signed in to change notification settings - Fork 0
/
beamer-pause.tex
229 lines (177 loc) · 6 KB
/
beamer-pause.tex
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
first \pause second
\newrobustcmd{\beamer@@pause}[1][]{%
\ifblank{#1}%
{\stepcounter{beamerpauses}}%
{\setcounter{beamerpauses}{#1}}%
\onslide<\value{beamerpauses}->\relax%
}
% expand \pause, #1 = ""
% expand \ifblank, true
\stepcounter{beamerpauses}
\onslide<\value{beamerpauses}->\relax
\newrobustcmd*\onslide{%
\@ifstar
{\only}
{\@ifnextchar+%
{\expandafter\beamer@visibleonslide\@gobble}
{\beamer@mainonslide}}}
% expand \onslide
% expand \@ifstar, false
% expand \@ifnextchar, false
\beamer@mainonslide<\value{beamerpauses}->\relax
\newcommand<>{\beamer@mainonslide}{%
\@ifnextchar\bgroup%
{\uncover#1}%
{\beamer@noargsonslide#1}%
}
% expand \beamer@mainonslide, #1 = "<\value{beamerpauses}>"
% expand \@ifnextchar, false
\beamer@noargsonslide<\value{beamerpauses}->\relax
\newcommand<>{\beamer@noargsonslide}{%
\beamer@endpause%
\alt#1%
{\beamer@spacingcover\gdef\beamer@endpause{\beamer@spacingcover}}%
{\beamer@startcovered\gdef\beamer@endpause{\beamer@endcovered}}%
}
% expand \beamer@noargsonslide, #1 = "<\value{beamerpauses}>"
% expand \beamer@endpause, empty
\alt<\value{beamerpauses}->
{\beamer@spacingcover\gdef\beamer@endpause{\beamer@spacingcover}}%
{\beamer@startcovered\gdef\beamer@endpause{\beamer@endcovered}}%
\relax
\newrobustcmd*\alt{\@ifnextchar<{\beamer@alt}{\beamer@alttwo}}
% expand \alt
% expand \@ifnextchar, true
\beamer@alt<\value{beamerpauses}->
{\beamer@spacingcover\gdef\beamer@endpause{\beamer@spacingcover}}%
{\beamer@startcovered\gdef\beamer@endpause{\beamer@endcovered}}%
\relax
\long\def\beamer@alt<#1>#2#3{%
\gdef\beamer@doifnotinframe{#3}\def\beamer@doifinframe{#2}%
\beamer@masterdecode{#1}\beamer@donow}
% expand \beamer@alt, #1 = "\value{beamerpauses}",
% #2 = "\beamer@spacingcover ...", #3 = "\beamer@startcovered ..."
\gdef\beamer@doifnotinframe
{\beamer@startcovered\gdef\beamer@endpause{\beamer@endcovered}}%
\def\beamer@doifinframe
{\beamer@spacingcover\gdef\beamer@endpause{\beamer@spacingcover}}%
\beamer@masterdecode{\value{beamerpauses}-}\beamer@donow
\begingroup
\catcode`\|=\active
\catcode`\:=\active
\catcode`\,=\active
\catcode`\.=\active
\catcode`\+=\active
\catcode`\-=\active
\catcode`\(=\active
\catcode`\)=\active
\catcode`\ =\active
\xdef\beamer@masterdecode#1{%
\noexpand\beamer@localanotherslidefalse%
\setbox\beamer@decode@box=\hbox{%
\unexpanded{%
\ifnum\catcode`\|=\active\edef|{\string|}\fi%
\ifnum\catcode`\:=\active\edef:{\string:}\fi%
\ifnum\catcode`\,=\active\edef,{\string,}\fi%
\ifnum\catcode`\.=\active\edef.{\string.}\fi%
\ifnum\catcode`\+=\active\edef+{\string+}\fi%
\ifnum\catcode`\-=\active\edef-{\string-}\fi%
\ifnum\catcode`\(=\active\edef({\string(}\fi%
\ifnum\catcode`\)=\active\edef){\string)}\fi%
\ifnum\catcode`\ =\active\edef {\string }\fi}%
\edef\noexpand\beamer@@@temp{#1\string|stop\string:0\string|}%
\edef\noexpand\beamer@@@temp{\unexpanded{\expandafter\zap@space\beamer@@@temp}%
\space\noexpand\@empty}%
\unexpanded{\expandafter\beamer@decode\beamer@@@temp%
\ifbeamer@localanotherslide\aftergroup\beamer@localanotherslidetrue\fi}%
}%
}%
\endgroup
% expand \beamer@masterdecode
\beamer@@@temp -> "\c@beamerpauses-|stop:0|"
\beamer@decode\c@beamerpauses-|stop:0|%
\ifbeamer@localanotherslide\aftergroup\beamer@localanotherslidetrue\fi
\beamer@donow
\def\beamer@decode{%
\beamer@plusencounteredfalse
\global\beamer@minimum=10000\relax
\gdef\beamer@decaction{}%
\global\let\beamer@decodefound=\beamer@allsign
\beamer@@decodefind}
% expand \beamer@decode
% expand \beamer@masterdecode
\beamer@minimum -> "10000"
\beamer@decaction -> ""
\beamer@decodefound -> "*"
\beamer@@decodefind\c@beamerpauses-|stop:0|%
\ifbeamer@localanotherslide\aftergroup\beamer@localanotherslidetrue\fi
\beamer@donow
\def\beamer@@decodefind#1|{\beamer@@@decodefind#1:|}
% expand \beamer@@decodefind, #1 = "\c@beamerpauses-"
\beamer@@@decodefind\c@beamerpauses-:|stop:0|%
\ifbeamer@localanotherslide\aftergroup\beamer@localanotherslidetrue\fi
\beamer@donow
\def\beamer@@@decodefind#1:#2|{%
\ifblank{#2}%
{\beamer@decodefind beamer:#1:}%
{\beamer@decodefind #1:#2}}
% expand \beamer@@@decodefind, #1 = "\c@beamerpauses-", #2 = ""
% expand \ifblank, true
\beamer@decodefind beamer:\c@beamerpauses-:stop:0|%
\ifbeamer@localanotherslide\aftergroup\beamer@localanotherslidetrue\fi
\beamer@donow
\def\beamer@decodefind#1:#2:{...}
% expand \beamer@decodefind, #1 = "beamer", #2 = "\c@beamerpauses-"
<replacement text of \beamer@decodefind>stop:0|%
\ifbeamer@localanotherslide\aftergroup\beamer@localanotherslidetrue\fi
\beamer@donow
\beamer@@decode\c@beamerpauses-,!
\def\beamer@@decode{%
\kernel@ifnextchar!%
{\beamer@decodeend}%
{%
\kernel@ifnextchar*%
{\beamer@decodeall}{%
\kernel@ifnextchar-%
{\beamer@decodeuntil}%
{\beamer@decodenumber}}}}
% expand \beamer@@decode
\beamer@decodenumber\c@beamerpauses-,!
\def\beamer@decodenumber#1{%
\kernel@ifnextchar,%
{\beamer@decodeone{#1}}%
{\kernel@ifnextchar-%
{\beamer@decodenumberto{#1}}%
{\beamer@decodegobble{#1}}}}
% expand \beamer@decodenumber, #1 = "\c@beamerpauses"
\beamer@decodenumberto{\c@beamerpauses}-,!
\def\beamer@decodenumberto#1-{%
\kernel@ifnextchar,%
{\beamer@decodeto{#1}}%
{\beamer@decodebetween{#1}}}
% expand \beamer@decodenumbertp, #1 = "\c@beamerpauses"
\beamer@decodeto{\c@beamerpauses},!
\def\beamer@decodeto#1,{%
\ifnum#1<\beamer@minimum
\global\beamer@minimum=#1\relax
\fi
\ifnum#1>\beamer@slideinframe
\global\beamer@anotherslidetrue\beamer@localanotherslidetrue
\fi
\ifnum#1>\beamer@slideinframe
\else
\gdef\beamer@doifnotinframe{\beamer@doifinframe}%
\fi
\beamer@@decode}
% expand \beamer@decodeto, #1 = "\c@beamerpauses"
\beamer@minimum -> 2
% in beamerbasedecode.sty
\def\beamer@donow{\beamer@doifnotinframe}
% in \beamer@alt
\gdef\beamer@doifnotinframe
{\beamer@startcovered\gdef\beamer@endpause{\beamer@endcovered}}%
% expand \beamer@donow
% expand \beamer@doifnotinframe
\beamer@startcovered
\gdef\beamer@endpause{\beamer@endcovered}
\pgfsys@begininvisible