git.fiddlerwoaroof.com
Browse code

Update on Overleaf.

Edward Langley authored on 29/09/2015 18:00:07
Showing 42 changed files
1 1
new file mode 100644
2 2
Binary files /dev/null and b/Alegreya-Black.otf differ
3 3
new file mode 100644
4 4
Binary files /dev/null and b/Alegreya-BlackItalic.otf differ
5 5
new file mode 100644
6 6
Binary files /dev/null and b/Alegreya-Bold.otf differ
7 7
new file mode 100644
8 8
Binary files /dev/null and b/Alegreya-BoldItalic.otf differ
9 9
new file mode 100644
10 10
Binary files /dev/null and b/Alegreya-Italic.otf differ
11 11
new file mode 100644
12 12
Binary files /dev/null and b/Alegreya-Regular.otf differ
13 13
new file mode 100644
14 14
Binary files /dev/null and b/AlegreyaSC-Black.otf differ
15 15
new file mode 100644
16 16
Binary files /dev/null and b/AlegreyaSC-BlackItalic.otf differ
17 17
new file mode 100644
18 18
Binary files /dev/null and b/AlegreyaSC-Bold.otf differ
19 19
new file mode 100644
20 20
Binary files /dev/null and b/AlegreyaSC-BoldItalic.otf differ
21 21
new file mode 100644
22 22
Binary files /dev/null and b/AlegreyaSC-Italic.otf differ
23 23
new file mode 100644
24 24
Binary files /dev/null and b/AlegreyaSC-Regular.otf differ
25 25
new file mode 100644
26 26
Binary files /dev/null and b/AlegreyaSans-Black.otf differ
27 27
new file mode 100644
28 28
Binary files /dev/null and b/AlegreyaSans-BlackItalic.otf differ
29 29
new file mode 100644
30 30
Binary files /dev/null and b/AlegreyaSans-Bold.otf differ
31 31
new file mode 100644
32 32
Binary files /dev/null and b/AlegreyaSans-BoldItalic.otf differ
33 33
new file mode 100644
34 34
Binary files /dev/null and b/AlegreyaSans-ExtraBold.otf differ
35 35
new file mode 100644
36 36
Binary files /dev/null and b/AlegreyaSans-ExtraBoldItalic.otf differ
37 37
new file mode 100644
38 38
Binary files /dev/null and b/AlegreyaSans-Italic.otf differ
39 39
new file mode 100644
40 40
Binary files /dev/null and b/AlegreyaSans-Light.otf differ
41 41
new file mode 100644
42 42
Binary files /dev/null and b/AlegreyaSans-LightItalic.otf differ
43 43
new file mode 100644
44 44
Binary files /dev/null and b/AlegreyaSans-Medium.otf differ
45 45
new file mode 100644
46 46
Binary files /dev/null and b/AlegreyaSans-MediumItalic.otf differ
47 47
new file mode 100644
48 48
Binary files /dev/null and b/AlegreyaSans-Regular.otf differ
49 49
new file mode 100644
50 50
Binary files /dev/null and b/AlegreyaSans-Thin.otf differ
51 51
new file mode 100644
52 52
Binary files /dev/null and b/AlegreyaSans-ThinItalic.otf differ
53 53
new file mode 100644
54 54
Binary files /dev/null and b/AlegreyaSansSC-Black.otf differ
55 55
new file mode 100644
56 56
Binary files /dev/null and b/AlegreyaSansSC-BlackItalic.otf differ
57 57
new file mode 100644
58 58
Binary files /dev/null and b/AlegreyaSansSC-Bold.otf differ
59 59
new file mode 100644
60 60
Binary files /dev/null and b/AlegreyaSansSC-BoldItalic.otf differ
61 61
new file mode 100644
62 62
Binary files /dev/null and b/AlegreyaSansSC-ExtraBold.otf differ
63 63
new file mode 100644
64 64
Binary files /dev/null and b/AlegreyaSansSC-ExtraBoldItalic.otf differ
65 65
new file mode 100644
66 66
Binary files /dev/null and b/AlegreyaSansSC-Italic.otf differ
67 67
new file mode 100644
68 68
Binary files /dev/null and b/AlegreyaSansSC-Light.otf differ
69 69
new file mode 100644
70 70
Binary files /dev/null and b/AlegreyaSansSC-LightItalic.otf differ
71 71
new file mode 100644
72 72
Binary files /dev/null and b/AlegreyaSansSC-Medium.otf differ
73 73
new file mode 100644
74 74
Binary files /dev/null and b/AlegreyaSansSC-MediumItalic.otf differ
75 75
new file mode 100644
76 76
Binary files /dev/null and b/AlegreyaSansSC-Regular.otf differ
77 77
new file mode 100644
78 78
Binary files /dev/null and b/AlegreyaSansSC-Thin.otf differ
79 79
new file mode 100644
80 80
Binary files /dev/null and b/AlegreyaSansSC-ThinItalic.otf differ
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