60 lines
1.4 KiB
OpenEdge ABL
60 lines
1.4 KiB
OpenEdge ABL
\ProvidesClass{resume}[2026/07/27 Evidence-first professional resume]
|
|
\LoadClass[11pt,a4paper]{article}
|
|
|
|
\RequirePackage{enumitem}
|
|
\RequirePackage{ifthen}
|
|
\RequirePackage{lastpage}
|
|
\RequirePackage{parskip}
|
|
\RequirePackage{needspace}
|
|
|
|
\pagestyle{empty}
|
|
\setlength{\parindent}{0pt}
|
|
|
|
\def\@resumename{}
|
|
\def\@resumeheadline{}
|
|
\def\@resumecontact{}
|
|
|
|
\newcommand{\name}[1]{\def\@resumename{#1}}
|
|
\newcommand{\headline}[1]{\def\@resumeheadline{#1}}
|
|
\newcommand{\contactline}[1]{\def\@resumecontact{#1}}
|
|
|
|
\newcommand{\printresumeheader}{%
|
|
{\LARGE\bfseries \@resumename}\par
|
|
\vspace{0.15em}
|
|
\ifthenelse{\equal{\@resumeheadline}{}}{}{\@resumeheadline\par}
|
|
\vspace{0.1em}
|
|
{\small \@resumecontact}\par
|
|
\vspace{0.45em}
|
|
}
|
|
|
|
\AtBeginDocument{\printresumeheader}
|
|
|
|
\newenvironment{rSection}[1]{%
|
|
\vspace{0.35em}
|
|
{\bfseries #1}\par
|
|
\vspace{0.1em}\hrule\vspace{0.35em}
|
|
}{%
|
|
\vspace{0.2em}
|
|
}
|
|
|
|
% Arguments: employer, dates, formal title, location.
|
|
\newenvironment{rSubsection}[4]{%
|
|
\Needspace{6\baselineskip}%
|
|
{\bfseries #1}\hfill{\small #2}\par
|
|
{\itshape #3}\hfill{\itshape #4}\par
|
|
\vspace{0.1em}
|
|
\begin{itemize}[leftmargin=1.25em,label=\textbullet,itemsep=0.18em,topsep=0.15em,parsep=0pt,partopsep=0pt]
|
|
}{%
|
|
\end{itemize}
|
|
\vspace{0.25em}
|
|
}
|
|
|
|
\newcommand{\skillline}[2]{%
|
|
\textbf{#1:} #2\par
|
|
\vspace{0.08em}
|
|
}
|
|
|
|
\newcommand{\compactentry}[2]{%
|
|
\textbf{#1}\hfill #2\par
|
|
}
|