%                                                              10/08/93 %
% IBM resume style file, /pub/ibmres-tex/ibmres.sty                     %
% George B. Leeman, Jr., leeman@watson.ibm.com.                         %
% Please read /pub/README.FTP on software.watson.ibm.com before using   %
% this file.  Documentation for using this file is in                   %
% /pub/ibmres-tex/ibmres.ltx.                                           %
%=======================================================================%
% The next 140 lines are the RESUME.STY file of Stephen Gildea, with    %
% enhancements by Jerry Leichter and George B. Leeman, Jr.              %
 % This style option is designed to work with the article document
 % style of LaTeX version 2.09.  Use
 % \documentstyle[resume]{article}
 
 % Copyright (c) 1987 by Stephen Gildea
 % Permission to copy all or part of this work is granted, provided
 % that the copies are not made or distributed for resale, and that
 % the copyright notice and this notice are retained.
 %
 % THIS WORK IS PROVIDED ON AN "AS IS" BASIS.  THE AUTHOR PROVIDES NO
 % WARRANTY WHATSOEVER, EITHER EXPRESS OR IMPLIED, REGARDING THE WORK,
 % INCLUDING WARRANTIES WITH RESPECT TO ITS MERCHANTABILITY OR FITNESS
 % FOR ANY PARTICULAR PURPOSE.
 
 % If you make any improvements, I'd like to hear about them.
 
 % Stephen Gildea
 % MIT Earth Resources Lab
 % Cambridge, Mass. 02139
 % mit-erl!gildea
 % gildea@erl.mit.edu
 
 % 23 May 87 version 1
 % 08 Jun 88 center single \address lines
 % 02 Sep 88 enhancement to \employer from Jerry Leichter
 %          LEICHTER-JERRY@cs.yale.edu or <LEICHTER@Venus.YCC.Yale.Edu>
 % 08 Mar 89 allow \\ in \sectiontitle to make multi-line titles
 
 \topmargin 0pt
 \headheight 0pt
 \headsep 0pt
 \textheight 9.0in
 \pagestyle{empty}
 \parindent 0pt
 \parskip \baselineskip
 \topmargin 0in
 \oddsidemargin -0.1in % was 0in
 \evensidemargin 0in
 \textwidth 6.55in % was 6.5in
 
 \setcounter{secnumdepth}{0}
 
 % use this to print your name at the top of the page
 \def\name#1{{\large\bf\centering#1\\[2\baselineskip]}\ignorespaces}
 
 % one address
 \def\address#1{{\centering #1\par}}
 
 % two addresses (say, home and work).  They get printed side by side
