Commits

Anonymous committed 89b2b25

Clicking current frame button will skip to the end of the frame

  • Participants
  • Parent commits 1790595

Comments (0)

Files changed (5)

 2003-10-16 Till Tantau <tantau@cs.tu-berlin.de>
 
 	Version 0.83:
-	- Wrote a better installation procedure.
+	- Improved the installation procedure documentation.
+	- Added a \pictureframe command for creating frames that are
+	  completely filled with a picture. Navigation bars are
+	  suppressed. 
+	- Clicking on the current frame icon will advance to last slide of
+	  the frame.
+	- Added nicer icons for the bibliography. These are now vector
+	  graphics that work nicely together with a background shading and
+	  can be zoomed arbitrarily.
 
 2003-10-13 Till Tantau <tantau@cs.tu-berlin.de>
 
 2)  Some themes more appropriate for presentations of lectures.
 3)  Use xcolor for better color management
 4)  Add an \appendix command.
-5)  Make "back jumps" jump to the last slide of a frame, not the first.
-6)  Make "click on current frame" toggle between last and first frame.
-7)  Explain in the user guide, how hyperref can be used to create
+5)  Explain in the user guide, how hyperref can be used to create
     non-linear talks.
-8)  Perhaps add an way of showing photos of the authors and the
+6)  Perhaps add an way of showing photos of the authors and the
     institutes in a convenient way.
-9)  Replace the bitmap icons for books and articles by beautiful
-    vector images. (Would someone like to volunteer?)
-10) Add a FAQ section in User guide.
-11) Make adding navigation buttons like a "back button" easy.
-12) Put internal macros in beamer.cls into a namespace
-13) "Cleanup" beamer.cls
+7)  Add a FAQ section in User guide.
+8)  Make adding navigation buttons like a "back button" easy.
+9)  Put internal macros in beamer.cls into a namespace
+10) "Cleanup" beamer.cls
 
   {\let\@elt\@restorecounter\@overlaycounterresets}
   \hypersetup{pdfpagetransition=R}%
   \serialnumber=#1\relax%
-  \ifnum\serialnumber=1\relax%
-  \refstepcounter{subsectionslide}%
-  \addtocontents{head}{\protect\headcommand{\protect\slideentry{\thesection}{\thesubsection}{\thesubsectionslide}{\thepage}{\lastsubsection}}}%
-  \fi\beamer@entrycode\vspace*{-\baselineskip}\vfill}%
-  {\beamer@exitcode\vskip0pt plus 1.5fill\clearpage}
+  \expandafter\@ifempty\expandafter{\beamer@framestartpage}{%
+    \refstepcounter{subsectionslide}%
+    \xdef\beamer@framestartpage{\thepage}% only first time
+  }{\clearpage% cleanup from previous slide
+  }%
+  \xdef\beamer@frameendpage{\thepage}% every time
+  \beamer@entrycode\vspace*{-\baselineskip}\vfill}%
+  {\beamer@exitcode\vskip0pt plus 1.5fill}
 
 \def\frametitle#1{%
   \vskip0pt plus -1fill%
 \def\@frame[#1]{%
   {\let\@elt\@savecounter\@overlaycounterresets}
   \gdef\insertframetitle{}%
+  \gdef\beamer@framestartpage{}%
   \gdef\@whichframes{#1}%
   \serialnumber=0\relax%
   \@anotherslidefalse%
 \def\@checknoslide{%
   \ifcat\bgroup\noexpand\@next%
   \let\@do\beamer@reseteecodes%
-  \else\let\@do\@singletoken\fi%
+  \else\let\@do\beamer@noframesingletoken\fi%
   \@do}
+\def\beamer@noframesingletoken{\@next\egroup\beamer@reseteecodes}
 
 \long\def\doseveralframes#1{%
   \@serialnumber=1\relax%
   \dowhat%
   \if@anotherslide
   \advance\@serialnumber by 1\relax
-  \repeat\beamer@reseteecodes}
+  \repeat%
+  \beamer@writeslidentry%
+  \beamer@reseteecodes}
 
 \def\dosingleframe{\begin{frameslide}[1]\bgroup\aftergroup\@endslide\afterassignment\@checkslide\let\@next}
 \def\@checkslide{%
   \ifcat\bgroup\noexpand\@next%
   \let\@do\relax%
-  \else\let\@do\@singletoken\fi%
+  \else\let\@do\beamer@singletoken\fi%
   \@do}
-\def\@endslide{\end{frameslide}\beamer@reseteecodes}
-\def\@singletoken{\@next\egroup\beamer@reseteecodes}
+\def\@endslide{\end{frameslide}\beamer@writeslidentry\beamer@reseteecodes}
+\def\beamer@singletoken{\@next\egroup}
+
+\def\beamer@writeslidentry{%
+  \expandafter\@ifempty\expandafter{\beamer@framestartpage}{}% nothing to do ...
+  {%else
+    \addtocontents{head}%
+    {\protect\headcommand{%
+        \protect\slideentry{\thesection}{\thesubsection}{\thesubsectionslide}{\beamer@framestartpage/\beamer@frameendpage}{\lastsubsection}}}%
+    \clearpage%
+  }
+}
+
 
 \def\beamer@reseteecodes{\gdef\beamer@entrycode{}\gdef\beamer@exitcode{}\pagestyle{navigation}\thispagestyle{navigation}}
 
 \newdimen\footheight
 
 \def\slideentry#1#2#3#4#5{%
-  %section number, subsection number, slide number, page number
+  %section number, subsection number, slide number, first/last frame page number
   \ifnum#2>0\ifnum#3>0%
   \hbox to 0pt{%
     \postemp=-#2\vboxoffset%
       \postemp=#3\boxsize%
       \advance\postemp by -\boxsize%
       \advance\postemp by 1pt%
-      \kern\postemp\hbox{\hyperlink{Navigation#4}{%
+      \kern\postemp\hbox{\beamer@link(#4){%
         \ifnum\thesection=#1\ifnum\thesubsection=#2\ifnum\thesubsectionslide=#3%
         \@minislidehilight\else\@minisliderowhilight\fi\else\@minislide\fi\else\@minislide\fi%
         }}}\hskip-10cm plus 1fil
   }\fi\fi\ignorespaces}
 
+\def\beamer@link(#1/#2){%
+  \def\beamer@goto{{Navigation#1}}% default: first slide of frame
+  \ifnum\thepage<#2%
+  \ifnum\thepage<#1\else% go to last slide of frame, on all slides of
+                                % the frame, except for the last one
+  \def\beamer@goto{{Navigation#2}}% jump to last slide of frame
+  \fi\fi%
+  \expandafter\hyperlink\beamer@goto}
+
+
 \long\def\useminislidetemplate#1#2#3#4#5{\def\@minislidehilight{#1}\def\@minisliderowhilight{#2}\def\@minislide{#3}
 \boxsize=#4\vboxoffset=#5}
 
         \ifnum##2=\currentsubsection%
         \advance\currentsubsection by1%
         \def\insertsubsectionhead{##5}%
-        \setbox\tempbox=\hbox{\hyperlink{Navigation##4}{%
+        \setbox\tempbox=\hbox{\beamer@link(##4){%
           \hbox to #1{\hskip0.3cm\ifnum\thesubsection=##2%
           \@subsectionheadhilight\else\@subsectionheadnohilight\fi\hfil\hskip0.3cm}}}%
         \ht\tempbox=4.5pt\dp\tempbox=2pt%
 %
 %
 
-\newenvironment{columns}{\leavevmode\hskip-\Geom@lmargin\nobreak\hbox to\paperwidth\bgroup\hbox{}\hfill\ignorespaces}{\egroup\nobreak\hskip-\Geom@rmargin}
-\newenvironment{columnsonlytextwidth}{\leavevmode\hbox to\textwidth\bgroup\ignorespaces}{\unskip\egroup}
+\newenvironment{columns}{%
+  \leavevmode%
+  \hskip-\Geom@lmargin%
+  \nobreak%
+  \hbox to\paperwidth\bgroup%
+  \hbox{}\hfill\ignorespaces}%
+  {\egroup%
+    \nobreak%
+    \hskip-\Geom@rmargin}
+  
+\newenvironment{columnsonlytextwidth}%
+  {\leavevmode\hbox to\textwidth\bgroup\ignorespaces}
+  {\unskip\egroup}
 
 \newenvironment{column}[1]{%
   \begin{minipage}[c]{#1}%

File doc/beamerexample.pdf

Binary file modified.

File doc/beamerexample.tex

 
 
 % Try this:
-\beamertemplateshadingbackground{1,0.9,0.9}{0.9,0.9,1}
+%\beamertemplateshadingbackground{1,0.9,0.9}{0.9,0.9,1}
 
 \begin{document}