[comp.text.tex] SPIE proceedings style

zaccone@jasper.bucknell.edu (zaccone - 1393) (06/06/91)

This style file will format a paper in the spie proceedings style.  I
threw this together rather quickly, but it seems to do the right
thing.

Rick Zaccone
zaccone@bucknell.edu
----------------------------------------------------------------------
\typeout{Document Style Option `spie proceedings style'.}
%
% Prepared by Rick Zaccone on 6/3/91.
% zaccone@bucknell.edu
%
% Usage:
% \documentstyle[spie]{article}
%
% The user needs to make a few adjustments manually:
%
% 1. Section titles should be in upper case.
% 2. Title, subsection, subsubsection, etc. should be in lower case except 
% for the first letter.
% 3. Format authors as follows
%    \author{author1 \\[12pt]
%            affiliation\\
%            affiliation\\[12pt]
%            author2 \\[12pt]
%            affiliation\\
%            affiliation\\[12pt]}
%
% 4. No date: \date{}
% --------------------------------------------------------------------
% No headers or footers
\oddsidemargin -.15in \evensidemargin -.15in \topmargin .1in
\headheight 0in \headsep 0in
\footheight 0in \footskip 0in 
\pagestyle{empty} % No page numbers
%
\textheight 8.8in \textwidth 6.8in 
\floatsep 6pt plus 2pt minus 4pt \textfloatsep 30pt plus 20pt minus 10pt

% Center section headings.

\def\section{\@startsection {section}{1}{\z@}{-3.5ex plus -1ex minus
 -.2ex}{2.3ex plus .2ex}{\centering\Large\bf}}

%%% Make the captions boldface and scriptsize

\long\def\@makecaption#1#2{
 \vskip 10pt 
 \setbox\@tempboxa\hbox{#1: #2}
 \ifdim \wd\@tempboxa >\hsize {#1: #2}\par \else \hbox
to\hsize{\box\@tempboxa\hfil} 
 \fi}

% Add theorem, lemma, and definition environments.

\def\@begintheorem#1#2{\par\bgroup{\sc #1\ #2. }\it\ignorespaces}
\def\@opargbegintheorem#1#2#3{\par\bgroup{\sc #1\ #2\ (#3). }\it\ignorespaces}
\def\@endtheorem{\egroup}
\def\proof{\par{\it Proof}. \ignorespaces}
\def\endproof{{\ \vbox{\hrule\hbox{%
   \vrule height1.3ex\hskip0.8ex\vrule}\hrule
  }}\par}
\newtheorem{theorem}{Theorem}[section]
\newtheorem{lemma}[theorem]{Lemma}
\newtheorem{definition}[theorem]{Definition}

\def\abstract{
\section*{ABSTRACT}
}
\def\endabstract{}

% Superscript citations taken from aip.sty
% Superscript citations -- skip optional arg to \cite
% Move citation after period and comma.
\def\@cite#1#2{\unskip\nobreak\relax
    \def\@tempa{$\m@th^{\hbox{\the\scriptfont0 #1}}$}%
    \futurelet\@tempc\@citexx}
\def\@citexx{\ifx.\@tempc\let\@tempd=\@citepunct\else
    \ifx,\@tempc\let\@tempd=\@citepunct\else
    \let\@tempd=\@tempa\fi\fi\@tempd}
\def\@citepunct{\@tempc\edef\@sf{\spacefactor=\the\spacefactor\relax}\@tempa
    \@sf\@gobble}

% \citenum emits the plain citation number without ornament
% \citea puts it's argument into the ornamentation for citations
% thus \cite{foo} is equivalent to \citea{\citenum{foo}}
\def\citenum#1{{\def\@cite##1##2{##1}\cite{#1}}}
\def\citea#1{\@cite{#1}{}}

% Collapse citation numbers to ranges.  Non-numeric and undefined labels
% are handled.  No sorting is done.  E.g., 1,3,2,3,4,5,foo,1,2,3,?,4,5
% gives 1,3,2-5,foo,1-3,?,4,5
\newcount\@tempcntc
\def\@citex[#1]#2{\if@filesw\immediate\write\@auxout{\string\citation{#2}}\fi
  \@tempcnta\z@\@tempcntb\m@ne\def\@citea{}\@cite{\@for\@citeb:=#2\do
    {\@ifundefined
       {b@\@citeb}{\@citeo\@tempcntb\m@ne\@citea\def\@citea{,}{\bf ?}\@warning
       {Citation `\@citeb' on page \thepage \space undefined}}%
    {\setbox\z@\hbox{\global\@tempcntc0\csname b@\@citeb\endcsname\relax}%
     \ifnum\@tempcntc=\z@ \@citeo\@tempcntb\m@ne
       \@citea\def\@citea{,}\hbox{\csname b@\@citeb\endcsname}%
     \else
      \advance\@tempcntb\@ne
      \ifnum\@tempcntb=\@tempcntc
      \else\advance\@tempcntb\m@ne\@citeo
      \@tempcnta\@tempcntc\@tempcntb\@tempcntc\fi\fi}}\@citeo}{#1}}
\def\@citeo{\ifnum\@tempcnta>\@tempcntb\else\@citea\def\@citea{,}%
  \ifnum\@tempcnta=\@tempcntb\the\@tempcnta\else
   {\advance\@tempcnta\@ne\ifnum\@tempcnta=\@tempcntb \else \def\@citea{--}\fi
    \advance\@tempcnta\m@ne\the\@tempcnta\@citea\the\@tempcntb}\fi\fi}

% Give the references a section number.  Use upper case letters.

\def\thebibliography#1{\section{REFERENCES\@mkboth
 {REFERENCES}{REFERENCES}}\list
 {[\arabic{enumi}]}{\settowidth\labelwidth{[#1]}\leftmargin\labelwidth
 \advance\leftmargin\labelsep
 \usecounter{enumi}}
 \def\newblock{\hskip .11em plus .33em minus .07em}
 \sloppy\clubpenalty4000\widowpenalty4000
 \sfcode`\.=1000\relax}
\let\endthebibliography=\endlist
% ---- end of spie style ---------
--
zaccone@bucknell.edu