-
Notifications
You must be signed in to change notification settings - Fork 0
/
resume.cls
129 lines (106 loc) · 4.4 KB
/
resume.cls
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
\ProvidesClass{resume}[2023/06/05 v0.1 csubj Resume class]
\LoadClass[11pt, a4paper]{article} % Font size and paper type
\usepackage[T1]{fontenc}
\usepackage[parfill]{parskip} % Remove paragraph indentation
\usepackage{array} % Required for boldface (\bf and \bfseries) tabular columns
\usepackage{ifthen} % Required for ifthenelse statements
\usepackage{helvet}
\usepackage{hyperref}
\hypersetup{
colorlinks=true,
linkcolor=blue,
filecolor=magenta,
urlcolor=blue,
}
\pagestyle{empty} % Suppress page numbers
%----------------------------------------------------------------------------------------
% HEADINGS COMMANDS: Commands for printing name and address
%----------------------------------------------------------------------------------------
\def \name#1{\def\@name{#1}} % Defines the \name command to set name
\def \@name {} % Sets \@name to empty by default
\def \contactinfo#1{\def\@contactinfo{#1}} % Defines the \name command to set name
\def \@contactinfo {} % Sets \@name to empty by default
\def \jobtitle#1{\def\@jobtitle{#1}} % Defines the \name command to set name
\def \@jobtitle {} % Sets \@name to empty by default
\def \identityinfo#1{\def\@identityinfo{#1}} % Defines the \name command to set name
\def \@identityinfo {} % Sets \@name to empty by default
\def \addressSep {$\diamond$} % Set default address separator to a diamond
% One, two or three address lines can be specified
\let \@addressone \relax
\let \@addresstwo \relax
\let \@addressthree \relax
% \address command can be used to set the first, second, and third address (last 2 optional)
\def \address #1{
\@ifundefined{@addresstwo}{
\def \@addresstwo {#1}
}{
\@ifundefined{@addressthree}{
\def \@addressthree {#1}
}{
\def \@addressone {#1}
}}
}
% \printaddress is used to style an address line (given as input)
\def \printaddress #1{
\begingroup
\def \\ {\addressSep\ }
\leftline{#1}
\endgroup
\par
\addressskip
}
% \printname is used to print the name as a page header
\def \printname {
\begingroup
\def \\ {\addressSep\ }
{\namesize\bf \@name} \null\hfill{\@contactinfo}
\break
\endgroup
}
%----------------------------------------------------------------------------------------
% PRINT THE HEADING LINES
%----------------------------------------------------------------------------------------
\let\ori@document=\document
\renewcommand{\document}{
\ori@document % Begin document
\printname % Print the name specified with \name
\printaddress{\large \@jobtitle}
\printaddress{\@identityinfo}
}
%----------------------------------------------------------------------------------------
% SECTION FORMATTING
%----------------------------------------------------------------------------------------
% Defines the rSection environment for the large sections within the CV
\newenvironment{rSection}[1]{ % 1 input argument - section name
\sectionskip
{{\bf #1}} % Section title
\sectionlineskip
\noindent\rule{10cm}{.8pt}
\begin{list}{}{ % List for each individual item in the section
\setlength{\leftmargin}{0em} % Margin within the section
}
\item[]
}{
\end{list}
}
%----------------------------------------------------------------------------------------
% WORK EXPERIENCE FORMATTING
%----------------------------------------------------------------------------------------
\newenvironment{rSubsection}[4]{ % 4 input arguments - company name, year(s) employed, job title and location
{\bf #1} \hfill {#2} % Bold company name and date on the right
\ifthenelse{\equal{#3}{}}{}{ % If the third argument is not specified, don't print the job title and location line
\\
{\em #3} \hfill {\em #4} % Italic job title and location
}\smallskip
\begin{list}{$\cdot$}{\leftmargin=0em} % \cdot used for bullets, no indentation
\itemsep -1em \vspace{-1em} % Compress items in list together for aesthetics
}{
\end{list}
\vspace{-0.5em} % Some space after the list of bullet points
}
% The below commands define the whitespace after certain things in the document - they can be \smallskip, \medskip or \bigskip
\def\namesize{\huge} % Size of the name at the top of the document
\def\addressskip{\smallskip} % The space between the two address (or phone/email) lines
\def\sectionlineskip{\smallskip} % The space above the horizontal line for each section
\def\nameskip{\smallskip} % The space after your name at the top
\def\sectionskip{\smallskip} % The space after the heading section