diff options
Diffstat (limited to 'ibmres/ibmres.sty')
| -rw-r--r-- | ibmres/ibmres.sty | 317 |
1 files changed, 317 insertions, 0 deletions
diff --git a/ibmres/ibmres.sty b/ibmres/ibmres.sty new file mode 100644 index 0000000..def3d62 --- /dev/null +++ b/ibmres/ibmres.sty @@ -0,0 +1,317 @@ +% 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\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} |