drwater/dwcv/template.tex

584 lines
18 KiB
TeX

%-----------------------------------------------------------------------------------------------------------------------------------------------%
% The MIT License (MIT)
%
% Copyright (c) 2019 Jan Küster
%
% Permission is hereby granted, free of charge, to any person obtaining a copy
% of this software and associated documentation files (the "Software"), to deal
% in the Software without restriction, including without limitation the rights
% to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
% copies of the Software, and to permit persons to whom the Software is
% furnished to do so, subject to the following conditions:
%
% THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
% IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
% FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
% AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
% LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
% OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
% THE SOFTWARE.
%
%
%-----------------------------------------------------------------------------------------------------------------------------------------------%
%============================================================================%
%
% DOCUMENT DEFINITION
%
%============================================================================%
\documentclass[10pt,A4,english]{article}
%----------------------------------------------------------------------------------------
% ENCODING
%----------------------------------------------------------------------------------------
% we use utf8 since we want to build from any machine
\usepackage[utf8]{inputenc}
\usepackage[USenglish]{isodate}
\usepackage{fancyhdr}
% \usepackage[numbers]{natbib}
%----------------------------------------------------------------------------------------
% LOGIC
%----------------------------------------------------------------------------------------
% provides \isempty test
\usepackage{xstring, xifthen}
\usepackage{enumitem}
\usepackage[english]{babel}
\usepackage{blindtext}
\usepackage{pdfpages}
\usepackage{changepage}
%----------------------------------------------------------------------------------------
% FONT BASICS
%----------------------------------------------------------------------------------------
% some tex-live fonts - choose your own
\usepackage[default]{$cvfont$}
% set font default
\renewcommand*\familydefault{\sfdefault}
\usepackage[T1]{fontenc}
% more font size definitions
\usepackage{moresize}
%----------------------------------------------------------------------------------------
% FONT AWESOME ICONS
%----------------------------------------------------------------------------------------
% include the fontawesome icon set
\usepackage{fontawesome5}
% use to vertically center content
% credits to: http://tex.stackexchange.com/questions/7219/how-to-vertically-center-two-images-next-to-each-other
\newcommand{\vcenteredinclude}[1]{\begingroup
\setbox0=\hbox{\includegraphics{#1}}%
\parbox{\wd0}{\box0}\endgroup}
\newcommand{\tab}[1]{\hspace{.2\textwidth}\rlap{#1}}
% use to vertically center content
% credits to: http://tex.stackexchange.com/questions/7219/how-to-vertically-center-two-images-next-to-each-other
\newcommand*{\vcenteredhbox}[1]{\begingroup
\setbox0=\hbox{#1}\parbox{\wd0}{\box0}\endgroup}
% icon shortcut
\newcommand{\icon}[2] {
\makebox(#2, #2){\textcolor{maincol}{\textcolor{maincol}{\faIcon{#1}}}}
}
% icon with text shortcut
\newcommand{\icontext}[3]{
\vcenteredhbox{\icon{#1}{#2}} \hspace{2pt} \parbox{0.9\mpwidth}{\textcolor{black}{#3}}
}
% icon with website url
\newcommand{\iconhref}[4]{
\vcenteredhbox{\icon{#1}{#2}} \hspace{2pt} \href{#4}{\textcolor{black}{#3}}
}
% icon with email link
\newcommand{\iconemail}[5]{
\vcenteredhbox{\icon{#1}{#2}{#5}} \hspace{2pt} \href{mailto:#4}{\textcolor{#5}{#3}}
}
%----------------------------------------------------------------------------------------
% PAGE LAYOUT DEFINITIONS
%----------------------------------------------------------------------------------------
% page outer frames (debug-only)
% \usepackage{showframe}
% we use paracol to display breakable two columns
\usepackage{paracol}
\usepackage{tikzpagenodes}
\usetikzlibrary{calc}
\usepackage{lmodern}
\usepackage{multicol}
\usepackage{lipsum}
\usepackage{atbegshi}
% define page styles using geometry
\usepackage[a4paper]{geometry}
% remove all possible margins
\geometry{top=1cm, bottom=1cm, left=1cm, right=1cm}
\usepackage{fancyhdr}
\pagestyle{empty}
% space between header and content
% \setlength{\headheight}{0pt}
% indentation is zero
\setlength{\parindent}{0mm}
%----------------------------------------------------------------------------------------
% TABLE /ARRAY DEFINITIONS
%----------------------------------------------------------------------------------------
% extended aligning of tabular cells
\usepackage{array}
% custom column right-align with fixed width
% use like p{size} but via x{size}
\newcolumntype{x}[1]{%
>{\raggedleft\hspace{0pt}}p{#1}}%
%----------------------------------------------------------------------------------------
% GRAPHICS DEFINITIONS
%----------------------------------------------------------------------------------------
%for header image
\usepackage{graphicx}
% use this for floating figures
% \usepackage{wrapfig}
% \usepackage{float}
% \floatstyle{boxed}
% \restylefloat{figure}
%for drawing graphics
\usepackage{tikz}
\usepackage{ragged2e}
\usetikzlibrary{shapes, backgrounds,mindmap, trees}
%----------------------------------------------------------------------------------------
% Bibliography
%----------------------------------------------------------------------------------------
$if(csl-refs)$
\newlength{\cslhangindent}
\setlength{\cslhangindent}{1.5em}
\newlength{\csllabelwidth}
\setlength{\csllabelwidth}{3em}
\newlength{\cslentryspacingunit} % times entry-spacing
\setlength{\cslentryspacingunit}{\parskip}
\newenvironment{CSLReferences}[2] % #1 hanging-ident, #2 entry spacing
{% don't indent paragraphs
\setlength{\parindent}{0pt}
% turn on hanging indent if param 1 is 1
\ifodd #1
\let\oldpar\par
\def\par{\hangindent=\cslhangindent\oldpar}
\fi
% set entry spacing
\setlength{\parskip}{#2\cslentryspacingunit}
}%
{}
\usepackage{calc}
\newcommand{\CSLBlock}[1]{#1\hfill\break}
\newcommand{\CSLLeftMargin}[1]{\parbox[t]{\csllabelwidth}{#1}}
\newcommand{\CSLRightInline}[1]{\parbox[t]{\linewidth - \csllabelwidth}{#1}\break}
\newcommand{\CSLIndent}[1]{\hspace{\cslhangindent}#1}
$endif$
$if(biblio-config)$
$if(natbib)$
\usepackage[$natbiboptions$]{natbib}
\bibliographystyle{$if(biblio-style)$$biblio-style$$else$plainnat$endif$}
$endif$
$if(biblatex)$
\usepackage[$if(biblio-style)$style=$biblio-style$,$endif$$for(biblatexoptions)$$biblatexoptions$$sep$,$endfor$]{biblatex}
$for(bibliography)$
\addbibresource{$bibliography$}
$endfor$
$endif$
$endif$
$if(nocite-ids)$
\nocite{$for(nocite-ids)$$it$$sep$, $endfor$}
$endif$
%----------------------------------------------------------------------------------------
% Color DEFINITIONS
%----------------------------------------------------------------------------------------
\usepackage{transparent}
\usepackage{color}
% primary color
\definecolor{maincol}{HTML}{$cvcolor.main$}
% accent color, secondary
% \definecolor{accentcol}{RGB}{ 250, 150, 10 }
% dark color
\definecolor{darkcol}{RGB}{ 70, 70, 70 }
% light color
\definecolor{lightcol}{RGB}{245,245,245}
\definecolor{accentcol}{HTML}{$cvcolor.accent$}
% Package for links, must be the last package used
\usepackage[hidelinks]{hyperref}
% returns minipage width minus two times \fboxsep
% to keep padding included in width calculations
% can also be used for other boxes / environments
\newcommand{\mpwidth}{\linewidth-\fboxsep-\fboxsep}
%============================================================================%
%
% CV COMMANDS
%
%============================================================================%
%----------------------------------------------------------------------------------------
% CV LIST
%----------------------------------------------------------------------------------------
% renders a standard latex list but abstracts away the environment definition (begin/end)
\newcommand{\cvlist}[1] {
\begin{itemize}{#1}\end{itemize}
}
%----------------------------------------------------------------------------------------
% CV TEXT
%----------------------------------------------------------------------------------------
% base class to wrap any text based stuff here. Renders like a paragraph.
% Allows complex commands to be passed, too.
% param 1: *any
\newcommand{\cvtext}[1] {
\begin{tabular*}{1\mpwidth}{p{0.98\mpwidth}}
\parbox{1\mpwidth}{#1}
\end{tabular*}
}
\newcommand{\cvtextsmall}[1] {
\begin{tabular*}{0.8\mpwidth}{p{0.8\mpwidth}}
\parbox{0.8\mpwidth}{#1}
\end{tabular*}
}
%----------------------------------------------------------------------------------------
% CV SECTION
%----------------------------------------------------------------------------------------
% Renders a a CV section headline with a nice underline in main color.
% param 1: section title
\newlength{\barw}
\newcommand{\cvsection}[1] {
\vspace{14pt}
\settowidth{\barw}{\textbf{\LARGE #1}}
\cvtext{
\textbf{\LARGE{\textcolor{darkcol}{#1}}}\\[-4pt]
\textcolor{accentcol}{ \rule{\barw}{1.5pt} } \\
}
}
\newcommand{\cvsubsection}[1] {
\vspace{14pt}
\settowidth{\barw}{\textbf{\Large #1}}
\cvtext{
\textbf{\Large{\textcolor{darkcol}{#1}}}\\[-4pt]
\textcolor{accentcol}{ \rule{\barw}{1.5pt} } \\
}
}
\newcommand{\cvheadline}[1] {
\vspace{16pt}
\cvtext{
\textbf{\Huge{\textcolor{accentcol}{#1}}}\\[-4pt]
}
}
\newcommand{\cvsubheadline}[1] {
\vspace{16pt}
\cvtext{
\textbf{\huge{\textcolor{darkcol}{#1}}}\\[-4pt]
}
}
%----------------------------------------------------------------------------------------
% META KEYWorDS
%----------------------------------------------------------------------------------------
% Renders a progress-bar to indicate a certain skill in percent.
% param 1: name of the skill / tech / etc.
% param 2: level (for example in years)
% param 3: percent, values range from 0 to 1
\newcommand{\cvkeywords}[3] {
\begin{tabular*}{1\mpwidth}{p{0.72\mpwidth} r}
\textcolor{black}{\textbf{#1}} & \textcolor{maincol}{#2}\\
\end{tabular*}%
\hspace{4pt}
\begin{tikzpicture}[scale=1,rounded corners=2pt,very thin]
\fill [lightcol] (0,0) rectangle (1\mpwidth, 0.15);
\fill [accentcol] (0,0) rectangle (#3\mpwidth, 0.15);
\end{tikzpicture}%
}
%----------------------------------------------------------------------------------------
% META SKILL
%----------------------------------------------------------------------------------------
% Renders a progress-bar to indicate a certain skill in percent.
% param 1: name of the skill / tech / etc.
% param 2: level (for example in years)
% param 3: percent, values range from 0 to 1
\newcommand{\cvskill}[3] {
\begin{tabular*}{1\mpwidth}{p{0.72\mpwidth} r}
\textcolor{black}{\textbf{#1}} & \textcolor{maincol}{#2}\\
\end{tabular*}%
\hspace{4pt}
\begin{tikzpicture}[scale=1,rounded corners=2pt,very thin]
\fill [lightcol] (0,0) rectangle (1\mpwidth, 0.15);
\fill [accentcol] (0,0) rectangle (#3\mpwidth, 0.15);
\end{tikzpicture}%
}
%----------------------------------------------------------------------------------------
% CV EVENT
%----------------------------------------------------------------------------------------
% Renders a table and a paragraph (cvtext) wrapped in a parbox (to ensure minimum content
% is glued together when a pagebreak appears).
% Additional Information can be passed in text or list form (or other environments).
% the work you did
% param 1: time-frame i.e. Sep 14 - Jan 15 etc.
% param 2: event name (job position etc.)
% param 3: Customer, Employer, Industry
% param 4: Short description
% param 5: work done (optional)
% param 6: technologies include (optional)
% param 7: achievements (optional)
\newcommand{\cvevent}[4] {
% we wrap this part in a parbox, so title and description are not separated on a pagebreak
% if you need more control on page breaks, remove the parbox
\parbox{\mpwidth}{
\begin{tabular*}{1\mpwidth}{p{0.66\mpwidth} r}
\textcolor{black}{\textbf{#2}} & \colorbox{accentcol}{\makebox[0.32\mpwidth]{\textcolor{white}{\textbf{#1}}}} \\
\textcolor{maincol}{#3} & \\
\end{tabular*}\\[1pt]
\ifthenelse{\isempty{#4}}{}{
\cvtext{#4}\\
}
}
\vspace{14pt}
}
\newcommand{\cvproj}[4] {
% we wrap this part in a parbox, so title and description are not separated on a pagebreak
% if you need more control on page breaks, remove the parbox
\parbox{\mpwidth}{
\begin{tabular*}{1\mpwidth}{p{0.66\mpwidth} r}
\textcolor{black}{\textbf{#2, #4}} & \colorbox{accentcol}{\makebox[0.32\mpwidth]{\textcolor{white}{\textbf{#1}}}} \\
\textcolor{maincol}{#3} & \\
\end{tabular*}
}
\vspace{14pt}
}
\newcommand{\cvaward}[4] {
% we wrap this part in a parbox, so title and description are not separated on a pagebreak
% if you need more control on page breaks, remove the parbox
\parbox{\mpwidth}{
\begin{tabular*}{1\mpwidth}{p{0.66\mpwidth} r}
\textcolor{black}{\textbf{#2, #4}} & \colorbox{accentcol}{\makebox[0.32\mpwidth]{\textcolor{white}{\textbf{#1}}}} \\
\textcolor{maincol}{#3} & \\
\end{tabular*}
}
\vspace{14pt}
}
%----------------------------------------------------------------------------------------
% CV META EVENT
%----------------------------------------------------------------------------------------
% Renders a CV event on the sidebar
% param 1: title
% param 2: subtitle (optional)
% param 3: customer, employer, etc,. (optional)
% param 4: info text (optional)
\newcommand{\cvmetaevent}[4] {
\textcolor{maincol} { \cvtext{\textbf{\begin{flushleft}#1\end{flushleft}}}}
\ifthenelse{\isempty{#2}}{}{
\textcolor{black} {\cvtext{\textbf{#2}} }
}
\ifthenelse{\isempty{#3}}{}{
\cvtext{{ \textcolor{maincol} {#3} }}\\
}
\cvtext{#4}\\[14pt]
}
%---------------------------------------------------------------------------------------
% QR CODE
%----------------------------------------------------------------------------------------
% Renders a qrcode image (centered, relative to the parentwidth)
% param 1: percent width, from 0 to 1
\newcommand{\cvqrcode}[1] {
\begin{center}
\includegraphics[width={#1}\mpwidth]{qrcode}
\end{center}
}
% HEADER AND FOOOTER
%====================================
\newcommand\Header[1]{%
\begin{tikzpicture}[remember picture,overlay]
\fill[accentcol]
(current page.north west) -- (current page.north east) --
([yshift=50pt]current page.north east|-current page text area.north east) --
([yshift=50pt,xshift=-3cm]current page.north|-current page text area.north) --
([yshift=10pt,xshift=-5cm]current page.north|-current page text area.north) --
([yshift=10pt]current page.north west|-current page text area.north west) -- cycle;
\node[font=\sffamily\bfseries\color{white},anchor=west,
xshift=0.7cm,yshift=-0.32cm] at (current page.north west)
{\fontsize{12}{12}\selectfont {#1}};
\end{tikzpicture}%
}
\newcommand\Footer[1]{%
\begin{tikzpicture}[remember picture,overlay]
\fill[lightcol]
(current page.south east) -- (current page.south west) --
([yshift=-80pt]current page.south east|-current page text area.south east) --
([yshift=-80pt,xshift=-6cm]current page.south|-current page text area.south) --
([xshift=-2.5cm,yshift=-10pt]current page.south|-current page text area.south) --
([yshift=-10pt]current page.south east|-current page text area.south east) -- cycle;
\node[yshift=0.32cm,xshift=9cm] at (current page.south) {\fontsize{10}{10}\selectfont \textbf{\thepage}};
\end{tikzpicture}%
}
%=====================================
%============================================================================%
%
%
%
% DOCUMENT CONTENT
%
%
%
%============================================================================%
\begin{document}
\columnratio{0.31}
\setlength{\columnsep}{2.2em}
\setlength{\columnseprule}{4pt}
\colseprulecolor{white}
% LEBENSLAUF HIERE
\AtBeginShipoutFirst{\Header{CV}\Footer{1}}
\AtBeginShipout{\AtBeginShipoutAddToBox{\Header{CV}\Footer{2}}}
\newpage
\colseprulecolor{lightcol}
\columnratio{0.31}
\setlength{\columnsep}{2.2em}
\setlength{\columnseprule}{4pt}
\begin{paracol}{2}
\begin{leftcolumn}
%---------------------------------------------------------------------------------------
% META IMAGE
%----------------------------------------------------------------------------------------
$if(sidebar.image)$
\includegraphics[width=\linewidth]{$sidebar.image$}
$endif$
\fcolorbox{white}{white}{\begin{minipage}[c][1.5cm][c]{1\mpwidth}
\Large{\textbf{\textcolor{maincol}{$author$ ($jobtitle$)}}} \\[2pt]
\Large{ \textbf{\textcolor{maincol}{@$institute$}}}
\end{minipage}}\\[4pt]
$if(sidebar.area)$
\cvsection{Research Area}
\large{$sidebar.area$} \\[2pt]
$endif$
%---------------------------------------------------------------------------------------
% META SKILLS
%----------------------------------------------------------------------------------------
$for(sidebar.bullets)$
\icontext{caret-right}{12}{$it$}\\[6pt]
$endfor$
$for(sidebar.sections)$
\cvsection{$sidebar.sections.name$}
$for(sidebar.sections.items)$
$if(sidebar.sections.items.exp)$
\cvskill{$sidebar.sections.items.text$}{$sidebar.sections.items.exp.text$}{$sidebar.sections.items.exp.num$} \\[10pt]
$elseif(sidebar.sections.items.inst)$
\cvmetaevent{$sidebar.sections.items.time$}{$sidebar.sections.items.text$}{$sidebar.sections.items.inst$}{$sidebar.sections.items.details$}
$elseif(sidebar.sections.items.href)$
\iconhref{$sidebar.sections.items.icon$}{16}{$sidebar.sections.items.text$}{$sidebar.sections.items.href$}\\[6pt]
$elseif(sidebar.sections.items.icon)$
\icontext{$sidebar.sections.items.icon$}{16}{$sidebar.sections.items.text$}\\[6pt]
$else$
\icontext{caret-right}{12}{$it$}\\[6pt]
$endif$
$endfor$
$endfor$
\cvsection{Welcome}
$if(sidebar.recruitmentad)$
\textcolor{maincol}{$sidebar.recruitmentad$}\\[6pt]
$endif$
$if(sidebar.contact)$
\includegraphics[width=0.9\linewidth]{$sidebar.contact$}
$endif$
$if(sidebar.wechat)$
\includegraphics[width=0.9\linewidth]{$sidebar.wechat$}
$endif$
\cvtext{Updated on $sidebar.updatetime$.}
\end{leftcolumn}
\begin{rightcolumn}
$body$
$biblio.tex()$
\end{rightcolumn}
\end{paracol}
\end{document}