\def\addresses#1#2{\hbox to \hsize{\@tablebox{#1}\hfil\@tablebox{#2}}}
 
 % CC: [t] stands for align on top row; {@{}l@{}} indicates
 % that there is one entry that should be aligned to the left and
 % surrounded by two blank spaces.
 % Another example is in ieeeconf.sty, where we have
 % \def\author#1#2{\begin{tabular}[t]{c@{\extracolsep{8em}}c}#1&#2\end{tabular}}
 \def\@tablebox#1{\begin{tabular}[t]{@{}l@{}}#1\end{tabular}}
 
 % CC: \newbox reserves a register of type box for  \@title (p. 244)
 \newbox\@title
 
 % Most of the resume goes inside a llist environment.  Within it, use
 % the \sectiontitle{title} command to begin new sections.  The title
 % of the section is put in the left margin.  The section text begins
 % on the next line if the sectiontitle is too long.
 %
 % CC: (1) \begin{list}{default_label}{\labelwidth \leftmargin \labelsep
 % \rightmargin \topsep \parsep \parskip \itemsep \parsep} \item_list
 % \end{list} are latex commands (see pp.112--115 and p.165--166)
 % CC: (2) \newenvironment{command_name}[args]{begin_definition}{end_definition}
 % Modification by George B. Leeman: next line to change left margin width, then
 % change width accordingly in llist environment.  Also add a multiple
 % line section title (mlsectiontitle) which allows multiple lines
 % inside items, formatting them to the proper width.
 \newlength\leftmarginwidth     \setlength\leftmarginwidth{1 in}
 \newenvironment{llist}{%
%\begin{list}{}{\setlength\labelwidth{1in}%
 \begin{list}{}{\setlength\labelwidth{\the\leftmarginwidth}%
  \setlength\leftmargin{\labelwidth}
  \addtolength\leftmargin{\labelsep}
  \itemsep 5pt plus 2pt minus 2pt
  \parsep 10pt plus 2pt minus 2pt
 %
 % Set the depth of the title to 0 in case more than one line.
 % CC: \copy<register> produces a copy of box register <register>.
 % This command is useful when you want to retrieve the contents of a box
 % but don't want to destroy the contents.
 \def\sectiontitle##1{\setbox\@title=\hbox{{\bf\@tablebox{##1}}}\dp\@title=0pt
   \item[\copy\@title]%
 % If the title takes more lines than the body, you lose.
 % \ifdim\wd\@title>\labelwidth \leavevmode \\* \else \fi}
 % CC: Because for sectiontitiles with \wd\@title>\labelwidth, we always
 % have \item following them, we do not need an extra line
  \ifdim\wd\@title>\labelwidth \leavevmode \else \fi} %end of sectiontitle
% \def\mlsectiontitle##1{\setbox\@title=\hbox{\@tablebox{##1}}\dp\@title=0 pt
%   \item[\copy\@title]}
  \def\mlsectiontitle##1{\setbox\@title=\hbox{\@tablebox{
    \parbox[t]{\leftmarginwidth}{\raggedright##1}}}\dp\@title=0 pt
    \item[\copy\@title]}
 \def\makelabel##1{##1\hfill} } }{\end{list}}
 
 % like itemize but bullets are at the left margin
 \newenvironment{items}{%
  \begin{list}{$\bullet$}{\setlength\labelwidth{.5em}\setlength\leftmargin{1em}
 % CC: new formats added by me :-)
   \parsep 0pt \parskip 0pt \topsep 1pt %\partopsep -2pt
   \def\makelabel##1{##1\hfill}}}{\end{list}}
 
 % Use the \employer and \location commands to print the names and
 % cities of your employers.
 % \employer always starts a new paragraph, and should be followed by
 % \location, because no \par after \employer
 %
 % \employer* is like \employer but is used for additional information
 % about the employer.  It does NOT start a new paragraph, must
 % NOT be followed by \location, and always forces a new line after itself.
 \def\employer{\@ifstar{\@semployer}{\@employer}}
 %\def\@employer#1{\par{\sc #1}}
 \def\@employer#1{{\sc #1}}
 \def\@semployer#1{{\sc #1}\\}
 % CC: used when the next environment is \begin{items} \end{items}
 \def\lastemployer#1{{\sc #1}}
 
 % The location is always flush right.  It is moved to the next
 % line if there is not room left on this one.
 % See the TeXbook Chapter 14.
 % CC: \penalty<number> produces a penality item. A penality of 10000
 % discourages (prevents) a break, while a penality of -10000 forces
 % a break. \finalhyphendemerits<number>: increasing <number> has
 % the effect of discouraging TEX from ending the nect ot the last line
 % with a hyphen.
 \def\location#1{{\unskip\nobreak\hfill\penalty50\hskip2em
   \hbox{}\nobreak\hfill \hbox{#1}\finalhyphendemerits=0 \\}}
 
 % This prints the date flush left.
 % The major shortcoming of this file:
 % There needs to be an option to print the date in the left margin,
 % because many people like to do it that way.
% \def\dates#1{#1\\[2pt]}
% End of RESUME.STY file.                                               %
%=======================================================================%
% Additions by George B. Leeman, Jr., October 22, 1992.                 %
%                                                                       %
% New ifs, boxes, dimens, lengths, tokens.                              %
\newif\if@nocoverletter
\newbox\@onebox
\newbox\@oneline
\newdimen\@closingwidth
\newdimen\@iwidth
\newdimen\@longindentation
\newdimen\@remainder
\newlength{\@fwidth}
\newlength{\@oneaddresssize}
\newlength{\@twoaddresssize}
\newtoks\@tempone
\newtoks\@temptwo
% Macro definitions, in alphabetical order.                             %
\def\abstracts#1{\newpage\pagestyle{empty}%
  \centerline{{\bf Selected Abstracts}}\vskip 5 ex}
\long\def\@append#1\to#2{\@tempone=\expandafter{#1}\@temptwo=\expandafter{#2}%
  \edef#2{\the\@temptwo\the\@tempone}}
\def\availabledate#1{\hbox to \hsize{\@tablebox{{\bf Present Status: }%
  \@presentstatustext\\{\bf Type of Position Desired: }%
  \@typeofpositiondesiredtext}\hfil
  \@tablebox{{\bf Immigration Status: }\@immigrationstatustext\\%
    {\bf Available Date: }#1}}\ignorespaces}
\def\cc#1{\if@nocoverletter\relax\else\@docc{#1}\fi\ignorespaces}
\def\closing#1{\if@nocoverletter\relax\else\@setclosing#1\0\fi}
\def\coverletter#1{\end{llist}\@ifnull{#1}\@nocoverlettertrue
  \else\def\@returnaddress{{\ignorespaces#1}}\@makeuniv#1\\\0\fi}
\def\degree#1{\def\@degreetext{\ignorespaces#1}}
\def\degreeyear0#1{\ignorespaces}
\def\discipline0#1{\ignorespaces}
\def\@docc#1{\@ifnull{#1}\relax\else\par\noindent\parbox[t]{\textwidth}%
  {\@hangfrom{\rm cc: }\ignorespaces #1\strut}\par\fi}
\def\@doencl#1{\@ifnull{#1}\relax\else\par\noindent\parbox[t]{\textwidth}%
  {\@hangfrom{\rm encl: }\ignorespaces #1\strut}\par\fi}
\def\education{\sectiontitle{Education}}
\def\email#1{\def\emailtext{}\@ifnull{#1}\relax\else\def\emailtext{\\#1}\fi
  \ignorespaces}
\def\employerspecificdata#1{\@ifnull{#1}\relax
  \else{\hbox to \hsize{\@tablebox{{\bf \@employerspecifictext: }#1}}}\fi
  \ignorespaces}
\def\employerspecifictitle#1{\@ifnull{#1}\relax
  \else\def\@employerspecifictext{\ignorespaces#1}\fi\ignorespaces}
\def\employment{\sectiontitle{Employment}}
\def\encl#1{\if@nocoverletter\relax\else\@doencl{#1}\fi}
\def\gpa#1{\@ifnull{#1}\def\@gpatext{ {\em no GPA.}}%
  \else\def\@gpatext{ {\em GPA: }\ignorespaces#1}\fi}
\def\highestdegree0#1{\ignorespaces}
\def\homeaddressandphone#1{\@newsize\@twoaddresssize{\bf Home Address}\\#1\\\0%
  \def\saveaddress{}\@setlineend\saveaddress{\bf Home Address}\\#1\\\0%
  \addresses{\saveworkaddress}%
    {\parbox[t]{\@fwidth}{\raggedright\saveaddress}}%
  \vskip 4 ex\ignorespaces}
\def\honors#1{\sectiontitle{Honors}#1\par}
\def\@ifnull#1{\def\temp{#1}\ifx\temp\empty}
\def\immigrationstatus#1{\def\@immigrationstatustext{\ignorespaces#1}%
  \ignorespaces}
\long\def\letterbody#1{\if@nocoverletter\relax\else#1\par\fi}
\def\letterlabel{\if@nocoverletter\ignorespaces
  \else\newpage\thispagestyle{empty}\hbox{\vrule\vbox{\hrule\kern6truept
      \hbox{\kern6truept\vbox to 2truein{\hsize=\@longindentation
          {\smallheadfont\baselineskip9truept\@savename\\\@returnaddress\par}
          \vfill\moveright 2truein\vbox{\raggedright\hsize=\@longindentation
            \everypar{\hangindent 1 em}\rm\@receiveraddress}\vfill}%
        \kern6truept}\kern6truept\hrule}\vrule}
  \setcounter{page}{0}\newpage\fi}
\def\@makeletterhead{\setcounter{page}{0}\newpage
  \setlength{\textwidth}{6.25 truein}\hsize=6.25 truein
  \def\ps@empty{\let\@mkboth\@gobbletwo\def\@oddhead{}\def\@oddfoot{}%
    \def\@evenhead{}\def\@evenfoot{}\headsep 0 pt\headheight 0 pt
    \textheight 9 in}%
  \parindent=0 pt\parskip=0 pt\headsep 6 ex\headheight 12 pt
  \addtolength{\textheight}{-6 ex}\addtolength{\textheight}{-12 pt}\raggedbottom
  \interlinepenalty=1000 \pagestyle{myheadings}%
  \markright{{\rm To: \@savereceiver\hfill\today\hfill Page }}%
  \@longindentation=4 truein\@remainder=2.25 truein\thispagestyle{empty}
  \font\smallheadfont=cmr8 at 8 truept\font\largeheadfont=cmr10 at 14.4 truept
  \hbox{\largeheadfont\@saveuniversity\hfil}\hbox{\smallheadfont\@secondline}%
  \vskip 2 truept\hrule\vskip 4 truept\hspace*{\@longindentation}%
  \parbox{\@remainder}{\baselineskip 9 truept\smallheadfont\@sendingaddress\par}
  \par\vspace{\bigskipamount}\vspace{\bigskipamount}\hspace*{\@longindentation}%
  \rm\today\par\vspace{\bigskipamount}\@receiveraddress\par
  \vspace{\bigskipamount}}
\def\@makename#1\\#2\0{\def\@savename{{\ignorespaces#1}}}
\def\@makereceiver#1\\#2\0{\def\@savereceiver{{\ignorespaces#1}}}
\def\@makeuniv#1\\#2\0{\def\@saveuniversity{{\ignorespaces#1}}\@setsecond#2\\\0}
\def\miscellaneous#1{\sectiontitle{Miscellaneous}#1\par}
\def\@newsize#1#2\\#3\0{\@iwidth=#1\advance\@iwidth by -1 em
  \global\setbox\@onebox
    \vbox{\hsize=#1\parshape=2 0 pt #1 0 pt\the\@iwidth\raggedright#2\par}%
  \loop
    \global\setbox\@onebox
      \vbox{\unvbox\@onebox\global\setbox\@oneline\lastbox\unskip\unpenalty}%
    \global\setbox\@oneline\hbox{\unhbox\@oneline\unskip}%
    \global\@iwidth=\wd\@oneline
    \ifdim\ht\@onebox>0 pt
      \advance\@iwidth by 1 em
      \ifdim\@fwidth<\the\@iwidth\global\@fwidth=\the\@iwidth\fi
    \repeat
  \ifdim\@fwidth<\the\@iwidth\global\@fwidth=\the\@iwidth\fi
  \@ifnull{#3}\relax\else\@newsize\@twoaddresssize#3\0\fi}
\def\objective#1{\begin{llist}\sectiontitle{Objective}#1\par}
\def\oneaddressandphone#1{\@newsize\@oneaddresssize#1\emailtext\\\0%
  \def\saveaddress{}\@setlineend\saveaddress#1\emailtext\\\0%
  \def\addressbox{\raggedright\saveaddress}%
  \address{\parbox[t]{\@fwidth}{\addressbox}}\vskip 5 ex}
\def\outof#1{\@ifnull{#1}\def\@outoftext{}
  \else\def\@outoftext{ out of \ignorespaces#1.}\fi\@degreetext\@gpatext
  \@outoftext\par}
\def\place{\employer}
\def\preferredtitle0#1{\ignorespaces}
\def\presentstatus#1{\def\@presentstatustext{\ignorespaces#1}\ignorespaces}
\def\ps#1{\if@nocoverletter\relax\else\ignorespaces#1\par\@startbreaks\fi
  \ignorespaces}
\def\publications#1{\sectiontitle{Publications}#1\par}
\def\@receiveraddress{}
\def\recipient#1{\if@nocoverletter\relax
  \else\def\@receiveraddress{\ignorespaces#1}\@makereceiver#1\\\0\@makeletterhead
  \fi}
\def\referenceemail#1{\@reftext\@ifnull{#1}\else{ \em Email: }#1\fi\par}
\def\referencename#1{\def\@reftext{\ignorespaces#1}}
\def\references{\sectiontitle{References}}
\def\@returnaddress{}
\def\rightlines#1{\if@nocoverletter\relax\else\def\@sendingaddress
  {\ignorespaces#1}\@makename#1\\\0\fi}
\def\@savename{}
\def\@savereceiver{}
\def\@saveuniversity{}
\def\school0#1{\ignorespaces}
\def\@secondline{}
\def\@sendingaddress{}
\long\def\@setclosing#1\\#2\0{\par\nobreak\bigskip\@stopbreaks\noindent
  \hspace*{\@longindentation}\@closingwidth=\textwidth
  \advance\@closingwidth -\@longindentation
  \parbox{\@closingwidth}{\raggedright\ignorespaces #1\\[6\medskipamount]
    #2\strut}\par}
\def\@setcommas#1\\#2\0{\@ifnull{#1}\relax
  \else\@append{, {\ignorespaces #1}}\to\@secondline\@setcommas#2\0\fi}
\long\def\@setlineend#1#2\\#3\0{%
  \@append{{\ignorespaces#2}\hangindent=1 em \par}\to#1%
  \@ifnull{#3}\relax\else\@setlineend#1#3\0\fi}
\def\@setsecond#1\\#2\0{\@ifnull{#1}\relax
  \else\def\@secondline{\ignorespaces #1}\@setcommas#2\\\0\fi}
\def\skills#1{\sectiontitle{Skills}#1\par}
\def\@startbreaks{\let\\=\@normalcr\interlinepenalty 200
  \def\par{\@@par\penalty 200 \relax}}
\def\@stopbreaks{\interlinepenalty \@M \def\par{\@@par\nobreak}\let\\=\@nobreakcr
  \let\vspace\@nobreakvspace}
\long\def\text#1{\ignorespaces#1\par}
\def\typeofpositiondesired#1{\def\@typeofpositiondesiredtext{\ignorespaces#1}%
  \ignorespaces}
\def\when#1{\mlsectiontitle{#1}}
\def\workaddressandphone#1{\def\workaddress{}%
% \@setlineend\workaddress{\bf Work Address}\\#1\emailtext\\\0\noindent
  \@setlineend\workaddress{\bf Work Address}\\#1\emailtext\\\0%
  \def\saveworkaddress{{\parbox[t]{\@twoaddresssize}{\raggedright\workaddress}}}%
  \ignorespaces}
% Initialize various dimensions.
\setlength{\@oneaddresssize}{\textwidth}
\addtolength{\@oneaddresssize}{-2 in}
\setlength{\@twoaddresssize}{\textwidth}
\addtolength{\@twoaddresssize}{-1 in}
\addtolength{\@twoaddresssize}{-0.5 \@twoaddresssize}
\setlength{\@fwidth}{-1 pt}
\settowidth{\leftmarginwidth}{\bf Miscellaneous}
\addtolength{\leftmarginwidth}{1 em}
