summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/doc/latex/beamersubframe/beamersubframe.tex
blob: 826d5601f3ae24f8059f339868f9827f2f43503e (plain)
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
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
\documentclass{beamer}
\usepackage{lmodern}
\usepackage[T1]{fontenc}

\usepackage[append]{beamersubframe}

\setbeamercovered{transparent=50}
\usetheme{Dresden}
%\usetheme{Berkeley}
%\usetheme{Montpellier}
%\usetheme{Malmoe}
%\usetheme{AnnArbor}
\usecolortheme{crane}


%-------------------------------------------------------------------------------
% conditional buttons
% #1: label for ``skip details''
% #2: text for ``skip details''
% #3: label for ``goto details''
% #4: text for ``goto details''
\newcommand<>{\beamerlinkdetailbutton}[4]{%
    \ifappend{\uncover#5{\alt#5{\hyperlink{#3}{\beamergotobutton{#4}}}{\beamergotobutton{#4}}}}%
             {\uncover#5{\alt#5{\hyperlink{#1}{\beamerskipbutton{#2}}}{\beamerskipbutton{#2}}}}
}

% #1: label for ``return from  details''
% #2: text for ``return from  details''
\newcommand<>{\beamerlinkbackbutton}[2]{%
    \ifappend{\uncover#3{\alt#3{\hyperlink{#1}{\beamerreturnbutton{#2}}}{\beamerreturnbutton{#2}}}}{}
}

\title[Beamer SubFrame]{The Beamer SubFrame Package}
\subtitle{Reordering frames in the PDF file without reordering the source}
\author{Mike Kaufmann}
\institute{\href{mailto:m.km@gmx.de}{\texttt{m.km@gmx.de}}\\~\\
           Version 0.1}
\date{29.06.2011}

%-------------------------------------------------------------------------------
\begin{document}
\begin{frame}
\maketitle
\end{frame}

%-------------------------------------------------------------------------------
%-------------------------------------------------------------------------------
%-------------------------------------------------------------------------------
\part{Documentation}
\section{Introduction}
\begin{frame}{Introduction}
\begin{itemize}
\item can reorder frames in PDF without reordering the source
\item to embed or append frames with details
\vspace{2ex}
\item only one level
\vspace{2ex}
\item very first version
\item not well tested
\item propably many flaws
\item therefore \alert{experimental}
\end{itemize}
\end{frame}

%-------------------------------------------------------------------------------
%-------------------------------------------------------------------------------
\section{Frame Order}
\subsection{Embedded Details}
\begin{frame}{Frame Order with Details embedded}
Order in PDF with details embedded (same as source):
\begin{itemize}
\item frame on foo
\item frame with details on item foo x
\item frame with more details on item foo x
\item frame on bar
\item frame with details on item bar y
\item frame with more details on item bar y
\end{itemize}
\vspace{2ex}
\beamerlinkdetailbutton{append}{Skip Picture}{embed-pic}{Show Picture}
\end{frame}

\begin{subframe}[label=embed-pic,plain]{Frame Order with Details embedded}
\includegraphics[scale=0.3]{beamersubframe-embed.pdf}

\beamerlinkbackbutton{append}{Return from Picture}
\end{subframe}

%-------------------------------------------------------------------------------
\subsection{Appended Details}
\begin{frame}[label=append]{Frame Order with Details appended}
Order in PDF with details appended (different from source):
\begin{itemize}
\item frame on foo
\item frame on bar
\item frame with details on item foo x
\item frame with more details on item foo x
\item frame with details on item bar y
\item frame with more details on item bar y
\end{itemize}
\vspace{2ex}
\beamerlinkdetailbutton{depend}{Skip Picture}{append-pic}{Show Picture}
\end{frame}

\begin{subframe}[label=append-pic,plain]{Frame Order with Details appended}
\includegraphics[scale=0.3]{beamersubframe-append.pdf}

\beamerlinkbackbutton{depend}{Return from Picture}
\end{subframe}

%-------------------------------------------------------------------------------
%-------------------------------------------------------------------------------
\section{Dependencies}
\begin{frame}[label=depend]{Dependencies}
\begin{itemize}
\item only works with Beamer class
    \begin{itemize}
    \item not loaded otherwhise
    \item error message
    \item disregarding $\to$ \alert{additional errors}
    \end{itemize}
\vspace{2ex}
\item needs verbatim
\end{itemize}
\end{frame}

%-------------------------------------------------------------------------------
%-------------------------------------------------------------------------------
\section{Usage}
\subsection{Package and Options}
\begin{frame}[fragile]{Usage -- Package and Options}
\begin{verbatim}
\usepackage[...]{beamersubframe}
\end{verbatim}
Options:
\begin{description}
\item[\texttt{embed }] subframes shown in order of source,
    \texttt{\textbackslash appendsubframes} ignored, default
\item[\texttt{append}] subframes removed and appended in place of
    \texttt{\textbackslash appendsubframes}
\end{description}
\begin{itemize}
\item options mutually exclusive
\item if both given $\to$ last one wins
\end{itemize}
\end{frame}

%-------------------------------------------------------------------------------
\subsection{Appending Subframes}
\begin{frame}{Usage -- Appending Subframes}
Add \texttt{\textbackslash appendsubframes} before \texttt{\textbackslash end\{document\}}

\vspace{2ex}
\begin{itemize}
\item no more subframes allowed after \texttt{\textbackslash appendsubframes}
\item \texttt{\textbackslash appendsubframes} only allowed once
\item restrictions not tested by package
\end{itemize}
\end{frame}

%-------------------------------------------------------------------------------
\subsection{Changes of Source}
\begin{frame}<1>[label=sourcechange]{Usage -- Changes of Source}
\begin{itemize}
\item<1-> For frames with details to be embbeded or appended conditionally,
      change to subframe environment (same options as frame environment)
      \beamerlinkdetailbutton<1>{sourcechange<2>}{Skip Source Example}{sourceenv}{Show Source Example}
\item<2-> Add labels to
      \begin{itemize}
      \item frame to skip or return to
      \item first subframe with details
      \end{itemize}
      \beamerlinkdetailbutton<2>{sourcechange<3>}{Skip Source Example}{sourcelabel}{Show Source Example}
\item<3-> Add conditional links/buttons to
      \begin{itemize}
      \item frame with details
      \item last subframe with details
      \end{itemize}
      \beamerlinkdetailbutton<3>{conditional}{Skip Source Example}{sourcelink}{Show Source Example}
\end{itemize}
\end{frame}

\begin{subframe}[label=sourceenv,fragile]{Source Example}{Changing Environment}
Change from
\begin{scriptsize}
\begin{verbatim}
    \begin{frame} ... options ...
    ... framecontents ...
    \end{frame}
\end{verbatim}
\end{scriptsize}
to
\begin{scriptsize}
\begin{verbatim}
    \begin{subframe} ... options ...
    ... framecontents ...
\end{verbatim}
\texttt{\hspace{2em}\textbackslash end\{subframe\}}
\end{scriptsize}

\vspace{1ex}
\beamerlinkbackbutton{sourcechange<2>}{Return from Source Example}
\end{subframe}

\againframe<2>{sourcechange}

\begin{subframe}[label=sourcelabel,fragile]{Source Example}{Adding Labels}
\begin{scriptsize}
\begin{verbatim}
    \begin{frame}
    ... 

    \begin{subframe}[label=detailsstart]
    ...

    \begin{subframe}
    ...

    \begin{frame}[label=skiptohere]
    ... 
\end{verbatim}
\end{scriptsize}
\beamerlinkbackbutton{sourcechange<3>}{Return from Source Example}
\end{subframe}

\againframe<3->{sourcechange}

\begin{subframe}[label=sourcelink,fragile]{Source Example}{Adding Buttons}
\begin{scriptsize}
\begin{verbatim}
    \begin{frame}
    ...
    \ifappend{... link to detailsstart ...}%
             {... link to skiptohere ...}
    ...
    \begin{subframe}[label=detailsstart]
    ...
    \begin{subframe}
    ...
    \ifappend{... link to skiptohere ...}{}
    ...
    \begin{frame}[label=skiptohere]
    ... 
\end{verbatim}
\end{scriptsize}
\beamerlinkbackbutton{conditional}{Return from Source Example}
\end{subframe}

%-------------------------------------------------------------------------------
\subsection{Conditional Execution}
\begin{frame}<1>[label=conditional,fragile]{Usage -- Conditional Execution}
Command:
\begin{scriptsize}
\begin{verbatim}
\ifappend{... executed if appended ...}%
         {... executed if embedded ...}
\end{verbatim}
\end{scriptsize}
\begin{itemize}
\item useful for conditional links or buttons
\item can be used in own commands
\end{itemize}
\end{frame}


%-------------------------------------------------------------------------------
%-------------------------------------------------------------------------------
\section{Additional Information}
\subsection{Restrictions}
\begin{frame}{Restrictions of Beamer SubFrame}
Additional restrictions to those already mentioned:
\begin{itemize}
\item no \texttt{\textbackslash subframe} command
\item no \texttt{\textbackslash againsubframe} command
\item appendix not tested
\item only tested with mode \texttt{beamer}
\item after errors \texttt{.nav} file has to be erased (sometimes)
\end{itemize}
\end{frame}

\begin{frame}{Themes used for Testing}
\begin{itemize}
\item Dresden
\item Berkeley
\item Montpellier
\item Malmoe
\item AnnArbor
\vspace{2ex}
\item no options used
\end{itemize}
\end{frame}

%-------------------------------------------------------------------------------
\subsection{Files}
\begin{frame}{Files generated by Beamer SubFrame}
\begin{description}
\item[\texttt{\textbackslash jobname.sfr}]
      contains subframes for appending
\item[\texttt{\textbackslash jobname.sfp}]
      contains information about subframes used for sidebar and miniframe navigation
\end{description}
\end{frame}

%-------------------------------------------------------------------------------
\subsection{Navigation}
\begin{frame}{Navigationbar}
\begin{itemize}
\item frames and slides in order of PDF file
\item section and subsection confusing on appended subframes
\item presentation leads to last frame in PDF
\item appendix not tested
\end{itemize}

\vspace{2ex}
Discussion necessary
\end{frame}

\begin{frame}{Sidebar and Miniframes}
\begin{itemize}
\item number and order of miniframes always as if subframes embedded
\item highlighting always as if subframes embedded
\end{itemize}
\end{frame}

%-------------------------------------------------------------------------------
\subsection{ToDo}
\begin{frame}{ToDo}
\begin{itemize}
\item proper manual
\item proper package
\item package documentation
\item more testing
\item fix navigationbar
\item enabling beamer modes
\item multiple levels of subframes (?)
\item \dots
\end{itemize}

\vspace{2ex}
But first lets talk about this package.
\end{frame}

%-------------------------------------------------------------------------------
%-------------------------------------------------------------------------------
%-------------------------------------------------------------------------------
\part{Implementation}
\section{How it works}
\subsection{In Embed Mode}
\begin{frame}
\frametitle{\texttt{subframe} Environment -- embedded}

\begin{itemize}
\item parses and stores frist three arguments (if there)
\item adds \texttt{environmet=subframe} to \texttt{\textit{options}}
\item calls \texttt{frame} environment with stored arguments
\end{itemize}

\beamerlinkdetailbutton{appended}{Skip Source}{envsource1}{Goto Source}
\end{frame}

\begin{subframe}[label=envsource1]
\frametitle{\texttt{subframe} Environment -- Source (1)}
(no source here, just for testing)
\end{subframe}

\begin{subframe}
\frametitle{\texttt{subframe} Environment -- Source (2)}
(no source here, just for testing)

\vspace{2ex}
\beamerlinkbackbutton{appended}{Return from Source}
\end{subframe}


%-------------------------------------------------------------------------------
\subsection{In Append Mode}
\begin{frame}[label=appended]
\frametitle{\texttt{subframe} Environment -- appended}

\begin{itemize}
\item \texttt{verbatim} environment
\item writes to \texttt{.sfr} file
      \begin{itemize}
      \item \texttt{\textbackslash beamerrestore}\dots
      \item \texttt{\textbackslash begin\{frame\}} with arguments
      \item contents
      \item \texttt{\textbackslash end\{frame\}}
      \end{itemize}
\item one file for all subframes
\end{itemize}

\beamerlinkdetailbutton{appending}{Skip Source}{envsource2}{Goto Source}
\end{frame}

\begin{subframe}[label=envsource2]
\frametitle{\texttt{subframe} Environment -- Source (3)}
(no source here, just for testing)
\end{subframe}

\begin{subframe}
\frametitle{\texttt{subframe} Environment -- Source (4)}
(no source here, just for testing)

\vspace{2ex}
\beamerlinkbackbutton{appending}{Return from Source}
\end{subframe}

%-------------------------------------------------------------------------------
\subsection{Appending Subframes}
\begin{frame}[label=appending]
\frametitle{Appending Subframes}
\begin{itemize}
\item does nothing in embed mode
\item in append mode
      \begin{itemize}
      \item closes \texttt{.sfr} file
      \item inputs \texttt{.sfr} file
      \end{itemize}
\end{itemize}

\beamerlinkdetailbutton{testframe}{Skip Source}{appendsource}{Goto Source}
\end{frame}

\begin{subframe}[label=appendsource]
\frametitle{Appending -- Source}
(no source here, just for testing)

\vspace{2ex}
\beamerlinkbackbutton{testframe}{Return from Source}
\end{subframe}

%-------------------------------------------------------------------------------
%-------------------------------------------------------------------------------
\section{Just a test section}
\begin{frame}[label=testframe]
\frametitle{Just a Test Frame}
(nothing here, just for testing)
\end{frame}

%-------------------------------------------------------------------------------
%-------------------------------------------------------------------------------
%-------------------------------------------------------------------------------
\beamerrestore{0}{0}{0}{0}{}{}
\begin{frame}
\begin{center}
Thanks for reading!

\vspace{4ex}
Thanks in advance for testing and feedback!
\end{center}
\end{frame}

\appendsubframes
\end{document}