%%%%%%%%%%%%%%%%%%%%%%%%%%% -*- 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) %% Created the : 1993 %% Last mod. by : hv %% Last mod. the : 2021-06-24 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \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 % °°°°°°°°°°°°°°°° % ( - 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