1 |
mmeineke |
54 |
%%============================================================================= |
2 |
|
|
%% prosper.cls |
3 |
|
|
%% Copyright 2000-2001 Frédéric Goualard and Peter Mřller Neergaard |
4 |
|
|
%% |
5 |
|
|
%% This program may be distributed and/or modified under the |
6 |
|
|
%% conditions of the LaTeX Project Public License, either version 1.2 |
7 |
|
|
%% of this license or (at your option) any later version. |
8 |
|
|
%% The latest version of this license is in |
9 |
|
|
%% http://www.latex-project.org/lppl.txt |
10 |
|
|
%% and version 1.2 or later is part of all distributions of LaTeX |
11 |
|
|
%% version 1999/12/01 or later. |
12 |
|
|
%% |
13 |
|
|
%% This program consists of the files listed in manifest.txt |
14 |
|
|
%% |
15 |
|
|
%% CVSId : $Id: prosper.cls,v 1.1 2002-07-30 17:25:25 mmeineke Exp $ |
16 |
|
|
%%============================================================================= |
17 |
|
|
|
18 |
|
|
\def\Prosper@Version{2001/07/17, v. 1.5} |
19 |
|
|
\NeedsTeXFormat{LaTeX2e}[1995/12/01] |
20 |
|
|
\ProvidesClass{prosper}[\Prosper@Version] |
21 |
|
|
\typeout{(c) 2000-2001 Frederic Goualard, EPFL, Switzerland} |
22 |
|
|
\typeout{ and Peter Mřller Neergaard, Boston Univ., USA} |
23 |
|
|
\typeout{CVSId: $Id: prosper.cls,v 1.1 2002-07-30 17:25:25 mmeineke Exp $} |
24 |
|
|
|
25 |
|
|
\newif\ifDVItoPS |
26 |
|
|
\DeclareOption{ps}{\global\DVItoPStrue} |
27 |
|
|
\DeclareOption{pdf}{\global\DVItoPSfalse} |
28 |
|
|
|
29 |
|
|
\newif\ifisDraft |
30 |
|
|
\DeclareOption{draft}{\global\isDrafttrue% |
31 |
|
|
\PassOptionsToClass{draft}{seminar}} |
32 |
|
|
\DeclareOption{final}{\global\isDraftfalse% |
33 |
|
|
\PassOptionsToClass{final}{seminar}} |
34 |
|
|
|
35 |
|
|
\newif\ifinColor |
36 |
|
|
\DeclareOption{slideColor}{\global\inColortrue} |
37 |
|
|
\DeclareOption{slideBW}{\global\inColorfalse} |
38 |
|
|
|
39 |
|
|
\newif\ifallPages |
40 |
|
|
\DeclareOption{total}{\global\allPagestrue} |
41 |
|
|
\DeclareOption{nototal}{\global\allPagesfalse} |
42 |
|
|
|
43 |
|
|
\newif\ifcolorBG |
44 |
|
|
\DeclareOption{nocolorBG}{\global\colorBGfalse} |
45 |
|
|
\DeclareOption{colorBG}{\global\colorBGtrue} |
46 |
|
|
|
47 |
|
|
\newif\ifAccumulate |
48 |
|
|
\DeclareOption{accumulate}{\global\Accumulatetrue} |
49 |
|
|
\DeclareOption{noaccumulate}{\global\Accumulatefalse} |
50 |
|
|
|
51 |
|
|
\newif\if@distiller |
52 |
|
|
\@distillerfalse |
53 |
|
|
\DeclareOption{distiller}{\global\@distillertrue} |
54 |
|
|
|
55 |
|
|
\DeclareOption{YandY}{\gdef\@pdf@driver{dvipsone}} |
56 |
|
|
\DeclareOption{ps2pdf}{\gdef\@pdf@driver{ps2pdf}} |
57 |
|
|
\DeclareOption{vtex}{\gdef\@pdf@driver{vtex}} |
58 |
|
|
|
59 |
|
|
%% Default style file = default |
60 |
|
|
\def\Style@chosen{default} |
61 |
|
|
\DeclareOption*{\global\let\Style@chosen=\CurrentOption} |
62 |
|
|
|
63 |
|
|
\ExecuteOptions{final,slideBW,total,nocolorBG,noaccumulate,ps,ps2pdf} |
64 |
|
|
\ProcessOptions\relax |
65 |
|
|
|
66 |
|
|
\RequirePackage{graphicx} % MUST be loaded *before* seminar |
67 |
|
|
|
68 |
|
|
\LoadClass[portrait,semlayer,semcolor,leqno]{seminar} |
69 |
|
|
\InputIfFileExists{seminar.bug}{}\relax |
70 |
|
|
\InputIfFileExists{seminar.bg2}{}\relax |
71 |
|
|
\InputIfFileExists{seminar-bg2-lepennec.fix}{}\relax |
72 |
|
|
|
73 |
|
|
\RequirePackage[\@pdf@driver,bookmarks,% |
74 |
|
|
a4paper,% |
75 |
|
|
% pdfmenubar=false,% |
76 |
|
|
pdfhighlight=/I,% |
77 |
|
|
% pdftoolbar=false,% |
78 |
|
|
pdffitwindow=true,% |
79 |
|
|
pdfcenterwindow=true,% |
80 |
|
|
% pdfwindowui=false,% |
81 |
|
|
menucolor=menucolor,% |
82 |
|
|
% pdfview=Fit,% |
83 |
|
|
pdfstartview=Fit]{hyperref} |
84 |
|
|
|
85 |
|
|
\rotateheaderstrue |
86 |
|
|
\slidewidth=222mm |
87 |
|
|
\slideheight=150mm |
88 |
|
|
\renewcommand{\slideleftmargin}{0.01in} |
89 |
|
|
|
90 |
|
|
% overlays environment |
91 |
|
|
% Parameter: # of slides in the overlay |
92 |
|
|
% slide 0 is the one for PostScript file |
93 |
|
|
\newbox\theoverlays |
94 |
|
|
\newcounter{overlaysCount} |
95 |
|
|
\newcounter{limitOverlays} |
96 |
|
|
|
97 |
|
|
\newcount\@tempoLimit \@tempoLimit=0 |
98 |
|
|
\newif\ifcollapsedBookmarks |
99 |
|
|
% Default: collapsed bookmarks tree |
100 |
|
|
\collapsedBookmarkstrue |
101 |
|
|
% Add a bookmark for each master slide |
102 |
|
|
\def\@addBookmarkOnSlide#1#2{% |
103 |
|
|
\ifnum#1=0 |
104 |
|
|
\def\Hy@temp{#2}% |
105 |
|
|
\pdfmark{pdfmark=/OUT, |
106 |
|
|
Raw={/Page \thetrueSlideCounter |
107 |
|
|
/View [ /XYZ null null null ] |
108 |
|
|
/Title (\expandafter\strip@prefix\meaning\Hy@temp)} |
109 |
|
|
}% |
110 |
|
|
\else |
111 |
|
|
\@tempoLimit=#1% |
112 |
|
|
\advance \@tempoLimit by -1 |
113 |
|
|
\ifcollapsedBookmarks |
114 |
|
|
\@tempoLimit=-\@tempoLimit |
115 |
|
|
\fi |
116 |
|
|
\def\Hy@temp{#2}% |
117 |
|
|
\pdfmark{pdfmark=/OUT, |
118 |
|
|
Raw={/Count \number\@tempoLimit /Page \thetrueSlideCounter |
119 |
|
|
/View [ /XYZ null null null ] |
120 |
|
|
/Title (\expandafter\strip@prefix\meaning\Hy@temp)} |
121 |
|
|
}% |
122 |
|
|
\fi |
123 |
|
|
} |
124 |
|
|
|
125 |
|
|
|
126 |
|
|
%% Some code to be added when creating a PDF file |
127 |
|
|
\def\Cropping@Box{0 0 595 890} % By default: cropping to a4 paper dimensions |
128 |
|
|
\ifDVItoPS |
129 |
|
|
\else |
130 |
|
|
\AtEndOfClass{% |
131 |
|
|
\hypersetup{pdfpagescrop=\Cropping@Box}% |
132 |
|
|
} |
133 |
|
|
\if@distiller |
134 |
|
|
\else |
135 |
|
|
\AtBeginDvi{% |
136 |
|
|
\pdfmark{pdfmark=/PAGES, |
137 |
|
|
Raw={/Rotate 90}} |
138 |
|
|
}% |
139 |
|
|
\fi |
140 |
|
|
\fi |
141 |
|
|
\newcommand{\PDFCroppingBox}[1]{% |
142 |
|
|
\gdef\Cropping@Box{#1} |
143 |
|
|
} |
144 |
|
|
|
145 |
|
|
%% PDFtransition |
146 |
|
|
%% Transition from one page to another. |
147 |
|
|
%% Possible values: |
148 |
|
|
%% (Split, Blinds, Box, Wipe, Dissolve, Glitter, R) |
149 |
|
|
\def\Split{} \def\Blinds{} \def\Box{} \def\Wipe{} \def\Dissolve{} |
150 |
|
|
\def\Glitter{} \def\R{} \def\Replace{} |
151 |
|
|
\newcommand{\PDFtransition}[1]{% |
152 |
|
|
\@ifundefined{#1} |
153 |
|
|
{% |
154 |
|
|
\ClassError{prosper}{Undefined transition #1}{% |
155 |
|
|
Possible values: Split, Blinds, Box, Wipe, Dissolve, Glitter, R}} |
156 |
|
|
{% |
157 |
|
|
\hypersetup{pdfpagetransition={#1}} |
158 |
|
|
}% |
159 |
|
|
} |
160 |
|
|
|
161 |
|
|
%% Default transition between pages (for values, see \PDFtransition) |
162 |
|
|
\def\@defaultTransition{R} |
163 |
|
|
\newcommand{\DefaultTransition}[1]{\gdef\@defaultTransition{#1}} |
164 |
|
|
|
165 |
|
|
|
166 |
|
|
\let\@cartouche\@empty |
167 |
|
|
%% \slideCaption : Definition of caption to appear on every slide. |
168 |
|
|
\newcommand{\slideCaption}[1]{\gdef\@cartouche{#1}} |
169 |
|
|
|
170 |
|
|
%%----------------------------------------------------------------------------- |
171 |
|
|
%% Definitions for fonts and colors |
172 |
|
|
%% #1: font and color if slide in color |
173 |
|
|
%% #2: font and color if slide in BW |
174 |
|
|
\def\@fontTitleColor{\ClassError{prosper}{% |
175 |
|
|
no font specified for title in color}{Use macro \string\FontTitle}} |
176 |
|
|
\def\@fontTitleBW{\ClassError{prosper}{% |
177 |
|
|
no font specified for title in B\string&W}{Use macro \string\FontTitle}} |
178 |
|
|
\def\@fontSubtitleColor{\@fontTitleColor\fontsize{16pt}{16pt}\selectfont\itshape} |
179 |
|
|
\def\@fontSubtitleBW{\@fontTitleBW\fontsize{14pt}{16pt}\selectfont\itshape} |
180 |
|
|
\def\@fontTextColor{\ClassError{prosper}{% |
181 |
|
|
no font specified for texte in color}{Use macro \string\FontText}} |
182 |
|
|
\def\@fontTextBW{\ClassError{prosper}{% |
183 |
|
|
no font specified for text in B\string&W}{Use macro \string\FontText}} |
184 |
|
|
\def\@colorFoot{\black} |
185 |
|
|
\newcommand{\FontTitle}[2]{% |
186 |
|
|
\gdef\@fontTitleColor{#1}% |
187 |
|
|
\gdef\@fontTitleBW{#2}} |
188 |
|
|
\newcommand{\FontSubtitle}[2]{% |
189 |
|
|
\gdef\@fontSubtitleColor{#1}% |
190 |
|
|
\gdef\@fontSubtitleBW{#2}} |
191 |
|
|
\newcommand{\FontText}[2]{% |
192 |
|
|
\gdef\@fontTextColor{#1}% |
193 |
|
|
\gdef\@fontTextBW{#2}} |
194 |
|
|
\newcommand{\ColorFoot}[1]{\gdef\@colorFoot{#1}} |
195 |
|
|
|
196 |
|
|
\newcommand{\fontTitle}[1]{% |
197 |
|
|
{\ifinColor\@fontTitleColor\else\@fontTitleBW\fi #1}} |
198 |
|
|
\newcommand{\fontText}[1]{% |
199 |
|
|
{\ifinColor\@fontTextColor\else\@fontTextBW\fi #1}} |
200 |
|
|
%%- End of definitions for fonts and colors ----------------------------------- |
201 |
|
|
|
202 |
|
|
% Width of the text area |
203 |
|
|
\newlength{\slideWidth} |
204 |
|
|
|
205 |
|
|
\def\@titleSpacing{\vspace*{10pt}} |
206 |
|
|
\newcommand{\titleSpacing}[1]{\gdef\@titleSpacing{#1}} |
207 |
|
|
|
208 |
|
|
\def\@myendminipage{% |
209 |
|
|
\global\let\@oldendminipage=\endminipage% |
210 |
|
|
\global\let\endminipage=\@newendminipage% |
211 |
|
|
} |
212 |
|
|
|
213 |
|
|
\def\@normalendminipage{% |
214 |
|
|
\global\let\endminipage=\@oldendminipage% |
215 |
|
|
} |
216 |
|
|
\def\@newendminipage{% |
217 |
|
|
\par |
218 |
|
|
\unskip |
219 |
|
|
\ifvoid\@mpfootins\else |
220 |
|
|
\vskip\skip\@mpfootins |
221 |
|
|
\normalcolor |
222 |
|
|
\footnoterule |
223 |
|
|
\unvbox\@mpfootins |
224 |
|
|
\fi |
225 |
|
|
\@minipagefalse %% added 24 May 89 |
226 |
|
|
\color@endgroup |
227 |
|
|
\egroup |
228 |
|
|
\typeout{Vertical size: \the\ht\@tempboxa} |
229 |
|
|
\expandafter\@iiiparbox\@mpargs{\unvbox\@tempboxa}} |
230 |
|
|
|
231 |
|
|
%% Redefinition of the slide environment |
232 |
|
|
\newcounter{trueSlideCounter} |
233 |
|
|
\def\thetrueslideCounter{\arabic{trueSlideCounter}} |
234 |
|
|
\let\slide@seminar=\slide |
235 |
|
|
\let\endslide@seminar=\endslide |
236 |
|
|
\let\slide=\relax |
237 |
|
|
\let\endslide=\relax |
238 |
|
|
\newenvironment{SlideNormal}[2][\@defaultTransition]{% |
239 |
|
|
\stepcounter{trueSlideCounter}% |
240 |
|
|
\PDFtransition{#1}% |
241 |
|
|
\begin{slide@seminar}% |
242 |
|
|
\def\@tempa{#2}% |
243 |
|
|
\ifx\@tempa\@empty |
244 |
|
|
\else |
245 |
|
|
\@addBookmarkOnSlide{0}{#2}% |
246 |
|
|
\slidetitle{#2}% |
247 |
|
|
\fi |
248 |
|
|
\begin{posit@Box}% |
249 |
|
|
\begin{minipage}{\slideWidth}% |
250 |
|
|
\begin{raggedright}% |
251 |
|
|
\@DefMyItem |
252 |
|
|
\ifinColor\@fontTextColor\else\@fontTextBW\fi |
253 |
|
|
}{% |
254 |
|
|
\par\end{raggedright}% |
255 |
|
|
\end{minipage} |
256 |
|
|
\end{posit@Box}\end{slide@seminar}} |
257 |
|
|
% Slides in overlays |
258 |
|
|
\newenvironment{SlideOverlay}[2][\@defaultTransition]{% |
259 |
|
|
\ifDVItoPS |
260 |
|
|
\begin{slide@seminar}% |
261 |
|
|
\slidetitle{#2}% |
262 |
|
|
\begin{posit@Box}% |
263 |
|
|
\begin{minipage}{\slideWidth}% |
264 |
|
|
\begin{raggedright}% |
265 |
|
|
\@DefMyItem |
266 |
|
|
\ifinColor\@fontTextColor\else\@fontTextBW\fi |
267 |
|
|
\else %% DVI -> PDF |
268 |
|
|
\stepcounter{trueSlideCounter}% |
269 |
|
|
\PDFtransition{#1}% |
270 |
|
|
\begin{slide@seminar}% |
271 |
|
|
\@prepareResetCounters |
272 |
|
|
\def\@tempa{#2}% |
273 |
|
|
\ifx\@tempa\@empty |
274 |
|
|
\else |
275 |
|
|
\@ifundefined{@okForBookmark}{% |
276 |
|
|
\gdef\@okForBookmark{}% |
277 |
|
|
\@addBookmarkOnSlide{\number\c@limitOverlays}{#2}% |
278 |
|
|
}{\@addBookmarkOnSlide{0}{#2}}% |
279 |
|
|
\slidetitle{#2}% |
280 |
|
|
\fi |
281 |
|
|
\begin{posit@Box}% |
282 |
|
|
\begin{minipage}{\slideWidth}% |
283 |
|
|
\begin{raggedright}% |
284 |
|
|
\@DefMyItem |
285 |
|
|
\ifinColor\@fontTextColor\else\@fontTextBW\fi |
286 |
|
|
{\overlay{1}}% |
287 |
|
|
\fi |
288 |
|
|
}{% |
289 |
|
|
\ifDVItoPS |
290 |
|
|
\par\end{raggedright}% |
291 |
|
|
\end{minipage}\end{posit@Box}\end{slide@seminar}% |
292 |
|
|
\else %% DVI -> PDF |
293 |
|
|
\par\end{raggedright}% |
294 |
|
|
\end{minipage}\end{posit@Box}\end{slide@seminar}% |
295 |
|
|
\addtocounter{slide}{-1}% |
296 |
|
|
\fi |
297 |
|
|
} |
298 |
|
|
\let\slide=\SlideNormal |
299 |
|
|
\let\endslide=\endSlideNormal |
300 |
|
|
|
301 |
|
|
\newcommand{\NewSlideStyle}[4][11cm]{% |
302 |
|
|
\setlength{\slideWidth}{#1}% |
303 |
|
|
\global\pslongbox{posit@Box}{\rput[#2](#3)}% |
304 |
|
|
\newslideframe{the#4}{\csname #4\endcsname{##1}}% |
305 |
|
|
\slidepagestyle{GenericPageStyle}% |
306 |
|
|
\slideframe{the#4}% |
307 |
|
|
} |
308 |
|
|
|
309 |
|
|
|
310 |
|
|
% Definition of the bullet for itemize env. |
311 |
|
|
\def\@prosperItemi{{\scriptsize\green% |
312 |
|
|
\raisebox{2pt}{\ensuremath{\bullet}}}} |
313 |
|
|
\def\@prosperItemii{{\scriptsize\green% |
314 |
|
|
\raisebox{2pt}{\ensuremath{\bullet}}}} |
315 |
|
|
\def\@prosperItemiii{{\scriptsize\green% |
316 |
|
|
\raisebox{2pt}{\ensuremath{\bullet}}}} |
317 |
|
|
\newcommand{\myitem}[2]{% |
318 |
|
|
\ifnum#1=1 |
319 |
|
|
\gdef\@prosperItemi{#2}% |
320 |
|
|
\else |
321 |
|
|
\ifnum#1=2 |
322 |
|
|
\gdef\@prosperItemii{#2}% |
323 |
|
|
\else |
324 |
|
|
\ifnum#1=3 |
325 |
|
|
\gdef\@prosperItemiii{#2}% |
326 |
|
|
\else |
327 |
|
|
\ClassError{prosper}{Undefined item level}{Available levels: 1,2,3}% |
328 |
|
|
\fi |
329 |
|
|
\fi |
330 |
|
|
\fi |
331 |
|
|
} |
332 |
|
|
|
333 |
|
|
\def\@DefMyItem{% |
334 |
|
|
\global\let\labelitemi=\@prosperItemi |
335 |
|
|
\global\let\labelitemii=\@prosperItemii |
336 |
|
|
\global\let\labelitemiii=\@prosperItemiii |
337 |
|
|
} |
338 |
|
|
|
339 |
|
|
%% displaying of a logo (to be defined in every style) |
340 |
|
|
\newcommand{\LogoPosition}[1]{\gdef\@PosLogo{#1}} |
341 |
|
|
\def\@PosLogo{\ClassError{prosper}{no default position for positioning the logo given}{Use macro \string\LogoPosition\space in the style file}} |
342 |
|
|
\let\@thelogo\@empty |
343 |
|
|
\newcommand{\Logo}{% |
344 |
|
|
\@ifnextchar({\Logo@one}{\Logo@two}% |
345 |
|
|
} |
346 |
|
|
\def\Logo@one(#1)#2{% |
347 |
|
|
\gdef\@PosLogo{#1}% |
348 |
|
|
\gdef\@thelogo{#2}% |
349 |
|
|
} |
350 |
|
|
\def\Logo@two#1{% |
351 |
|
|
\gdef\@thelogo{#1}% |
352 |
|
|
} |
353 |
|
|
|
354 |
|
|
\newcommand{\PutLogo}{% |
355 |
|
|
\ifx\@thelogo\@empty\else\rput[lb](\@PosLogo){\@thelogo}\fi |
356 |
|
|
} |
357 |
|
|
|
358 |
|
|
\expandafter\ifx\csname realpageref\endcsname\relax% |
359 |
|
|
\gdef\realpageref#1{\expandafter\real@setref |
360 |
|
|
\csname r@#1\endcsname\@secondoffive{#1}} |
361 |
|
|
\fi |
362 |
|
|
|
363 |
|
|
\newpagestyle{GenericPageStyle}{\hfill }{\hfill% |
364 |
|
|
\ifisDraft |
365 |
|
|
{\@colorFoot\tiny \textbf{\jobname.tex}~--~\@Title~--~\@Author~--~\number\day/\number\month/\number\year~--~\timenow~--~p.~\thepage\ifallPages/\realpageref{last@page}\fi}% |
366 |
|
|
\else |
367 |
|
|
\ifshowVersion |
368 |
|
|
{\@colorFoot\tiny \textbf{\jobname.tex}~--~\@Title~--~\@Author~--~\number\day/\number\month/\number\year~--~\timenow~--~p.~\thepage\ifallPages/\realpageref{last@page}\fi}% |
369 |
|
|
\else |
370 |
|
|
{\@colorFoot\tiny \@cartouche~--~p.~\thepage\ifallPages/\realpageref{last@page}\fi}% |
371 |
|
|
\fi\fi |
372 |
|
|
} |
373 |
|
|
|
374 |
|
|
\IfFileExists{PPR\Style@chosen.sty}{% |
375 |
|
|
\RequirePackage{PPR\Style@chosen}% |
376 |
|
|
}{\ClassError{prosper}{unknown Prosper style file: PPR\Style@chosen.sty}{% |
377 |
|
|
Sorry, no additional help}} |
378 |
|
|
|
379 |
|
|
|
380 |
|
|
\def\nobabel{% |
381 |
|
|
\let\labelitemi\@ltiORI% |
382 |
|
|
\let\labelitemii\@ltiiORI% |
383 |
|
|
\let\labelitemiii\@ltiiiORI% |
384 |
|
|
\let\labelitemiv\@ltivORI} |
385 |
|
|
|
386 |
|
|
% A new itemize environment that does not attempt to justify sentences |
387 |
|
|
\let\Itemize=\itemize |
388 |
|
|
\let\endItemize=\enditemize |
389 |
|
|
\let\orig@item=\item |
390 |
|
|
\renewenvironment{itemize}{\global\let\cur@item=\item |
391 |
|
|
\global\let\item=\orig@item% |
392 |
|
|
\begin{Itemize}\begin{raggedright}}{% |
393 |
|
|
\end{raggedright}\end{Itemize}\global\let\item=\cur@item} |
394 |
|
|
\let\orig@center=\center |
395 |
|
|
\let\orig@endcenter=\endcenter |
396 |
|
|
\def\center{\global\let\cur@item=\item \global\let\item=\orig@item |
397 |
|
|
\orig@center} |
398 |
|
|
\def\endcenter{\orig@endcenter \global\let\item=\cur@item} |
399 |
|
|
|
400 |
|
|
% itemstep : itemize environment with step-by-step displaying |
401 |
|
|
% Warning: no more than 4 nesting levels allowed!! |
402 |
|
|
\newcounter{item@step} |
403 |
|
|
\newenvironment{itemstep}[1][1]{% |
404 |
|
|
\begin{Itemize}\begin{raggedright}% |
405 |
|
|
\ifnum\the\@itemdepth=1% |
406 |
|
|
\setcounter{item@step}{#1}% |
407 |
|
|
\addtocounter{item@step}{-1}% |
408 |
|
|
\fi% |
409 |
|
|
\def\item{\stepcounter{item@step}% |
410 |
|
|
\FromSlide{\theitem@step}\orig@item}% |
411 |
|
|
}{\end{raggedright}\end{Itemize}\ifnum\the\@itemdepth=0\setcounter{item@step}{0}\fi} |
412 |
|
|
|
413 |
|
|
%% Displaying the version caption |
414 |
|
|
\newif\ifshowVersion |
415 |
|
|
\showVersionfalse |
416 |
|
|
\newcommand{\displayVersion}{\global\showVersiontrue} |
417 |
|
|
|
418 |
|
|
\newcommand{\timenow}{% |
419 |
|
|
\@tempcnta=\time \divide\@tempcnta by 60 \number\@tempcnta:\multiply |
420 |
|
|
\@tempcnta by 60 \@tempcntb=\time \advance\@tempcntb by -\@tempcnta |
421 |
|
|
\ifnum\@tempcntb <10 0\number\@tempcntb\else\number\@tempcntb\fi} |
422 |
|
|
|
423 |
|
|
\newcommand{\lastpage@putlabel}{\addtocounter{page}{-1}% |
424 |
|
|
\immediate\write\@auxout{\string |
425 |
|
|
\newlabel{last@page}{{}{\theslide}{\relax }{}{}}}% |
426 |
|
|
\addtocounter{page}{1}} |
427 |
|
|
\AtEndDocument{\ifallPages\clearpage\lastpage@putlabel\fi} |
428 |
|
|
|
429 |
|
|
\let\@Subtitle\@empty |
430 |
|
|
\newcommand{\subtitle}[1]{\gdef\@Subtitle{#1}} |
431 |
|
|
\renewcommand{\title}[1]{\gdef\@Title{#1}% |
432 |
|
|
\ifx\@cartouche\@empty\gdef\@cartouche{#1}\fi} |
433 |
|
|
\renewcommand{\author}[1]{\gdef\@Author{#1}} |
434 |
|
|
|
435 |
|
|
\let\@email\@empty |
436 |
|
|
\newcommand{\email}[1]{\gdef\@email{#1}} |
437 |
|
|
|
438 |
|
|
\let\@institution\@empty |
439 |
|
|
\newcommand{\institution}[1]{\gdef\@institution{#1}} |
440 |
|
|
|
441 |
|
|
\renewcommand{\maketitle}{% |
442 |
|
|
%% Tests whether the 'french' style from B. Gaulle is loaded |
443 |
|
|
\expandafter\ifx\csname frenchTeXmods\endcsname\relax% |
444 |
|
|
\else |
445 |
|
|
\PackageWarning{prosper}{This page intentionnally left blank to overcome an incompatibility bug between B. Gaulle 'french' package and the seminar class.} |
446 |
|
|
\begin{center} |
447 |
|
|
{\black\small |
448 |
|
|
\textsf{prosper} class: page intentionnally left blank to overcome an incompatibility bug between B. Gaulle 'french' package and the seminar class.}% |
449 |
|
|
\end{center} |
450 |
|
|
\clearpage \setcounter{page}{0}% |
451 |
|
|
\fi |
452 |
|
|
\begin{slide}{}% |
453 |
|
|
\ptsize{10}% |
454 |
|
|
\begin{center}% |
455 |
|
|
\@titleSpacing\par |
456 |
|
|
\normalfont |
457 |
|
|
{\ifinColor\@fontTitleColor\else\@fontTitleBW\fi\@Title\par}% |
458 |
|
|
\ifx\@Subtitle\@empty\else |
459 |
|
|
|
460 |
|
|
{\ifinColor\@fontSubtitleColor\else\@fontSubtitleBW\fi\@Subtitle\par} |
461 |
|
|
\fi |
462 |
|
|
|
463 |
|
|
\vskip.5em |
464 |
|
|
\@Author |
465 |
|
|
|
466 |
|
|
\ifx\@email\@empty\else |
467 |
|
|
\vskip-5pt |
468 |
|
|
{\fontsize{7}{7}\selectfont\texttt{\@email}} |
469 |
|
|
\fi |
470 |
|
|
\ifx\@institution\@empty% |
471 |
|
|
\else |
472 |
|
|
\vskip.8em |
473 |
|
|
\@institution |
474 |
|
|
\fi |
475 |
|
|
\vfill |
476 |
|
|
\end{center} |
477 |
|
|
\end{slide} |
478 |
|
|
} |
479 |
|
|
|
480 |
|
|
%% Overlays environment |
481 |
|
|
\newcounter{overlay@page} |
482 |
|
|
\newenvironment{Overlays}{% |
483 |
|
|
\global\let\slide\SlideOverlay |
484 |
|
|
\global\let\endslide\endSlideOverlay |
485 |
|
|
\setcounter{overlay@page}{\value{slide}}}{% |
486 |
|
|
\global\let\slide\SlideNormal |
487 |
|
|
\global\let\endslide\endSlideNormal |
488 |
|
|
\global\let\@okForBookmark\relax |
489 |
|
|
\setcounter{slide}{\value{overlay@page}}\stepcounter{slide}} |
490 |
|
|
|
491 |
|
|
|
492 |
|
|
% fromSlide, onlySlide, untilSlide |
493 |
|
|
% Masks or not the parameter. |
494 |
|
|
% The stared version does not advance the position pointer and does not |
495 |
|
|
% interpret its argument (to be used for graphics and commands containing |
496 |
|
|
% PStricks links) |
497 |
|
|
|
498 |
|
|
% The following uses some pstricks hackery to exclude material from a |
499 |
|
|
% slide. We use pstricks' postscript commands to place material on |
500 |
|
|
% slide one which will never be printed. |
501 |
|
|
\long\def\@on@overlay@one#1{% |
502 |
|
|
\pst@Verb{(1) BOL}{\ignorespaces #1}\pst@Verb{(\curr@overlay) BOL}} |
503 |
|
|
% [2001/07/16] PMN: The grouping and \ignorespaces around the argument |
504 |
|
|
% is necessary for downwards compatibility. |
505 |
|
|
% \ignorespaces is as found in \overlays from seminar and |
506 |
|
|
% the grouping changes the spacing behavour in TeX. |
507 |
|
|
|
508 |
|
|
\long\def\fromSlide{% |
509 |
|
|
\@ifstar\fromSlide@E\fromSlide@NE} |
510 |
|
|
\long\def\fromSlide@NE#1{% |
511 |
|
|
\let\prosper@next\@gobble% |
512 |
|
|
\ifDVItoPS% |
513 |
|
|
\ifAccumulate% |
514 |
|
|
\let\prosper@next\@iden% |
515 |
|
|
\fi% |
516 |
|
|
\else% |
517 |
|
|
\ifnum#1>\value{overlaysCount}% |
518 |
|
|
\let\prosper@next\@on@overlay@one% |
519 |
|
|
\else% |
520 |
|
|
\let\prosper@next\@iden% |
521 |
|
|
\fi% |
522 |
|
|
\fi% |
523 |
|
|
\prosper@next} |
524 |
|
|
|
525 |
|
|
\long\def\fromSlide@E#1{% |
526 |
|
|
\let\prosper@next\@gobble% |
527 |
|
|
\ifDVItoPS% |
528 |
|
|
\ifAccumulate% |
529 |
|
|
\let\prosper@next\@iden% |
530 |
|
|
\fi% |
531 |
|
|
\else% |
532 |
|
|
\ifnum#1>\value{overlaysCount}% |
533 |
|
|
\else% |
534 |
|
|
\let\prosper@next\@iden% |
535 |
|
|
\fi% |
536 |
|
|
\fi% |
537 |
|
|
\prosper@next} |
538 |
|
|
|
539 |
|
|
\long\def\untilSlide{% |
540 |
|
|
\@ifstar\untilSlide@E\untilSlide@NE} |
541 |
|
|
\long\def\untilSlide@NE#1{% |
542 |
|
|
\let\prosper@next\@gobble% |
543 |
|
|
\ifDVItoPS% |
544 |
|
|
\ifAccumulate% |
545 |
|
|
\let\prosper@next\@iden% |
546 |
|
|
\fi% |
547 |
|
|
\else% |
548 |
|
|
\ifnum#1<\value{overlaysCount}% |
549 |
|
|
\let\prosper@next\@on@overlay@one% |
550 |
|
|
\else% |
551 |
|
|
\let\prosper@next\@iden% |
552 |
|
|
\fi% |
553 |
|
|
\fi% |
554 |
|
|
\prosper@next} |
555 |
|
|
|
556 |
|
|
\long\def\untilSlide@E#1{% |
557 |
|
|
\let\prosper@next\@gobble% |
558 |
|
|
\ifDVItoPS% |
559 |
|
|
\ifAccumulate% |
560 |
|
|
\let\prosper@next\@iden% |
561 |
|
|
\fi% |
562 |
|
|
\else% |
563 |
|
|
\ifnum#1<\value{overlaysCount}% |
564 |
|
|
\else% |
565 |
|
|
\let\prosper@next\@iden% |
566 |
|
|
\fi% |
567 |
|
|
\fi% |
568 |
|
|
\prosper@next} |
569 |
|
|
|
570 |
|
|
\long\def\onlySlide{% |
571 |
|
|
\@ifstar\onlySlide@E\onlySlide@NE} |
572 |
|
|
\long\def\onlySlide@NE#1{% |
573 |
|
|
\let\prosper@next\@gobble% |
574 |
|
|
\ifDVItoPS% |
575 |
|
|
\ifAccumulate% |
576 |
|
|
\let\prosper@next\@iden% |
577 |
|
|
\fi% |
578 |
|
|
\else% |
579 |
|
|
\ifnum#1=\value{overlaysCount}% |
580 |
|
|
\let\prosper@next\@iden% |
581 |
|
|
\else% |
582 |
|
|
\let\prosper@next\@on@overlay@one% |
583 |
|
|
\fi% |
584 |
|
|
\fi% |
585 |
|
|
\prosper@next} |
586 |
|
|
|
587 |
|
|
\long\def\onlySlide@E#1{% |
588 |
|
|
\let\prosper@next\@gobble% |
589 |
|
|
\ifDVItoPS% |
590 |
|
|
\ifAccumulate% |
591 |
|
|
\let\prosper@next\@iden% |
592 |
|
|
\fi% |
593 |
|
|
\else% |
594 |
|
|
\ifnum#1=\value{overlaysCount}% |
595 |
|
|
\let\prosper@next\@iden% |
596 |
|
|
\fi% |
597 |
|
|
\fi% |
598 |
|
|
\prosper@next} |
599 |
|
|
|
600 |
|
|
% FromSlide, OnlySlide, UntilSlide |
601 |
|
|
% Masks or not the following material. Advances the position pointer |
602 |
|
|
\newcommand{\FromSlide}[1]{% |
603 |
|
|
\ifDVItoPS% |
604 |
|
|
\else% |
605 |
|
|
\ifnum#1>\value{overlaysCount}% |
606 |
|
|
\overlay{1}% |
607 |
|
|
\fi% |
608 |
|
|
\fi} |
609 |
|
|
\newcommand{\UntilSlide}[1]{% |
610 |
|
|
\ifDVItoPS% |
611 |
|
|
\else% |
612 |
|
|
\ifnum#1<\value{overlaysCount}% |
613 |
|
|
\overlay{1}% |
614 |
|
|
\fi |
615 |
|
|
\fi} |
616 |
|
|
\newcommand{\OnlySlide}[1]{% |
617 |
|
|
\ifDVItoPS% |
618 |
|
|
\else% |
619 |
|
|
\ifnum#1=\value{overlaysCount}% |
620 |
|
|
\else% |
621 |
|
|
\overlay{1}% |
622 |
|
|
\fi |
623 |
|
|
\fi} |
624 |
|
|
|
625 |
|
|
% Overlays. Parameter to state the number of slides composing the overlay |
626 |
|
|
%\def\stepcounter#1{% |
627 |
|
|
% \ifInOverlays |
628 |
|
|
% \ifnum\value{overlayscount}<2 |
629 |
|
|
% \else |
630 |
|
|
% \addtocounter{#1}\@ne |
631 |
|
|
% \fi |
632 |
|
|
% \else |
633 |
|
|
% \addtocounter{#1}\@ne |
634 |
|
|
% \fi |
635 |
|
|
% \begingroup |
636 |
|
|
% \let\@elt\@stpelt |
637 |
|
|
% \csname cl@#1\endcsname |
638 |
|
|
% \endgroup |
639 |
|
|
%} |
640 |
|
|
|
641 |
|
|
\newif\ifInOverlays |
642 |
|
|
\InOverlaysfalse |
643 |
|
|
\long\def\overlays#1#2{% |
644 |
|
|
\bgroup |
645 |
|
|
\aftergroup\@cleanupOverlay |
646 |
|
|
\global\InOverlaystrue |
647 |
|
|
\setcounter{limitOverlays}{#1}% |
648 |
|
|
\setcounter{overlaysCount}{1}% |
649 |
|
|
\ifDVItoPS |
650 |
|
|
#2 |
651 |
|
|
\else |
652 |
|
|
\begin{Overlays}% |
653 |
|
|
\bgroup |
654 |
|
|
\loop |
655 |
|
|
\@everyOverlay |
656 |
|
|
#2 |
657 |
|
|
\ifnum\value{overlaysCount}<\value{limitOverlays}% |
658 |
|
|
\stepcounter{overlaysCount}% |
659 |
|
|
\repeat |
660 |
|
|
\egroup |
661 |
|
|
\end{Overlays}% |
662 |
|
|
\fi |
663 |
|
|
\egroup |
664 |
|
|
} |
665 |
|
|
|
666 |
|
|
\def\@cleanupOverlay{% |
667 |
|
|
\global\InOverlaysfalse |
668 |
|
|
\setcounter{nbAffected}{0} |
669 |
|
|
} |
670 |
|
|
|
671 |
|
|
\def\@listctr{} |
672 |
|
|
\AtBeginDocument{% |
673 |
|
|
\def\@pdfcreator{LaTeX with hyperref and prosper packages}% |
674 |
|
|
{\begingroup \escapechar\m@ne\xdef\@gtempa{{\string\reset@color}}\endgroup |
675 |
|
|
\expandafter\@ifundefined\@gtempa\relax{% |
676 |
|
|
\global\let\orig@reset@color=\reset@color |
677 |
|
|
\gdef\reset@color{\orig@reset@color\pst@endcolor}}}% |
678 |
|
|
\let\Label=\label |
679 |
|
|
\def\label#1{% |
680 |
|
|
\ifInOverlays |
681 |
|
|
\ifnum\value{overlaysCount}=1 |
682 |
|
|
\Label{#1} |
683 |
|
|
\fi |
684 |
|
|
\else |
685 |
|
|
\Label{#1} |
686 |
|
|
\fi |
687 |
|
|
} |
688 |
|
|
|
689 |
|
|
% For amsmath environments |
690 |
|
|
\let\Label@in@display=\label@in@display |
691 |
|
|
\def\label@in@display#1{% |
692 |
|
|
\ifInOverlays |
693 |
|
|
\ifnum\value{overlaysCount}=1 |
694 |
|
|
\Label@in@display{#1} |
695 |
|
|
\fi |
696 |
|
|
\else |
697 |
|
|
\Label@in@display{#1}% |
698 |
|
|
\fi |
699 |
|
|
}% |
700 |
|
|
|
701 |
|
|
\let\overlay@loop=\relax |
702 |
|
|
\let\stepcounter=\stepcounter |
703 |
|
|
% Macro \overlay taken from semlayer.sty |
704 |
|
|
\def\overlay#1{% |
705 |
|
|
\ifoverlays\ifx\@overlay\relax\nooverlays@err\fi\fi |
706 |
|
|
\ifslide |
707 |
|
|
\@tempcnta=#1 |
708 |
|
|
\@testfalse |
709 |
|
|
\ifnum\@tempcnta>-1 \ifnum\@tempcnta<10 \@testtrue\fi\fi |
710 |
|
|
\if@test |
711 |
|
|
\c@overlay=\@tempcnta |
712 |
|
|
\ifnum\c@overlay=0 |
713 |
|
|
\advance\c@slide by -1 |
714 |
|
|
\refstepcounter{slide}% |
715 |
|
|
\else |
716 |
|
|
\advance\c@overlay by -1 |
717 |
|
|
\refstepcounter{overlay}% |
718 |
|
|
\ifoverlays |
719 |
|
|
\xdef\overlay@list{\overlay@list,\the\c@overlay}% |
720 |
|
|
\fi |
721 |
|
|
\fi |
722 |
|
|
\ifoverlays |
723 |
|
|
\@overlay{\the\c@overlay}% |
724 |
|
|
\fi |
725 |
|
|
\else |
726 |
|
|
\@seminarerr{\string\overlay\space argument must be |
727 |
|
|
an integer between 0 and 9}\@eha |
728 |
|
|
\fi |
729 |
|
|
\else |
730 |
|
|
\@seminarerr{\string\overlay\space can only be used |
731 |
|
|
in slide environments}\@eha |
732 |
|
|
\fi |
733 |
|
|
\ignorespaces}% |
734 |
|
|
} % AtBeginDocument |
735 |
|
|
|
736 |
|
|
\let\@everyOverlay\relax |
737 |
|
|
%% Macros to be executed before each overlayed slide |
738 |
|
|
\def\everyOverlay#1{\gdef\@everyOverlay{#1}} |
739 |
|
|
|
740 |
|
|
\newcounter{nbAffected} |
741 |
|
|
\newcounter{savecountAffected} |
742 |
|
|
\def\saveCtr#1{% |
743 |
|
|
\stepcounter{nbAffected} |
744 |
|
|
\expandafter\@saveCtr\the\csname c@#1\endcsname{#1} |
745 |
|
|
} |
746 |
|
|
\def\@saveCtr#1#2{ |
747 |
|
|
\expandafter\gdef\csname @sac\the\c@nbAffected\endcsname{\fromSlide*{2}{\setcounter{#2}{#1}}} |
748 |
|
|
} |
749 |
|
|
|
750 |
|
|
\def\@prepareResetCounters{% |
751 |
|
|
\ifnum\value{nbAffected}>0 |
752 |
|
|
\setcounter{savecountAffected}{1} |
753 |
|
|
\loop |
754 |
|
|
\csname @sac\the\c@savecountAffected\endcsname |
755 |
|
|
\ifnum\value{savecountAffected}<\value{nbAffected} |
756 |
|
|
\stepcounter{savecountAffected} |
757 |
|
|
\repeat |
758 |
|
|
\fi |
759 |
|
|
} |
760 |
|
|
|
761 |
|
|
|
762 |
|
|
% \part |
763 |
|
|
\let\part=\relax |
764 |
|
|
\newcommand{\part}[2][\@defaultTransition]{% |
765 |
|
|
\begin{slide}[#1]{}% |
766 |
|
|
\vspace*{1.5cm}\@addBookmarkOnSlide{0}{#2}% |
767 |
|
|
\begin{center}% |
768 |
|
|
\fontTitle{#2}% |
769 |
|
|
\end{center} |
770 |
|
|
\end{slide}} |
771 |
|
|
|
772 |
|
|
% Uses #1 if PDF option, otherwise #2 |
773 |
|
|
% [7/13/01] PMN: More robust implementation as it does not scan the |
774 |
|
|
% arguments for \if. |
775 |
|
|
\newcommand{\PDForPS}{% |
776 |
|
|
\ifDVItoPS |
777 |
|
|
\let\prosper@next\@secondoftwo |
778 |
|
|
\else |
779 |
|
|
\let\prosper@next\@firstoftwo |
780 |
|
|
\fi |
781 |
|
|
\prosper@next} |
782 |
|
|
% #1 appears on the slide only on PS mode |
783 |
|
|
\newcommand{\onlyInPS}{% |
784 |
|
|
\ifDVItoPS |
785 |
|
|
\let\prosper@next\@iden |
786 |
|
|
\else |
787 |
|
|
\let\prosper@next\@gobble |
788 |
|
|
\fi |
789 |
|
|
\prosper@next} |
790 |
|
|
% #1 appears on the slide only on PDF mode |
791 |
|
|
\newcommand{\onlyInPDF}{ |
792 |
|
|
\ifDVItoPS |
793 |
|
|
\let\prosper@next\@gobble |
794 |
|
|
\else |
795 |
|
|
\let\prosper@next\@iden |
796 |
|
|
\fi |
797 |
|
|
\prosper@next} |
798 |
|
|
|
799 |
|
|
% To be used in conjunction with babel/french to allow ones own labels |
800 |
|
|
\def\NoFrenchBabelItemize{% |
801 |
|
|
\AtBeginDocument{% |
802 |
|
|
\renewenvironment{itemize}% |
803 |
|
|
{\ifnum \@itemdepth >\thr@@\@toodeep\else |
804 |
|
|
\advance\@itemdepth\@ne |
805 |
|
|
\edef\@itemitem{labelitem\romannumeral\the\@itemdepth}% |
806 |
|
|
\expandafter |
807 |
|
|
\list |
808 |
|
|
\csname\@itemitem\endcsname% |
809 |
|
|
{\let\@trivlist\@trivlistORI |
810 |
|
|
\settowidth{\labelwidth}{\textendash}% |
811 |
|
|
\setlength{\leftmargin}{\labelwidth}% |
812 |
|
|
\addtolength{\leftmargin}{\labelsep}% |
813 |
|
|
\ifnum\@listdepth=0 |
814 |
|
|
\setlength{\itemindent}{\parindent}% |
815 |
|
|
\else |
816 |
|
|
\addtolength{\leftmargin}{\parindent}% |
817 |
|
|
\fi |
818 |
|
|
\setlength{\itemsep}{\z@}% |
819 |
|
|
\setlength{\parsep}{\z@}% |
820 |
|
|
\setlength{\topsep}{\z@}% |
821 |
|
|
\setlength{\partopsep}{\z@}% |
822 |
|
|
\addtolength{\topsep}{-\parskip}% |
823 |
|
|
\addtolength{\partopsep}{\parskip}% |
824 |
|
|
}% |
825 |
|
|
\fi}% |
826 |
|
|
{\endlist}% |
827 |
|
|
}} |
828 |
|
|
|
829 |
|
|
\ptsize{14} |
830 |
|
|
|
831 |
|
|
\endinput |
832 |
|
|
|
833 |
|
|
%%% Local Variables: |
834 |
|
|
%%% mode: latex |
835 |
|
|
%%% TeX-master: t |
836 |
|
|
%%% End: |