Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- % RESUME DOCUMENT STYLE -- Released 23 Nov 1989
- % for LaTeX version 2.09
- % Copyright (C) 1988,1989 by Michael DeCorte
- \typeout{Document Style `res' <26 Sep 89>.}
- %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
- % res.sty
- %
- % \documentstyle{res}
- %
- % Copyright (c) 1988 by Michael DeCorte
- % 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.
- %
- % Michael DeCorte
- % P.O. Box 652
- % Potsdam NY 13676
- % mrd@sun.soe.clarkson.edu
- % mrd@clutx.bitnet
- %
- % Changes for LaTeX2e -- Venkat Krishnamurthy (Aug 7, 2001)
- %
- %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
- % You can have multiple style options the legal options ones are:
- %
- % centered the name and address are centered at the top of the
- % page (default)
- %
- % line the name is the left with a horizontal line then
- % the address to the right
- %
- % overlapped the section titles overlap the body text (default)
- %
- % margin the section titles are to the left of the body text
- %
- % 11pt use 11 point fonts instead of 10 point fonts
- %
- % 12pt use 12 point fonts instead of 10 point fonts
- %
- %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
- % Commands
- %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
- % \Resume prints the word resume but typeset nicely
- %
- % \newsectionwidth{dimen}
- % defines the amount of space the labels extend
- % into the left margin.
- % DO NOT TRY to change any of the dimensions
- % yourself. You will probably confuse the style file.
- %
- % \name{text} defines your name
- %
- % \address{text}
- % defines your address
- % this can be called twice if you have two addresses
- % use \\'s to indicate where either line breaks or
- % comas should go
- %
- % \opening this prints your name and address at that spot
- % this is not normally needed, as \begin{resume}
- % does this but is provided just in case you need
- % to do something odd
- %
- % \begin{resume} ... \end{resume}
- % all of the resume should go inside of this
- % environment
- %
- % \section{text}
- % This prints 'text' in the left hand margin.
- % Its exact placement depends on what the style
- % options has been set to. (overlapped or margin)
- % You should use \\ to start a new line. If the
- % style option is margin, the \\ is converted
- % to a space.
- % To use this in any of the list environments, put
- % the \section after the \item[] but before the
- % text.
- % Eg.
- % \begin{itemize}
- % \item\section{text}
- % text
- % \end{itemize}
- %
- % \begin{ncolumn}{n} ... \end{ncolumn}
- % creates a tabular environment with n equally
- % spaced columns. Separate columns by & and
- % end them with \\
- %
- % \begin{position} ... \end{position}
- % this is used to print a job description. There should
- % be only one job description in it. Information
- % related to the job (such as title, dates...) will
- % be printed.
- %
- % \begin{format} ... \end{format}
- % used to change the default format for the position
- % environment. Within it the recognized commands are:
- % \title{option}
- % \employer{option}
- % \location{option}
- % \dates{option}
- % \body
- % \\
- % where option is one of l,r,c standing for left, right, center.
- % The format will eventually be used to make several
- % tabular environments and you are defining the number of columns
- % and the placement of text within the columns of the tabulars.
- % Each row is terminated by a \\. Any number of options can
- % be on a line, they will each be set in their own columns.
- % Any of the options except \body may be left out.
- %
- % Eg.
- % \begin{format}
- % \title{l}\employer{r}\\
- % \dates{r}\\
- % \body\\
- % \location{l}\\
- % \end{format}
- %
- % In this example the title and employer information
- % are set in 2 columns left justified and right justified
- % respectively. Then the date is set right justified.
- % Then the body is set. Then the location is set left
- % justified.
- %
- % \employer{text}
- % \title{text}
- % \dates{text}
- % \location{text}
- % declare text for the next invocation of the position
- % environment
- %
- %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
- % Glue
- %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
- %
- % sectionskip the amount of horizontal before a section
- %
- %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
- % Dimensions
- %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
- %
- % sectionwidth the amount that the section titles go in the
- % left margin
- %
- % resumewidth the width of the total resume from the left
- % margin to the right. Don't use textwidth
- %
- %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
- % Definitions
- %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
- %
- % sectionfont the font used to print section titles
- % use \renewcommand to change it
- %
- % namefont the font used to print your name
- % use \renewcommand to change it
- %
- %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
- % THINGS TO DO
- %
- % add lm,rm options to format style to allow things to be placed
- % in the left or right margin respectivly
- %
- % add capability so that \body doesn't have to be proceeded (followed)
- % by a \\ allowing part of the description (eg. location) to be the
- % first (last) thing of the body
- %
- % clean up the list building procedures
- %
- % write docs to tell people how to use this
- \NeedsTeXFormat{LaTeX2e}[1995/12/01]
- \ProvidesClass{res}[2000/05/19 v1.4b Resume class]
- %\DeclareOption{11pt}{\renewcommand\@ptsize{1}}
- %\DeclareOption{12pt}{\renewcommand\@ptsize{2}}
- \PassOptionsToClass{11pt,12pt}{article}
- \LoadClassWithOptions{article}
- \newif\if@line
- \newif\if@margin
- \DeclareOption{line}{\@linetrue}
- \DeclareOption{centered}{\@linefalse}
- \DeclareOption{margin}{\@margintrue}
- \DeclareOption{overlapped}{\@marginfalse}
- \ExecuteOptions{overlapped,centered}
- \ProcessOptions\relax
- \nofiles % resume's don't need .aux files
- \newtoks\tabular@text % holds the current list being processed
- \newtoks\tabular@head % holds the head tabular list
- \newtoks\tabular@tail % holds the tail tabular list
- \newtoks\@ta % used by \@append
- \newtoks\undefined@token\undefined@token={}
- %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
- % prints a centered name with the address centered
- % or the two address on opposite sides of the page
- %
- \def\@printcentername{\begingroup
- % print the name centered
- \leavevmode\hbox to \textwidth{\hfil\@tablebox{\namefont\@name}\hfil}\par
- \@ifundefined{@addressone}{%
- % do nothing
- }{%
- \@ifundefined{@addresstwo}{
- % only one address
- \leavevmode\hbox to \textwidth{\hfil\@tablebox{\@addressone}\hfil}\par
- }{
- % two addresses
- \leavevmode\hbox to \textwidth{\@tablebox{\@addressone}\hfil
- \@tablebox{\@addresstwo}}\par
- }%
- }%
- \endgroup}
- %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
- % this is used to print the name and address at the top of
- % the page with a hline in between
- %
- \def\namefont{\large\bf}
- \def\@linename{\begingroup
- \def\\{, }
- {\namefont\@name}
- \vskip 2pt
- \fullline
- \vskip 2pt
- % where do you live?
- \@ifundefined{@addressone}{%
- % do nothing
- }{%
- \leavevmode\hbox to \textwidth
- {\hfill\vbox{\hbox{\@addressone}
- \hbox{\@addresstwo}
- }%
- }\par
- }
- \endgroup}
- %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
- % HEADINGS:
- % There are two types of headings:
- % 1) one with the name centered and the address centered or
- % in the left and right side if there are two address
- % 2) one where the name is in the upper left corner
- % the a line accross the paper
- % then the address all on one line in the right corner
- % the second address will be directly below the first if defined
- %
- \let\print@name\relax
- \def\ds@centered{\ifx\print@name\relax\let\print@name\@printcentername\fi}
- \def\ds@line{\ifx\print@name\relax\let\print@name\@linename\fi}
- %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
- % Use this to set the sectionwidth.
- % It adjust the width of the text as well as the hoffset
- % You probably shouldn't touch any of the size paramaters
- % unless you really understand all of this but it is not
- % hard. Either way, it can only be executed once
- %
- \def\sectionfont{\bf}
- \newdimen\sectionwidth
- \newskip\sectionskip
- \newdimen\resumewidth
- \resumewidth=6.5in
- \sectionskip=3.5ex plus 1ex minus -.2ex % values stolen from LaTeX
- \def\newsectionwidth#1{%
- \sectionwidth=#1
- \textwidth=\resumewidth
- \advance\textwidth-\sectionwidth
- \hsize=\textwidth
- \hoffset=\sectionwidth
- }
- %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
- % This is for sectiontitles that are entirely in the left margin.
- % multiline sectiontitles are permited and will be broken by
- % \TeX{} to fit into a box \verb|\sectionwidth| wide. It is advised
- % that \verb|\\| be used to break the lines by hand as \TeX{} will
- % probably not do what you want.
- %
- % When using this with {\tt tabbing} and {\tt list} (or anything
- % that is made out of {\tt list}) put the \section's inside of
- % the \verb|\begin{}| and the \verb|\item|Eg.
- % \begin{verbatim}
- % \begin{trivlist}
- % \item[]
- % \section{foo}
- % text
- % \end{trivlist}
- % \end{verbatim}
- %
- \def\boxed@sectiontitle#1{%
- % this macro may be called in a tabular. Special code must be written
- % to accomodate this. In LaTeX, a tabular is made out of hboxes.
- % TeX never goes into horizontal mode because of this; it only
- % gets into vertical mode and restricted horizontal mode. Certain
- % indenting problems must be handled because of this. They
- % are delt with at the end of this routine.
- % It is also necessary to close the hbox that was created before
- % the \section and create a new one when this macro has ended.
- % This macro therefore simulates a \kill, so that any text before
- % the \section not be printed. The proper use is therefore
- % ...
- % text\\
- % \section{foo}
- % more text\\
- % ...
- \ifx\\\@tabcr % is this in a tabular? (this *should* work but is a cludge)
- \@stopfield % the is the first part of a \kill
- \else
- \@@par % This will end the previous paragraph if needed and
- % go into vertical mode. If this was already in
- % vertical mode then the \par does nothing.
- \fi
- \begingroup
- \everypar={}%
- \def\par{\@@par}%
- \let\\=\@normalcr
- \addpenalty{\@secpenalty} % this would be a good place for a page break
- % \@secpenalty is what LaTeX uses before its
- % section's. It happens to be -300
- \addvspace{\sectionskip} % put in a bit of glue
- % The following hbox will be contributed to the page list without going
- % into horizontal mode. Therefore, any \parindent's, \parshape's, \leftskip
- % will be ignored but \hoffset's are not. The result is that the box will
- % only by \hoffset. This is what I want
- \hbox to 0pt{%
- \hss % this is an llap. In other words, this glue
- % will shrink by the width of the stuff in the vbox
- % (\sectionwidth) into the left margin and then
- % insert the contents of the vbox.
- \vtop to 0pt{% make a 0pt height paragraph, with the baseline at the
- % lined up with the baseline of the first box in the list
- \leftskip=0pt
- \hsize=\sectionwidth
- \textwidth=\sectionwidth
- \raggedright % you don't want this filled out to the right margin
- \sectionfont
- #1\vss % Go into horizontal mode; do the paragraph;
- % go into vertical mode; add some negative glue
- % to give a box of 0pt height and depth
- }%
- }%
- \addpenalty{-\@secpenalty} % this would be a bad place for a page break
- \vskip-\baselineskip % when the next box is processed, baselineskip glue
- % glue will be added (the box has no depth because of
- % the \vss; therefore, we don't have to worry about
- % \lineskiplimit). This -\baselineskip glue
- % is to undo this. \nointerlineskip doesn't
- % work because the baseline of this line would be lined
- % up with the top of the top of the next box. We
- % want the baselines lined up.
- %
- % It may have been possible to do this by forcing the
- % baseline of this box to be the top of the box but
- % then the interline skip between this box and the
- % previous box would be off as the baselines of the
- % this box (the one that being made above) and the
- % previous line would be separated by \baselineskip
- % (probably, it may be separted by the depth of the
- % previous box + \lineskip) but as the baseline of
- % this box has been moved to the top, the box's would
- % separted by to much glue. The exact amount being
- % the height of this box.
- \endgroup
- \ifx\\\@tabcr % is this in a tabular? (this *should* work but is a cludge)
- % this is the second part of the \kill; it starts the next tabbing line
- % Because this routine will never get into paragraph mode when used in
- % tabbing the \parskip that is discussed below will never be inserted.
- % Therefore it should not be negated as done below.
- \@startline
- \ignorespaces
- \else
- \vskip-\parskip % The next thing to be contributed will be a paragraph.
- % Right before being contributed though a \vskip\parskip
- % will be inserted. This is to negate it.
- %
- % I do consider this to be a bit of a cludge but
- % I can not find a way to write \unskipfutureskip
- % or a way to make TeX think that nothing has
- % been contributed to the page list.
- \fi
- }
- %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
- % This is for sectiontitles that are entirely above the section text
- %
- \def\unboxed@sectiontitle#1{%
- \ifx\\\@tabcr % see boxed@sectiontitle for explation
- \@stopfield
- \else
- \@@par
- \fi
- \begingroup
- \everypar={}%
- \def\par{\@@par}%
- \def\\{ }
- \addpenalty{\@secpenalty}
- \addvspace{\sectionskip}
- \hbox to 0pt{\hss\hbox to \sectionwidth{\sectionfont#1\hss}}
- \addpenalty{-\@secpenalty} % this would be a bad place for a page break
- \endgroup
- \ifx\\\@tabcr % see boxed@sectiontitle for explation
- \@startline
- \else
- \vskip-\parskip
- \fi
- \ignorespaces
- }
- %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
- % There are two types of section headings:
- % 1) the section heading is all on one line and directly
- % below it, is the body of the text
- % 2) the section heading is entirely in the left margin
- % (possibly taking multiple lines) with the body of
- % the text next to it
- %
- \let\@@section\relax
- \def\ds@overlapped{\ifx\@@section\relax\newsectionwidth{0.5in}\let
- \@@section\unboxed@sectiontitle\fi}
- \def\ds@margin{\ifx\@@section\relax\newsectionwidth{1.3in}\let
- \@@section\boxed@sectiontitle\fi}
- %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
- % DEFAULTS: (some of them)
- %
- % centered name
- % overlapped section titles
- %
- % format is:
- % title employer
- % location dates
- % body
- % with everything in the left of its column
- %\input article.sty
- \if@line\ds@line\else\ds@centered\fi
- \if@margin\ds@margin\else\ds@overlapped\fi
- %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
- % typeset resume all nice and pretty
- %
- \def\Resume{{R\'{e}sum\'{e}}}
- %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
- % makes a line of width \textwidth starting at -\hoffset
- %
- \def\fullline{ % hrules only listen to \hoffset
- \nointerlineskip % so I have this code
- \moveleft\hoffset\vbox{\hrule width\textwidth}
- \nointerlineskip
- }
- %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
- % create a multiline box.
- %
- \def\@tablebox#1{\begin{tabular}[t]{@{}l@{\extracolsep{\fill}}}#1\end{tabular}}
- %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
- % use this to define your name
- %
- \def\name#1{\def\@name{#1}}
- \def\@name{}
- %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
- % use this to define your address, this may be called more than once.
- %
- \let\@addressone\relax
- \let\@addresstwo\relax
- \def\address#1{
- \@ifundefined{@addressone}{\def\@addressone{#1}}{\def\@addresstwo{#1}}}
- %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
- % if you want to print your name and address is a slightly
- % different format than sugessted, then this can be used
- % to place it exactly where you want
- %
- \def\opening{\def\@opening{}
- \begingroup
- \leftskip=-\hoffset % I use leftskip to move things to the left as
- \advance\textwidth\hoffset % changing hoffset doesn't work. But this
- \hsize=\textwidth % doesn't really work as hboxes are rules
- % are unaffeted
- \let\par=\@@par
- \parindent=0pt
- \parskip=0pt
- \print@name
- \endgroup
- }
- %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
- % all of the resume goes in the resume environment
- %
- \newenvironment{resume}{\begingroup
- \@ifundefined{@opening}{\opening}{}
- }{\endgroup}
- %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
- % gives you a tabular environment with n equally spaced columns
- % \begin{ncolumn}{#} ... \end{ncolumn}
- %
- % The p option of LaTeX is broken in all but the newest verion
- % of latex.tex, this is how to fix it
- %
- \def\@endpbox{\par\egroup\hfil}
- \let\@@endpbox=\@endpbox
- \newdimen\@columnwidth % the width of each column equal to
- \def\ncolumn#1{%
- % \@columnwidth = \textwidth / #1
- \@columnwidth=\textwidth \divide\@columnwidth by #1
- \begin{tabular*}{\textwidth}[t]%
- {*{#1}{@{}p{\@columnwidth}@{\extracolsep{\fill}}}}
- }
- \def\endncolumn{\end{tabular*}}
- %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
- % \employer{text} defines employer to be text
- % \location{text} defines location to be text
- % \dates{text} defines dates to be text
- % \title{text} defines title to be text
- % \body
- %
- \def\employer#1{\def\@employer{\print@employer{#1}}}
- \def\location#1{\def\@location{\print@location{#1}}}
- \def\dates#1{\def\@dates{\print@dates{#1}}}
- \def\title#1{\def\@title{\print@title{#1}}}
- \let\l@justify\raggedright
- \let\r@justify\raggedleft
- \let\c@justify\centering
- %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
- % \@format{name}{justify}
- % will define \print@#1 to print it's one argument
- % justified according to #2 which can be
- % l = left
- % r = right
- % c = center
- %
- % eg.
- % \@format{employer}{c}
- % is the same as \def\print@employer#1{{\centering #1\par}}
- %
- \def\@format#1#2{%
- \expandafter\gdef\csname print@#1\endcsname##1{%
- {\csname#2@justify\endcsname##1\par}}
- }
- %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
- % this is used to define how the position environment should
- % formated.
- %
- % \begin{format} positioning text \end{format}
- % where positioning text may be
- % \employer{pos}
- % \location{pos}
- % \dates{pos}
- % \title{pos}
- % \body (for the body of the position environment)
- % where pos is
- % l for left
- % r for right
- % c for center
- % use \\ to break the line
- % you don't have to use all of the options.
- % on any one line, you should indicate what you want on that line
- % and where it should go within its column.
- % eg.
- % the following prints the employer in the left with the location
- % centered within that its column. It then prints the date on the
- % right. Then it prints the body of the position environment. Then
- % it prints the title centered within its column; as there is only
- % one column here it is really just centered.
- %
- % \begin{format}
- % \employer{l}\location{c}\\
- % \dates{r}\\
- % \body\\
- % \title{c}\\
- % \end{format}
- \newcounter{numberofcolumns}
- \newenvironment{format}{%
- \def\end@line@head{\append@tabular@head{tabular@text}\tabular@text={}%
- \c@numberofcolumns 0}
- \def\end@line@tail{\append@tabular@tail{tabular@text}\tabular@text={}%
- \c@numberofcolumns 0}
- \tabular@text={}
- \tabular@head={}
- \tabular@tail={}
- \c@numberofcolumns 0
- \let\\=\end@line@head
- \def\employer##1{\advance\c@numberofcolumns 1
- \@format{employer}{##1}
- \append@tabular@text{employer}}
- \def\location##1{\advance\c@numberofcolumns 1
- \@format{location}{##1}
- \append@tabular@text{location}}
- \def\dates##1{\advance\c@numberofcolumns 1
- \@format{dates}{##1}
- \append@tabular@text{dates}}
- \def\title##1{\advance\c@numberofcolumns 1
- \@format{title}{##1}
- \append@tabular@text{title}}
- \def\body{\iftoks\tabular@head\undefined@token\then
- \else
- \@append{\noexpand\\}\to\tabular@head
- \skotfi
- \let\\=\end@line@tail}}{}
- %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
- %taken from page 378 of TeXbook but freely hacked
- %
- % appends the expansion of #1 to the token list #2
- \def\@append#1\to#2{%
- \@ta=\expandafter{#1}%
- \xdef\@append@temp{\the#2\the\@ta}
- \global#2=\expandafter{\@append@temp}%
- }
- %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
- % CHAA006%vaxb.rhbnc.ac.uk@NSS.Cs.Ucl.AC.UK
- % texhax.88.078
- % is used to see if two token lists are equal
- % there must be a better way
- %
- \let \then = \empty
- \def \iftoks #1#2\then #3\else #4\skotfi{
- \edef \1{\the #1}
- \edef \2{\the #2}
- \ifx \1\2\then #3\else #4\fi}
- %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
- % \append@tabular@text{command}
- %
- % appends command to the end of \tabular@text.
- % NOTE: command MUST be a command but without the \
- % Eg. \append@tabular@text{relax}
- %
- % used to define \tabular@text for the tabular environment
- % used by append@tabular@head and append@tabular@tail
- %
- \def\append@tabular@text#1{%
- \iftoks\tabular@text\undefined@token\then
- \global\tabular@text=\expandafter{\csname @#1\endcsname}
- \else
- \@append{&}\to\tabular@text
- \@append{\csname @#1\endcsname}\to\tabular@text
- \skotfi
- }
- %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
- % append@tabular@head
- %
- % appends command to the end of \tabular@text@head
- % NOTE: command MUST be a command but without the \
- % Eg. \append@tabular@head{relax}
- %
- % used to define \tabular@head for the tabular environment
- % used by the position environment
- %
- \def\append@tabular@head#1{%
- \ifnum\the\c@numberofcolumns=0\relax
- \else
- \iftoks\tabular@head\undefined@token\then
- \relax
- \else
- \@append{\noexpand\\}\to\tabular@head
- \@append{\noexpand\penalty-\@secpenalty}\to\tabular@head
- \skotfi
- \@append{\noexpand\begin{ncolumn}}\to\tabular@head
- \@append{\expandafter{\the\c@numberofcolumns}}\to\tabular@head
- \@append{\the\csname#1\endcsname}\to\tabular@head
- \@append{\noexpand\end{ncolumn}}\to\tabular@head
- \fi
- }
- %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
- % append@tabular@tail
- %
- % appends command to the end of \tabular@text@htail
- % NOTE: command MUST be a command but without the \
- % Eg. \append@tabular@tail{relax}
- %
- % used to define \tabular@tail for the tabular environment
- % used by the position environment
- %
- \def\append@tabular@tail#1{%
- \ifnum\the\c@numberofcolumns=0\relax
- \else
- \iftoks\tabular@tail\undefined@token\then
- \else
- \@append{\noexpand\\}\to\tabular@tail
- \@append{\noexpand\penalty-\@secpenalty}\to\tabular@tail
- \skotfi
- \@append{\noexpand\begin{ncolumn}}\to\tabular@tail
- \@append{\expandafter{\the\c@numberofcolumns}}\to\tabular@tail
- \@append{\the\csname#1\endcsname}\to\tabular@tail
- \@append{\noexpand\end{ncolumn}}\to\tabular@tail
- \fi
- }
- %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
- % put the actual job descriptions here
- % \begin{postion} ... \end{position}
- % in the ... describe the position.
- % don't put the \dates \location etc in here. define them before hand
- \newenvironment{position}%
- {%
- \begingroup
- \par
- \the\tabular@head
- % \addpenalty{-\@secpenalty}% bad place for a page break
- \penalty -\@secpenalty % bad place for a page break
- \penalty 10000
- \ignorespaces
- }{%
- \the\tabular@tail
- % \addpenalty{\@secpenalty}% good place for a page break
- \penalty \@secpenalty % good place for a page break
- \endgroup
- }
- %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
- % DEFAULTS: (the rest of them)
- %
- % centered name
- % overlapped section titles
- %
- % format is:
- % title employer
- % location dates
- % body
- % with everything in the left of its column
- \@secpenalty = -500
- \topmargin 0pt
- \headheight 0pt
- \headsep 0pt
- \textheight 9in
- \parindent 0pt
- \topmargin 0in
- \oddsidemargin 0pt
- \evensidemargin 0pt
- \marginparwidth 0pt
- \parindent 0pt
- \parskip \baselineskip
- \setcounter{secnumdepth}{0}
- \def\@listI{\leftmargin\leftmargini
- \topsep 0pt
- \parskip 0pt
- \partopsep 2pt plus 2pt
- \parsep 2pt plus 2pt
- \itemsep \parsep}
- \pagestyle{empty} % don't want page numbers
- \begin{format}
- \title{l}\employer{r}\\
- \location{l}\dates{r}\\
- \body\\
- \end{format}
- \let\section\@@section
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement