summaryrefslogtreecommitdiff
path: root/macros/latex/contrib/seminar/latex/seminar.con
diff options
context:
space:
mode:
Diffstat (limited to 'macros/latex/contrib/seminar/latex/seminar.con')
-rw-r--r--macros/latex/contrib/seminar/latex/seminar.con1126
1 files changed, 1126 insertions, 0 deletions
diff --git a/macros/latex/contrib/seminar/latex/seminar.con b/macros/latex/contrib/seminar/latex/seminar.con
new file mode 100644
index 0000000000..6731d2b728
--- /dev/null
+++ b/macros/latex/contrib/seminar/latex/seminar.con
@@ -0,0 +1,1126 @@
+%%%%%%%%%%%%%%%%%%%%%%%%%%% -*- Mode: Latex -*- %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%% seminar.con --- Customization of the Seminar document class.
+%% We take care to do this for easy adaptations in other
+%% institutions and contexts.
+%%
+%% Author : Denis GIROU (CNRS/IDRIS - France) <Denis.Girou@idris.fr>
+%% Created the : 1993
+%% Last mod. by : hv
+%% Last mod. the : 2021-06-24 <hvoss@tug.org>
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\def\fileversion{3.4}
+\def\filedate{2021/06/24}
+%
+\typeout{seminar.con file: example of customization of the Seminar
+ document class^^J%
+ (Version \fileversion\space of <\filedate> (DG,hv))}
+\ProvidesFile{seminar.con}[\filedate\space v\fileversion\space `seminar.con' (dg,hv)]
+
+% Packages used
+% -------------
+
+% General packages (all are on CTAN)
+\PassOptionsToPackage{pdffitwindow,colorlinks,pdfpagemode=UseNone,bookmarks,setpagesize=false}{hyperref}
+\PassOptionsToPackage{dvipsnames,svgnames}{xcolor}
+\usepackage{calc} % Simple computations with LaTeX variables
+\usepackage[hang]{caption} % Improved captions
+\usepackage{fancybox} % To have several backgrounds
+ % (must be loaded before `fancyvrb')
+\usepackage{fancyhdr} % Headers and footers definitions
+\usepackage{fancyvrb} % Fancy verbatim environments
+%\usepackage{pstricks} % PSTricks with the standard color package
+% % (before `graphicx' for the \scalebox macro)
+\usepackage{graphicx} % Standard graphics package
+\usepackage{multido} % General loop macro
+\usepackage{pifont} % Ding symbols (mainly for lists)
+\usepackage{pst-node} % PSTricks nodes
+\usepackage{semcolor} % Seminar colored slides
+\usepackage{semhelv} % Seminar helvetica fonts
+\usepackage{semlayer} % Seminar overlays
+\usepackage{slidesec} % Seminar sections and list of slides
+\usepackage{pst-grad} % PSTricks gradient mode
+\usepackage{pst-fr3d} % PSTricks 3D framed boxes
+\usepackage{pst-slpe} % Improved PSTricks gradients
+\usepackage{thumbpdf} % Thumbnails for PDF versions
+\usepackage[breakwords]{truncate}% To truncate a string at a specified length
+\usepackage{url} % Convenient URL typesetting
+
+
+\edef\SeminarAtCode{\the\catcode`\@}
+\catcode`\@=11\relax
+
+%\ifx\VTeXversion\@undefined
+ \input{seminar.bug} % Official bugs corrections
+ \input{seminar.bg2} % Unofficial bugs corrections
+ % (warning: you must load `longtable' before
+ % if you use it)
+\input{seminar.bg2}
+%\else
+% \input{/usr/local/vtex/texmf/vtex/config/seminar.con}% Adjust this path%%%%%%%%%%%%%%%%%%%
+ % As VTeX does not support the HSB color model, we make it identical
+ % to the RGB one. This will obviously produce strange color results,
+ % but this will allow to compile the sources using here our
+ % \PstFrameBoxThreeD macro.
+% \def\color@hsb#1#2{\c@lor@@hsb#2\@@#1}
+% \def\c@lor@@hsb#1,#2,#3\@@#4{%
+ % From the VTeX \c@lor@@rgb definition
+% \vtexdef@checkarg{#1}{1}{rgb}%
+% \vtexdef@fixedhex{#1}\vtexdef@hex@a
+% \vtexdef@checkarg{#2}{1}{rgb}%
+% \vtexdef@fixedhex{#2}\vtexdef@hex@b
+% \vtexdef@checkarg{#3}{1}{rgb}%
+% \vtexdef@fixedhex{#3}\vtexdef@hex@c
+% \edef#4{c"\vtexdef@hex@a\vtexdef@hex@b\vtexdef@hex@c}}%
+%\fi
+
+% Compatibility patch between `pst-key' and the \RequirePackage macro
+% to avoid later a LaTeX warning about the version of `keyval'
+% From pst-key.tex
+\def\next[#1]{\catcode`\@=11
+% D.G. modification begin - Apr. 25, 2002
+% \expandafter\let\csname ver@keyval.sty\endcsname\empty
+ \expandafter\xdef\csname ver@keyval.sty\endcsname{#1}%
+% D.G. modification end
+ \wlog{keyval: #1}}\next
+ [1998/07/23 v1.11 key=value parser (DPC)]
+
+%%%%%%%%%% begin hv 2021-6-24 %%%%%%%%%%%%%%
+
+\providecommand\theHslide{\arabic{slide}}
+\usepackage{hyperref} % Hyperlinks for PDF versions
+ % (to load after `slidesec', seminar.bg2, etc.)
+\@ifpackageloaded{slidesec}{%
+ \providecommand\theHslidesection {\arabic{slidesection}}%
+ \providecommand\theHslidesubsection{%
+ \theHslidesection.\arabic{slidesubsection}%
+ }%
+ \def\slide@heading[#1]#2{%
+ \H@refstepcounter{slidesection}%
+ \@addtoreset{slidesubsection}{slidesection}%
+ \addtocontents{los}{%
+ \protect\l@slide{\the\c@slidesection}{\ignorespaces#1}%
+ {\@SCTR}{slideheading.\theslidesection}%
+ }%
+ \def\Hy@tempa{#2}%
+ \ifx\Hy@tempa\@empty
+ \else
+ {%
+ \edef\@currentlabel{%
+ \csname p@slidesection\endcsname\theslidesection
+ }%
+ \makeslideheading{#2}%
+ }%
+ \fi
+ \gdef\theslideheading{#1}%
+ \gdef\theslidesubheading{}%
+ \ifHy@bookmarksnumbered
+ \def\Hy@slidetitle{\theslidesection\space #1}%
+ \else
+ \def\Hy@slidetitle{#1}%
+ \fi
+ \ifHy@hypertexnames
+ \ifHy@naturalnames
+ \hyper@@anchor{slideheading.\theslidesection}{\relax}%
+ \Hy@writebookmark
+ {\theslidesection}%
+ {\Hy@slidetitle}%
+ {slideheading.\theslidesection}%
+ {1}%
+ {toc}%
+ \else
+ \hyper@@anchor{slideheading.\theHslidesection}{\relax}%
+ \Hy@writebookmark
+ {\theslidesection}%
+ {\Hy@slidetitle}%
+ {slideheading.\theHslidesection}%
+ {1}%
+ {toc}%
+ \fi
+ \else
+ \Hy@GlobalStepCount\Hy@linkcounter
+ \hyper@@anchor{slideheading.\the\Hy@linkcounter}{\relax}%
+ \Hy@writebookmark
+ {\theslidesection}%
+ {\Hy@slidetitle}%
+ {slideheading.\the\Hy@linkcounter}%
+ {1}%
+ {toc}%
+ \fi
+ }%
+ \def\slide@subheading[#1]#2{%
+ \H@refstepcounter{slidesubsection}%
+ \addtocontents{los}{%
+ \protect\l@subslide{\the\c@slidesubsection}{\ignorespaces#1}%
+ {\@SCTR}{slideheading.\theslidesubsection}%
+ }%
+ \def\Hy@tempa{#2}%
+ \ifx\Hy@tempa\@empty
+ \else
+ {%
+ \edef\@currentlabel{%
+ \csname p@slidesubsection\endcsname\theslidesubsection
+ }%
+ \makeslidesubheading{#2}%
+ }%
+ \fi
+ \gdef\theslidesubheading{#1}%
+ \ifHy@bookmarksnumbered
+ \def\Hy@slidetitle{\theslidesubsection\space #1}%
+ \else
+ \def\Hy@slidetitle{#1}%
+ \fi
+ \ifHy@hypertexnames
+ \ifHy@naturalnames
+ \hyper@@anchor{slideheading.\theslidesubsection}{\relax}%
+ \Hy@writebookmark
+ {\theslidesubsection}%
+ {\Hy@slidetitle}%
+ {slideheading.\theslidesubsection}%
+ {2}%
+ {toc}%
+ \else
+ \hyper@@anchor{slideheading.\theHslidesubsection}{\relax}%
+ \Hy@writebookmark
+ {\theslidesubsection}%
+ {\Hy@slidetitle}%
+ {slideheading.\theHslidesubsection}%
+ {2}%
+ {toc}%
+ \fi
+ \else
+ \Hy@GlobalStepCount\Hy@linkcounter
+ \hyper@@anchor{slideheading.\the\Hy@linkcounter}{\relax}%
+ \Hy@writebookmark
+ {\theslidesubsection}%
+ {\Hy@slidetitle}%
+ {slideheading.\the\Hy@linkcounter}%
+ {1}%
+ {toc}%
+ \fi
+ }%
+ \providecommand*{\listslidename}{List of Slides}%
+ \def\listofslides{%
+ \section*{%
+ \listslidename
+ \@mkboth{%
+ \expandafter\MakeUppercase\listslidename
+ }{%
+ \expandafter\MakeUppercase\listslidename
+ }%
+ }%
+ \def\l@slide##1##2##3##4{%
+ \slide@undottedcline{%
+ \slidenumberline{##3}{\hyperlink{##4}{##2}}%
+ }{}%
+ }%
+ \let\l@subslide\l@slide
+ \@startlos
+ }%
+ \def\slide@contents{%
+ \def\l@slide##1##2##3##4{%
+ \slide@cline{\slidenumberline{##3}{\hyperlink{##4}{##2}}}{##3}%
+ }%
+ \let\l@subslide\@gobblefour
+ \@startlos
+ }%
+ \def\Slide@contents{%
+ \def\l@slide##1##2##3##4{%
+ \ifcase\lslide@flag
+ \message{##1 ** \the\c@slidesection}%
+ \ifnum##1>\c@slidesection
+ \def\lslide@flag{1}%
+ {%
+ \large
+ \slide@cline{%
+ \slidenumberline{$\Rightarrow\bullet$}%
+ {\hyperlink{##4}{##2}}%
+ }{##3}%
+ }%
+ \else
+ {%
+ \large
+ \slide@cline{%
+ \slidenumberline{$\surd\;\bullet$}%
+ {\hyperlink{##4}{##2}}%
+ }{##3}%
+ }%
+ \fi
+ \or
+ \def\lslide@flag{2}%
+ {%
+ \large
+ \slide@cline{%
+ \slidenumberline{$\bullet$}%
+ {\hyperlink{##4}{##2}}%
+ }{##3}%
+ }%
+ \or
+ {%
+ \large
+ \slide@cline{%
+ \slidenumberline{$\bullet$}%
+ {\hyperlink{##4}{##2}}%
+ }{##3}%
+ }%
+ \fi
+ }%
+ \def\l@subslide##1##2##3##4{%
+ \ifnum\lslide@flag=1 %
+ \@undottedtocline{2}{3.8em}{3.2em}{\hyperlink{##4}{##2}}{}%
+ \fi
+ }%
+ \def\lslide@flag{0}%
+ \@startlos
+ }%
+}{}
+
+%%%%%%%%%%% end hv 2021-06-24 %%%%%%%%%%%%
+
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\iffalse
+% Definition of new colors
+% ------------------------
+
+\definecolor{Apricot} {cmyk}{0,0.32,0.52,0}
+\definecolor{Aquamarine} {cmyk}{0.82,0,0.30,0}
+\definecolor{CadetBlue} {cmyk}{0.62,0.57,0.23,0}
+\definecolor{DarkGray} {gray}{0.2}
+\definecolor{DarkGreen} {rgb}{0,0.5,0}
+\definecolor{ForestGreen} {cmyk}{0.91,0,0.88,0.12}
+\definecolor{Gold} {rgb}{1.,0.84,0.}
+\definecolor{Goldenrod} {cmyk}{0,0.10,0.84,0}
+\definecolor{IndianRed} {rgb}{0.8,0.36,0.36}
+\definecolor{Lavender} {cmyk}{0,0.48,0,0}
+\definecolor{LemonChiffon}{rgb}{1.,0.98,0.8}
+\definecolor{LightBlue} {rgb}{0.68,0.85,0.9}
+\definecolor{LightCyan} {rgb}{0.88,1.,1.}
+\definecolor{LightGray} {gray}{0.92}
+\definecolor{LightYellow} {rgb}{1.,1.,0.88}
+\definecolor{Melon} {cmyk}{0,0.46,0.50,0}
+\definecolor{NavyBlue} {cmyk}{0.94,0.54,0,0}
+\definecolor{Orange} {rgb}{1.,0.65,0.}
+\definecolor{PaleGreen} {rgb}{0.6,0.98,0.6}
+\definecolor{PaleGreenB} {rgb}{0.9,1,0.9}
+\definecolor{Peach} {cmyk}{0,0.50,0.70,0}
+\definecolor{PeachPuff} {rgb}{1.0,0.85,0.73}
+\definecolor{PineGreen} {cmyk}{0.92,0,0.59,0.25}
+\definecolor{Pink} {rgb}{1.,0.75,0.8}
+\definecolor{RoyalBlue} {cmyk}{1,0.50,0,0}
+\definecolor{SeaGreen} {cmyk}{0.69,0,0.50,0}
+\definecolor{Salmon} {cmyk}{0,0.53,0.38,0}
+\definecolor{Sepia} {cmyk}{0,0.83,1,0.70}
+\definecolor{SlateBlue} {rgb}{0.42,0.35,0.8}
+\definecolor{Thistle} {rgb}{0.85,0.75,0.85}
+\definecolor{Turquoise} {cmyk}{0.85,0,0.20,0}
+\definecolor{Violet} {cmyk}{0.79,0.88,0,0}
+\definecolor{YellowOrange}{cmyk}{0,0.42,1,0}
+\fi
+
+% Definition of the (La)TeX string
+\newcommand{\AllTeX}{%
+{\textrm{(L\kern-.36em\raise.3ex\hbox{\textsc{%
+a}}\kern-.05em)T\kern-.1667em\lower.7ex\hbox{E}\kern-.125emX}}}
+
+% "dinglist" environment
+% Redefinition of it to be able to use colored symbols
+\renewenvironment{dinglist}[2][black]
+{\begin{list}{\ding{#2}}{}}{\end{list}}
+% Symbol definitions for these lists
+\newcommand{\DingListSymbolA}{43}
+\newcommand{\DingListSymbolB}{243}
+\newcommand{\DingListSymbolC}{224}
+\newcommand{\DingListSymbolD}{219}
+
+% Captions customizations
+\setlength{\abovecaptionskip}{1.5mm}
+
+% Centered paragraph title
+\newcommand{\CenteredParagraphTitle}[2][LemonChiffon]{%
+\centerline{\psshadowbox[fillstyle=solid,fillcolor=#1]{\large\HLe{#2}}}}
+
+% Paragraph title
+\newcommand{\ParagraphTitle}[2][LemonChiffon]{%
+\noindent\psshadowbox[fillstyle=solid,fillcolor=#1]{\large\HLe{#2}}}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+% `fancyvrb' customizations
+% -------------------------
+
+% Customized "Verbatim" environment
+\RecustomVerbatimEnvironment{Verbatim}{Verbatim}
+{commandchars=§µ¶,fontfamily=tt,frame=single,numbersep=2pt,framerule=0.15mm}
+
+% "OutputResults" environment to emphasize program outputs
+\DefineVerbatimEnvironment{OutputResults}{Verbatim}
+{commandchars=§µ¶,fontfamily=tt,frame=single,numbers=none,
+rulecolor=\color{blue},framerule=1mm}
+
+% Not inside the preceding environments themselves, to allow
+% local redefinitions
+\fvset{baselinestretch=0.9,fontsize=\small,numbers=left}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+% Seminar macros redefinitions
+% ----------------------------
+
+\providecommand\theHslide{\arabic{slide}}% hv 2021-06-24
+
+
+
+
+
+% We redefine the format of entries of the list of slides
+\def\listofslides{%
+ \hfuzz=7pt % To avoid the "Overfull \hbox" messages
+ \def\l@slide##1##2##3##4{%
+ \slide@dottedcline{##1 -- \hyperlink{##4}{##2}}%
+ {\slidenumberline{##3}}}%
+ \def\l@subslide##1##2##3##4{%
+ \slide@dottedcline{\hspace{2mm}##1 -- \hyperlink{##4}{##2}}%
+ {\slidenumberline{##3}}}%
+ \@startlos}
+
+\def\slide@dottedcline{\@dottedtocline{1}{1.5em}{2.3em}}
+
+\def\slide@subheading[#1]#2{%
+ \H@refstepcounter{slidesubsection}%
+ \addtocontents{los}{%
+% D.G. modification begin - Jan. 2, 2002
+% \protect\l@subslide{\the\c@slidesubsection}{\ignorespaces#1}%
+ \protect\l@subslide{\the\c@slidesection.\the\c@slidesubsection}%
+ {\ignorespaces#1}%
+% D.G. modification end
+ {\@SCTR}{slideheading.\theslidesubsection}%
+ }%
+ \def\Hy@tempa{#2}%
+ \ifx\Hy@tempa\@empty
+ \else
+ {%
+ \edef\@currentlabel{%
+ \csname p@slidesubsection\endcsname\theslidesubsection
+ }%
+ \makeslidesubheading{#2}%
+ }%
+ \fi
+ \gdef\theslidesubheading{#1}%
+ \ifHy@hypertexnames
+ \ifHy@naturalnames
+ \hyper@@anchor{slideheading.\theslidesubsection}{\relax}%
+ \Hy@writebookmark
+ {\theslidesubsection}%
+ {#1}%
+ {slideheading.\theslidesubsection}%
+ {2}%
+ {toc}%
+ \else
+ \hyper@@anchor{slideheading.\theHslidesubsection}{\relax}%
+ \Hy@writebookmark
+ {\theslidesubsection}%
+ {#1}%
+ {slideheading.\theHslidesubsection}%
+ {2}%
+ {toc}%
+ \fi
+ \else
+ \Hy@GlobalStepCount\Hy@linkcounter
+ \hyper@@anchor{slideheading.\the\Hy@linkcounter}{\relax}%
+ \Hy@writebookmark
+ {\theslidesubsection}%
+ {#1}%
+ {slideheading.\the\Hy@linkcounter}%
+ {1}%
+ {toc}%
+ \fi
+}%
+
+% We will need, for demonstration purposes, to define sections and subsections
+% without putting them in the list of slides
+\def\SlideHeadingsNoListOfSlides{%
+\def\slide@heading[##1]##2{%
+ \refstepcounter{slidesection}%
+ \@addtoreset{slidesubsection}{slidesection}
+% D.G. modification begin - Feb. 22, 2002
+% \addtocontents{los}{\protect\l@slide
+% {\the\c@slidesection}{\ignorespaces##1}{\@SCTR}}%
+% D.G. modification end
+ \def\@tempa{##2}%
+ \ifx\@tempa\@empty\else
+ {\edef\@currentlabel{\csname p@slidesection\endcsname\theslidesection}%
+ \makeslideheading{##2}}%
+ \fi
+ \gdef\theslideheading{##1}%
+ \gdef\theslidesubheading{}}
+%
+\def\slide@subheading[##1]##2{%
+ \refstepcounter{slidesubsection}%
+% D.G. modification begin - Feb. 22, 2002
+% \addtocontents{los}{\protect\l@subslide
+% {\the\c@slidesubsection}{\ignorespaces##1}{\@SCTR}}%
+% D.G. modification end
+ \def\@tempa{##2}%
+ \ifx\@tempa\@empty\else
+ {\edef\@currentlabel{\csname p@slidesubsection\endcsname
+ \theslidesubsection}\makeslidesubheading{##2}}%
+ \fi
+ \gdef\theslidesubheading{##1}}}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+% Seminar customizations
+% ----------------------
+
+% No default frame (really useful for old plastic slides only)
+\slideframe{none}
+
+% To center horizontally the headers and footers (see seminar.bug)
+\renewcommand{\headwidth}{\textwidth}
+
+% To adjust the frame length to the header and footer ones
+% \autoslidemarginstrue
+
+% Headers and footers, using the `fancyhdr' package
+
+\slidepagestyle{fancy}
+
+\newcommand{\SeminarHeader}[1]{\fancyhead[C]{\Large\textbf{\HLe{#1}}}}
+
+\newcommand{\SeminarStandardHeaderFooter}[4]{%
+\fancyhf{}%
+\fancyhead[R]{\theslide}
+\SeminarHeader{#1}
+\fancyfoot[L]{\raisebox{2.5mm}{\textbf{#2}}}
+\fancyfoot[R]{\raisebox{3mm}{\scriptsize#3 \@date}\\[-4.5mm]
+ {\tiny\textbf{#4}}}%
+% Change of the width of header and footer rules
+\def\headrulewidth{0.15mm}%
+\def\footrulewidth{0.15mm}%
+% Redefinition of the head line separator to have a double one
+\def\headrule{%
+\if@fancyplain\headrulewidth\plainheadrulewidth\fi
+\hrule\@height\headrulewidth\@width\headwidth \vskip 0.5mm
+\hrule\@height\headrulewidth\@width\headwidth \vskip -1mm}}
+
+% Customization of the headings and subheadings
+\renewcommand{\makeslideheading}[1]{%
+\CenteredParagraphTitle[red]{%
+\textcolor{white}{\textbf{\theslidesection{} -- #1}}}}
+\renewcommand{\makeslidesubheading}[1]{%
+\CenteredParagraphTitle{\theslidesubsection{} -- #1}}
+
+% For automatic definition of headers
+% ("Number - chapter : sub-chapter" or "Number - chapter" if no sub-chapter)
+% (we also suppress the first uppercase letter of the sub-chapter name,
+% if the optional "AsIs" keyword is not specified)
+\def\AsIs{AsIs}
+\def\SeminarStandardHeader@Separator{: }
+\newcommand{\SeminarStandardHeader}[1][]{%
+\SeminarHeader{%
+\ifx\theslidesubheading\empty
+ \theslidesection{} -- \theslideheading%
+\else
+ \edef\@tempa{#1}%
+ \ifx\@tempa\AsIs
+ \theslidesection{} -- \theslideheading{}\SeminarStandardHeader@Separator
+ \theslidesubheading%
+ \else
+ \theslidesection{} -- \theslideheading{}\SeminarStandardHeader@Separator %
+ \SeminarStandardHeader@i{\theslidesubheading}%
+ \fi
+\fi}}
+
+\def\SeminarStandardHeader@i#1{\expandafter\SeminarStandardHeader@ii#1\@nil}
+\def\SeminarStandardHeader@ii#1#2\@nil{\MakeLowercase{#1}#2}
+
+% Outline of the presentation
+\newcommand{\SeminarOutlinePresentation}[4]{%
+\ifx\SeminarColorVersion\AnswerYes
+ \begingroup
+ \SeminarHeader{#1}%
+ \def\SeminarOutlinePresentationBoolean{true}%
+ \renewcommand{\SeminarBackgroundCompositeColorFirst}{#2}%
+ \renewcommand{\SeminarBackgroundCompositeColorSecond}{#3}%
+ \SeminarSlideFrameBackground{SeminarBackgroundCompositeE}%
+ \pst@dimh=\slideleftmargin
+ \advance\pst@dimh by 35mm
+ \renewcommand{\slideleftmargin}{\the\pst@dimh}%
+ \setlength{\slidewidth}{289mm}%
+ \addtolength{\slidewidth}{-\slideleftmargin}%
+ \addtolength{\slidewidth}{-\sliderightmargin}%
+ \renewcommand{\slidestretch}{0}% To compact the list
+ \begin{slide}
+ \begingroup
+ \hypersetup{linkcolor=#4}%
+ \Slidecontents
+ \endgroup
+ \end{slide}
+ \endgroup
+\fi}
+
+% Backgrounds
+% -----------
+
+% Solid backgrounds
+
+% Default color
+\newcommand{\SeminarBackgroundSolidColor}{PeachPuff}
+
+\SeminarNewSlideFrameBackground{SeminarBackgroundSolid}{%
+\psframe[linestyle=none,fillstyle=solid,fillcolor=\SeminarBackgroundSolidColor]
+ (\SeminarPaperHeight,\SeminarPaperWidth)}
+
+% Gradient backgrounds
+
+% Default begin color, end color, angle and middle point
+\newcommand{\SeminarBackgroundGradientColorBegin}{LightYellow}
+\newcommand{\SeminarBackgroundGradientColorEnd}{Gold}
+\newcommand{\SeminarBackgroundGradientAngle}{0}
+\newcommand{\SeminarBackgroundGradientMidPoint}{0}
+
+\SeminarNewSlideFrameBackground{SeminarBackgroundGradient}{%
+\psframe[linestyle=none,fillstyle=gradient,
+ gradangle=\SeminarBackgroundGradientAngle,
+ gradmidpoint=\SeminarBackgroundGradientMidPoint,
+ gradbegin=\SeminarBackgroundGradientColorBegin,
+ gradend=\SeminarBackgroundGradientColorEnd]
+ (\SeminarPaperHeight,\SeminarPaperWidth)}
+
+% Default slope style, steps and center
+\newcommand{\SeminarBackgroundGradientSlopeStyle}{radslope}
+\newcommand{\SeminarBackgroundGradientSlopeSteps}{300}
+\newcommand{\SeminarBackgroundGradientSlopeCenter}{0.5 0.5}
+\newcommand{\SeminarBackgroundGradientSlopeAngle}{0}
+\newcommand{\SeminarBackgroundGradientSlopeRadius}{0}
+
+\SeminarNewSlideFrameBackground{SeminarBackgroundGradientSlope}{%
+\psframe[linestyle=none,fillstyle=\SeminarBackgroundGradientSlopeStyle,
+ slopebegin=\SeminarBackgroundGradientColorBegin,
+ slopeend=\SeminarBackgroundGradientColorEnd,
+ slopesteps=\SeminarBackgroundGradientSlopeSteps,
+ slopecenter=\SeminarBackgroundGradientSlopeCenter,
+ slopeangle=\SeminarBackgroundGradientSlopeAngle,
+ sloperadius=\SeminarBackgroundGradientSlopeRadius]
+ (\SeminarPaperHeight,\SeminarPaperWidth)}
+
+% Composite backgrounds
+
+% Default colors
+\newcommand{\SeminarBackgroundCompositeColorFirst}{LightBlue}
+\newcommand{\SeminarBackgroundCompositeColorSecond}{NavyBlue}
+\newcommand{\SeminarBackgroundCompositeColorThird}{RoyalBlue}
+
+% Utility macros for the composite backgrounds
+
+\newcount\PstFractal@DeepRecursion
+
+% The recursion macro used (from David Carlisle)
+\def\Recursion #1{%
+#1\relax
+ \expandafter\@firstoftwo
+\else
+ \expandafter\@secondoftwo
+\fi}
+
+% General definition of a fractal
+\def\PstFractal#1{%
+\ifx\PstFractalBegin\undefined
+\else
+ \PstFractalBegin
+\fi
+\Recursion
+ {\ifnum#1>\@ne\relax}
+ {\PstFractal@DeepRecursion=#1%
+ \advance\PstFractal@DeepRecursion\m@ne
+ \PstFractalRepeat{\PstFractal@DeepRecursion}}
+ {\PstFractalDefinition}}
+
+\def\PstSpiralSquare#1{%
+\def\PstFractalDefinition{\psframe(1,1)}%
+\def\PstFractalBegin{\PstFractalDefinition}%
+\def\PstFractalRepeat##1{%
+ % sqrt(0.2^2 + (1-0.2)^2)=0.824621
+ % arcsin(0.2/0.824621)=14.036246
+ \rput{-14.036246}(0,0.2){\psset{unit=0.824621}\PstFractal{##1}}}%
+\pspicture(1,1)
+ \PstFractal{#1}
+\endpspicture}
+
+% Composite background A
+\SeminarNewSlideFrameBackground{SeminarBackgroundCompositeA}{{%
+\psframe[linestyle=none,
+ fillstyle=solid,fillcolor=\SeminarBackgroundCompositeColorFirst]
+ (\SeminarPaperHeight,\SeminarPaperWidth)%
+\rput(4truemm,190truemm){%
+ \psframe[linestyle=none,fillstyle=gradient,gradmidpoint=1,gradangle=90,
+ gradbegin=\SeminarBackgroundCompositeColorSecond,
+ gradend=\SeminarBackgroundCompositeColorFirst](8,0.2)}}
+\rput(293truemm,14truemm){%
+ \psframe[linestyle=none,fillstyle=gradient,gradmidpoint=1,gradangle=90,
+ gradbegin=\SeminarBackgroundCompositeColorFirst,
+ gradend=\SeminarBackgroundCompositeColorSecond](-8,0.2)}}
+
+% Composite background B
+\SeminarNewSlideFrameBackground{SeminarBackgroundCompositeB}{{%
+\psframe[linestyle=none,
+ fillstyle=solid,fillcolor=\SeminarBackgroundCompositeColorFirst]
+ (\SeminarPaperHeight,\SeminarPaperWidth)%
+\rput(4truemm,190truemm){%
+ \psframe[linestyle=none,fillstyle=gradient,gradmidpoint=1,gradangle=90,
+ gradbegin=\SeminarBackgroundCompositeColorSecond,
+ gradend=\SeminarBackgroundCompositeColorFirst](-0.1,0)(5,0.2)
+ \psframe[linestyle=none,fillstyle=gradient,gradmidpoint=1,
+ gradbegin=\SeminarBackgroundCompositeColorSecond,
+ gradend=\SeminarBackgroundCompositeColorFirst](-0.1,0.03)(0.1,-5)}}
+\rput(293truemm,14truemm){%
+ \psframe[linestyle=none,fillstyle=gradient,gradmidpoint=1,gradangle=90,
+ gradbegin=\SeminarBackgroundCompositeColorFirst,
+ gradend=\SeminarBackgroundCompositeColorSecond](-5,0.2)(0.1,0)
+ \psframe[linestyle=none,fillstyle=gradient,gradmidpoint=1,
+ gradbegin=\SeminarBackgroundCompositeColorFirst,
+ gradend=\SeminarBackgroundCompositeColorSecond](-0.1,5)(0.1,0)}}
+
+% Composite background C
+\SeminarNewSlideFrameBackground{SeminarBackgroundCompositeC}{{%
+\psframe[linestyle=none,
+ fillstyle=solid,fillcolor=\SeminarBackgroundCompositeColorFirst]
+ (\SeminarPaperHeight,\SeminarPaperWidth)}
+\psset{xunit=1.3333,linecolor=\SeminarBackgroundCompositeColorSecond}%
+\@tempdima=\SeminarPaperHeight
+\divide\@tempdima\tw@
+\@tempdimb=\SeminarPaperWidth
+\divide\@tempdimb\tw@
+\multido{\nLength=5.5+-0.2,\iAngle=0+1}{30}{%
+ \rput{\iAngle}(\@tempdima,\@tempdimb){%
+ \psframe(-\nLength,-\nLength)(\nLength,\nLength)}}}
+
+% Composite background D
+\SeminarNewSlideFrameBackground{SeminarBackgroundCompositeD}{{%
+\psset{linestyle=none,fillstyle=gradient,gradmidpoint=0}%
+\psframe[gradbegin=\SeminarBackgroundCompositeColorFirst,
+ gradend=\SeminarBackgroundCompositeColorSecond]
+ (\SeminarPaperHeight,\SeminarPaperWidth)
+\multips(4truemm,50truemm)(10truemm,30truemm){3}{%
+ \psframe[gradbegin=\SeminarBackgroundCompositeColorSecond,
+ gradend=\SeminarBackgroundCompositeColorFirst]
+ (5truemm,180truemm)}
+\@tempdima=\SeminarPaperHeight
+\advance\@tempdima -29truemm
+\multips(\@tempdima,0)(10truemm,-30truemm){3}{%
+ \psframe[gradbegin=\SeminarBackgroundCompositeColorSecond,
+ gradend=\SeminarBackgroundCompositeColorFirst]
+ (5truemm,160truemm)}}}
+
+% Composite background E
+\SeminarNewSlideFrameBackground{SeminarBackgroundCompositeE}{{%
+\psset{linestyle=none,fillstyle=gradient,gradmidpoint=0.5}%
+\psframe[gradbegin=\SeminarBackgroundCompositeColorFirst,
+ gradend=\SeminarBackgroundCompositeColorSecond]
+ (\SeminarPaperHeight,\SeminarPaperWidth)
+\psframe[gradbegin=\SeminarBackgroundCompositeColorSecond,
+ gradend=\SeminarBackgroundCompositeColorFirst]
+ (5truemm,0)(35truemm,\SeminarPaperWidth)
+\multips(10truemm,10truemm)(0,20truemm){11}{%
+ \psframe[gradangle=90,
+ gradbegin=\SeminarBackgroundCompositeColorFirst,
+ gradend=\SeminarBackgroundCompositeColorSecond]
+ (20truemm,10truemm)}}}
+
+% Composite background F
+\SeminarNewSlideFrameBackground{SeminarBackgroundCompositeF}{{%
+\psset{linestyle=none,fillstyle=gradient,gradmidpoint=1,gradangle=90}%
+\psframe[gradbegin=\SeminarBackgroundCompositeColorFirst,
+ gradend=\SeminarBackgroundCompositeColorSecond]
+ (\SeminarPaperHeight,\SeminarPaperWidth)
+\@tempdima=\SeminarPaperWidth
+\advance\@tempdima -15truemm
+\psframe[gradbegin=\SeminarBackgroundCompositeColorSecond,
+ gradend=\SeminarBackgroundCompositeColorFirst]
+ (0,\@tempdima)(\SeminarPaperHeight,\SeminarPaperWidth)
+\psframe[gradbegin=\SeminarBackgroundCompositeColorSecond,
+ gradend=\SeminarBackgroundCompositeColorFirst]
+ (0,0)(\SeminarPaperHeight,15truemm)}}
+
+% Composite background G
+\SeminarNewSlideFrameBackground{SeminarBackgroundCompositeG}{{%
+\psset{linestyle=none,fillstyle=gradient,gradmidpoint=0,gradangle=30}%
+\psframe[gradbegin=\SeminarBackgroundCompositeColorFirst,
+ gradend=\SeminarBackgroundCompositeColorSecond]
+ (\SeminarPaperHeight,\SeminarPaperWidth)
+\@tempdima=\SeminarPaperWidth
+\advance\@tempdima -15truemm
+\psframe[gradbegin=\SeminarBackgroundCompositeColorSecond,
+ gradend=\SeminarBackgroundCompositeColorFirst]
+ (15truemm,-15truemm)(\SeminarPaperHeight,\@tempdima)
+\psframe[gradbegin=\SeminarBackgroundCompositeColorFirst,
+ gradend=\SeminarBackgroundCompositeColorSecond]
+ (15truemm,0)(\SeminarPaperHeight,15truemm)}}
+
+% Composite background H
+\SeminarNewSlideFrameBackground{SeminarBackgroundCompositeH}{{%
+\psset{linestyle=none,fillstyle=gradient,gradmidpoint=1}%
+\psframe[gradangle=0,gradbegin=\SeminarBackgroundCompositeColorFirst,
+ gradend=\SeminarBackgroundCompositeColorSecond]
+ (17mm,\SeminarPaperWidth)
+\@tempdima=\SeminarPaperWidth
+\advance\@tempdima -15mm
+\psframe[gradangle=90,gradbegin=\SeminarBackgroundCompositeColorFirst,
+ gradend=\SeminarBackgroundCompositeColorSecond]
+ (0,\@tempdima)(\SeminarPaperHeight,\SeminarPaperWidth)
+\advance\@tempdima 5mm
+\psframe*[linecolor=white,framearc=0.3](12mm,-20mm)(300mm,\@tempdima)
+\advance\@tempdima -5mm
+\psline[linestyle=solid,linewidth=0.3]{c-c}(4mm,\@tempdima)(90mm,\@tempdima)}}
+
+% Composite background I
+\SeminarNewSlideFrameBackground{SeminarBackgroundCompositeI}{{%
+\psset{linestyle=none,unit=15,fillstyle=gradient,gradmidpoint=0,
+ gradbegin=\SeminarBackgroundCompositeColorSecond,
+ gradend=\SeminarBackgroundCompositeColorFirst}%
+\@tempdima=\SeminarPaperHeight
+\divide\@tempdima\tw@
+\@tempdimb=\SeminarPaperWidth
+\divide\@tempdimb\tw@
+\rput(\@tempdima,\@tempdimb){\PstSpiralSquare{15}}}}
+
+% Composite background J
+
+% Sierpinski carpet
+\newcommand{\PstSierpinskiCarpet}[1]{{%
+\def\PstFractalDefinition{%
+ \psframe(1,1)
+ \psframe[fillstyle=solid,fillcolor=white](0.3333,0.3333)(0.6667,0.6667)}%
+\def\PstFractalBegin{\PstFractalDefinition}%
+\def\PstFractalRepeat##1{%
+ \rput(0,0){\psset{xunit=0.3333,yunit=0.3333}\PstFractal{##1}}
+ \rput(0.3333,0){\psset{xunit=0.3333,yunit=0.3333}\PstFractal{##1}}
+ \rput(0.6667,0){\psset{xunit=0.3333,yunit=0.3333}\PstFractal{##1}}
+ \rput(0,0.3333){\psset{xunit=0.3333,yunit=0.3333}\PstFractal{##1}}
+ \rput(0.6667,0.3333){\psset{xunit=0.3333,yunit=0.3333}\PstFractal{##1}}
+ \rput(0,0.6667){\psset{xunit=0.3333,yunit=0.3333}\PstFractal{##1}}
+ \rput(0.3333,0.6667){\psset{xunit=0.3333,yunit=0.3333}\PstFractal{##1}}
+ \rput(0.6667,0.6667){\psset{xunit=0.3333,yunit=0.3333}\PstFractal{##1}}}%
+\psset{dimen=middle}%
+\pspicture(1,1)
+ \PstFractal{#1}
+\endpspicture}}
+
+\SeminarNewSlideFrameBackground{SeminarBackgroundCompositeJ}{{%
+\psset{linestyle=none,xunit=\SeminarPaperHeight,yunit=\SeminarPaperWidth,
+ fillstyle=solid,fillcolor=\SeminarBackgroundCompositeColorFirst}%
+\@tempdima=\SeminarPaperHeight
+\divide\@tempdima\tw@
+\@tempdimb=\SeminarPaperWidth
+\divide\@tempdimb\tw@
+\rput(\@tempdima,\@tempdimb){\PstSierpinskiCarpet{3}}}}
+
+% Composite background K
+
+% Sierpinski triangle
+\newcommand{\PstSierpinskiTriangle}[1]{{%
+\def\PstFractalDefinition{%
+ \pspolygon(1;0)(1;1)(1;2)
+ \rput{-2}(0,0){\pspolygon(0.5;0.5)(0.5;1.5)(0.5;2.5)}}%
+\def\PstFractalBegin{\PstFractalDefinition}%
+\def\PstFractalRepeat##1{%
+ \rput(0.5;0){\psset{unit=0.5}\PstFractal{##1}}
+ \rput(0.5;1){\psset{unit=0.5}\PstFractal{##1}}
+ \rput(0.5;2){\psset{unit=0.5}\PstFractal{##1}}}%
+\rput{90}(0,0){%
+ \SpecialCoor
+ \degrees[3]
+ \psset{dimen=middle}%
+ \PstFractal{#1}}}}
+
+\SeminarNewSlideFrameBackground{SeminarBackgroundCompositeK}{{%
+\NormalCoor % Needed when \SpecialCoor is currently active
+\psset{linestyle=none,unit=6.8,fillstyle=gradient,gradmidpoint=0,
+ gradbegin=\SeminarBackgroundCompositeColorSecond,
+ gradend=\SeminarBackgroundCompositeColorFirst}%
+\@tempdima=\SeminarPaperHeight
+\divide\@tempdima\tw@
+\@tempdimb=\SeminarPaperWidth
+\divide\@tempdimb\tw@
+\advance\@tempdimb -35truemm
+\rput(\@tempdima,\@tempdimb){\PstSierpinskiTriangle{4}}}}
+
+% Backgrounds with external images
+
+% With image file name
+\newcommand{\SeminarBackgroundImageAngle}{0}
+\newcommand{\SeminarBackgroundImageFile}{Undefined}
+
+\SeminarNewSlideFrameBackground{SeminarBackgroundImage}{{%
+\@tempdima=\SeminarPaperHeight
+\divide\@tempdima\tw@
+\@tempdimb=\SeminarPaperWidth
+\divide\@tempdimb\tw@
+\rput(\@tempdima,\@tempdimb){%
+ \includegraphics[angle=\SeminarBackgroundImageAngle,
+ width=\SeminarPaperHeight,height=\SeminarPaperWidth]
+ {\SeminarBackgroundImageFile}}}}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+% To choice color or black and white version
+% ------------------------------------------
+
+% Note: we do not use booleans because we want to manage three states:
+% true, false and undefined. We must be able to force the value in front
+% of the file, before the \documentclass macro. If this is not done,
+% a question will be asked interactively (this can be falsely interactivity,
+% using for instance a command like "echo y | latex ..." on Unix systems)
+
+\def\AnswerYes{y}
+\def\SeminarColorQuestion{y}
+\def\SeminarPaperQuestion{n}
+
+% Definition of the styles to enrich text (color or black and white version)
+\def\SeminarColorVersion{\SeminarColorQuestion}
+ \usepackage{hcolor}
+
+% Screen or paper version?
+\def\SeminarPaperVersion]{\SeminarPaperQuestion}
+ \def\special@paper{297mm,210mm}% A4 format
+
+% A4 format
+\usepackage{sem-a4}
+\setlength{\slidewidth}{281mm}
+\setlength{\slideheight}{170mm}
+\def\SeminarPaperWidth{210truemm}
+\def\SeminarPaperHeight{297truemm}
+
+% Letter format
+%\setlength{\slidewidth}{261mm}
+%\setlength{\slideheight}{176mm}
+%\def\SeminarPaperWidth{215.9truemm}
+%\def\SeminarPaperHeight{279.4truemm}
+
+% General size parameters for all formats
+\renewcommand{\slidetopmargin}{15.5mm}
+\renewcommand{\slidebottommargin}{13mm}
+\renewcommand{\slideleftmargin}{4mm}
+\renewcommand{\sliderightmargin}{4mm}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+% Some general PSTricks useful add-ons
+% ------------------------------------
+
+% Initialization of PSTricks parameters
+
+% As \psset, but, opposite to it, this version allow the following syntax:
+% \def\MyPstFrame#1{{%
+% \def\Temp{#1}%
+% \ifx\Temp\empty
+% \else
+% \PstSet{#1}
+% \fi
+% \begin{pspicture}(2,2)
+% \psframe(2,2)
+% \end{pspicture}}}
+%
+% \def\PstParams{linecolor=red,fillstyle=solid,fillcolor=yellow}
+% \MyPstFrame{\PstParams}
+%
+% The syntax \MyPstFrame{linecolor=cyan,fillstyle=vlines} still work,
+% as with \psset
+
+\def\PstSet#1{\PstSet@i#1,\@nil\ignorespaces}
+
+\def\PstSet@i#1,{%
+\expandafter\PstSet@ii#1,\@nil
+\@ifnextchar\@nil{\@gobble}{\PstSet@i}}
+
+\def\PstSet@ii#1,{%
+\PstSet@iii#1=\@nil
+\@ifnextchar\@nil{\@gobble}{\PstSet@ii}}
+
+\def\PstSet@iii#1=#2\@nil{\psset{#1=#2}}
+
+% \DoPerChar macro from Juergen Schlegelmilch
+% °°°°°°°°°°°°°°°°
+% (<schlegel@Informatik.Uni-Rostock.de> - posted on c.t.t. Jan. 27, 1998)
+\def\DoPerChar#1#2#3\@nil{%
+#1#2%
+\edef\@tempa{#3}%
+\ifx\@tempa\@empty
+\else
+ \DoPerChar#1#3\@nil
+\fi}
+
+% To write a text vertically (but with letters horizontal)
+% °°°°°°°°°°°°°°°°°°°°°°°°°°
+\def\TextTurn#1{\DoPerChar\TextTurn@CharacterTurn#1\@nil}
+\def\TextTurn@CharacterTurn#1{\rotateleft{\,\hbox to 0mm{\hss#1\hss}}\,}
+
+% To print a string in a framebox of a specified length
+% °°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°
+\def\PstTab{\@ifnextchar[{\PstTab@i}{\PstTab@i[]}}
+\def\PstTab@i[#1]#2#3{{%
+\psset{#1}%
+\psframebox[framesep=0.06,framearc=0.8,shadow=true,shadowangle=45,shadowsize=0.1]{%
+ \rule[-0.5mm]{0mm}{2.5mm}%
+ \truncate[.]{#3}{\hfil#2\hfil}}}}
+
+% To print tabs for the sections
+% °°°°°°°°°°°°°°°°°°°°°°°°°°°°°°
+\def\SeminarTabs#1#2#3#4{%
+% #1 = length for each tab, #2 = font specifications (if changed),
+% #3 = color of the current section,
+% #4 = color for all sections except the current one
+%
+% Temporary redefinition of the OvalFrame PostScript macro
+% for better look for a tab
+\pst@Verb{%
+/OvalFrame {
+ x1 x2 eq y1 y2 eq or
+ { pop pop x1 y1 moveto x2 y2 L }
+ { y1 y2 sub abs
+ x1 x2 sub abs
+ 2 copy gt { exch pop } { pop } ifelse
+ 2 div exch
+ { dup 3 1 roll mul exch } if
+ 2 copy lt { pop } { exch pop } ifelse
+ /b ED
+ x1 y1 y2 add 2 div moveto
+ x1 y2 x2 y2 b arcto
+ x2 y2 x2 y1 b arcto
+% D.G. modification begin - Mar. 20, 2002
+% x2 y1 x1 y1 b arcto
+% x1 y1 x1 y2 b arcto
+ x2 y1 x1 y1 0 arcto
+ x1 y1 x1 y2 0 arcto
+% D.G. modification end
+ 16 { pop } repeat
+ closepath }
+ ifelse } def}%
+%
+\def\l@slide##1##2##3##4{\l@slide@i##1##2\@nil##4\@@nil}%
+\def\l@slide@i##1\ignorespaces ##2\@nil##3\@@nil{%
+\pst@@killglue% To eat the end of line after the \l@slide macro
+\ifnum##1=\c@slidesection
+ \def\SeminarTabsCurrentSectionColor{#3}%
+\else
+ \def\SeminarTabsCurrentSectionColor{#4}%
+\fi
+#2% To be able to change the font size, serie, etc.
+\hyperlink{##3}{%
+ \PstTab[fillstyle=solid,fillcolor=\SeminarTabsCurrentSectionColor]
+ {##2}{#1}}}%
+\let\l@subslide\@gobblefour
+\@startlos}
+
+% General annotation macro
+% °°°°°°°°°°°°°°°°°°°°°°°°
+
+% To add annotations on a page (slide), specially when using overlays
+% This is specially useful to add comments on a set of equations
+% or on program lines on a listing
+
+\newdimen\PstAnnotation@BoxBaselineskipDim
+\define@key[psset]{}{AnnotationBoxBaselineskip}{\pssetlength{\PstAnnotation@BoxBaselineskipDim}{#1}}
+\define@key[psset]{}{AnnotationBoxCommand}{\def\PstAnnotation@BoxCommand{#1}}
+\define@key[psset]{}{AnnotationBoxJustification}{\def\PstAnnotation@BoxJustification{#1}}
+
+\newdimen\PstAnnotation@BoxLengthDim
+\define@key[psset]{}{AnnotationBoxLength}{\pssetlength{\PstAnnotation@BoxLengthDim}{#1}}
+\define@key[psset]{}{AnnotationBoxStyle}{\def\PstAnnotation@BoxStyle{#1}}
+\define@key[psset]{}{AnnotationConnectionCommand}{\def\PstAnnotation@ConnectionCommand{#1}}
+
+\define@key[psset]{}{AnnotationConnectionBasicStyle}{\def\PstAnnotation@ConnectionBasicStyle{#1}}
+
+\define@key[psset]{}{AnnotationConnectionSpecialStyle}{\def\PstAnnotation@ConnectionSpecialStyle{#1}}
+
+\define@key[psset]{}{AnnotationReferencePoint}{\def\PstAnnotation@ReferencePoint{#1}}
+
+\define@key[psset]{}{AnnotationTextStyle}{\def\PstAnnotation@TextStyle{#1}}
+
+\define@key[psset]{}{AnnotationPositionX}{\def\PstAnnotation@PositionX{#1}}
+
+\define@key[psset]{}{AnnotationPositionY}{\def\PstAnnotation@PositionY{#1}}
+
+% Default values
+\psset{%
+ AnnotationBoxBaselineskip=0.5mm,
+ AnnotationBoxCommand=\psframebox,
+ AnnotationBoxLength=4cm,
+ AnnotationBoxJustification=r,
+ AnnotationBoxStyle={linewidth=0.015,framesep=0.05},
+ AnnotationConnectionCommand=\ncline,
+ AnnotationConnectionBasicStyle={arrows=->,nodesep=0.1},
+ AnnotationConnectionSpecialStyle=,
+ AnnotationReferencePoint=l,
+ AnnotationTextStyle=\scriptsize,
+ AnnotationPositionX=13.45,
+ AnnotationPositionY=0}
+
+\SpecialCoor
+
+\def\PstAnnotation{\@ifnextchar[{\PstAnnotation@i}{\PstAnnotation@i[]}}
+\def\PstAnnotation@i[#1]#2#3{{%
+\psset{#1}%
+\PstAnnotation@TextStyle
+\rput(\PstAnnotation@PositionX,0 | #2){%
+ \rput[\PstAnnotation@BoxJustification](0,\PstAnnotation@PositionY){%
+ \rnode[\PstAnnotation@ReferencePoint]{AnnotationNodeTemp}{%
+ \ifx\PstAnnotation@BoxStyle\@empty
+ \else
+ \PstSet{\PstAnnotation@BoxStyle}
+ \fi
+ \PstAnnotation@BoxCommand{%
+ \normalbaselineskip=\PstAnnotation@BoxBaselineskipDim
+ \begin{minipage}{\PstAnnotation@BoxLengthDim}
+ #3
+ \end{minipage}}}}}
+\ifx\PstAnnotation@ConnectionBasicStyle\@empty
+\else
+ \PstSet{\PstAnnotation@ConnectionBasicStyle}
+\fi
+\ifx\PstAnnotation@ConnectionSpecialStyle\@empty
+\else
+ \PstSet{\PstAnnotation@ConnectionSpecialStyle}
+\fi
+\PstAnnotation@ConnectionCommand{AnnotationNodeTemp}{#2}}}
+
+% To put a right brace to point an annotation
+\newcommand{\RightBrace}[1]{{% #1 = number of lines to put the brace around
+\@tempdima=#1 pt
+\advance\@tempdima\m@ne pt
+\divide\@tempdima\tw@
+\ifx\BaseLineStretchBrace\@undefined
+ \@tempdimb=\normalbaselineskip
+\else
+ \@tempdimb=\BaseLineStretchBrace\normalbaselineskip
+\fi
+\@tempdimc=\strip@pt\@tempdima\@tempdimb
+\advance\@tempdimc-0.1\@tempdimb
+%
+\setbox\z@\hbox{A}%
+\ifdim\@tempdimc<0.5\ht\z@
+ \advance\@tempdimc0.75\ht\z@
+\fi
+%
+$\left \}\rule[-\@tempdimc]{0mm}{\@tempdimc}\right.$}}
+
+% Macros useful when using overlays with the `listings' package
+% -------------------------------------------------------------
+
+\def\pnodeLstDown#1{%
+\@tempdima=0.5\normalbaselineskip
+\setbox\z@\hbox{A}%
+\ifdim\@tempdima<0.5\ht\z@
+ \advance\@tempdima0.25\ht\z@
+\else
+ \advance\@tempdima-0.5\ht\z@
+\fi
+\pnode(0,-\@tempdima){#1}}
+\def\pnodeLstUp#1{\setbox\z@\hbox{A}\pnode(0,0.5\ht\z@){#1}}
+\def\rnodeLst#1#2#3{\rnode[#1]{#2}{#3}}
+
+\catcode`\@=\SeminarAtCode\relax
+\endinput
+% End seminar.con