Update awesome-cv.cls
This commit is contained in:
@ -54,7 +54,7 @@
|
||||
\RequirePackage{ragged2e}
|
||||
% Needed to configure page layout
|
||||
\RequirePackage{geometry}
|
||||
% Needed to make header & footer effeciently
|
||||
% Needed to make header & footer efficiently
|
||||
\RequirePackage{fancyhdr}
|
||||
% Needed to manage colors
|
||||
\RequirePackage{xcolor}
|
||||
@ -62,6 +62,8 @@
|
||||
\RequirePackage{ifxetex}
|
||||
% Needed to use \if-\then-\else statement
|
||||
\RequirePackage{xifthen}
|
||||
% Needed to strip chars from telephone number
|
||||
\RequirePackage{xstring}
|
||||
% Needed to use a toolbox of programming tools
|
||||
\RequirePackage{etoolbox}
|
||||
% Needed to change line spacing in specific environment
|
||||
@ -73,30 +75,30 @@
|
||||
% Needed to manage math fonts
|
||||
\RequirePackage{unicode-math}
|
||||
% Needed to use icons from font-awesome
|
||||
% (https://github.com/posquit0/latex-fontawesome)
|
||||
\RequirePackage{fontawesome}
|
||||
\RequirePackage{fontawesome5}
|
||||
\RequirePackage{roboto}
|
||||
\RequirePackage[default,opentype]{sourcesanspro}
|
||||
% Needed for the photo ID
|
||||
\RequirePackage[skins]{tcolorbox}
|
||||
% Needed to deal a paragraphs
|
||||
\RequirePackage{parskip}
|
||||
% Needed to deal hyperlink
|
||||
\RequirePackage[hidelinks,unicode]{hyperref}
|
||||
\RequirePackage[hidelinks,unicode,pdfpagelabels=false]{hyperref}
|
||||
\hypersetup{%
|
||||
pdftitle={},
|
||||
pdfauthor={},
|
||||
pdfsubject={},
|
||||
pdfkeywords={}
|
||||
}
|
||||
|
||||
% Solves issues Warning: File `cv.out' has changed
|
||||
\RequirePackage{bookmark}
|
||||
|
||||
%-------------------------------------------------------------------------------
|
||||
% Configuration for directory locations
|
||||
%-------------------------------------------------------------------------------
|
||||
% Configure a directory location for fonts(default: 'fonts/')
|
||||
% Configure an optional directory location for fonts(default: 'fonts/')
|
||||
% Not required anymore but left in place for backward compatability.
|
||||
\newcommand*{\fontdir}[1][fonts/]{\def\@fontdir{#1}}
|
||||
\fontdir
|
||||
|
||||
|
||||
%-------------------------------------------------------------------------------
|
||||
% Configuration for layout
|
||||
@ -136,6 +138,7 @@
|
||||
\colorlet{text}{darkgray}
|
||||
\colorlet{graytext}{gray}
|
||||
\colorlet{lighttext}{lightgray}
|
||||
\colorlet{sectiondivider}{gray}
|
||||
% Awesome colors
|
||||
\definecolor{awesome-emerald}{HTML}{00A388}
|
||||
\definecolor{awesome-skyblue}{HTML}{0395DE}
|
||||
@ -160,24 +163,8 @@
|
||||
%-------------------------------------------------------------------------------
|
||||
% Configuration for fonts
|
||||
%-------------------------------------------------------------------------------
|
||||
|
||||
% Set font for header (default is Roboto)
|
||||
\newfontfamily\headerfont[
|
||||
Path=\@fontdir,
|
||||
UprightFont=*-Regular,
|
||||
ItalicFont=*-Italic,
|
||||
BoldFont=*-Bold,
|
||||
BoldItalicFont=*-BoldItalic,
|
||||
]{Roboto}
|
||||
|
||||
\newfontfamily\headerfontlight[
|
||||
Path=\@fontdir,
|
||||
UprightFont=*-Thin,
|
||||
ItalicFont=*-ThinItalic,
|
||||
BoldFont=*-Medium,
|
||||
BoldItalicFont=*-MediumItalic,
|
||||
]{Roboto}
|
||||
|
||||
\newcommand*{\headerfont}{\roboto}
|
||||
\newcommand*{\headerfontlight}{\robotolight}
|
||||
\newcommand*{\footerfont}{\sourcesanspro}
|
||||
\newcommand*{\bodyfont}{\sourcesanspro}
|
||||
\newcommand*{\bodyfontlight}{\sourcesansprolight}
|
||||
@ -269,17 +256,30 @@
|
||||
\newcommand*{\address}[1]{\def\@address{#1}}
|
||||
|
||||
% Define writer's position
|
||||
% Usage: \name{<position>}
|
||||
% Usage: \position{<position>}
|
||||
\newcommand*{\position}[1]{\def\@position{#1}}
|
||||
|
||||
% Defines writer's mobile (optional)
|
||||
% Usage: \mobile{<mobile number>}
|
||||
\newcommand*{\mobile}[1]{\def\@mobile{#1}}
|
||||
\newcommand*{\mobile}[1]
|
||||
{
|
||||
\def\@mobile{#1}
|
||||
\def\@teluri{tel:\@mobile}
|
||||
% Strip unwanted characters
|
||||
\StrDel{\@teluri}{ }[\@teluri]%
|
||||
\StrDel{\@teluri}{-}[\@teluri]%
|
||||
\StrDel{\@teluri}{(}[\@teluri]%
|
||||
\StrDel{\@teluri}{)}[\@teluri]%
|
||||
}
|
||||
|
||||
% Defines writer's email (optional)
|
||||
% Usage: \email{<email adress>}
|
||||
% Usage: \email{<email address>}
|
||||
\newcommand*{\email}[1]{\def\@email{#1}}
|
||||
|
||||
% Defines writer's date of birth (optional)
|
||||
% Usage: \dateofbirth{<date>}
|
||||
\newcommand*{\dateofbirth}[1]{\def\@dateofbirth{#1}}
|
||||
|
||||
% Defines writer's homepage (optional)
|
||||
% Usage: \homepage{<url>}
|
||||
\newcommand*{\homepage}[1]{\def\@homepage{#1}}
|
||||
@ -292,6 +292,10 @@
|
||||
% Usage: \gitlab{<gitlab-nick>}
|
||||
\newcommand*{\gitlab}[1]{\def\@gitlab{#1}}
|
||||
|
||||
% Defines writer's bitbucket (optional)
|
||||
% Usage: \bitbucket{<bitbucket-nick>}
|
||||
\newcommand*{\bitbucket}[1]{\def\@bitbucket{#1}}
|
||||
|
||||
% Defines writer's stackoverflow profile (optional)
|
||||
% Usage: \stackoverflow{<so userid>}{<so username>}
|
||||
% e.g.https://stackoverflow.com/users/123456/sam-smith
|
||||
@ -302,9 +306,22 @@
|
||||
% Usage: \linkedin{<linked-in-nick>}
|
||||
\newcommand*{\linkedin}[1]{\def\@linkedin{#1}}
|
||||
|
||||
% Defines writer's orcid (optional)
|
||||
% Usage: \orcid{<orcid-num>}
|
||||
\newcommand*{\orcid}[1]{\def\@orcid{#1}}
|
||||
|
||||
% Defines writer's twitter (optional)
|
||||
% Usage: \twitter{<twitter handle>}
|
||||
\newcommand*{\twitter}[1]{\def\@twitter{#1}}
|
||||
|
||||
% Defines writer's Mastodon (optional)
|
||||
% Usage: \mastodon{<instance>}{<mastodon-nick>}
|
||||
\newcommand*{\mastodon}[2]{\def\@mastodoninstance{#1}\def\@mastodonname{#2}}
|
||||
|
||||
% Defines writer's resarchgate (optional)
|
||||
% Usage: \researchgate{<researchgate-account>}
|
||||
\newcommand*{\researchgate}[1]{\def\@researchgate{#1}}
|
||||
|
||||
% Defines writer's skype (optional)
|
||||
% Usage: \skype{<skype account>}
|
||||
\newcommand*{\skype}[1]{\def\@skype{#1}}
|
||||
@ -317,9 +334,39 @@
|
||||
% Usage: \xing{<xing name>}
|
||||
\newcommand*{\xing}[1]{\def\@xing{#1}}
|
||||
|
||||
% Defines writer's twitter (optional)
|
||||
% Defines writer's extra informations (optional)
|
||||
% Usage: \extrainfo{<extra informations>}
|
||||
% Defines writer's medium profile (optional)
|
||||
% Usage: \medium{<medium account>}
|
||||
\newcommand*{\medium}[1]{\def\@medium{#1}}
|
||||
|
||||
% Defines writer's kaggle (optional)
|
||||
% Usage: \kaggle{<kaggle handle>}
|
||||
\newcommand*{\kaggle}[1]{\def\@kaggle{#1}}
|
||||
|
||||
% Defines writer's Hackerrank (optional)
|
||||
% Usage: \hackerrank{<Hackerrank profile name>}
|
||||
\newcommand*{\hackerrank}[1]{\def\@hackerrank{#1}}
|
||||
|
||||
% Defines writer's Telegram (optional)
|
||||
% Usage: \telegram{<Telegram username>}
|
||||
\newcommand*{\telegram}[1]{\def\@telegram{#1}}
|
||||
|
||||
% Defines writer's google scholar profile (optional)
|
||||
% Usage: \googlescholar{<googlescholar userid>}{<googlescholar username>}
|
||||
% e.g.https://scholar.google.co.uk/citations?user=wpZDx1cAAAAJ
|
||||
% would be \googlescholar{wpZDx1cAAAAJ}{Name-to-display-next-icon}
|
||||
% If 'googlescholar-name' is not provided than it defaults to
|
||||
% '\firstname \lastname'
|
||||
\newcommand*{\googlescholar}[2]{%
|
||||
\def\@googlescholarid{#1}%
|
||||
\ifthenelse{\equal{#2}{}}{%
|
||||
\def\@googlescholarname{\@firstname~\@lastname}%
|
||||
}{%
|
||||
\def\@googlescholarname{#2}%
|
||||
}%
|
||||
}
|
||||
|
||||
% Defines writer's extra information (optional)
|
||||
% Usage: \extrainfo{<extra information>}
|
||||
\newcommand*{\extrainfo}[1]{\def\@extrainfo{#1}}
|
||||
|
||||
% Defines writer's quote (optional)
|
||||
@ -438,7 +485,7 @@
|
||||
\ifthenelse{\isundefined{\@mobile}}%
|
||||
{}%
|
||||
{%
|
||||
\faMobile\acvHeaderIconSep\@mobile%
|
||||
\href{\@teluri}{\faMobile\acvHeaderIconSep\@mobile}%
|
||||
\setbool{isstart}{false}%
|
||||
}%
|
||||
\ifthenelse{\isundefined{\@email}}%
|
||||
@ -447,6 +494,13 @@
|
||||
\ifbool{isstart}{\setbool{isstart}{false}}{\acvHeaderSocialSep}%
|
||||
\href{mailto:\@email}{\faEnvelope\acvHeaderIconSep\@email}%
|
||||
}%
|
||||
\ifthenelse{\isundefined{\@dateofbirth}}%
|
||||
{}%
|
||||
{%
|
||||
\ifbool{isstart}{\setbool{isstart}{false}}{\acvHeaderSocialSep}%
|
||||
% \mbox prevents wrapping of elements%
|
||||
\mbox{\faBirthdayCake\acvHeaderIconSep\@dateofbirth}%
|
||||
}%
|
||||
\ifthenelse{\isundefined{\@homepage}}%
|
||||
{}%
|
||||
{%
|
||||
@ -465,6 +519,12 @@
|
||||
\ifbool{isstart}{\setbool{isstart}{false}}{\acvHeaderSocialSep}%
|
||||
\href{https://gitlab.com/\@gitlab}{\faGitlab\acvHeaderIconSep\@gitlab}%
|
||||
}%
|
||||
\ifthenelse{\isundefined{\@bitbucket}}%
|
||||
{}%
|
||||
{%
|
||||
\ifbool{isstart}{\setbool{isstart}{false}}{\acvHeaderSocialSep}%
|
||||
\href{https://bitbucket.com/\@bitbucket}{\faBitbucket\acvHeaderIconSep\@bitbucket}%
|
||||
}%
|
||||
\ifthenelse{\isundefined{\@stackoverflowid}}%
|
||||
{}%
|
||||
{%
|
||||
@ -475,7 +535,13 @@
|
||||
{}%
|
||||
{%
|
||||
\ifbool{isstart}{\setbool{isstart}{false}}{\acvHeaderSocialSep}%
|
||||
\href{https://www.linkedin.com/in/\@linkedin}{\faLinkedinSquare\acvHeaderIconSep\@linkedin}%
|
||||
\href{https://www.linkedin.com/in/\@linkedin}{\faLinkedin\acvHeaderIconSep\@linkedin}%
|
||||
}%
|
||||
\ifthenelse{\isundefined{\@orcid}}%
|
||||
{}%
|
||||
{%
|
||||
\ifbool{isstart}{\setbool{isstart}{false}}{\acvHeaderSocialSep}%
|
||||
\href{https://orcid.org/\@orcid}{\faOrcid\acvHeaderIconSep\@orcid}%
|
||||
}%
|
||||
\ifthenelse{\isundefined{\@twitter}}%
|
||||
{}%
|
||||
@ -483,6 +549,12 @@
|
||||
\ifbool{isstart}{\setbool{isstart}{false}}{\acvHeaderSocialSep}%
|
||||
\href{https://twitter.com/\@twitter}{\faTwitter\acvHeaderIconSep\@twitter}%
|
||||
}%
|
||||
\ifthenelse{\isundefined{\@mastodonname}}%
|
||||
{}%
|
||||
{%
|
||||
\ifbool{isstart}{\setbool{isstart}{false}}{\acvHeaderSocialSep}%
|
||||
\href{https://\@mastodoninstance/@\@mastodonname}{\faMastodon\acvHeaderIconSep\@mastodonname}%
|
||||
}%
|
||||
\ifthenelse{\isundefined{\@skype}}%
|
||||
{}%
|
||||
{%
|
||||
@ -495,12 +567,48 @@
|
||||
\ifbool{isstart}{\setbool{isstart}{false}}{\acvHeaderSocialSep}%
|
||||
\href{https://www.reddit.com/user/\@reddit}{\faReddit\acvHeaderIconSep\@reddit}%
|
||||
}%
|
||||
\ifthenelse{\isundefined{\@researchgate}}%
|
||||
{}%
|
||||
{%
|
||||
\ifbool{isstart}{\setbool{isstart}{false}}{\acvHeaderSocialSep}%
|
||||
\href{https://www.researchgate.net/profile/\@researchgate}{\faResearchgate\acvHeaderIconSep\@researchgate}%
|
||||
}%
|
||||
\ifthenelse{\isundefined{\@xing}}%
|
||||
{}%
|
||||
{%
|
||||
\ifbool{isstart}{\setbool{isstart}{false}}{\acvHeaderSocialSep}%
|
||||
\href{https://www.xing.com/profile/\@xing}{\faXingSquare\acvHeaderIconSep\@xing}
|
||||
}%
|
||||
\ifthenelse{\isundefined{\@medium}}%
|
||||
{}%
|
||||
{%
|
||||
\ifbool{isstart}{\setbool{isstart}{false}}{\acvHeaderSocialSep}%
|
||||
\href{https://medium.com/@\@medium}{\faMedium\acvHeaderIconSep\@medium}%
|
||||
}%
|
||||
\ifthenelse{\isundefined{\@kaggle}}%
|
||||
{}%
|
||||
{%
|
||||
\ifbool{isstart}{\setbool{isstart}{false}}{\acvHeaderSocialSep}%
|
||||
\href{https://kaggle.com/\@kaggle}{\faKaggle\acvHeaderIconSep\@kaggle}%
|
||||
}%
|
||||
\ifthenelse{\isundefined{\@hackerrank}}%
|
||||
{}%
|
||||
{%
|
||||
\ifbool{isstart}{\setbool{isstart}{false}}{\acvHeaderSocialSep}%
|
||||
\href{https://www.hackerrank.com/\@hackerrank}{\faHackerrank\acvHeaderIconSep\@hackerrank}%
|
||||
}%
|
||||
\ifthenelse{\isundefined{\@telegram}}%
|
||||
{}%
|
||||
{%
|
||||
\ifbool{isstart}{\setbool{isstart}{false}}{\acvHeaderSocialSep}%
|
||||
\href{https://t.me/\@telegram}{\faTelegram\acvHeaderIconSep\@telegram}%
|
||||
}%
|
||||
\ifthenelse{\isundefined{\@googlescholarid}}%
|
||||
{}%
|
||||
{%
|
||||
\ifbool{isstart}{\setbool{isstart}{false}}{\acvHeaderSocialSep}%
|
||||
\href{https://scholar.google.com/citations?user=\@googlescholarid}{\faGraduationCap\acvHeaderIconSep\@googlescholarname}%
|
||||
}%
|
||||
\ifthenelse{\isundefined{\@extrainfo}}%
|
||||
{}%
|
||||
{%
|
||||
@ -532,7 +640,7 @@
|
||||
\vspace{\acvSectionTopSkip}
|
||||
\sectionstyle{#1}
|
||||
\phantomsection
|
||||
\color{gray}\vhrulefill{0.9pt}
|
||||
\color{sectiondivider}\vhrulefill{0.9pt}
|
||||
}
|
||||
|
||||
% Define a subsection for CV
|
||||
@ -564,7 +672,7 @@
|
||||
% Define an entry of cv information
|
||||
% Usage: \cventry{<position>}{<title>}{<location>}{<date>}{<description>}
|
||||
\newcommand*{\cventry}[5]{%
|
||||
\vspace{-2.0mm}
|
||||
\vspace{1.0mm}
|
||||
\setlength\tabcolsep{0pt}
|
||||
\setlength{\extrarowheight}{0pt}
|
||||
\begin{tabular*}{\textwidth}{@{\extracolsep{\fill}} L{\textwidth - 4.5cm} R{4.5cm}}
|
||||
@ -572,7 +680,9 @@
|
||||
{\entrypositionstyle{#1} & \entrydatestyle{#4} \\}
|
||||
{\entrytitlestyle{#2} & \entrylocationstyle{#3} \\
|
||||
\entrypositionstyle{#1} & \entrydatestyle{#4} \\}
|
||||
\multicolumn{2}{L{\textwidth}}{\descriptionstyle{#5}}
|
||||
\ifstrempty{#5}
|
||||
{}
|
||||
{\multicolumn{2}{L{\textwidth}}{\descriptionstyle{#5}} \\}
|
||||
\end{tabular*}%
|
||||
}
|
||||
|
||||
@ -615,7 +725,7 @@
|
||||
% Define a line of cv information(honor, award or something else)
|
||||
% Usage: \cvhonor{<position>}{<title>}{<location>}{<date>}
|
||||
\newcommand*{\cvhonor}[4]{%
|
||||
\honordatestyle{#4} & \honorpositionstyle{#1}, \honortitlestyle{#2} & \honorlocationstyle{#3} \\
|
||||
\honordatestyle{#4} & \honorpositionstyle{#1}\ifempty{#2}{}{,} \honortitlestyle{#2} & \honorlocationstyle{#3} \\
|
||||
}
|
||||
|
||||
% Define an environment for cvskill
|
||||
@ -665,8 +775,9 @@
|
||||
\par\addvspace{2.5ex}
|
||||
\phantomsection{}
|
||||
\lettersectionstyle{#1}
|
||||
\color{gray}\vhrulefill{0.9pt}
|
||||
\color{sectiondivider}\vhrulefill{0.9pt}
|
||||
\par\nobreak\addvspace{0.4ex}
|
||||
\lettertextstyle
|
||||
}
|
||||
|
||||
% Define a title of the cover letter
|
||||
|
Reference in New Issue
Block a user