From 661380740cba9728be71d20fc9de02348db3c811 Mon Sep 17 00:00:00 2001 From: Karl Berry Date: Fri, 13 Jan 2006 00:39:55 +0000 Subject: seminary git-svn-id: svn://tug.org/texlive/trunk@1475 c570f23f-e606-0410-a88d-b1316a301751 --- Master/texmf-dist/tex/latex/seminar/2up.sty | 3 + Master/texmf-dist/tex/latex/seminar/2up.tex | 371 +++++++ Master/texmf-dist/tex/latex/seminar/fancybox.sty | 975 +++++++++++++++++ Master/texmf-dist/tex/latex/seminar/npsfont.sty | 193 ++++ Master/texmf-dist/tex/latex/seminar/semcolor.sty | 66 ++ Master/texmf-dist/tex/latex/seminar/seminar.bg2 | 252 +++++ Master/texmf-dist/tex/latex/seminar/seminar.bug | 197 ++++ Master/texmf-dist/tex/latex/seminar/seminar.cls | 1207 ++++++++++++++++++++++ Master/texmf-dist/tex/latex/seminar/semlayer.sty | 146 +++ Master/texmf-dist/tex/latex/seminar/semrot.sty | 70 ++ Master/texmf-dist/tex/latex/seminar/slidesec.sty | 200 ++++ Master/texmf-dist/tex/latex/seminar/xcomment.sty | 182 ++++ 12 files changed, 3862 insertions(+) create mode 100644 Master/texmf-dist/tex/latex/seminar/2up.sty create mode 100644 Master/texmf-dist/tex/latex/seminar/2up.tex create mode 100644 Master/texmf-dist/tex/latex/seminar/fancybox.sty create mode 100644 Master/texmf-dist/tex/latex/seminar/npsfont.sty create mode 100644 Master/texmf-dist/tex/latex/seminar/semcolor.sty create mode 100644 Master/texmf-dist/tex/latex/seminar/seminar.bg2 create mode 100644 Master/texmf-dist/tex/latex/seminar/seminar.bug create mode 100644 Master/texmf-dist/tex/latex/seminar/seminar.cls create mode 100644 Master/texmf-dist/tex/latex/seminar/semlayer.sty create mode 100644 Master/texmf-dist/tex/latex/seminar/semrot.sty create mode 100644 Master/texmf-dist/tex/latex/seminar/slidesec.sty create mode 100644 Master/texmf-dist/tex/latex/seminar/xcomment.sty diff --git a/Master/texmf-dist/tex/latex/seminar/2up.sty b/Master/texmf-dist/tex/latex/seminar/2up.sty new file mode 100644 index 00000000000..ec109716932 --- /dev/null +++ b/Master/texmf-dist/tex/latex/seminar/2up.sty @@ -0,0 +1,3 @@ +\ProvidesPackage{2up}[1998/03/13 package wrapper for 2up.tex] +\input 2up.tex +\endinput diff --git a/Master/texmf-dist/tex/latex/seminar/2up.tex b/Master/texmf-dist/tex/latex/seminar/2up.tex new file mode 100644 index 00000000000..51b72e80116 --- /dev/null +++ b/Master/texmf-dist/tex/latex/seminar/2up.tex @@ -0,0 +1,371 @@ +%% BEGIN 2up.tex/2up.sty +%% +\def\fileversion{1.2} +\def\filedate{93/01/28} +%% +%% COPYRIGHT 1992, 1993 by Timothy Van Zandt, Timothy.VAN-ZANDT@insead.edu +%% +%% DESCRIPTION: +%% 2up.tex/2up.sty provides two-up printing for Generic TeX (e.g., +%% Plain, LaTeX, AmSTeX and AmS-LaTeX). It produces a standard dvi file, +%% and does not involve an additional dvi or PostScript filter. It has a +%% flexible interface for specifying paper size and layout. +%% +%% INSTALLATION: +%% Put this file where your TeX looks for inputs, under the name 2up.tex. +%% Name a copy 2up.sty to use as a LaTeX style option, or create a file +%% 2up.sty with the lines: +%% \input 2up.tex +%% \endinput +%% +%% DOCUMENTATION: +%% Input 2up.tex, or include 2up as a LaTeX style option. There is a +%% good chance you will get the desired layout. (But you will probably +%% need to generate new font bitmaps to get high quality output.) See +%% 2up.doc, which might be appended to this file, for detailed +%% documentation. +%% +%% CODE: +% +\csname TwoUpLoaded\endcsname +\let\TwoUpLoaded\endinput +% +\edef\TheAtCode{\the\catcode`\@} +\catcode`\@=11\relax +\message{\space\space v\fileversion\space\space \filedate\space\space } +% +% Parameter registers: +\newdimen\@targetwidth +\newdimen\@targetheight +\newdimen\@sourcewidth +\newdimen\@sourceheight +\newdimen\pageseplength +\newdimen\pagesepwidth +\newdimen\pagesepoffset +\newif\if@sidebyside +\@sidebysidetrue +\newif\if@twosided +% +% Registers used by output routine. +\newif\if@leftpage +\@leftpagetrue +\newbox\@leftpage +\newbox\@rightpage +\newcount\@physicalpage +% +% Since pages are shipped out half as often: +\multiply\maxdeadcycles by 2 +% +% Registers used only for booklet layout: +\begingroup + \let\newcount\relax + \gdef\booklet@registers{% + \newcount\bookletpage + \bookletpage=0 + \newcount\leftpagenumber + \newcount\rightpagenumber + \multiply\maxdeadcycles by 20} +\endgroup +% +% A useful extension of the \magstep macro. +\def\magstepminus#1{% + \ifcase#1 \@m\or 833\or 694\or 579\or 482\or 401\fi\relax} +% +% \@targetwidth and \@targetheight are set to the *unmagnified* dimensions +% of the target page. \inv@targetmag is the inverse of the target +% magnification. +{\catcode`\p=12\catcode`\t=12\gdef\@@inv@@mag#1pt#2{\def#2{#1}}} +\def\target#1#2#3{% + \mag #1\relax + \@targetwidth=1000pt + \divide\@targetwidth by #1\relax + \expandafter\@@inv@@mag\the\@targetwidth\inv@targetmag + \@targetwidth=#2\relax + \@targetwidth=\inv@targetmag\@targetwidth + \@targetheight=#3\relax + \@targetheight=\inv@targetmag\@targetheight} +% +% Like \target, but for the source: +\def\source#1#2#3{% + \@sourcewidth=1000pt + \divide\@sourcewidth by #1\relax + \expandafter\@@inv@@mag\the\@sourcewidth\inv@sourcemag + \@sourcewidth=#2\relax + \@sourcewidth=\inv@sourcemag\@sourcewidth + \@sourceheight=#3\relax + \@sourceheight=\inv@sourcemag\@sourceheight} +% +% \targetlayout does a loop that reads the comma separated arguments. +% There can be no extraneous spaces. +\def\targetlayout#1{\process@targetlayout#1,stop,} +\def\process@targetlayout#1,{% + \expandafter\let\expandafter\next\csname target@#1\endcsname + \ifx\next\relax + \begingroup + \errhelp{Valid target layouts are "topbottom", "twosided", + "booklet", "Booklet" and "dvidvi".}% + \errmessage{`#1' is invalid 2up target layout - ignored.}% + \endgroup + \expandafter\process@targetlayout + \else + \next + \fi} +\def\target@stop{} +\def\target@booklet{% + \booklet@registers + \def\ship@@@leftpage{\save@booklet\@leftpage}% + \def\ship@@@rightpage{\save@booklet\@rightpage}% + \@leftpagefalse + \def\twoup@eject{\twoup@eject@booklet}% + \expandafter\process@targetlayout} +\def\target@Booklet{% + \def\booklet@@loop{\Booklet@@loop}% + \target@booklet} +\def\target@twosided{% + \@twosidedtrue + \expandafter\process@targetlayout} +\def\target@topbottom{% + \def\make@@halfpage{\make@@halftopbottom}% + \def\make@fullpage{\make@fulltopbottom}% + \@sidebysidefalse + \expandafter\process@targetlayout} +\def\target@dvidvi{% + \def\ship@@@leftpage{\ship@dvidvi\@leftpage}% + \def\ship@@@rightpage{\ship@dvidvi\@rightpage}% + \expandafter\process@targetlayout} +% +% TeX's \shipout primitive is saved as \&normal@shipout, and then \shipout +% is defined to save each page to \@leftpage or \@rightpage and to print out +% every two. With the twosided layout, filler pages are added when needed. +\expandafter\let\csname &normal@shipout\endcsname\shipout +\def\shipout{% + \if@leftpage + \global\@leftpagefalse + \def\next{\afterassignment\ship@leftpage\global\setbox\@leftpage=}% + \if@twosided + \ifodd\count\z@ + \global\setbox\@leftpage=\hbox{}% + \make@@halfpage\@leftpage\ship@@@leftpage + \def\next{\shipout}% + \fi + \fi + \else + \global\@leftpagetrue + \def\next{\afterassignment\ship@rightpage\global\setbox\@rightpage=}% + \if@twosided + \ifodd\count\z@ + \else + \global\setbox\@rightpage=\hbox{}% + \make@@halfpage\@rightpage\ship@@@rightpage + \def\next{\shipout}% + \fi + \fi + \fi + \next} +% +% The job of \ship@leftpage and \ship@rightpage is to invoke \ship@@leftpage +% or \ship@@rightpage at the right time. \shipout is followed either +% (i) by an \hbox, \vbox or \vtop, in which case \ship@leftpage is invoked +% after the opening {. \@leftpage is void, and \ship@leftpage invokes +% \ship@@leftpage after the closing }, or +% (ii) by a \box or \copy, in which case \ship@leftpage is invoked after +% the full assignment. \@leftpage is not voide, and \ship@leftpage invokes +% \ship@@leftpage immediately. +\def\ship@leftpage{% + \ifvoid\@leftpage\aftergroup\ship@@leftpage\else\ship@@leftpage\fi} +\def\ship@rightpage{% + \ifvoid\@rightpage\aftergroup\ship@@rightpage\else\ship@@rightpage\fi} +% +% \ship@@leftpage/\ship@@rightpage take the output box, and first make it +% into a fully-size source page (with \make@halfpage) and then this is +% centered horizontally and vertically in half of a target page (with +% \make@@halfpage). Then they are shipped individually or together. +\def\ship@@leftpage{\make@halfpage\@leftpage\ship@@@leftpage} +\def\ship@@rightpage{\make@halfpage\@rightpage\ship@@@rightpage} +\def\make@halfpage#1{% + \dp#1=\z@ + \setbox#1=\vbox to\@sourceheight{% + \vskip \inv@sourcemag in + \vskip \voffset + \hbox to\@sourcewidth{\hskip\inv@sourcemag in\hskip\hoffset\box#1\hss}% + \vss}% + \make@@halfpage#1} +% +% The definition of \make@@halfpage depends on the target layout. +\def\make@@halfsidebyside#1{% + \global\setbox#1=\vbox to\@targetheight{\vss + \hbox to.5\@targetwidth{\hss\box#1\hss}\vss}} +\def\make@@halftopbottom#1{% + \global\setbox#1=\vbox to.5\@targetheight{\vss + \hbox to\@targetwidth{\hss\box#1\hss}\vss}} +\def\make@@halfpage{\make@@halfsidebyside} +% +% The pages are generaly shipped in pairs: +\def\ship@twoup{% + \begingroup + \voffset=-\inv@targetmag in + \hoffset=\voffset + \global\advance\@physicalpage by 1 + \count\z@=\@physicalpage + \csname &normal@shipout\endcsname\make@fullpage + \endgroup} +\let\ship@@@leftpage\relax +\def\ship@@@rightpage{\ship@twoup} +% +% The definition of \make@fullpage depends on the layout: +\def\make@fullsidebyside{% + \hbox{\box\@leftpage\pagesep@sidebyside\box\@rightpage}} +\def\make@fulltopbottom{% + \vbox{\offinterlineskip\box\@leftpage\pagesep@topbottom\box\@rightpage}} +\def\make@fullpage{\make@fullsidebyside} +% +% A vertical or horizontal rule can be inserted. These can be redefined +% for other tricks: +\def\pagesep@sidebyside{% + \begingroup + \advance\pageseplength by \pagesepoffset + \pagesepwidth=\inv@targetmag\pagesepwidth + \kern -.5\pagesepwidth + \vrule height \inv@targetmag\pageseplength + depth -\inv@targetmag\pagesepoffset + width \pagesepwidth + \kern -.5\pagesepwidth + \endgroup} +\def\pagesep@topbottom{% + \begingroup + \pagesepwidth=\inv@targetmag\pagesepwidth + \vskip -.5\pagesepwidth + \moveright\inv@targetmag\pagesepoffset\hbox{% + \vrule height\pagesepwidth width\inv@targetmag\pageseplength}% + \vskip -.5\pagesepwidth + \endgroup} +% +% With the dvidvi layout, the pages are shipped individually: +\def\ship@dvidvi#1{% + \begingroup + \voffset=-\inv@targetmag in + \hoffset=\voffset + \csname &normal@shipout\endcsname\box#1% + \endgroup} +% +% With the booklet or Booklet layout, the pages are saved rather than +% shipped. +\begingroup +\let\newbox\relax +\gdef\save@booklet#1{% + \begingroup + \globaldefs=1 + \advance\bookletpage by 1 + \expandafter\newbox\csname bookletbox\the\bookletpage\endcsname + \expandafter\setbox\csname bookletbox\the\bookletpage\endcsname\box#1% + \endgroup} +\endgroup +% +% The pages are then printed at the end with the following macros: +\def\make@bookletpage#1{% + \setbox\ifodd#1\@rightpage\else\@leftpage\fi=% + \expandafter\box\csname bookletbox\the#1\endcsname} +\def\booklet@loop{% + \count\z@\rightpagenumber + \make@bookletpage\leftpagenumber + \make@bookletpage\rightpagenumber + \ship@twoup + \booklet@@loop} +\def\booklet@@loop{% + \advance\rightpagenumber by 2 + \advance\leftpagenumber by -2 + \ifnum\leftpagenumber<1\else\expandafter\booklet@loop\fi} +\def\Booklet@@loop{% + \advance\rightpagenumber by 1 + \advance\leftpagenumber by -1 + \ifnum\leftpagenumber<\rightpagenumber\else\expandafter\booklet@loop\fi} +% +% This one is easy: +\def\twoupemptypage{\shipout\hbox{}} +% +% This clears a whole target page if there is a saved left page. Note that +% this does not invoke the output routine; i.e., it is not like \clearpage +% or \supereject. See \twoupclearpage and \twoupeject below. +\def\twoup@eject{% + \if@leftpage\else + \global\setbox\@rightpage\hbox{}% + \make@@halfpage\@rightpage\ship@@@rightpage + \global\@leftpagetrue + \fi} +% +% This is the definition of \twoup@eject with the booklet option: +\def\twoup@eject@booklet{% + \leftpagenumber\bookletpage + \advance\leftpagenumber by 3 + \divide\leftpagenumber by 4 + \multiply\leftpagenumber by 4 + \rightpagenumber=1 + \ifnum\leftpagenumber>\bookletpage + \setbox\@leftpage\hbox{}% + \make@@halfpage\@leftpage + \loop + \setbox\@rightpage\copy\@leftpage + \save@booklet\@rightpage + \ifnum\leftpagenumber>\bookletpage + \repeat + \fi + \booklet@loop} +% +% This modification is needed for \LaTeX in order to get the last page +% printed out if the final page is a left page (the catcode business is +% because \enddocument is \let to \bye in amstex): +\begingroup +\expandafter\ifx\csname @latexerr\endcsname\relax + \catcode`\>=14\else\catcode`\>=9\fi\relax +>>\gdef\twoupclearpage{\clearpage\twoup@eject} +>>\expandafter\@temptokena\expandafter{\enddocument} +>>\xdef\enddocument{\noexpand\twoupclearpage\the\@temptokena} +\endgroup +% +% For most other macro packages we could just leave be and all pages would +% always be printed because of the way the \end primitive works (except that +% TeX will go bonkers with the booklet layout). However, +% sometimes a blank filler page would be printed *with* headings. We prefer +% the filler page to be truly blank. To achieve this, we hack the definition +% of \end. This may cause problems with some macros. +\expandafter\ifx\csname @latexerr\endcsname\relax + \let\twoup@@@end\end + \def\end{\twoup@eject\twoup@@@end} + \def\twoupeject{\par\vfil\supereject\twoup@eject} +\fi +% +% This is one workaround for the page cross-references problem +\def\TwoupWrites{% + \let\TwoupSaved@write\write + \let\TwoupSaved@read\read + \let\TwoupSaved@openout\openout + \let\TwoupSaved@closeout\closeout + \def\write{\TwoupSaved@write-1{}\immediate\TwoupSaved@write}% + \def\read{\TwoupSaved@write-1{}\immediate\TwoupSaved@read}% + \def\openout{\TwoupSaved@write-1{}\immediate\TwoupSaved@openout}% + \def\closeout{\TwoupSaved@write-1{}\immediate\TwoupSaved@closeout}% + \let\TwoupWrites\relax} +% +% Defaults: +\def\twouparticle{% + \target{\magstepminus1}{11in}{8.5in}% + \source{\magstep0}{8.5in}{11in}} +\def\twoupplain{% + \target{\magstepminus2}{11in}{8.5in}% + \source{\magstep0}{8.5in}{11in}} +\def\twouplegaltarget{% + \target{\magstepminus1}{14in}{8.5in}% + \source{\magstep0}{8.5in}{11in}}% +\def\twouplandscape{% + \target{\magstepminus2}{8.5in}{11in}% + \source{\magstep0}{11in}{8.5in}% + \targetlayout{topbottom}} +\expandafter\ifx\csname @latexerr\endcsname\relax + \twoupplain\else\twouparticle\fi +\pagesepwidth 0pt +\pageseplength 6.5in +\pagesepoffset 1in +% +\expandafter\catcode`\@=\TheAtCode\relax +\endinput +%% END 2up.tex/2up.sty diff --git a/Master/texmf-dist/tex/latex/seminar/fancybox.sty b/Master/texmf-dist/tex/latex/seminar/fancybox.sty new file mode 100644 index 00000000000..2abe7e2f5ef --- /dev/null +++ b/Master/texmf-dist/tex/latex/seminar/fancybox.sty @@ -0,0 +1,975 @@ +%% BEGIN fancybox.sty +%% +%% With corrections and suggestions from: +%% - Marcin Wolinski +%% - Heiko Oberdiek +%% +\def\fileversion{1.3} +\def\filedate{2000/09/19} +% DG/SR modification begin - September 19, 2000 +% (suggested by Heiko Oberdiek ) +\@ifundefined{ProvidesPackage}{}{% + \ProvidesPackage{fancybox}[\filedate\space\fileversion]} +% DG/SR modification end +% DG/SR modification begin - May 16, 1997 +\providecommand\@begindvi{} % For rather old versions of LaTeX 2e +% DG/SR modification end +% DG/SR modification begin - Feb. 27, 1997 +% Now defined only in latex209.def +\def\@lquote{\leavevmode{\kern\z@}`} +% DG/SR modification end +%% +%% COPYRIGHT 1993, by Timothy Van Zandt, Timothy.VAN-ZANDT@insead.edu +%% +%% DESCRIPTION: +%% fancybox.sty is a LaTeX style option, consisting of: +%% * Variants of \fbox: \shadowbox, \doublebox, \ovalbox, \Ovalbox. +%% * Helpful tools for using box macros. +%% * Extensive documentation about how to use box macros. +%% * Flexible verbatim macros. +%% +%% INSTALLATION: +%% Put this file where your TeX looks for inputs. +%% +%% DOCUMENTATION: +%% See fancybox.doc, which might be appended to this file. +%% +%% CODE: +\expandafter\ifx\csname fb@framepage\endcsname\relax\else + \expandafter\endinput +\fi +\typeout{Style option: `fancybox' v\fileversion \space <\filedate> (tvz)} + +\newbox\@fancybox +\@ifundefined{@tempdimc}{\newdimen\@tempdimc}{} + +%% \shadowbox + +\newdimen\shadowsize +\shadowsize 4pt + +\def\shadowbox{\VerbBox\@shadowbox} +\def\@shadowbox#1{% + \setbox\@fancybox\hbox{\fbox{#1}}% + \leavevmode\vbox{% + \offinterlineskip + \dimen@=\shadowsize + \advance\dimen@ .5\fboxrule + \hbox{\copy\@fancybox\kern-.5\fboxrule\lower\shadowsize\hbox{% + \vrule \@height\ht\@fancybox \@depth\dp\@fancybox \@width\dimen@}}% + \vskip-\dimen@ + \moveright\shadowsize\vbox{% + \hrule \@width\wd\@fancybox \@height\dimen@}}} + +% \fancyoval + +\def\cornersize{\@ifstar{\@cornersize}{\@@cornersize}} +\def\@cornersize#1{% + \@tempdima=#1\relax + \edef\the@cornersize{\number\@tempdima sp}} +\def\@@cornersize#1{% + \edef\the@cornersize{#1\noexpand\@tempdimb}} +\cornersize{.5} + +% This is just a simple change to \oval, making use of the \cornersize +% parameter instead of making the corner arcs are large as possible. + +\def\fancyoval(#1,#2){\@ifnextchar[{\fancy@oval(#1,#2)}{\fancy@oval(#1,#2)[]}} + +\def\fancy@oval(#1,#2)[#3]{% + \begingroup + \fancy@@oval{#1\unitlength}{#2\unitlength}{#3}% + \@put{-.5\wd\@tempboxa}{-.5\ht\@tempboxa}{\ht\@tempboxa=\z@\box\@tempboxa}% + \endgroup} + +\def\fancy@@oval#1#2#3{% + \boxmaxdepth \maxdimen + \@ovttrue \@ovbtrue \@ovltrue \@ovrtrue + \@tfor\@tempa :=#3\do{\csname @ov\@tempa false\endcsname}% + \@ovxx#1\relax + \advance\@ovxx-\@wholewidth + \@ovyy#2\relax + \advance\@ovyy-\@wholewidth + \@tempdimb \ifdim \@ovyy >\@ovxx \@ovxx\else \@ovyy \fi + \advance\@tempdimb-2\p@ + \ifdim\@tempdimb>\the@cornersize\relax + \@tempdimb=\the@cornersize + \fi + \@getcirc\@tempdimb + \@ovro\ht\@tempboxa \@ovri\dp\@tempboxa + \@ovdx\@ovxx \advance\@ovdx-\@tempdima \divide\@ovdx \tw@ + \@ovdy\@ovyy \advance\@ovdy-\@tempdima \divide\@ovdy \tw@ + \@circlefnt + \setbox\@tempboxa\hbox{% + \if@ovr \@ovvert32\kern -\@tempdima \fi + \if@ovl \kern \@ovxx \@ovvert01\kern -\@tempdima \kern -\@ovxx \fi + \if@ovt \@ovhorz \kern -\@ovxx \fi + \if@ovb \raise \@ovyy \@ovhorz \fi}% + \advance\@ovdx\@ovro + \advance\@ovdy\@ovro + \advance\@ovxx\@wholewidth + \wd\@tempboxa=\@ovxx + \dp\@tempboxa=\z@} + +% \ovalbox + +\def\ovalbox{\VerbBox{\@ovalbox\thinlines}} +\def\Ovalbox{\VerbBox{\@ovalbox\thicklines}} +\def\@ovalbox#1#2{% + \begingroup + #1\relax + \setbox\@fancybox\hbox{{#2}}% + \@tempdimc\fboxsep \advance\@tempdimc\@wholewidth + \@tempdima\ht\@fancybox \advance\@tempdima\dp\@fancybox + \advance\@tempdima2\@tempdimc + \@tempdimb\wd\@fancybox \advance\@tempdimb2\@tempdimc + \fancy@@oval\@tempdimb\@tempdima{}% + \@tempdima\dp\@fancybox \advance\@tempdima\@tempdimc + \wd\@tempboxa=\z@ + \leavevmode\hbox{% + \lower\@tempdima\box\@tempboxa + \kern\@tempdimc\box\@fancybox\kern\@tempdimc}% + \endgroup} + +% \doublebox + +\def\doublebox{\VerbBox\@doublebox} +\def\@doublebox#1{% + \begingroup + \setbox\@fancybox\hbox{{#1}}% + \fboxrule=.75\fboxrule + \setbox\@fancybox\hbox{\fbox{\box\@fancybox}}% + \fboxrule=2\fboxrule + \fboxsep=\fboxrule + \advance\fboxsep .5pt + \fbox{\box\@fancybox}% + \endgroup} + +% Frames for seminar.sty: + +\@ifundefined{newslideframe}{}{% + \newslideframe{shadow}{\shadowbox{#1}} + \newslideframe{double}{\doublebox{#1}} + \newslideframe{oval}{\ovalbox{#1}} + \newslideframe{Oval}{\Ovalbox{#1}}} + +% Sbox environment + +\newbox\@Sbox + +\def\Sbox{\global\setbox\@Sbox\hbox\bgroup\ignorespaces} + +\def\endSbox{% + \@testtrue\ifhmode\ifinner\@testfalse\fi\fi + \if@test\@latexerr{Misplaced \string\endSbox! Should be in LR mode}\@ehd\fi + \egroup} + +\def\TheSbox{% + \ifvoid\@Sbox + \@latexerr{\string\TheSbox\space is empty!}\@ehd + \else + \box\@Sbox + \fi} + +\def\beginsbox#1{\setbox#1\hbox\bgroup\ignorespaces} + +\def\endsbox{\endSbox} + +% \VerbBox + +\newtoks\do@VerbBox + +\def\VerbBox#1{% + \do@VerbBox{#1}% + \afterassignment\begin@VerbBox + \setbox\@fancybox=\hbox} +\def\begin@VerbBox{\aftergroup\end@VerbBox} +\def\end@VerbBox{\the\do@VerbBox{\box\@fancybox}}% + +% \Btrivlist + +\def\@Blistrestore{% + \let\par\relax + \let\-\@dischyph \let\'\@acci \let\`\@accii \let\=\@acciii + \lineskip\normallineskip \baselineskip\normalbaselineskip} + +\def\Btrivlist#1{\@ifnextchar[{\@Btrivlist{#1}}{\@Btrivlist{#1}[]}} +\def\@Btrivlist#1[#2]{% + \@Blistrestore + \let\\=\@Btrivlistcr + \fb@beginvbox{#2}% + \halign\bgroup + \if#1l\else\@empty\hfil\fi + \ignorespaces##\unskip + \if#1r\@empty\else\hfil\fi\cr} +\def\endBtrivlist{\crcr\egroup\egroup\if@pboxsw$\fi} + +\def\fb@beginvbox#1{% + \leavevmode + \@pboxswfalse + \if#1b\@empty\vbox\else\if#1t\@empty\vtop\else + \ifmmode\vcenter\else\@pboxswtrue$\vcenter\fi + \fi\fi\bgroup} + +\def\@Btrivlistcr{\@ifstar + {\@ifnextchar[{@@Btrivlistcr}{\cr}}{\@ifnextchar[{\@@Btrivlistcr}{\cr}}} +\def\@@Btrivlistcr[#1]{\cr\noalign{\vskip #1}} + +\def\Bcenter{\Btrivlist{c}} +\def\endBcenter{\endBtrivlist} + +\def\Bflushleft{\Btrivlist{l}} +\def\endBflushleft{\endBtrivlist} + +\def\Bflushright{\Btrivlist{r}} +\def\endBflushright{\endBtrivlist} + +% \Blist + +\def\Blist#1#2{\@ifnextchar[{\@Blist{#1}{#2}}{\@Blist{#1}{#2}[]}} + +\def\@Blist#1#2[#3]{% + \ifnum\@listdepth>5 + \@toodeep + \else + \global\advance\@listdepth\@ne + \fi + \itemindent\z@ + \csname @list\romannumeral\the\@listdepth\endcsname + \def\@itemlabel{#1}% + \let\makelabel\@mklab + \@nmbrlistfalse + \@Blistrestore + \let\\=\@Blistcr + \let\item\Bitem + \@Bitemswfalse + #2\relax + \fb@beginvbox{#3}% + \halign\bgroup + \ignorespaces##&\hskip\labelsep\ignorespaces##\unskip\hfil\cr} + +\def\endBlist{\endBtrivlist\global\advance\@listdepth\m@ne} + +\newif\if@Bitemsw + +\def\Bitem{\@ifnextchar({\@Bitemcr\Bitem@skip}{\@Bitemcr\@Bitem}} + +\def\@Bitemcr{% + \if@Bitemsw + \def\next{\cr\noalign{\vskip\itemsep}}% + \else + \def\next{\global\@Bitemswtrue}% + \fi + \next} + +\def\Bitem@skip(#1){\noalign{\vskip #1}\@Bitem} + +\def\@Bitem{\@ifnextchar[{\Bitem@label}{\Bitem@nolabel}} + +\def\Bitem@label[#1]{\makelabel{#1}&} + +\def\Bitem@nolabel{% + \if@nmbrlist + \expandafter\advance\csname c@\@listctr\endcsname1 \fi + \makelabel{\@itemlabel}% + &% + \if@nmbrlist\refstepcounter{\@listctr}\fi} + +\def\@Blistcr{\@ifstar + {\@ifnextchar[{@@Blistcr}{\cr&}}{\@ifnextchar[{\@@Blistcr}{\cr&}}} + +\def\@@Blistcr[#1]{\cr\noalign{\vskip #1}&} + +% \Bitemize + +\def\Bitemize{% + \ifnum\@itemdepth>3 + \@toodeep + \else + \advance\@itemdepth\@ne + \fi + \edef\@itemitem{labelitem\romannumeral\the\@itemdepth}% + \Blist{\csname\@itemitem\endcsname}{\def\makelabel####1{\hfil####1}}} +\def\endBitemize{\endBlist} + +% \Bdescription + +\def\Bdescription{\Blist{}{\def\makelabel####1{\bf####1\hfil}}} +\def\endBdescription{\endBlist} + +% \Benumerate + +\def\Benumerate{% + \ifnum\@enumdepth>3 + \@toodeep + \else + \advance\@enumdepth\@ne + \fi + \edef\@enumctr{enum\romannumeral\the\@enumdepth}% + \Blist{\csname label\@enumctr\endcsname}% + {\usecounter{\@enumctr}\def\makelabel####1{\hfil####1}}} +\def\endBenumerate{\endBlist} + +% Beqnarray + +\def\Beqnarray{% + \stepcounter{equation}% + \let\@currentlabel\theequation + \def\@eqnnum{{\csname reset@font\endcsname\rm (\theequation)}}% + \global\@eqnswtrue\m@th + \global\@eqcnt\z@ + \tabskip\@centering + \let\\\@eqncr + \vbox\bgroup + \halign\bgroup + \@eqnsel + \hskip\@centering + $\displaystyle\tabskip\z@{##}$% + &\global\@eqcnt\@ne + \hskip 2\arraycolsep + \hfil${##}$\hfil + &\global\@eqcnt\tw@ + \hskip 2\arraycolsep + $\displaystyle\tabskip\z@{##}$% + \hfil + \tabskip\@centering + &\if@eqnsw\hskip 1em\fi + \hfil{##}\tabskip\z@ + \cr} + +\def\endBeqnarray{% + \@@eqncr + \egroup + \global\advance\c@equation\m@ne + \egroup + \global\@ignoretrue} + +\@namedef{Beqnarray*}{\def\@eqncr{\nonumber\@seqncr}\Beqnarray} +\@namedef{endBeqnarray*}{\nonumber\endBeqnarray} + +% \fb@outputage + +% Here we insert various hooks for rotating or framing the page. +% Otherwise, it is the usual \@outputpage + +\def\fb@outputpage{% + \begingroup + \catcode`\ =10 + \let\-\@dischyph + \let\'\@acci + \let\`\@accii + \let\=\@acciii + \if@specialpage + \global\@specialpagefalse\@nameuse{ps@\@specialstyle}% + \fi + \if@twoside + \ifodd\count\z@ + \let\@thehead\@oddhead + \let\@thefoot\@oddfoot + \let\@themargin\oddsidemargin + \else + \let\@thehead\@evenhead + \let\@thefoot\@evenfoot + \let\@themargin\evensidemargin + \fi + \fi + \csname reset@font\endcsname + \normalsize + \baselineskip\z@ + \lineskip\z@ + \let\par\@@par + \ifx\this@fancypage\@empty\else + \this@fancypage + \gdef\this@fancypage{}% + \fi + \ifx\the@fancypage\@empty\else + \setbox\@outputbox\hbox{\the@fancypage{\box\@outputbox}}% + \fi + \ifx\fb@@rotatepage\@empty\else + \setbox\@outputbox\hbox{\fb@@rotatepage{\box\@outputbox}}% + \fi + \setbox\@outputbox\vbox{% + \@tempdima=\wd\@outputbox + \setbox\@tempboxa=\hbox to\@tempdima{% + \let\label\@gobble + \let\index\@gobble + \let\glossary\@gobble + \@thehead}% + \ht\@tempboxa\headheight + \dp\@tempboxa\z@ + \box\@tempboxa + \vskip\headsep + \box\@outputbox + \baselineskip\footskip + \hbox to\@tempdima{% + \let\label\@gobble + \let\index\@gobble + \let\glossary\@gobble + \@thefoot}} + \ifx\the@@fancypage\@empty\else + \setbox\@outputbox\hbox{\the@@fancypage{\box\@outputbox}}% + \fi + \setbox\@outputbox\vbox{% + \ifnum\fancyput@flag>-1 \do@fancyput\fi + \vskip\topmargin + \moveright\@themargin\box\@outputbox}% + \ifx\fb@rotatepage\@empty\else + \setbox\@outputbox\hbox{\lower\ht\@outputbox\box\@outputbox}% + \dp\@outputbox\z@ + \wd\@outputbox\z@ + \setbox\@outputbox\hbox{\fb@rotatepage{\box\@outputbox}}% + \expandafter\fb@setoffsets\fb@theoffsets + \fi +% DG/SR modification begin - September 19, 2000 +% (suggested by Marcin Wolinski and +% Heiko Oberdiek ) + \let\protect\noexpand +% DG/SR modification end + \shipout\box\@outputbox + \global\@colht\textheight + \endgroup + \stepcounter{page}% + \let\firstmark\botmark} + +% \fancypage + +\def\the@fancypage{} +\def\the@@fancypage{} +\def\this@fancypage{} + +\def\fancypage#1#2{% +% DG/SR modification begin - May 16, 1997 + \@begindvi % Need today by LaTeX 2e +% DG/SR modification end + \def\the@fancypage{#1}% + \def\the@@fancypage{#2}% + \def\@outputpage{\fb@outputpage}} + +\def\thisfancypage#1#2{% +% DG/SR modification begin - May 16, 1997 + \@begindvi % Need today by LaTeX 2e +% DG/SR modification end + \gdef\@outputpage{\fb@outputpage}% + \gdef\this@fancypage{\def\the@fancypage{#1}\def\the@@fancypage{#2}}} + +% \fancyput + +% Token registers used to make it easier to put definitions in argument. +% Boxes not processed until output so that contents can depend, e.g., on +% current page or marks or whatever. This makes everything slightly more +% complicated than one would expect. + +\newtoks\the@fancyput +\newtoks\this@fancyput +\def\fancyput@flag{-1}% + +% \fancyput@flag=-1 if no fancyput, 0 if regular fancyput, 1 if thisfancyput. + +\def\fancyput{% +% DG/SR modification begin - May 16, 1997 + \@begindvi % Need today by LaTeX 2e +% DG/SR modification end + \def\@outputpage{\fb@outputpage} + \@ifstar{\@testtrue\@fancyput}{\@testfalse\@fancyput}} +\def\@fancyput{\@ifnextchar({\@@fancyput}{\@@fancyput(\z@,\z@)}} +\def\@@fancyput(#1,#2)#3{% + \if@test + \expandafter\the@fancyput\expandafter{\the\the@fancyput\do{#1}{#2}{#3}}% + \else + \the@fancyput{\do{#1}{#2}{#3}}% + \fi + \gdef\fancyput@flag{\z@}} + +\def\thisfancyput{% +% DG/SR modification begin - May 16, 1997 + \@begindvi % Need today by LaTeX 2e +% DG/SR modification end + \gdef\@outputpage{\fb@outputpage} + \@ifstar{\@testtrue\@thisfancyput}{\@testfalse\@thisfancyput}} +\def\@thisfancyput{\@ifnextchar({\@@thisfancyput}{\@@thisfancyput(\z@,\z@)}} +\def\@@thisfancyput(#1,#2)#3{% + \if@test + \ifnum\fancyput@flag=\z@ + \expandafter\global\expandafter\this@fancyput\expandafter{% + \the\this@fancyput\do{#1}{#2}{#3}}% + \else + \expandafter\global\expandafter\this@fancyput\expandafter{% + \the\the@fancyput\do{#1}{#2}{#3}}% + \fi + \else + \global\this@fancyput{\do{#1}{#2}{#3}}% + \fi + \gdef\fancyput@flag{1}} + +\def\do@fancyput{% + \def\do##1##2##3{\raise##2\hbox to\z@{\kern##1\relax##3\hss}}% + \setbox\@tempboxa=\hbox to\z@{% + \kern-\hoffset + \raise\voffset\hbox{% + \ifnum\fancyput@flag=\z@\the\the@fancyput\else\the\this@fancyput\fi}% + \hss}% + \ht\@tempboxa=\z@ \dp\@tempboxa=\z@ + \box\@tempboxa + \gdef\fancyput@flag{\z@}% + \global\this@fancyput{}} + +% \Landscape + +\def\UsePageParameters{% + \clearpage + \global\@colht\textheight + \onecolumn} + +\def\fb@rotatepage{} + + +\def\Landscape{\@ifstar{\@testtrue\@Landscape}{\@testfalse\@Landscape}} +\def\@Landscape#1#2#3{% +% DG/SR modification begin - May 16, 1997 + \@begindvi % Need today by LaTeX 2e +% DG/SR modification end + \clearpage + \def\fb@rotatepage{#3}% + \def\@outputpage{\fb@outputpage}% + \@tempdima#1\relax + \@tempdimb#2\relax + \if@test + \edef\fb@theoffsets{{\voffset}{\hoffset}{\number\@tempdima sp}}% + \else + \edef\fb@theoffsets{{\hoffset}{\voffset}{\number\@tempdimb sp}}% + \fi + \advance\@tempdimb-\@tempdima + \advance\textwidth\@tempdimb + \advance\textheight-\@tempdimb + \UsePageParameters} +\def\endLandscape{\clearpage\aftergroup\UsePageParameters} + +\def\fb@setoffsets#1#2#3{% + \@tempdima#1% + \advance#1#2% + #2#3 + \advance#2-2in + \advance#2-\@tempdima} + +\@namedef{Landscape*}{\@testtrue\@Landscape} +\@namedef{endLandscape*}{\endLandscape} + +% \LandScape + +\def\fb@@rotatepage{} + +\def\LandScape#1{% +% DG/SR modification begin - May 16, 1997 + \@begindvi % Need today by LaTeX 2e +% DG/SR modification end + \clearpage + \def\fb@@rotatepage{#1}% + \def\@outputpage{\fb@outputpage}% + \@tempdima\textheight + \textheight\textwidth + \textwidth\@tempdima + \UsePageParameters} +\def\endLandScape{\clearpage\aftergroup\UsePageParameters} + +% \GenericCaption + +\def\GenericCaption#1{% + \par + \begingroup + \@parboxrestore + \normalsize + \vskip 10\p@ + \setbox\@tempboxa\hbox{#1}% + \ifdim\wd\@tempboxa>\hsize + #1\par + \else + \hbox to\hsize{\hfil\box\@tempboxa\hfil}% + \fi + \endgroup + \par} + +% \landfloat + +\def\landfloat#1#2{% + \gdef\curr@landfloat{#1}% + \gdef\float@rotation{#2}% + \begin{#1}[p]% + \setbox\@tempboxa\vbox\bgroup + \hsize\@colht + \@parboxrestore} +\def\endlandfloat{% + \par\vskip\z@ + \egroup + \setbox\@tempboxa\hbox{\float@rotation{\box\@tempboxa}}% + \centerline{\box\@tempboxa}% + \expandafter\end\expandafter{\curr@landfloat}} + +% \boxput + +\def\boxput{\@ifstar{\@testtrue\@boxput}{\@testfalse\@boxput}} +\def\@boxput{\@ifnextchar({\@@boxput}{\@@boxput(0,0)}} +\long\def\@@boxput(#1,#2)#3#4{% + \setbox\@fancybox\hbox{{#4}}% + \setbox\@tempboxa\vbox to\z@{\vss\hbox to\z@{\hss{#3}\hss}\vss}% + \@tempdima=#1\wd\@fancybox + \advance\@tempdima\wd\@fancybox + \divide\@tempdima 2 + \ifcat a#2\relax + \@tempdimb=\z@ + \else + \@tempdimb=.5\ht\@fancybox + \advance\@tempdimb.5\dp\@fancybox + \@tempdimc=\@tempdimb + \advance\@tempdimc-\dp\@fancybox + \@tempdimb=#2\@tempdimb + \advance\@tempdimb\@tempdimc + \fi + \setbox\@tempboxa\hbox to \z@{% + \if@test\kern-\wd\@fancybox\fi + \kern\@tempdima\raise\@tempdimb\box\@tempboxa\hss}% + \ht\@tempboxa=\z@ \dp\@tempboxa=\z@ + \leavevmode + \if@test + \hbox{\box\@fancybox\box\@tempboxa}% + \else + \hbox{\box\@tempboxa\box\@fancybox}% + \fi} + +% \Vfootnotes + +\def\VerbatimFootnotes{\let\@footnotetext\V@footnotetext} + +\long\def\V@footnotetext{% + \afterassignment\V@@footnotetext + \let\@tempa} +\def\V@@footnotetext{% + \insert\footins\bgroup + \csname reset@font\endcsname + \footnotesize + \interlinepenalty\interfootnotelinepenalty + \splittopskip\footnotesep + \splitmaxdepth\dp\strutbox + \floatingpenalty \@MM + \hsize\columnwidth + \@parboxrestore + \edef\@currentlabel{\csname p@footnote\endcsname\@thefnmark}% + \@makefntext{}% + \rule{\z@}{\footnotesep}% + \bgroup + \aftergroup\V@@@footnotetext + \ignorespaces} +\def\V@@@footnotetext{\strut\egroup} + +% Verbatim + +% The main idea is to separate the reading and formatting of the +% verbatim listing. It's pretty simple. + +\def\Verbatim@Codes{% + \let\do\@makeother + \dospecials + \Verbatim@ObeyThings + \ThisVerbCodes\relax\gdef\ThisVerbCodes{}} + +\def\EveryVerbatimCodes{} + +% \Verbatim is redefined temporarilly in \Get@Verbatim to scan the +% verbatim text. \Verbatim is used so that error messages are more +% enlightening. \next checks whether \Verbatim found its argument, +% and attempts to recover if not. +% +% Heuristically, if current environment is `foo' and argument of +% \Get@Verbatim is \The@Verbatim, then definition of \Verbatim is +% +% \def\Verbatim#1^^M#2^^M\the\EndVerbatimTokens\end{foo}{% +% \xdef\The@Verbatim{\noexpand\Every@VerbatimLine#2}% +% \endgroup\end{foo}} +% +% \The@Verbatim is then equal to the verbatim text, with spaces +% replaced by \Verbatim@Space, tabs replaced by \Verbatim@Tab, +% and ` replaced by \@lquote. In addition, each line begins with +% \Every@VerbatimLine, and each line but the last ends with +% \Verbatim@Par. It is then possible to redefine these when formatting +% the verbatim text. To insert each line as an argument to \foo, use +% \def\Every@VerbatimLine#1\Verbatim@Par{\foo{#1}} +% \The@Verbatim\Verbatim@Par +% +\newtoks\EndVerbatimTokens +\begingroup + \catcode`\|=0 + \catcode`\[=1 + \catcode`\]=2 + \catcode`\{=12 + \catcode`\}=12 + \catcode`\^^M=13% + \catcode`\\=12% + |gdef|Get@Verbatim#1[% + |begingroup% + |Verbatim@Codes|EveryVerbatimCodes% + |let|protect|noexpand% + |VerbatimEnvironment% + |edef|next[|noexpand|def|noexpand|Verbatim####1|noexpand^^M####2% + |noexpand^^M|the|EndVerbatimTokens\end{|@VerbEnvir}]% + |edef|endVerbatim[|noexpand|endgroup|noexpand|end[|@VerbEnvir]]% + |global|let|@VerbEnvir|relax% + |next[|@nil|xdef#1[|noexpand|Every@VerbatimLine##2]|endVerbatim]% + |def|next[|@ifnextchar|@nil[|@gobble]% If \@nil is there, then + [|gdef#1[]|endVerbatim|end[document]]]% \Verbatim found its argument. + |expandafter|next|Verbatim]% Otherwise, try to recover. + |gdef|AltGet@Verbatim#1[% + |begingroup% + |Verbatim@Codes|EveryVerbatimCodes% + |def^^M##1^^M##2[% + |ifx|@nil##2|@empty|else% + |noexpand|Verbatim@Par|noexpand|Every@VerbatimLine##1% + |expandafter^^M|expandafter##2% + |fi]% + |let|protect|noexpand% + |VerbatimEnvironment% + |edef|next[|noexpand|def|noexpand|Verbatim####1|noexpand^^M####2% + \end{|@VerbEnvir}]% + |edef|endVerbatim[|noexpand|endgroup|noexpand|end[|@VerbEnvir]]% + |global|let|@VerbEnvir|relax% + |next[|@nil|xdef#1[|noexpand|Every@VerbatimLine##2^^M|@nil]|endVerbatim]% + |def|next[|@ifnextchar|@nil[|@gobble]% + [|gdef#1[]|endVerbatim|end[document]]]% + |expandafter|next|Verbatim]% +|endgroup +\def\AltGetVerbatim{\let\Get@Verbatim\AltGet@Verbatim} + +% It is enough to not use \begin or \end when defining new verbatim +% environments, as the default is for \Get@Verbatim to look for the +% end of the current environment, but using \VerbatimEnvironment +% is easier to explain to users. + +\def\VerbatimEnvironment{% + \ifx\@VerbEnvir\relax\xdef\@VerbEnvir{\@currenvir}\fi} + +\let\@VerbEnvir\relax + +\def\The@VerbatimErr{% + \gdef\The@Verbatim{\@latexerr{Misplaced \string\end{Verbatim}}\@ehd}} +\The@VerbatimErr + +\begingroup +\catcode`\^^M=\active% +\catcode`\ =\active% +\catcode`\^^I=\active% +\gdef\Verbatim@ObeyThings{% +\catcode`\^^M=\active% +\catcode`\ =\active% +\catcode`\^^I=\active% +\catcode``=\active% +\def^^M{\noexpand\Verbatim@Par\noexpand\Every@VerbatimLine}% +\def^^I{\noexpand\Verbatim@Tab}% +\def {\noexpand\Verbatim@Space}% +\Verbatim@NoLigs}% +\gdef\Verbatim@DontObeyLines{\outer\def^^M{}}% +\endgroup + +\def\SaveVerbatim{\@bsphack\Get@Verbatim} + +\def\endSaveVerbatim{\@esphack} + +{\catcode``13 \gdef\Verbatim@NoLigs{\def`{\noexpand\@lquote}}} + +\def\Verbatim@Prep{% + \frenchspacing + \ThisVerb\relax\gdef\ThisVerb{}% + \VerbatimFont + \EveryVerbatim + \let\Every@VerbatimLine\EveryVerbatimLine + \def\Verbatim@Space{\leavevmode\penalty\@M\VerbatimSpace}% + \def\Verbatim@Tab{\leavevmode\penalty\@M\VerbatimTab}}% + +\def\Verb@Prep{% + \frenchspacing + \ThisVerb\relax\gdef\ThisVerb{}% + \VerbFont + \EveryVerb + \let\Every@VerbatimLine\EveryVerbatimLine + \def\Verbatim@Space{\leavevmode\penalty\@M\VerbSpace}% + \def\Verbatim@Tab{\leavevmode\penalty\@M\VerbTab}}% + +\def\Verbatim@Par{\leavevmode\null\@@par\penalty\interlinepenalty} + +% Parameter initialization: + +\def\VerbatimSpace{\ } + +{\catcode`\ =12\gdef\ttspace{{\tt }}} + +\def\VerbSpace{\ } + +\def\VerbatimTab{\ \ \ \ \ \ \ \ } + +\def\VerbTab{\ } + +\def\EveryVerbatim{} + +\def\EveryVerb{} + +\def\ThisVerb{} + +\def\EveryVerbatimLine{}% + +\def\EveryVerbOutLine{} + +\def\VerbatimFont{\tt} + +\def\VerbFont{\tt} + +\def\VerbatimFuzz{2pt}% + +\def\EveryVerbatimCodes{} + +\def\EveryVerbCodes{} + +\def\EveryVerbOutCodes{} + +\def\ThisVerbCodes{} + +\def\Verbatim@List#1{% + \if@minipage\else\vskip\parskip\fi + \leftskip\@totalleftmargin + \@rightskip\@flushglue \rightskip\@rightskip + \parindent\z@ + \parskip\z@ + \parfillskip\@flushglue + \hfuzz\VerbatimFuzz\relax + \@@par + \global\@inlabelfalse %Prevents vspace from being inserted when + \Verbatim@Prep %first line exceeds \hsize. + #1% + \Verbatim@Par}% + +\def\UseVerbatim#1{% + \begingroup\trivlist\item[]\Verbatim@List{#1}\endtrivlist\endgroup} + +\def\Verbatim{\Get@Verbatim\The@Verbatim} +\def\endVerbatim{\UseVerbatim\The@Verbatim\The@VerbatimErr} + +\def\LUseVerbatim#1{% + \begingroup\list{}{}\item[]\Verbatim@List{#1}\endlist\endgroup} + +\def\LVerbatim{\Get@Verbatim\The@Verbatim} +\def\endLVerbatim{\LUseVerbatim\The@Verbatim\The@VerbatimErr} + +\def\BUseVerbatim{% + \@ifnextchar[{\@BUseVerbatim}{\@BUseVerbatim[]}} +\def\@BUseVerbatim[#1]#2{% + \begingroup + \Verbatim@Prep + \let\Verbatim@Par\@Btrivlistcr + \@Btrivlist{l}[#1]% + #2% + \endBtrivlist + \endgroup}% + +\def\BVerbatim{% + \catcode`\^^M=13\relax + \@ifnextchar[{\@BVerbatim}{\@BVerbatim[]}} +\def\@BVerbatim[#1]{\def\@tempa{[#1]}\Get@Verbatim\The@Verbatim} +\def\endBVerbatim{ + \expandafter\@BUseVerbatim\@tempa\The@Verbatim\The@VerbatimErr} + +\newwrite\Verbatim@Outfile +\def\VerbatimOut#1{% + \@bsphack + \begingroup + \immediate\openout\Verbatim@Outfile #1\relax + \def\EveryVerbatimCodes{\EveryVerbOutCodes}% + \Get@Verbatim\The@Verbatim} +\def\endVerbatimOut{% + \Verbatim@ObeyThings + \def\Verbatim@Par{^^J}% + \def\Verbatim@Space{\space}% + \def\Verbatim@Tab{\space}% + \def\@lquote{\string`}% + \ThisVerb\relax\gdef\ThisVerb{}% + \let\Every@VerbatimLine\EveryVerbOutLine + \immediate\write\Verbatim@Outfile{\The@Verbatim}% + \immediate\closeout\Verbatim@Outfile + \endgroup + \The@VerbatimErr + \@esphack} + +% This one is a little tricky because: +% * we want to ignore the ^^M at the end of the last line, +% * we want to handle files that end with newline and files that don't +% * we want comment characters to work properly, +% * we want to expand each line before inserting \Every@VerbatimLine and +% \Verbatim@Par, +% +% \The@GVerbatim is used as scratch with global redefinition. +\newread\Verbatim@Infile +\def\Verbatim@Input#1#2{% + \begingroup + \Verbatim@Codes\EveryVerbatimCodes + \immediate\openin\Verbatim@Infile #1\relax + \ifeof\Verbatim@Infile + \@latexerr{No verbatim file #1}\@ehd + \else + \def\The@GVerbatim{}\Verbatim@NextLine + \ifeof\Verbatim@Infile + \@latexerr{Verbatim file #1 is empty}\@ehd + \else + \let\The@Verbatim\The@GVerbatim + \def\The@GVerbatim{}\Verbatim@NextLine + #2{\Verbatim@@Input}% + \fi + \fi + \immediate\closein\Verbatim@Infile + \endgroup} +\def\Verbatim@@Input{% + \let\protect\noexpand + \edef\The@Verbatim{% + \noexpand\Every@VerbatimLine + \The@Verbatim + \ifeof\Verbatim@Infile\else\noexpand\Verbatim@Par\fi}% + \let\protect\relax + \The@Verbatim + \ifeof\Verbatim@Infile\else + \let\The@Verbatim\The@GVerbatim + \def\The@GVerbatim{}\Verbatim@NextLine + \expandafter\Verbatim@@Input + \fi}% +\begingroup\catcode`\^^M=\active% +\gdef\Verbatim@NextLine{% + \ifeof\Verbatim@Infile\else% + \immediate\read\Verbatim@Infile to\@tempa% + \expandafter\Verbatim@@NextLine\@tempa^^M\relax^^M\@nil% + \fi}% +% #2 is empty if line ends in ^^M, #2=\relax otherwise. +\gdef\Verbatim@@NextLine#1^^M#2^^M#3\@nil{% + \expandafter\gdef\expandafter\The@GVerbatim\expandafter{\The@GVerbatim#1}% + \ifx#2\@empty\@empty\else\expandafter\Verbatim@NextLine\fi}% +\endgroup% + +\def\UseVerb#1{\begingroup\Verb@Prep#1\endgroup} + +\def\SaveVerb{\@ifnextchar[{\Save@Verb}{\Save@Verb[]}} + +\long\def\Save@Verb[#1]#2{% + \begingroup + \Verbatim@Codes\Verbatim@DontObeyLines\EveryVerbCodes + \Save@@Verb{#1}{#2}} + +\long\def\Save@@Verb#1#2#3{% + \let\protect\noexpand + \def\next{\@ifnextchar\@nil{\@gobble}{\endgroup}}% + \long\def\Verb##1#3{\@nil\xdef#2{##1}\endgroup#1}% + \expandafter\next\Verb} + +\def\Verb{\Save@Verb[\UseVerb{\The@Verbatim}]{\The@Verbatim}} + +\def\VerbatimInput#1{\begingroup\Verbatim@Input{#1}\UseVerbatim\endgroup} + +\def\LVerbatimInput#1{\begingroup\Verbatim@Input{#1}\LUseVerbatim\endgroup} + +\def\BVerbatimInput{\@ifnextchar[{\@BVerbatimInput}{\@BVerbatimInput[]}} +\def\@BVerbatimInput[#1]#2{% + \begingroup\Verbatim@Input{#2}{\@BUseVerbatim[#1]}\endgroup} + +\endinput +%% END fancybox.sty diff --git a/Master/texmf-dist/tex/latex/seminar/npsfont.sty b/Master/texmf-dist/tex/latex/seminar/npsfont.sty new file mode 100644 index 00000000000..88f687e7bd7 --- /dev/null +++ b/Master/texmf-dist/tex/latex/seminar/npsfont.sty @@ -0,0 +1,193 @@ +%% BEGIN npsfont.sty +%% +\def\fileversion{v1.0} +\def\filedate{91/11/20} +%% +%% Style option npsfont.sty, for use with LaTeX 2.09 +%% and the New Font Selection Scheme. +%% +%% COPYRIGHT 1992, by Timothy Van Zandt, Timothy.VAN-ZANDT@insead.edu +%% +%% Copying of part or all of this file is allowed under the following +%% conditions only: +%% (1) You may freely distribute unchanged copies of the file. Please +%% include the documentation when you do so. +%% (2) You may modify a renamed copy of the file, but only for personal +%% use or use within an organization. +%% (3) You may copy fragments from the file, for personal use or for use +%% in a macro package for distribution, as long as credit is given +%% where credit is due. +%% +%% You are NOT ALLOWED to take money for the distribution or use of +%% this file or modified versions or fragments thereof, except for +%% a nominal charge for copying etc. +%% +% DESCRIPTION: +% +% Defining new PostScript fonts with the New Font Selection Scheme is easy, +% but these macros make it easier. They save on keystrokes, and most +% importantly, they make it easy to change the file names used for fonts +% because you only have to type the file name once instead of 12 times (for +% the 12 standard LaTeX sizes). An optional argument lets you scale the fonts. +% +% These macros are substitutes for the NFSS's \new@fontshape command. For +% information on the purpose of this command, and on how to select fonts that +% are defined with it, see the documentation of the NFSS. If you don't have +% the NFSS, it is available from +% rusmv1.rus.uni-stuttgart.de +% in +% soft/tex/latex-style-supported/New-Font-Selection +% and from +% ymir.claremont.edu +% in +% [.anonymous.tex.inputs.latex-mainz] +% The NFSS is undoubtably the best way to use PostScript fonts (or any non- +% standard fonts) with LaTeX, and is well worth upgrading to. +% +% USAGE: +% +% \newpsfont[]{}{}{}{} +% +% \newpsfamily[]{}{ +% {}{}{}, +% {}{}{}, +% . . . +% {}{}{}} +% +% The scaling argument is optional. Like the \new@fontshape command, these +% commands can only be used in the preamble. +% +% EXAMPLE: +% +% Suppose the Helvetica-Oblique virtual font on your system has the name +% phvro.vf. The following defines the family, edium series, and +% alic shape to be the Helvetica-Oblique font, at the standard LaTeX +% font sizes, scaled by .82: +% +% \newpsfont[.82]{helvetica}{m}{it}{phvro} +% +% This is equivalent to: +% +% \new@fontshape{helvetica}{m}{it}{% +% <5>phvro at 4.1pt% +% <6>phvro at 4.92pt% +% <7>phvro at 5.74pt% +% <8>phvro at 6.56pt% +% <9>phvro at 7.38pt% +% <10>phvro at 8.2pt% +% <11>phvro at 8.979pt% +% <12>phvro at 9.84pt% +% <14>phvro at 11.808pt% +% <17>phvro at 14.1696pt% +% <20>phvro at 17.0068pt% +% <25>phvro at 20.4016pt}{} +% +% The following command sets up the standard Helvetica family: +% +% \newpsfamily[.82]{helvetica}{% +% {m}{n}{phvr}, %Helvetica +% {m}{it}{phvro}, %Helvetica-Oblique +% {m}{sl}{phvro}, %Helvetica-Oblique +% {bx}{n}{phvb}, %Helvetica-Bold +% {bx}{it}{phvbo}, %Helvetica-BoldOblique +% {bx}{sl}{phvbo}} %Helvetica-BoldOblique +% +% (Don't forget the commas.) It is equivalent to: +% +% \newpsfont[.82]{helvetica}{m}{n}{phvr} %Helvetica +% \newpsfont[.82]{helvetica}{m}{it}{phvro} %Helvetica-Oblique +% \newpsfont[.82]{helvetica}{m}{sl}{phvro} %Helvetica-Oblique +% \newpsfont[.82]{helvetica}{bx}{n}{phvb} %Helvetica-Bold +% \newpsfont[.82]{helvetica}{bx}{it}{phvbo} %Helvetica-BoldOblique +% \newpsfont[.82]{helvetica}{bx}{sl}{phvbo} %Helvetica-BoldOblique +% \extra@def{helvetica}{}{} +% +% WHY SCALE FONTS?: +% +% Disclaimer: The suggestions that follow come from someone who doesn't know +% anything about fonts. +% +% Mixing fonts that are not designed to be used together is not for purists, +% but many of us do it anyway. Scaling the fonts can at least correct for +% differences in the x-heights. This is important if you use Computer +% Modern fonts for in-line math and some other fonts for text. +% +% To find out the x-height of the 10pt size of a font, load this style and +% use the command +% +% \showxheight{} +% +% E.g., \showxheight{phvr} and \showxheight{cmr10} displays +% +% x-height of cmr10 at 10pt is 4.30554pt +% x-height of phvr at 10pt is 5.24998pt +% +% on the terminal. Scaling the Helvetica fonts by 4.30554/5.24990 = .82 +% gets the x-heights of these fonts in line. It is best to set the x-heights +% the same for the medium weight, normal shaped fonts, and then scale the +% rest of the fonts in the same family by the same amount. +% +% David Jones has a psfonts.sty that sets up the standard PostScript fonts, +% all scaled so that the x-heights match that of the Computer Modern medium +% roman font. It is available via anonymous ftp from theory.lcs.mit.edu in +% /pub/dmjones. +% +% IMPLEMENTATION: +% +% \scale@stdsizes has at its argument a scaling factor. It uses \font@scale +% to define \scaled@sizes to be the macro whose argument is the name of a +% font, and which expands to the definitions of the standard \LaTeX{} sizes +% for New Font Selection Schemes \new@fontshape command. +% +\message{\space\space\fileversion\space\space\filedate + \space\space} +\@ifundefined{new@psfontshape}{}{\endinput} +\def\font@scale#1#2#3{\dimen@=#2\dimen@=#3\dimen@ + \edef\scaled@sizes##1{\scaled@sizes{##1}<#1>##1 at\number\dimen@ sp}} +\def\scale@stdsizes#1{% + \edef\scaled@sizes##1{}% + \font@scale{5}{5pt}{#1}% + \font@scale{6}{6pt}{#1}% + \font@scale{7}{7pt}{#1}% + \font@scale{8}{8pt}{#1}% + \font@scale{9}{9pt}{#1}% + \font@scale{10}{10pt}{#1}% + \font@scale{11}{10.95pt}{#1}% + \font@scale{12}{12pt}{#1}% + \font@scale{14}{14.4pt}{#1}% + \font@scale{17}{17.28pt}{#1}% + \font@scale{20}{20.74pt}{#1}% + \font@scale{25}{24.88pt}{#1}} +\def\new@psfontshape#1#2#3#4{% + \new@fontshape{#1}{#2}{#3}{\scaled@sizes{#4}}{}} +\def\new@psfont[#1]#2#3#4#5{% + \scale@stdsizes{#1}% + \new@psfontshape{#2}{#3}{#4}{#5}} +\def\newpsfont{% + \@ifnextchar [{\new@psfont}{\new@psfont[1]}} +\def\newpsfamily{% + \@ifnextchar [{\new@psfamily}{\new@psfamily[1]}} +\def\new@psfamily[#1]#2#3{% + \scale@stdsizes{#1}% + \@for\@tempa:=#3\do{% + \edef\@tempb{\noexpand\new@psfontshape{#2}\@tempa} + \@tempb}% + \extra@def{#2}{}{}} +\def\showxheight#1{% + \font\@tempfont=#1 at 10pt% + \typeout{^^J x-height of #1 at 10pt is \the\fontdimen5\@tempfont}} +% The commands are added to \@preamblecmds to save memory. +\begingroup + \def\do{\noexpand\do\noexpand} + \xdef\@preamblecmds{\@preamblecmds + \do\font@scale + \do\scale@stdsizes + \do\scaled@sizes + \do\new@psfontshape + \do\new@psfont + \do\newpsfont + \do\newpsfamily + \do\new@psfamily} +\endgroup +\endinput +%% END npsfont.sty diff --git a/Master/texmf-dist/tex/latex/seminar/semcolor.sty b/Master/texmf-dist/tex/latex/seminar/semcolor.sty new file mode 100644 index 00000000000..03a58cd842f --- /dev/null +++ b/Master/texmf-dist/tex/latex/seminar/semcolor.sty @@ -0,0 +1,66 @@ +%% +%% This is file `semcolor.sty', version 1.01 +%% +%% IMPORTANT NOTICE: +%% +%% semcolor.sty Copyright (C) 1993 Timothy Van Zandt +%% +%% This package may be distributed under the terms of the LaTeX Project +%% Public License, as described in lppl.txt in the base LaTeX distribution. +%% Either version 1.0 or, at your option, any later version. +%% +\def\fileversion{1.01} +\def\filedate{2004/05/18} +%% +%% LaTeX style option `semcolor.sty'. +%% For use with LaTeX v2.09 and the `seminar' document style. +%% +%% COPYRIGHT 1993, by Timothy Van Zandt, Timothy.VAN-ZANDT@insead.edu +%% See seminar.sty or seminar.doc for copying restrictions. +%% +%% You must install the PSTricks package v0.9 or later to use semcolor.sty. +%% +\@ifundefined{SemcolorFrameOps}{}{\endinput} +\typeout{Style Option: `semcolor' for doc style `seminar' + \fileversion\space <\filedate> (tvz)} +% RN modification begin -- 2004/05/04; Rolf.Niepraschk@ptb.de +%\input{pstricks} +\ProvidesFile{semcolor.sty}[\filedate\space v\fileversion\space (tvz)] +\RequirePackage{pstricks} +% RN modification end +% +% Set up the frame styles: +\def\SemcolorFrameOps{\psset{% + fillstyle=none,% + linewidth=\slideframewidth,% + framesep=\slideframesep,% + cornersize=absolute,% + linearc=.5cm,% + shadowsize=2pt,% + shadowcolor=darkgray}}% +\newslideframe{scplain}[\SemcolorFrameOps]{\psframebox{#1}} +\newslideframe{scdouble}[\SemcolorFrameOps]{\psdblframebox{#1}} +\newslideframe{scshadow}[\SemcolorFrameOps]{\psshadowbox{#1}} +\slideframe{scplain} +% +% Rotation: +\def\leftsliderotation#1{\rotateleft{#1}} +\def\rightsliderotation#1{\rotateright{#1}} +\sliderotation{left} +% +% Color: +\addto@hook\after@slidepage{\pstVerb{0 setgray}} +% +% Overlays: +\def\make@overlay#1{% + \setbox\@slidebox=\hbox{% + \pst@initoverlay{#1}% + \pst@Verb{(0) BOL}% + \copy\@@slidebox + \pst@Verb{(all) BOL}}} +\def\@overlay{\pst@overlay} +\addto@hook\before@newslide{\def\curr@overlay{0}} +\@ifundefined{overlaystrue}{}{\ifarticle\else\overlaystrue\layerstrue\fi} +% +\endinput +%% END semcolor.sty diff --git a/Master/texmf-dist/tex/latex/seminar/seminar.bg2 b/Master/texmf-dist/tex/latex/seminar/seminar.bg2 new file mode 100644 index 00000000000..4ecd0ab188f --- /dev/null +++ b/Master/texmf-dist/tex/latex/seminar/seminar.bg2 @@ -0,0 +1,252 @@ +%%%%%%%%%%%%%%%%%%%%%%%%%%% -*- Mode: Latex -*- %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%% seminar.bg2 --- Corrections for compatibility problems and new bugs +%% found in the Seminar package, waiting Seminar 98 +%% (see also the seminar.bug file in Seminar distribution) +%% +%% Disclaimer: this file is mine and doesn't engage TVZ! +%% +%% Note: insert this file after \usepackage{graphicx} if you use Graphicx +%% and after \usepackage{longtable} if you use LongTable +%% +%% Author : Denis GIROU (CNRS/IDRIS - France) +%% Created the : 1995 +%% Last mod. by : Denis GIROU (CNRS/IDRIS - France) +%% Last mod. the : Fri Jan 9 10:31:26 1998 +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\def\fileversion{1.6} +\def\filedate{November 20, 1997} +\typeout{seminar.bg2: various corrections for the Seminar document class added +since seminar.bug (waiting Seminar 98)^^J% +(Version \fileversion\space of <\filedate> (D.G.))} + +\edef\TheAtCode{\the\catcode`\@} +\catcode`\@=11 + +% 1 - To correct a bug in the note environment +% (reported by Denis Girou (CNRS/IDRIS) - - 1995) +\@savsf=1 + +% 2 - To correct several bugs to generate a list of slides with subsection +% entries +% (reported by Denis Girou (CNRS/IDRIS) - - Jul. 18, 1995) +% - To clear the subheading when a new heading is defined +% (reported by Axel Thimm - - June 5, 1997) +% - To assure coherence between heading and subheading when used in header/footer, +% for article mode +% (reported by Axel Thimm - - June 5, 1997) +% - Improvements (\refstepcounter and \@addtoreset) by Jeremy Gibbons +% - Sep. 30, 1997 + +% Used by the \slide@subheading macro but undefined +\def\theslidesubsection{\theslidesection.\arabic{slidesubsection}} + +\def\slide@heading[#1]#2{% +% Modification D.G. begin - Oct. 15, 1997 +% \stepcounter{slidesection}% + \refstepcounter{slidesection}% + \@addtoreset{slidesubsection}{slidesection} +% Modification D.G. end + \addtocontents{los}{\protect\l@slide + {\the\c@slidesection}{\ignorespaces#1}{\@SCTR}}% +% Modification D.G. begin - May 30, 1997 +% \gdef\theslideheading{#1}% +% Modification D.G. end + \def\@tempa{#2}% + \ifx\@tempa\@empty\else + {\edef\@currentlabel{\csname p@slidesection\endcsname\theslidesection}% + \makeslideheading{#2}}% + \fi +% Modification D.G. begin - May 30, 1997 + \gdef\theslideheading{#1}% +% Modification D.G. end +% Modification D.G. begin - Aug. 1, 1997 + \gdef\theslidesubheading{}% +% Modification D.G. end +} + +\def\slide@subheading[#1]#2{% +% Modification D.G. begin - Oct. 15, 1997 +% \stepcounter{slidesection}% + \refstepcounter{slidesubsection}% +% Modification D.G. end + \addtocontents{los}{\protect\l@subslide + {\the\c@slidesubsection}{\ignorespaces#1}{\@SCTR}}% +% Modification D.G. begin - May 30, 1997 +% \gdef\theslidesubheading{#1}% +% Modification D.G. end + \def\@tempa{#2}% + \ifx\@tempa\@empty\else + {\edef\@currentlabel{\csname p@slidesubsection\endcsname +% Modification D.G. begin - Jul. 18, 1995 +% \theslidesubsection}\makeslideheading{#2}}% + \theslidesubsection}\makeslidesubheading{#2}}% +% Modification D.G. end + \fi +% Modification D.G. begin - May 30, 1997 + \gdef\theslidesubheading{#1}% +% Modification D.G. end +} + +% 3 - To correct a bug in the \slidecontents macro +% (reported by Denis Roegel (LORIA) - - Sep. 22, 1996) + +\long\def\@gobblethree #1#2#3{} + +\def\slide@contents{% + \def\l@slide##1##2##3{% +% Modification Denis Roegel begin - Sep. 22, 1996 +% \slide@cline{\slidenumberline{$\bullet$}{##2}}{##3}}% +% \let\l@subslide\@gobbletwo +% Modification Denis Roegel end + \slide@cline{\slidenumberline{##1}{##2}}{##3}}% + \let\l@subslide\@gobblethree + \@startlos} + +% 4 - To solve incompatibily between the Graphicx package and Seminar. +% The \espfslidesize Seminar macro work only with the old version of +% the EpsFig package, so with \includegraphics the PostScript files are +% always scaled without the possibility to leave them to there natural +% size. And also these files are not correctly scaled when we switch +% from normal to article mode under Seminar. So, we must redefined the +% \epsfslidesize macro of Seminar and modify few internal macros of +% Graphicx. +% (Note: I consider only the GraphicX package, not the GraphicS one) +% (reported by Karl Tombre (LORIA) - - and Denis Roegel +% (LORIA) - - Jan. 16, 1997) + +\def\GraphicsNotScaled{% +\ifx\Gin@viewport\undefined +\else % Graphicx package detected +\def\Gin@i{% + \def\Gin@req@sizes{% +% Modification Denis Girou begin - May 16, 1997 + \Gin@nat@height=\inverseslidesmag\Gin@nat@height + \Gin@nat@width=\inverseslidesmag\Gin@nat@width +% Modification Denis Girou end + \Gin@req@height\Gin@nat@height + \Gin@req@width\Gin@nat@width}% + \@ifnextchar[\Gin@ii{\Gin@ii[]}} +% Modification Denis Girou begin - Feb. 19, 1997 +%\define@key{Gin}{width}{\def\Gin@ewidth{#1}} +%\define@key{Gin}{height}{\def\Gin@eheight{#1}} +%\define@key{Gin}{totalheight}{% +%\def\Gin@eresize{\totalheight}\def\Gin@eheight{#1}} +\define@key{Gin}{width}{% +\@tempdima=##1\@tempdima=\inverseslidesmag\@tempdima\def\Gin@ewidth{\@tempdima}} +\define@key{Gin}{height}{% +\@tempdima=##1\@tempdima=\inverseslidesmag\@tempdima\def\Gin@eheight{\@tempdima}} +\define@key{Gin}{totalheight}{% +\def\Gin@eresize{\totalheight}% +\@tempdima=##1\@tempdima=\inverseslidesmag\@tempdima\def\Gin@eheight{\@tempdima}} +% Modification Denis Girou end +\fi} + +\def\epsfslidesize{% +\let\epsfsize\slide@epsfsize +% Modification Denis Girou begin - Feb. 19, 1997 +\GraphicsNotScaled} +% Modification Denis Girou end + +% 5 - To solve incompatibily between the LongTable package and Seminar +% (reported by Bhaskar Manda (UIUC) - - May 7, 1997) +% - Problem in article format seen later +% (reported by Axel Thimm - - June 5, 1997) + +% From seminar.cls +\def\slide@outputLT{% (from \slide@output) + \@makeslide + \@testfalse + \ifnotesonly\else + \iflandscape + \ifnum\@landscapeonly>-1 \os@test\fi + \else + \ifnum\@landscapeonly<1 \os@test\fi + \fi + \fi + \if@test + \reset@slideoutput +% Modification Denis Girou begin - May 13, 1997 +% \@@makeslide + \@@makeslideLT +% Modification D.G. end + \process@slide + \fi + \refstepcounter{slide}} +\def\@@makeslideLT{% (from \@@makeslide) + \overfullslide@warning + \setbox\@slidebox\hbox{% + \vfuzz=\slidefuzz\relax + \vbox to\slide@vsize{% +% Modification Denis Girou begin - May 13, 1997 + \box\@outputbox +% Modification D.G. end + \ifcenterslides\vskip\z@ plus .0001fil \fi + \unvbox\@slidebox + \vskip\z@ plus .0001fil}% + \the\after@slidepage}% + \wd\@slidebox\textwidth} + +% From LongTable +\def\LT@output{% + \ifnum\outputpenalty <-\@Mi + \ifnum\outputpenalty > -\LT@end@pen + \LT@err{floats and marginpars not allowed in a longtable}\@ehc + \else + \setbox\z@\vbox{\unvbox\@cclv}% + \ifdim \ht\LT@lastfoot>\ht\LT@foot + \dimen@\pagegoal + \advance\dimen@-\ht\LT@lastfoot + \ifdim\dimen@<\ht\z@ + \setbox\@cclv\vbox{\unvbox\z@\copy\LT@foot\vss}% + \@makecol +% Modification Denis Girou begin - May 13, 1997 +% \@outputpage + \slide@outputLT +% Modification D.G. end + \setbox\z@\vbox{\box\LT@head}% + \fi + \fi + \global\@colroom\@colht + \global\vsize\@colht + \vbox + {\unvbox\z@\box\ifvoid\LT@lastfoot\LT@foot\else\LT@lastfoot\fi}% + \fi + \else + \setbox\@cclv\vbox{\unvbox\@cclv\copy\LT@foot\vss}% + \@makecol +% Modification Denis Girou begin - May 13, 1997 +% \@outputpage +% \global\vsize\@colroom % Work for slides, but not for notes... + \slide@outputLT +% Modification D.G. end + \copy\LT@head + \fi} + +% We must adjust \textheight. Sometimes, you must increase it a little by +% something like \addtolength{\textheight}{5mm} +% But if you use slides like \begin{slide*}[15cm,10cm] +% you must define locally \textheight=15cm +\addtolength{\textheight}{-\headheight} + +% 6 - To allow automatic changes of language dependant labels, +% for instance by loading french.sty after Seminar +% (suggested by Bernard Gaulle (IDRIS) - - Nov. 20, 1997) +% Modification Denis Girou begin - Nov. 20, 1997 +% From seminar.cls +\def\slidename{Slide} +\def\slidelabel{\bf\slidename{} \theslide} +% From slidesec.sty +\def\listslidename{List of Slides}% +\def\listofslides{\section*{\listslidename% +\@mkboth{\expandafter\MakeUppercase\listslidename}% + {\expandafter\MakeUppercase\listslidename}}% + \def\l@slide##1##2##3{% + \slide@undottedcline{\slidenumberline{##3}{##2}}{}}% + \let\l@subslide\l@slide + \@startlos} +% Modification Denis Girou end + +\catcode`\@=\TheAtCode\relax +\endinput +%% END seminar.bg2 diff --git a/Master/texmf-dist/tex/latex/seminar/seminar.bug b/Master/texmf-dist/tex/latex/seminar/seminar.bug new file mode 100644 index 00000000000..49b063fac58 --- /dev/null +++ b/Master/texmf-dist/tex/latex/seminar/seminar.bug @@ -0,0 +1,197 @@ +%% BEGIN seminar.bug +% LAST MODIFIED: December 1997 +% The latest version of this file can be obtained from Princeton.EDU. + +% This file list some bugs and latebreaking news for seminar.sty, +% version 1.0, released April 1, 1993. + +% 1. Typo in the user's guide: \espfslidesize should be \epsfslidesize. + +% 2. fancyheadings.sty does not work well with slides. +% WORKAROUND: Ignore the footnote in the User's Guide that discusses this. +% Instead: +% +% - If you want the width of the header to be "\textwidth" +% (the usual state of affairs), then put +% +% \renewcommand{\headwidth}{\textwidth} +% +% in the preamble and do not change "\headwidth" after that. +% +% - If you want to set the width to something else, then you have to scale +% it appropriately. E.g., use +% +% \setslidelength{\headwidth}{} +% +% or, if are using the "fancy" page style with both the article and +% slides formats, use +% \ifarticle +% \setartlength{\headwidth}{} +% \else +% \setslidelength{\headwidth}{} +% \fi + +% 3. Some people prefer that the headers/footers automatically adjust their +% size to the width of the framed slide (I don't, which I guess is why +% seminar.sty does not work this way.) I have added an option for this. +% Put the command +% +% \autoslidemarginstrue +% +% in the preamble. You must also input this file (seminar.bug), which +% contains the patch. + +% 4. The optional argument in \twoup[int] does not work with the +% portrait option and slides format. +% PATCH: Input this file. + +% 5. Slide labels can come out in the wrong size font. +% PATCH: Input this file. + +% 6. When \newslide is used inside a list environment, subsequent nested +% list environments can have the wrong line width. +% PATCH: Input this file. + +% 7. \overlaypagestyle and \layerpagestyle commands ignored. +% PATCH: Input this file, AFTER inputting semlayer.sty. + +% 8. boxedEPS.tex won't work inside slide environments (because seminar.sty +% erroneously modifies \read so that it is preceded by \immediate). +% PATCH: Input this file. + +%%%% PATCHES + +\edef\TheAtCode{\the\catcode`\@} +\catcode`\@=11 + +% 3. +\newif\ifautoslidemargins +\ifarticle\else + \def\output@slide{% + \begingroup + \hoffset=-\inverseslidesmag in + \voffset=-\inverseslidesmag in + \setslidelength\@tempdima{% + \ifportrait\paperwidth\else\paperheight\fi}% + \setslidelength\@tempdimb{% + \ifportrait\paperheight\else\paperwidth\fi}% + \ifrotateheaders + \@ifrotateslide{% + \dimen@=\@tempdima + \@tempdima=\@tempdimb + \@tempdimb=\dimen@}% + \fi + % \oddsidemargin, \evensidemargin, \headheight, \footheight + % used for scratch: + % Some page styles like to know \textwidth: + \setslidelength\headheight\slidetopmargin + \setslidelength\footheight\slidebottommargin + \ifautoslidemargins + \textwidth=\wd\@slidebox + \oddsidemargin=\@tempdima + \advance\oddsidemargin-\textwidth + \divide\oddsidemargin 2 + \else + \setslidelength\oddsidemargin\slideleftmargin + \setslidelength\evensidemargin\sliderightmargin + \textwidth=\@tempdima + \advance\textwidth-\oddsidemargin + \advance\textwidth-\evensidemargin + \fi + \setbox\@slidebox=\hbox to \@tempdima{% + \kern\oddsidemargin + \vbox to\@tempdimb{% + \ifnum\fancyput@flag>-1 + \hbox{\kern-\oddsidemargin\do@fancyput}% + \fi + \let\label\@gobble + \let\index\@gobble + \let\glossary\@gobble + \vbox to\headheight{% + \vfill + \hbox{% + \slideheadfont\relax\strut + \hbox to\textwidth{\@oddhead}}% + \kern\z@}% + \vfill + \hbox to\textwidth{\hss\box\@slidebox\hss}% + \vfill + \vbox to\footheight{% + \hbox{% + \slidefootfont\relax\strut + \hbox to\textwidth{\@oddfoot}}% + \vfill}}% + \hss}% + \ifrotateheaders\@ifrotateslide\rotate@slide\fi + \insert@specials + \shipout\box\@slidebox + \endgroup + \let\firstmark\botmark} + \@ifundefined{fancyput@flag}{\def\fancyput@flag{-1}}{} +\fi + +% 4. +\ifarticle\else + \ifportrait + \def\@twoup[#1]{% + \@tempcnta=\the@slidesmag\relax + \@tempcntb=\@tempcnta + \advance\@tempcntb by #1\relax + \advance\@tempcntb by -3\relax + \ifnum\@tempcntb>-6\relax + \@@input 2up.tex + \source{\@magstep\@tempcnta}{\paperwidth}{\paperheight}% + \target{\@magstep\@tempcntb}{\paperheight}{\paperwidth}% + \printlandscapetrue + \else + \@seminarerr{Slides magnification is too low for + \string\twoup\space to handle}\@eha + \fi + \def\slidesmag##1{\@semtwoupmagerr\slidesmag}} + \fi +\fi + +% 5. +\def\reset@slideoutput{% + \let\par\@@par + \reset@font + \normalsize + \def\baselinestretch{1}% + \@nameuse{1\@ptsize @semptsize}% + \catcode`\ =10 + \let\-\@dischyph \let\'\@acci \let\`\@accii \let\=\@acciii} + +% 6. +\def\extraslideheight#1{% + \@tempdima #1\relax + \edef\X@SlideHeight{\number\@tempdima sp} + \ifslide\set@slideheight\fi} +\def\set@slideheight{% + \iflandscape + \vsize=\inverseslidesmag\slideheight + \else + \vsize=\inverseslidesmag\slidewidth + \fi + \edef\slide@vsize{\number\vsize sp}% + \textheight\vsize + \advance\vsize\X@SlideHeight\relax} +\def\newslide{% + \par\penalty-\@M + \def\do##1{\setcounter{##1}\z@}\slide@reset + \the\before@newslide} + +% 7. Must be input after semlayer.sty. +\def\layer@prep{% + \ifarticle\else\pagestyle{\layer@pagestyle}\fi + \let\thepage\thelayer + \ifx\thelayerframe\@empty\else\let\theslideframe\thelayerframe\fi + \let\slidelabel\layerlabel} +\def\overlay@prep{% + \ifarticle\else\pagestyle{\overlay@pagestyle}\fi + \let\thepage\theoverlay + \ifx\theoverlayframe\@empty\else\let\theslideframe\theoverlayframe\fi + \let\slidelabel\overlaylabel} + +\catcode`\@=\TheAtCode\relax +\endinput +%% END seminar.bug diff --git a/Master/texmf-dist/tex/latex/seminar/seminar.cls b/Master/texmf-dist/tex/latex/seminar/seminar.cls new file mode 100644 index 00000000000..e5a5ae22d29 --- /dev/null +++ b/Master/texmf-dist/tex/latex/seminar/seminar.cls @@ -0,0 +1,1207 @@ +%% BEGIN seminar.cls +%% LaTeX2e seminar class, derived by Sebastian Rahtz from +%% `seminar.sty', generated on <1993/10/8>. Fixes from David Carlisle +%% and Denis Girou. +%% +%\def\fileversion{1.0} +%\def\filedate{1993/04/01} +\def\fileversion{1.4} +\def\filedate{1997/10/13} +%% +%% LaTeX document style `seminar', for use with LaTeX v2.09. +%% This is a style for typesetting notes and slides. +%% +%% COPYRIGHT 1993, by Timothy Van Zandt, Timothy.VAN-ZANDT@insead.edu +%% +%% Copying of part or all of any file in the seminar.sty package +%% is allowed under the following conditions only: +%% (1) You may freely distribute unchanged copies of the files. Please +%% include the documentation when you do so. +%% (2) You may modify a renamed copy of any file, but only for personal +%% use or use within an organization. +%% (3) You may copy fragments from the files, for personal use or for use +%% in a macro package for distribution, as long as credit is given +%% where credit is due. +%% +%% You are NOT ALLOWED to take money for the distribution or use of +%% these files or modified versions or fragments thereof, except for +%% a nominal charge for copying etc. +%% +\NeedsTeXFormat{LaTeX2e} +\ProvidesClass{seminar}[\filedate, \fileversion] +\typeout{% + Document Style: `seminar' v\fileversion \space <\filedate> (tvz)} +\def\test@member#1#2{% + \edef\@tempg{,#2,#1,}% + \edef\@temph{####1,#1,}% + \expandafter\def\expandafter\@temph\@temph##2\@nil{% + \def\@tempg{##2}% + \ifx\@tempg\@empty\@testfalse\else\@testtrue\fi}% + \expandafter\@temph\@tempg\@nil} +\def\addto@hook#1#2{#1\expandafter{\the#1#2}} +\@ifundefined{reset@font}{\def\reset@font{\normalsize\rm}}{} +\def\@seminarerr#1#2{% + \edef\@tempc{#2}\expandafter\errhelp\expandafter{\@tempc}% + \typeout{^^JSeminar.sty error.\space\space\space + Type \space H \space for immediate help.^^J}% + \errmessage{#1^^J}} +\def\notslide@err#1{\message{Cannot use \string#1 in slide environments}} +\def\new@slidebox{\alloc@4\box\chardef\insc@unt} +\newdimen\slidewidth \slidewidth 8.5in +\newdimen\slideheight \slideheight 6.3in +\paperwidth 8.5in +\paperheight 11in +\def\addto@preamblecmds#1{% + \begingroup + \def\do{\noexpand\do\noexpand}% + \xdef\@preamblecmds{\@preamblecmds\do#1}% + \endgroup} +\addto@preamblecmds{\addto@preamblecmds\do\@preamblecmds} +\def\sem@temp#1{\@ifundefined{if#1}% + {\def\@tempa{\csname newif\endcsname} + \expandafter\@tempa\csname if#1\endcsname}{}} +\sem@temp{article}{} +\sem@temp{slidesonly}{} +\sem@temp{notes}{} +\sem@temp{notesonly}{} +\sem@temp{notesonlystar}{} +\sem@temp{portrait}{} +\DeclareOption{article}{\articletrue} +\DeclareOption{noxcomment}{\def\xcomment@hook{}} +\DeclareOption{slidesonly}{\slidesonlytrue\notesfalse\notesonlyfalse} +\DeclareOption{notes}{\notestrue\slidesonlyfalse\notesonlyfalse} +\DeclareOption{notesonly}{\notesonlytrue\slidesonlyfalse\notesfalse} +\DeclareOption{notesonly*}{% + \notesonlytrue\slidesonlyfalse\notesfalse\notesonlystartrue} +\DeclareOption{portrait}{\portraittrue} +\DeclareOption{a4}{% + \paperwidth 210mm + \paperheight 297mm + \slidewidth 222mm + \slideheight 152mm\relax} +\DeclareOption{a4paper}{\ds@a4}% +\DeclareOption{semrot}{\AtEndOfClass{\input{semrot.sty}}} +\DeclareOption{semhelv}{\AtEndOfClass{\input{semhelv.sty}}} +\DeclareOption{semcolor}{\AtEndOfClass{\input{semcolor.sty}}} +\DeclareOption{semlcmss}{\AtEndOfClass{\input{semlcmss.sty}}} +\DeclareOption{slidesec}{\AtEndOfClass{\input{slidesec.sty}}} +\DeclareOption{semlayer}{\AtEndOfClass{\input{semlayer.sty}}} +\DeclareOption*{\PassOptionsToClass{\CurrentOption}{article}} +\ProcessOptions +\ifnotesonly\else\notesonlystarfalse\fi +\newdimen\footheight % seminar.sty v1.0 uses it, but its not in LaTeX2e. +% Don't want these changed by article.cls: +\let\sem@paperheight\paperheight +\let\sem@paperwidth\paperwidth +\let\paperheight\footheight +\let\paperwidth\footheight +\LoadClass{article} +\renewcommand\normalsize{% + \@setfontsize\normalsize\@xpt\@xiipt + \abovedisplayskip 10\p@ \@plus2\p@ \@minus5\p@ + \abovedisplayshortskip \z@ \@plus3\p@ + \belowdisplayshortskip 6\p@ \@plus3\p@ \@minus3\p@ + \belowdisplayskip \abovedisplayskip + \let\@listi\@slide@listi} +\let\paperheight\sem@paperheight +\let\paperwidth\sem@paperwidth +\RequirePackage{sem-page} +\newtoks\before@document +\newtoks\after@document +\let\xcomment@hook\relax +\before@document{\endgroup\the\before@document\begingroup} +\after@document{\the\after@document\xcomment@hook} +\expandafter\@temptokena\expandafter{\document} +\edef\document{\the\before@document\the\@temptokena\the\after@document} +\before@document{} +\after@document{} +\newtoks\before@enddocument +\before@enddocument{\the\before@enddocument} +\expandafter\@temptokena\expandafter{\enddocument} +\edef\enddocument{\the\before@enddocument\the\@temptokena} +\before@enddocument{} +\newif\ifprintlandscape +\ifportrait + \ifarticle\printlandscapetrue\fi +\else + \ifarticle\else\printlandscapetrue\fi +\fi +\addto@hook\before@document{\ifprintlandscape\printlandscape\fi} +\addto@preamblecmds{\printlandscape} +\def\printlandscape{\addto@hook\before@enddocument{% + \typeout{^^J% + *******************************************************^^J% + ***** !! PRINT THIS DOCUMENT IN LANDSCAPE MODE !! *****^^J% + *******************************************************}}} +\def\slide{% + \NestedSlide@Error{slide}% + \landscapetrue + \@ifnextchar[{\begin@slide}{\begin@slide[\slidewidth,\slideheight]}} +\def\endslide{\end@slide} +\@namedef{slide*}{% + \NestedSlide@Error{slide*}% + \landscapefalse + \@ifnextchar[{\begin@slide}{\begin@slide[\slidewidth,\slideheight]}}% +\@namedef{endslide*}{\end@slide} +\newcounter{slide} +\def\theslide{\arabic{slide}} +\newcount\slide@count +\newbox\@slidebox +\newbox\not@slidebox +\newif\ifslide +\newif\iflandscape +\def\@landscapeonly{0} +\def\landscapeonly{\def\@landscapeonly{1}} +\def\portraitonly{\def\@landscapeonly{-1}} +\def\NestedSlide@Error#1{% + \ifslide + \endgroup + \@seminarerr{Nested slide environments. Perhaps missing + \string\end{\@currenvir}. May be fatal}\@ehd + \expandafter\end\expandafter{\@currenvir}% + \ifslide\expandafter\end\expandafter{\@currenvir}\fi + \begingroup + \def\@currenvir{#1}% + \fi} +\def\begin@slide[#1,#2]{% + \slide@clearpage + \setlength\slidewidth{#1}% + \setlength\slideheight{#2}% + \begingroup + \ifarticle + \output{% + \advance\count@ 1 + \global\setbox\not@slidebox\box\@cclv}% + \par\@@par\penalty-\@M + \fi + \output{\slide@output}% + \slidetrue + \ifarticle\global\slide@count=\z@\fi + \refstepcounter{slide}% + \ifnotesonlystar\xdef\first@slidemarker{\the\c@slide}\fi + \def\do##1{\setcounter{##1}\z@}\slide@reset + \ifarticle\else + \edef\page@textheight{\number\textheight sp}% + \edef\page@textwidth{\number\textwidth sp}% + \fi + \set@slidesize + \slidebox@restore + \the\slide@hook + \the\before@newslide + \everyslide} +\def\end@slide{% + \par\penalty-\@M + \xdef\@tempg{\@currenvir}% + \endgroup + \ifslide + \@seminarerr{Perhaps missing `\string\end{\@tempg}', + \iffalse{\fi`\string}' or `\string\endgroup'}\@ehd + \def\next{\endgroup\ifslide\expandafter\next\fi}% + \next + \fi + \begingroup + \output{\setbox\@tempboxa\box\@cclv}% + \@@par\penalty-\@M + \endgroup + \global\advance\c@slide-1 + \def\do##1{\setcounter{##1}{\@nameuse{saved@c@##1}}}% + \slide@reset + \ifarticle\outputloop@savedslides\fi + \the\after@slide} +\let\slideclearpagetrue\relax +\let\slideclearpagefalse\relax +\ifarticle + \def\slide@clearpage{\par\penalty\z@} + \ifnotes + \def\slideclearpagetrue{\def\slide@clearpage{\clearpage}} + \def\slideclearpagefalse{\def\slide@clearpage{\par\penalty\z@}} + \else + \ifnotesonly + \def\slideclearpagetrue{\def\slide@clearpage{\clearpage}} + \def\slideclearpagefalse{\def\slide@clearpage{\par\penalty\z@}} + \fi + \fi +\else + \def\slide@clearpage{\clearpage} +\fi +\newtoks\slide@hook +\def\everyslide{} +\newtoks\after@slide +\def\slidebox@restore{% + \def\thepage{\theslide}% + \def\newpage{\newslide}% + \def\clearpage{\newslide}% + \def\thispagestyle##1{\notslide@err{\thispagestyle}}% + \pagestyle{\slide@pagestyle}% + \@twocolumnfalse + \def\twocolumn{\notslide@err{\twocolumn}}% + \def\onecolumn{\notslide@err{\onecolumn}}% + \def\marginpar##1{\notslide@err{\marginpar}}% + \def\thanks{\slidethanks}% + \def\maketitle{\slidemaketitle}% + \fix@floats + \fix@whatsits + \slide@footnotes + \def\do##1{\expandafter\xdef\csname + saved@c@##1\endcsname{\the\@nameuse{c@##1}}}% + \slide@reset + \topskip\z@ \maxdepth\z@ + \slide@listparameters + \slidefonts + \def\baselinestretch{\slidestretch}% + \def\arraystretch{\slidearraystretch}% + \sem@ptsize{\slide@ptsize}} +\def\date#1{\gdef\@date{#1}\gdef\thedate{#1}} +\def\author#1{\gdef\@author{#1}\gdef\theauthor{#1}} +\def\title#1{\gdef\@title{#1}\gdef\thetitle{#1}} +\date{\today} +\let\slidethanks\thanks +\def\thethanks{\@thanks}% +\def\slidemaketitle{% + \par + \begin{center}\bf + {\large \thetitle}\par\vskip 1ex + \begin{tabular}[t]{c} \theauthor \end{tabular}\par\vskip 1ex + \thedate + \end{center}% + \thethanks\par} +\def\fix@floats{% + \def\@xfloat##1[##2]{% + \expandafter\let\csname end##1\endcsname\end@float + \par\medskip\vbox\bgroup\def\@captype{##1}\parindent\z@ + \ignorespaces}% + \def\end@float{\par\vskip\z@\egroup\medskip}% + \def\@dblfloat{\@float}\def\end@dblfloat{\end@float}% + \def\endfigure{\end@float}\def\endtable{\end@float}} +\let\normal@write\write +\let\normal@read\read +\let\normal@openout\openout +\let\normal@closeout\closeout +% changed as per DPC 1997/09/16 +\def\fix@whatsits{% + \long\def \protected@write##1##2##3{% + \begingroup + ##2% + \let\protect\noexpand + \immediate\normal@write##1{##3}% + \endgroup + \if@nobreak\ifvmode\nobreak\fi\fi}% +} +% end change +\newinsert\slide@footins +\skip\slide@footins=\bigskipamount +\count\slide@footins=1000 +\dimen\slide@footins=4in +\def\theslidefootnote{\alph{footnote}} +\def\slide@footnotes{% + \def\thefootnote{\theslidefootnote}% + \let\footins\slide@footins + \interfootnotelinepenalty\@M} +\def\slidefonts{} +\def\slidestretch{1.18} +\def\slidearraystretch{1.2} +\def\raggedslides{\@ifnextchar[{\@raggedslides}{\@raggedslides[1fil]}} +\def\@raggedslides[#1]{% + \edef\slide@@rightskip{#1}% + \ifslide\slide@rightskip\fi} +\def\slide@rightskip{% + \@rightskip\z@ plus \slide@@rightskip\relax \rightskip\@rightskip} +\def\slide@@rightskip{1fil} +\newcount\slide@listdepth +\def\slide@listparameters{% + \let\@listdepth\slide@listdepth + \slide@listdepth\z@ + \def\@listi{\slide@listi}% + \def\@listii{\slide@listii}% + \def\@listiii{\slide@listiii}% + \let\@listiv\relax\let\@listv\relax\let\@listvi\relax} +\def\slide@listi{% + \leftmargin\leftmargini + \labelwidth\leftmargini \advance\labelwidth-\labelsep + \parsep\parskip \divide\parsep2 + \partopsep\slidepartopsep\relax + \advance\partopsep-\parskip + \ifdim\partopsep<\z@\partopsep\z@\fi + \itemsep\slideitemsep\relax + \ifdim\parsep<\itemsep + \topsep\itemsep \advance\topsep-\parsep + \else + \itemsep\parsep \topsep\z@ + \fi} +\def\slide@listii{% + \leftmargin\leftmarginii + \labelwidth\leftmarginii \advance\labelwidth-\labelsep + \divide\itemsep2 \divide\parsep2 + \divide\topsep2 \divide\partopsep2\relax}% +\def\slide@listiii{% + \leftmargin\leftmarginiii + \labelwidth\leftmarginiii \advance\labelwidth-\labelsep + \itemsep \z@ \parsep\z@ \topsep\z@}% +\def\slideleftmargini{1.8em} +\def\slideleftmarginii{1.4em} +\def\slideleftmarginiii{1em} +\def\slidelabelsep{.5em} +\def\slideitemsep{.8ex minus .2ex} +\def\slidepartopsep{1ex minus .2ex} +\newbox\saved@specials +\def\save@slidespecials{% + \begingroup + \output{% + \global\setbox\saved@specials=\box\@cclv + \global\wd\saved@specials=\z@ + \global\dp\saved@specials=\z@ + \global\ht\saved@specials=\z@}% + \hbox{}\penalty-\@M + \global\let\saved@texttop\@texttop + \gdef\@texttop{% + \ifvoid\saved@specials\else\box\saved@specials\nointerlineskip\fi + \saved@texttop + \global\let\@texttop\saved@texttop}% + \endgroup} +\addto@hook\after@document{\save@slidespecials} +\ifarticle\else + \def\insert@specials{% + \ifvoid\saved@specials\else + \setbox\@slidebox\hbox{\box\saved@specials\box\@slidebox}% + \fi + \global\let\insert@specials\relax} +\fi +\def\extraslideheight#1{% + \@tempdima #1\relax + \edef\X@SlideHeight{\number\@tempdima sp} + \ifslide\set@slidesize\fi} +\extraslideheight{6pt} +\def\set@slidesize{% + \iflandscape + \hsize=\inverseslidesmag\slidewidth + \vsize=\inverseslidesmag\slideheight + \else + \hsize=\inverseslidesmag\slideheight + \vsize=\inverseslidesmag\slidewidth + \fi + \edef\slide@vsize{\number\vsize sp}% + \textheight\vsize + \advance\vsize\X@SlideHeight\relax + \textwidth\hsize\columnwidth\hsize\linewidth\hsize} +\def\newslide{% + \par\penalty-\@M + \def\do##1{\setcounter{##1}\z@}\slide@reset + \the\before@newslide + \set@slidesize} +\newtoks\before@newslide +\def\slide@reset{\do{footnote}} +\def\slidereset#1{\def\slide@reset{}\addtoslidereset{#1}} +\def\addtoslidereset#1{% + \edef\@tempa{#1}\expandafter\addto@slidereset\@tempa,\@nil,} +\def\addto@slidereset#1,{% + \ifx\@nil#1\else + \@ifundefined{c@#1}% + {\@seminarerr{Counter `#1' not defined}\@ehd}% + {\expandafter\def\expandafter\slide@reset\expandafter{% + \slide@reset\do{#1}}}% + \expandafter\addto@slidereset + \fi} +\def\slide@output{% + \@makeslide + \@testfalse + \ifnotesonly\else + \iflandscape + \ifnum\@landscapeonly>-1 \os@test\fi + \else + \ifnum\@landscapeonly<1 \os@test\fi + \fi + \fi + \if@test + \reset@slideoutput + \@@makeslide + \process@slide + \fi + \refstepcounter{slide}} +\def\reset@slideoutput{% + \let\par\@@par + \reset@font + \def\baselinestretch{1}% + \@nameuse{1\@ptsize @semptsize}% + \catcode`\ =10 + \let\-\@dischyph \let\'\@acci \let\`\@accii \let\=\@acciii} +\newif\ifcenterslides +\centerslidestrue +\providecommand\@begindvi{} % added 1997/04/15 SPQR, to cope with very + % old LaTeXs +\def\@makeslide{% + \setbox\@slidebox\vbox{% + \@begindvi % added 1997/04/15 SPQR + \unvbox\@cclv + \ifvoid\slide@footins\else + \vskip\skip\slide@footins + \footnoterule + \unvbox\slide@footins + \fi + \vskip\z@}} +\def\@@makeslide{% + \overfullslide@warning + \setbox\@slidebox\hbox{% + \vfuzz=\slidefuzz\relax + \vbox to\slide@vsize{% + \ifcenterslides\vskip\z@ plus .0001fil \fi + \unvbox\@slidebox + \vskip\z@ plus .0001fil}% + \the\after@slidepage}% + \wd\@slidebox\textwidth} +\def\overfullslide@warning{% + \dimen@\ht\@slidebox + \advance\dimen@-\slide@vsize\relax + \ifdim\dimen@>\slidefuzz\relax + \@warning{Slide \theslide\space overfull by \the\dimen@}% + \fi} +\def\slidefuzz{2pt} +\newtoks\after@slidepage +\newif\ifrotateheaders +\def\sliderotation#1{\@ifundefined{semsr@#1}% + {\@latexerr{Slide rotation `#1' not defined.}\@eha}% + {\@nameuse{semsr@#1}}} +\def\semsr@left{% + \def\rotate@slide{% + \setbox\@slidebox\hbox{\leftsliderotation{\box\@slidebox}}}} +\def\semsr@right{% + \def\rotate@slide{% + \setbox\@slidebox\hbox{\rightsliderotation{\box\@slidebox}}}} +\def\semsr@none{\let\rotate@slide\relax} +\sliderotation{none} +\def\leftsliderotation#1{% + \@seminarerr{\string\leftsliderotation\space has not been defined}% + \@ehd} +\let\rightsliderotation\leftsliderotation +\def\@ifrotateslide#1{% + \ifx\rotate@slide\relax\else + \iflandscape\ifportrait#1\fi\else\ifportrait\else#1\fi\fi + \fi} +\def\process@slide{% + \slideframewidth=\inverseslidesmag\slideframewidth + \slideframesep=\inverseslidesmag\slideframesep + \fboxrule\slideframewidth + \fboxsep\slideframesep + \ifarticle + \@ifrotateslide\rotate@slide + \else + \ifrotateheaders\else\@ifrotateslide\rotate@slide\fi + \fi + \process@@slide} +\def\process@@slide{\finish@slide\output@slide} +\def\finish@slide{% + \theslideframe + \add@slidelabel\slidelabel} +\ifarticle + \def\output@slide{% + \global\advance\slide@count1 + \@ifundefined{slidebox@\the\slide@count}% + {{\globaldefs=1\expandafter + \new@slidebox\csname slidebox@\the\slide@count\endcsname}}{}% + \expandafter\global\expandafter\setbox\csname + slidebox@\the\slide@count\endcsname\box\@slidebox} +\else + \def\output@slide{% + \begingroup + \hoffset=-\inverseslidesmag in + \voffset=-\inverseslidesmag in + \setslidelength\@tempdima{% + \ifportrait\paperwidth\else\paperheight\fi} + \setslidelength\@tempdimb{% + \ifportrait\paperheight\else\paperwidth\fi} + \ifrotateheaders + \@ifrotateslide{% + \dimen@=\@tempdima + \@tempdima=\@tempdimb + \@tempdimb=\dimen@} + \fi + % \oddsidemargin, \evensidemargin, \headheight, \footheight + % used for scratch: + \setslidelength\oddsidemargin\slideleftmargin + \setslidelength\evensidemargin\sliderightmargin + \setslidelength\headheight\slidetopmargin + \setslidelength\footheight\slidebottommargin + % Some page styles like to know \textwidth: + \textwidth=\@tempdima + \advance\textwidth-\oddsidemargin + \advance\textwidth-\evensidemargin + \setbox\@slidebox=\hbox to \@tempdima{% + \kern\oddsidemargin + \vbox to\@tempdimb{% + \ifnum\fancyput@flag>-1 + \hbox{\kern-\oddsidemargin\do@fancyput}% + \fi + \let\label\@gobble + \let\index\@gobble + \let\glossary\@gobble + \vbox to\headheight{% + \vfill + \hbox{% + \slideheadfont\relax\strut + \hbox to\textwidth{\@oddhead}}% + \kern\z@}% + \vfill + \hbox to\textwidth{\hss\box\@slidebox\hss}% + \vfill + \vbox to\footheight{% + \hbox{% + \slidefootfont\relax\strut + \hbox to\textwidth{\@oddfoot}}% + \vfill}}% + \hss}% + \ifrotateheaders\@ifrotateslide\rotate@slide\fi + \insert@specials + \shipout\box\@slidebox + \endgroup + \let\firstmark\botmark} + \@ifundefined{fancyput@flag}{\def\fancyput@flag{-1}}{} +\fi +\newskip\slidesep +\slidesep\intextsep +\ifarticle + \def\fps@fslide{htbp} + \def\ftype@fslide{32} + \def\float@savedslide{% + \begingroup\@float{fslide}% + \centerline{\box\@slidebox}% + \end@float\endgroup}% + \@namedef{float*@savedslide}{% + \begingroup\@dblfloat{fslide}% + \centerline{\box\@slidebox}% + \end@dblfloat\endgroup}% + \def\center@slide{\hbox{% + \kern-\@totalleftmargin + \hbox to \columnwidth{\hss\box\@slidebox\hss}}}% + \def\onepercol@savedslide{% + \vbox to .996\textheight{\vss\center@slide\vss}\goodbreak}% + \def\twopercol@savedslide{% + \dimen@.5\textheight + \advance\dimen@-\slidesep + \ifdim\ht\@slidebox>\dimen@ + \onepercol@savedslide + \else + \vbox to .498\textheight{\vss\center@slide\vss}\goodbreak + \fi} + \def\here@savedslide{% + \addvspace\slidesep\center@slide\addvspace\slidesep} + \@namedef{here*@savedslide}{% + \goodbreak \hrule \@height\z@ \nobreak \vskip\slidesep \nobreak + \center@slide + \nobreak \vskip\slidesep \nobreak \hrule\@height\z@ \goodbreak} +\fi +\ifarticle + \def\slideplacement#1{\@ifundefined{#1@savedslide}% + {\@seminarerr{Slide placement `#1' undefined}\@ehd}% + {\expandafter\let\expandafter\output@savedslide + \csname #1@savedslide\endcsname}} +\else + \def\slideplacement#1{} +\fi +\ifarticle + \ifnotes + \ifportrait + \slideplacement{float} + \else + \slideplacement{float*} + \fi + \else + \ifportrait + \slideplacement{onepercol} + \else + \slideplacement{twopercol} + \fi + \fi +\fi +\ifarticle + \def\outputloop@savedslides{% + \global\maxdepth\@maxdepth + \ifvoid\not@slidebox\else + \dimen@=\dp\not@slidebox + \unvbox\not@slidebox + \hrule height\z@ + \prevdepth\dimen@ + \penalty\z@ + \fi + \edef\slide@@count{\the\slide@count\relax}% + \slide@count\z@ + \loop + \ifnum\slide@count<\slide@@count + \advance\slide@count1 + \expandafter\setbox\expandafter\@slidebox\expandafter\box + \csname slidebox@\the\slide@count\endcsname + \output@savedslide + \repeat + \ifnotesonlystar\make@slidemarker\fi} +\fi +\def\make@slidemarker{% + \addvspace\slidesep + \moveleft\@totalleftmargin + \vbox{% + \hsize\columnwidth + \hrule height 1pt + \kern 8pt + \hbox to \columnwidth{% + \hss + \LARGE\bf\the@slidemarker + \hss}% + \kern 8pt + \hrule height 1pt}% + \addvspace\slidesep} +\def\the@slidemarker{% + Slide% + \ifnum\c@slide=\first@slidemarker\else + s {\c@slide\first@slidemarker\relax\theslide} --\fi + { }\theslide}% +\ifarticle + \let\c@note\c@page + \def\p@note{\p@page} + \def\thenote{\thepage} +\else + \newcounter{note} + \def\thenote{\theslide-\arabic{note}} + \def\thepage{\thenote} + \addto@hook\after@slide{\setcounter{note}{1}} + \expandafter\def\expandafter\@outputpage\expandafter{% + \@outputpage\stepcounter{note}} +\fi +\ifarticle\else + \let\c@page\c@slide + \countdef\c@slide=0 + \c@slide=0 + \c@page=1 +\fi +\ifarticle + \let\truepagenumbers\relax +\else + \def\truepagenumbers{% + \let\c@slide\c@page + \countdef\c@page=0 + \c@page=1 + \c@slide=0 + \let\truepagenumbers\relax} +\fi +\addto@preamblecmds{\truepagenumbers} +\newdimen\slideframewidth \slideframewidth 4pt +\newdimen\slideframesep \slideframesep .3in +\def\newslideframe#1{% + \@ifnextchar[{\@newslideframe{#1}}{\@newslideframe{#1}[]}} +\def\@newslideframe#1[#2]{% + \@namedef{semsfops@#1}{#2}% + \@namedef{semsf@#1}##1} +\newslideframe{plain}{\fbox{#1}} +\def\slideframe{\@slideframe{slide}} +\def\@slideframe#1{% + \@ifstar{\@testtrue\@@slideframe{#1}}{\@testfalse\@@slideframe{#1}}} +\def\@@slideframe#1{% + \@ifnextchar[{\@@@slideframe{#1}}{\@@@slideframe{#1}[]}} +\def\@@@slideframe#1[#2]#3{% + \def\@tempa{none}% + \def\@tempb{#3}% + \ifx\@tempa\@tempb + \@namedef{the#1frame}{\relax}% + \else + \ifx\@tempb\@empty + \@namedef{the#1frame}{}% + \else + \@ifundefined{semsf@#3}% + {\@seminarerr{Slide frame `#3' undefined}\@eha}% + {\if@test + \@@@@slideframe{#1}[#2]{#3}% + \else + \@namedef{the#1frame}{\setbox\@slidebox=\hbox{{% + \@nameuse{semsfops@#3}#2\@nameuse{semsf@#3}{\box\@slidebox}}}}% + \fi}% + \fi + \fi} +\def\@@@@slideframe#1[#2]#3{% + \expandafter\let\expandafter\@tempa\csname the#1frame\endcsname + \edef\next{% + \noexpand\def\expandafter\noexpand\csname the#1frame\endcsname}% + \expandafter\next\expandafter{\@tempa + \setbox\@slidebox=\hbox{{% + \@nameuse{semsfops@#3}% + #2% + \@nameuse{semsf@#3}{\box\@slidebox}}}}}% +\slideframe{plain} +\def\slidestyle#1{\@ifundefined{ss@#1}% + {\@seminarerr{Slide style `#1' undefined}\@eha}% + {\@nameuse{ss@#1}}} +\def\ss@empty{\let\add@slidelabel\@gobble} +\def\ss@left{\def\add@slidelabel##1{% + \setbox\@slidebox=\hbox{% + \vbox to \ht\@slidebox{\vss + \hbox to 0pt{\hss##1\hskip 15pt}% + \vss}\box\@slidebox}}} +\def\ss@bottom{\def\add@slidelabel##1{% + \setbox\@slidebox=\vbox{\copy\@slidebox\vskip 9pt + \hbox to\wd\@slidebox{\hss##1\hss}}}}% +\ifarticle + \ifportrait\slidestyle{bottom}\else\slidestyle{left}\fi +\else + \slidestyle{empty} +\fi +\def\slidelabel{\bf Slide \theslide} +\def\newpagestyle#1#2#3{% + \expandafter\newcommand\csname ps@#1\endcsname{% + \def\@oddhead{#2}\let\@evenhead\@oddhead + \def\@oddfoot{#3}\let\@evenfoot\@oddfoot}} +\def\renewpagestyle#1#2#3{% + \expandafter\renewcommand\csname ps@#1\endcsname{% + \def\@oddhead{#2}\let\@evenhead\@oddhead + \def\@oddfoot{#3}\let\@evenfoot\@oddfoot}} +\def\@ifgoodps#1{% + \@ifundefined{ps@#1}{\@seminarerr{Page style `#1' undefined}\@eha}} +\def\slidepagestyle#1{% + \@ifgoodps{#1}% + {\ifslide\pagestyle{#1}\else\edef\slide@pagestyle{#1}\fi}} +\def\ps@{} +\slidepagestyle{} +\ifarticle + \def\ps@align{} +\else + \def\ps@align{% + \def\@oddhead{\thepage\hfil+}\let\@evenhead\@oddhead + \def\@oddfoot{+\hfil+}\let\@evenfoot\@oddfoot} +\fi +\def\slideheadfont{\scriptsize} +\def\slidefootfont{\scriptsize} +\def\magstep#1{\ifcase#1 \@m\or 1200\or 1440\or 1728\or + 2074\or 2488\or 2986\or 3583\or 4300\or 5160\fi\relax} +\def\magstepminus#1{% + \ifcase#1 \@m\or 833\or 694\or 579\or 482\or 401\fi\relax} +\def\@magstep#1{% + \ifnum#1<\z@\magstepminus{-#1}\else\magstep#1\fi} +{\catcode`\p=12\catcode`\t=12 + \gdef\@@inv@@mag#1pt#2{\def#2{#1}}} +\def\invert@mag#1{\@tempdima=1000pt + \divide\@tempdima by #1\relax + \expandafter\@@inv@@mag\the\@tempdima#1} +\def\@slidesmag#1{% + \@tempcnta=#1\relax% + \ifnum\@tempcnta>0 + \edef\inverseslidesmag{\the\@tempcnta}% + \invert@mag\inverseslidesmag + \ifarticle\else\mag\@tempcnta\fi + \else + \@seminarerr{\string\@slidesmag\space argument must be an + integer equal to 1000 times the magnification}\@eha + \fi} +\def\@articlemag#1{% + \@tempcnta=#1\relax% + \ifnum\@tempcnta>0 + \edef\inverseartmag{\the\@tempcnta}% + \invert@mag\inverseartmag + \ifarticle\mag\@tempcnta\fi + \else + \@seminarerr{\string\articlemag\space argument must be an + integer equal to 1000 times the magnification}\@eha + \fi} +\addto@preamblecmds{\@slidesmag\do\@articlemag} +\newdimen\semin +\newdimen\semcm +\def\@semmagerr#1{% + \@seminarerr{\string#1 argument must be an integer + between -5 and 9}\@eha} +\def\slidesmag#1{% + \@tempcnta=#1\relax + \ifnum\@tempcnta>-6 + \ifnum\@tempcnta<10 + \edef\the@slidesmag{\the\@tempcnta}% + \@slidesmag{\@magstep\@tempcnta}% + \else + \@semmagerr\slidesmag + \fi + \else + \@semmagerr\slidesmag + \fi + \setslidelength\semin\seminlength + \setslidelength\semcm\semcmlength} +\def\seminlength{1in} +\def\semcmlength{1cm} +\def\articlemag#1{% + \@tempcnta=#1\relax + \ifnum\@tempcnta>-6 + \ifnum\@tempcnta<10 + \edef\the@articlemag{\the\@tempcnta}% + \@articlemag{\@magstep\@tempcnta}% + \else + \@semmagerr\articlemag + \fi + \else + \@semmagerr\articlemag + \fi} +\addto@preamblecmds{\slidesmag\do\articlemag} +\def\setslidelength#1#2{% + #1=#2\relax + #1=\inverseslidesmag#1}% +\def\addtoslidelength#1#2{% + \dimen@=#2\relax + \advance#1 by \inverseslidesmag\dimen@} +\def\setartlength#1#2{% + #1=#2\relax + #1=\inverseartmag#1} +\def\addtoartlength#1#2{% + \dimen@=#2\relax + \advance#1 by \inverseartmag\dimen@} +\def\slide@epsfsize#1#2{% + \ifdim\epsfxsize=0pt + \ifdim\epsfysize=0pt + \inverseslidesmag#1% + \else + 0pt + \fi + \else + \inverseslidesmag\epsfxsize + \fi + \epsfysize + \ifdim\epsfysize=0pt + \ifdim\epsfxsize=0pt + \inverseslidesmag#2% + \else + 0pt + \fi + \else + \inverseslidesmag\epsfysize + \fi} +\def\epsfslidesize{\let\epsfsize\slide@epsfsize} +\slidesmag{4} +\articlemag{0} +\def\do@pageparameters{% + \do\oddsidemargin + \do\evensidemargin + \do\marginparwidth + \do\marginparsep + \do\topmargin + \do\headheight + \do\headsep + \do\textheight + \do\textwidth + \do\topskip + \do\footskip + \do\footheight} +\ifarticle + \def\scale@pageparameters{% + \begingroup + \def\do##1{\global##1=\inverseartmag##1\relax}% + \do@pageparameters + \endgroup} +\else + \def\scale@pageparameters{% + \begingroup + \def\do##1{\global##1=\inverseslidesmag##1\relax}% + \do@pageparameters + \endgroup} +\fi +\addto@hook\before@document{\scale@pageparameters} +\addto@preamblecmds{\scale@pageparameters\do\do@pageparameters} +\def\allversions{} +\let\endallversions\relax +\@namedef{allversions*}{\@bsphack\globaldefs=1} +\@namedef{endallversions*}{\@esphack} +\def\slide@list{slide,slide*,allversions,allversions*} +\def\addtoslidelist#1{\xdef\slide@list{\slide@list,#1}} +\addto@preamblecmds{\addtoslidelist} +\ifslidesonly + \@ifundefined{xcomment@@@}{\@@input xcomment.sty }{} + \def\xcomment@hook{\@xcomment{@@@}{\slide@list}} + \newxcomment[]{note} +\else + \def\note{\@bsphack}% + \def\endnote{\@esphack}% +\fi +\def\noxcomment{\def\xcomment@hook{}} +\def\os@list{} +\newif\if@os +\def\onlyslides#1{\def\os@list{#1}\@ostrue + \def\os@warning{\@warning{\string\onlyslides\space argument + contains undefined references}}} +\def\notslides#1{\def\os@list{#1}\@osfalse + \def\os@warning{\@warning{\string\notslides\space argument + contains undefined references}}} +\addto@preamblecmds{\onlyslides\do\notslides} +\addto@hook\after@document{% + \ifx\os@list\@empty\else\os@expandlist\fi} +\def\os@expandlist{% + \let\os@@warning\relax + \begingroup + \def\ref##1{\@ifundefined{r@##1}{?}% + {\noexpand\@car\@nameuse{r@##1}\noexpand\@nil}}% + \edef\@tempd{\os@list}% + \xdef\os@list{}% + \@for\@tempc:=\@tempd + \do{\expandafter\os@expandrange\@tempc-:-:\@nil}% + \os@@warning + \endgroup + \let\os@expandrange\relax + \let\os@checknum\relax + \let\os@expandlist\relax} +\def\os@expandrange#1-#2-#3\@nil{% + \def\@tempa{?}\def\@tempb{#1}% + \ifx\@tempa\@tempb + \let\os@@warning\os@warning + \else + \@tempcnta=#1\relax + \def\@tempb{#2}% + \ifx\@tempa\@tempb + \let\os@@warning\os@warning + \else + \def\@tempa{:}% + \ifx\@tempa\@tempb + \@tempcntb=\@tempcnta + \else + \@tempcntb=#2\relax + \fi + \advance\@tempcnta by -1 + \advance\@tempcntb by 1 + \ifx\os@list\@empty + \xdef\os@list{\the\@tempcnta+\the\@tempcntb}% + \else + \xdef\os@list{\os@list,\the\@tempcnta+\the\@tempcntb}% + \fi + \fi + \fi} +\def\os@test{% + \@testtrue + \iflandscape + \ifnum\@landscapeonly=-1 \@testfalse\fi + \else + \ifnum\@landscapeonly=1 \@testfalse\fi + \fi + \if@test + \ifx\os@list\@empty\else + \if@os\@testfalse\fi + \@for\@tempa:=\os@list\do{\expandafter\os@testrange\@tempa\@nil}% + \fi + \fi} +\def\os@testrange#1+#2\@nil{% + \ifnum\c@slide>#1 + \ifnum\c@slide<#2 + \if@os\@testtrue\else\@testfalse\fi + \fi + \fi} +\def\onlynotestoo{% + \ifnotes\@testtrue\else\ifnotesonly\@testtrue\else\@testfalse\fi\fi + \if@test + \@ifundefined{xcomment@@@}{% + \edef\sem@temp{\the\catcode`\@}% + \catcode`\@=11 + \@@input xcomment.sty + \catcode`\@=\sem@temp\relax}{}% + \def\xcomment@hook{\@xcomment{@@@}{\slide@list}}% + \addto@hook\after@slide\onlynotes@too + \fi} +\def\onlynotes@too{% + \os@test + \if@test\gdef\do@end{}\else\gdef\do@end{\xc@begin}\fi} +\addto@preamblecmds\onlynotestoo +\def\ptsize#1{% + \@ifundefined{#1@semptsize}% + {\@seminarerr{\string\ptsize\space `#1' not valid.}\@eha}% + {\ifslide + \sem@ptsize{#1}\large\normalsize + \else + \edef\slide@ptsize{#1}% + \fi}} +\edef\slide@ptsize{1\@ptsize}% +\def\slidefontsizes{\ptsize} %For backwards compatibility?? +\def\slide@setsize#1#2#3#4{% + \@setsize{#1}{#2}{#3}{#4}% + \set@slideskip{#2}} +\def\slide@@setsize#1#2#3#4{% + \slide@setsize{#1}{#2}{#3}{#4}\slidedisplayskips} +\def\set@slideskip#1{% + \normallineskiplimit=#1 + \advance\normallineskiplimit-\normalbaselineskip + \multiply\normallineskiplimit-1 + \normallineskiplimit\slideskip\normallineskiplimit + \ifdim\normallineskiplimit<1pt\normallineskiplimit=1pt\fi + \normallineskip=\normallineskiplimit + minus \slideshrink\normallineskiplimit + \dimen@=\normalbaselineskip + \normalbaselineskip=\dimen@ minus \slideshrink\normallineskiplimit + \normalbaselines} +\def\slideskip{.75} +\def\slideshrink{.25} +\def\slidedisplayskips{% + \abovedisplayskip 1.75ex minus .35ex + \belowdisplayskip \abovedisplayskip + \abovedisplayshortskip .2ex minus .2ex + \belowdisplayshortskip 1ex minus .2ex} +\def\sem@ptsize#1{% + \@nameuse{#1@semptsize}% + \large\normalsize + \leftmargini\slideleftmargini\relax + \leftmarginii\slideleftmarginii\relax + \leftmarginiii\slideleftmarginiii\relax + \labelsep\slidelabelsep\relax + \parskip\slideparskip\relax + \parindent\slideparindent\relax + \slide@rightskip + \slide@listi + \skip\footins\slidefootins\relax + \footnotesep\slidefootnotesep\relax} +\def\slidefootins{2ex minus .8ex} +\def\slidefootnotesep{1.2ex} +\def\slideparindent{\z@} +\def\slideparskip{1ex minus .2ex} +\@namedef{8@semptsize}{% + \def\normalsize{\slide@@setsize\normalsize{9.5pt}\viiipt\@viiipt}% + \def\small{\slide@@setsize\small{8pt}\viipt\@viipt}% + \def\footnotesize{\slide@@setsize\footnotesize{8pt}\vipt\@vipt}% + \def\scriptsize{\slide@setsize\scriptsize{7pt}\vipt\@vipt}% + \def\tiny{\slide@setsize\tiny{6pt}\vpt\@vpt}% + \def\large{\slide@setsize\large{12pt}\xpt\@xpt}% + \def\Large{\slide@setsize\Large{14pt}\xiipt\@xiipt}% + \def\LARGE{\slide@setsize\LARGE{17pt}\xivpt\@xivpt}% + \def\huge{\slide@setsize\huge{20pt}\xviipt\@xviipt}% + \def\Huge{\slide@setsize\Huge{25pt}\xxpt\@xxpt}} +\@namedef{9@semptsize}{% + \def\normalsize{\slide@@setsize\normalsize{11pt}\ixpt\@ixpt}% + \def\small{\slide@@setsize\small{9.5pt}\viiipt\@viiipt}% + \def\footnotesize{\slide@@setsize\footnotesize{8pt}\viipt\@viipt}% + \def\scriptsize{\slide@setsize\scriptsize{7pt}\vipt\@vipt}% + \def\tiny{\slide@setsize\tiny{6pt}\vpt\@vpt}% + \def\large{\slide@setsize\large{12pt}\xpt\@xpt}% + \def\Large{\slide@setsize\Large{14pt}\xiipt\@xiipt}% + \def\LARGE{\slide@setsize\LARGE{17pt}\xivpt\@xivpt}% + \def\huge{\slide@setsize\huge{20pt}\xviipt\@xviipt}% + \def\Huge{\slide@setsize\Huge{25pt}\xxpt\@xxpt}} +\@namedef{10@semptsize}{% + \def\normalsize{\slide@@setsize\normalsize{12pt}\xpt\@xpt}% + \def\small{\slide@@setsize\small{11pt}\ixpt\@ixpt}% + \def\footnotesize{\slide@@setsize\footnotesize{9.5pt}\viiipt\@viiipt}% + \def\scriptsize{\slide@setsize\scriptsize{8pt}\viipt\@viipt}% + \def\tiny{\slide@setsize\tiny{6pt}\vpt\@vpt}% + \def\large{\slide@setsize\large{14pt}\xiipt\@xiipt}% + \def\Large{\slide@setsize\Large{18pt}\xivpt\@xivpt}% + \def\LARGE{\slide@setsize\LARGE{22pt}\xviipt\@xviipt}% + \def\huge{\slide@setsize\huge{25pt}\xxpt\@xxpt}% + \def\Huge{\slide@setsize\Huge{30pt}\xxvpt\@xxvpt}} +\@namedef{11@semptsize}{% + \def\normalsize{\slide@@setsize\normalsize{13.6pt}\xipt\@xipt}% + \def\small{\slide@@setsize\small{12pt}\xpt\@xpt}% + \def\footnotesize{\slide@@setsize\footnotesize{11pt}\ixpt\@ixpt}% + \def\scriptsize{\slide@setsize\scriptsize{9.5pt}\viiipt\@viiipt}% + \def\tiny{\slide@setsize\tiny{7pt}\vipt\@vipt}% + \def\large{\slide@setsize\large{14pt}\xiipt\@xiipt}% + \def\Large{\slide@setsize\Large{18pt}\xivpt\@xivpt}% + \def\LARGE{\slide@setsize\LARGE{22pt}\xviipt\@xviipt}% + \def\huge{\slide@setsize\huge{25pt}\xxpt\@xxpt}% + \def\Huge{\slide@setsize\Huge{30pt}\xxvpt\@xxvpt}} +\@namedef{12@semptsize}{% + \def\normalsize{\slide@@setsize\normalsize{14.5pt}\xiipt\@xiipt}% + \def\small{\slide@@setsize\small{13.6pt}\xipt\@xipt}% + \def\footnotesize{\slide@@setsize\footnotesize{12pt}\xpt\@xpt}% + \def\scriptsize{\slide@setsize\scriptsize{9.5pt}\viiipt\@viiipt}% + \def\tiny{\slide@setsize\tiny{7pt}\vipt\@vipt}% + \def\large{\slide@setsize\large{18pt}\xivpt\@xivpt}% + \def\Large{\slide@setsize\Large{22pt}\xviipt\@xviipt}% + \def\LARGE{\slide@setsize\LARGE{25pt}\xxpt\@xxpt}% + \def\huge{\slide@setsize\huge{30pt}\xxvpt\@xxvpt}% + \let\Huge\huge} +\@namedef{14@semptsize}{% + \def\normalsize{\slide@@setsize\normalsize{18pt}\xivpt\@xivpt}% + \def\small{\slide@@setsize\small{14.5pt}\xiipt\@xiipt}% + \def\footnotesize{\slide@@setsize\footnotesize{13.6pt}\xipt\@xipt}% + \def\scriptsize{\slide@setsize\scriptsize{12pt}\xpt\@xpt}% + \def\tiny{\slide@setsize\tiny{9.5pt}\viiipt\@viiipt}% + \def\large{\slide@setsize\large{22pt}\xviipt\@xviipt}% + \def\Large{\slide@setsize\Large{25pt}\xxpt\@xxpt}% + \def\LARGE{\slide@setsize\LARGE{30pt}\xxvpt\@xxvpt}% + \let\huge\LARGE + \let\Huge\LARGE} +\@namedef{17@semptsize}{% + \def\normalsize{\slide@@setsize\normalsize{22pt}\xviipt\@xviipt}% + \def\small{\slide@@setsize\small{18pt}\xivpt\@xivpt}% + \def\footnotesize{\slide@@setsize\footnotesize{14.5pt}\xiipt\@xiipt}% + \def\scriptsize{\slide@setsize\scriptsize{13.6pt}\xipt\@xipt}% + \def\tiny{\slide@setsize\tiny{12pt}\xpt\@xpt}% + \def\large{\slide@setsize\large{25pt}\xxpt\@xxpt}% + \def\Large{\slide@setsize\Large{30pt}\xxvpt\@xxvpt}% + \let\LARGE\Large + \let\huge\Large + \let\Huge\Large} +\def\twoup{\@ifnextchar[{\@twoup}{\@twoup[0]}} +\ifarticle + \ifportrait + \def\@twoup[#1]{% + \@tempcnta=\the@articlemag\relax + \@tempcntb=\@tempcnta + \advance\@tempcntb by #1\relax + \advance\@tempcntb by -2\relax + \ifnum\@tempcntb>-6\relax + \@@input 2up.tex + \source{\@magstep\@tempcnta}{\paperheight}{\paperwidth}% + \target{\@magstep\@tempcntb}{\paperwidth}{\paperheight}% + \targetlayout{topbottom}% + \printlandscapefalse + \else + \@seminarerr{Article magnification is too low for + \string\twoup\space to handle}\@eha + \fi + \def\articlemag##1{\@semtwoupmagerr\articlemag}} + \else + \def\@twoup[#1]{% + \@tempcnta=\the@articlemag\relax + \@tempcntb=\@tempcnta + \advance\@tempcntb by #1\relax + \advance\@tempcntb by -2\relax + \ifnum\@tempcntb>-6\relax + \@@input 2up.tex + \source{\@magstep\@tempcnta}{\paperwidth}{\paperheight}% + \target{\@magstep\@tempcntb}{\paperheight}{\paperwidth}% + \if@twoside + \targetlayout{twosided}% + \fi + \printlandscapetrue + \else + \@seminarerr{Article magnification is too low for + \string\twoup\space to handle}\@eha + \fi + \def\articlemag##1{\@semtwoupmagerr\articlemag}} + \fi +\else + \ifportrait + \def\@twoup[#1]{% + \@tempcnta=\the@slidesmag\relax + \@tempcntb=\@tempcnta + \advance\@tempcntb by #1\relax + \advance\@tempcntb by -3\relax + \ifnum\@tempcntb>-6\relax + \@@input 2up.tex + \source{\@magstep\@tempcnta}{\paperwidth}{\paperheight}% + \advance\@tempcnta by -3 + \target{\@magstep\@tempcnta}{\paperheight}{\paperwidth}% + \printlandscapetrue + \else + \@seminarerr{Slides magnification is too low for + \string\twoup\space to handle}\@eha + \fi + \def\slidesmag##1{\@semtwoupmagerr\slidesmag}} + \else + \def\@twoup[#1]{% + \@tempcnta=\the@slidesmag\relax + \@tempcntb=\@tempcnta + \advance\@tempcntb by #1\relax + \advance\@tempcntb by -3\relax + \ifnum\@tempcntb>-6\relax + \@@input 2up.tex + \source{\@magstep\@tempcnta}{\paperheight}{\paperwidth}% + \target{\@magstep\@tempcntb}{\paperwidth}{\paperheight}% + \targetlayout{topbottom}% + \printlandscapefalse + \else + \@seminarerr{Slides magnification is too low for + \string\twoup\space to handle}\@eha + \fi + \def\slidesmag##1{\@semtwoupmargerr\slidesmag}}% + \fi +\fi +\def\@semtwoupmagerr#1{% + \@seminarerr{\string#1 must come before \string\twoup}\@eha} +\addto@preamblecmds{\twoup\do\@twoup} +\openin1 seminar.con +\ifeof1\else\closein1 \relax\@@input seminar.con\fi +\endinput +%% +%% END `seminar.cls'. + diff --git a/Master/texmf-dist/tex/latex/seminar/semlayer.sty b/Master/texmf-dist/tex/latex/seminar/semlayer.sty new file mode 100644 index 00000000000..a428d3796e9 --- /dev/null +++ b/Master/texmf-dist/tex/latex/seminar/semlayer.sty @@ -0,0 +1,146 @@ +%% BEGIN semlayer.sty +%% +%% This is file `semlayer.sty', generated +%% on <1993/4/2> with the docstrip utility (2.0r). +%% +%% The original source files were: +%% +%% semlayer.doc +%% +\def\fileversion{1.0} +\def\filedate{93/04/01} +%% +%% LaTeX style option `semlayer.sty'. +%% For use with LaTeX v2.09 and the `seminar' document style. +%% +%% COPYRIGHT 1993, by Timothy Van Zandt, Timothy.VAN-ZANDT@insead.edu +%% See seminar.sty or seminar.doc for copying restrictions. +%% +\addto@hook\before@newslide{% + \global\def\overlay@list{}% + \setcounter{overlay}{0}} +\newbox\@@slidebox +\def\process@@slide{% + \ifx\overlay@list\@empty + \finish@slide + \output@slide + \else + \setbox\@@slidebox\box\@slidebox + \make@overlay{0}% + \finish@slide + \output@slide + {\let\theoverlay\theslide\layer@loop{0}}% + \overlay@loop + \fi} +\def\overlay@loop{% + \begingroup + \overlay@prep + \c@overlay=1 + \@whilenum\c@overlay<10 + \do{% + \test@member{\the\c@overlay}{\overlay@list}% + \if@test + \make@overlay{\the\c@overlay}% + \finish@slide + \output@slide + \fi + \layer@loop{\the\c@overlay}% + \advance\c@overlay by 1}% + \endgroup} +\def\layer@loop#1{% + \begingroup + \layer@prep + \@for\currlayer:=\layer@list\do{% + \test@member{#1-\currlayer}{\overlay@list}% + \if@test + \make@overlay{#1-\currlayer}% + \finish@slide + \output@slide + \fi}% + \endgroup} +\def\layer@prep{% + \ifarticle\pagestyle{\layer@pagestyle}\fi + \let\thepage\thelayer + \ifx\thelayerframe\@empty\else\let\theslideframe\thelayerframe\fi + \let\slidelabel\layerlabel} +\def\overlay@prep{% + \ifarticle\pagestyle{\overlay@pagestyle}\fi + \let\thepage\theoverlay + \ifx\theoverlayframe\@empty\else\let\theslideframe\theoverlayframe\fi + \let\slidelabel\overlaylabel} +\def\layerframe{\@slideframe{layer}} +\def\overlayframe{\@slideframe{overlay}} +\def\thelayerframe{} +\def\theoverlayframe{} +\def\overlaylabel{\bf Overlay \theoverlay} +\def\layerlabel{\bf Layer \thelayer} +\newcounter{overlay} +\def\theoverlay{\theslide-\alph{overlay}} +\def\currlayer{} +\def\thelayer{\theoverlay-\currlayer} +\newif\ifoverlays +\newif\iflayers +\@ifundefined{@overlay}% + {\let\@overlay\relax}% + {\ifarticle\else\overlaystrue\layerstrue\fi} +\def\nooverlays@err{% + \@seminarerr{You need to use additional macros for overlays, + e.g., semcolor.sty}\@ehd + \global\overlaysfalse + \global\layersfalse} +\@ifundefined{@overlay}{}{} +\def\overlay#1{% + \ifoverlays\ifx\@overlay\relax\nooverlays@err\fi\fi + \ifslide + \@tempcnta=#1 + \@testfalse + \ifnum\@tempcnta>-1 \ifnum\@tempcnta<10 \@testtrue\fi\fi + \if@test + \c@overlay=\@tempcnta + \ifnum\c@overlay=0 + \advance\c@slide by -1 + \refstepcounter{slide}% + \else + \advance\c@overlay by -1 + \refstepcounter{overlay}% + \ifoverlays + \xdef\overlay@list{\overlay@list,\the\c@overlay}% + \fi + \fi + \ifoverlays + \@overlay{\the\c@overlay}% + \fi + \else + \@seminarerr{\string\overlay\space argument must be + an integer between 0 and 9}\@eha + \fi + \else + \@seminarerr{\string\overlay\space can only be used + in slide environments}\@eha + \fi + \ignorespaces} +\def\colorlayers#1{% + \edef\@tempc{#1}% + \edef\layer@list{\layer@list,#1}% + \def\@tempa##1{% + \@namedef{##1}{% + \iflayers\ifx\@overlay\relax\nooverlays@err\fi\fi + \ifslide + \iflayers + \xdef\overlay@list{\overlay@list,\the\c@overlay-##1}% + \@overlay{\the\c@overlay-##1}% + \fi + \else + \@seminarerr{Color layer `##1' can only be used in + slide environments}\@eha + \fi}} + \@for\@tempb:=\@tempc\do{% + \expandafter\@tempa\expandafter{\@tempb}}} +\def\layer@list{} +\def\overlaypagestyle#1{\@ifgoodps{#1}{\edef\overlay@pagestyle{#1}}} +\def\layerpagestyle#1{\@ifgoodps{#1}{\edef\layer@pagestyle{#1}}} +\overlaypagestyle{} +\layerpagestyle{} +\endinput +%% +%% End of file `semlayer.sty'. diff --git a/Master/texmf-dist/tex/latex/seminar/semrot.sty b/Master/texmf-dist/tex/latex/seminar/semrot.sty new file mode 100644 index 00000000000..dbaa0162aee --- /dev/null +++ b/Master/texmf-dist/tex/latex/seminar/semrot.sty @@ -0,0 +1,70 @@ +%% BEGIN sem-rot.sty +\def\fileversion{1.0} +\def\filedate{93/04/01} +%% +%% LaTeX style option `semrot.sty'. +%% For use with LaTeX v2.09 and the `seminar' document style. +%% +%% COPYRIGHT 1993, by Timothy Van Zandt, Timothy.VAN-ZANDT@insead.edu +%% See seminar.sty or seminar.doc for copying restrictions. +%% +%% The following is just an interface for seminar.sty: +\def\leftsliderotation#1{\@rotate[l]{#1}} +\def\rightsliderotation#1{\@rotate[r]{#1}} +\sliderotation{left} +%% +%% And the rest is rotate.sty, as distributed with Rokicki's dvips. +%% +% These macros allow you to rotate or flip a \TeX\ box. Very useful for +% sideways tables or upsidedown answers. +% +% To use, create a box containing the information you want to rotate. +% (An hbox or vbox will do.) Now call \@rotr\boxnum to rotate the +% material and create a new box with the appropriate (flipped) dimensions. +% \@rotr rotates right, \@rotl rotates left, \@rotu turns upside down, and +% \@rotf flips. These boxes may contain other rotated boxes. +% +\newdimen\@rotdimen +\newbox\@rotbox + +\def\@vspec#1{\special{ps:#1}}% passes #1 verbatim to the output +\def\@rotstart#1{\@vspec{gsave currentpoint currentpoint translate + #1 neg exch neg exch translate}}% #1 can be any origin-fixing transformation +\def\@rotfinish{\@vspec{currentpoint grestore moveto}}% gets back in synch +% +% First, the rotation right. The reference point of the rotated box +% is the lower right corner of the original box. +% +\def\@rotr#1{\@rotdimen=\ht#1\advance\@rotdimen by\dp#1% + \hbox to\@rotdimen{\hskip\ht#1\vbox to\wd#1{\@rotstart{90 rotate}% + \box#1\vss}\hss}\@rotfinish} +% +% Next, the rotation left. The reference point of the rotated box +% is the upper left corner of the original box. +% +\def\@rotl#1{\@rotdimen=\ht#1\advance\@rotdimen by\dp#1% + \hbox to\@rotdimen{\vbox to\wd#1{\vskip\wd#1\@rotstart{270 rotate}% + \box#1\vss}\hss}\@rotfinish}% +% +% Upside down is simple. The reference point of the rotated box +% is the upper right corner of the original box. (The box's height +% should be the current font's xheight, \fontdimen5\font, +% if you want that xheight to be at the baseline after rotation.) +% +\def\@rotu#1{\@rotdimen=\ht#1\advance\@rotdimen by\dp#1% + \hbox to\wd#1{\hskip\wd#1\vbox to\@rotdimen{\vskip\@rotdimen + \@rotstart{-1 dup scale}\box#1\vss}\hss}\@rotfinish}% +% +% And flipped end for end is pretty ysae too. We retain the baseline. +% +\def\@rotf#1{\hbox to\wd#1{\hskip\wd#1\@rotstart{-1 1 scale}% + \box#1\hss}\@rotfinish}% +% +% Now the user interface for LaTeX: \rotate[type]{text} where +% ``type'' is `l' for left, `r' for right, `u' for upside-down, or +% `f' for flip. `l' is the default. +% +\def\rotate{\@ifnextchar[{\@rotate}{\@rotate[l]}} +\def\@rotate[#1]#2{\setbox\@rotbox=\hbox{#2}\@nameuse{@rot#1}\@rotbox} +\endinput +%% END sem-rot.sty diff --git a/Master/texmf-dist/tex/latex/seminar/slidesec.sty b/Master/texmf-dist/tex/latex/seminar/slidesec.sty new file mode 100644 index 00000000000..81abef8d08e --- /dev/null +++ b/Master/texmf-dist/tex/latex/seminar/slidesec.sty @@ -0,0 +1,200 @@ +%% BEGIN slidesec.sty +\def\fileversion{v0.9} +\def\filedate{92/05/07} +%% +%% Style option slidesec.sty, for use with LaTeX 2.09 or SliTeX. +%% +%% COPYRIGHT 1992, by Timothy Van Zandt, Timothy.VAN-ZANDT@insead.edu +%% +%% Copying of part or all of this file is allowed under the following +%% conditions only: +%% (1) You may freely distribute unchanged copies of the file. Please +%% include the documentation when you do so. +%% (2) You may modify a renamed copy of the file, but only for personal +%% use or use within an organization. +%% (3) You may copy fragments from the file, for personal use or for use +%% in a macro package for distribution, as long as credit is given +%% where credit is due. +%% +%% You are NOT ALLOWED to take money for the distribution or use of +%% this file or modified versions or fragments thereof, except for +%% a nominal charge for copying etc. +%% +% DISCLAIMER: +% +% Someone who actually uses something like this should rewrite it. +% +% DESCRIPTION: +% +% This file contains macros for sections, headings, tables of contents, +% and lists of slides, for slides. It can probably be used with your +% favorite LaTeX slide package (e.g., seminar.sty). +% However: +%% If the counter used to keep track of slides is not slide , +%% then change the following line: +\def\@SCTR{\theslide} +%% +% ACKNOWLEDGEMENTS: +% +% The idea comes from Young U. Ryu's lslides.sty. +% +% USAGE: +% +% \slideheading[#1]{#2} +% * Analogous to \section. +% * [#1] is optional; \slideheading{#1} is same as \slideheading[#1]{#2}. +% * Advances slidesection counter. +% * Sets \theslideheading to #1; can be used, e.g., in headers and footers. +% * Adds #1 to slide contents file. +% * If #2 is non-empty, invokes \makeslideheading{#2} to make a heading. +% Default definition of \makeslideheading is +% \begin{center}\large\bf #2 \end{center} +% but you can redefine this to suit your tastes. +% +% \slidesubheading[#1]{#2} +% * Analogous to \subsection. +% * Like \slideheading, but add "sub" to all the names. +% +% \slideheading and \slidesubheading are meant to be used at most once in +% a slide, but this is not a binding restriction. +% +% You may want to define abbreviated forms. E.g., +% \newcommand{heading}{\slideheading} +% \newcommand{subheading}{\slidesubheading} +% +% \listofslides +% * Analogous to \listoftables. +% +% \slidecontents +% * Analogous to \tableofcontents +% +% \Slidecontents +% * List \slidecontents, but puts some check marks and stuff to +% indicate what you have covered so far and what is coming up. +% Meant to be used in the middle of a presentation. +% +% To change fonts and otherwise customize what you get from \listofslides, +% \slidecontents, and \Slidecontents, you have to hack at the definitions +% of these macros. +% +% BUGS: +% +% These macros have not been tested very much. +% +% IMPLEMENTATION: +% +\@ifundefined{@startlos}{}{\endinput} +\typeout{File `slidesec.sty' \fileversion\space\space + \filedate\space\space } +% +% If we use \@starttoc{los} to read in \jobname.los, then its contents +% are destroyed and we can't read it again. \@startlos is like \@starttoc, +% but it sets the flae \los@flag to 1, and then we add a few commands +% to \enddocument that open \filename.los if \los@flag=1. +% +\def\los@flag{0}% +\def\@startlos{% + \begingroup\makeatletter\@input{\jobname.los}\endgroup + \gdef\los@flag{1}\global\@nobreakfalse} +\newtoks\@temptokenb +\@temptokena{% + \ifnum\los@flag=1\if@filesw + \newwrite\tf@los\immediate\openout\tf@los\jobname.los\relax + \fi\fi} +\expandafter\@temptokenb\expandafter{\enddocument} +\edef\enddocument{\the\@temptokena\the\@temptokenb} +% +\newcounter{slidesection} +\newcounter{slidesubsection} +\def\theslidesection{\arabic{slidesection}} +\def\thesubslidesection{\theslidesection.\arabic{subslidesection}} +% +\def\slideheading{\@dblarg\slide@heading}% +\def\slide@heading[#1]#2{% + \stepcounter{slidesection}% + \addtocontents{los}{\protect\l@slide + {\the\c@slidesection}{\ignorespaces#1}{\@SCTR}}% + \gdef\theslideheading{#1}% + \def\@tempa{#2}% + \ifx\@tempa\@empty\else + {\edef\@currentlabel{\csname p@slidesection\endcsname\theslidesection}% + \makeslideheading{#2}}% + \fi} +\def\slidesubheading{\@dblarg\slide@subheading} +\def\slide@subheading[#1]#2{% + \stepcounter{slidesection}% + \addtocontents{los}{\protect\l@subslide + {\the\c@slidesubsection}{\ignorespaces#1}{\@SCTR}}% + \gdef\theslidesubheading{#1}% + \def\@tempa{#2}% + \ifx\@tempa\@empty\else + {\edef\@currentlabel{\csname p@slidesubsection\endcsname + \theslidesubsection}\makeslideheading{#2}}% + \fi} +\def\theslideheading{}\def\theslidesubheading{} +% +\def\makeslideheading#1{% + \begin{center}\large\bf #1\end{center}} +\def\makeslidesubheading{\makeslideheading} +% +\def\@undottedtocline#1#2#3#4#5{\vskip \z@ plus .2pt + \bgroup + \leftskip #2\relax \parindent #2\relax\@afterindenttrue + \interlinepenalty\@M + \leavevmode + \@tempdima #3\relax \advance\leftskip \@tempdima + \hbox{}\hskip -\leftskip + #4\par + \egroup} +\def\slide@dottedcline{\@dottedtocline{1}{1.5em}{2.3em}} +\def\slide@undottedcline{\@undottedtocline{1}{1.5em}{2.3em}} +\def\slide@cline{\slide@dottedcline} +% +\def\slidenumberline#1{\hbox to\@tempdima{\hss#1\hskip 1em}} +% +\def\listofslides{\section*{List of Slides% + \@mkboth{LIST OF SLIDES}{LIST OF SLIDES}}% + \def\l@slide##1##2##3{% + \slide@undottedcline{\slidenumberline{##3}{##2}}{}}% + \let\l@subslide\l@slide + \@startlos} +% +\def\slidecontents{\@ifstar% + {\def\slide@cline{\slide@undottedcline}\slide@contents}% + {\def\slide@cline{\slide@dottedcline}\slide@contents}} +\def\slide@contents{% + \def\l@slide##1##2##3{% + \slide@cline{\slidenumberline{$\bullet$}{##2}}{##3}}% + \let\l@subslide\@gobbletwo + \@startlos} +% +\def\Slidecontents{\@ifstar% + {\def\slide@cline{\slide@undottedcline}\Slide@contents}% + {\def\slide@cline{\slide@dottedcline}\Slide@contents}} +\def\Slide@contents{% + \def\l@slide##1##2##3{% + \ifcase\lslide@flag + \message{##1 ** \the\c@slidesection} + \ifnum##1>\c@slidesection + \def\lslide@flag{1}{\large\slide@cline{% + \slidenumberline{$\Rightarrow\bullet$}{##2}}{##3}}% + \else + {\large\slide@cline{% + \slidenumberline{$\surd\;\bullet$}{##2}}{##3}}% + \fi + \or + \def\lslide@flag{2}{\large\slide@cline{% + \slidenumberline{$\bullet$}{##2}}{##3}}% + \or + {\large\slide@cline{% + \slidenumberline{$\bullet$}{##2}}{##3}}% + \fi}% + \def\l@subslide##1##2##3{% + \ifnum\lslide@flag=1 + \@undottedtocline{2}{3.8em}{3.2em}{##2}{}% + \fi}% + \def\lslide@flag{0}% + \@startlos} +% +\endinput +%% END slidesec.sty diff --git a/Master/texmf-dist/tex/latex/seminar/xcomment.sty b/Master/texmf-dist/tex/latex/seminar/xcomment.sty new file mode 100644 index 00000000000..a117aced289 --- /dev/null +++ b/Master/texmf-dist/tex/latex/seminar/xcomment.sty @@ -0,0 +1,182 @@ +%% +%% This is file `xcomment.sty', generated +%% on <1993/2/17> with the docstrip utility (2.0r). +%% +%% The original source files were: +%% +%% xcomment.doc +%% +\def\fileversion{1.2} +\def\filedate{93/02/12} +%% +%% Style option `xcomment' for use with LaTeX v2.09. +%% This is a style for comment and "inverse" comment environments. +%% +%% COPYRIGHT 1992, 1993 by Timothy Van Zandt, Timothy.VAN-ZANDT@insead.edu +%% +%% Input file: xcomment.sty. +%% Documented code: xcomment.doc. +%% For printing documentation: xcomment.tex. +%% +%% You may find xcomment.doc and xcomment.tex appended to xcomment.sty. +%% +%% For Licensing info, see sem-read.me +%% +\@ifundefined{xcomment@@@}{}{\endinput} +\typeout{Style-Option: `xcomment' v\fileversion \space <\filedate> (tvz) } +\def\newxcomment{\@ifnextchar [{\@newxcommentwitharg}% + {\@newxcomment}} +\def\@newxcomment#1{% + \expandafter\def\csname #1\endcsname##1{\@xcomment{#1}{##1}}}% +\def\@newxcommentwitharg[#1]#2{% + \expandafter\def\csname #2\endcsname{\@xcomment{#2}{#1}}} +\newxcomment{xcomment} +\def\envirsep{\par} +\def\rescanfile#1{\def\@rescanfile{#1}} +\rescanfile{\jobname.tmp} +\def\norescanfile{\let\@rescanfile\relax} +\def\@nofloat#1{\hrule height\z@\nobreak\vfill\vbox\bgroup\def\@captype{#1}} +\def\end@nofloat{\egroup\nobreak\vfill\nobreak\hrule height\z@\medbreak} +\def\nofloat#1{\@for\@tempa:=#1\do{\@namedef{#1}{\@nofloat{#1}}% + \@namedef{end#1}{\end@nofloat}}} +\def\xc@makeother#1{% + \ifnum\the\catcode`#1=0\catcode`#112% + \else \ifnum\the\catcode`#1=1\catcode`#112% + \else \ifnum\the\catcode`#1=2\catcode`#112% + \else \ifnum\the\catcode`#1=6\catcode`#112% + \fi\fi\fi\fi\relax} +\newwrite\tokout +\newread\tokin +\def\rescan#1{% + \ifx\@rescanfile\relax\else + \ifx\@rescanfile\@empty #1{}\else + \immediate\openout\tokout=\@rescanfile + \immediate\write\tokout{{\the#1}\relax}% + \immediate\closeout\tokout + \openin\tokin=\@rescanfile + \read\tokin to\@tempd + \closein\tokin + \expandafter#1\@tempd% + \fi\fi} +\def\@xcomment#1#2{% + \ifx\@preamblecmds\@notprerr + \def\xc@csname{#1}% + \edef\xc@envirlist{#2}% + \ifx\xc@envirlist\@empty \@bsphack \else + \begingroup + \def\@envirsep{}% + \@ifundefined{normal@begin}{\let\normal@begin\begin}{}% + \@ifundefined{normal@end}{\let\normal@end\end}{}% + \def\begin##1{\do@begin{##1}\normal@begin{##1}}% + \def\end##1{\normal@end{##1}\do@end}% + \def\do@begin##1{\@ifundefined{##1}{}{\def\do@end{}}}% + \let\do@end\xc@begin + \fi + \let\next\xc@begin + \else + \expandafter\@temptokena\expandafter{\document\@xcomment{@@@}{#2}}% + \edef\document{\the\@temptokena}% + \let\next\relax + \fi + \next} +\def\end@xcomment{\ifx\xc@envirlist\@empty \@esphack \else \endgroup \fi}% +\def\xc@begin{% + \begingroup + \let\do\xc@makeother + \dospecials + \ifx\xcommentchar\@empty\else + \expandafter\catcode\expandafter`\xcommentchar=14 + \fi + \catcode`\^^M\active + \xcomment@} +\def\xcommentchar{\%} +\begingroup +\catcode`\!=12 +\catcode`\[=12 +\catcode`\]=12 +\catcode`\"=12 +\lccode`\!=`\\ +\lccode`\[=`\{ +\lccode`\]=`\} +\lccode`\"=`\% +\catcode`\~=\active +\lccode`\~=`\^^M +\lowercase{ + \gdef\xcomment@#1~{\xcomment@@#1\@nnil!\@nil} + \gdef\xcomment@@#1!{\xcomment@@@} + \gdef\xcomment@@@#1\@nil{% + \def\@tempa{#1}% + \ifx\@tempa\@empty + \let\next\xcomment@ + \else + \def\next{\xcomment@@#1\@nil}% + \@testtrue + \xc@checkbegin#1\relax begin[]\relax\relax + \if@test + \xc@checkend#1\relax end[]\relax\relax + \if@test + \xc@checkinput#1\relax input[]\relax\relax + \if@test + \xc@checkinclude#1\relax include[]\relax\relax + \if@test + \xc@checkendinput#1\relax endinputss\relax\relax + \fi\fi\fi\fi\fi + \next} + \gdef\xc@checkbegin#1begin[#2]#3\relax#4\relax{% + \def\@tempa{#1}% + \ifx\@tempa\@empty + \def\@tempa{#2}% + \@for\@tempb:=\xc@envirlist\do{% + \ifx\@tempa\@tempb\def\next{\xc@end{#2}#3\@nil}\fi}% + \fi} + \gdef\xc@checkend#1end[#2]#3\relax#4\relax{% + \def\@tempa{#1}% + \ifx\@tempa\@empty + \@testfalse + \def\@tempa{#2}\def\@tempb{document}% + \ifx\@tempa\@tempb + \def\next{\endgroup\end@xcomment\end{document}}% + \else + \ifx\@tempa\xc@csname + \def\next{\end@@xcomment{#2}#3\@nil}% + \fi\fi\fi} + \gdef\xc@checkinput#1input[#2]#3\relax#4\relax{% + \def\@tempa{#1}% + \ifx\@tempa\@empty + \def\next{\expandafter\xcomment@\@@input #2 \xcomment@@#3\@nil}% + \@testfalse + \fi} + \gdef\xc@checkendinput#1endinput#2#3\relax#4\relax{% + \def\@tempa{#1}% + \ifx\@tempa\@empty\ifcat\noexpand#2a\relax\else + \let\next\endinput + \fi\fi} + \gdef\xc@checkinclude#1include[#2]#3\relax#4\relax{% + \def\@tempa{#1}% + \ifx\@tempa\@empty + \def\next{% + \global\let\xc@savedinput\@@input + \def\@@input{% + \global\let\@@input\xc@savedinput + \expandafter\xcomment@\@@input}% + \include{#2}% + \global\let\@@input\xc@savedinput + \xcomment@@#3\@nil}% + \@testfalse + \fi} + \gdef\end@@xcomment#1#2\@nnil!\@nil{% + \endgroup + \toks@{#2 }\rescan{\toks@}% + \edef\next{\noexpand\end@xcomment\noexpand\end{#1}\the\toks@}% + \next}% + \gdef\xc@end#1#2\@nnil!\@nil{% + \endgroup + \@envirsep \let\@envirsep\envirsep + \toks@{#2 }\rescan{\toks@}% + \edef\next{\noexpand\normal@begin{#1}\the\toks@}% + \next}% + }% END OF LOWERCASE +\endgroup +\endinput +%% +%% End of file `xcomment.sty'. -- cgit v1.2.3