Skip to content
Permalink

Comparing changes

Choose two branches to see what’s changed or to start a new pull request. If you need to, you can also or learn more about diff comparisons.

Open a pull request

Create a new pull request by comparing changes across two branches. If you need to, you can also . Learn more about diff comparisons here.
base repository: dnl-blkv/mcdowell-cv
Failed to load repositories. Confirm that selected base ref is valid, then try again.
Loading
base: v0.9.0
Choose a base ref
...
head repository: dnl-blkv/mcdowell-cv
Failed to load repositories. Confirm that selected head ref is valid, then try again.
Loading
compare: master
Choose a head ref

Commits on Jan 14, 2016

  1. Fix font cross-platform font face compatibility

    Set 11pt Times New Roman as the main font; Preserve Calibri font as an optional
    one, useable by adding the 'calibri' option to the class options.
    dnl-blkv committed Jan 14, 2016
    Copy the full SHA
    02dadcd View commit details

Commits on Dec 7, 2016

  1. Copy the full SHA
    0a89db7 View commit details

Commits on Jan 30, 2017

  1. Add screenshot

    dnl-blkv authored Jan 30, 2017
    Copy the full SHA
    b9bf2ab View commit details
  2. Delete McDowell_CV.png

    dnl-blkv authored Jan 30, 2017
    Copy the full SHA
    a41d62b View commit details
  3. Copy the full SHA
    34b3665 View commit details
  4. Copy the full SHA
    7bcd48c View commit details
  5. Reorder readme sections

    dnl-blkv authored Jan 30, 2017
    Copy the full SHA
    28c9940 View commit details

Commits on Mar 6, 2017

  1. Copy the full SHA
    4acd96c View commit details

Commits on Mar 7, 2017

  1. Clarify intro

    dnl-blkv authored Mar 7, 2017
    Copy the full SHA
    e0bc5a3 View commit details

Commits on Jun 18, 2017

  1. Copy the full SHA
    c0e54ef View commit details

Commits on Jun 25, 2017

  1. Update README.md

    dnl-blkv authored Jun 25, 2017
    Copy the full SHA
    9421ca0 View commit details
  2. Update README.md

    dnl-blkv authored Jun 25, 2017
    Copy the full SHA
    4137d4e View commit details

Commits on Dec 13, 2017

  1. Copy the full SHA
    8413bbc View commit details

Commits on May 17, 2018

  1. Copy the full SHA
    fd5a582 View commit details
  2. Improve Build Instructions

    dnl-blkv authored May 17, 2018
    Copy the full SHA
    476c9b4 View commit details
  3. Fix Build Instructions

    dnl-blkv authored May 17, 2018
    Copy the full SHA
    553d096 View commit details

Commits on Dec 13, 2021

  1. Copy the full SHA
    45c1bed View commit details

Commits on Mar 18, 2022

  1. Copy the full SHA
    360382d View commit details
  2. Update mcdowellcv.cls

    dnl-blkv authored Mar 18, 2022
    Copy the full SHA
    7e37968 View commit details
  3. Update mcdowellcv.cls

    dnl-blkv authored Mar 18, 2022
    Copy the full SHA
    a089e48 View commit details
  4. Merge pull request #5 from fergul/master

    Added option for a4paper size and adjust vspace accordingly
    dnl-blkv authored Mar 18, 2022
    Copy the full SHA
    5d6fc04 View commit details
  5. Merge pull request #19 from Alvi09/patch-1

    Update McDowell_CV_Template.tex
    dnl-blkv authored Mar 18, 2022
    Copy the full SHA
    d7f4404 View commit details

Commits on Aug 30, 2023

  1. Update README.md

    dnl-blkv authored Aug 30, 2023
    Copy the full SHA
    b7e2d27 View commit details
Showing with 149 additions and 74 deletions.
  1. BIN McDowell_CV.png
  2. +4 −1 McDowell_CV_Template.tex
  3. +18 −9 README.md
  4. +127 −64 mcdowellcv.cls
Binary file added McDowell_CV.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
5 changes: 4 additions & 1 deletion McDowell_CV_Template.tex
Original file line number Diff line number Diff line change
@@ -19,7 +19,9 @@
%% 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.
\documentclass{mcdowellcv}

% The font could be set to Windows-specific Calibri by using the 'calibri' option
\documentclass[]{mcdowellcv}

% For mathematical symbols
\usepackage{amsmath}
@@ -113,3 +115,4 @@
\end{cvsection}

\end{document}

27 changes: 18 additions & 9 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,20 +1,29 @@
Description
-----------
This repository features a LuaLaTeX version of a convenient CV class and a template
showing it usage. The template design was originally proposed by Gayle L. McDowell at
# McDowell CV
McDowell CV is a LuaLaTeX class for building neat and space-efficient CVs using the design originally proposed by Gayle L. McDowell at
http://www.careercup.com/resume.

The class is based on `article` class. The paper format is set to U.S. letterpaper by default.
The class is based on `article` class. The paper format is set to U.S. letterpaper by default. A template showing an example usage of the class is included.

