From f3a81b2ad19d17b6a4e72541cc43eabeb23cc65e Mon Sep 17 00:00:00 2001 From: Sina Atalay Date: Sat, 10 Feb 2024 22:15:53 +0100 Subject: [PATCH] start working on mcdowell theme --- rendercv/themes/mcdowell/mcdowellcv.cls | 274 ++++++++++++++++++++++++ 1 file changed, 274 insertions(+) create mode 100644 rendercv/themes/mcdowell/mcdowellcv.cls diff --git a/rendercv/themes/mcdowell/mcdowellcv.cls b/rendercv/themes/mcdowell/mcdowellcv.cls new file mode 100644 index 0000000..2b4450f --- /dev/null +++ b/rendercv/themes/mcdowell/mcdowellcv.cls @@ -0,0 +1,274 @@ +%% The MIT License (MIT) +%% +%% Copyright (c) 2015 Daniil Belyakov +%% +%% 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 above copyright notice and this permission notice shall be included in all +%% copies or substantial portions of the Software. +%% +%% 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. + +\ProvidesClass{mcdowellcv}[2022/03/18 v1.2.0 McDowell CV class] + +% Set up the fonts according to options +\def\mainfontsize{11pt} +\def\mainfontface{Times New Roman} + +\DeclareOption{calibri}{% + \def\mainfontface{Calibri} +} + +% Set up papersize according to options, default to US letter +\def\papersize{letterpaper} +%Set up bool for adjusting vspacing later +\newif\ifpapersize + +\DeclareOption{a4paper}{% + \def\papersize{a4paper} + \papersizetrue +} + +\DeclareOption{letterpaper}{% + \def\papersize{letterpaper} + \papersizefalse +} +\ProcessOptions\relax + +% Set font size and paper type +\LoadClass[\papersize,\mainfontsize]{article} + +% Set document margins +\usepackage[left=0.75in,top=0.6in,right=0.75in,bottom=0.6in]{geometry} + +% Set font face +\usepackage{fontspec} +\setmainfont[SmallCapsFeatures={Renderer=Basic}, +Ligatures={TeX, NoCommon, NoDiscretionary}]{\mainfontface} + +% Remove paragraph indentation +\usepackage[parfill]{parskip} + +% Required for boldface (\bf and \bfseries) tabular columns +\usepackage{array} + +% Required for ifthenelse statements +\usepackage{etoolbox} + +% Suppress page numbers +\pagestyle{empty} + +% Flexible tables +\usepackage{tabu} + +% For custom margins +\usepackage{changepage} + +% To customize lists +\usepackage{enumitem} +% Remove left margin from lists, suppress vertical item separation and set top +% separation to a negative value to suppress a single parskip before lists +\setlist{leftmargin=*, noitemsep, topsep=-1\parskip} + +% For adjusting spacing based on the platform used +\usepackage{ifthen} +\usepackage{ifplatform} + +% For spcaed small caps +\usepackage{microtype} + +\DeclareMicrotypeSet*{smallcapsi} { + encoding = {OT1,T1,T2A,LY1,OT4,QX,T5,TS1,EU1,EU2}, + shape = {sc*,si,scit} +} + +%-------------------------------------------------------------------------------- +% Constants - +%-------------------------------------------------------------------------------- + +\ifthenelse{\equal{\platformname}{\notwindowsname}}{ + \def\namespaceskip{0.575em} + \def\afterheaderspace{1.1pt} + \def\beforesectionheaderspace{5pt} + \def\sectionheadermargin{6pt} + \def\beforesectionheaderhrulespace{2.85pt} + \def\sectionheaderhrlueheight{0.518pt} + \def\aftersectionheaderspace{-5.8pt} + + \ifpapersize + \def\aftersinglelinesubsectionheaderspace{-5.75pt} + \else + \def\aftersinglelinesubsectionheaderspace{-20.25pt} + \fi + + \def\afterdoublelinesubsectionheaderspace{-11.75pt} + \def\aftermultilinesubsectionheaderspace{-7.75pt} + \def\afteremptysubsectionheaderspace{1.25pt} + \def\subsectionmargin{9pt} + \def\aftersubsectionspace{2.1pt} +}{ + \def\namespaceskip{0.4em} + \def\afterheaderspace{3pt} + \def\beforesectionheaderspace{4.75pt} + \def\sectionheadermargin{6pt} + \def\beforesectionheaderhrulespace{3pt} + \def\sectionheaderhrlueheight{0.5pt} + \def\aftersectionheaderspace{-4pt} + + \ifpapersize + \def\aftersinglelinesubsectionheaderspace{-4pt} + \else + \def\aftersinglelinesubsectionheaderspace{-18.5pt} + \fi + + \def\afterdoublelinesubsectionheaderspace{-10pt} + \def\aftermultilinesubsectionheaderspace{-6pt} + \def\afteremptysubsectionheaderspace{3pt} + \def\subsectionmargin{9pt} + \def\aftersubsectionspace{4pt} +} + +%-------------------------------------------------------------------------------- +% Header Setup and Printing - +%-------------------------------------------------------------------------------- + +% Address +\makeatletter + +\newcommand\address[1]{\def\@address{#1}} +\address{} + +\newcommand\printaddress{ + \small{\@address} +} + +\makeatother + +% Name +\makeatletter + +\newcommand\name[1]{\def\@name{#1}} +\name{} + +\newcommand\printname{ + \typeout {kokoko} + \typeout \spaceskip + \spaceskip \namespaceskip \relax + \textbf{\LARGE\textls[110]{\textsc{\@name}}} +} + +\makeatother + +% Contacts +\makeatletter + +\newcommand\contacts[1]{\def\@contacts{#1}} +\contacts{} + +\newcommand\printcontacts{ + \small{\@contacts} +} + +\makeatother + +\makeatletter +\newcommand\makeheader{ + \begin{center} + \begin{tabu} to 1\textwidth { X[l,m] X[2,c,m] X[r,m] } + \printaddress & \printname & \printcontacts \\ + \end{tabu} + \end{center} + \vspace*{\afterheaderspace} +} +\makeatother + +%-------------------------------------------------------------------------------- +% Sections and Subsections - +%-------------------------------------------------------------------------------- + +% Print a section header +\makeatletter +\newenvironment{cvsection}[1]{ + \vspace*{\beforesectionheaderspace} + % Set text margins to equal \tabcolsep (6pt by default) + \begin{adjustwidth}{\sectionheadermargin}{\sectionheadermargin} + \textsc{\textbf{#1}} + \end{adjustwidth} + \vspace*{\beforesectionheaderhrulespace} + \hrule height \sectionheaderhrlueheight + \vspace*{\aftersectionheaderspace} +}{} +\makeatother + +% Print a subsection +\makeatletter +% Define toggles checking if titles were defined +\newtoggle{lefttitledefined} +\newtoggle{centertitledefined} +\newtoggle{righttitledefined} + +\newenvironment{cvsubsection}[4][1]{ + \notblank{#2}{\toggletrue{lefttitledefined}}{} + \notblank{#3}{\toggletrue{centertitledefined}}{} + \notblank{#4}{\toggletrue{righttitledefined}}{} + \ifboolexpr{togl {lefttitledefined} or togl {centertitledefined} or togl {righttitledefined}}{ + \begin{tabu} to 1\textwidth { X[l,p] X[c,p] X[r,p] } + \textbf{#2} & \textbf{#3} & \textbf{#4} \\ + \end{tabu} + % Add space according to the specidied number of lines + \ifnumcomp{#1}{=}{1}{\vspace*{\aftersinglelinesubsectionheaderspace}}{ + \ifnumcomp{#1}{=}{2}{\vspace*{\afterdoublelinesubsectionheaderspace}}{ + \vspace*{\aftermultilinesubsectionheaderspace} + } + } + }{ + \vspace*{\afteremptysubsectionheaderspace} + } + \togglefalse{lefttitledefined} + \togglefalse{centertitledefined} + \togglefalse{righttitledefined} + \begin{adjustwidth}{\subsectionmargin}{\subsectionmargin} +} +{ + \end{adjustwidth} + \vspace*{\aftersubsectionspace} +} + +\newenvironment{cvonelinesubsection}[4][1]{ + \notblank{#2}{\toggletrue{lefttitledefined}}{} + \notblank{#3}{\toggletrue{centertitledefined}}{} + \notblank{#4}{\toggletrue{righttitledefined}}{} + \ifboolexpr{togl {lefttitledefined} or togl {centertitledefined} or togl {righttitledefined}}{ + \begin{tabu} to 1\textwidth { X[l,p] X[c,p] X[r,p] } + \textbf{#2} & \textbf{#3} & \textbf{#4} \\ + \end{tabu} + % Add space according to the specidied number of lines + \ifnumcomp{#1}{=}{1}{\vspace*{\aftersinglelinesubsectionheaderspace}}{ + \ifnumcomp{#1}{=}{2}{\vspace*{\afterdoublelinesubsectionheaderspace}}{ + \vspace*{\aftermultilinesubsectionheaderspace} + } + } + }{ + \vspace*{\afteremptysubsectionheaderspace} + } + \togglefalse{lefttitledefined} + \togglefalse{centertitledefined} + \togglefalse{righttitledefined} + \begin{adjustwidth}{\subsectionmargin}{\subsectionmargin} +} +{ + \end{adjustwidth} + \vspace*{-5pt} +} +\makeatother