%%% RESUME Library Created by KMP@MC -- Feb/Mar 1980 %%% Converted for TEX from TEX80 by PARKER@OZ and MARC@OZ -- June 1985 %%% Extended with NEWSECTION by MARKUS@OZ and PARKER@OZ -- Jan 1986 %%% %%% Please notify PARKER@OZ of any changes to this file. %%% %%% This is a library for creating cookbook resumes. Everything is here. %%% All you add are the lies about yourself. %%% %%% For a sample usage, see the file TEXLOCAL:RESUME-SAMPLE.TEX %%% See the file TEXLOCAL:RESUME.CONVERSION for information on %%% converting your old TeX resume to run under the new system. %%% %%% Note: Currently you must run TeX using this package by doing: %%% @TEXTR %%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%% If things go wrong using this file, here are some common problems. %%% If all else fails, send me (PARKER@OZ) mail and maybe we can fix it. %%% %%% Debugging help: %%% ******THIS IS CRITICAL******* %%% -- look at arglist, esp. for twocol, split, and newsection. If there is a %%% space between the args (such as #1 and #2), then there must be %%% one in the source. %%% ******END CRITICAL SECTION**** %%% -- if you get black vertical bars on your output, that means that %%% a line was overfull. Often the reason for this is the %%% width of the page (pagewidth) is not big enough to contain %%% both the section label and the value you specified for %%% textwidth. Adjust these numbers and all should work. %%% Be sure that if you have a big label name, you use twoline %%% to split it to two lines. %%% -- if you get a vertical overfull box problem and you have a one-line %%% objective, you will need to put \vskip .125in %%% in the format section at the end of your resume just after the %%% line \objective and just before the next one. You may still %%% get a warning from TeX about this box, but you will not have %%% any crowding on your output. %%% A possibly easier way of doing this is to make your objective %%% look like this: %%% \defsection{\objective}{\twoline {Employment}{Objective}} %%% {\text {This is my short objective.} %%% \text { }} %%% This blank text box will fake TeX into giving you the space you %%% need AND you won't get any warnings. %%% -- If you get font problems, try using the defaults and running %%% TeX using TEXTR, which uses the Times Roman font family. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%% System implementor's message. \message{Please read the file TEXLOCAL:RESUME.TEX if you have problems.} \message{Note: Currently there are bugs w.r.t. output to QMS.} %%% Define system parameters \rm % Roman character set default type face \hsize=36pc % Page width = 36 picas ( 6 in ) \vsize=45pc % Page height = 45 picas ( 7-1/2 in ) \nopagenumbers % Flush page nos. \parindent=0pt % Flush indenting of paragraphs. % Can be turned on locally if psyched to use it. %% Used in old TeX, but not needed here. %% \output{\page} % Just output page with no special headings, etc %% For now, at least as best I can tell from the point macros in TEXTR, %% small capitals aren't going to work, so just make them do something safe. \def\sc #1{\rm #1} %%% Define macros used internally \newdimen\rwid %% Width of the right box (text) is 28pc ( 4-2/3 in ) \rwid=28pc %%% These commands may be used to enter a given typeface. %%% %%% \roman{... stuff to put in roman ...} %%% \bold{... stuff to put in bold ...} %%% \italic{... stuff to put in italic ...} \def\roman#1{{\rm #1}} \def\bold#1{{\bf #1}} \def\italic#1{{\it #1}} %%% These macros are provided for users who wish to change the various %%% width and height parameters used by this package. %%% %%% \textwidth size %%% \pagewidth size %%% \pagelength size \def\textwidth #1{\rwid=#1} \def\pagewidth #1{\hsize#1} \def\pagelength #1{\vsize#1} %%% Added by PARKER 6/85 to facilitate columnarizing of courses. %%% %%% Usage: \twocol{Foo Chemistry}{Bar Mathematics} %%% \def\twocol#1#2{\hbox to \rwid{\ourtextfont\hbox to 13.5pc{#1\hfill} \hfill\hbox to 13.5pc{#2\hfill}}} %%% Commands for setting fonts. 'fontcmd' refers to a normal TeX font %%% affecting command such as \bf or \tenpoint. %%% %%% The font of text defined with \defname %%% \defnamefont{fontcmd} sets the font to be used for your name %%% \namefont changes to that font %%% %%% For varying the font of text in a \defsection %%% \defheaderfont{fontcmd} sets the font to be used for section headers %%% \headerfont changes to that font %%% %%% For varying the font of text in a \defaddress %%% \defaddressfont{fontcmd} sets the font to be used in the address %%% \addressfont changes to that font %%% %%% For varying the font of text in a \split %%% \deflsplitfont{fontcmd} sets the font to be used on the left of a split %%% \rsplitfont changes to that font %%% \defrsplitfont{fontcmd} sets the font to be used on the right of a split %%% \lsplitfont changes to that font %%% %%% For varying the font of text in a \text %%% \defourtextfont{fontcmd} is the font to be used in the main text area %%% \ourtextfont changes to that font \def\namefont{\twelvepoint\bf} % used to be HV14B \def\defnamefont#1{\def\namefont{#1}} \def\headerfont{\twelvepoint\bf} % used to be HV12B \def\defheaderfont#1{\def\headerfont{#1}} \def\labelfont{\tenpoint\bf} \def\deflabelfont#1{\def\labelfont{#1}} \def\lsplitfont{\tenpoint\bf} \def\deflsplitfont#1{\def\lsplitfont{#1}} \def\rsplitfont{\ninepoint\rm} \def\defrsplitfont#1{\def\rsplitfont{#1}} \def\ourtextfont{\tenpoint\rm} % was 9pt, but was losing...RP 6/30/85 17:58:20 \def\deftextfont#1{\def\ourtextfont{#1}} \def\addressfont{\ninepoint\rm} \def\defaddressfont#1{\def\addressfont{#1}} %%% \skip -- inserts a gap between lines %%% \space -- inserts whitespace between horizontal text blocks \def\skip{\par\vskip 6pt} \def\space{\hfill} %%% \defname{yournamegoeshere} %%% %%% You must declare the name to go at the top of the form using this %%% macro. \def\defname#1{\gdef\name{\hbox to \hsize{\namefont\hfill #1\hfill}\par \vskip 8pt}} %%% \defaddress{\macroname}{addressname}{...specs...} %%% specs may include %%% \street{...street address...} %% Required %%% \apt{apartment or room info} %% Optional %%% \city{cityname, statename} %% Required %%% \zip{02139} %% Optional %%% \phone{(617) 253-6765} %% Optional %%% %%% This defines an address box. They must appear in the specified order. %%% If required specs are not given, results may be unpredictable. %%% Any number of addressses may be defined---if you think they'll fit. %%% The format for how they get laid out is specified in the \format %%% command farther down. \def\defaddress#1#2#3{ \gdef#1{{\def\stext{} \def\ctext{} \def\ztext{} \def\atext{} \def\qtext{\hbox{ }} \def\ptext{\hbox{ }} \def\street####1{\def\stext{####1}} \def\apt####1{\def\atext{\hbox{####1} \def\qtext{}}} \def\city####1{\def\ctext{####1}} \def\zip####1{\def\ztext{####1}} \def\phone####1{\def\ptext{####1}} #3 \addressfont\vbox{\hbox{\bf #2 Address} %%% used to have $\!$ %% %% These next two lines used to be in the %% other order [street then apt] but, as %% pointed out by SR.WILSON@SPEECH, the %% US Postal Service recommend an ordering %% of information based on specificness. %% If this change upsets you, simply %% copy this \def into the beginning %% of your resume file (after the \input) %% and reverse them there. --RP 4/86 \atext \hbox{\stext} \hbox{\ctext\quad \ztext} \hbox{\ptext} \qtext}}}} %%% \defsection{macroname}{sectionname} %%% {main text of section} %%% %%% This macro allows you to define a macro named macroname which can be %%% called later and which will produce a box which looks like %%% %%% sectionname ... text ........ %%% ... more text ... %%% ... etc ......... %%% %%% The text of section must be constructed in turn by the use of either %%% of two special operators. %%% %%% \text{...} means that the text in the box is to be set as a %%% normal paragraph %%% %%% \split{...} {...} means that the two boxes are to be set on a single %%% line separated by whitespace. The first box is in %%% 9pt bold by default, the second is 8pt roman. %%% %%% A sample section definition looks like: %%% %%% \defsection{\education} {Education} %%% {\split{Massachusetts Institute of Technology} {Cambridge, MA} %%% \text {Got a Bachelor of Science in Humanities. Didn't learn much.} %%% \space %%% \split{Foo High School} {NoWhere, USA} %%% \text {I didn't really graduate from high school. I just kinda %%% gave up after a while and took up kollidge.}} %%% \def\defsection#1#2 #3 {\gdef#1{\headerfont \setbox1=\hbox{\hsize \rwid\vbox{#3\par\vskip 10pt}} \hbox to \hsize{\vbox to 1\ht1{\hbox{#2}\vfil} \hfil \box1}}} %%% NEWSECTION -- allows you to produce output with year labels, for instance, %%% to the right of each of your jobs. An alternative to putting the %%% year information inside the job description. %%% %%% This NEWSECTION by Markus Toth (MARKUS@OZ). %%% %%% Example of what the source code should look like: %%% %%%\defnewsection{\work}{Experience} %%% {\skip %%% \seclayer{\twoline {1985 to} {Present}} %%% {\split{Company A, Inc.} {Nowhere, MA} %%% \text {As director of food consumption....}} %%% \skip %%% \seclayer{\twoline {1982 to} {1985}} %%% {\split{Company B, Ltd.} {Somewhere, MA} %%% \text {Associate Research Scientist. ....}} %%% \vskip 0pt}} %% THIS MUST BE HERE %%% %%% And here is the output produced by that: %%% %%% Experience %%% %%% 1985 to Company A, Inc Nowhere, MA %%% Present As director of food consumption... %%% %%% 1982 to Company B, Ltd. Somewhere, MA %%% 1985 Associate Research Scientist. .... %%% %%% Note that the \vskip 0pt at the end of \defnewsection is CRITICAL. %%% Yes, this is a bug, and no we aren't going to fix it now. %%% And, yes, you are welcome to fix it iff you know how. \def\defnewsection#1#2 #3 {\gdef#1{\headerfont \hbox to \hsize{#2 \hfil} #3}} %%% SECLAYER -- each layer (i.e. each job) needs to be in one of these. %%% %%% Note that it uses LABELFONT for the labels. You can define labelfont %%% with \deflabelfont{\tenpoint\bf} or whatever. \def\seclayer#1 #2 {\labelfont \setbox1=\hbox{\hsize \rwid\vbox{#2\par\vskip 10pt}} \hbox to \hsize{\vbox to 1\ht1{\hbox{#1}\vfil} \hfil \box1}} %%% \oneline{text} - a no-op %%% \twoline{text}{text} - creates a two-line box %%% \threeline{text}{text}{text} - creates a three-line box %%% %%% These are for trivially creating one, two, or three line boxes for the %%% label field in the main body. \def\oneline#1{#1} \def\twoline#1#2{\vbox{\hbox{#1}\hbox{#2}}} \def\threeline#1#2#3{\vbox{\hbox{#1}\hbox{#2}\hbox{#3}}} %%% \format{addresslist} %%% {bodylist} %%% %%% This is what defines how things get laid out. Just list out your %%% address names (separate them with a \space) and your section names %%% in the order you want them to appear. eg, %%% %%% \format{\home\space\work\space\permanent} %%% {\objective\skip\education\skip\background} %%% %%% This will define a \copy and that will make it get output. You may %%% change fonts, etc, between doing \copy's and the changes will affect %%% subsequent \copy commands. You'll need to supply your own \bye at %%% the end of the file. \def\format #1 #2{ \count0=0 \gdef\copy{\global\advance\count0 by 1 {\def\split####1 ####2{\hbox to\rwid{\lsplitfont ####1\hfill\rsplitfont ####2}} \def\text####1{\hbox {\hsize \rwid \vbox{\ourtextfont ####1}}} \hbox{$ $}\par\vfill\name\vfill\hbox to \hsize{#1}\par\vfill #2\par\vfill\eject}}} %% \def\format #1 #2{ %% \setcount0 0 %% \gdef\copy{\advcount0 %% {\def\split####1 ####2{\hbox to \rwid{\lsplitfont ####1\hfill\rsplitfont ####2}} %% \def\text####1{\hbox par \rwid{\textfont ####1}} %% \hbox{$ $}\par\vfill\name\vfill\hbox to size {#1}\par\vfill %% #2\par\vfill\eject}}} % Local Modes: % MM AutoTeX Mode:1,m.mTex Mode"e m(m.m Load Library)TeX'w % Mode:AutoTeX % Comment Column:40 % Comment Start:% % Atom Word Mode:0 % Auto Fill Mode:0 % End: