Browse code
Update on Overleaf.
Edward Langley authored on 29/09/2015 18:00:07
Showing 42 changed files
Showing 42 changed files
- Alegreya-Black.otf
- Alegreya-BlackItalic.otf
- Alegreya-Bold.otf
- Alegreya-BoldItalic.otf
- Alegreya-Italic.otf
- Alegreya-Regular.otf
- AlegreyaSC-Black.otf
- AlegreyaSC-BlackItalic.otf
- AlegreyaSC-Bold.otf
- AlegreyaSC-BoldItalic.otf
- AlegreyaSC-Italic.otf
- AlegreyaSC-Regular.otf
- AlegreyaSans-Black.otf
- AlegreyaSans-BlackItalic.otf
- AlegreyaSans-Bold.otf
- AlegreyaSans-BoldItalic.otf
- AlegreyaSans-ExtraBold.otf
- AlegreyaSans-ExtraBoldItalic.otf
- AlegreyaSans-Italic.otf
- AlegreyaSans-Light.otf
- AlegreyaSans-LightItalic.otf
- AlegreyaSans-Medium.otf
- AlegreyaSans-MediumItalic.otf
- AlegreyaSans-Regular.otf
- AlegreyaSans-Thin.otf
- AlegreyaSans-ThinItalic.otf
- AlegreyaSansSC-Black.otf
- AlegreyaSansSC-BlackItalic.otf
- AlegreyaSansSC-Bold.otf
- AlegreyaSansSC-BoldItalic.otf
- AlegreyaSansSC-ExtraBold.otf
- AlegreyaSansSC-ExtraBoldItalic.otf
- AlegreyaSansSC-Italic.otf
- AlegreyaSansSC-Light.otf
- AlegreyaSansSC-LightItalic.otf
- AlegreyaSansSC-Medium.otf
- AlegreyaSansSC-MediumItalic.otf
- AlegreyaSansSC-Regular.otf
- AlegreyaSansSC-Thin.otf
- AlegreyaSansSC-ThinItalic.otf
- cv_2.tex
- res.cls
81 | 81 |
new file mode 100644 |
... | ... |
@@ -0,0 +1,149 @@ |
1 |
+\documentclass[margin]{res} |
|
2 |
+ |
|
3 |
+% Default font is the helvetica postscript font |
|
4 |
+\usepackage{polyglossia} |
|
5 |
+\usepackage{fontspec} |
|
6 |
+\usepackage{url} |
|
7 |
+\usepackage{hyperref} |
|
8 |
+ |
|
9 |
+\setdefaultlanguage{english} |
|
10 |
+ |
|
11 |
+\setmainfont{Alegreya-Regular.otf}[ |
|
12 |
+ BoldFont=Alegreya-Bold.otf , |
|
13 |
+ ItalicFont=Alegreya-Italic.otf , |
|
14 |
+ BoldItalicFont=Alegreya-BoldItalic.otf, |
|
15 |
+ SmallCapsFont=AlegreyaSC-Regular.otf |
|
16 |
+] |
|
17 |
+ |
|
18 |
+\setsansfont{AlegreyaSans-Regular.otf}[ |
|
19 |
+ BoldFont=AlegreyaSans-Bold.otf , |
|
20 |
+ ItalicFont=AlegreyaSans-Italic.otf , |
|
21 |
+ BoldItalicFont=AlegreyaSans-BoldItalic.otf, |
|
22 |
+ SmallCapsFont=AlegreyaSansSC-Regular.otf |
|
23 |
+] |
|
24 |
+ |
|
25 |
+% Increase text height |
|
26 |
+\textheight=700pt |
|
27 |
+ |
|
28 |
+\begin{document} |
|
29 |
+ |
|
30 |
+%------------------------------------------------------------------------------- |
|
31 |
+% NAME AND ADDRESS SECTION |
|
32 |
+%------------------------------------------------------------------------------- |
|
33 |
+\name{Edward Langley} |
|
34 |
+ |
|
35 |
+\address{\textbf{Email:} edward@elangley.org \\ \textbf{Phone:} 832--585--2660} |
|
36 |
+\address{3900 Hamilton St. H204 \\ Hyattsville, MD 20781} |
|
37 |
+ |
|
38 |
+\begin{resume} |
|
39 |
+ |
|
40 |
+%------------------------------------------------------------------------------- |
|
41 |
+% PROJECTS SECTION |
|
42 |
+%------------------------------------------------------------------------------- |
|
43 |
+\section{PROFESSIONAL SKILLS} |
|
44 |
+ |
|
45 |
+\par |
|
46 |
+Experience using a wide variety of programming languages to design and implement applications. |
|
47 |
+ |
|
48 |
+\par |
|
49 |
+A solid grasp of web technologies, both frontend and backend. |
|
50 |
+ |
|
51 |
+\par |
|
52 |
+Comfort using and administering a variety of Linux distributions as well as non-Linux Unices. |
|
53 |
+ |
|
54 |
+\par |
|
55 |
+Experience configuring and maintaining networks, including remote access technologies such as OpenVPN, OpenSSH and VNC. |
|
56 |
+ |
|
57 |
+\par |
|
58 |
+Experience configuring and maintaining web servers, including both NGINX and Apache as well as various FastCGI |
|
59 |
+services for hosting web applications. |
|
60 |
+ |
|
61 |
+\par |
|
62 |
+Experience configuring and maintaining email servers and spam filtering. |
|
63 |
+ |
|
64 |
+%------------------------------------------------------------------------------- |
|
65 |
+ |
|
66 |
+%------------------------------------------------------------------------------- |
|
67 |
+% COMPUTER SKILLS SECTION |
|
68 |
+%------------------------------------------------------------------------------- |
|
69 |
+\section{COMPUTER SKILLS} |
|
70 |
+ |
|
71 |
+\par Python, JavaScript, PHP, C, C++, Java, SQL, Ruby, Haskell, OCaml, Common Lisp, \LaTeX. |
|
72 |
+ |
|
73 |
+\par HTML, CSS (Compass, Sass, Bootstrap, Susy grids), AngularJS, jQuery, Backbone.js, Knockout.js, Drupal, Symfony2, Apache, Nginx. |
|
74 |
+ |
|
75 |
+\par Git, Mercurial, Subversion, CVS |
|
76 |
+ |
|
77 |
+\par MySQL, PostgreSQL, Interbase/Firebird, BerkeleyDB, MongoDB, Redis |
|
78 |
+ |
|
79 |
+\par Postfix, Sendmail, Dovecot, OpenDKIM, DSPAM, Roundcube |
|
80 |
+ |
|
81 |
+\par Vi/Vim, VirtualBox, OpenVPN, NFS, Samba |
|
82 |
+ |
|
83 |
+\par Unix, Linux, FreeBSD, Sol\-aris (SmartOS), Mac OSX, AWS (EC2, S3, RDS, Route53). |
|
84 |
+ |
|
85 |
+%------------------------------------------------------------------------------- |
|
86 |
+ |
|
87 |
+%------------------------------------------------------------------------------- |
|
88 |
+% EXPERIENCE SECTION |
|
89 |
+%------------------------------------------------------------------------------- |
|
90 |
+% Modify the format of each position |
|
91 |
+\begin{format} |
|
92 |
+\title{l}\employer{r}\\ |
|
93 |
+\dates{l}\location{r}\\ |
|
94 |
+\body\\ |
|
95 |
+\end{format} |
|
96 |
+%------------------------------------------------------------------------------- |
|
97 |
+ |
|
98 |
+\section{EXPERIENCE} |
|
99 |
+\employer{Independent Consultant} |
|
100 |
+\location{Hyattsville, MD} |
|
101 |
+\dates{2014--present} |
|
102 |
+\title{Programmer} |
|
103 |
+\begin{position} |
|
104 |
+Produced a theme for an e-commerce site. Designed and Implemented a deployment strategy for Amazon's |
|
105 |
+cloud services (EC2, RDS, S3). Implemented and themed a new e-commerce platform. |
|
106 |
+\end{position} |
|
107 |
+ |
|
108 |
+\employer{NCMI, Baylor College of Medicine} |
|
109 |
+\location{Houston, TX} |
|
110 |
+\dates{2007--2012} |
|
111 |
+\title{Python Programmer} |
|
112 |
+\begin{position} |
|
113 |
+Built a web framework for EMEN2, a document-oriented database for recording scientific experiments. |
|
114 |
+Improved EMEN2's reliability and performance by debugging and fixing memory leaks and taking advantage of |
|
115 |
+Berkeley DB's transactional storage. Implemented the JSON-RPC 2.0 protocol |
|
116 |
+(\url{https://www.github.com/NCMI/jsonrpc}). Prototyped OpenID authentication. Managed migration to |
|
117 |
+EMEN2. |
|
118 |
+\end{position} |
|
119 |
+ |
|
120 |
+\employer{Desktop Assistance, L.P.} |
|
121 |
+\location{Houston, TX} |
|
122 |
+\dates{2004} |
|
123 |
+\title{IT Assistant} |
|
124 |
+\begin{position} |
|
125 |
+Installed and configured Linux desktops and servers. Built a Linux distribution |
|
126 |
+based on Fedora Cores 1 and 2 for internal use. Researched, installed and configured |
|
127 |
+a variety of server applications including: databases, Apache, Squid, Samba, NFS. |
|
128 |
+\end{position} |
|
129 |
+%------------------------------------------------------------------------------- |
|
130 |
+\section{PUBLICATIONS} |
|
131 |
+ |
|
132 |
+\par |
|
133 |
+Rees, I., Langley, E., Chiu, W., \& Ludtke, S.J. (2013). \em{EMEN2: an object oriented database and electronic lab notebook.} Microsc Microanal 19, 1-10 |
|
134 |
+ |
|
135 |
+ |
|
136 |
+%------------------------------------------------------------------------------- |
|
137 |
+% EDUCATION SECTION |
|
138 |
+%------------------------------------------------------------------------------- |
|
139 |
+\section{EDUCATION} |
|
140 |
+\textbf{Thomas Aquinas College}, Santa Paula, CA\\ |
|
141 |
+{\sl Bachelor of Arts}, Liberal Arts, 2012\hfill GPA: 3.96 |
|
142 |
+\\ |
|
143 |
+\textbf{The Catholic University of America}, Washington, DC\\ |
|
144 |
+{\sl Ph.D Student}, Philosophy, 2012--present\hfill GPA: 3.84 |
|
145 |
+%------------------------------------------------------------------------------- |
|
146 |
+ |
|
147 |
+ |
|
148 |
+\end{resume} |
|
149 |
+\end{document} |
|
0 | 150 |
\ No newline at end of file |
1 | 151 |
new file mode 100644 |
... | ... |
@@ -0,0 +1,805 @@ |
1 |
+% RESUME DOCUMENT STYLE -- Released 23 Nov 1989 |
|
2 |
+% for LaTeX version 2.09 |
|
3 |
+% Copyright (C) 1988,1989 by Michael DeCorte |
|
4 |
+ |
|
5 |
+\typeout{Document Style `res' <26 Sep 89>.} |
|
6 |
+ |
|
7 |
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
|
8 |
+% res.sty |
|
9 |
+% |
|
10 |
+% \documentstyle{res} |
|
11 |
+% |
|
12 |
+% Copyright (c) 1988 by Michael DeCorte |
|
13 |
+% Permission to copy all or part of this work is granted, provided that the |
|
14 |
+% copies are not made or distributed for resale, and that the copyright notice |
|
15 |
+% and this notice are retained. |
|
16 |
+% |
|
17 |
+% THIS WORK IS PROVIDED ON AN "AS IS" BASIS. THE AUTHOR PROVIDES NO WARRANTY |
|
18 |
+% WHATSOEVER, EITHER EXPRESS OR IMPLIED, REGARDING THE WORK, INCLUDING |
|
19 |
+% WARRANTIES WITH RESPECT TO ITS MERCHANTABILITY OR FITNESS FOR ANY PARTICULAR |
|
20 |
+% PURPOSE. |
|
21 |
+% |
|
22 |
+% If you make any improvements, I'd like to hear about them. |
|
23 |
+% |
|
24 |
+% Michael DeCorte |
|
25 |
+% P.O. Box 652 |
|
26 |
+% Potsdam NY 13676 |
|
27 |
+% mrd@sun.soe.clarkson.edu |
|
28 |
+% mrd@clutx.bitnet |
|
29 |
+% |
|
30 |
+% Changes for LaTeX2e -- Venkat Krishnamurthy (Aug 7, 2001) |
|
31 |
+% |
|
32 |
+% Changes for general improvement -- Daniel Marks (Feb 28, 2015) |
|
33 |
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
|
34 |
+ |
|
35 |
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
|
36 |
+% You can have multiple style options the legal options ones are: |
|
37 |
+% |
|
38 |
+% centered: the name and address are centered at the top of the page |
|
39 |
+% (default). |
|
40 |
+% |
|
41 |
+% line: the name is the left with a horizontal line then the address to |
|
42 |
+% the right. |
|
43 |
+% |
|
44 |
+% overlapped: the section titles overlap the body text (default). |
|
45 |
+% |
|
46 |
+% margin: the section titles are to the left of the body text. |
|
47 |
+% |
|
48 |
+% 11pt: use 11 point fonts instead of 10 point fonts. |
|
49 |
+% |
|
50 |
+% 12pt: use 12 point fonts instead of 10 point fonts. |
|
51 |
+% |
|
52 |
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
|
53 |
+ |
|
54 |
+% Commands |
|
55 |
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
|
56 |
+% \Resume prints the word resume but typeset nicely |
|
57 |
+% |
|
58 |
+% \newsectionwidth{dimen} |
|
59 |
+% defines the amount of space the labels extend into the left margin. DO |
|
60 |
+% NOT TRY to change any of the dimensions yourself. You will probably |
|
61 |
+% confuse the style file. |
|
62 |
+% |
|
63 |
+% \name{text} defines your name |
|
64 |
+% |
|
65 |
+% \address{text} |
|
66 |
+% defines your address |
|
67 |
+% this can be called twice if you have two addresses use \\'s to indicate |
|
68 |
+% where either line breaks or comas should go |
|
69 |
+% |
|
70 |
+% \opening |
|
71 |
+% this prints your name and address at that spot this is not normally |
|
72 |
+% needed, as \begin{resume} does this but is provided just in case you |
|
73 |
+% need to do something odd |
|
74 |
+% |
|
75 |
+% \begin{resume} ... \end{resume} |
|
76 |
+% all of the resume should go inside of this environment |
|
77 |
+% |
|
78 |
+% \section{text} |
|
79 |
+% This prints 'text' in the left hand margin. Its exact placement depends |
|
80 |
+% on what the style options has been set to. (overlapped or margin) You |
|
81 |
+% should use \\ to start a new line. If the style option is margin, the \\ |
|
82 |
+% is converted to a space. To use this in any of the list environments, |
|
83 |
+% put the \section after the \item[] but before the text. |
|
84 |
+% |
|
85 |
+% Eg. |
|
86 |
+% \begin{itemize} |
|
87 |
+% \item\section{text} |
|
88 |
+% text |
|
89 |
+% \end{itemize} |
|
90 |
+% |
|
91 |
+% \begin{ncolumn}{n} ... \end{ncolumn} |
|
92 |
+% creates a tabular environment with n equally spaced columns. Separate |
|
93 |
+% columns by & and end them with \\ |
|
94 |
+% |
|
95 |
+% \begin{position} ... \end{position} |
|
96 |
+% this is used to print a job description. There should be only one job |
|
97 |
+% description in it. Information related to the job (such as title, |
|
98 |
+% dates...) will be printed. |
|
99 |
+% |
|
100 |
+% \begin{format} ... \end{format} |
|
101 |
+% used to change the default format for the position environment. Within |
|
102 |
+% it the recognized commands are: |
|
103 |
+% \title{option} |
|
104 |
+% \employer{option} |
|
105 |
+% \location{option} |
|
106 |
+% \dates{option} |
|
107 |
+% \body |
|
108 |
+% \\ |
|
109 |
+% |
|
110 |
+% where option is one of l,r,c standing for left, right, center. The |
|
111 |
+% format will eventually be used to make several tabular environments and |
|
112 |
+% you are defining the number of columns and the placement of text within |
|
113 |
+% the columns of the tabulars. Each row is terminated by a \\. Any number |
|
114 |
+% of options can be on a line, they will each be set in their own |
|
115 |
+% columns. Any of the options except \body may be left out. |
|
116 |
+% |
|
117 |
+% Eg. |
|
118 |
+% \begin{format} |
|
119 |
+% \title{l}\employer{r}\\ |
|
120 |
+% \dates{r}\\ |
|
121 |
+% \body\\ |
|
122 |
+% \location{l}\\ |
|
123 |
+% \end{format} |
|
124 |
+% |
|
125 |
+% In this example the title and employer information are set in 2 columns |
|
126 |
+% left justified and right justified respectively. Then the date is set |
|
127 |
+% right justified. Then the body is set. Then the location is set left |
|
128 |
+% justified. |
|
129 |
+% |
|
130 |
+% \employer{text} |
|
131 |
+% \title{text} |
|
132 |
+% \dates{text} |
|
133 |
+% \location{text} |
|
134 |
+% |
|
135 |
+% declare text for the next invocation of the position environment |
|
136 |
+% |
|
137 |
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
|
138 |
+ |
|
139 |
+% Glue |
|
140 |
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
|
141 |
+% |
|
142 |
+% sectionskip the amount of horizontal before a section |
|
143 |
+% |
|
144 |
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
|
145 |
+ |
|
146 |
+% Dimensions |
|
147 |
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
|
148 |
+% |
|
149 |
+% sectionwidth the amount that the section titles go in the |
|
150 |
+% left margin |
|
151 |
+% |
|
152 |
+% resumewidth the width of the total resume from the left |
|
153 |
+% margin to the right. Don't use textwidth |
|
154 |
+% |
|
155 |
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
|
156 |
+ |
|
157 |
+% Definitions |
|
158 |
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
|
159 |
+% |
|
160 |
+% sectionfont the font used to print section titles |
|
161 |
+% use \renewcommand to change it |
|
162 |
+% |
|
163 |
+% namefont the font used to print your name |
|
164 |
+% use \renewcommand to change it |
|
165 |
+% |
|
166 |
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
|
167 |
+ |
|
168 |
+% THINGS TO DO |
|
169 |
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
|
170 |
+% add lm,rm options to format style to allow things to be placed in the left or |
|
171 |
+% right margin respectivly |
|
172 |
+% |
|
173 |
+% add capability so that \body doesn't have to be proceeded (followed) by a \\ |
|
174 |
+% allowing part of the description (eg. location) to be the first (last) thing |
|
175 |
+% of the body |
|
176 |
+% |
|
177 |
+% clean up the list building procedures |
|
178 |
+% |
|
179 |
+% write docs to tell people how to use this |
|
180 |
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
|
181 |
+ |
|
182 |
+\NeedsTeXFormat{LaTeX2e}[1995/12/01] |
|
183 |
+\ProvidesClass{res}[2000/05/19 v1.4b Resume class] |
|
184 |
+ |
|
185 |
+%\DeclareOption{11pt}{\renewcommand\@ptsize{1}} |
|
186 |
+%\DeclareOption{12pt}{\renewcommand\@ptsize{2}} |
|
187 |
+ |
|
188 |
+\PassOptionsToClass{11pt,12pt}{article} |
|
189 |
+\LoadClassWithOptions{article} |
|
190 |
+ |
|
191 |
+\newif\if@line |
|
192 |
+\newif\if@margin |
|
193 |
+ |
|
194 |
+\DeclareOption{line}{\@linetrue} |
|
195 |
+\DeclareOption{centered}{\@linefalse} |
|
196 |
+ |
|
197 |
+\DeclareOption{margin}{\@margintrue} |
|
198 |
+\DeclareOption{overlapped}{\@marginfalse} |
|
199 |
+ |
|
200 |
+\ExecuteOptions{overlapped,centered} |
|
201 |
+\ProcessOptions\relax |
|
202 |
+ |
|
203 |
+\nofiles % resume's don't need .aux files |
|
204 |
+ |
|
205 |
+ |
|
206 |
+\newtoks\tabular@text % holds the current list being processed |
|
207 |
+\newtoks\tabular@head % holds the head tabular list |
|
208 |
+\newtoks\tabular@tail % holds the tail tabular list |
|
209 |
+\newtoks\@ta % used by \@append |
|
210 |
+\newtoks\undefined@token\undefined@token={} |
|
211 |
+ |
|
212 |
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
|
213 |
+% prints a centered name with the address centered |
|
214 |
+% or the two address on opposite sides of the page |
|
215 |
+ |
|
216 |
+\def\@printcentername{\begingroup |
|
217 |
+ % print the name centered |
|
218 |
+ \leavevmode\hbox to \textwidth{\hfil\@tablebox{\namefont\@name}\hfil}\par |
|
219 |
+ \@ifundefined{@addressone}{% |
|
220 |
+ % do nothing |
|
221 |
+ }{ |
|
222 |
+ \@ifundefined{@addressthree}{ |
|
223 |
+ \@ifundefined{@addresstwo}{ |
|
224 |
+ % only one address |
|
225 |
+ \leavevmode\hbox to \textwidth{\hfil\@tablebox{\@addressone}\hfil}\par |
|
226 |
+ }{ |
|
227 |
+ % two addresses |
|
228 |
+ \leavevmode\hbox to \textwidth{\@tablebox{\@addressone}\hfil |
|
229 |
+ \@tablebox{\@addresstwo}}\par |
|
230 |
+ } |
|
231 |
+ }{ % three addresses |
|
232 |
+ \leavevmode\hbox to \textwidth{ |
|
233 |
+ \@tablebox{\@addressone}\hfil |
|
234 |
+ \@tablebox{\@addresstwo}\hfil |
|
235 |
+ \@tablebox{\@addressthree}}\par |
|
236 |
+ } |
|
237 |
+ }% |
|
238 |
+ % Add a horizontal line after name |
|
239 |
+ \fullline |
|
240 |
+\endgroup} |
|
241 |
+ |
|
242 |
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
|
243 |
+% this is used to print the name and address at the top of |
|
244 |
+% the page with a hline in between |
|
245 |
+ |
|
246 |
+\def\namefont{\large\bf} |
|
247 |
+\def\@linename{\begingroup |
|
248 |
+ \def\\{ : } |
|
249 |
+ {\namefont\@name} |
|
250 |
+ \vskip 2pt |
|
251 |
+ \fullline |
|
252 |
+ \vskip 2pt |
|
253 |
+ % where do you live? |
|
254 |
+ \@ifundefined{@addressone}{% |
|
255 |
+ % do nothing |
|
256 |
+ }{ |
|
257 |
+ \leavevmode\hbox to \textwidth |
|
258 |
+ {\hfill\vbox{\hbox{\@addressone} |
|
259 |
+ \hbox{\@addresstwo} |
|
260 |
+ \hbox{\@addressthree} |
|
261 |
+ } |
|
262 |
+ }\par |
|
263 |
+ } |
|
264 |
+\endgroup} |
|
265 |
+ |
|
266 |
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
|
267 |
+% HEADINGS: |
|
268 |
+% There are two types of headings: |
|
269 |
+% 1) one with the name centered and the address centered or |
|
270 |
+% in the left and right side if there are two address |
|
271 |
+% 2) one where the name is in the upper left corner |
|
272 |
+% the a line accross the paper |
|
273 |
+% then the address all on one line in the right corner |
|
274 |
+% the second address will be directly below the first if defined |
|
275 |
+% |
|
276 |
+\let\print@name\relax |
|
277 |
+\def\ds@centered{\ifx\print@name\relax\let\print@name\@printcentername\fi} |
|
278 |
+\def\ds@line{\ifx\print@name\relax\let\print@name\@linename\fi} |
|
279 |
+ |
|
280 |
+ |
|
281 |
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
|
282 |
+% Use this to set the sectionwidth. |
|
283 |
+% It adjust the width of the text as well as the hoffset |
|
284 |
+% You probably shouldn't touch any of the size paramaters |
|
285 |
+% unless you really understand all of this but it is not |
|
286 |
+% hard. Either way, it can only be executed once |
|
287 |
+% |
|
288 |
+\def\sectionfont{\sffamily} |
|
289 |
+\newdimen\sectionwidth |
|
290 |
+\newskip\sectionskip |
|
291 |
+\newdimen\resumewidth |
|
292 |
+ |
|
293 |
+\resumewidth=6.5in |
|
294 |
+\sectionskip=3.5ex plus 1ex minus -.2ex % values stolen from LaTeX |
|
295 |
+ |
|
296 |
+\def\newsectionwidth#1{% |
|
297 |
+ \sectionwidth=#1 |
|
298 |
+ \textwidth=\resumewidth |
|
299 |
+ \advance\textwidth-\sectionwidth |
|
300 |
+ \hsize=\textwidth |
|
301 |
+ \hoffset=\sectionwidth |
|
302 |
+} |
|
303 |
+ |
|
304 |
+ |
|
305 |
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
|
306 |
+% This is for sectiontitles that are entirely in the left margin. multiline |
|
307 |
+% sectiontitles are permited and will be broken by \TeX{} to fit into a box |
|
308 |
+% \verb|\sectionwidth| wide. It is advised that \verb|\\| be used to break the |
|
309 |
+% lines by hand as \TeX{} will probably not do what you want. |
|
310 |
+% |
|
311 |
+% When using this with {\tt tabbing} and {\tt list} (or anything that is made |
|
312 |
+% out of {\tt list}) put the \section's inside of the \verb|\begin{}| and the |
|
313 |
+% \verb|\item|Eg. |
|
314 |
+% \begin{verbatim} |
|
315 |
+% \begin{trivlist} |
|
316 |
+% \item[] |
|
317 |
+% \section{foo} |
|
318 |
+% text |
|
319 |
+% \end{trivlist} |
|
320 |
+% \end{verbatim} |
|
321 |
+ |
|
322 |
+\def\boxed@sectiontitle#1{% |
|
323 |
+ % this macro may be called in a tabular. Special code must be written to |
|
324 |
+ % accomodate this. In LaTeX, a tabular is made out of hboxes. TeX never goes |
|
325 |
+ % into horizontal mode because of this; it only gets into vertical mode and |
|
326 |
+ % restricted horizontal mode. Certain indenting problems must be handled |
|
327 |
+ % because of this. They are delt with at the end of this routine. It is also |
|
328 |
+ % necessary to close the hbox that was created before the \section and create |
|
329 |
+ % a new one when this macro has ended. This macro therefore simulates a \kill, |
|
330 |
+ % so that any text before the \section not be printed. The proper use is |
|
331 |
+ % therefore ... |
|
332 |
+ % text\\ |
|
333 |
+ % \section{foo} |
|
334 |
+ % more text\\ |
|
335 |
+ % ... |
|
336 |
+ \ifx\\\@tabcr % is this in a tabular? (this *should* work but is a cludge) |
|
337 |
+ \@stopfield % the is the first part of a \kill |
|
338 |
+ \else |
|
339 |
+ \@@par % This will end the previous paragraph if needed and go into |
|
340 |
+ % vertical mode. If this was already in vertical mode then |
|
341 |
+ % the \par does nothing. |
|
342 |
+ |
|
343 |
+ \fi |
|
344 |
+ \begingroup |
|
345 |
+ \everypar={} |
|
346 |
+ \def\par{\@@par} |
|
347 |
+ \let\\=\@normalcr |
|
348 |
+ \addpenalty{\@secpenalty} % this would be a good place for a page break |
|
349 |
+ % \@secpenalty is what LaTeX uses before its |
|
350 |
+ % section's. It happens to be -300 |
|
351 |
+ |
|
352 |
+ \addvspace{\sectionskip} % put in a bit of glue |
|
353 |
+ % The following hbox will be contributed to the page list without going into |
|
354 |
+ % horizontal mode. Therefore, any \parindent's, \parshape's, \leftskip will |
|
355 |
+ % be ignored but \hoffset's are not. The result is that the box will only by |
|
356 |
+ % \hoffset. This is what I want |
|
357 |
+ \hbox to 0pt{ |
|
358 |
+ \hss % this is an llap. In other words, this glue will shrink by the |
|
359 |
+ % width of the stuff in the vbox (\sectionwidth) into the left |
|
360 |
+ % margin and then insert the contents of the vbox. |
|
361 |
+ \vtop to 0pt{ % make a 0pt height paragraph, with the baseline at the |
|
362 |
+ % lined up with the baseline of the first box in the list |
|
363 |
+ \leftskip=0pt |
|
364 |
+ \hsize=\sectionwidth |
|
365 |
+ \textwidth=\sectionwidth |
|
366 |
+ \raggedright % you don't want this filled out to the right margin |
|
367 |
+ \sectionfont |
|
368 |
+ #1\vss % Go into horizontal mode; do the paragraph; go into |
|
369 |
+ % vertical mode; add some negative glue to give a box of 0pt |
|
370 |
+ % height and depth |
|
371 |
+ } |
|
372 |
+ } |
|
373 |
+ \addpenalty{-\@secpenalty} % this would be a bad place for a page break |
|
374 |
+ \vskip-\baselineskip % when the next box is processed, baselineskip glue will |
|
375 |
+ % be added (the box has no depth because of the \vss; |
|
376 |
+ % therefore, we don't have to worry about |
|
377 |
+ % \lineskiplimit). This -\baselineskip glue is to undo |
|
378 |
+ % this. \nointerlineskip doesn't work because the |
|
379 |
+ % baseline of this line would be lined up with the top |
|
380 |
+ % of the top of the next box. We want the baselines |
|
381 |
+ % lined up. It may have been possible to do this by |
|
382 |
+ % forcing the baseline of this box to be the top of the |
|
383 |
+ % box but then the interline skip between this box and |
|
384 |
+ % the previous box would be off as the baselines of the |
|
385 |
+ % this box (the one that being made above) and the |
|
386 |
+ % previous line would be separated by \baselineskip |
|
387 |
+ % (probably, it may be separted by the depth of the |
|
388 |
+ % previous box + \lineskip) but as the baseline of this |
|
389 |
+ % box has been moved to the top, the box's would |
|
390 |
+ % separted by to much glue. The exact amount being the |
|
391 |
+ % height of this box. |
|
392 |
+ \endgroup |
|
393 |
+ \ifx\\\@tabcr % is this in a tabular? (this *should* work but is a cludge) |
|
394 |
+ % this is the second part of the \kill; it starts the next |
|
395 |
+ % tabbing line Because this routine will never get into |
|
396 |
+ % paragraph mode when used in tabbing the \parskip that is |
|
397 |
+ % discussed below will never be inserted. Therefore it |
|
398 |
+ % should not be negated as done below. |
|
399 |
+ \@startline |
|
400 |
+ \ignorespaces |
|
401 |
+ \else |
|
402 |
+ \vskip-\parskip % The next thing to be contributed will be a paragraph. |
|
403 |
+ % Right before being contributed though a \vskip\parskip |
|
404 |
+ % will be inserted. This is to negate it. I do consider |
|
405 |
+ % this to be a bit of a cludge but I can not find a way |
|
406 |
+ % to write \unskipfutureskip or a way to make TeX think |
|
407 |
+ % that nothing has been contributed to the page list. |
|
408 |
+ \fi |
|
409 |
+} |
|
410 |
+ |
|
411 |
+ |
|
412 |
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
|
413 |
+% This is for sectiontitles that are entirely above the section text |
|
414 |
+% |
|
415 |
+\def\unboxed@sectiontitle#1{ |
|
416 |
+ \ifx\\\@tabcr % see boxed@sectiontitle for explation |
|
417 |
+ \@stopfield |
|
418 |
+ \else |
|
419 |
+ \@@par |
|
420 |
+ \fi |
|
421 |
+ \begingroup |
|
422 |
+ \everypar={} |
|
423 |
+ \def\par{\@@par} |
|
424 |
+ \def\\{ } |
|
425 |
+ \addpenalty{\@secpenalty} |
|
426 |
+ \addvspace{\sectionskip} |
|
427 |
+ \hbox to 0pt{\hss\hbox to \sectionwidth{\sectionfont#1\hss}} |
|
428 |
+ \addpenalty{-\@secpenalty} % this would be a bad place for a page break |
|
429 |
+ \endgroup |
|
430 |
+ \ifx\\\@tabcr % see boxed@sectiontitle for explation |
|
431 |
+ \@startline |
|
432 |
+ \else |
|
433 |
+ \vskip-\parskip |
|
434 |
+ \fi |
|
435 |
+ \ignorespaces |
|
436 |
+} |
|
437 |
+ |
|
438 |
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
|
439 |
+% There are two types of section headings: |
|
440 |
+% 1) the section heading is all on one line and directly below it, is the body |
|
441 |
+% of the text |
|
442 |
+% 2) the section heading is entirely in the left margin (possibly taking |
|
443 |
+% multiple lines) with the body of the text next to it |
|
444 |
+\let\@@section\relax |
|
445 |
+\def\ds@overlapped{\ifx\@@section\relax\newsectionwidth{0.5in}\let |
|
446 |
+ \@@section\unboxed@sectiontitle\fi} |
|
447 |
+\def\ds@margin{\ifx\@@section\relax\newsectionwidth{1.3in}\let |
|
448 |
+ \@@section\boxed@sectiontitle\fi} |
|
449 |
+ |
|
450 |
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
|
451 |
+% DEFAULTS: (some of them) |
|
452 |
+% |
|
453 |
+% centered name |
|
454 |
+% overlapped section titles |
|
455 |
+% |
|
456 |
+% format is: |
|
457 |
+% title employer |
|
458 |
+% location dates |
|
459 |
+% body |
|
460 |
+% with everything in the left of its column |
|
461 |
+ |
|
462 |
+%\input article.sty |
|
463 |
+ |
|
464 |
+\if@line\ds@line\else\ds@centered\fi |
|
465 |
+\if@margin\ds@margin\else\ds@overlapped\fi |
|
466 |
+ |
|
467 |
+ |
|
468 |
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
|
469 |
+% typeset resume all nice and pretty |
|
470 |
+\def\Resume{{R\'{e}sum\'{e}}} |
|
471 |
+ |
|
472 |
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
|
473 |
+% makes a line of width \textwidth starting at -\hoffset |
|
474 |
+ |
|
475 |
+\def\fullline{ % hrules only listen to \hoffset |
|
476 |
+ \nointerlineskip % so I have this code |
|
477 |
+ \moveleft\hoffset\vbox{\hrule width\textwidth} |
|
478 |
+ \nointerlineskip |
|
479 |
+} |
|
480 |
+ |
|
481 |
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
|
482 |
+% create a multiline box. |
|
483 |
+ |
|
484 |
+\def\@tablebox#1{\begin{tabular}[t]{@{}l@{\extracolsep{\fill}}}#1\end{tabular}} |
|
485 |
+ |
|
486 |
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
|
487 |
+% use this to define your name |
|
488 |
+ |
|
489 |
+\def\name#1{\def\@name{#1}} |
|
490 |
+ |
|
491 |
+\def\@name{} |
|
492 |
+ |
|
493 |
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
|
494 |
+% use this to define your address, this may be called more than once. |
|
495 |
+ |
|
496 |
+\let\@addressone\relax |
|
497 |
+\let\@addresstwo\relax |
|
498 |
+\let\@addressthree\relax |
|
499 |
+ |
|
500 |
+\def\address#1{ |
|
501 |
+ \@ifundefined{@addressone}{\def\@addressone{#1}} |
|
502 |
+ {\@ifundefined{@addresstwo}{\def\@addresstwo{#1}} |
|
503 |
+ {\def\@addressthree{#1}}}} |
|
504 |
+ |
|
505 |
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
|
506 |
+% if you want to print your name and address is a slightly |
|
507 |
+% different format than sugessted, then this can be used |
|
508 |
+% to place it exactly where you want |
|
509 |
+ |
|
510 |
+\def\opening{\def\@opening{} |
|
511 |
+ \begingroup |
|
512 |
+ \leftskip=-\hoffset % I use leftskip to move things to the left as |
|
513 |
+ \advance\textwidth\hoffset% changing hoffset doesn't work. But this |
|
514 |
+ \hsize=\textwidth % doesn't really work as hboxes are rules |
|
515 |
+ % are unaffeted |
|
516 |
+ \let\par=\@@par |
|
517 |
+ \parindent=0pt |
|
518 |
+ \parskip=0pt |
|
519 |
+ \print@name |
|
520 |
+ \endgroup |
|
521 |
+} |
|
522 |
+ |
|
523 |
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
|
524 |
+% all of the resume goes in the resume environment |
|
525 |
+ |
|
526 |
+\newenvironment{resume}{\begingroup |
|
527 |
+ \@ifundefined{@opening}{\opening}{} |
|
528 |
+}{\endgroup} |
|
529 |
+ |
|
530 |
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
|
531 |
+% gives you a tabular environment with n equally spaced columns |
|
532 |
+% \begin{ncolumn}{#} ... \end{ncolumn} |
|
533 |
+% |
|
534 |
+% The p option of LaTeX is broken in all but the newest verion of latex.tex, |
|
535 |
+% this is how to fix it |
|
536 |
+ |
|
537 |
+\def\@endpbox{\par\egroup\hfil} |
|
538 |
+\let\@@endpbox=\@endpbox |
|
539 |
+ |
|
540 |
+\newdimen\@columnwidth % the width of each column equal to |
|
541 |
+\def\ncolumn#1{% |
|
542 |
+ % \@columnwidth = \textwidth / #1 |
|
543 |
+ \@columnwidth=\textwidth \divide\@columnwidth by #1 |
|
544 |
+ \begin{tabular*}{\textwidth}[t]% |
|
545 |
+ {*{#1}{@{}p{\@columnwidth}@{\extracolsep{\fill}}}} |
|
546 |
+} |
|
547 |
+ |
|
548 |
+\def\endncolumn{\end{tabular*}} |
|
549 |
+ |
|
550 |
+ |
|
551 |
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
|
552 |
+% \employer{text} defines employer to be text |
|
553 |
+% \location{text} defines location to be text |
|
554 |
+% \dates{text} defines dates to be text |
|
555 |
+% \title{text} defines title to be text |
|
556 |
+% \body |
|
557 |
+% |
|
558 |
+ |
|
559 |
+\def\employer#1{\def\@employer{\print@employer{#1}}} |
|
560 |
+\def\location#1{\def\@location{\print@location{#1}}} |
|
561 |
+\def\dates#1{\def\@dates{\print@dates{#1}}} |
|
562 |
+\def\title#1{\def\@title{\print@title{#1}}} |
|
563 |
+ |
|
564 |
+\let\l@justify\raggedright |
|
565 |
+\let\r@justify\raggedleft |
|
566 |
+\let\c@justify\centering |
|
567 |
+ |
|
568 |
+ |
|
569 |
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
|
570 |
+% \@format{name}{justify} |
|
571 |
+% will define \print@#1 to print it's one argument justified according to #2 |
|
572 |
+% which can be |
|
573 |
+% l = left |
|
574 |
+% r = right |
|
575 |
+% c = center |
|
576 |
+% |
|
577 |
+% eg. |
|
578 |
+% \@format{employer}{c} |
|
579 |
+% is the same as \def\print@employer#1{{\centering #1\par}} |
|
580 |
+% |
|
581 |
+\def\@format#1#2{% |
|
582 |
+ \expandafter\gdef\csname print@#1\endcsname##1{% |
|
583 |
+ {\csname#2@justify\endcsname##1\par}} |
|
584 |
+} |
|
585 |
+ |
|
586 |
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
|
587 |
+% this is used to define how the position environment should formated. |
|
588 |
+% |
|
589 |
+% \begin{format} positioning text \end{format} |
|
590 |
+% where positioning text may be: |
|
591 |
+% \employer{pos} |
|
592 |
+% \location{pos} |
|
593 |
+% \dates{pos} |
|
594 |
+% \title{pos} |
|
595 |
+% \body (for the body of the position environment) |
|
596 |
+% where pos is |
|
597 |
+% l for left |
|
598 |
+% r for right |
|
599 |
+% c for center |
|
600 |
+% |
|
601 |
+% use \\ to break the line you don't have to use all of the options. on any one |
|
602 |
+% line, you should indicate what you want on that line and where it should go |
|
603 |
+% within its column. |
|
604 |
+% |
|
605 |
+% eg. |
|
606 |
+% the following prints the employer in the left with the location centered |
|
607 |
+% within that its column. It then prints the date on the right. Then it prints |
|
608 |
+% the body of the position environment. Then it prints the title centered within |
|
609 |
+% its column; as there is only one column here it is really just centered. |
|
610 |
+% |
|
611 |
+% \begin{format} |
|
612 |
+% \employer{l}\location{c}\\ |
|
613 |
+% \dates{r}\\ |
|
614 |
+% \body\\ |
|
615 |
+% \title{c}\\ |
|
616 |
+% \end{format} |
|
617 |
+ |
|
618 |
+\newcounter{numberofcolumns} |
|
619 |
+\newenvironment{format}{ |
|
620 |
+ \def\end@line@head{\append@tabular@head{tabular@text}\tabular@text={} |
|
621 |
+ \c@numberofcolumns 0} |
|
622 |
+ \def\end@line@tail{\append@tabular@tail{tabular@text}\tabular@text={} |
|
623 |
+ \c@numberofcolumns 0} |
|
624 |
+ \tabular@text={} |
|
625 |
+ \tabular@head={} |
|
626 |
+ \tabular@tail={} |
|
627 |
+ \c@numberofcolumns 0 |
|
628 |
+ \let\\=\end@line@head |
|
629 |
+ \def\employer##1{\advance\c@numberofcolumns 1 |
|
630 |
+ \@format{employer}{##1} |
|
631 |
+ \append@tabular@text{employer}} |
|
632 |
+ \def\location##1{\advance\c@numberofcolumns 1 |
|
633 |
+ \@format{location}{##1} |
|
634 |
+ \append@tabular@text{location}} |
|
635 |
+ \def\dates##1{\advance\c@numberofcolumns 1 |
|
636 |
+ \@format{dates}{##1} |
|
637 |
+ \append@tabular@text{dates}} |
|
638 |
+ \def\title##1{\advance\c@numberofcolumns 1 |
|
639 |
+ \@format{title}{##1} |
|
640 |
+ \append@tabular@text{title}} |
|
641 |
+ \def\body{\iftoks\tabular@head\undefined@token\then |
|
642 |
+ \else |
|
643 |
+ \@append{\noexpand\\}\to\tabular@head |
|
644 |
+ \skotfi |
|
645 |
+ \let\\=\end@line@tail}}{} |
|
646 |
+ |
|
647 |
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
|
648 |
+%taken from page 378 of TeXbook but freely hacked |
|
649 |
+% |
|
650 |
+% appends the expansion of #1 to the token list #2 |
|
651 |
+ |
|
652 |
+\def\@append#1\to#2{% |
|
653 |
+ \@ta=\expandafter{#1}% |
|
654 |
+ \xdef\@append@temp{\the#2\the\@ta} |
|
655 |
+ \global#2=\expandafter{\@append@temp}% |
|
656 |
+} |
|
657 |
+ |
|
658 |
+ |
|
659 |
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
|
660 |
+% CHAA006%vaxb.rhbnc.ac.uk@NSS.Cs.Ucl.AC.UK |
|
661 |
+% texhax.88.078 |
|
662 |
+% is used to see if two token lists are equal |
|
663 |
+% there must be a better way |
|
664 |
+% |
|
665 |
+ |
|
666 |
+\let \then = \empty |
|
667 |
+\def \iftoks #1#2\then #3\else #4\skotfi{ |
|
668 |
+ \edef \1{\the #1} |
|
669 |
+ \edef \2{\the #2} |
|
670 |
+ \ifx \1\2\then #3\else #4\fi} |
|
671 |
+ |
|
672 |
+ |
|
673 |
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
|
674 |
+% \append@tabular@text{command} |
|
675 |
+% |
|
676 |
+% appends command to the end of \tabular@text. |
|
677 |
+% NOTE: command MUST be a command but without the \ |
|
678 |
+% Eg. \append@tabular@text{relax} |
|
679 |
+% |
|
680 |
+% used to define \tabular@text for the tabular environment |
|
681 |
+% used by append@tabular@head and append@tabular@tail |
|
682 |
+% |
|
683 |
+ |
|
684 |
+\def\append@tabular@text#1{% |
|
685 |
+\iftoks\tabular@text\undefined@token\then |
|
686 |
+ \global\tabular@text=\expandafter{\csname @#1\endcsname} |
|
687 |
+\else |
|
688 |
+ \@append{&}\to\tabular@text |
|
689 |
+ \@append{\csname @#1\endcsname}\to\tabular@text |
|
690 |
+\skotfi |
|
691 |
+} |
|
692 |
+ |
|
693 |
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
|
694 |
+% append@tabular@head |
|
695 |
+% |
|
696 |
+% appends command to the end of \tabular@text@head |
|
697 |
+% NOTE: command MUST be a command but without the \ |
|
698 |
+% Eg. \append@tabular@head{relax} |
|
699 |
+% |
|
700 |
+% used to define \tabular@head for the tabular environment |
|
701 |
+% used by the position environment |
|
702 |
+% |
|
703 |
+\def\append@tabular@head#1{% |
|
704 |
+ \ifnum\the\c@numberofcolumns=0\relax |
|
705 |
+ \else |
|
706 |
+ \iftoks\tabular@head\undefined@token\then |
|
707 |
+ \relax |
|
708 |
+ \else |
|
709 |
+ \@append{\noexpand\\}\to\tabular@head |
|
710 |
+ \@append{\noexpand\penalty-\@secpenalty}\to\tabular@head |
|
711 |
+ \skotfi |
|
712 |
+ \@append{\noexpand\begin{ncolumn}}\to\tabular@head |
|
713 |
+ \@append{\expandafter{\the\c@numberofcolumns}}\to\tabular@head |
|
714 |
+ \@append{\the\csname#1\endcsname}\to\tabular@head |
|
715 |
+ \@append{\noexpand\end{ncolumn}}\to\tabular@head |
|
716 |
+ \fi |
|
717 |
+} |
|
718 |
+ |
|
719 |
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
|
720 |
+% append@tabular@tail |
|
721 |
+% |
|
722 |
+% appends command to the end of \tabular@text@htail |
|
723 |
+% NOTE: command MUST be a command but without the \ |
|
724 |
+% Eg. \append@tabular@tail{relax} |
|
725 |
+% |
|
726 |
+% used to define \tabular@tail for the tabular environment |
|
727 |
+% used by the position environment |
|
728 |
+% |
|
729 |
+\def\append@tabular@tail#1{% |
|
730 |
+ \ifnum\the\c@numberofcolumns=0\relax |
|
731 |
+ \else |
|
732 |
+ \iftoks\tabular@tail\undefined@token\then |
|
733 |
+ \else |
|
734 |
+ \@append{\noexpand\\}\to\tabular@tail |
|
735 |
+ \@append{\noexpand\penalty-\@secpenalty}\to\tabular@tail |
|
736 |
+ \skotfi |
|
737 |
+ \@append{\noexpand\begin{ncolumn}}\to\tabular@tail |
|
738 |
+ \@append{\expandafter{\the\c@numberofcolumns}}\to\tabular@tail |
|
739 |
+ \@append{\the\csname#1\endcsname}\to\tabular@tail |
|
740 |
+ \@append{\noexpand\end{ncolumn}}\to\tabular@tail |
|
741 |
+ \fi |
|
742 |
+} |
|
743 |
+ |
|
744 |
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
|
745 |
+% put the actual job descriptions here |
|
746 |
+% \begin{postion} ... \end{position} |
|
747 |
+% in the ... describe the position. |
|
748 |
+% don't put the \dates \location etc in here. define them before hand |
|
749 |
+\newenvironment{position}% |
|
750 |
+ {% |
|
751 |
+ \begingroup |
|
752 |
+ \par |
|
753 |
+ \the\tabular@head |
|
754 |
+% \addpenalty{-\@secpenalty}% bad place for a page break |
|
755 |
+ \penalty -\@secpenalty % bad place for a page break |
|
756 |
+ \penalty 10000 |
|
757 |
+ \ignorespaces |
|
758 |
+ }{% |
|
759 |
+ \the\tabular@tail |
|
760 |
+% \addpenalty{\@secpenalty}% good place for a page break |
|
761 |
+ \penalty \@secpenalty % good place for a page break |
|
762 |
+ \endgroup |
|
763 |
+} |
|
764 |
+ |
|
765 |
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
|
766 |
+% DEFAULTS: (the rest of them) |
|
767 |
+% |
|
768 |
+% centered name |
|
769 |
+% overlapped section titles |
|
770 |
+% |
|
771 |
+% format is: |
|
772 |
+% title employer |
|
773 |
+% location dates |
|
774 |
+% body |
|
775 |
+% with everything in the left of its column |
|
776 |
+ |
|
777 |
+\@secpenalty = -500 |
|
778 |
+\topmargin 0pt |
|
779 |
+\headheight 0pt |
|
780 |
+\headsep 0pt |
|
781 |
+\textheight 9in |
|
782 |
+\parindent 0pt |
|
783 |
+\topmargin 0in |
|
784 |
+\oddsidemargin 0pt |
|
785 |
+\evensidemargin 0pt |
|
786 |
+\marginparwidth 0pt |
|
787 |
+\parindent 0pt |
|
788 |
+\parskip \baselineskip |
|
789 |
+\setcounter{secnumdepth}{0} |
|
790 |
+\def\@listI{\leftmargin\leftmargini |
|
791 |
+\topsep 0pt |
|
792 |
+\parskip 0pt |
|
793 |
+\partopsep 2pt plus 2pt |
|
794 |
+\parsep 2pt plus 2pt |
|
795 |
+\itemsep \parsep} |
|
796 |
+ |
|
797 |
+\pagestyle{empty} % don't want page numbers |
|
798 |
+ |
|
799 |
+\begin{format} |
|
800 |
+\title{l}\employer{r}\\ |
|
801 |
+\location{l}\dates{r}\\ |
|
802 |
+\body\\ |
|
803 |
+\end{format} |
|
804 |
+ |
|
805 |
+\let\section\@@section |
|
0 | 806 |
\ No newline at end of file |