doc-src/TutorialI/Overview/Slides/prosper.cls
changeset 48609 0090fab725e3
parent 48608 88ff12baccba
child 48610 0095de9e9da0
equal deleted inserted replaced
48608:88ff12baccba 48609:0090fab725e3
     1 %==============================================================================
       
     2 % Prosper -- (prosper.cls) Class file
       
     3 % A LaTeX class for creating slides
       
     4 % Author: Frederic Goualard (Frederic.Goualard@cwi.nl)
       
     5 %         Centrum voor Wiskunde en Informatica
       
     6 %         Amsterdam, The Netherlands
       
     7 %
       
     8 % Copyright (c) 2000 Frederic Goualard
       
     9 % All rights reserved.
       
    10 % 
       
    11 % Permission is hereby granted, without written agreement and without
       
    12 % license or royalty fees, to use, copy, modify, and distribute this
       
    13 % software and its documentation for any purpose, provided that the
       
    14 % above copyright notice and the following two paragraphs appear in
       
    15 % all copies of this software.
       
    16 % 
       
    17 % IN NO EVENT SHALL THE AUTHOR BE LIABLE TO ANY PARTY FOR DIRECT, INDIRECT, 
       
    18 % SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OF 
       
    19 % THIS SOFTWARE AND ITS DOCUMENTATION, EVEN IF THE AUTHOR HAS BEEN ADVISED 
       
    20 % OF THE POSSIBILITY OF SUCH DAMAGE.
       
    21 % 
       
    22 % THE AUTHOR SPECIFICALLY DISCLAIMS ANY WARRANTIES,
       
    23 % INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY
       
    24 % AND FITNESS FOR A PARTICULAR PURPOSE.  THE SOFTWARE PROVIDED HEREUNDER IS
       
    25 % ON AN "AS IS" BASIS, AND THE AUTHOR HAS NO OBLIGATION TO
       
    26 % PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS.
       
    27 %
       
    28 %==============================================================================
       
    29 
       
    30 \def\Prosper@Version{1.1}
       
    31 \NeedsTeXFormat{LaTeX2e}[1995/12/01]
       
    32 \ProvidesClass{prosper}[2001/01/23, v. \Prosper@Version]
       
    33 \typeout{(c) 2000 Frederic Goualard, CWI, The Netherlands}
       
    34 \typeout{ }
       
    35 
       
    36 \newif\ifDVItoPS
       
    37 \DeclareOption{ps}{\global\DVItoPStrue}
       
    38 \DeclareOption{pdf}{\global\DVItoPSfalse}
       
    39 
       
    40 \newif\ifisDraft
       
    41 \DeclareOption{draft}{\global\isDrafttrue%
       
    42   \PassOptionsToClass{draft}{seminar}}
       
    43 \DeclareOption{final}{\global\isDraftfalse%
       
    44   \PassOptionsToClass{final}{seminar}}
       
    45 
       
    46 \newif\ifinColor
       
    47 \DeclareOption{slideColor}{\global\inColortrue}
       
    48 \DeclareOption{slideBW}{\global\inColorfalse}
       
    49 
       
    50 \newif\ifallPages
       
    51 \DeclareOption{total}{\global\allPagestrue}
       
    52 \DeclareOption{nototal}{\global\allPagesfalse}
       
    53 
       
    54 \newif\ifcolorBG
       
    55 \DeclareOption{nocolorBG}{\global\colorBGfalse}
       
    56 \DeclareOption{colorBG}{\global\colorBGtrue}
       
    57 
       
    58 \newif\ifAccumulate
       
    59 \DeclareOption{accumulate}{\global\Accumulatetrue}
       
    60 \DeclareOption{noaccumulate}{\global\Accumulatefalse}
       
    61 
       
    62 \newif\if@distiller
       
    63 \@distillerfalse
       
    64 \DeclareOption{distiller}{\global\@distillertrue}
       
    65 
       
    66 \DeclareOption{YandY}{\gdef\@pdf@driver{dvipsone}}
       
    67 \DeclareOption{ps2pdf}{\gdef\@pdf@driver{ps2pdf}}
       
    68 
       
    69 %% Default style file = default
       
    70 \def\Style@chosen{default}
       
    71 \DeclareOption*{\global\let\Style@chosen=\CurrentOption}
       
    72 
       
    73 \ExecuteOptions{final,slideBW,total,nocolorBG,noaccumulate,ps,ps2pdf}
       
    74 \ProcessOptions\relax
       
    75 
       
    76 \LoadClass[portrait,semlayer,semcolor,leqno]{seminar}
       
    77 \RequirePackage{graphicx}
       
    78 \RequirePackage[\@pdf@driver,bookmarks,%
       
    79                 a4paper,%
       
    80 %                pdfmenubar=false,%
       
    81                 pdfhighlight=/I,%
       
    82 %                pdftoolbar=false,%
       
    83                 pdffitwindow=true,%
       
    84                 pdfcenterwindow=true,%
       
    85 %                pdfwindowui=false,%
       
    86                 menucolor=menucolor,%
       
    87 %                pdfview=Fit,%
       
    88                 pdfstartview=Fit]{hyperref}
       
    89 \RequirePackage{ifthen}
       
    90 
       
    91 \rotateheaderstrue
       
    92 \slidewidth=222mm
       
    93 \slideheight=150mm
       
    94 \renewcommand{\slideleftmargin}{0.01in}
       
    95 
       
    96 
       
    97 % Add a bookmark for each master slide
       
    98 \def\@addBookmarkOnSlide#1{%
       
    99   \def\Hy@temp{#1} 
       
   100     \pdfmark{pdfmark=/OUT,
       
   101       Raw={/Page \thetrueSlideCounter /View [ /XYZ null null null ]
       
   102         /Title (\expandafter\strip@prefix\meaning\Hy@temp)}
       
   103     }
       
   104 }
       
   105 
       
   106 %% Some code to be added when creating a PDF file
       
   107 \def\Cropping@Box{0 0 595 890} % By default: cropping to a4 paper dimensions
       
   108 \ifDVItoPS
       
   109 \else
       
   110   \AtEndOfClass{%
       
   111     \hypersetup{pdfpagescrop=\Cropping@Box}
       
   112   }
       
   113 \if@distiller
       
   114 \else
       
   115   \AtBeginDvi{%
       
   116       \pdfmark{pdfmark=/PAGES,
       
   117         Raw={/Rotate 90}}
       
   118   }
       
   119 \fi
       
   120 \fi
       
   121 \newcommand{\PDFCroppingBox}[1]{%
       
   122   \gdef\Cropping@Box{#1}
       
   123   }
       
   124 
       
   125 %% PDFtransition
       
   126 %% Transition from one page to another.
       
   127 %% Possible values:
       
   128 %%       (Split, Blinds, Box, Wipe, Dissolve, Glitter, R)
       
   129 \def\Split{} \def\Blinds{} \def\Box{} \def\Wipe{} \def\Dissolve{}
       
   130 \def\Glitter{} \def\R{} \def\Replace{}
       
   131 \newcommand{\PDFtransition}[1]{%
       
   132   \@ifundefined{#1}
       
   133   {%
       
   134     \ClassError{prosper}{Undefined transition #1}{%
       
   135       Possible values: Split, Blinds, Box, Wipe, Dissolve, Glitter, R}}
       
   136   {%
       
   137    \hypersetup{pdfpagetransition={#1}}
       
   138   }
       
   139 }
       
   140 
       
   141 %% Default transition between pages (for values, see \PDFtransition)
       
   142 \def\@defaultTransition{R}
       
   143 \newcommand{\DefaultTransition}[1]{\gdef\@defaultTransition{#1}}
       
   144 
       
   145 
       
   146 \newcommand{\@cartouche}{.}
       
   147 %% \slideCaption : Definition of caption to appear on every slide.
       
   148 \newcommand{\slideCaption}[1]{\gdef\@cartouche{#1}}
       
   149 
       
   150 %%-----------------------------------------------------------------------------
       
   151 %% Definitions for fonts and colors
       
   152 %% #1: font and color if slide in color
       
   153 %% #2: font and color if slide in BW
       
   154 \def\@fontTitleColor{\ClassError{prosper}{%
       
   155     no font specified for title in color}{Use macro \string\FontTitle}}
       
   156 \def\@fontTitleBW{\ClassError{prosper}{%
       
   157     no font specified for title in B\string&W}{Use macro \string\FontTitle}}
       
   158 \def\@fontSubtitleColor{\@fontTitleColor\fontsize{16pt}{16pt}\selectfont\itshape}
       
   159 \def\@fontSubtitleBW{\@fontTitleBW\fontsize{14pt}{16pt}\selectfont\itshape}
       
   160 \def\@fontTextColor{\ClassError{prosper}{%
       
   161     no font specified for texte in color}{Use macro \string\FontText}}
       
   162 \def\@fontTextBW{\ClassError{prosper}{%
       
   163     no font specified for text in B\string&W}{Use macro \string\FontText}}
       
   164 \def\@colorFoot{\black}
       
   165 \newcommand{\FontTitle}[2]{
       
   166   \gdef\@fontTitleColor{#1} 
       
   167   \gdef\@fontTitleBW{#2}}
       
   168 \newcommand{\FontSubtitle}[2]{
       
   169   \gdef\@fontSubtitleColor{#1} 
       
   170   \gdef\@fontSubtitleBW{#2}}
       
   171 \newcommand{\FontText}[2]{
       
   172   \gdef\@fontTextColor{#1} 
       
   173   \gdef\@fontTextBW{#2}}
       
   174 \newcommand{\ColorFoot}[1]{\gdef\@colorFoot{#1}}
       
   175 
       
   176 \newcommand{\fontTitle}[1]{%
       
   177   {\ifinColor\@fontTitleColor\else\@fontTitleBW\fi #1}}
       
   178 \newcommand{\fontText}[1]{%
       
   179   {\ifinColor\@fontTextColor\else\@fontTextBW\fi #1}}
       
   180 %%- End of definitions for fonts and colors -----------------------------------
       
   181 
       
   182 % Width of the text area
       
   183 \newlength{\slideWidth}
       
   184 
       
   185 \def\@titleSpacing{\vspace*{10pt}}
       
   186 \newcommand{\titleSpacing}[1]{\gdef\@titleSpacing{#1}}
       
   187 
       
   188 %% Redefinition of the slide environment
       
   189 \newcounter{trueSlideCounter}
       
   190 \def\thetrueslideCounter{\arabic{trueSlideCounter}}
       
   191 \let\slide@seminar=\slide
       
   192 \let\endslide@seminar=\endslide
       
   193 \let\slide=\relax
       
   194 \let\endslide=\relax
       
   195 \newenvironment{SlideNormal}[2][\@defaultTransition]{%
       
   196   \StepCounter{trueSlideCounter}
       
   197   \PDFtransition{#1}%
       
   198   \begin{slide@seminar}
       
   199     \ifx#2@
       
   200     \else
       
   201        \@addBookmarkOnSlide{#2}
       
   202        \slidetitle{#2}
       
   203     \fi
       
   204     \begin{posit@Box}
       
   205       \begin{minipage}{\slideWidth}    
       
   206         \begin{raggedright}
       
   207         \@DefMyItem
       
   208         \ifinColor\@fontTextColor\else\@fontTextBW\fi
       
   209         }{%
       
   210       \end{raggedright}
       
   211     \end{minipage}\end{posit@Box}\end{slide@seminar}}
       
   212 % Slides in overlays
       
   213 \newenvironment{SlideOverlay}[2][\@defaultTransition]{%
       
   214   \ifDVItoPS
       
   215       \begin{slide@seminar}
       
   216         \slidetitle{#2}
       
   217         \begin{posit@Box}
       
   218           \begin{minipage}{\slideWidth}
       
   219             \begin{raggedright}
       
   220             \@DefMyItem
       
   221             \ifinColor\@fontTextColor\else\@fontTextBW\fi
       
   222   \else %% DVI -> PDF
       
   223       \StepCounter{trueSlideCounter}
       
   224       \PDFtransition{#1}%
       
   225       \begin{slide@seminar}
       
   226         \ifx#2@
       
   227         \else
       
   228           \@ifundefined{@okForBookmark}{%
       
   229             \gdef\@okForBookmark{}
       
   230             \@addBookmarkOnSlide{#2}
       
   231           }{\relax}
       
   232           \slidetitle{#2}
       
   233         \fi
       
   234         \begin{posit@Box}
       
   235           \begin{minipage}{\slideWidth} 
       
   236             \begin{raggedright}
       
   237             \@DefMyItem
       
   238             \ifinColor\@fontTextColor\else\@fontTextBW\fi
       
   239   \fi    
       
   240   }{%
       
   241   \ifDVItoPS
       
   242         \end{raggedright}
       
   243       \end{minipage}\end{posit@Box}\end{slide@seminar}%
       
   244   \else %% DVI -> PDF
       
   245         \end{raggedright}
       
   246       \end{minipage}\end{posit@Box}\end{slide@seminar}
       
   247         \addtocounter{slide}{-1}%
       
   248   \fi
       
   249 }
       
   250 \let\slide=\SlideNormal
       
   251 \let\endslide=\endSlideNormal
       
   252 
       
   253 \newcommand{\NewSlideStyle}[4][11cm]{%
       
   254   \setlength{\slideWidth}{#1}
       
   255   \global\pslongbox{posit@Box}{\rput[#2](#3)}
       
   256   \newslideframe{the#4}{\csname #4\endcsname{##1}}
       
   257   \slidepagestyle{GenericPageStyle}
       
   258   \slideframe{the#4}
       
   259 }
       
   260 
       
   261 
       
   262 % Definition of the bullet for itemize env.
       
   263 \def\@prosperItemi{{\scriptsize\green%
       
   264       \raisebox{2pt}{\ensuremath{\bullet}}}}
       
   265 \def\@prosperItemii{{\scriptsize\green%
       
   266       \raisebox{2pt}{\ensuremath{\bullet}}}}
       
   267 \def\@prosperItemiii{{\scriptsize\green%
       
   268       \raisebox{2pt}{\ensuremath{\bullet}}}}
       
   269 \newcommand{\myitem}[2]{%
       
   270   \ifnum#1=1 
       
   271     \gdef\@prosperItemi{#2}
       
   272   \else
       
   273     \ifnum#1=2
       
   274        \gdef\@prosperItemii{#2}
       
   275     \else
       
   276        \ifnum#1=3
       
   277           \gdef\@prosperItemiii{#2}
       
   278        \else
       
   279           \ClassError{prosper}{Undefined item level}{Available levels: 1,2,3}
       
   280        \fi
       
   281     \fi
       
   282   \fi
       
   283 }
       
   284 
       
   285 \def\@DefMyItem{%
       
   286   \global\let\labelitemi=\@prosperItemi
       
   287   \global\let\labelitemii=\@prosperItemii
       
   288   \global\let\labelitemiii=\@prosperItemiii
       
   289 }
       
   290 
       
   291 %% displaying of a logo (to be defined in every style)
       
   292 \newcommand{\LogoPosition}[1]{\gdef\@PosLogo{#1}}
       
   293 \def\@PosLogo{\ClassError{prosper}{no default position for positioning the logo given}{Use macro \string\LogoPosition\space in the style file}}
       
   294 \gdef\@thelogo{.}
       
   295 \newcommand{\Logo}{%
       
   296     \@ifnextchar({\Logo@one}{\Logo@two}
       
   297 }
       
   298 \def\Logo@one(#1)#2{%
       
   299   \gdef\@PosLogo{#1}
       
   300   \gdef\@thelogo{#2}
       
   301 }
       
   302 \def\Logo@two#1{%
       
   303   \gdef\@thelogo{#1}
       
   304 }
       
   305 
       
   306 \newcommand{\PutLogo}{%
       
   307   \if\@thelogo.\else\rput[lb](\@PosLogo){\@thelogo}\fi
       
   308 }
       
   309 
       
   310 \expandafter\ifx\csname realpageref\endcsname\relax%
       
   311   \gdef\realpageref#1{\expandafter\real@setref
       
   312     \csname r@#1\endcsname\@secondoffive{#1}}
       
   313 \else 
       
   314   \relax 
       
   315 \fi
       
   316 
       
   317 \newpagestyle{GenericPageStyle}{\hfill }{\hfill%
       
   318   \ifisDraft
       
   319  {\@colorFoot\tiny \textbf{\jobname.tex}~--~\@Title~--~\@Author~--~\number\day/\number\month/\number\year~--~\timenow~--~p.\thepage\ifallPages/\realpageref{last@page}\fi}
       
   320   \else
       
   321   \ifshowVersion
       
   322  {\@colorFoot\tiny \textbf{\jobname.tex}~--~\@Title~--~\@Author~--~\number\day/\number\month/\number\year~--~\timenow~--~p.\thepage\ifallPages/\realpageref{last@page}\fi}
       
   323   \else
       
   324   {\@colorFoot\tiny \@cartouche~--~p.\thepage\ifallPages/\realpageref{last@page}\fi}
       
   325   \fi\fi
       
   326 }
       
   327 
       
   328 \IfFileExists{PPR\Style@chosen.sty}{%
       
   329   \RequirePackage{PPR\Style@chosen}
       
   330 }{\ClassError{prosper}{unknown Prosper style file: PPR\Style@chosen.sty}{%
       
   331   Sorry, no additional help}}
       
   332 
       
   333 
       
   334 \def\nobabel{%
       
   335 \let\labelitemi\@ltiORI%
       
   336 \let\labelitemii\@ltiiORI%
       
   337 \let\labelitemiii\@ltiiiORI%
       
   338 \let\labelitemiv\@ltivORI}
       
   339 
       
   340 % A new itemize environment that does not attempt to justify sentences
       
   341 \let\Itemize=\itemize
       
   342 \let\endItemize=\enditemize
       
   343 \renewenvironment{itemize}{\begin{Itemize}\begin{raggedright}}{%
       
   344       \end{raggedright}\end{Itemize}}
       
   345 
       
   346 % itemstep : itemize environment with step-by-step displaying
       
   347 % Warning: no nesting allowed
       
   348 \newcounter{item@step}
       
   349 \newenvironment{itemstep}{%
       
   350   \let\old@item=\item
       
   351   \begin{itemize}%
       
   352     
       
   353     \def\item{\StepCounter{item@step}%
       
   354       \FromSlide{\theitem@step}\old@item}
       
   355     }{\end{itemize}\setcounter{item@step}{0}}
       
   356 
       
   357 %% Displaying the version caption
       
   358 \newif\ifshowVersion
       
   359 \showVersionfalse
       
   360 \newcommand{\displayVersion}{\global\showVersiontrue}
       
   361 
       
   362 \newcommand{\timenow}{%
       
   363   \@tempcnta=\time \divide\@tempcnta by 60 \number\@tempcnta:\multiply
       
   364   \@tempcnta by 60 \@tempcntb=\time \advance\@tempcntb by -\@tempcnta
       
   365   \ifnum\@tempcntb <10 0\number\@tempcntb\else\number\@tempcntb\fi}
       
   366 
       
   367 \newcommand{\lastpage@putlabel}{\addtocounter{page}{-1}%
       
   368    \immediate\write\@auxout{\string
       
   369    \newlabel{last@page}{{}{\theslide}{\relax }{}{}}}%
       
   370    \addtocounter{page}{1}}
       
   371 \AtEndDocument{\ifallPages\clearpage\lastpage@putlabel\fi}
       
   372 
       
   373 \newcommand{\@Subtitle}{.}
       
   374 \newcommand{\subtitle}[1]{\gdef\@Subtitle{#1}}
       
   375 \renewcommand{\title}[1]{\gdef\@Title{#1}%
       
   376   \if\@cartouche.\gdef\@cartouche{#1}\fi}
       
   377 \renewcommand{\author}[1]{\gdef\@Author{#1}}
       
   378 
       
   379 \newcommand{\@email}{.}
       
   380 \newcommand{\email}[1]{\gdef\@email{#1}}
       
   381 
       
   382 %\newcommand{\@institution}{.}
       
   383 \newcommand{\institution}[1]{\gdef\@institution{#1}}
       
   384 
       
   385 \renewcommand{\maketitle}{
       
   386   %% Tests whether the 'french' style from B. Gaulle is loaded
       
   387   \expandafter\ifx\csname frenchTeXmods\endcsname\relax%
       
   388   \else 
       
   389   \PackageWarning{prosper}{This page intentionnally left blank to overcome an incompatibility bug between B. Gaulle 'french' package and the seminar class.}
       
   390   \begin{center}
       
   391     {\black\small
       
   392   \textsf{prosper} class: page intentionnally left blank to overcome an incompatibility bug between B. Gaulle 'french' package and the seminar class.}
       
   393   \end{center}
       
   394   \clearpage \setcounter{page}{0}
       
   395   \fi
       
   396   \begin{slide}{@}
       
   397     \ptsize{10}
       
   398     \begin{center}
       
   399     \@titleSpacing
       
   400     \normalfont
       
   401     {\ifinColor\@fontTitleColor\else\@fontTitleBW\fi\@Title}
       
   402     \if\@Subtitle.\else
       
   403 
       
   404     {\ifinColor\@fontSubtitleColor\else\@fontSubtitleBW\fi\@Subtitle}
       
   405     \fi
       
   406 
       
   407     \vskip.5em
       
   408     \@Author
       
   409 
       
   410     \if\@email.\else
       
   411     \vskip-5pt
       
   412     {\fontsize{7}{7}\selectfont\texttt{\@email}}
       
   413     \fi
       
   414     \expandafter\ifx\csname @institution\endcsname\relax %
       
   415     \else
       
   416     \vskip.8em
       
   417     \@institution
       
   418     \fi
       
   419     \vfill
       
   420     \end{center}
       
   421   \end{slide}
       
   422 }
       
   423 
       
   424 %% Overlays environment
       
   425 \newcounter{overlay@page}
       
   426 \newenvironment{Overlays}{%
       
   427   \global\let\slide\SlideOverlay
       
   428   \global\let\endslide\endSlideOverlay
       
   429   \setcounter{overlay@page}{\value{slide}}}{%
       
   430   \global\let\slide\SlideNormal
       
   431   \global\let\endslide\endSlideNormal
       
   432   \global\let\@okForBookmark\relax
       
   433   \setcounter{slide}{\value{overlay@page}}\StepCounter{slide}}
       
   434 
       
   435 % overlays environment
       
   436 % Parameter: # of slides in the overlay
       
   437 % slide 0 is the one for PostScript file
       
   438 \newbox\theoverlays
       
   439 \newcounter{overlaysCount}
       
   440 \newcounter{limitOverlays}
       
   441 
       
   442 % fromSlide, onlySlide, untilSlide
       
   443 % Masks or not the parameter. 
       
   444 % The stared version does not advance the position pointer and does not
       
   445 % interpret its argument (to be used for graphics and commands containing
       
   446 % PStricks links)
       
   447 \long\def\fromSlide{%
       
   448   \@ifnextchar *\fromSlide@E\fromSlide@NE
       
   449 }
       
   450 \long\def\fromSlide@NE#1#2{%
       
   451   \ifDVItoPS
       
   452     \ifAccumulate
       
   453       #2
       
   454     \fi
       
   455   \else
       
   456     \ifnum#1>\value{overlaysCount}
       
   457       {\overlay{1}#2}
       
   458     \else
       
   459       #2
       
   460     \fi
       
   461   \fi
       
   462 }
       
   463 
       
   464 \long\def\fromSlide@E*#1#2{%
       
   465 \ifDVItoPS
       
   466     \ifAccumulate
       
   467       #2
       
   468     \fi
       
   469 \else
       
   470   \ifnum#1>\value{overlaysCount}
       
   471     \relax
       
   472   \else
       
   473     #2
       
   474   \fi
       
   475 \fi
       
   476 }
       
   477 
       
   478 \long\def\untilSlide{%
       
   479   \@ifnextchar *\untilSlide@E\untilSlide@NE
       
   480 }
       
   481 \long\def\untilSlide@NE#1#2{%
       
   482 \ifDVItoPS
       
   483     \ifAccumulate
       
   484       #2
       
   485     \fi
       
   486 \else
       
   487   \ifnum#1<\value{overlaysCount}
       
   488     {\overlay{1}#2}
       
   489   \else
       
   490     #2
       
   491   \fi
       
   492 \fi
       
   493 }
       
   494 \long\def\untilSlide@E*#1#2{%
       
   495 \ifDVItoPS
       
   496     \ifAccumulate
       
   497       #2
       
   498     \fi
       
   499 \else
       
   500   \ifnum#1<\value{overlaysCount}
       
   501     \relax
       
   502   \else 
       
   503     #2
       
   504   \fi
       
   505 \fi
       
   506 }
       
   507 
       
   508 \long\def\onlySlide{%
       
   509   \@ifnextchar *\onlySlide@E\onlySlide@NE
       
   510 }
       
   511 \long\def\onlySlide@NE#1#2{%
       
   512 \ifDVItoPS
       
   513     \ifAccumulate
       
   514       #2
       
   515     \fi
       
   516 \else
       
   517   \ifnum#1=\value{overlaysCount}
       
   518     #2
       
   519   \else
       
   520     {\overlay{1}#2}
       
   521   \fi
       
   522 \fi
       
   523 }
       
   524 \long\def\onlySlide@E*#1#2{%
       
   525 \ifDVItoPS
       
   526     \ifAccumulate
       
   527       #2
       
   528     \fi
       
   529 \else
       
   530   \ifnum#1=\value{overlaysCount}
       
   531     #2
       
   532   \fi
       
   533 \fi
       
   534 }
       
   535 
       
   536 
       
   537 % FromSlide, OnlySlide, UntilSlide
       
   538 % Masks or not the following material. Advances the position pointer
       
   539 \newcommand{\FromSlide}[1]{%
       
   540 \ifDVItoPS
       
   541 \else
       
   542   \ifnum#1>\value{overlaysCount}
       
   543     \overlay{1}
       
   544   \fi
       
   545 \fi
       
   546 }
       
   547 \newcommand{\UntilSlide}[1]{%
       
   548 \ifDVItoPS
       
   549 \else
       
   550   \ifnum#1<\value{overlaysCount}
       
   551     \overlay{1}
       
   552   \fi
       
   553 \fi
       
   554 }
       
   555 \newcommand{\OnlySlide}[1]{%
       
   556 \ifDVItoPS
       
   557 \else
       
   558   \ifnum#1=\value{overlaysCount}
       
   559   \else
       
   560     \overlay{1}
       
   561   \fi
       
   562 \fi
       
   563 }
       
   564 
       
   565 % Overlays. Parameter to state the number of slides composing the overlay
       
   566 %\def\stepcounter#1{%
       
   567 %  \ifInOverlays
       
   568 %    \ifnum\value{overlayscount}<2
       
   569 %    \else
       
   570 %      \addtocounter{#1}\@ne
       
   571 %    \fi
       
   572 %  \else
       
   573 %    \addtocounter{#1}\@ne
       
   574 %  \fi
       
   575 %  \begingroup
       
   576 %    \let\@elt\@stpelt
       
   577 %    \csname cl@#1\endcsname
       
   578 %  \endgroup
       
   579 %}
       
   580 
       
   581 \newif\ifInOverlays
       
   582 \InOverlaysfalse
       
   583 \long\def\overlays#1#2{%
       
   584   \global\InOverlaystrue
       
   585   \aftergroup\InOverlaysfalse
       
   586   \setcounter{limitOverlays}{#1}
       
   587   \setcounter{overlaysCount}{1}
       
   588   \ifDVItoPS
       
   589     #2
       
   590   \else
       
   591     \begin{Overlays}
       
   592     \bgroup  
       
   593     \loop 
       
   594       #2
       
   595     \ifnum\value{overlaysCount}<\value{limitOverlays} 
       
   596       \StepCounter{overlaysCount}
       
   597     \repeat
       
   598     \egroup
       
   599     \end{Overlays}
       
   600   \fi
       
   601 }
       
   602 
       
   603 \def\@listctr{}
       
   604 \AtBeginDocument{%
       
   605   {\begingroup \escapechar\m@ne\xdef\@gtempa{{\string\reset@color}}\endgroup
       
   606     \expandafter\@ifundefined\@gtempa\relax{%
       
   607       \global\let\orig@reset@color=\reset@color
       
   608       \gdef\reset@color{\orig@reset@color\pst@endcolor}}}
       
   609  \let\Label=\label
       
   610  \def\label#1{%
       
   611    \ifInOverlays
       
   612      \ifnum\value{overlaysCount}>1
       
   613      \else
       
   614        \Label{#1}
       
   615      \fi
       
   616    \fi
       
   617    }
       
   618  % For amsmath environments
       
   619  \let\Label@in@display=\label@in@display
       
   620  \def\label@in@display#1{
       
   621    \ifInOverlays
       
   622      \ifnum\value{overlaysCount}>1
       
   623      \else
       
   624        \Label@in@display{#1}
       
   625      \fi
       
   626    \fi
       
   627    }
       
   628 
       
   629   \let\overlay@loop=\relax
       
   630   \let\StepCounter=\stepcounter
       
   631   \def\RefStepCounter#1{\StepCounter{#1}%
       
   632     \protected@edef\@currentlabel
       
   633      {\csname p@#1\endcsname\csname the#1\endcsname}%
       
   634   }
       
   635   \def\stepcounter#1{%
       
   636     \ifInOverlays
       
   637       \ifthenelse{\equal{#1}{slide}}{
       
   638          \StepCounter{#1}}{
       
   639          \ifthenelse{\equal{#1}{\@listctr}}{
       
   640             \StepCounter{#1}}{
       
   641          \ifnum\value{overlaysCount}>1
       
   642          \else
       
   643            \StepCounter{#1}
       
   644          \fi}}
       
   645     \else
       
   646       \StepCounter{#1}
       
   647     \fi}
       
   648 % Macro \overlay taken from semlayer.sty
       
   649 \def\overlay#1{%
       
   650   \ifoverlays\ifx\@overlay\relax\nooverlays@err\fi\fi
       
   651   \ifslide
       
   652     \@tempcnta=#1
       
   653     \@testfalse
       
   654     \ifnum\@tempcnta>-1 \ifnum\@tempcnta<10 \@testtrue\fi\fi
       
   655     \if@test
       
   656       \c@overlay=\@tempcnta
       
   657       \ifnum\c@overlay=0
       
   658         \advance\c@slide by -1
       
   659         \RefStepCounter{slide}%
       
   660       \else
       
   661         \advance\c@overlay by -1
       
   662         \RefStepCounter{overlay}%
       
   663         \ifoverlays
       
   664           \xdef\overlay@list{\overlay@list,\the\c@overlay}%
       
   665         \fi
       
   666       \fi
       
   667       \ifoverlays
       
   668         \@overlay{\the\c@overlay}%
       
   669       \fi
       
   670     \else
       
   671       \@seminarerr{\string\overlay\space argument must be
       
   672         an integer between 0 and 9}\@eha
       
   673     \fi
       
   674   \else
       
   675     \@seminarerr{\string\overlay\space can only be used
       
   676       in slide environments}\@eha
       
   677   \fi
       
   678   \ignorespaces}
       
   679 
       
   680 } % AtBeginDocument
       
   681 
       
   682 
       
   683 % \part
       
   684 \let\part=\relax
       
   685 \newcommand{\part}[2][\@defaultTransition]{%
       
   686   \begin{slide}[#1]{@}%
       
   687     \vspace*{1.5cm}\@addBookmarkOnSlide{#2}
       
   688     \begin{center}
       
   689       \fontTitle{#2}
       
   690     \end{center}
       
   691   \end{slide}}
       
   692 
       
   693 % Uses #1 if PDF option, otherwise #2
       
   694 \newcommand{\PDForPS}[2]{%
       
   695   \ifDVItoPS
       
   696     #2
       
   697   \else
       
   698     #1
       
   699   \fi
       
   700 }
       
   701 
       
   702 % #1 appears on the slide only on PS mode
       
   703 \newcommand{\onlyInPS}[1]{\ifDVItoPS #1\fi}
       
   704 % #1 appears on the slide only on PDF mode
       
   705 \newcommand{\onlyInPDF}[1]{\ifDVItoPS\relax\else #1\fi}
       
   706 
       
   707 
       
   708 
       
   709 % To be used in conjunction with babel/french to allow ones own labels
       
   710 \def\NoFrenchBabelItemize{%
       
   711 \AtBeginDocument{%
       
   712 \renewenvironment{itemize}%
       
   713 {\ifnum \@itemdepth >\thr@@\@toodeep\else
       
   714     \advance\@itemdepth\@ne
       
   715     \edef\@itemitem{labelitem\romannumeral\the\@itemdepth}%
       
   716     \expandafter
       
   717     \list
       
   718       \csname\@itemitem\endcsname%
       
   719     {\let\@trivlist\@trivlistORI
       
   720       \settowidth{\labelwidth}{\textendash}%
       
   721       \setlength{\leftmargin}{\labelwidth}%
       
   722       \addtolength{\leftmargin}{\labelsep}%
       
   723       \ifnum\@listdepth=0
       
   724       \setlength{\itemindent}{\parindent}%
       
   725       \else
       
   726       \addtolength{\leftmargin}{\parindent}%
       
   727       \fi
       
   728       \setlength{\itemsep}{\z@}%
       
   729       \setlength{\parsep}{\z@}%
       
   730       \setlength{\topsep}{\z@}%
       
   731       \setlength{\partopsep}{\z@}%
       
   732       \addtolength{\topsep}{-\parskip}%
       
   733       \addtolength{\partopsep}{\parskip}%
       
   734       }%
       
   735     \fi}%
       
   736  {\endlist}
       
   737 }}
       
   738 
       
   739 \ptsize{14}
       
   740 
       
   741 \endinput
       
   742 
       
   743 %%% Local Variables: 
       
   744 %%% mode: latex
       
   745 %%% TeX-master: t
       
   746 %%% End: