% lslide.sty - version 2.0.1 (April 1992)
% by Young U. Ryu
%
% o  There is a sample file in the end of the commented area.
%    LaTeX (or AmSLaTeX) it at least twice and print.
%                                    ^^^^^
% o  lslide.sty is a LaTeX/AmSLaTeX style file for
%       presentation slide typesetting.
%    It was developed for my personal use. That is,
%       it is a prototype. It may be improved in the future.
%       See Final Notes, Bugs, Comments, etc.
%
% o  It generates a title page, tables of contents,
%    separate section heading pages, and slides
%    with heads and foots inside a nice frame.
%
% o  No hyphenations:
%            Hyphenated words are not easily readable
%            in presentation slides, in my opinion.
%    No right-justifications
%            Right justifications may place too big spaces
%            between words, when hyphenations are turned off.
%
%    If you want hyphenations and/or right-justifications
%      go to the "defaults" section in the end of this style file
%      and comment commands to make them.
%
% o  A postscript driver is NOT required.
%                           ^^^
%
% o  Version 2.0.1 Update
%    A. added a third vertical centering option \vertgroup. \vertgroup
%       is like \vertcenter with the exception that \vspace{2em} is
%	placed after \subsection rather than \vspace{\vfill}.
%		Keith Farkas (farkas@eecg.toronto.edu April 21 1992)	
%   
% o  Version 2.0 Update
%    A. Frame macros are simplified and redundant macros are removed.
%    B. A bug in \slidecontents & \sectioncontents is fixed.
%       Bug: When filename.toc exists but is empty, the previous
%            version reports `\item ...' missing error.
%    C. Thanks to Tomoki Shiratori, an oval frame is added.
%    D. \typeA & \typeB are renamed to \vertcenter & \verttop.
%    E. \pframeA & \pframeB are renamed to \doubleboxframe & \shadowframe.
%    F. \sframeA & \sframeB are renamed to \boxsecframe & \shadowsecframe.
%
% o  Version 1.2 Update
%    A. A shadow page frame added.
%    B. \SFbox changed.
%    C. \vertcenter and \verttop def. changed.
%    D. Extra spaces following page no. in tables of contents are removed.
%
% o  Version 1.1 Update
%    A. Default page dimensions changed.
%    B. \leftmargini of itemize env.: \leftskip is always added.
%          The left skip of itemize env. is (almost) same as
%          that of enumerate env.
%    C. \SFbox added - places a shadow box.
%
% o  How to use it:
%    A. \documentstyle[12pt,lslide]{article}   % <- Minimal Req.
%       \documentstyle[12pt,amssymbols,lslide]{article}
%                             % <- use amssymbols.sty for LaTeX if available
%       \documentstyle[12pt,amstex,amssymb,lslide]{article}
%                             % <- may be used with AmSLaTeX
%                             % Personally, I prefer it because it can
%                             % easily handle various shapes/styles of fonts.
%
%       Or you may use art11.sty to make the whole slide fonts smaller.
%        \documentstyle[11pt,lslide]{article}
%        \documentstyle[11pt,amssymbols,lslide]{article}
%        \documentstyle[11pt,amstex,amssymb,lslide]{article}
%       (To make fonts smaller, you may also use \smallerfonts. See B.)
%       Note: There is no font size difference between art10.sty
%             and art11.sty, when fonts >= \large are used.
%             If you use art10.sty, head and foot fonts of slides
%             become too small.
%
%    B. \portrait (default)
%       \landscape
%           (Should be placed before \begin{document})
%       If your print driver allows the 90 degree rotation of the
%       output pages:
%          e.g., emTeX drivers - /tr1 or /tr3
%                 e.x.,  hp myslide /tr1
%          e.g., dvi2ps -  -elandscape   (???)
%       or your printer has a sideway printing mode,
%       you may use \landscape.
%
%      Probably, you must modify the page dimensions.
%      Place those modifications after \portrait or
%      \landscape. If you use the default (i.e., do not
%      use \portrait or \landscape), place them just after
%      \documentstyle[...]{...}.
%      e.g., \addtolength{\textwidth}{...in}
%            \addtolength{\textheight}{...in}
%            \addtolength{\topmargin}{...in}
%            \addtolength{\oddsidemargin}{...in}
%            \addtolength{\evensidemargin}{...in}
%
%       \defaultskip=...in or ...pt or ...em or ......
%         horizontal spaces at the left and the right of slide
%         bodies (within the slide frame)
%         The default is:
%             \defaultskip=1em
%
%       \vertcenter (default)
%       \verttop
%           (Should be placed before \begin{document})
%       \vertcenter option places \vspace*{\fill} on the top and bottom
%       of each slide page and after \subsection. (Vertical centering)
%       \verttop option places \vspace*{.5em} before \subsection and
%       \vspace*{1em} after \subsection; not \vspace on the top
%       or bottom of each slide page.
%       \vertgroup is like \vertcenter but places \vspace{2em} after
%	\subsection
%
%       \doubleboxframe
%       \shadowframe (default)
%           (Should be placed before \begin{document})
%       \doubleboxframe option places double boxes around each page.
%       \shadowframe option places a shadow box around each page.
%       \ovalframe option places an oval around each page.
%
%       \boxsecframe
%       \shadowsecframe (default)
%           (Should be placed before \begin{document})
%       \boxsecframe option places a single box around subsection title.
%       \shadowsecframe option places a shadow box around subsection title.
%
%       \contentsname{...}
%           (Placed before or after \begin{document})
%         Heading of tables of contents. Default is:
%            \contentsname{CONTENTS}
%
%       \smallerfonts
%           (Placed before \begin{document})
%         Make fonts smaller thoughout the whole file.
%         If you think the default fonts are too big,
%            use this command.
%         Or, you may use art11.sty to make fonts smaller. (See A.)
%
%       \smallcontentsfonts
%           (Placed before or after \begin{document})
%         Makes fonts for tables of contents smaller.
%         Use when the table of content occupies more than one page.
%         If it is used with \smallerfonts, it must placed after
%            \smallerfonts.
%
%    C. \title{T} or \title[T1]{T2}
%           (Placed before or after \begin{document})
%         T or T2 goes to the title page.
%         T or T1 goes to the left head of each page.
%       \author{A}
%           (Placed before or after \begin{document})
%         A goes to the title page and left foot of each page.
%       \organization{O}
%           (Placed before or after \begin{document})
%         O goes to the title page.
%       \date{D}
%           (Placed before or after \begin{document})
%         D goes to the title page.
%       \titlepage
%           (Placed after \begin{document})
%         Generates the title page.
%
%    From now on, everything should be placed after \begin{document}
%
%    D. \slidecontents or \slidecontents*
%           (Placed outside \begin{slide} ... \end{slide})
%         Generates a Table of Contents that Consists of Section Headings.
%         Usually placed after \titlepage
%         If * is placed, no page numbers will appear.
%
%       \sectioncontents or sectioncontents*
%           (Placed outside \begin{slide} ... \end{slide})
%         Generates a Table of Contents that Consists of Section Headings
%         and Subsection Heading of the Following Section.
%         Usually placed before \section{...}
%         If * is placed, no page numbers will appear.
%
%    E. \section{A} or \section[A1]{A2}
%           (Placed outside \begin{slide} ... \end{slide})
%         A or A2 goes to a separate page of section heading
%         A or A1 goes to a table of contents and the right head of each page.
%
%    F. \subsection{A}
%           (Placed inside \begin{slide} ... \end{slide})
%         A frame box surrounds A.
%         A goes to a table of contents for the section.
%
%    G. \begin{slide} ... \end{slide}
%         Generates a page of slide.
%         Your slide bodies are to be placed here.
%         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
%       \begin{slide}[dimension] ... \end{slide}
%         Adds horizontal spaces by "dimension (e.g. 1in, 3em, etc.)"
%           at the left and the right of the text body (within
%           the frame).
%         Only for that page of slide.
%         cf. \defaultskip = dimension
%             for all pages of slide
%
%    H. \Underbar{...} and \Underline{...}
%         Same as \underbar and \underline except that the rule
%         is thicker.
%
%    I. Font size (Notice that all start with a capital letter)
%       \Hugesize
%       \Largesize
%       \Normalsize    - default for slides
%       \Smallsize
%
%    J. Slide head and foot
%       \lhead{...}     default: \lhead{\slidetitle}
%       \chead{...}     default: \chead{\relax}   % empty
%       \rhead{...}     default: \rhead{\sectiontitle}
%       \lfoot{...}     default: \lfoot{\slideauthor}
%       \cfoot{...}     default: \cfoot{\relax}   % empty
%       \rfoot{...}     default: \rfoot{\thepage}
%
%    K. Miscellaneous
%       \slidetitle  - prints slide title (default: \hspace*{1pt})
%       \slideauthor - prints author name (default: \hspace*{1pt})
%       \authororga  - prints organization (default: \hspace*{1pt})
%       \slidedate   - prints date  (default: \today)
%       \sectiontitle - prints section heading
%
%       \pagestyle{slide} is default for slides
%           note: \ps@slide is defined in this style file
%       \pagestyle{empty} is default for the title page,
%                              tables of contents, and section heading pages.
%
%       \Fbox{box sep}{rule thickness}{...}
%          Places a box around ...
%          box sep = spaces between ... and box rules
%          rule thickness = as you can guess
%          e.x., \Fbox{3pt}{1pt}{Box Me}
%
%       \SFbox{box sep}{rule thickness}{shade thickness}{...}
%          Places a shadow box around ...
%          box sep = spaces between ... and box rules
%          e.x., \SFbox{3pt}{1pt}{2pt}{Box Me}
%
%    L. Final Notes, Bugs, Comments, etc.
%       This is a prototype. It will be extended in the future:
%          - Various types of slide frames are desirable.
%            Users may select.
%          - \begin{note} ... \end{note} is useful.
%          - Top-bottom centering (vertical centering) can be done by \vertcenter.
%            Left-right centering (horizontal centering) may be implemented.
%          - Postscript specific features ???
%            With postscript, lots of things can be done easily (?!).
%            But, I personally discourage postscript specific features,
%            because I myself use non-postscript printers more often.
%          - Probably, new font definitions are needed, instead of
%            using those (i.e. defaults) of LaTeX/AmSLaTeX, 'cause
%            many of them are not used at all and we may need
%            big fonts with various shapes.
%
%       How to get (bold) sans serif fonts instead of roman fonts:
%          - If you use AmSLaTeX (with the new font scheme), it's simple:
%                   \begin{document}\sf
%                   \begin{document}\sf\bf
%            Or something more ... (especially to get bold math)
%          - If you use LaTeX, it's not simple.
%            ``\begin{document}\sf\Normalsize'' or
%            ``\begin{document}\sf\Normalsize\bf''
%               handles many (but not all) cases.
%            The best way is to define a style file (or using
%               one if available) which sets \sf (or \sf\bf) as default.
%            Or you may create a .fmt file after modifying
%               lfonts.sty.
%          - Personally, I modified a font file (fontdef.max) for AmSLaTeX
%            and created a lslide.fmt file so that bold sans serif
%            is default for text and bold symbol fonts are
%            default for math.
%            However, unfortunately, not all AmS bold fonts
%            are available!!!
%
%       Bugs
%           - Probably a few (or many???).
%           - I can't locate them. I need your help...
%
%       E-mail bugs and comments to
%               young@emx.utexas.edu
%               youngryu@bongo.cc.utexas.edu
%
%
% A sample file: cut and paste under a new file name; uncomment.
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%\documentstyle[12pt,lslide]{article}
%   %\documentstyle[12pt,amssymbols,lslide]{article}
%           % <- if amssymbols.sty is available
%   %\documentstyle[12pt,amstex,amssymb,lslide]{article}
%           % <- if you use AmSLaTeX
%
%   %\landscape
%           % <- if your driver can rotate 90 degrees.
%           % e.x. in emTeX derivers:
%           %  hp filename /tr2
%           % \portrait is default.
%
%   % Addjust page dimenstions here if necessary. For example:
%   %\addtolength{\textwidth}{-.3in}
%   %\addtolength{\textheight}{.5in}
%   %\addtolength{\topmargin}{.02in}
%   %\addtolength{\oddsidemargin}{-.03in}
%   %\addtolength{\evensidemargin}{-.03in}
%
%   %\verttop
%           % compare it with \vertcenter that is the default
%
%   %\doubleboxframe % or \ovalframe
%           % compare them with \shadowframe that is the default
%
%   %\boxsecframe
%           % compare it with \shadowsecframe that is the default
%
%\begin{document}
%
%\title[Sample Slides with {\tt lslide.sty}]%
%      {Sample Slides \\
%       with {\tt lslide.sty}}
%
%\author{Thomas Magnum}
%
%\organization{Private Investigator's Association}
%
%\date{March 1992}
%
%\titlepage
%
%\slidecontents
%
%\sectioncontents
%
%\section{Introduction}
%
%\begin{slide}
%\subsection{Problems of Truth-Functional Logic}
%
%\Underbar{Case 1}
%
%\begin{enumerate}
%\item $\neg A$ \\
%      Therefore $A \rightarrow B$
%\item The Padre beach is not poluted. \\
%      Therefore, if the Padre beach is poluted, it is good for surfing.
%\end{enumerate}
%
%\vspace*{\fill}
%
%\Underbar{Case 2}
%
%\begin{enumerate}
%\item $B$ \\
%      Therefore $A \rightarrow B$
%\item The Padre beach is good for surfing. \\
%      Therefore, if the Padre beach is poluted, it is good for surfing.
%\end{enumerate}
%\end{slide}
%
%\begin{slide}[.5in]
%\Underbar{Case 3}
%
%\begin{enumerate}
%\item $A \rightarrow B$ \\
%      $C \rightarrow \neg B$ \\
%      $C \rightarrow A$ \\
%      $C$ \\
%      Therefore $B \wedge \neg B$
%\item If it is a bird, then it can fly. \\
%      If it is penguin, then it cannot fly. \\
%      If it is penguin, then it is a bird. \\
%      It is a bird \\
%      Therefore, it cannot fly.
%\end{enumerate}
%\end{slide}
%
%\sectioncontents
%
%\section{Next Section}
%
%\begin{slide}[1in]
%Whatever it is. What ever it is.
%Whatever it is. What ever it is.
%
%\vspace*{1.5em}
%
%\begin{enumerate}
%\item Item 1 with Normalsize.
%      \begin{enumerate}\Smallsize
%      \item Item 1.1 with Smallsize.
%      \item Item 1.2 with Smallsize.
%      \end{enumerate}
%\item Item 2 with Normalsize.
%\end{enumerate}
%\end{slide}
%
%\end{document}
%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%% End of the sample file%%%
%

\typeout{Presentation Slide Style File for LaTeX/AmSLaTeX, version 2.0}
\typeout{by Young. U. Ryu - March 1992}

\def\landscape{%
    \sloppy
    \textwidth 8.8in
    \textheight 6in
    \topmargin -.6in
    \oddsidemargin -.18in
    \evensidemargin\oddsidemargin}

\def\portrait{%
    \sloppy
    \textwidth 6in
    \textheight 8.8in
    \topmargin -.65in
    \oddsidemargin -.3in
    \evensidemargin\oddsidemargin}

%
% Frame for the whole page
% \@my@box@frame{thinkness}{hspace}{vspace}{...}
%
\newdimen \@tempdimc 
\newdimen \@tempdimd

\def\@my@box@frame#1#2#3#4{\vbox{%
    \setbox\@tempboxa\hbox{#4}%
    \@tempdima#3
    \advance\@tempdima #1 \advance\@tempdima \dp\@tempboxa
    \hbox{\lower \@tempdima%
          \hbox{\vbox{\hrule depth0pt height #1%
                      \hbox{\vrule depth0pt width #1%
		            \hskip#2%
			    \vbox{\vskip#3 \box\@tempboxa\vskip#3}%
			    \hskip#2%
			    \vrule depth0pt width #1}
		      \hrule depth0pt height #1}}}}}

%
% Shadow Frame for the whole page:
% \@my@shadow@box@frame{frame thinkness}{shade thickness}{hspace}{vspace}{...}
%

\def\@my@shadow@box@frame#1#2#3#4#5{\vbox{%
    \setbox\@tempboxa\hbox{#5}%
    \@tempdima#4
    \advance\@tempdima #1 \advance\@tempdima \dp\@tempboxa
    \setbox\@tempboxa%
     \hbox{\lower \@tempdima%
          \hbox{\vbox{\hrule depth0pt height #1%
                      \hbox{\vrule depth0pt width #1%
		            \hskip#3%
			    \vbox{\vskip#4 \box\@tempboxa\vskip#4}%
			    \hskip#3%
			    \vrule depth0pt width #1}
		      \hrule depth0pt height #1}}}%
     \@tempdimc\ht\@tempboxa \advance\@tempdimc-#2
     \advance\@tempdimc\@tempdima
     \@tempdimd\wd\@tempboxa
     \hbox{\box\@tempboxa\relax%
           \lower\@tempdima\hbox{\vrule width#2 height\@tempdimc depth0pt}}
    \nointerlineskip\moveright#2
    \vbox{\hrule height#2 width\@tempdimd depth0pt}}}

%
% Oval frame: by Tomoki Shiratori
% \@my@oval@frame{thickness}{hspace}{vspace}{...}
%     thickness = \thinlines or \thicklines

\def\@my@oval@frame#1#2#3#4{\vbox{%
   #1%
   \setbox0 = \vbox{%
        \vskip#3\relax
        #4\relax
        \vskip#3\relax}%
   \@tempdimc \ifdim \ht0 >\wd0 \wd0\else \ht0 \fi%
   \divide\@tempdimc 10\relax
   \@getcirc{\@tempdimc}%
   \@tempdimc\ht0%
   \advance\@tempdimc -\@tempdima%
   \advance\@tempdimc 2\@wholewidth%
   \@tempdimd .5\@tempdima \advance\@tempdimd -\@wholewidth%
   \setbox0 = \hbox{%
       \raise\@tempdimd\hbox{\vrule height\@tempdimc width\@wholewidth}%
       \hskip#2\relax
       \box0\relax
       \hskip#2\relax
       \raise\@tempdimd\hbox{\vrule height\@tempdimc width\@wholewidth}}%
   \@tempdimd\wd0 \@tempdimc\@tempdimd%
   \advance\@tempdimc -\@tempdima%
   \vskip -.5\@tempdima \vskip\@wholewidth%
   \hbox to\@tempdimd{%
       \@tempcntb\@tempcnta \advance\@tempcntb 3\relax
       {\@circlefnt \char\@tempcntb\kern -.5\@tempdima}%
       \vbox{\hrule height\@wholewidth width\@tempdimc}%
       {\@circlefnt \kern .5\@tempdima \kern -\@wholewidth \char\@tempcnta%
        \kern -\@tempdima \kern\@wholewidth}}%
   \vskip -.5\@tempdima%
   \box0\relax
   \vskip -.5\@tempdima%
   \hbox to\@tempdimd{%
       \@tempcntb\@tempcnta \advance\@tempcntb\tw@\relax
       {\@circlefnt \char\@tempcntb\kern -.5\@tempdima}%
       \vbox{\hrule height\@wholewidth width\@tempdimc}%
       {\advance\@tempcntb\m@ne%
        \@circlefnt \kern .5\@tempdima \kern -\@wholewidth \char\@tempcntb%
        \kern -\@tempdima \kern \@wholewidth}}%
   \vskip -.5\@tempdima \vskip\@wholewidth}}%

%
% modification of \@outputpage (from latex.tex)
%
\def\@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
     \shipout
     \vbox{\normalsize \baselineskip\z@ \lineskip\z@
           \let\par\@@par %% 15 Sep 87
           \vskip \topmargin \moveright\@themargin
	   \my@frame{%
           \vbox{\setbox\@tempboxa
                   \vbox to\headheight{\vfil \hbox to\textwidth
                                       {\let\label\@gobble \let\index\@gobble
                                         \@thehead}} %% 22 Feb 87
                 \dp\@tempboxa\z@
                 \box\@tempboxa
                 \vskip \headsep
                 \box\@outputbox
                 \baselineskip\footskip
                 \hbox to\textwidth{\let\label\@gobble
                           \let\index\@gobble  %% 22 Feb 87
                           \@thefoot}}%
           }% end of my@frame
	   }%
           \global\@colht\textheight
           \endgroup\stepcounter{page}\let\firstmark\botmark}

%
% Heading and Footing
%  In part, from fancyheading.sty
%

\def\lhead#1{\gdef\@elhead{#1}\gdef\@olhead{#1}}
\def\chead#1{\gdef\@echead{#1}\gdef\@ochead{#1}}
\def\rhead#1{\gdef\@erhead{#1}\gdef\@orhead{#1}}

\def\lfoot#1{\gdef\@elfoot{#1}\gdef\@olfoot{#1}}
\def\cfoot#1{\gdef\@ecfoot{#1}\gdef\@ocfoot{#1}}
\def\rfoot#1{\gdef\@erfoot{#1}\gdef\@orfoot{#1}}

\def\@slidehead#1#2#3#4#5{#1\hbox to\textwidth%
    {\vbox{\hbox{\rlap{\parbox[b]{\textwidth}%
    {\raggedright#2\strut}}\hfill\parbox[b]{\textwidth}%
    {\centering#3\strut}\hfill\llap{\parbox[b]{\textwidth}%
    {\raggedleft#4\strut}}}}}#5}

\def\@slidefoot#1#2#3#4#5{#1\hbox to\textwidth%
    {\vbox{\hbox{\rlap{\parbox[t]{\textwidth}%
    {\raggedright#2\strut}}\hfill\parbox[t]{\textwidth}%
    {\centering#3\strut}\hfill\llap{\parbox[t]{\textwidth}%
    {\raggedleft#4\strut}}}}}#5}

\def\ps@slide{%
    \def\@oddhead{\@slidehead\relax\@olhead\@ochead\@orhead\hss}%
    \def\@oddfoot{\@slidefoot\relax\@olfoot\@ocfoot\@orfoot\hss}%
    \def\@evenhead{\@slidehead\hss\@elhead\@echead\@erhead\relax}%
    \def\@evenfoot{\@slidefoot\hss\@elfoot\@ecfoot\@erfoot\relax}%
    }

\def\ps@empty{%
    \def\@oddhead{\@slidehead\relax\space\space\space\hss}%
    \def\@oddfoot{\@slidefoot\relax\space\space\space\hss}%
    \def\@evenhead{\@slidehead\hss\space\space\space\relax}%
    \def\@evenfoot{\@slidefoot\hss\space\space\space\relax}%
    }

%
% by modifying \fbox in latex.tex
% \Fbox{box sep}{box rule width/height}{...}
%
\def\Fbox#1#2#3{\@my@box@frame{#2}{#1}{#1}{#3}}

%
% Places a shadow box
% \SFbox{box sep}{box rule width/height}{shade rule width/height}{...}
% 
\def\SFbox#1#2#3#4{\@my@shadow@box@frame{#2}{#3}{#1}{#1}{#4}}

%
% by modifying \fbox in latex.tex
% \Underline & \Underbar
%
\def\Underline#1{%
    \leavevmode%
    \setbox\@tempboxa\hbox{#1}%
    \@tempdima1pt
    \advance\@tempdima 3pt
    \advance\@tempdima \dp\@tempboxa
    \hbox{\lower \@tempdima%
          \hbox{\vbox{\hbox{\vbox{\box\@tempboxa\vskip3pt}}%
                      \hrule height1pt}}}}

% from plain.tex
\def\Underbar#1{$\setbox\z@\hbox{#1}\dp\z@\z@
  \m@th \Underline{\box\z@}$}

%
% Things to be entered in texts
%
\def\title{\@ifnextchar[{\@@Title}{\@Title}}
\def\@Title#1{\def\slide@title{\uppercase{#1}}
              \def\slidetitle{#1}}
\def\@@Title[#1]#2{\def\slide@title{\uppercase{#2}}
              \def\slidetitle{#1}}
\def\slide@title{\hspace*{1pt}}
\def\slidetitle{\hspace*{1pt}}

\def\author{\@ifnextchar[{\@@Author}{\@Author}}
\def\@@Author[#1]#2{\def\slide@author{#2}%
                    \def\slideauthor{#1}}
\def\@Author#1{\def\slide@author{#1}
               \def\slideauthor{#1}}
\def\slide@author{\hspace*{1pt}}
\def\slideauthor{\hspace*{1pt}}

\def\organization#1{\def\authororga{#1}}
\def\authororga{\hspace*{1pt}}

\def\date#1{\def\slidedate{#1}}
\def\slidedate{\today}

%
% section and subsection
%
\newcounter{sec@ctr}
\setcounter{sec@ctr}{1}

\def\section{\@ifnextchar[{\@@Section}{\@Section}}

%mod by DPK
\def\@Section#1{%\clearpage
               \thispagestyle{empty}
               \vspace*{\fill}
	       \begin{center}
	       \Hugesize\uppercase{#1}
	       \end{center}
	       \vspace*{\fill}
	       \def\sectiontitle{#1}
	       \Add@@secitem{toc}{\thesec@ctr}{#1}
	       \addtocounter{sec@ctr}{1}
	       \clearpage}

\def\@@Section[#1]#2{%\clearpage
               \thispagestyle{empty}
               \vspace*{\fill}
	       \begin{center}
	       \Hugesize\uppercase{#2}
	       \end{center}
	       \vspace*{\fill}
	       \def\sectiontitle{#1}
	       \Add@@secitem{toc}{\thesec@ctr}{#1}
	       \addtocounter{sec@ctr}{1}
	       \clearpage}

\def\sectiontitle{\relax}

\def\Add@@secitem#1#2#3{\if@filesw \begingroup
\let\label\@gobble \let\index\@gobble \let\glossary\@gobble
\def\protect##1{\string\string\string##1\string\space
   \space}\@temptokena{\thepage}%
\edef\@tempa{\write \@auxout{\string\@writefile{#1}{\protect
     \secitem{#2}{#3}{\the\@temptokena}}}}\@tempa
   \if@nobreak \ifvmode\nobreak\fi\fi\endgroup\fi}
 
\def\subsection#1{\subsec@begin@vspace
                  \addtocounter{sec@ctr}{-1}
                  \Add@@subsecitem{toc}{\thesec@ctr}{#1}
		  \addtocounter{sec@ctr}{1}
		  \hspace*{\fill}
		  \sub@section@frame{\Largesize #1}
		  \hspace*{\fill}
		  \subsec@end@vspace}

\def\Add@@subsecitem#1#2#3{\if@filesw \begingroup
\let\label\@gobble \let\index\@gobble \let\glossary\@gobble
\def\protect##1{\string\string\string##1\string\space
   \space}\@temptokena{\thepage}%
\edef\@tempa{\write \@auxout{\string\@writefile{#1}{\protect
     \subsecitem{#2}{#3}{\the\@temptokena}}}}\@tempa
   \if@nobreak \ifvmode\nobreak\fi\fi\endgroup\fi}

%
% titlepage
%
\def\titlepage{\thispagestyle{empty}
    \vspace*{\fill}
    \begin{center}
    \Hugesize \slide@title \\ [2em]
    \Normalsize\slide@author \\ [.5em]
    \Normalsize\authororga \\ [1em]
    \Normalsize\slidedate
    \end{center}
    \vspace*{\fill}
    \setcounter{page}{0}
    \clearpage}

%
% tables of contents
%
\def\contentsname{Overview}

\newcounter{@@@dum@@@}
\setcounter{@@@dum@@@}{0}

\def\slidecontents{\@ifnextchar*{\@@slidecontents}{\@slidecontents}}

\def\@slidecontents{\openin1 \jobname.toc \ifeof1 \typeout
           {No file \jobname.toc}\else\closein1\relax
	   \def\secitem##1##2##3{%
	       \ifnum\value{@@@dum@@@}=0%
	          \setcounter{@@@dum@@@}{1}%
	          \begin{citemize}\contsize\fi
 	          \item[$\bullet$] ##2 \dotfill\ ##3\ignorespaces}
	   \def\subsecitem##1##2##3{\ignorespaces}
	   \clearpage
	   \thispagestyle{empty}
	   \addtocounter{page}{-1}
	   \subsec@begin@vspace
           \hspace*{\fill}
           \sub@section@frame{\Largesize\contentsname}
	   \hspace*{\fill}
	   \subsec@end@vspace
           \input{\jobname.toc}
	   \ifnum\value{@@@dum@@@}=1%
	      \setcounter{@@@dum@@@}{0}%
	      \end{citemize}\fi
	   \vspace*{\fill}
	   \clearpage
	   \fi}

\def\@@slidecontents*{\openin1 \jobname.toc \ifeof1 \typeout
           {No file \jobname.toc}\else\closein1\relax
	   \def\secitem##1##2##3{%
	       \ifnum\value{@@@dum@@@}=0%
	          \setcounter{@@@dum@@@}{1}%
	          \begin{citemize}\contsize\fi
	          \item[$\bullet$] ##2 \hspace{\fill}}
	   \def\subsecitem##1##2##3{\ignorespaces}
	   \clearpage
	   \thispagestyle{empty}
	   \addtocounter{page}{-1}
	   \subsec@begin@vspace
	   \hspace*{\fill}
           \sub@section@frame{\Largesize\contentsname}
	   \hspace*{\fill}
	   \subsec@end@vspace
           \input{\jobname.toc}
	   \ifnum\value{@@@dum@@@}=1%
	      \setcounter{@@@dum@@@}{0}%
	      \end{citemize}\fi
	   \vspace*{\fill}
	   \clearpage
	   \fi}

\def\sectioncontents{\@ifnextchar*{\@@sectioncontents}{\@sectioncontents}}

\newcounter{@@@dummy@@@}
\setcounter{@@@dummy@@@}{0}

\@ifundefined{checkmark}%
    {\def\mycheckmark{\surd}}%
    {\def\mycheckmark{\checkmark}}

\def\mysecpointer{\Rightarrow}

\def\@sectioncontents{\openin1 \jobname.toc \ifeof1 \typeout
           {No file \jobname.toc}\else\closein1\relax
	   \def\secitem##1##2##3{%
	       \ifnum\value{@@@dum@@@}=0%
	          \setcounter{@@@dum@@@}{1}%
	          \begin{citemize}\contsize\fi
	       \ifnum\value{@@@dummy@@@}=1%
	          \setcounter{@@@dummy@@@}{0}%
	          \end{ccitemize}\fi
	       \item[\ifnum\value{sec@ctr}>##1$\mycheckmark\;\bullet$%
	             \else\ifnum\value{sec@ctr}=##1$\mysecpointer\bullet$%
	             \else$\bullet$\fi\fi] ##2 \dotfill\ ##3\ignorespaces}
           \def\subsecitem##1##2##3{%
	       \ifnum\value{sec@ctr}=##1%
	          \ifnum\value{@@@dummy@@@}=0
	             \setcounter{@@@dummy@@@}{1}
	             \begin{ccitemize}\contsizesize\fi
	          \item[$\bullet$] ##2 \hspace*{\fill}\fi}
	   \clearpage
	   \thispagestyle{empty}
	   \addtocounter{page}{-1}
	   \subsec@begin@vspace
           \hspace*{\fill}
           \sub@section@frame{\Largesize\contentsname}
	   \hspace*{\fill}
	   \subsec@end@vspace
           \input{\jobname.toc}
	   \ifnum\value{@@@dummy@@@}=1%
 	      \setcounter{@@@dummy@@@}{0}%
	      \end{ccitemize}\fi
	   \ifnum\value{@@@dum@@@}=1%
	      \setcounter{@@@dum@@@}{0}%
	      \end{citemize}\fi
	   \vspace*{\fill}
	   \clearpage
	   \fi}

\def\@@sectioncontents*{\openin1 \jobname.toc \ifeof1 \typeout
           {No file \jobname.toc}\else\closein1\relax
	   \def\secitem##1##2##3{%
	       \ifnum\value{@@@dum@@@}=0%
	          \setcounter{@@@dum@@@}{1}%
	          \begin{citemize}\contsize\fi
	       \ifnum\value{@@@dummy@@@}=1%
	          \setcounter{@@@dummy@@@}{0}%
	          \end{ccitemize}\fi
	       \item[\ifnum\value{sec@ctr}>##1$\mycheckmark\;\bullet$%
	             \else\ifnum\value{sec@ctr}=##1$\mysecpointer\bullet$%
	             \else$\bullet$\fi\fi] ##2 \hspace{\fill}}
           \def\subsecitem##1##2##3{%
	       \ifnum\value{sec@ctr}=##1%
	          \ifnum\value{@@@dummy@@@}=0
	             \setcounter{@@@dummy@@@}{1}
	             \begin{ccitemize}\contsizesize\fi
	          \item[$\bullet$] ##2 \hspace{\fill}\fi}
	   \clearpage
	   \thispagestyle{empty}
	   \addtocounter{page}{-1}
	   \subsec@begin@vspace
           \hspace*{\fill}
           \sub@section@frame{\Largesize\contentsname}
	   \hspace*{\fill}
	   \subsec@end@vspace
           \input{\jobname.toc}
	   \ifnum\value{@@@dummy@@@}=1%
	       \setcounter{@@@dummy@@@}{0}%
	       \end{ccitemize}\fi
           \ifnum\value{@@@dum@@@}=1%
	       \setcounter{@@@dum@@@}{0}%
	       \end{citemize}\fi
	   \clearpage
	   \vspace*{\fill}
	   \fi}

\def\citemize{\list{\relax}%
    {\leftmargin=2.5em
     \rightmargin=.5em
     \labelwidth=2em
     \labelsep=.5em
     \def\makelabel##1{\hss\llap{##1}}}}
\let\endcitemize =\endlist

\def\ccitemize{\list{\relax}%
    {\leftmargin=1em
     \rightmargin=0em
     \labelwidth=.5em
     \labelsep=.5em
     \def\makelabel##1{\hss\llap{##1}}}}
\let\endccitemize =\endlist

%
% modifications to enumerate env.
%
\def\labelenumi{\theenumi.}
	\def\theenumi{\arabic{enumi}}
\def\labelenumii{\theenumi.\theenumii.}
	\def\theenumii{\arabic{enumii}}
	\def\p@enumii{\theenumi.}
\def\labelenumiii{\theenumi.\theenumii.\theenumiii.}
	\def\theenumiii{\arabic{enumiii}}
	\def\p@enumiii{\theenumi.\theenumii.}
\def\labelenumiv{\theenumi.\theenumii.\theenumiii.\theenumiv.}
	\def\theenumiv{\arabic{enumiv}}
	\def\p@enumiv{\theenumi.\theenumii.\theenumiii.}

\def\enumerate{\ifnum \@enumdepth >3 \@toodeep\else
      \advance\@enumdepth \@ne
      \edef\@enumctr{enum\romannumeral\the\@enumdepth}\list
      {\csname label\@enumctr\endcsname}{\usecounter{\@enumctr}
      \labelsep =  .2em
      \ifnum \@enumdepth = 1
             \labelwidth = 1em
	     \leftmargin=\leftskip
	     \advance\leftmargin1.8em
      \else \ifnum \@enumdepth = 2
                   \labelwidth = 1.6em
                   \leftmargin = 1.8em  %\leftmargin = \labelwidth+\labelsep
            \else \ifnum \@enumdepth = 3
                         \labelwidth = 2.4em
                         \leftmargin = 2.6em
                  \else
                         \labelwidth = 3.2em
                         \leftmargin = 3.4em
                  \fi
            \fi
      \fi
      \def\makelabel##1{\rlap{##1}\hss}}\fi}

%
% Font sizes
%
\def\Hugesize{\Huge}   % in art12.sty, \Huge = \huge
\def\Largesize{\huge}  % in art11.sty, \Huge > \huge
\def\Normalsize{\LARGE}
\def\Smallsize{\Large}

\def\contsize{\LARGE}
\def\contsizesize{\Large}
\def\smallcontentsfonts{%
    \def\contsize{\Large}
    \def\contsizesize{\large}}

\def\smallerfonts{%
    \def\Hugesize{\huge}
    \def\Largesize{\LARGE}
    \def\Normalsize{\Large}
    \def\Smallsize{\large}
    \def\contsize{\Large}
    \def\contsizesize{\large}
    \def\smallcontentsfonts{%
        \def\contsize{\large}
        \def\contsizesize{\normalsize}}%
    }
%
% modifications to document env.
%

\let\@@@@document\document
\def\document{\@@@@document
    \Normalsize}
\let\@@end@@document\enddocument
\def\enddocument{%
\if@filesw \newwrite\tf@toc
  \immediate\openout\tf@toc=\jobname.toc
  \typeout{Writing toc file \jobname.toc}\fi
    \@@end@@document}

%
% slide environment
%
\newdimen\defaultskip
\def\slide{\@ifnextchar[{\@@Slide}{\@Slide}}
\def\@Slide{\@@Slide[0pt]}
\def\@@Slide[#1]{\slide@begin@vspace
           \begingroup
	   \advance\leftskip\defaultskip
	   \advance\rightskip\defaultskip
	   \advance\leftskip#1
	   \advance\rightskip#1
           \advance\leftmargini\leftskip}
\def\endslide{\par\endgroup
              \slide@end@vspace
              \clearpage}

%
% Page vertical spacing types
%
\def\vertcenter{%
    \def\subsec@begin@vspace{\vspace*{\fill}}
    \def\subsec@end@vspace{\vspace*{\fill}}
    \def\slide@begin@vspace{\vspace*{\fill}}
    \def\slide@end@vspace{\vspace*{\fill}}%
    }
\def\vertgroup{%
    \def\subsec@begin@vspace{\relax}
    \def\subsec@end@vspace{\vspace*{2em}}
    \def\slide@begin@vspace{\vspace*{\fill}}
    \def\slide@end@vspace{\vspace*{\fill}}%
    }
\def\verttop{%
    \def\subsec@begin@vspace{\relax}
    \def\subsec@end@vspace{\vspace*{2em}}
    \def\slide@begin@vspace{\relax}
    \def\slide@end@vspace{\relax}%
    }

%
% Page Frame Definitions
%
\def\doubleboxframe{%
    \def\my@frame##1{%
        \@my@box@frame{.4em}{.3em}{.3em}%
	{\@my@box@frame{1.6pt}{.8em}{.8em}{##1}}}}

\def\shadowframe{%
    \def\my@frame##1{%
        \@my@shadow@box@frame{1.6pt}{3.2pt}{.8em}{.8em}{##1}}}

\def\ovalframe{%
 \def\my@frame##1{\@my@oval@frame{\thicklines}{.4em}{.3em}{##1}}}

%
% Subsection frames
%
\def\boxsecframe{\def\sub@section@frame##1{\Fbox{3pt}{1pt}{##1}}}
\def\shadowsecframe{\def\sub@section@frame##1{\SFbox{3pt}{1pt}{2pt}{##1}}}

%
% defaults
%
% slide head and foot
\lhead{\slidetitle}
\chead{\relax}   % empty
\rhead{\sectiontitle}
\lfoot{\slideauthor}
\cfoot{\relax}   % empty
\rfoot{\thepage}

%
\defaultskip=1em
%
\pagestyle{slide}

% \portrait vs. \landspace
\portrait

% no parindent
\parindent 0pt

% \vertcenter vs. \verttop
\vertcenter   % vertical centering

% \doubleboxframe vs. \shadowframe vs. \ovalframe
\shadowframe

% \boxsecframe vs. \shadowsecframe
\shadowsecframe

% hyphenation off. Comment the following line if you want hyphenation on
\pretolerance=10000

% right-justification off
% Comment the following two lines if you want right-justification on
\@rightskip\@flushglue
\rightskip\@rightskip

%
% use pointing hand
%
%\font\handsfont=hands scaled\magstep5
%\def\handright{{\handsfont \char"41}}
%\def\handleft{{\handsfont \char"42}}
%\def\mysecpointer{\mbox{\handright}\,}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% hands fonts
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%
%%Do ftp login:
%%
%%	anonymous@ymir.claremont.edu
%%
%%Go to the directory of hands.dir:
%%
%%	cd tex
%%	cd mf
%%	cd hands
%%
%%Get all files:
%%
%%	mget *
%%
%%Modifications to hands.mf
%%^^^^^^^^^^^^^^^^^^^^^^^^^
%%   ... ...
%%   size=10pt#;
%%   ... ...
%%   thinline#:=6/100em#;
%%
%%Run metafont on hands.mf with magnification of:
%%
%%	1.2**5
%%
%%which is used in lslide.sty
%%Probably, you may want to generate hands fonts with
%%all magnifications:
%%
%%	1, root(1.2), 1.2, 1.2**2, 1.2**3, 1.2**4, 1.2**5
%%




