summaryrefslogtreecommitdiff
path: root/macros/latex/contrib/uwmslide/uwmslide.cls
diff options
context:
space:
mode:
authorNorbert Preining <norbert@preining.info>2019-09-02 13:46:59 +0900
committerNorbert Preining <norbert@preining.info>2019-09-02 13:46:59 +0900
commite0c6872cf40896c7be36b11dcc744620f10adf1d (patch)
tree60335e10d2f4354b0674ec22d7b53f0f8abee672 /macros/latex/contrib/uwmslide/uwmslide.cls
Initial commit
Diffstat (limited to 'macros/latex/contrib/uwmslide/uwmslide.cls')
-rw-r--r--macros/latex/contrib/uwmslide/uwmslide.cls467
1 files changed, 467 insertions, 0 deletions
diff --git a/macros/latex/contrib/uwmslide/uwmslide.cls b/macros/latex/contrib/uwmslide/uwmslide.cls
new file mode 100644
index 0000000000..ba67d72006
--- /dev/null
+++ b/macros/latex/contrib/uwmslide/uwmslide.cls
@@ -0,0 +1,467 @@
+% CPES/WEMPEC/UW-Madison Slide Class...
+%
+% By Eric Benedict, 26 September 2000
+% WEMPEC, UW-Madison
+%
+%===============================================
+
+\NeedsTeXFormat{LaTeX2e}
+\ProvidesClass{uwmslide}[2000/09/26 Univ. WI-Madison Slide Format]
+%Pass options onto the slides class
+\DeclareOption*{\PassOptionsToClass{\CurrentOption}{slides}}
+\ProcessOptions\relax
+\LoadClass{article}
+\RequirePackage{epsfig}
+\usepackage{times} % Times works good for *.pdf conversions
+
+% Define a flag, \@@slide, to indicate if the current slide
+% should include a \newpage command, 1=include it, 0=don't
+\newcount\@@slide
+\global\@@slide=1
+
+% Define the 'adjustment' for the first slide after the title
+% slide. Its a dirty trick, but seems to work...
+\newlength{\@@adjslide}
+\setlength{\@@adjslide}{-1.5in}
+
+
+% Define the width of the left half of the slide
+%\newdimen{\@@leftslidewidth}
+%\global\@@leftslidewidth=4.25in % define a default, just to be safe
+\newlength{\@@leftslidewidth}
+\setlength{\@@leftslidewidth}{4.25in} % define a default, just to be safe
+\newlength{\@@rightslidewidth}
+
+
+
+% Define a flag, \@@slidetype to indicate the type of double
+% item slide which is being used.
+% 0 = Not being used --> \slidedivider generates error msg
+% 1 = plain doubleslide
+% 2 = leftitem
+% 3 = rightitem
+% 4 = doubleitem
+\newcount\@@slidetype
+\global\@@slidetype=0
+
+%==========================
+% Set the paper size
+%===========================
+\setlength\paperheight{8.5in}
+\setlength\paperwidth{11in}
+\special{! /landplus90 true store} % rotate 90 deg clockwise in dvips
+\special{landscape} % set the paper size for dvips
+\setlength\textwidth{9.5in}
+\setlength\textheight{6in}
+\setlength\hoffset{-0.25in}
+\setlength\voffset{-0.25in}
+\setlength\oddsidemargin{0in}
+\setlength\evensidemargin{0in}
+
+\setlength\footskip{2bp}
+
+
+
+% Enlarge the headheight for the logo
+\setlength\headheight{74bp}
+\setlength\topmargin{-37bp}
+
+% Place the logo and rules for the header/footers.
+\IfFileExists{logo.eps}{
+\renewcommand{\@oddhead}{\vbox{\psfig{file=logo.eps,height=72bp} \hfill\\[1.5bp] \rule{\textwidth}{0.4bp}}}
+\renewcommand{\@evenhead}{\vbox{\psfig{file=logo.eps,height=72bp} \hfill\\[1.5bp] \rule{\textwidth}{0.4bp}}}
+} % Logo file exists
+{\ClassWarning{uwmslide}{Logo file logo.eps not found.\MessageBreak Omitting logo in header}
+\renewcommand{\@oddhead}{\rule{\textwidth}{0.4bp}}
+\renewcommand{\@evenhead}{\rule{\textwidth}{0.4bp}}
+} % Logo file AWOL...
+%
+\renewcommand{\@oddfoot}{\parbox{\textwidth}{\rule{\textwidth}{0.4pt} \\[1pt] \rule{1pt}{0pt}\hfill {\rm \thepage}}}
+\renewcommand{\@evenfoot}{\parbox{\textwidth}{\rule{\textwidth}{0.4pt} \\[1pt] \rule{1pt}{0pt}\hfill {\rm \thepage}}}
+
+
+
+%================================
+%
+% Define the larger font sizes appropriate for slides
+% (copied from the slitex.cls file...)
+%
+%================================
+\def\ifourteenpt{14.4}
+\def\iseventeenpt{17.28}
+\def\itwentypt{20.74}
+\def\itwentyfourpt{24.88}
+\def\itwentyninept{28.66}
+\def\ithirtyfourpt{34.4}
+\def\ifortyonept{41.28}
+\def\@setfontsize@parms#1#2#3#4#5#6#7#8{%
+ \lineskip #1\relax%
+ \parskip #2\relax
+ \abovedisplayskip #3\relax
+ \belowdisplayskip #4\relax
+ \abovedisplayshortskip #5\relax
+ \belowdisplayshortskip #6\relax
+ \setbox\strutbox=\hbox{\vrule \@height#7\p@\@depth#8\p@\@width\z@}%
+ \baselineskip\baselinestretch\baselineskip
+ \normalbaselineskip\baselineskip}
+\DeclareMathSizes{13.82}{13.82}{10}{7}
+\DeclareMathSizes{16.59}{16.59}{12}{7}
+\DeclareMathSizes{19.907}{19.907}{16.59}{13.82}
+\DeclareMathSizes{23.89}{23.89}{19.907}{16.59}
+\DeclareMathSizes{28.66}{28.66}{23.89}{19.907}
+\DeclareMathSizes{34.4}{34.4}{28.66}{23.89}
+\DeclareMathSizes{41.28}{41.28}{34.4}{28.66}
+\renewcommand{\normalsize}{%
+ \@setfontsize\normalsize\itwentypt{28\p@ plus3\p@ minus4\p@}%
+ \@setfontsize@parms
+ {2pt}%
+ {30\p@ plus18\p@ minus9\p@}%
+ {15\p@ plus3\p@ minus3\p@}%
+ {10\p@ plus3\p@ minus3\p@}%
+ {10\p@ plus3\p@}
+ \abovedisplayshortskip
+ {17}{7}}
+\normalsize
+\renewcommand{\small}{\@setfontsize\small\iseventeenpt{19\p@ plus3\p@ minus\p@}%
+ \@setfontsize@parms
+ {2\p@}%
+ {15\p@ plus15\p@ minus7\p@}%
+ {12\p@ plus3\p@ minus3\p@}%
+ {9\p@ plus3\p@ minus3\p@}%
+ {6\p@ plus3\p@}%
+ \abovedisplayshortskip
+ {13.5}{5.6}}
+\let\footnotesize=\small
+\let\scriptsize=\small
+\renewcommand{\tiny}{\@setfontsize\tiny\ifourteenpt{16\p@ plus2\p@ minus\p@}%
+ \@setfontsize@parms
+ {2pt}%
+ {14\p@ plus3\p@ minus10\p@}%
+ {11\p@ plus3\p@ minus10\p@}%
+ \abovedisplayskip
+ {8\p@ plus3\p@ minus5\p@}%
+ {\z@ plus3\p@}%
+ {10}{4}}
+\renewcommand{\large}{\@setfontsize\large\itwentyfourpt{42\p@ plus8\p@ minus5\p@}%
+ \@setfontsize@parms
+ {2\p@}%
+ {40\p@ plus20\p@ minus4\p@}%
+ {20\p@ plus8\p@ minus3\p@}%
+ \abovedisplayskip
+ {10\p@ plus5\p@}%
+ \abovedisplayshortskip
+ {20}{8.5}}
+
+\renewcommand{\Large}{\@setfontsize\Large\itwentyninept{48\p@ plus10\p@ minus6\p@}%
+ \@setfontsize@parms
+ {2\p@}%
+ {48\p@ plus30\p@ minus6\p@}%
+ {24\p@ plus10\p@ minus6\p@}%
+ \abovedisplayskip
+ {12\p@ plus8\p@}%
+ \abovedisplayshortskip
+ {27}{11}}
+
+\renewcommand{\LARGE}{\@setfontsize\LARGE\ithirtyfourpt{52\p@ plus10\p@ minus6\p@}%
+ \@setfontsize@parms
+ {2\p@}%
+ {52\p@ plus30\p@ minus6\p@}%
+ {24\p@ plus10\p@ minus6\p@}%
+ \abovedisplayskip
+ {12\p@ plus8\p@}%
+ \abovedisplayshortskip
+ {27}{11}}
+
+\renewcommand{\huge}{\@setfontsize\huge\ifortyonept{60\p@ plus10\p@ minus6\p@}%
+ \@setfontsize@parms
+ {2\p@}%
+ {60\p@ plus30\p@ minus6\p@}%
+ {24\p@ plus10\p@ minus6\p@}%
+ \abovedisplayskip
+ {12\p@ plus8\p@}%
+ \abovedisplayshortskip
+ {27}{11}}
+
+\let\Huge\huge
+\renewcommand\baselinestretch{}
+\setlength\parindent{\z@}
+
+
+
+%======================================================
+% Adjust the spacing in between the list items (@listi=1st level, ii=2nd
+% level, etc).
+%======================================================
+\renewcommand{\@listi}{{\leftmargin\leftmargini
+ \parsep .25\parskip
+ \topsep \parsep
+ \itemsep\parskip
+ \partopsep \z@}}
+\renewcommand{\@listii}{{\leftmargin\leftmarginii
+ \labelwidth\leftmarginii
+ \advance\labelwidth-\labelsep
+ \parsep .2\parskip
+ \topsep \parsep
+ \itemsep\parskip}}
+\renewcommand{\@listiii}{{\leftmargin\leftmarginiii
+ \labelwidth\leftmarginiii
+ \advance\labelwidth-\labelsep}}
+\renewcommand{\@listiv}{{\leftmargin\leftmarginiv
+ \labelwidth\leftmarginiv
+ \advance\labelwidth-\labelsep}}
+\renewcommand{\@listv}{{\leftmargin\leftmarginv
+ \labelwidth\leftmarginv
+ \advance\labelwidth-\labelsep}}
+\renewcommand{\@listvi}{{\leftmargin\leftmarginvi
+ \labelwidth\leftmarginvi
+ \advance\labelwidth-\labelsep}}
+
+
+
+
+%=============================================================================
+% TITLEPAGE
+% Re-define the footer so that it has the rule line, but no number at
+% the start of the titlepage, then add the page number back in the
+% footer for the rest of the slides...
+%=============================================================================
+\renewenvironment{titlepage}{%
+\renewcommand{\@oddfoot}{\vbox{\rule{\textwidth}{0.4pt} \\[1pt] \rule{1pt}{0pt}}}
+ \newpage }{%
+ \newpage
+ }
+
+%=====================================================================
+% MAKETITLE
+% Adjust the \maketitle command slightly for slide usage
+%=====================================================================
+\renewcommand{\maketitle}{%
+ \begin{titlepage}
+ \let\footnotesize\large \let\footnoterule\relax \let\footnote\thanks
+ \null\vfill
+ \begin{center}%
+ {\Large \@title \par}%
+ \vskip 3em%
+ {\large
+ \begin{tabular}[t]{c}%
+ \@author
+ \end{tabular}\par}%
+ {\large \@date \par}% % Set date in \large size.
+ \end{center}%\par
+ \@thanks
+ \vfill\null
+ \end{titlepage}
+ \setcounter{footnote}{0}
+ \setcounter{page}{1} %title page is NOT counted
+ \let\thanks\relax
+ \let\maketitle\relax \
+ \gdef\@thanks{}
+ \gdef\@author{}
+ \gdef\@title{}
+ \global\@@slide=0 % Set flag to indicate that the title page fix is
+% % required for the next slide
+}
+
+
+
+
+
+%===================================================
+% Slide Environment
+%
+% This environment creates a generic slide which
+% has a title centered in Huge text at the top
+% and the remaining body left unconstrained.
+%
+%===================================================
+\newenvironment{slide}[1]{%
+\ifnum\@@slide=0 % Check for 1st slide
+ \global\@@slide=1 % Set flag so we won't come back
+ \vspace*{\@@adjslide} % Dirty trick to fix the offset which
+% % appears on the 1st after the title slide...
+\else
+ \newpage
+\fi%
+{\Huge \begin{center} #1\end{center}}
+}
+{}
+
+
+
+
+%===================================================
+% Item Slide Environment
+%
+% This environment creates a slide which
+% has a title centered in Huge text at the top
+% and the remaining body consisting of an itemized
+% list.
+%
+%===================================================
+\newenvironment{itemslide}[1]{% \begin{itemslide} things
+\ifnum\@@slide=0 % Check for 1st slide
+ \global\@@slide=1 % Set flag so we won't come back
+ \vspace*{\@@adjslide} % Dirty trick to fix the offset which
+% % appears on the 1st after the title slide...
+\else
+ \newpage
+\fi%
+{\Huge \begin{center} #1\end{center}}
+\begin{itemize}
+}
+{\end{itemize}
+}%\end{itemslide} things
+
+
+
+
+%===================================================
+%
+% \slidedivider is used by the multiple-side items
+% to seperate the left and right hand sides of each
+% slide.
+%
+%===================================================
+\newcommand{\slidedivider}{%
+\setlength\@@rightslidewidth{\m@ne\@@leftslidewidth}
+\global\addtolength{\@@rightslidewidth}{8.5in}
+\ifcase\@@slidetype
+% Error Case
+\ClassWarning{uwmslide}{\protect\slidedivider\space used outside of environment.\MessageBreak
+Extra \protect\slidedivider\space command ignored}
+%
+\or % plain double slide
+%
+\end{minipage}
+\hfill
+\begin{minipage}[c]{\@@rightslidewidth}
+%
+\or % leftitem slide
+%
+\end{itemize}
+\end{minipage}
+\hfill
+\begin{minipage}[c]{\@@rightslidewidth}
+%
+\or % rightitem slide
+%
+\end{minipage}
+\hfill
+\begin{minipage}[c]{\@@rightslidewidth}
+\begin{itemize}
+%
+\or % doubleitem slide
+%
+\end{itemize}
+\end{minipage}
+\hfill
+\begin{minipage}[c]{\@@rightslidewidth}
+\begin{itemize}
+%
+\else
+%
+\fi
+}
+
+%===================================================
+% Double Slide Environment
+%
+% This environment creates a slide with two
+% equal spaced minipages. This can be used to
+% put two pictures next to each other. It is
+% also used for the leftitem, rightitem and doubleitem
+% environments...
+%
+% This environment requires the \slidedivider
+% command to be used in between the two slide
+% halves.
+%===================================================
+\newenvironment{doubleslide}[2][4.25in]{% \begin{doubleslide} things
+\ifnum\@@slidetype=0 \global\@@slidetype=1 \fi % Set slide type
+% if not already set
+\ifnum\@@slide=0 % Check for 1st slide
+ \global\@@slide=1 % Set flag so we won't come back
+ \vspace*{\@@adjslide} % Dirty trick to fix the offset which
+% % appears on the 1st after the title slide...
+\else
+ \newpage
+\fi%
+%\global\@@leftslidewidth=#1 % let \slidedivider know the size
+\setlength{\@@leftslidewidth}{#1} % let \slidedivider know the size
+{\Huge \begin{center} #2\end{center}}
+\begin{minipage}[c]{#1}
+}
+{\end{minipage} % End the minipage
+\global\@@slidetype=0 % Clear the slide type flag
+}%\end{doubleslide} things
+
+
+
+
+
+%===================================================
+% leftitem Slide Environment
+%
+% This environment creates a slide with two
+% equal spaced minipages. The left hand side
+% minipage is an itemized list.
+%
+% This environment requires the \slidedivider
+% command to be used in between the two slide
+% halves.
+%===================================================
+\newenvironment{leftitem}[2][4.25in]{% \begin{leftitem} things
+\global\@@slidetype=2 % Set type to leftitem
+\begin{doubleslide}[#1]{#2}
+\begin{itemize}
+}
+{\end{doubleslide}}%\end{leftitem} things
+
+
+
+
+
+
+%===================================================
+% rightitem Slide Environment
+%
+% This environment creates a slide with two
+% equal spaced minipages. The right hand side
+% minipage is an itemized list.
+%
+% This environment requires the \slidedivider
+% command to be used in between the two slide
+% halves.
+%===================================================
+\newenvironment{rightitem}[2][4.25in]{% \begin{rightitem} things
+\global\@@slidetype=3 % Set type to rightitem
+\begin{doubleslide}[#1]{#2}
+}
+{\end{itemize}
+\end{doubleslide}}%\end{rightitem} things
+
+
+
+
+
+
+
+%===================================================
+% doubleitem Slide Environment
+%
+% This environment creates a slide with two
+% equal spaced minipages. The right hand side
+% minipage is an itemized list.
+%
+% This environment requires the \slidedivider
+% command to be used in between the two slide
+% halves.
+%===================================================
+\newenvironment{doubleitem}[2][4.25in]{% \begin{doubleitem} things
+\global\@@slidetype=4 % Set type to doubleitem
+\begin{doubleslide}[#1]{#2}
+\begin{itemize}
+}
+{\end{itemize}
+\end{doubleslide}}%\end{doubleitem} things
+