Commands
--------
## Screenshot
<img src="https://github.com/dnl-blkv/mcdowell-cv/blob/master/McDowell_CV.png" width="240px"/>

## Use Cases
- A great tool making it easy to build CVs: https://latexresu.me/.

## Class Options
- `calibri` - sets calibri as the main font. Otherwise the default font is Times New Roman since version 1.1.0.

## Commands
The class features the following commands:
- `\name{name}` - defines the applicant's name to be printed by `\printheader`.
- `\address{address}` - defines the applicant's address to be printed by `\printheader`.
- `\contacts{contacts}` - defines the applicant's contacts to be printed by `\printheader`.
- `\makecvheader` - prints the CV header consisting of the name (see the `\name` command), address (see the `\address` command) and contacts (see the `\contacts` command).

Environments
------------
## Environments
- `\begin{cvsection}{sectionname}` - prints a section with a header consisting of the name in bold small caps and a page-wide horizontal line below.
- `\begin{cvsubsection}[linesnum]{left}{center}{right}{content}` - prints a subsection with header consisting of the `left`, `center` and `right` titles. The optional `linesnum` argument defines the amount of lines in the header. The argument only affects the vertical spacing between the environment header and content thus eliminating the effect of *tabu* package vertical spacing bug.

## Build Instructions
- Make sure `lualatex` (see https://www.luatex.org/download.html) is installed on your machine and is available in the terminal or a command line client of your choice.
- In the terminal or a command line client of your choice, go to the folder containing `McDowell_CV_Template.tex` and `mcdowellcv.cls`, and run the following command: `lualatex McDowell_CV_Template.tex`.
191 changes: 127 additions & 64 deletions mcdowellcv.cls
Original file line number Diff line number Diff line change
@@ -19,30 +19,55 @@
%% 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}[2015/12/15 v1.0.0 McDowell CV class]

\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[letterpaper,11pt]{article}
\LoadClass[\papersize,\mainfontsize]{article}

% Set document margins
\usepackage[left=0.75in,top=0.6in,right=0.75in,bottom=0.6in]{geometry}
\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}]{Calibri}
Ligatures={TeX, NoCommon, NoDiscretionary}]{\mainfontface}

% Remove paragraph indentation
\usepackage[parfill]{parskip}
\usepackage[parfill]{parskip}

% Required for boldface (\bf and \bfseries) tabular columns
\usepackage{array}
\usepackage{array}

% Required for ifthenelse statements
\usepackage{etoolbox}
\usepackage{etoolbox}

% Suppress page numbers
\pagestyle{empty}
\pagestyle{empty}

% Flexible tables
\usepackage{tabu}
@@ -52,32 +77,67 @@ Ligatures={TeX, NoCommon, NoDiscretionary}]{Calibri}

% To customize lists
\usepackage{enumitem}
% Remove left margin from lists, suppress vertical item separation and set top
% 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}
\DeclareMicrotypeSet*{smallcapsi} {
encoding = {OT1,T1,T2A,LY1,OT4,QX,T5,TS1,EU1,EU2},
shape = {sc*,si,scit}
}

%--------------------------------------------------------------------------------
% Constants -
% Constants -
%--------------------------------------------------------------------------------
\def\afterheaderspace{3pt}
\def\beforesectionheaderspace{4.75pt}
\def\sectionheadermargin{6pt}
\def\aftersectionheaderspace{-4pt}
\def\sectionheaderhrlueheight{0.5pt}
\def\aftersinglelinesubsectionheaderspace{-18.5pt}
\def\afterdoublelinesubsectionheaderspace{-10pt}
\def\aftermultilinesubsectionheaderspace{-6pt}
\def\afteremptysubsectionheaderspace{3pt}
\def\subsectionmargin{9pt}
\def\aftersubsectionspace{4pt}

\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 -
@@ -90,7 +150,7 @@ Ligatures={TeX, NoCommon, NoDiscretionary}]{Calibri}
\address{}

\newcommand\printaddress{
\small{\@address}
\small{\@address}
}

\makeatother
@@ -102,7 +162,10 @@ Ligatures={TeX, NoCommon, NoDiscretionary}]{Calibri}
\name{}

\newcommand\printname{
\textbf{\LARGE\textls[110]{\textsc{\@name}}}
\typeout {kokoko}
\typeout \spaceskip
\spaceskip \namespaceskip \relax
\textbf{\LARGE\textls[110]{\textsc{\@name}}}
}

\makeatother
@@ -114,19 +177,19 @@ Ligatures={TeX, NoCommon, NoDiscretionary}]{Calibri}
\contacts{}

\newcommand\printcontacts{
\small{\@contacts}
\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}
\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

@@ -137,14 +200,14 @@ Ligatures={TeX, NoCommon, NoDiscretionary}]{Calibri}
% 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}
\smallskip
\hrule height \sectionheaderhrlueheight
\vspace*{\aftersectionheaderspace}
\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

@@ -156,29 +219,29 @@ Ligatures={TeX, NoCommon, NoDiscretionary}]{Calibri}
\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}
\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}
\end{adjustwidth}
\vspace*{\aftersubsectionspace}
}
\makeatother
\makeatother