2015-05-07 11:25:13 +00:00
|
|
|
%% Start of file `awesome-cv.cls'.
|
2015-12-10 00:51:13 +00:00
|
|
|
% 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)
|
2015-05-07 11:25:13 +00:00
|
|
|
%
|
|
|
|
|
|
|
|
|
|
|
|
%-------------------------------------------------------------------------------
|
|
|
|
% Identification
|
|
|
|
%-------------------------------------------------------------------------------
|
2016-01-30 04:30:11 +00:00
|
|
|
\ProvidesClass{awesome-cv}[2016/01/30 v1.5 Awesome Curriculum Vitae Class]
|
2015-05-07 11:25:13 +00:00
|
|
|
\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
|
2016-01-08 14:46:10 +00:00
|
|
|
\DeclareOption*{%
|
2015-05-07 11:25:13 +00:00
|
|
|
\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
|
2015-11-19 06:47:07 +00:00
|
|
|
\RequirePackage{xifthen}
|
2015-11-19 04:50:51 +00:00
|
|
|
% Needed to use a toolbox of programming tools
|
2015-11-13 14:51:58 +00:00
|
|
|
\RequirePackage{etoolbox}
|
2015-12-14 06:59:20 +00:00
|
|
|
% Needed to change line spacing in specific environment
|
|
|
|
\RequirePackage{setspace}
|
2015-05-07 11:25:13 +00:00
|
|
|
% Needed to manage fonts
|
2016-01-08 14:46:10 +00:00
|
|
|
\RequirePackage[quiet]{fontspec}
|
|
|
|
% To support LaTeX quoting style
|
|
|
|
\defaultfontfeatures{Ligatures=TeX}
|
2015-05-07 11:25:13 +00:00
|
|
|
% Needed to manage math fonts
|
|
|
|
\RequirePackage[math-style=TeX,vargreek-shape=unicode]{unicode-math}
|
|
|
|
% Needed to use icons from font-awesome
|
2015-12-10 00:51:13 +00:00
|
|
|
% (https://github.com/posquit0/latex-fontawesome)
|
2015-05-07 11:25:13 +00:00
|
|
|
\RequirePackage{fontawesome}
|
|
|
|
% Needed to deal a paragraphs
|
|
|
|
\RequirePackage{parskip}
|
|
|
|
% Needed to deal hyperlink
|
2015-12-30 22:55:01 +00:00
|
|
|
\RequirePackage[hidelinks]{hyperref}
|
2016-01-08 14:46:10 +00:00
|
|
|
\hypersetup{%
|
2015-05-07 11:25:13 +00:00
|
|
|
pdftitle={},
|
|
|
|
pdfauthor={},
|
|
|
|
pdfsubject={},
|
2015-12-30 22:55:01 +00:00
|
|
|
pdfkeywords={}
|
2015-05-07 11:25:13 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
%-------------------------------------------------------------------------------
|
|
|
|
% 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
|
2015-11-03 01:19:12 +00:00
|
|
|
\geometry{left=2.0cm, top=1.5cm, right=2.0cm, bottom=2.0cm, footskip=.5cm}
|
2015-05-07 11:25:13 +00:00
|
|
|
|
|
|
|
%% Header & Footer
|
2016-01-08 13:40:56 +00:00
|
|
|
% Set offset to each header and footer
|
2015-05-07 11:25:13 +00:00
|
|
|
\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}
|
2015-11-19 02:34:38 +00:00
|
|
|
% Text colors
|
|
|
|
\definecolor{darktext}{HTML}{414141}
|
|
|
|
\colorlet{text}{darkgray}
|
|
|
|
\colorlet{graytext}{gray}
|
|
|
|
\colorlet{lighttext}{lightgray}
|
2015-05-07 11:25:13 +00:00
|
|
|
% Awesome colors
|
2015-05-15 10:53:39 +00:00
|
|
|
\definecolor{awesome-emerald}{HTML}{00A388}
|
|
|
|
\definecolor{awesome-skyblue}{HTML}{0395DE}
|
2015-05-07 11:25:13 +00:00
|
|
|
\definecolor{awesome-red}{HTML}{DC3522}
|
2015-05-15 10:53:39 +00:00
|
|
|
\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}
|
2015-05-07 11:25:13 +00:00
|
|
|
\colorlet{awesome}{awesome-red}
|
|
|
|
|
2016-01-30 04:30:11 +00:00
|
|
|
% Boolean value to switch section color highlighting
|
|
|
|
\newbool{acvSectionColorHighlight}
|
|
|
|
\setbool{acvSectionColorHighlight}{true}
|
|
|
|
|
2015-05-07 11:25:13 +00:00
|
|
|
% Awesome section color
|
|
|
|
\def\@sectioncolor#1#2#3{%
|
2016-01-30 04:30:11 +00:00
|
|
|
\ifbool{acvSectionColorHighlight}{{\color{awesome}#1#2#3}}{#1#2#3}%
|
2015-05-07 11:25:13 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
%-------------------------------------------------------------------------------
|
|
|
|
% Configuration for fonts
|
|
|
|
%-------------------------------------------------------------------------------
|
2015-11-07 08:05:17 +00:00
|
|
|
% Set font for header (default is Roboto)
|
|
|
|
\newfontfamily\headerfont[
|
|
|
|
Path=\@fontdir,
|
|
|
|
UprightFont=*-Regular,
|
|
|
|
ItalicFont=*-Italic,
|
|
|
|
BoldFont=*-Bold,
|
|
|
|
BoldItalicFont=*-BoldItalic,
|
2015-05-07 11:25:13 +00:00
|
|
|
]{Roboto}
|
2015-11-07 08:05:17 +00:00
|
|
|
|
|
|
|
\newfontfamily\headerfontlight[
|
|
|
|
Path=\@fontdir,
|
|
|
|
UprightFont=*-Thin,
|
|
|
|
ItalicFont=*-ThinItalic,
|
|
|
|
BoldFont=*-Medium,
|
|
|
|
BoldItalicFont=*-MediumItalic,
|
2015-05-07 11:25:13 +00:00
|
|
|
]{Roboto}
|
|
|
|
|
2015-11-07 08:05:17 +00:00
|
|
|
% Set font for footer (default is Source Sans Pro)
|
|
|
|
\newfontfamily\footerfont[
|
|
|
|
Path=\@fontdir,
|
|
|
|
UprightFont=*-Regular,
|
|
|
|
ItalicFont=*-It,
|
|
|
|
BoldFont=*-Bold
|
|
|
|
]{SourceSansPro}
|
|
|
|
|
|
|
|
% Set font for body (default is Source Sans Pro)
|
|
|
|
\newfontfamily\bodyfont[
|
|
|
|
Path=\@fontdir,
|
|
|
|
UprightFont=*-Regular,
|
|
|
|
ItalicFont=*-It,
|
|
|
|
BoldFont=*-Bold,
|
|
|
|
BoldItalicFont=*-BoldIt
|
|
|
|
]{SourceSansPro}
|
|
|
|
|
|
|
|
\newfontfamily\bodyfontlight[
|
|
|
|
Path=\@fontdir,
|
|
|
|
UprightFont=*-Light,
|
|
|
|
ItalicFont=*-LightIt,
|
|
|
|
BoldFont=*-Semibold,
|
|
|
|
BoldItalicFont=*-SemiboldIt
|
|
|
|
]{SourceSansPro}
|
2015-05-07 11:25:13 +00:00
|
|
|
|
2016-01-30 08:49:27 +00:00
|
|
|
% Set main font
|
2016-01-22 11:00:56 +00:00
|
|
|
\setmainfont[
|
|
|
|
Path=\@fontdir,
|
|
|
|
UprightFont=*-Regular,
|
|
|
|
ItalicFont=*-It,
|
|
|
|
BoldFont=*-Bold,
|
|
|
|
BoldItalicFont=*-BoldIt
|
|
|
|
]{SourceSansPro}
|
2015-05-07 11:25:13 +00:00
|
|
|
|
|
|
|
|
|
|
|
%-------------------------------------------------------------------------------
|
|
|
|
% Configuration for styles
|
|
|
|
%-------------------------------------------------------------------------------
|
|
|
|
% Configure styles for each CV elements
|
|
|
|
% For fundamental structures
|
2015-11-19 02:34:38 +00:00
|
|
|
\newcommand*{\headerfirstnamestyle}[1]{{\fontsize{32pt}{1em}\headerfontlight\color{graytext} #1}}
|
|
|
|
\newcommand*{\headerlastnamestyle}[1]{{\fontsize{32pt}{1em}\headerfont\bfseries\color{text} #1}}
|
2015-11-21 05:29:45 +00:00
|
|
|
\newcommand*{\headerpositionstyle}[1]{{\fontsize{7.6pt}{1em}\bodyfont\scshape\color{awesome} #1}}
|
2015-11-19 02:34:38 +00:00
|
|
|
\newcommand*{\headeraddressstyle}[1]{{\fontsize{8pt}{1em}\headerfont\itshape\color{lighttext} #1}}
|
|
|
|
\newcommand*{\headersocialstyle}[1]{{\fontsize{6.8pt}{1em}\headerfont\color{text} #1}}
|
2015-11-25 03:25:54 +00:00
|
|
|
\newcommand*{\headerquotestyle}[1]{{\fontsize{9pt}{1em}\bodyfont\itshape\color{darktext} #1}}
|
2015-11-19 02:34:38 +00:00
|
|
|
\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}}}
|
2016-02-12 10:02:31 +00:00
|
|
|
\newcommand*{\paragraphstyle}{\fontsize{9pt}{1em}\bodyfontlight\upshape\color{text}}
|
2015-05-07 11:25:13 +00:00
|
|
|
|
|
|
|
% For elements of entry
|
2015-11-19 02:34:38 +00:00
|
|
|
\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}}
|
2015-11-06 11:23:40 +00:00
|
|
|
\newcommand*{\entrylocationstyle}[1]{{\fontsize{9pt}{1em}\bodyfontlight\slshape\color{awesome} #1}}
|
2015-11-19 02:34:38 +00:00
|
|
|
\newcommand*{\descriptionstyle}[1]{{\fontsize{9pt}{1em}\bodyfontlight\upshape\color{text} #1}}
|
2015-05-07 11:25:13 +00:00
|
|
|
|
|
|
|
% For elements of subentry
|
2015-11-19 02:34:38 +00:00
|
|
|
\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}}
|
2015-11-06 11:23:40 +00:00
|
|
|
\newcommand*{\subentrylocationstyle}[1]{{\fontsize{7pt}{1em}\bodyfontlight\slshape\color{awesome} #1}}
|
2015-11-19 02:34:38 +00:00
|
|
|
\newcommand*{\subdescriptionstyle}[1]{{\fontsize{8pt}{1em}\bodyfontlight\upshape\color{text} #1}}
|
2015-05-07 11:25:13 +00:00
|
|
|
|
|
|
|
% For elements of honor
|
2015-11-19 02:34:38 +00:00
|
|
|
\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}}
|
2015-11-06 11:23:40 +00:00
|
|
|
\newcommand*{\honorlocationstyle}[1]{{\fontsize{9pt}{1em}\bodyfontlight\slshape\color{awesome} #1}}
|
2015-05-07 11:25:13 +00:00
|
|
|
|
2015-11-19 02:34:38 +00:00
|
|
|
% 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}}
|
|
|
|
|
2015-12-13 10:09:19 +00:00
|
|
|
% For elements of the cover letter
|
2015-12-31 07:32:04 +00:00
|
|
|
\newcommand*{\lettersectionstyle}[1]{{\fontsize{14pt}{1em}\bodyfont\bfseries\color{text}\@sectioncolor #1}}
|
2015-12-14 06:59:20 +00:00
|
|
|
\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}}
|
|
|
|
|
2015-05-07 11:25:13 +00:00
|
|
|
|
|
|
|
%-------------------------------------------------------------------------------
|
|
|
|
% Commands for personal information
|
|
|
|
%-------------------------------------------------------------------------------
|
|
|
|
% 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 github (optional)
|
|
|
|
% Usage: \github{<github-nick>}
|
|
|
|
\newcommand*{\github}[1]{\def\@github{#1}}
|
|
|
|
|
2015-12-09 13:56:22 +00:00
|
|
|
% 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}}
|
|
|
|
|
2016-01-09 11:40:03 +00:00
|
|
|
% Defines writer's linked-in (optional)
|
|
|
|
% Usage: \linkedin{<linked-in-nick>}
|
|
|
|
\newcommand*{\linkedin}[1]{\def\@linkedin{#1}}
|
2015-11-13 14:51:58 +00:00
|
|
|
|
|
|
|
% Usage: \twitter{<twitter handle>}
|
|
|
|
\newcommand*{\twitter}[1]{\def\@twitter{#1}}
|
|
|
|
|
2016-01-09 11:40:03 +00:00
|
|
|
% Defines writer's skype (optional)
|
|
|
|
% Usage: \skype{<skype account>}
|
|
|
|
\newcommand*{\skype}[1]{\def\@skype{#1}}
|
|
|
|
|
2016-01-30 02:13:22 +00:00
|
|
|
% Defines writer's reddit (optional)
|
|
|
|
% Usage: \reddit{<reddit account>}
|
|
|
|
\newcommand*{\reddit}[1]{\def\@reddit{#1}}
|
|
|
|
|
2016-02-12 10:10:22 +00:00
|
|
|
% Defines writer's xing (optional)
|
|
|
|
% Usage: \xing{<xing name>}
|
|
|
|
\newcommand*{\xing}[1]{\def\@xing{#1}}
|
|
|
|
|
|
|
|
% Defines writer's twitter (optional)
|
2016-01-09 11:40:03 +00:00
|
|
|
% Defines writer's extra informations (optional)
|
|
|
|
% Usage: \extrainfo{<extra informations>}
|
|
|
|
\newcommand*{\extrainfo}[1]{\def\@extrainfo{#1}}
|
|
|
|
|
2015-05-07 11:25:13 +00:00
|
|
|
% Defines writer's quote (optional)
|
|
|
|
% Usage: \quote{<quote>}
|
|
|
|
\renewcommand*{\quote}[1]{\def\@quote{#1}}
|
|
|
|
|
2015-12-14 06:59:20 +00:00
|
|
|
% 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}}
|
2016-01-08 14:46:10 +00:00
|
|
|
\newcommand*{\letterenclosure}[2][]{%
|
2015-12-14 06:59:20 +00:00
|
|
|
% if an optional argument is provided, use it to redefine \enclname
|
|
|
|
\ifthenelse{\equal{#1}{}}{}{\def\@letterenclname{#1}}
|
|
|
|
\def\@letterenclosure{#2}
|
|
|
|
}
|
|
|
|
|
2015-05-07 11:25:13 +00:00
|
|
|
|
2015-11-13 14:51:58 +00:00
|
|
|
%-------------------------------------------------------------------------------
|
|
|
|
% Commands for extra
|
|
|
|
%-------------------------------------------------------------------------------
|
2016-01-30 09:35:09 +00:00
|
|
|
%% Define helper macros a user can change easily
|
|
|
|
% Header
|
2016-01-08 14:46:10 +00:00
|
|
|
\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}
|
2015-11-13 14:51:58 +00:00
|
|
|
|
2016-01-30 09:35:09 +00:00
|
|
|
% Others
|
|
|
|
\newcommand{\acvSectionTopSkip}{3mm}
|
2016-02-12 10:02:31 +00:00
|
|
|
\newcommand{\acvSectionContentTopSkip}{2.5mm}
|
2016-01-30 09:35:09 +00:00
|
|
|
|
|
|
|
|
2015-05-07 11:25:13 +00:00
|
|
|
%-------------------------------------------------------------------------------
|
|
|
|
% 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}}
|
|
|
|
|
2016-01-08 13:40:56 +00:00
|
|
|
% Use to draw horizontal line with specific thickness
|
2015-05-07 11:25:13 +00:00
|
|
|
\def\vhrulefill#1{\leavevmode\leaders\hrule\@height#1\hfill \kern\z@}
|
|
|
|
|
2015-11-19 06:47:07 +00:00
|
|
|
% Use to execute conditional statements by checking empty string
|
|
|
|
\newcommand*{\ifempty}[3]{\ifthenelse{\isempty{#1}}{#2}{#3}}
|
|
|
|
|
2015-11-06 11:23:40 +00:00
|
|
|
|
2015-05-07 11:25:13 +00:00
|
|
|
%-------------------------------------------------------------------------------
|
|
|
|
% Commands for elements of CV structure
|
|
|
|
%-------------------------------------------------------------------------------
|
|
|
|
% Define a header for CV
|
|
|
|
% Usage: \makecvheader
|
2016-01-08 14:46:10 +00:00
|
|
|
\newcommand*{\makecvheader}{%
|
2015-05-07 11:25:13 +00:00
|
|
|
\begin{center}
|
2016-01-08 14:46:10 +00:00
|
|
|
\headerfirstnamestyle{\@firstname}\headerlastnamestyle{{}\acvHeaderNameDelim\@lastname}%
|
|
|
|
\\[\acvHeaderAfterNameSkip]%
|
|
|
|
\ifthenelse{\isundefined{\@position}}{}{\headerpositionstyle{\@position\\[\acvHeaderAfterPositionSkip]}}%
|
|
|
|
\ifthenelse{\isundefined{\@address}}{}{\headeraddressstyle{\@address\\[\acvHeaderAfterAddressSkip]}}%
|
2016-01-04 14:08:46 +00:00
|
|
|
\headersocialstyle{%
|
|
|
|
\newbool{isstart}%
|
|
|
|
\setbool{isstart}{true}%
|
|
|
|
\ifthenelse{\isundefined{\@mobile}}%
|
|
|
|
{}%
|
|
|
|
{%
|
2016-01-08 14:46:10 +00:00
|
|
|
\faMobile\acvHeaderIconSep\@mobile%
|
2016-01-04 14:08:46 +00:00
|
|
|
\setbool{isstart}{false}%
|
|
|
|
}%
|
|
|
|
\ifthenelse{\isundefined{\@email}}%
|
|
|
|
{}%
|
|
|
|
{%
|
2016-02-24 02:59:13 +00:00
|
|
|
\ifbool{isstart}{\setbool{isstart}{false}}{\acvHeaderSocialSep}%
|
2016-01-08 14:46:10 +00:00
|
|
|
\href{mailto:\@email}{\faEnvelope\acvHeaderIconSep\@email}%
|
2016-01-04 14:08:46 +00:00
|
|
|
}%
|
|
|
|
\ifthenelse{\isundefined{\@homepage}}%
|
|
|
|
{}%
|
|
|
|
{%
|
2016-02-24 02:59:13 +00:00
|
|
|
\ifbool{isstart}{\setbool{isstart}{false}}{\acvHeaderSocialSep}%
|
2016-01-08 14:46:10 +00:00
|
|
|
\href{http://\@homepage}{\faHome\acvHeaderIconSep\@homepage}%
|
2016-01-04 14:08:46 +00:00
|
|
|
}%
|
|
|
|
\ifthenelse{\isundefined{\@github}}%
|
|
|
|
{}%
|
|
|
|
{%
|
2016-02-24 02:59:13 +00:00
|
|
|
\ifbool{isstart}{\setbool{isstart}{false}}{\acvHeaderSocialSep}%
|
2016-01-08 14:46:10 +00:00
|
|
|
\href{https://github.com/\@github}{\faGithubSquare\acvHeaderIconSep\@github}%
|
2016-01-04 14:08:46 +00:00
|
|
|
}%
|
|
|
|
\ifthenelse{\isundefined{\@stackoverflowid}}%
|
|
|
|
{}%
|
|
|
|
{%
|
2016-02-24 02:59:13 +00:00
|
|
|
\ifbool{isstart}{\setbool{isstart}{false}}{\acvHeaderSocialSep}%
|
2016-01-08 14:46:10 +00:00
|
|
|
\href{https://stackoverflow.com/users/\@stackoverflowid}{\faStackOverflow\acvHeaderIconSep\@stackoverflowname}%
|
2016-01-04 14:08:46 +00:00
|
|
|
}%
|
|
|
|
\ifthenelse{\isundefined{\@linkedin}}%
|
|
|
|
{}%
|
|
|
|
{%
|
2016-02-24 02:59:13 +00:00
|
|
|
\ifbool{isstart}{\setbool{isstart}{false}}{\acvHeaderSocialSep}%
|
2016-01-08 14:46:10 +00:00
|
|
|
\href{https://www.linkedin.com/in/\@linkedin}{\faLinkedinSquare\acvHeaderIconSep\@linkedin}%
|
2016-01-04 14:08:46 +00:00
|
|
|
}%
|
|
|
|
\ifthenelse{\isundefined{\@twitter}}%
|
|
|
|
{}%
|
|
|
|
{%
|
2016-02-24 02:59:13 +00:00
|
|
|
\ifbool{isstart}{\setbool{isstart}{false}}{\acvHeaderSocialSep}%
|
2016-01-08 14:46:10 +00:00
|
|
|
\href{https://twitter.com/\@twitter}{\faTwitter\acvHeaderIconSep\@twitter}%
|
2016-01-04 14:08:46 +00:00
|
|
|
}%
|
|
|
|
\ifthenelse{\isundefined{\@skype}}%
|
|
|
|
{}%
|
|
|
|
{%
|
2016-02-24 02:59:13 +00:00
|
|
|
\ifbool{isstart}{\setbool{isstart}{false}}{\acvHeaderSocialSep}%
|
2016-01-08 14:46:10 +00:00
|
|
|
\faSkype\acvHeaderIconSep\@skype%
|
2016-01-04 14:08:46 +00:00
|
|
|
}%
|
2016-01-30 02:13:22 +00:00
|
|
|
\ifthenelse{\isundefined{\@reddit}}%
|
|
|
|
{}%
|
|
|
|
{%
|
2016-02-24 02:59:13 +00:00
|
|
|
\ifbool{isstart}{\setbool{isstart}{false}}{\acvHeaderSocialSep}%
|
2016-01-30 02:13:22 +00:00
|
|
|
\href{https://www.reddit.com/user/\@reddit}{\faReddit\acvHeaderIconSep\@reddit}%
|
|
|
|
}%
|
2016-02-12 10:10:22 +00:00
|
|
|
\ifthenelse{\isundefined{\@xing}}%
|
|
|
|
{}%
|
|
|
|
{%
|
2016-02-24 02:59:13 +00:00
|
|
|
\ifbool{isstart}{\setbool{isstart}{false}}{\acvHeaderSocialSep}%
|
2016-02-12 10:10:22 +00:00
|
|
|
\href{https://www.xing.com/profile/\@xing}{\faXingSquare\acvHeaderIconSep\@xing}
|
|
|
|
}%
|
2016-01-09 11:40:03 +00:00
|
|
|
\ifthenelse{\isundefined{\@extrainfo}}%
|
|
|
|
{}%
|
|
|
|
{%
|
2016-02-24 02:59:13 +00:00
|
|
|
\ifbool{isstart}{\setbool{isstart}{false}}{\acvHeaderSocialSep}%
|
2016-01-09 11:40:03 +00:00
|
|
|
\@extrainfo%
|
|
|
|
}%
|
2016-01-08 14:46:10 +00:00
|
|
|
} \\[\acvHeaderAfterSocialSkip]%
|
2016-01-04 14:08:46 +00:00
|
|
|
\ifthenelse{\isundefined{\@quote}}%
|
|
|
|
{}%
|
2016-01-08 14:46:10 +00:00
|
|
|
{\headerquotestyle{\@quote\\}\vspace{\acvHeaderAfterQuoteSkip}}%
|
2016-01-04 14:08:46 +00:00
|
|
|
\end{center}%
|
2015-05-07 11:25:13 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
% Define a footer for CV
|
2015-11-26 05:00:03 +00:00
|
|
|
% Usage: \makecvfooter{<left>}{<center>}{<right>}
|
2016-01-08 14:46:10 +00:00
|
|
|
\newcommand*{\makecvfooter}[3]{%
|
2015-05-07 11:25:13 +00:00
|
|
|
\fancyfoot{}
|
2016-01-08 14:46:10 +00:00
|
|
|
\fancyfoot[L]{\footerstyle{#1}}
|
|
|
|
\fancyfoot[C]{\footerstyle{#2}}
|
|
|
|
\fancyfoot[R]{\footerstyle{#3}}
|
2015-05-07 11:25:13 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
% Define a section for CV
|
|
|
|
% Usage: \cvsection{<section-title>}
|
2016-01-08 14:46:10 +00:00
|
|
|
\newcommand{\cvsection}[1]{%
|
2016-01-30 09:35:09 +00:00
|
|
|
\vspace{\acvSectionTopSkip}
|
2015-05-07 11:25:13 +00:00
|
|
|
\sectionstyle{#1}
|
2016-01-30 09:35:09 +00:00
|
|
|
\phantomsection
|
2015-05-07 11:25:13 +00:00
|
|
|
\color{gray}\vhrulefill{0.9pt}
|
|
|
|
}
|
|
|
|
|
|
|
|
% Define a subsection for CV
|
|
|
|
% Usage: \cvsubsection{<subsection-title>}
|
2016-01-08 14:46:10 +00:00
|
|
|
\newcommand{\cvsubsection}[1]{%
|
2016-02-12 10:02:31 +00:00
|
|
|
\vspace{\acvSectionContentTopSkip}
|
|
|
|
\vspace{-3mm}
|
2015-05-07 11:25:13 +00:00
|
|
|
\subsectionstyle{#1}
|
2016-01-30 09:35:09 +00:00
|
|
|
\phantomsection
|
2015-05-07 11:25:13 +00:00
|
|
|
}
|
|
|
|
|
2015-12-31 07:32:04 +00:00
|
|
|
% Define a paragraph for CV
|
2016-01-08 14:46:10 +00:00
|
|
|
\newenvironment{cvparagraph}{%
|
2016-02-12 10:02:31 +00:00
|
|
|
\vspace{\acvSectionContentTopSkip}
|
2015-12-31 07:32:04 +00:00
|
|
|
\vspace{-3mm}
|
|
|
|
\paragraphstyle
|
2016-01-08 14:46:10 +00:00
|
|
|
}{%
|
2016-02-12 10:02:31 +00:00
|
|
|
\par
|
|
|
|
\vspace{2mm}
|
2015-12-31 07:32:04 +00:00
|
|
|
}
|
|
|
|
|
2015-05-07 11:25:13 +00:00
|
|
|
% Define an environment for cventry
|
2016-01-08 14:46:10 +00:00
|
|
|
\newenvironment{cventries}{%
|
2016-02-12 10:02:31 +00:00
|
|
|
\vspace{\acvSectionContentTopSkip}
|
2015-05-07 11:25:13 +00:00
|
|
|
\begin{center}
|
2016-01-08 14:46:10 +00:00
|
|
|
}{%
|
2015-05-07 11:25:13 +00:00
|
|
|
\end{center}
|
|
|
|
}
|
|
|
|
% Define an entry of cv information
|
|
|
|
% Usage: \cventry{<position>}{<title>}{<location>}{<date>}{<description>}
|
2016-01-08 14:46:10 +00:00
|
|
|
\newcommand*{\cventry}[5]{%
|
2016-01-30 09:35:09 +00:00
|
|
|
\vspace{-2.0mm}
|
2015-05-07 11:25:13 +00:00
|
|
|
\setlength\tabcolsep{0pt}
|
|
|
|
\setlength{\extrarowheight}{0pt}
|
2016-01-08 13:40:56 +00:00
|
|
|
\begin{tabular*}{\textwidth}{@{\extracolsep{\fill}} L{\textwidth - 4.5cm} R{4.5cm}}
|
2015-11-19 06:47:07 +00:00
|
|
|
\ifempty{#2#3}
|
|
|
|
{\entrypositionstyle{#1} & \entrydatestyle{#4} \\}
|
|
|
|
{\entrytitlestyle{#2} & \entrylocationstyle{#3} \\
|
|
|
|
\entrypositionstyle{#1} & \entrydatestyle{#4} \\}
|
2016-01-30 09:35:09 +00:00
|
|
|
\multicolumn{2}{L{\textwidth}}{\descriptionstyle{#5}}
|
|
|
|
\end{tabular*}%
|
2015-05-07 11:25:13 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
% Define an environment for cvsubentry
|
2016-01-08 14:46:10 +00:00
|
|
|
\newenvironment{cvsubentries}{%
|
2015-05-07 11:25:13 +00:00
|
|
|
\begin{center}
|
2016-01-08 14:46:10 +00:00
|
|
|
}{%
|
2015-05-07 11:25:13 +00:00
|
|
|
\end{center}
|
|
|
|
}
|
|
|
|
% Define a subentry of cv information
|
|
|
|
% Usage: \cvsubentry{<position>}{<title>}{<date>}{<description>}
|
2016-01-08 14:46:10 +00:00
|
|
|
\newcommand*{\cvsubentry}[4]{%
|
2015-05-07 11:25:13 +00:00
|
|
|
\setlength\tabcolsep{0pt}
|
|
|
|
\setlength{\extrarowheight}{0pt}
|
2016-01-08 13:40:56 +00:00
|
|
|
\begin{tabular*}{\textwidth}{@{\extracolsep{\fill}} L{\textwidth - 4.5cm} R{4.5cm}}
|
2015-05-07 11:25:13 +00:00
|
|
|
\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
|
2016-01-08 14:46:10 +00:00
|
|
|
\newenvironment{cvhonors}{%
|
2016-02-12 10:02:31 +00:00
|
|
|
\vspace{\acvSectionContentTopSkip}
|
|
|
|
\vspace{-2mm}
|
2015-05-07 11:25:13 +00:00
|
|
|
\begin{center}
|
|
|
|
\setlength\tabcolsep{0pt}
|
|
|
|
\setlength{\extrarowheight}{0pt}
|
2016-01-08 13:40:56 +00:00
|
|
|
\begin{tabular*}{\textwidth}{@{\extracolsep{\fill}} C{1.5cm} L{\textwidth - 4.0cm} R{2.5cm}}
|
2016-01-08 14:46:10 +00:00
|
|
|
}{%
|
2015-05-07 11:25:13 +00:00
|
|
|
\end{tabular*}
|
|
|
|
\end{center}
|
|
|
|
}
|
|
|
|
% Define a line of cv information(honor, award or something else)
|
|
|
|
% Usage: \cvhonor{<position>}{<title>}{<location>}{<date>}
|
2016-01-08 14:46:10 +00:00
|
|
|
\newcommand*{\cvhonor}[4]{%
|
|
|
|
\honordatestyle{#4} & \honorpositionstyle{#1}, \honortitlestyle{#2} & \honorlocationstyle{#3} \\
|
2015-05-07 11:25:13 +00:00
|
|
|
}
|
|
|
|
|
2015-11-19 02:34:38 +00:00
|
|
|
% Define an environment for cvskill
|
2016-01-08 14:46:10 +00:00
|
|
|
\newenvironment{cvskills}{%
|
2016-02-12 10:02:31 +00:00
|
|
|
\vspace{\acvSectionContentTopSkip}
|
|
|
|
\vspace{-2.0mm}
|
2015-11-19 02:34:38 +00:00
|
|
|
\begin{center}
|
|
|
|
\setlength\tabcolsep{1ex}
|
|
|
|
\setlength{\extrarowheight}{0pt}
|
2016-01-08 13:40:56 +00:00
|
|
|
\begin{tabular*}{\textwidth}{@{\extracolsep{\fill}} r L{\textwidth * \real{0.9}}}
|
2016-01-08 14:46:10 +00:00
|
|
|
}{%
|
2015-11-19 02:34:38 +00:00
|
|
|
\end{tabular*}
|
|
|
|
\end{center}
|
|
|
|
}
|
|
|
|
% Define a line of cv information(skill)
|
|
|
|
% Usage: \cvskill{<type>}{<skillset>}
|
2016-01-08 14:46:10 +00:00
|
|
|
\newcommand*{\cvskill}[2]{%
|
|
|
|
\skilltypestyle{#1} & \skillsetstyle{#2} \\
|
2015-11-19 02:34:38 +00:00
|
|
|
}
|
2015-05-07 11:25:13 +00:00
|
|
|
|
|
|
|
% Define an environment for cvitems(for cventry)
|
2016-01-08 14:46:10 +00:00
|
|
|
\newenvironment{cvitems}{%
|
2016-01-30 09:35:09 +00:00
|
|
|
\vspace{-4.0mm}
|
2015-05-07 11:25:13 +00:00
|
|
|
\begin{justify}
|
|
|
|
\begin{itemize}[leftmargin=2ex, nosep, noitemsep]
|
|
|
|
\setlength{\parskip}{0pt}
|
|
|
|
\renewcommand{\labelitemi}{\bullet}
|
2016-01-08 14:46:10 +00:00
|
|
|
}{%
|
2015-05-07 11:25:13 +00:00
|
|
|
\end{itemize}
|
|
|
|
\end{justify}
|
2016-01-30 09:35:09 +00:00
|
|
|
\vspace{-4.0mm}
|
2015-12-03 19:08:06 +00:00
|
|
|
}
|
2015-12-13 10:09:19 +00:00
|
|
|
|
|
|
|
|
|
|
|
%-------------------------------------------------------------------------------
|
|
|
|
% Commands for elements of Cover Letter
|
|
|
|
%-------------------------------------------------------------------------------
|
|
|
|
% Define an environment for cvletter
|
2016-01-08 14:46:10 +00:00
|
|
|
\newenvironment{cvletter}{%
|
2015-12-14 06:59:20 +00:00
|
|
|
\lettertextstyle
|
2016-01-08 14:46:10 +00:00
|
|
|
}{%
|
2015-12-13 10:09:19 +00:00
|
|
|
}
|
|
|
|
|
2015-12-31 07:32:04 +00:00
|
|
|
% Define a section for the cover letter
|
|
|
|
% Usage: \lettersection{<section-title>}
|
2016-01-08 14:46:10 +00:00
|
|
|
\newcommand{\lettersection}[1]{%
|
2015-12-14 06:59:20 +00:00
|
|
|
\par\addvspace{2.5ex}
|
|
|
|
\phantomsection{}
|
2015-12-31 07:32:04 +00:00
|
|
|
\lettersectionstyle{#1}
|
2015-12-14 06:59:20 +00:00
|
|
|
\color{gray}\vhrulefill{0.9pt}
|
|
|
|
\par\nobreak\addvspace{0.4ex}
|
|
|
|
}
|
|
|
|
|
|
|
|
% Define a title of the cover letter
|
|
|
|
% Usage: \makelettertitle
|
2016-01-08 14:46:10 +00:00
|
|
|
\newcommand*{\makelettertitle}{%
|
2015-12-14 06:59:20 +00:00
|
|
|
\vspace{8.4mm}
|
2015-12-13 10:09:19 +00:00
|
|
|
\setlength\tabcolsep{0pt}
|
|
|
|
\setlength{\extrarowheight}{0pt}
|
2016-01-08 13:40:56 +00:00
|
|
|
\begin{tabular*}{\textwidth}{@{\extracolsep{\fill}} L{\textwidth - 4.5cm} R{4.5cm}}
|
2015-12-14 06:59:20 +00:00
|
|
|
\recipienttitlestyle{\@recipientname} & \letterdatestyle{\@letterdate}
|
2015-12-13 10:09:19 +00:00
|
|
|
\end{tabular*}
|
2015-12-14 06:59:20 +00:00
|
|
|
\begin{singlespace}
|
|
|
|
\recipientaddressstyle{\@recipientaddress} \\\\
|
|
|
|
\end{singlespace}
|
|
|
|
\ifthenelse{\isundefined{\@lettertitle}}
|
|
|
|
{}
|
|
|
|
{\lettertitlestyle{\@lettertitle} \\}
|
|
|
|
\lettertextstyle{\@letteropening}
|
|
|
|
}
|
|
|
|
|
|
|
|
% Define a closing of the cover letter
|
|
|
|
% Usage: \makeletterclosing
|
2016-01-08 14:46:10 +00:00
|
|
|
\newcommand*{\makeletterclosing}{%
|
2015-12-14 06:59:20 +00:00
|
|
|
\vspace{3.4mm}
|
|
|
|
\lettertextstyle{\@letterclosing} \\\\
|
2015-12-31 23:53:36 +00:00
|
|
|
\letternamestyle{\@firstname\ \@lastname}
|
2015-12-14 06:59:20 +00:00
|
|
|
\ifthenelse{\isundefined{\@letterenclosure}}
|
|
|
|
{\\}
|
2016-01-08 14:46:10 +00:00
|
|
|
{%
|
2015-12-14 06:59:20 +00:00
|
|
|
\\\\\\
|
2015-12-31 23:53:36 +00:00
|
|
|
\letterenclosurestyle{\@letterenclname: \@letterenclosure} \\
|
2015-12-14 06:59:20 +00:00
|
|
|
}
|
2015-12-13 10:09:19 +00:00
|
|
|
}
|
2016-01-22 11:06:17 +00:00
|
|
|
|
|
|
|
%-------------------------------------------------------------------------------
|
|
|
|
% Bibliography
|
|
|
|
%-------------------------------------------------------------------------------
|
|
|
|
%\RequirePackage[style=verbose, maxnames=99, sorting=ydnt]{biblatex}
|
|
|
|
\RequirePackage[ % BibLaTeX
|
|
|
|
sorting=ydnt, % Sorts entries by year (descending order), name, title
|
2016-01-22 11:43:22 +00:00
|
|
|
style=verbose,
|
2016-01-22 11:06:17 +00:00
|
|
|
doi=false,
|
|
|
|
isbn=true,
|
|
|
|
url=false,
|
2016-01-22 11:43:22 +00:00
|
|
|
eprint=false,
|
2016-01-22 11:06:17 +00:00
|
|
|
backref = false, % include back references in bibliography
|
|
|
|
maxcitenames=3, % affects only the citations in the document body
|
|
|
|
maxbibnames=99, % affects only the bibliography, pass 99 to print all
|
|
|
|
hyperref=true,
|
|
|
|
block=none,
|
|
|
|
backend=biber % {Options: bibtex, biber}
|
|
|
|
]{biblatex}
|
2016-01-22 11:10:42 +00:00
|
|
|
|
2016-01-22 11:43:22 +00:00
|
|
|
% Avoid splitting entries across page break (only for 3 or fewer lines)
|
|
|
|
% Tip: http://tex.stackexchange.com/a/51261
|
|
|
|
\AtBeginEnvironment{thebibliography}{%
|
|
|
|
\clubpenalty10000
|
|
|
|
\@clubpenalty \clubpenalty
|
|
|
|
\widowpenalty10000
|
|
|
|
\interlinepenalty5000}
|
|
|
|
|
2016-01-22 11:10:42 +00:00
|
|
|
% Customized format, based on Fancy CV template created by Adrien Friggeri
|
|
|
|
\DeclareFieldFormat[article]{title}{#1\par}
|
|
|
|
\DeclareFieldFormat[inproceedings]{title}{#1\par}
|
|
|
|
\DeclareFieldFormat[misc]{title}{#1\par}
|
|
|
|
\DeclareFieldFormat[report]{title}{#1\par}
|
|
|
|
\DeclareFieldFormat[incollection]{title}{#1\par}
|
|
|
|
|
|
|
|
\DeclareBibliographyDriver{article}{%
|
|
|
|
\printfield{title}%
|
|
|
|
\newblock%
|
|
|
|
\printnames{author}%
|
|
|
|
\par%
|
|
|
|
\newblock%
|
|
|
|
{%
|
|
|
|
\footnotesize\addfontfeature{Color=lightgray}\itshape%
|
|
|
|
\usebibmacro{journal+issuetitle}%
|
|
|
|
\setunit{\space}%
|
|
|
|
\printfield{pages}%
|
|
|
|
\newunit%
|
|
|
|
\printlist{publisher}%
|
|
|
|
\setunit*{\addcomma\space}%
|
|
|
|
\printfield{year}%
|
|
|
|
\newunit%
|
|
|
|
}
|
|
|
|
\par\vspace{0.3\baselineskip}
|
|
|
|
}
|
|
|
|
|
|
|
|
\DeclareBibliographyDriver{inproceedings}{%
|
|
|
|
\printfield{title}%
|
|
|
|
\newblock%
|
|
|
|
\printnames{author}%
|
|
|
|
\par%
|
|
|
|
\newblock%
|
|
|
|
{%
|
|
|
|
\footnotesize\addfontfeature{Color=lightgray}%
|
|
|
|
\printfield{booktitle}%
|
|
|
|
\setunit{\addcomma\space}%
|
|
|
|
\printfield{year}%
|
|
|
|
\setunit{\addcomma\space}%
|
|
|
|
\printlist{location}%
|
|
|
|
\newunit%
|
|
|
|
}
|
|
|
|
\par\vspace{0.3\baselineskip}
|
|
|
|
}
|
|
|
|
|
|
|
|
\DeclareBibliographyDriver{incollection}{%
|
|
|
|
\printfield{title}%
|
|
|
|
\newblock%
|
|
|
|
\printnames{author}%
|
|
|
|
\par%
|
|
|
|
\newblock%
|
|
|
|
{%
|
|
|
|
\footnotesize\addfontfeature{Color=lightgray}%
|
|
|
|
\printfield{booktitle}%
|
|
|
|
\setunit{\addcomma\space}%
|
|
|
|
\printfield{year}%
|
|
|
|
\setunit{\addcomma\space}%
|
|
|
|
\printlist{location}%
|
|
|
|
\newunit%
|
|
|
|
}
|
|
|
|
\par\vspace{0.3\baselineskip}
|
|
|
|
}
|
|
|
|
|
|
|
|
\DeclareBibliographyDriver{misc}{%
|
|
|
|
\printfield{title}%
|
|
|
|
\newblock%
|
|
|
|
\printnames{author}%
|
|
|
|
\par%
|
|
|
|
\newblock%
|
|
|
|
{%
|
|
|
|
\footnotesize\addfontfeature{Color=lightgray}\itshape%
|
|
|
|
\printfield{booktitle}%
|
|
|
|
\setunit*{\addcomma\space}%
|
|
|
|
\printfield{note}%
|
|
|
|
\setunit*{\addcomma\space}%
|
|
|
|
\printfield{year}%
|
|
|
|
\setunit{\addcomma\space}%
|
|
|
|
\printlist{location}%
|
|
|
|
\newunit%
|
|
|
|
}
|
|
|
|
\par\vspace{0.3\baselineskip}
|
|
|
|
}
|
|
|
|
|
|
|
|
\DeclareBibliographyDriver{report}{%
|
|
|
|
\printfield{title}%
|
|
|
|
\newblock%
|
|
|
|
\printnames{author}%
|
|
|
|
\par%
|
|
|
|
\newblock%
|
|
|
|
{%
|
|
|
|
\footnotesize\addfontfeature{Color=lightgray}\itshape%
|
|
|
|
\printfield{type}%
|
|
|
|
\setunit{\space}%
|
|
|
|
\printfield{number}%
|
|
|
|
\setunit{\addcomma\space}%
|
|
|
|
\printfield{year}%
|
|
|
|
\newunit%
|
|
|
|
}
|
|
|
|
\par\vspace{0.3\baselineskip}
|
|
|
|
}
|
|
|
|
|
|
|
|
\DeclareNameFormat{author}{%
|
|
|
|
\small\addfontfeature{Color=lightgray}%
|
|
|
|
\ifblank{#3}{}{#3\space}#1%
|
|
|
|
\ifthenelse{\value{listcount}<\value{liststop}}
|
|
|
|
{\addcomma\space}
|
|
|
|
{}%
|
|
|
|
}
|