Files
resume/old/kyvernitis-resume.cls
2025-09-23 19:56:42 -04:00

191 lines
4.9 KiB
TeX

% Class Identifier and Version
\ProvidesClass{kyvernitis-resume}[2023/06/06 Kyvernitis class]
\NeedsTeXFormat{LaTeX2e}
% Set font size and paper type
\LoadClass[11pt,letterpaper]{article}
% Enable custom and named colors
\RequirePackage[usenames,dvipsnames]{color}
% Remove paragraph indentation
\RequirePackage[parfill]{parskip}
% Set margin width
\RequirePackage[hmargin=1.25cm,vmargin=0.75cm]{geometry}
% Use cool fonts
\RequirePackage{fontspec}
% Using IBM Plex Sans
\RequirePackage[sfdefault,light]{plex-sans}
% Use hyperref
\RequirePackage[xetex]{hyperref}
% Use extended columns definitions
\RequirePackage{array}
% Make custom tables
\RequirePackage{tabularx}
% Use FontAwesome icons
\RequirePackage{fontawesome5}
% Adjust page width in the middle of the page
\RequirePackage{changepage}
% Adjust bullet size
\RequirePackage{scalerel}
% Remove page numbers
\pagestyle{empty}
% Define navy-blue color for later use. Color code is taken from Canva
\definecolor{navyblue}{RGB}{0, 83, 137}
\definecolor{links}{RGB}{3, 43, 198}
% Define new resizable bullet with default 0.7 size for later use
% Taken from https://tex.stackexchange.com/questions/534192/medium-sized-circle-as-a-bullet
\newcommand{\vbullet}[1][.7]{\mathbin{\ThisStyle{\vcenter{\hbox{%
\scalebox{#1}{$\SavedStyle\bullet$}}}}}%
}
% Setup Hyperlink style
\hypersetup{
colorlinks=true,
urlcolor=links
}
% Define some social accounts and contact information formats
\newcommand{\linkedin}[1]{
\href{https://linkedin.com/in/#1}{\textcolor{black}
{\faLinkedinIn}\hspace{0.5em}#1}
}
\newcommand{\email}[1]{
\href{mailto:#1}{\textcolor{black}
{\faEnvelope[regular]}\hspace{0.5em}#1}
}
\newcommand{\github}[1]{
\href{https://github.com/#1}{\textcolor{black}
{\faGithub}\hspace{0.5em}#1}
}
\newcommand{\twitter}[1]{
\href{https://twitter.com/#1}{\textcolor{black}
{\faTwitter}\hspace{0.5em}#1}
}
\newcommand{\facebook}[1]{
\href{https://www.facebook.com/#1}{\textcolor{black}
{\faFacebookF}\hspace{0.5em}#1}
}
\newcommand{\website}[1]{
\href{https://#1}{\textcolor{black}
{\faGlobeAmericas}\hspace{0.5em}#1}
}
\newcommand{\phone}[1]{
\textcolor{black}{\faPhone*}\hspace{0.5em}#1
}
\newcommand{\nationality}[1]{
\textcolor{black}{\faFlagUsa}\hspace{0.5em}#1
}
\newcommand{\address}[1]{
\textcolor{black}{\faMapMarker*}\hspace{0.5em}#1
}
% Define commands for fullname and job title
\def \fullname#1{\def\@name{#1}}
\def \@name {}
\def \jobtitle#1{\def\@title{#1}}
\def \@title {}
% Convenience commands
\newcommand{\italicitem}[1]{\item{\textit{#1}}}
\newcommand{\bolditem}[1]{\item{\textbf{#1}}}
\newcommand{\entry}[2]{#1 & #2 \tabularnewline}
% Define the resume header
\newcommand{\resumeheader}[6]{
\phantomsection
% \addcontentsline{toc}{chapter}{\@name}
\begin{tabularx}{\textwidth}{Xr}{
\begin{tabular}[c]{l}
\fontsize{35}{45}\selectfont{\color{navyblue}{\textbf{\@name}}}
\ifx\empty\@title\empty\else
\\ \textit{\small\@title}
\fi
\end{tabular}
} & {
\begin{tabular}[c]{l@{\hspace{1em}}l}
\entry{\small#4}{\small#1}
\entry{\small#5}{\small#2}
\entry{\small#6}{\small#3}
\end{tabular}
}
\end{tabularx}
}
% Renew section command for resume section
\renewenvironment{section}[1]{
\phantomsection
\addcontentsline{toc}{section}{#1}
\medskip
{\color{navyblue}{\textbf{\textit{#1}}}}
\medskip
{\color{navyblue}\hrule}
\begin{list}{}{
\setlength{\leftmargin}{1.5em}
}
\item[]
}{
\end{list}
}
% Renew subsection command for resume subsections
% All arguments are compulsory
% #1: Name, #2: Description, #3: Time Period, #4: Location
\renewenvironment{subsection}[4]{
\phantomsection
\addcontentsline{toc}{subsection}{#1}
\textbf{#1} \hfill \textit{#3} \newline
\textit{#2} \hfill \textit{#4}
\smallskip
\begin{list}{$\vbullet$}{
\leftmargin=2em
}
\itemsep -0.5em \vspace{-0.5em}
}{
\end{list}
\\ \\ \\
}
% Define command for resume subsections with no bullets
% All arguments are compulsory
% #1: Name, #2: Description, #3: Time Period, #4: Location
\newenvironment{subsectionnobullet}[4]{
\phantomsection
\addcontentsline{toc}{subsection}{#1}
\textbf{#1} \hfill \textit{#3} \newline
\textit{#2} \hfill \textit{#4}
\smallskip
\begin{list}{}{
\leftmargin=0em \itemindent=0em \labelwidth=0em \labelsep=0em
}
\itemsep -0.7em \vspace{-0.7em}
}{
\end{list}
}
% Define new sectiontable command, which makes a section with a table
% All arguments are compulsory
% #1: Name of the section, #2: Body of the section
\newcommand{\sectiontable}[2]{
\begin{section}{#1}
\begin{adjustwidth}{0.0in}{0.1in}
\begin{tabularx}{\linewidth}{@{} >{\bfseries}l @{\hspace{5ex}} X @{}}
#2
\end{tabularx}
\end{adjustwidth}
\end{section}
}