% 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 % 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\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 produces a copy of box 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 produces a penality item. A penality of 10000 % discourages (prevents) a break, while a penality of -10000 forces % a break. \finalhyphendemerits: increasing 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}