From 2dc4c5a4b2d223fd4d2723fc2df549c7c03f61ec Mon Sep 17 00:00:00 2001 From: Devoalda Date: Wed, 12 Mar 2025 22:13:28 +0800 Subject: [PATCH] update --- CV.pdf | Bin 57386 -> 56744 bytes WoonJunWei_CV.pdf | Bin 57386 -> 56750 bytes awesome-cv.cls | 1492 ++++++++++++++++++++++----------------------- r/data.r | 17 +- 4 files changed, 756 insertions(+), 753 deletions(-) diff --git a/CV.pdf b/CV.pdf index 29bf1513817425b0f5d6184e51ed8b2d754eb3ce..c65852fc36c92f0e1094d82bc52209b17542f70c 100644 GIT binary patch delta 24009 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 delta 24630 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 O3OF=13MC~)Peuyt5vi~M diff --git a/WoonJunWei_CV.pdf b/WoonJunWei_CV.pdf index 29bf1513817425b0f5d6184e51ed8b2d754eb3ce..4e44b58045f402c1d03afd17d0c4a6fed04bd593 100644 GIT binary patch delta 24004 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 HMNdWwO~zlX delta 24592 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 Cbe@I) diff --git a/awesome-cv.cls b/awesome-cv.cls index a661570..0866676 100644 --- a/awesome-cv.cls +++ b/awesome-cv.cls @@ -1,746 +1,746 @@ -%% Start of file `awesome-cv.cls'. -% Awesome CV Class File -% -% This class has been downloaded from: -% https://github.com/posquit0/Awesome-CV -% -% Author: -% Claud D. Park -% http://www.posquit0.com -% -% Notes: -% 1) This class file defines the structure and layout of the template file (cv.tex, resume.tex). -% 2) It has been written in such a way that under most circumstances you -% should not need to edit it. -% -% Class license: -% LPPL v1.3c (http://www.latex-project.org/lppl) -% - - -%------------------------------------------------------------------------------- -% Identification -%------------------------------------------------------------------------------- -\ProvidesClass{awesome-cv}[2017/02/05 v1.6.1 Awesome Curriculum Vitae Class] -\NeedsTeXFormat{LaTeX2e} - - -%------------------------------------------------------------------------------- -% Class options -% -% (need to be done before the external package loading, for example because -% we need \paperwidth, \paperheight and \@ptsize to be defined before loading -% geometry and fancyhdr) -%------------------------------------------------------------------------------- -% Options for draft or final -\DeclareOption{draft}{\setlength\overfullrule{5pt}} -\DeclareOption{final}{\setlength\overfullrule{0pt}} -% Inherit options of article -\DeclareOption*{% - \PassOptionsToClass{\CurrentOption}{article} -} -\ProcessOptions\relax -\LoadClass{article} - - -%------------------------------------------------------------------------------- -% 3rd party packages -%------------------------------------------------------------------------------- -% Needed to make fixed length table -\RequirePackage{array} -% Needed to handle list environment -\RequirePackage{enumitem} -% Needed to handle text alignment -\RequirePackage{ragged2e} -% Needed to configure page layout -\RequirePackage{geometry} -% Needed to make header & footer effeciently -\RequirePackage{fancyhdr} -% Needed to manage colors -\RequirePackage{xcolor} -% Needed to use \ifxetex-\else-\fi statement -\RequirePackage{ifxetex} -% Needed to use \if-\then-\else statement -\RequirePackage{xifthen} -% Needed to use a toolbox of programming tools -\RequirePackage{etoolbox} -% Needed to change line spacing in specific environment -\RequirePackage{setspace} -% Needed to manage fonts -\RequirePackage[quiet]{fontspec} -% To support LaTeX quoting style -\defaultfontfeatures{Ligatures=TeX} -% Needed to manage math fonts -\RequirePackage{unicode-math} -% Needed to use icons from font-awesome -% (https://github.com/posquit0/latex-fontawesome) -\defaultfontfeatures{Extension = .otf} -\RequirePackage{fontawesome} -% Add support of academia icons -\usepackage{academicons} -\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} -\hypersetup{% - pdftitle={}, - pdfauthor={}, - pdfsubject={}, - pdfkeywords={} -} - - -%------------------------------------------------------------------------------- -% Configuration for directory locations -%------------------------------------------------------------------------------- -% Configure a directory location for fonts(default: 'fonts/') -\newcommand*{\fontdir}[1][fonts/]{\def\@fontdir{#1}} -\fontdir - - -%------------------------------------------------------------------------------- -% Configuration for layout -%------------------------------------------------------------------------------- -%% Page Layout -% Configure page margins with geometry -\geometry{left=2.0cm, top=1.5cm, right=2.0cm, bottom=2.0cm, footskip=.5cm} - -%% Header & Footer -% Set offset to each header and footer -\fancyhfoffset{0em} -% Remove head rule -\renewcommand{\headrulewidth}{0pt} -% Clear all header & footer fields -\fancyhf{} -% Enable if you want to make header or footer using fancyhdr -\pagestyle{fancy} - - -%------------------------------------------------------------------------------- -% Configuration for colors -%------------------------------------------------------------------------------- -% Gray-scale colors -\definecolor{white}{HTML}{FFFFFF} -\definecolor{black}{HTML}{000000} -\definecolor{darkgray}{HTML}{333333} -\definecolor{gray}{HTML}{5D5D5D} -\definecolor{lightgray}{HTML}{999999} -% Basic colors -\definecolor{green}{HTML}{C2E15F} -\definecolor{orange}{HTML}{FDA333} -\definecolor{purple}{HTML}{D3A4F9} -\definecolor{red}{HTML}{FB4485} -\definecolor{blue}{HTML}{6CE0F1} -% Text colors -\definecolor{darktext}{HTML}{414141} -\colorlet{text}{darkgray} -\colorlet{graytext}{gray} -\colorlet{lighttext}{lightgray} -% Awesome colors -\definecolor{awesome-emerald}{HTML}{00A388} -\definecolor{awesome-skyblue}{HTML}{0395DE} -\definecolor{awesome-red}{HTML}{DC3522} -\definecolor{awesome-pink}{HTML}{EF4089} -\definecolor{awesome-orange}{HTML}{FF6138} -\definecolor{awesome-nephritis}{HTML}{27AE60} -\definecolor{awesome-concrete}{HTML}{95A5A6} -\definecolor{awesome-darknight}{HTML}{131A28} -\colorlet{awesome}{awesome-red} - -% Boolean value to switch section color highlighting -\newbool{acvSectionColorHighlight} -\setbool{acvSectionColorHighlight}{true} - -% Awesome section color -\def\@sectioncolor#1#2#3{% - \ifbool{acvSectionColorHighlight}{{\color{awesome}#1#2#3}}{#1#2#3}% -} - - -%------------------------------------------------------------------------------- -% Configuration for fonts -%------------------------------------------------------------------------------- -% Set the FontAwesome font to be up-to-date. -%\newfontfamily\FA[Path=\@fontdir]{FontAwesome} -% 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*{\footerfont}{\sourcesanspro} -\newcommand*{\bodyfont}{\sourcesanspro} -\newcommand*{\bodyfontlight}{\sourcesansprolight} - -%------------------------------------------------------------------------------- -% Configuration for styles -%------------------------------------------------------------------------------- -% Configure styles for each CV elements -% For fundamental structures -\newcommand*{\headerfirstnamestyle}[1]{{\fontsize{32pt}{1em}\headerfontlight\color{graytext} #1}} -\newcommand*{\headerlastnamestyle}[1]{{\fontsize{32pt}{1em}\headerfont\bfseries\color{text} #1}} -\newcommand*{\headerpositionstyle}[1]{{\fontsize{7.6pt}{1em}\bodyfont\scshape\color{awesome} #1}} -\newcommand*{\headeraddressstyle}[1]{{\fontsize{8pt}{1em}\headerfont\itshape\color{lighttext} #1}} -\newcommand*{\headersocialstyle}[1]{{\fontsize{6.8pt}{1em}\headerfont\color{text} #1}} -\newcommand*{\headerquotestyle}[1]{{\fontsize{9pt}{1em}\bodyfont\itshape\color{darktext} #1}} -\newcommand*{\footerstyle}[1]{{\fontsize{8pt}{1em}\footerfont\scshape\color{lighttext} #1}} -\newcommand*{\sectionstyle}[1]{{\fontsize{16pt}{1em}\bodyfont\bfseries\color{text}\@sectioncolor #1}} -\newcommand*{\subsectionstyle}[1]{{\fontsize{12pt}{1em}\bodyfont\scshape\textcolor{text}{#1}}} -\newcommand*{\paragraphstyle}{\fontsize{9pt}{1em}\bodyfontlight\upshape\color{text}} - -% For elements of entry -\newcommand*{\entrytitlestyle}[1]{{\fontsize{10pt}{1em}\bodyfont\bfseries\color{darktext} #1}} -\newcommand*{\entrypositionstyle}[1]{{\fontsize{8pt}{1em}\bodyfont\scshape\color{graytext} #1}} -\newcommand*{\entrydatestyle}[1]{{\fontsize{8pt}{1em}\bodyfontlight\slshape\color{graytext} #1}} -\newcommand*{\entrylocationstyle}[1]{{\fontsize{9pt}{1em}\bodyfontlight\slshape\color{awesome} #1}} -\newcommand*{\descriptionstyle}[1]{{\fontsize{9pt}{1em}\bodyfontlight\upshape\color{text} #1}} - -% For elements of subentry -\newcommand*{\subentrytitlestyle}[1]{{\fontsize{8pt}{1em}\bodyfont\mdseries\color{graytext} #1}} -\newcommand*{\subentrypositionstyle}[1]{{\fontsize{7pt}{1em}\bodyfont\scshape\color{graytext} #1}} -\newcommand*{\subentrydatestyle}[1]{{\fontsize{7pt}{1em}\bodyfontlight\slshape\color{graytext} #1}} -\newcommand*{\subentrylocationstyle}[1]{{\fontsize{7pt}{1em}\bodyfontlight\slshape\color{awesome} #1}} -\newcommand*{\subdescriptionstyle}[1]{{\fontsize{8pt}{1em}\bodyfontlight\upshape\color{text} #1}} - -% For elements of honor -\newcommand*{\honortitlestyle}[1]{{\fontsize{9pt}{1em}\bodyfont\color{graytext} #1}} -\newcommand*{\honorpositionstyle}[1]{{\fontsize{9pt}{1em}\bodyfont\bfseries\color{darktext} #1}} -\newcommand*{\honordatestyle}[1]{{\fontsize{9pt}{1em}\bodyfont\color{graytext} #1}} -\newcommand*{\honorlocationstyle}[1]{{\fontsize{9pt}{1em}\bodyfontlight\slshape\color{awesome} #1}} - -% For elements of skill -\newcommand*{\skilltypestyle}[1]{{\fontsize{10pt}{1em}\bodyfont\bfseries\color{darktext} #1}} -\newcommand*{\skillsetstyle}[1]{{\fontsize{9pt}{1em}\bodyfontlight\color{text} #1}} - -% For elements of the cover letter -\newcommand*{\lettersectionstyle}[1]{{\fontsize{14pt}{1em}\bodyfont\bfseries\color{text}\@sectioncolor #1}} -\newcommand*{\recipientaddressstyle}[1]{{\fontsize{9pt}{1em}\bodyfont\scshape\color{graytext} #1}} -\newcommand*{\recipienttitlestyle}[1]{{\fontsize{11pt}{1em}\bodyfont\bfseries\color{darktext} #1}} -\newcommand*{\lettertitlestyle}[1]{{\fontsize{10pt}{1em}\bodyfontlight\bfseries\color{darktext} \underline{#1}}} -\newcommand*{\letterdatestyle}[1]{{\fontsize{9pt}{1em}\bodyfontlight\slshape\color{graytext} #1}} -\newcommand*{\lettertextstyle}{\fontsize{10pt}{1.4em}\bodyfontlight\upshape\color{graytext}} -\newcommand*{\letternamestyle}[1]{{\fontsize{10pt}{1em}\bodyfont\bfseries\color{darktext} #1}} -\newcommand*{\letterenclosurestyle}[1]{{\fontsize{10pt}{1em}\bodyfontlight\slshape\color{lighttext} #1}} - - -%------------------------------------------------------------------------------- -% Commands for personal information -%------------------------------------------------------------------------------- -% Define photo ID -% Usage: \photo[circle|rectangle,edge|noedge,left|right]{} -\newcommand{\photo}[2][circle,edge,left]{% - \def\@photo{#2} - \@for\tmp:=#1\do{% - \ifthenelse{\equal{\tmp}{circle} \or \equal{\tmp}{rectangle}}% - {\let\@photoshape\tmp}{}% - \ifthenelse{\equal{\tmp}{edge} \or \equal{\tmp}{noedge}}% - {\let\@photoedge\tmp}{}% - \ifthenelse{\equal{\tmp}{left} \or \equal{\tmp}{right}}% - {\let\@photoalign\tmp}{}% - }% -} -\def\@photoshape{circle} -\def\@photoedge{edge} -\def\@photoalign{left} - -% Define writer's name -% Usage: \name{}{} -% Usage: \firstname{} -% Usage: \lastname{} -% Usage: \familyname{} -\newcommand*{\name}[2]{\def\@firstname{#1}\def\@lastname{#2}} -\newcommand*{\firstname}[1]{\def\@firstname{#1}} -\newcommand*{\lastname}[1]{\def\@lastname{#1}} -\newcommand*{\familyname}[1]{\def\@lastname{#1}} -\def\@familyname{\@lastname} - -% Define writer's address -% Usage: \address{
} -\newcommand*{\address}[1]{\def\@address{#1}} - -% Define writer's position -% Usage: \name{} -\newcommand*{\position}[1]{\def\@position{#1}} - -% Defines writer's mobile (optional) -% Usage: \mobile{} -\newcommand*{\mobile}[1]{\def\@mobile{#1}} - -% Defines writer's email (optional) -% Usage: \email{} -\newcommand*{\email}[1]{\def\@email{#1}} - -% Defines writer's homepage (optional) -% Usage: \homepage{} -\newcommand*{\homepage}[1]{\def\@homepage{#1}} - -% Defines writer's orcid (optional) -% Usage: \orcid{} -\newcommand*{\orcid}[1]{\def\@orcid{#1}} - -% Defines writer's Publons account (optional) -% Usage: \publons{} -\newcommand*{\publons}[1]{\def\@publons{#1}} - -% Defines writer's googlescholar account (optional) -% Usage: \googlescholar{} -\newcommand*{\googlescholar}[1]{\def\@googlescholar{#1}} - -% Defines writer's scobus account (optional) -% Usage: \researchgate{} -\newcommand*{\researchgate}[1]{\def\@researchgate{#1}} - -% Defines writer's github (optional) -% Usage: \github{} -\newcommand*{\github}[1]{\def\@github{#1}} - -% Defines writer's gitlab (optional) -% Usage: \gitlab{} -\newcommand*{\gitlab}[1]{\def\@gitlab{#1}} - -% Defines writer's stackoverflow profile (optional) -% Usage: \stackoverflow{}{} -% e.g.https://stackoverflow.com/users/123456/sam-smith -% would be \stackoverflow{123456}{sam-smith} -\newcommand*{\stackoverflow}[2]{\def\@stackoverflowid{#1}\def\@stackoverflowname{#2}} - -% Defines writer's linked-in (optional) -% Usage: \linkedin{} -\newcommand*{\linkedin}[1]{\def\@linkedin{#1}} - -% Usage: \twitter{} -\newcommand*{\twitter}[1]{\def\@twitter{#1}} - -% Defines writer's skype (optional) -% Usage: \skype{} -\newcommand*{\skype}[1]{\def\@skype{#1}} - -% Defines writer's reddit (optional) -% Usage: \reddit{} -\newcommand*{\reddit}[1]{\def\@reddit{#1}} - -% Defines writer's xing (optional) -% Usage: \xing{} -\newcommand*{\xing}[1]{\def\@xing{#1}} - -% Defines writer's twitter (optional) -% Defines writer's extra informations (optional) -% Usage: \extrainfo{} -\newcommand*{\extrainfo}[1]{\def\@extrainfo{#1}} - -% Defines writer's quote (optional) -% Usage: \quote{} -\renewcommand*{\quote}[1]{\def\@quote{#1}} - -% Defines recipient's information (cover letter only) -% Usage: \recipient{}{} -% Usage: \recipientname{} -% Usage: \recipientaddress{} -\newcommand*{\recipient}[2]{\def\@recipientname{#1}\def\@recipientaddress{#2}} -\newcommand*{\recipientname}[1]{\def\@recipientname{#1}} -\newcommand*{\recipientaddress}[1]{\def\@recipientaddress{#1}} - -% Defines the title for letter (cover letter only, optional) -% Usage: \lettertitle{} -\newcommand*{\lettertitle}[1]{\def\@lettertitle{#1}} - -% Defines the date for letter (cover letter only) -% Usage: \letterdate{<date>} -\newcommand*{\letterdate}[1]{\def\@letterdate{#1}} - -% Defines a message of opening for letter (cover letter only) -% Usage: \letteropening{<message>} -\newcommand*{\letteropening}[1]{\def\@letteropening{#1}} - -% Defines a message of closing for letter (cover letter only) -% Usage: \letterclosing{<message>} -\newcommand*{\letterclosing}[1]{\def\@letterclosing{#1}} - -% Defines an enclosure for letter (cover letter only, optional) -% Usage: \letterenclosure[<enclosure name>]{<enclosure>} -\newcommand*{\letterenclname}[1][Enclosure]{\def\@letterenclname{#1}} -\newcommand*{\letterenclosure}[2][]{% - % if an optional argument is provided, use it to redefine \enclname - \ifthenelse{\equal{#1}{}}{}{\def\@letterenclname{#1}} - \def\@letterenclosure{#2} -} - - -%------------------------------------------------------------------------------- -% Commands for extra -%------------------------------------------------------------------------------- -%% Define helper macros a user can change easily -% Header -\newcommand{\acvHeaderNameDelim}{\space} -\newcommand{\acvHeaderAfterNameSkip}{.4mm} -\newcommand{\acvHeaderAfterPositionSkip}{.4mm} -\newcommand{\acvHeaderAfterAddressSkip}{-.5mm} -\newcommand{\acvHeaderIconSep}{\space} -\newcommand{\acvHeaderSocialSep}{\quad\textbar\quad} -\newcommand{\acvHeaderAfterSocialSkip}{6mm} -\newcommand{\acvHeaderAfterQuoteSkip}{5mm} - -% Others -\newcommand{\acvSectionTopSkip}{3mm} -\newcommand{\acvSectionContentTopSkip}{2.5mm} - - -%------------------------------------------------------------------------------- -% Commands for utilities -%------------------------------------------------------------------------------- -% Use to align an element of tabular table -\newcolumntype{L}[1]{>{\raggedright\let\newline\\\arraybackslash\hspace{0pt}}m{#1}} -\newcolumntype{C}[1]{>{\centering\let\newline\\\arraybackslash\hspace{0pt}}m{#1}} -\newcolumntype{R}[1]{>{\raggedleft\let\newline\\\arraybackslash\hspace{0pt}}m{#1}} - -% Use to draw horizontal line with specific thickness -\def\vhrulefill#1{\leavevmode\leaders\hrule\@height#1\hfill \kern\z@} - -% Use to execute conditional statements by checking empty string -\newcommand*{\ifempty}[3]{\ifthenelse{\isempty{#1}}{#2}{#3}} - - -%------------------------------------------------------------------------------- -% Commands for elements of CV structure -%------------------------------------------------------------------------------- -% Define a header for CV -% Usage: \makecvheader -\newcommand*{\makecvheader}[1][C]{% - \newcommand*{\drawphoto}{% - \ifthenelse{\isundefined{\@photo}}{}{% - \newlength{\photodim} - \ifthenelse{\equal{\@photoshape}{circle}}% - {\setlength{\photodim}{1.3cm}}% - {\setlength{\photodim}{1.8cm}}% - \ifthenelse{\equal{\@photoedge}{edge}}% - {\def\@photoborder{darkgray}}% - {\def\@photoborder{none}}% - \begin{tikzpicture}% - \node[\@photoshape, draw=\@photoborder, line width=0.3mm, inner sep=\photodim, fill overzoom image=\@photo] () {}; - \end{tikzpicture} - }% - } - \newlength{\headertextwidth} - \newlength{\headerphotowidth} - \ifthenelse{\isundefined{\@photo}}{ - \setlength{\headertextwidth}{\textwidth} - \setlength{\headerphotowidth}{0cm} - }{% - \setlength{\headertextwidth}{0.76\textwidth} - \setlength{\headerphotowidth}{0.24\textwidth} - }% - \begin{minipage}[c]{\headerphotowidth}% - \ifthenelse{\equal{\@photoalign}{left}}{\raggedright\drawphoto}{} - \end{minipage} - \begin{minipage}[c]{\headertextwidth} - \ifthenelse{\equal{#1}{L}}{\raggedright}{\ifthenelse{\equal{#1}{R}}{\raggedleft}{\centering}} - \headerfirstnamestyle{\@firstname}\headerlastnamestyle{{}\acvHeaderNameDelim\@lastname}% - \\[\acvHeaderAfterNameSkip]% - \ifthenelse{\isundefined{\@position}}{}{\headerpositionstyle{\@position\\[\acvHeaderAfterPositionSkip]}}% - \ifthenelse{\isundefined{\@address}}{}{\headeraddressstyle{\@address\\[\acvHeaderAfterAddressSkip]}}% - \headersocialstyle{% - \newbool{isstart}% - \setbool{isstart}{true}% - \ifthenelse{\isundefined{\@mobile}}% - {}% - {% - \faMobile\acvHeaderIconSep\@mobile% - \setbool{isstart}{false}% - }% - \ifthenelse{\isundefined{\@email}}% - {}% - {% - \ifbool{isstart}{\setbool{isstart}{false}}{\acvHeaderSocialSep}% - \faEnvelope\acvHeaderIconSep\@email% - }% - \ifthenelse{\isundefined{\@homepage}}% - {}% - {% - \ifbool{isstart}{\setbool{isstart}{false}}{\acvHeaderSocialSep}% - \href{http://\@homepage}{\faHome\acvHeaderIconSep\@homepage}% - }% - \ifthenelse{\isundefined{\@orcid}}% - {}% - {% - \ifbool{isstart}{\setbool{isstart}{false}}{\acvHeaderSocialSep}% - \href{https://orcid.org/\@orcid}{\aiOrcidSquare\acvHeaderIconSep\@orcid}% - }% - \ifthenelse{\isundefined{\@publons}}% - {}% - {% - \ifbool{isstart}{\setbool{isstart}{false}}{\acvHeaderSocialSep}% - \href{https://publons.com/researcher/\@publons}{\aiPublonsSquare\acvHeaderIconSep\@publons}% - }% - \ifthenelse{\isundefined{\@googlescholar}}% - {}% - {% - \ifbool{isstart}{\setbool{isstart}{false}}{\acvHeaderSocialSep}% - \href{https://scholar.google.com/citations?user=\@googlescholar}{\aiGoogleScholarSquare\acvHeaderIconSep\@googlescholar}% - }% - \ifthenelse{\isundefined{\@researchgate}}% - {}% - {% - \ifbool{isstart}{\setbool{isstart}{false}}{\acvHeaderSocialSep}% - \href{https://www.researchgate.net/profile/\@researchgate}{\aiResearchGateSquare\acvHeaderIconSep\@researchgate}% - }% - \ifthenelse{\isundefined{\@github}}% - {}% - {% - \ifbool{isstart}{\setbool{isstart}{false}}{\acvHeaderSocialSep}% - \href{https://github.com/\@github}{\faGithubSquare\acvHeaderIconSep\@github}% - }% - \ifthenelse{\isundefined{\@gitlab}}% - {}% - {% - \ifbool{isstart}{\setbool{isstart}{false}}{\acvHeaderSocialSep}% - \href{https://gitlab.com/\@gitlab}{\faGitlab\acvHeaderIconSep\@gitlab}% - }% - \ifthenelse{\isundefined{\@stackoverflowid}}% - {}% - {% - \ifbool{isstart}{\setbool{isstart}{false}}{\acvHeaderSocialSep}% - \href{https://stackoverflow.com/users/\@stackoverflowid}{\faStackOverflow\acvHeaderIconSep\@stackoverflowname}% - }% - \ifthenelse{\isundefined{\@linkedin}}% - {}% - {% - \ifbool{isstart}{\setbool{isstart}{false}}{\acvHeaderSocialSep}% - \href{https://www.linkedin.com/in/\@linkedin}{\faLinkedinSquare\acvHeaderIconSep\@linkedin}% - }% - \ifthenelse{\isundefined{\@twitter}}% - {}% - {% - \ifbool{isstart}{\setbool{isstart}{false}}{\acvHeaderSocialSep}% - \href{https://twitter.com/\@twitter}{\faTwitter\acvHeaderIconSep\@twitter}% - }% - \ifthenelse{\isundefined{\@skype}}% - {}% - {% - \ifbool{isstart}{\setbool{isstart}{false}}{\acvHeaderSocialSep}% - \faSkype\acvHeaderIconSep\@skype% - }% - \ifthenelse{\isundefined{\@reddit}}% - {}% - {% - \ifbool{isstart}{\setbool{isstart}{false}}{\acvHeaderSocialSep}% - \href{https://www.reddit.com/user/\@reddit}{\faReddit\acvHeaderIconSep\@reddit}% - }% - \ifthenelse{\isundefined{\@xing}}% - {}% - {% - \ifbool{isstart}{\setbool{isstart}{false}}{\acvHeaderSocialSep}% - \href{https://www.xing.com/profile/\@xing}{\faXingSquare\acvHeaderIconSep\@xing} - }% - \ifthenelse{\isundefined{\@extrainfo}}% - {}% - {% - \ifbool{isstart}{\setbool{isstart}{false}}{\acvHeaderSocialSep}% - \@extrainfo% - }% - } \\[\acvHeaderAfterSocialSkip]% - \ifthenelse{\isundefined{\@quote}}% - {}% - {\headerquotestyle{\@quote\\}\vspace{\acvHeaderAfterQuoteSkip}}% - \end{minipage}% - \begin{minipage}[c]{\headerphotowidth}% - \ifthenelse{\equal{\@photoalign}{right}}{\raggedleft\drawphoto}{} - \end{minipage} -} - -% Define a footer for CV -% Usage: \makecvfooter{<left>}{<center>}{<right>} -\newcommand*{\makecvfooter}[3]{% - \fancyfoot{} - \fancyfoot[L]{\footerstyle{#1}} - \fancyfoot[C]{\footerstyle{#2}} - \fancyfoot[R]{\footerstyle{#3}} -} - -% Define a section for CV -% Usage: \cvsection{<section-title>} - -\renewcommand{\section}[1]{% - \vspace{\acvSectionTopSkip} - \sectionstyle{#1} - \phantomsection - \color{gray}\vhrulefill{0.9pt} -} - -% Define a subsection for CV -% Usage: \cvsubsection{<subsection-title>} -\renewcommand{\subsection}[1]{% - \vspace{\acvSectionContentTopSkip} - \vspace{-3mm} - \subsectionstyle{#1} - \phantomsection -} - -% Define a paragraph for CV -\newenvironment{cvparagraph}{% - \vspace{\acvSectionContentTopSkip} - \vspace{-3mm} - \paragraphstyle -}{% - \par - \vspace{2mm} -} - -% Define an environment for cventry -\newenvironment{cventries}{% - \vspace{\acvSectionContentTopSkip} - \begin{center} -}{% - \end{center} -} -% Define an entry of cv information -% Usage: \cventry{<position>}{<title>}{<location>}{<date>}{<description>} -\newcommand*{\cventry}[5]{ -% \vspace{-2.0mm} - \setlength\tabcolsep{0pt}% - \setlength{\extrarowheight}{0pt}% - \begin{tabular*}{\textwidth}{@{\extracolsep{\fill}} L{\textwidth - 4.5cm} R{4.5cm}}% - \ifempty{#2#3}{\entrypositionstyle{#1} & \entrydatestyle{#4} \\}% - {\entrytitlestyle{#2} & \entrylocationstyle{#3} \\% - \entrypositionstyle{#1} & \entrydatestyle{#4} \\}% - \multicolumn{2}{L{\textwidth}}{\descriptionstyle{#5}}% - \end{tabular*}% -} - -% Define an environment for cvsubentry -\newenvironment{cvsubentries}{% - \begin{center} -}{% - \end{center} -} -% Define a subentry of cv information -% Usage: \cvsubentry{<position>}{<title>}{<date>}{<description>} -\newcommand*{\cvsubentry}[4]{% - \setlength\tabcolsep{0pt} - \setlength{\extrarowheight}{0pt} - \begin{tabular*}{\textwidth}{@{\extracolsep{\fill}} L{\textwidth - 4.5cm} R{4.5cm}} - \setlength\leftskip{0.2cm} - \subentrytitlestyle{#2} & \ifthenelse{\equal{#1}{}} - {\subentrydatestyle{#3}}{} - \ifthenelse{\equal{#1}{}} - {} - {\subentrypositionstyle{#1} & \subentrydatestyle{#3} \\} - \ifthenelse{\equal{#4}{}} - {} - {\multicolumn{2}{L{17.0cm}}{\subdescriptionstyle{#4}} \\} - \end{tabular*} -} - -% Define an environment for cvhonor -\newenvironment{cvhonors}{% - \vspace{\acvSectionContentTopSkip} - \vspace{-2mm} - \begin{center} - \setlength\tabcolsep{0pt} - \setlength{\extrarowheight}{0pt} - \begin{tabular*}{\textwidth}{@{\extracolsep{\fill}} C{1.5cm} L{\textwidth - 4.0cm} R{2.5cm}} -}{% - \end{tabular*} - \end{center} -} -% 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} \\ -} - -% Define an environment for cvskill -\newenvironment{cvskills}{% - \vspace{\acvSectionContentTopSkip} - \vspace{-2.0mm} - \begin{center} - \setlength\tabcolsep{1ex} - \setlength{\extrarowheight}{0pt} - \begin{tabular*}{\textwidth}{@{\extracolsep{\fill}} r L{\textwidth * \real{0.9}}} -}{% - \end{tabular*} - \end{center} -} -% Define a line of cv information(skill) -% Usage: \cvskill{<type>}{<skillset>} -\newcommand*{\cvskill}[2]{% - \skilltypestyle{#1} & \skillsetstyle{#2} \\ -} - -% Define an environment for cvitems(for cventry) -\newenvironment{cvitems}{% - \vspace{-4.0mm} - \begin{justify} - \begin{itemize}[leftmargin=2ex, nosep, noitemsep] - \setlength{\parskip}{0pt} - \renewcommand{\labelitemi}{\bullet} -}{% - \end{itemize} - \end{justify} - \vspace{-4.0mm} -} - - -%------------------------------------------------------------------------------- -% Commands for elements of Cover Letter -%------------------------------------------------------------------------------- -% Define an environment for cvletter -\newenvironment{cvletter}{% - \lettertextstyle -}{% -} - -% Define a section for the cover letter -% Usage: \lettersection{<section-title>} -\newcommand{\lettersection}[1]{% - \par\addvspace{2.5ex} - \phantomsection{} - \lettersectionstyle{#1} - \color{gray}\vhrulefill{0.9pt} - \par\nobreak\addvspace{0.4ex} -} - -% Define a title of the cover letter -% Usage: \makelettertitle -\newcommand*{\makelettertitle}{% - \vspace{8.4mm} - \setlength\tabcolsep{0pt} - \setlength{\extrarowheight}{0pt} - \begin{tabular*}{\textwidth}{@{\extracolsep{\fill}} L{\textwidth - 4.5cm} R{4.5cm}} - \recipienttitlestyle{\@recipientname} & \letterdatestyle{\@letterdate} - \end{tabular*} - \begin{singlespace} - \recipientaddressstyle{\@recipientaddress} \\\\ - \end{singlespace} - \ifthenelse{\isundefined{\@lettertitle}} - {} - {\lettertitlestyle{\@lettertitle} \\} - \lettertextstyle{\@letteropening} -} - -% Define a closing of the cover letter -% Usage: \makeletterclosing -\newcommand*{\makeletterclosing}{% - \vspace{3.4mm} - \lettertextstyle{\@letterclosing} \\\\ - \letternamestyle{\@firstname\ \@lastname} - \ifthenelse{\isundefined{\@letterenclosure}} - {\\} - {% - \\\\\\ - \letterenclosurestyle{\@letterenclname: \@letterenclosure} \\ - } -} +%% Start of file `awesome-cv.cls'. +% Awesome CV Class File +% +% This class has been downloaded from: +% https://github.com/posquit0/Awesome-CV +% +% Author: +% Claud D. Park <posquit0.bj@gmail.com> +% http://www.posquit0.com +% +% Notes: +% 1) This class file defines the structure and layout of the template file (cv.tex, resume.tex). +% 2) It has been written in such a way that under most circumstances you +% should not need to edit it. +% +% Class license: +% LPPL v1.3c (http://www.latex-project.org/lppl) +% + + +%------------------------------------------------------------------------------- +% Identification +%------------------------------------------------------------------------------- +\ProvidesClass{awesome-cv}[2017/02/05 v1.6.1 Awesome Curriculum Vitae Class] +\NeedsTeXFormat{LaTeX2e} + + +%------------------------------------------------------------------------------- +% Class options +% +% (need to be done before the external package loading, for example because +% we need \paperwidth, \paperheight and \@ptsize to be defined before loading +% geometry and fancyhdr) +%------------------------------------------------------------------------------- +% Options for draft or final +\DeclareOption{draft}{\setlength\overfullrule{5pt}} +\DeclareOption{final}{\setlength\overfullrule{0pt}} +% Inherit options of article +\DeclareOption*{% + \PassOptionsToClass{\CurrentOption}{article} +} +\ProcessOptions\relax +\LoadClass{article} + + +%------------------------------------------------------------------------------- +% 3rd party packages +%------------------------------------------------------------------------------- +% Needed to make fixed length table +\RequirePackage{array} +% Needed to handle list environment +\RequirePackage{enumitem} +% Needed to handle text alignment +\RequirePackage{ragged2e} +% Needed to configure page layout +\RequirePackage{geometry} +% Needed to make header & footer effeciently +\RequirePackage{fancyhdr} +% Needed to manage colors +\RequirePackage{xcolor} +% Needed to use \ifxetex-\else-\fi statement +\RequirePackage{ifxetex} +% Needed to use \if-\then-\else statement +\RequirePackage{xifthen} +% Needed to use a toolbox of programming tools +\RequirePackage{etoolbox} +% Needed to change line spacing in specific environment +\RequirePackage{setspace} +% Needed to manage fonts +\RequirePackage[quiet]{fontspec} +% To support LaTeX quoting style +\defaultfontfeatures{Ligatures=TeX} +% Needed to manage math fonts +\RequirePackage{unicode-math} +% Needed to use icons from font-awesome +% (https://github.com/posquit0/latex-fontawesome) +\defaultfontfeatures{Extension = .otf} +\RequirePackage{fontawesome} +% Add support of academia icons +\usepackage{academicons} +\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} +\hypersetup{% + pdftitle={}, + pdfauthor={}, + pdfsubject={}, + pdfkeywords={} +} + + +%------------------------------------------------------------------------------- +% Configuration for directory locations +%------------------------------------------------------------------------------- +% Configure a directory location for fonts(default: 'fonts/') +\newcommand*{\fontdir}[1][fonts/]{\def\@fontdir{#1}} +\fontdir + + +%------------------------------------------------------------------------------- +% Configuration for layout +%------------------------------------------------------------------------------- +%% Page Layout +% Configure page margins with geometry +\geometry{left=2.0cm, top=1.5cm, right=2.0cm, bottom=2.0cm, footskip=.5cm} + +%% Header & Footer +% Set offset to each header and footer +\fancyhfoffset{0em} +% Remove head rule +\renewcommand{\headrulewidth}{0pt} +% Clear all header & footer fields +\fancyhf{} +% Enable if you want to make header or footer using fancyhdr +\pagestyle{fancy} + + +%------------------------------------------------------------------------------- +% Configuration for colors +%------------------------------------------------------------------------------- +% Gray-scale colors +\definecolor{white}{HTML}{FFFFFF} +\definecolor{black}{HTML}{000000} +\definecolor{darkgray}{HTML}{333333} +\definecolor{gray}{HTML}{5D5D5D} +\definecolor{lightgray}{HTML}{999999} +% Basic colors +\definecolor{green}{HTML}{C2E15F} +\definecolor{orange}{HTML}{FDA333} +\definecolor{purple}{HTML}{D3A4F9} +\definecolor{red}{HTML}{FB4485} +\definecolor{blue}{HTML}{6CE0F1} +% Text colors +\definecolor{darktext}{HTML}{414141} +\colorlet{text}{darkgray} +\colorlet{graytext}{gray} +\colorlet{lighttext}{lightgray} +% Awesome colors +\definecolor{awesome-emerald}{HTML}{00A388} +\definecolor{awesome-skyblue}{HTML}{0395DE} +\definecolor{awesome-red}{HTML}{DC3522} +\definecolor{awesome-pink}{HTML}{EF4089} +\definecolor{awesome-orange}{HTML}{FF6138} +\definecolor{awesome-nephritis}{HTML}{27AE60} +\definecolor{awesome-concrete}{HTML}{95A5A6} +\definecolor{awesome-darknight}{HTML}{131A28} +\colorlet{awesome}{awesome-red} + +% Boolean value to switch section color highlighting +\newbool{acvSectionColorHighlight} +\setbool{acvSectionColorHighlight}{true} + +% Awesome section color +\def\@sectioncolor#1#2#3{% + \ifbool{acvSectionColorHighlight}{{\color{awesome}#1#2#3}}{#1#2#3}% +} + + +%------------------------------------------------------------------------------- +% Configuration for fonts +%------------------------------------------------------------------------------- +% Set the FontAwesome font to be up-to-date. +%\newfontfamily\FA[Path=\@fontdir]{FontAwesome} +% 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*{\footerfont}{\sourcesanspro} +\newcommand*{\bodyfont}{\sourcesanspro} +\newcommand*{\bodyfontlight}{\sourcesansprolight} + +%------------------------------------------------------------------------------- +% Configuration for styles +%------------------------------------------------------------------------------- +% Configure styles for each CV elements +% For fundamental structures +\newcommand*{\headerfirstnamestyle}[1]{{\fontsize{32pt}{1em}\headerfontlight\color{graytext} #1}} +\newcommand*{\headerlastnamestyle}[1]{{\fontsize{32pt}{1em}\headerfont\bfseries\color{text} #1}} +\newcommand*{\headerpositionstyle}[1]{{\fontsize{7.6pt}{1em}\bodyfont\scshape\color{awesome} #1}} +\newcommand*{\headeraddressstyle}[1]{{\fontsize{8pt}{1em}\headerfont\itshape\color{lighttext} #1}} +\newcommand*{\headersocialstyle}[1]{{\fontsize{6.8pt}{1em}\headerfont\color{text} #1}} +\newcommand*{\headerquotestyle}[1]{{\fontsize{9pt}{1em}\bodyfont\itshape\color{darktext} #1}} +\newcommand*{\footerstyle}[1]{{\fontsize{8pt}{1em}\footerfont\scshape\color{lighttext} #1}} +\newcommand*{\sectionstyle}[1]{{\fontsize{16pt}{1em}\bodyfont\bfseries\color{text}\@sectioncolor #1}} +\newcommand*{\subsectionstyle}[1]{{\fontsize{12pt}{1em}\bodyfont\scshape\textcolor{text}{#1}}} +\newcommand*{\paragraphstyle}{\fontsize{9pt}{1em}\bodyfontlight\upshape\color{text}} + +% For elements of entry +\newcommand*{\entrytitlestyle}[1]{{\fontsize{10pt}{1em}\bodyfont\bfseries\color{darktext} #1}} +\newcommand*{\entrypositionstyle}[1]{{\fontsize{8pt}{1em}\bodyfont\scshape\color{graytext} #1}} +\newcommand*{\entrydatestyle}[1]{{\fontsize{8pt}{1em}\bodyfontlight\slshape\color{graytext} #1}} +\newcommand*{\entrylocationstyle}[1]{{\fontsize{9pt}{1em}\bodyfontlight\slshape\color{awesome} #1}} +\newcommand*{\descriptionstyle}[1]{{\fontsize{9pt}{1em}\bodyfontlight\upshape\color{text} #1}} + +% For elements of subentry +\newcommand*{\subentrytitlestyle}[1]{{\fontsize{8pt}{1em}\bodyfont\mdseries\color{graytext} #1}} +\newcommand*{\subentrypositionstyle}[1]{{\fontsize{7pt}{1em}\bodyfont\scshape\color{graytext} #1}} +\newcommand*{\subentrydatestyle}[1]{{\fontsize{7pt}{1em}\bodyfontlight\slshape\color{graytext} #1}} +\newcommand*{\subentrylocationstyle}[1]{{\fontsize{7pt}{1em}\bodyfontlight\slshape\color{awesome} #1}} +\newcommand*{\subdescriptionstyle}[1]{{\fontsize{8pt}{1em}\bodyfontlight\upshape\color{text} #1}} + +% For elements of honor +\newcommand*{\honortitlestyle}[1]{{\fontsize{9pt}{1em}\bodyfont\color{graytext} #1}} +\newcommand*{\honorpositionstyle}[1]{{\fontsize{9pt}{1em}\bodyfont\bfseries\color{darktext} #1}} +\newcommand*{\honordatestyle}[1]{{\fontsize{9pt}{1em}\bodyfont\color{graytext} #1}} +\newcommand*{\honorlocationstyle}[1]{{\fontsize{9pt}{1em}\bodyfontlight\slshape\color{awesome} #1}} + +% For elements of skill +\newcommand*{\skilltypestyle}[1]{{\fontsize{10pt}{1em}\bodyfont\bfseries\color{darktext} #1}} +\newcommand*{\skillsetstyle}[1]{{\fontsize{9pt}{1em}\bodyfontlight\color{text} #1}} + +% For elements of the cover letter +\newcommand*{\lettersectionstyle}[1]{{\fontsize{14pt}{1em}\bodyfont\bfseries\color{text}\@sectioncolor #1}} +\newcommand*{\recipientaddressstyle}[1]{{\fontsize{9pt}{1em}\bodyfont\scshape\color{graytext} #1}} +\newcommand*{\recipienttitlestyle}[1]{{\fontsize{11pt}{1em}\bodyfont\bfseries\color{darktext} #1}} +\newcommand*{\lettertitlestyle}[1]{{\fontsize{10pt}{1em}\bodyfontlight\bfseries\color{darktext} \underline{#1}}} +\newcommand*{\letterdatestyle}[1]{{\fontsize{9pt}{1em}\bodyfontlight\slshape\color{graytext} #1}} +\newcommand*{\lettertextstyle}{\fontsize{10pt}{1.4em}\bodyfontlight\upshape\color{graytext}} +\newcommand*{\letternamestyle}[1]{{\fontsize{10pt}{1em}\bodyfont\bfseries\color{darktext} #1}} +\newcommand*{\letterenclosurestyle}[1]{{\fontsize{10pt}{1em}\bodyfontlight\slshape\color{lighttext} #1}} + + +%------------------------------------------------------------------------------- +% Commands for personal information +%------------------------------------------------------------------------------- +% Define photo ID +% Usage: \photo[circle|rectangle,edge|noedge,left|right]{<path-to-image>} +\newcommand{\photo}[2][circle,edge,left]{% + \def\@photo{#2} + \@for\tmp:=#1\do{% + \ifthenelse{\equal{\tmp}{circle} \or \equal{\tmp}{rectangle}}% + {\let\@photoshape\tmp}{}% + \ifthenelse{\equal{\tmp}{edge} \or \equal{\tmp}{noedge}}% + {\let\@photoedge\tmp}{}% + \ifthenelse{\equal{\tmp}{left} \or \equal{\tmp}{right}}% + {\let\@photoalign\tmp}{}% + }% +} +\def\@photoshape{circle} +\def\@photoedge{edge} +\def\@photoalign{left} + +% Define writer's name +% Usage: \name{<firstname>}{<lastname>} +% Usage: \firstname{<firstname>} +% Usage: \lastname{<lastname>} +% Usage: \familyname{<familyname>} +\newcommand*{\name}[2]{\def\@firstname{#1}\def\@lastname{#2}} +\newcommand*{\firstname}[1]{\def\@firstname{#1}} +\newcommand*{\lastname}[1]{\def\@lastname{#1}} +\newcommand*{\familyname}[1]{\def\@lastname{#1}} +\def\@familyname{\@lastname} + +% Define writer's address +% Usage: \address{<address>} +\newcommand*{\address}[1]{\def\@address{#1}} + +% Define writer's position +% Usage: \name{<position>} +\newcommand*{\position}[1]{\def\@position{#1}} + +% Defines writer's mobile (optional) +% Usage: \mobile{<mobile number>} +\newcommand*{\mobile}[1]{\def\@mobile{#1}} + +% Defines writer's email (optional) +% Usage: \email{<email adress>} +\newcommand*{\email}[1]{\def\@email{#1}} + +% Defines writer's homepage (optional) +% Usage: \homepage{<url>} +\newcommand*{\homepage}[1]{\def\@homepage{#1}} + +% Defines writer's orcid (optional) +% Usage: \orcid{<orcid>} +\newcommand*{\orcid}[1]{\def\@orcid{#1}} + +% Defines writer's Publons account (optional) +% Usage: \publons{<publons>} +\newcommand*{\publons}[1]{\def\@publons{#1}} + +% Defines writer's googlescholar account (optional) +% Usage: \googlescholar{<googlescholar-user-id>} +\newcommand*{\googlescholar}[1]{\def\@googlescholar{#1}} + +% Defines writer's scobus account (optional) +% Usage: \researchgate{<researchgate-name>} +\newcommand*{\researchgate}[1]{\def\@researchgate{#1}} + +% Defines writer's github (optional) +% Usage: \github{<github-nick>} +\newcommand*{\github}[1]{\def\@github{#1}} + +% Defines writer's gitlab (optional) +% Usage: \gitlab{<gitlab-nick>} +\newcommand*{\gitlab}[1]{\def\@gitlab{#1}} + +% Defines writer's stackoverflow profile (optional) +% Usage: \stackoverflow{<so userid>}{<so username>} +% e.g.https://stackoverflow.com/users/123456/sam-smith +% would be \stackoverflow{123456}{sam-smith} +\newcommand*{\stackoverflow}[2]{\def\@stackoverflowid{#1}\def\@stackoverflowname{#2}} + +% Defines writer's linked-in (optional) +% Usage: \linkedin{<linked-in-nick>} +\newcommand*{\linkedin}[1]{\def\@linkedin{#1}} + +% Usage: \twitter{<twitter handle>} +\newcommand*{\twitter}[1]{\def\@twitter{#1}} + +% Defines writer's skype (optional) +% Usage: \skype{<skype account>} +\newcommand*{\skype}[1]{\def\@skype{#1}} + +% Defines writer's reddit (optional) +% Usage: \reddit{<reddit account>} +\newcommand*{\reddit}[1]{\def\@reddit{#1}} + +% Defines writer's xing (optional) +% 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>} +\newcommand*{\extrainfo}[1]{\def\@extrainfo{#1}} + +% Defines writer's quote (optional) +% Usage: \quote{<quote>} +\renewcommand*{\quote}[1]{\def\@quote{#1}} + +% Defines recipient's information (cover letter only) +% Usage: \recipient{<recipient name>}{<recipient address>} +% Usage: \recipientname{<recipient name>} +% Usage: \recipientaddress{<recipient address>} +\newcommand*{\recipient}[2]{\def\@recipientname{#1}\def\@recipientaddress{#2}} +\newcommand*{\recipientname}[1]{\def\@recipientname{#1}} +\newcommand*{\recipientaddress}[1]{\def\@recipientaddress{#1}} + +% Defines the title for letter (cover letter only, optional) +% Usage: \lettertitle{<title>} +\newcommand*{\lettertitle}[1]{\def\@lettertitle{#1}} + +% Defines the date for letter (cover letter only) +% Usage: \letterdate{<date>} +\newcommand*{\letterdate}[1]{\def\@letterdate{#1}} + +% Defines a message of opening for letter (cover letter only) +% Usage: \letteropening{<message>} +\newcommand*{\letteropening}[1]{\def\@letteropening{#1}} + +% Defines a message of closing for letter (cover letter only) +% Usage: \letterclosing{<message>} +\newcommand*{\letterclosing}[1]{\def\@letterclosing{#1}} + +% Defines an enclosure for letter (cover letter only, optional) +% Usage: \letterenclosure[<enclosure name>]{<enclosure>} +\newcommand*{\letterenclname}[1][Enclosure]{\def\@letterenclname{#1}} +\newcommand*{\letterenclosure}[2][]{% + % if an optional argument is provided, use it to redefine \enclname + \ifthenelse{\equal{#1}{}}{}{\def\@letterenclname{#1}} + \def\@letterenclosure{#2} +} + + +%------------------------------------------------------------------------------- +% Commands for extra +%------------------------------------------------------------------------------- +%% Define helper macros a user can change easily +% Header +\newcommand{\acvHeaderNameDelim}{\space} +\newcommand{\acvHeaderAfterNameSkip}{.4mm} +\newcommand{\acvHeaderAfterPositionSkip}{.4mm} +\newcommand{\acvHeaderAfterAddressSkip}{-.5mm} +\newcommand{\acvHeaderIconSep}{\space} +\newcommand{\acvHeaderSocialSep}{\quad\textbar\quad} +\newcommand{\acvHeaderAfterSocialSkip}{6mm} +\newcommand{\acvHeaderAfterQuoteSkip}{5mm} + +% Others +\newcommand{\acvSectionTopSkip}{3mm} +\newcommand{\acvSectionContentTopSkip}{2.5mm} + + +%------------------------------------------------------------------------------- +% Commands for utilities +%------------------------------------------------------------------------------- +% Use to align an element of tabular table +\newcolumntype{L}[1]{>{\raggedright\let\newline\\\arraybackslash\hspace{0pt}}m{#1}} +\newcolumntype{C}[1]{>{\centering\let\newline\\\arraybackslash\hspace{0pt}}m{#1}} +\newcolumntype{R}[1]{>{\raggedleft\let\newline\\\arraybackslash\hspace{0pt}}m{#1}} + +% Use to draw horizontal line with specific thickness +\def\vhrulefill#1{\leavevmode\leaders\hrule\@height#1\hfill \kern\z@} + +% Use to execute conditional statements by checking empty string +\newcommand*{\ifempty}[3]{\ifthenelse{\isempty{#1}}{#2}{#3}} + + +%------------------------------------------------------------------------------- +% Commands for elements of CV structure +%------------------------------------------------------------------------------- +% Define a header for CV +% Usage: \makecvheader +\newcommand*{\makecvheader}[1][C]{% + \newcommand*{\drawphoto}{% + \ifthenelse{\isundefined{\@photo}}{}{% + \newlength{\photodim} + \ifthenelse{\equal{\@photoshape}{circle}}% + {\setlength{\photodim}{1.3cm}}% + {\setlength{\photodim}{1.8cm}}% + \ifthenelse{\equal{\@photoedge}{edge}}% + {\def\@photoborder{darkgray}}% + {\def\@photoborder{none}}% + \begin{tikzpicture}% + \node[\@photoshape, draw=\@photoborder, line width=0.3mm, inner sep=\photodim, fill overzoom image=\@photo] () {}; + \end{tikzpicture} + }% + } + \newlength{\headertextwidth} + \newlength{\headerphotowidth} + \ifthenelse{\isundefined{\@photo}}{ + \setlength{\headertextwidth}{\textwidth} + \setlength{\headerphotowidth}{0cm} + }{% + \setlength{\headertextwidth}{0.76\textwidth} + \setlength{\headerphotowidth}{0.24\textwidth} + }% + \begin{minipage}[c]{\headerphotowidth}% + \ifthenelse{\equal{\@photoalign}{left}}{\raggedright\drawphoto}{} + \end{minipage} + \begin{minipage}[c]{\headertextwidth} + \ifthenelse{\equal{#1}{L}}{\raggedright}{\ifthenelse{\equal{#1}{R}}{\raggedleft}{\centering}} + \headerfirstnamestyle{\@firstname}\headerlastnamestyle{{}\acvHeaderNameDelim\@lastname}% + \\[\acvHeaderAfterNameSkip]% + \ifthenelse{\isundefined{\@position}}{}{\headerpositionstyle{\@position\\[\acvHeaderAfterPositionSkip]}}% + \ifthenelse{\isundefined{\@address}}{}{\headeraddressstyle{\@address\\[\acvHeaderAfterAddressSkip]}}% + \headersocialstyle{% + \newbool{isstart}% + \setbool{isstart}{true}% + \ifthenelse{\isundefined{\@mobile}}% + {}% + {% + \faMobile\acvHeaderIconSep\@mobile% + \setbool{isstart}{false}% + }% + \ifthenelse{\isundefined{\@email}}% + {}% + {% + \ifbool{isstart}{\setbool{isstart}{false}}{\acvHeaderSocialSep}% + \faEnvelope\acvHeaderIconSep\@email% + }% + \ifthenelse{\isundefined{\@homepage}}% + {}% + {% + \ifbool{isstart}{\setbool{isstart}{false}}{\acvHeaderSocialSep}% + \href{http://\@homepage}{\faHome\acvHeaderIconSep\@homepage}% + }% + \ifthenelse{\isundefined{\@orcid}}% + {}% + {% + \ifbool{isstart}{\setbool{isstart}{false}}{\acvHeaderSocialSep}% + \href{https://orcid.org/\@orcid}{\aiOrcidSquare\acvHeaderIconSep\@orcid}% + }% + \ifthenelse{\isundefined{\@publons}}% + {}% + {% + \ifbool{isstart}{\setbool{isstart}{false}}{\acvHeaderSocialSep}% + \href{https://publons.com/researcher/\@publons}{\aiPublonsSquare\acvHeaderIconSep\@publons}% + }% + \ifthenelse{\isundefined{\@googlescholar}}% + {}% + {% + \ifbool{isstart}{\setbool{isstart}{false}}{\acvHeaderSocialSep}% + \href{https://scholar.google.com/citations?user=\@googlescholar}{\aiGoogleScholarSquare\acvHeaderIconSep\@googlescholar}% + }% + \ifthenelse{\isundefined{\@researchgate}}% + {}% + {% + \ifbool{isstart}{\setbool{isstart}{false}}{\acvHeaderSocialSep}% + \href{https://www.researchgate.net/profile/\@researchgate}{\aiResearchGateSquare\acvHeaderIconSep\@researchgate}% + }% + \ifthenelse{\isundefined{\@github}}% + {}% + {% + \ifbool{isstart}{\setbool{isstart}{false}}{\acvHeaderSocialSep}% + \href{https://github.com/\@github}{\faGithubSquare\acvHeaderIconSep\@github}% + }% + \ifthenelse{\isundefined{\@gitlab}}% + {}% + {% + \ifbool{isstart}{\setbool{isstart}{false}}{\acvHeaderSocialSep}% + \href{https://gitlab.com/\@gitlab}{\faGitlab\acvHeaderIconSep\@gitlab}% + }% + \ifthenelse{\isundefined{\@stackoverflowid}}% + {}% + {% + \ifbool{isstart}{\setbool{isstart}{false}}{\acvHeaderSocialSep}% + \href{https://stackoverflow.com/users/\@stackoverflowid}{\faStackOverflow\acvHeaderIconSep\@stackoverflowname}% + }% + \ifthenelse{\isundefined{\@linkedin}}% + {}% + {% + \ifbool{isstart}{\setbool{isstart}{false}}{\acvHeaderSocialSep}% + \href{https://www.linkedin.com/in/\@linkedin}{\faLinkedinSquare\acvHeaderIconSep\@linkedin}% + }% + \ifthenelse{\isundefined{\@twitter}}% + {}% + {% + \ifbool{isstart}{\setbool{isstart}{false}}{\acvHeaderSocialSep}% + \href{https://twitter.com/\@twitter}{\faTwitter\acvHeaderIconSep\@twitter}% + }% + \ifthenelse{\isundefined{\@skype}}% + {}% + {% + \ifbool{isstart}{\setbool{isstart}{false}}{\acvHeaderSocialSep}% + \faSkype\acvHeaderIconSep\@skype% + }% + \ifthenelse{\isundefined{\@reddit}}% + {}% + {% + \ifbool{isstart}{\setbool{isstart}{false}}{\acvHeaderSocialSep}% + \href{https://www.reddit.com/user/\@reddit}{\faReddit\acvHeaderIconSep\@reddit}% + }% + \ifthenelse{\isundefined{\@xing}}% + {}% + {% + \ifbool{isstart}{\setbool{isstart}{false}}{\acvHeaderSocialSep}% + \href{https://www.xing.com/profile/\@xing}{\faXingSquare\acvHeaderIconSep\@xing} + }% + \ifthenelse{\isundefined{\@extrainfo}}% + {}% + {% + \ifbool{isstart}{\setbool{isstart}{false}}{\acvHeaderSocialSep}% + \@extrainfo% + }% + } \\[\acvHeaderAfterSocialSkip]% + \ifthenelse{\isundefined{\@quote}}% + {}% + {\headerquotestyle{\@quote\\}\vspace{\acvHeaderAfterQuoteSkip}}% + \end{minipage}% + \begin{minipage}[c]{\headerphotowidth}% + \ifthenelse{\equal{\@photoalign}{right}}{\raggedleft\drawphoto}{} + \end{minipage} +} + +% Define a footer for CV +% Usage: \makecvfooter{<left>}{<center>}{<right>} +\newcommand*{\makecvfooter}[3]{% + \fancyfoot{} + \fancyfoot[L]{\footerstyle{#1}} + \fancyfoot[C]{\footerstyle{#2}} + \fancyfoot[R]{\footerstyle{#3}} +} + +% Define a section for CV +% Usage: \cvsection{<section-title>} + +\renewcommand{\section}[1]{% + \vspace{\acvSectionTopSkip} + \sectionstyle{#1} + \phantomsection + \color{gray}\vhrulefill{0.9pt} +} + +% Define a subsection for CV +% Usage: \cvsubsection{<subsection-title>} +\renewcommand{\subsection}[1]{% + \vspace{\acvSectionContentTopSkip} + \vspace{-3mm} + \subsectionstyle{#1} + \phantomsection +} + +% Define a paragraph for CV +\newenvironment{cvparagraph}{% + \vspace{\acvSectionContentTopSkip} + \vspace{-3mm} + \paragraphstyle +}{% + \par + \vspace{2mm} +} + +% Define an environment for cventry +\newenvironment{cventries}{% + \vspace{\acvSectionContentTopSkip} + \begin{center} +}{% + \end{center} +} +% Define an entry of cv information +% Usage: \cventry{<position>}{<title>}{<location>}{<date>}{<description>} +\newcommand*{\cventry}[5]{ +% \vspace{-2.0mm} + \setlength\tabcolsep{0pt}% + \setlength{\extrarowheight}{0pt}% + \begin{tabular*}{\textwidth}{@{\extracolsep{\fill}} L{\textwidth - 4.5cm} R{4.5cm}}% + \ifempty{#2#3}{\entrypositionstyle{#1} & \entrydatestyle{#4} \\}% + {\entrytitlestyle{#2} & \entrylocationstyle{#3} \\% + \entrypositionstyle{#1} & \entrydatestyle{#4} \\}% + \multicolumn{2}{L{\textwidth}}{\descriptionstyle{#5}}% + \end{tabular*}% +} + +% Define an environment for cvsubentry +\newenvironment{cvsubentries}{% + \begin{center} +}{% + \end{center} +} +% Define a subentry of cv information +% Usage: \cvsubentry{<position>}{<title>}{<date>}{<description>} +\newcommand*{\cvsubentry}[4]{% + \setlength\tabcolsep{0pt} + \setlength{\extrarowheight}{0pt} + \begin{tabular*}{\textwidth}{@{\extracolsep{\fill}} L{\textwidth - 4.5cm} R{4.5cm}} + \setlength\leftskip{0.2cm} + \subentrytitlestyle{#2} & \ifthenelse{\equal{#1}{}} + {\subentrydatestyle{#3}}{} + \ifthenelse{\equal{#1}{}} + {} + {\subentrypositionstyle{#1} & \subentrydatestyle{#3} \\} + \ifthenelse{\equal{#4}{}} + {} + {\multicolumn{2}{L{17.0cm}}{\subdescriptionstyle{#4}} \\} + \end{tabular*} +} + +% Define an environment for cvhonor +\newenvironment{cvhonors}{% + \vspace{\acvSectionContentTopSkip} + \vspace{-2mm} + \begin{center} + \setlength\tabcolsep{0pt} + \setlength{\extrarowheight}{0pt} + \begin{tabular*}{\textwidth}{@{\extracolsep{\fill}} C{1.5cm} L{\textwidth - 4.0cm} R{2.5cm}} +}{% + \end{tabular*} + \end{center} +} +% 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} \\ +} + +% Define an environment for cvskill +\newenvironment{cvskills}{% + \vspace{\acvSectionContentTopSkip} + \vspace{-2.0mm} + \begin{center} + \setlength\tabcolsep{1ex} + \setlength{\extrarowheight}{0pt} + \begin{tabular*}{\textwidth}{@{\extracolsep{\fill}} r L{\textwidth * \real{0.9}}} +}{% + \end{tabular*} + \end{center} +} +% Define a line of cv information(skill) +% Usage: \cvskill{<type>}{<skillset>} +\newcommand*{\cvskill}[2]{% + \skilltypestyle{#1} & \skillsetstyle{#2} \\ +} + +% Define an environment for cvitems(for cventry) +\newenvironment{cvitems}{% + \vspace{-4.0mm} + \begin{justify} + \begin{itemize}[leftmargin=2ex, nosep, noitemsep] + \setlength{\parskip}{0pt} + \renewcommand{\labelitemi}{\bullet} +}{% + \end{itemize} + \end{justify} + \vspace{0.8mm} +} + + +%------------------------------------------------------------------------------- +% Commands for elements of Cover Letter +%------------------------------------------------------------------------------- +% Define an environment for cvletter +\newenvironment{cvletter}{% + \lettertextstyle +}{% +} + +% Define a section for the cover letter +% Usage: \lettersection{<section-title>} +\newcommand{\lettersection}[1]{% + \par\addvspace{2.5ex} + \phantomsection{} + \lettersectionstyle{#1} + \color{gray}\vhrulefill{0.9pt} + \par\nobreak\addvspace{0.4ex} +} + +% Define a title of the cover letter +% Usage: \makelettertitle +\newcommand*{\makelettertitle}{% + \vspace{8.4mm} + \setlength\tabcolsep{0pt} + \setlength{\extrarowheight}{0pt} + \begin{tabular*}{\textwidth}{@{\extracolsep{\fill}} L{\textwidth - 4.5cm} R{4.5cm}} + \recipienttitlestyle{\@recipientname} & \letterdatestyle{\@letterdate} + \end{tabular*} + \begin{singlespace} + \recipientaddressstyle{\@recipientaddress} \\\\ + \end{singlespace} + \ifthenelse{\isundefined{\@lettertitle}} + {} + {\lettertitlestyle{\@lettertitle} \\} + \lettertextstyle{\@letteropening} +} + +% Define a closing of the cover letter +% Usage: \makeletterclosing +\newcommand*{\makeletterclosing}{% + \vspace{3.4mm} + \lettertextstyle{\@letterclosing} \\\\ + \letternamestyle{\@firstname\ \@lastname} + \ifthenelse{\isundefined{\@letterenclosure}} + {\\} + {% + \\\\\\ + \letterenclosurestyle{\@letterenclname: \@letterenclosure} \\ + } +} diff --git a/r/data.r b/r/data.r index 980c11f..8f092f8 100644 --- a/r/data.r +++ b/r/data.r @@ -92,9 +92,12 @@ edu <- tribble( work <- tribble( ~title, ~unit, ~startMonth, ~startYear, ~endMonth, ~endYear, ~where, ~detail, - "Security Engineer SHINE Intern", "Technology and Service Assurance", "September", 2024, "Present", NA, "Singapore Telecommunications Ltd (Singtel)", "Responsible for updating and improving the Automation System(s) of the Advance Security Operations Centre (ASOC)", - "Security Engineer SHINE Intern", "Technology and Service Assurance", "September", 2024, "Present", NA, "Singapore Telecommunications Ltd (Singtel)", "Perform refactoring of SOAR Playbooks to fit automation use cases", - "Security Engineer SHINE Intern", "Technology and Service Assurance", "September", 2024, "Present", NA, "Singapore Telecommunications Ltd (Singtel)", "Development of scripts to streamline operations", + "Security Engineer SHINE Intern", "Technology and Service Assurance", "September", 2024, "Present", NA, "Singapore Telecommunications Ltd (Singtel)", "Developed and optimized SIEM-SOAR workflows, implementing automated data transformation pipelines to standardize log formats, reduce processing time, and enhance threat detection accuracy.", + "Security Engineer SHINE Intern", "Technology and Service Assurance", "September", 2024, "Present", NA, "Singapore Telecommunications Ltd (Singtel)", "Engineered scalable automation to reduce redundant alerts and enhance threat detection.", + "Security Engineer SHINE Intern", "Technology and Service Assurance", "September", 2024, "Present", NA, "Singapore Telecommunications Ltd (Singtel)", "Collaborated cross-functionally with security engineers and analysts to integrate adaptive log parsing mechanisms, ensuring seamless ingestion of heterogeneous log sources while maintaining data integrity.", + # "Security Engineer SHINE Intern", "Technology and Service Assurance", "September", 2024, "Present", NA, "Singapore Telecommunications Ltd (Singtel)", "Responsible for updating and improving the Automation System(s) of the Advance Security Operations Centre (ASOC)", + # "Security Engineer SHINE Intern", "Technology and Service Assurance", "September", 2024, "Present", NA, "Singapore Telecommunications Ltd (Singtel)", "Perform refactoring of SOAR Playbooks to fit automation use cases", + # "Security Engineer SHINE Intern", "Technology and Service Assurance", "September", 2024, "Present", NA, "Singapore Telecommunications Ltd (Singtel)", "Development of scripts to streamline operations", "Armament Technician Specialist", "SINGAPORE ARMED FORCES", "July", 2020, "July", 2022, "Singapore", "Responsible for maintainence and repair of the armament and C4 Systems of the Hunter Armoured Fighting Vehicle", "Armament Technician Specialist", "SINGAPORE ARMED FORCES", "July", 2020, "July", 2022, "Singapore", "Led a section of 7 ‑ 10 technicians for daily maintenance of vehicles", "Student Intern", "CYBER TEST SYSTEMS", "November", 2019, "Feburary", 2020, "Cyber Test Systems", "Malware Analysis of a 32‑bit Potable executable file", @@ -106,10 +109,10 @@ vectors", "Administrator", "OLYMPUS LEARNING ACADAMY", "Feburary", 2019, "March", 2019, "Coursemology.sg", "Website Management and creation of new course pages on the website", "Administrator", "OLYMPUS LEARNING ACADAMY", "Feburary", 2019, "March", 2019, "Coursemology.sg", "Online marketing with email marketing, email automation and Search Engine Optimisation", "Administrator", "OLYMPUS LEARNING ACADAMY", "Feburary", 2019, "March", 2019, "Coursemology.sg", "Front‑end customer service and administration.", - "Instructor", "JH KIM TAEKWONDO INSTITUDE(MAIN)", "May", 2016, "June", 2016, "Millenia Walk, Singapore", "Taught Children and Young adults Taekwondo Basic hand and kicking techniques for self defense", - "Instructor", "Team Spectrum Taekwondo", "August", 2015, "Present", NA, "Singapore", "Taught classes of varying ages —Toddlers ‑ Seniors Taekwondo hand and kicking techniques for self defense", - "Instructor", "Team Spectrum Taekwondo", "August", 2015, "Present", NA, "Singapore", "Instilling values in younger students", - "Instructor", "Team Spectrum Taekwondo", "August", 2015, "Present", NA, "Singapore", "Responsible for weekly training sessions for competitive and non‑competitive environments", + # "Instructor", "JH KIM TAEKWONDO INSTITUDE(MAIN)", "May", 2016, "June", 2016, "Millenia Walk, Singapore", "Taught Children and Young adults Taekwondo Basic hand and kicking techniques for self defense", + # "Instructor", "Team Spectrum Taekwondo", "August", 2015, "Present", NA, "Singapore", "Taught classes of varying ages —Toddlers ‑ Seniors Taekwondo hand and kicking techniques for self defense", + # "Instructor", "Team Spectrum Taekwondo", "August", 2015, "Present", NA, "Singapore", "Instilling values in younger students", + # "Instructor", "Team Spectrum Taekwondo", "August", 2015, "Present", NA, "Singapore", "Responsible for weekly training sessions for competitive and non‑competitive environments", ) scholarships <- tribble(