Files
resume/comcv.cls
T

163 lines
4.7 KiB
OpenEdge ABL
Raw Normal View History

2021-01-22 19:23:04 +05:30
%% comcv.cls
%% Copyright 2021 Avinal Kumar
% Based on Adaptive CV by Alessandro Rossini
% class options
\NeedsTexFormat{LaTeX2e}
\ProvidesClass{comcv}[2021/01/21 Compact CV]
\DeclareOption*{
\PassOptionsToClass{\CurrentOption}{article}
}
\ProcessOptions\relax
\LoadClass{article}
% required packages - put more packages here
\RequirePackage[hmargin=1.25cm, vmargin=0.75cm]{geometry} % Change Horizontal and Vertical margins
\RequirePackage{fontawesome} % fontawesomr icons
\RequirePackages{xcolor} % custom colors
\RequirePackage{hyperref} % for links and
2021-01-22 20:54:41 +05:30
\RequirePackage{fontspec} % custom fonts
\RequirePackage{array}
\RequirePackage{totpages} % counts total pages
\RequirePackage{fancyhdr}
2021-01-22 19:23:04 +05:30
% define your colors here
\definecolor{white}{HTML}{FFFFFF} % color white
\definecolor{lightgray}{HTML}{999999} % color light gray
\definecolor{gray}{HTML}{555555} % color gray
\definecolor{paynegray}{HTML}{353E49} % color payne gray
\definecolor{black}{HTML}{000000} % color black
\definecolor{colorpink}{HTML}{FF706C} % color coral pink, ever seen a real coral, huh
% provide colors to your elements
\colorlet{regulartext}{gray}
\colorlet{headertext}{white}
\colorlet{headerfill}{paynegray}
\colorlet{linktext}{coralpink}
\colorlet{lighttext}{lightgray}
2021-01-22 20:54:41 +05:30
% hyperref options for generating pdf, metadata
\hypersetup{
pdfauthor={\comcv@firstname~\adcv@lastname}, % author of the file
pdftitle={\comcv@firstname~\adcv@lastname}, % title for the generated pdf
pdfsubject={Resume},
pdfpagemode=UseOutlines,
bookmarksopen=true,
pdfstartview=Fit,
colorlinks=true,
allcolors=linktext
}
% font options
\setmainfont[
Path=fonts/,
BoldFont=Roboto-Bold.ttf,
ItalicFont=Roboto-Italic.ttf,
BoldItalicFont=Roboto-BoldItalic.ttf,
Color=regulartext
]{Roboto-Light.ttf}
\newfontfamily\regular[
Path = fonts/,
Color=regulartext
]{Roboto-Regular.ttf}
\newfontfamily\light[
Path = fonts/,
Color=regulartext
]{Roboto-Light.ttf}
\newfontfamily\thin[
Path = fonts/,
Color=regulartext
]{Roboto-Thin.ttf}
\newfontfamily\regularheader[
Path = fonts/,
Color=headertext
]{Roboto-Regular.ttf}
2021-01-22 19:23:04 +05:30
2021-01-22 20:54:41 +05:30
\newfontfamily\thinheader[
Path = fonts/,
Color=headertext
]{Roboto-Thin.ttf}
2021-01-22 19:23:04 +05:30
2021-01-22 20:54:41 +05:30
% define document commands/variables
\newcommand*{\fullname}[3]{\def\comcv@firstname{#1}\def\cpmcv@middlename{#2}\def\comcv@lastname{#3}} % full name
\newcommand*{\cvtitle}[1]{\def\comcv@title{#1}} % title of the document
\newcommand*{\email}[1]{\def\comcv@mailid{#1}} % email id and email text
\def\comcv@email{\faEnvelop~\href{mailto:\comcv@mailid}{\comcv@mailid}}
\newcommand*{\website}[2]{\def\comcv@websiteurl{#1}\def\comcv@websitetext{#2}} % website and website text
\ifdefined\comcv@websiteurl
\ifx\comcv@websiteurl\empty
\def\comcv@website{}
\else
\def\comcv@website{\faGlobe~\href{\comcv@websiteurl}{\comcv@websitetext}}
\fi
\else
\def\comcv@website{}
\fi
\newcommand*{\github}[2]{\def\comcv@githuburl{#1}\def\comcv@githubtext{#2}} % github
\ifdefined\comcv@githuburl
\ifx\comcv@githuburl\empty
\def\comcv@github{}
\else
\def\comcv@github{\faGithub~\href{\comcv@githuburl}{\comcv@githubtext}}
\fi
\else
\def\comcv@github{}
\fi
\newcommand*{\linkedin}[2]{\def\comcv@linkedinurl{#1}\def\comcv@linkedintext{#2}} % linkedin
\ifdefined\comcv@linkedinurl
\ifx\comcv@linkedinurl\empty
\def\comcv@linkedin{}
\else
\def\comcv@linkedin{\faLinkedin~\href{\comcv@linkedinurl}{\comcv@linkedintext}}
\fi
\else
\def\comcv@linkedin{}
\fi
% add more variables here
% redefining some commands
\def\@sectioncolor#1#2#3{{\addfontfeatures{Color=linktext}#1#2#3}}
\renewcommand{\section}[1]{{\Large\bfseries\@sectioncolor #1}}
\renewcommand{\subsection}[2]{\large\bfseries #2}
% header
\AtBeginDocument{
\begin{tikzpicture}[remember picture, overlay]
\node [rectangle, fill=headerfill, minimum width=\paperwidth, minimum height=8em, anchor=north] (box) at (current page.north) {};
\node [text=headertext, anchor=center] (name) at (box) {{\Huge\thinheader\comcv@firstname~\thinheader\comcv@middlename~\regularheader\comcv@lastname}
};
\node [text=headertext, anchor=north] at (name.south) {\Large\thinheader\comcv@title};
\end{tikzpicture}
}
\vspace{\baselineskip}
\begin{center}
\comcv@email~~\comcv@website~~\comcv@github~~\comcv@linkedin
\end{center}
% footer
\newcommand*{\currentdate}[1]{\def\comcv@date{#1}}
\def\comcv@totpages{~/~\ref{TotPages}}
\def\comcv@page{\comcv@pagekey~\thepage\comcv@totpages}
\AtBeginDocument{
\pagestyle{fancy}
\fancyhead{}
\fancyfoot[C]{\footnotesize\light\comcv@date}
\fancyfoot[R]{\raggedleft\footnotesize\light\comcv@page}
\renewcommand{\headrulewidth}{0em}
\setlength\footskip{\baselineskip}
}