summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2020-05-17 22:33:11 +0000
committerKarl Berry <karl@freefriends.org>2020-05-17 22:33:11 +0000
commit8c19c652be2ca0365b7efb4d125b27543b0ba765 (patch)
tree7ac95772c04d9970eb8a0565338b93f86682283a
parent80f35a2cdb994f28ebdf6d361c233c8c2cba2709 (diff)
readablecv (18may20)
git-svn-id: svn://tug.org/texlive/trunk@55190 c570f23f-e606-0410-a88d-b1316a301751
-rw-r--r--Master/texmf-dist/doc/latex/readablecv/README.md23
-rw-r--r--Master/texmf-dist/doc/latex/readablecv/ReadableCV.pdfbin0 -> 94148 bytes
-rw-r--r--Master/texmf-dist/doc/latex/readablecv/ReadableCV.tex162
-rw-r--r--Master/texmf-dist/doc/latex/readablecv/profilepic.jpgbin0 -> 42657 bytes
-rw-r--r--Master/texmf-dist/doc/latex/readablecv/sig.pngbin0 -> 32720 bytes
-rw-r--r--Master/texmf-dist/tex/latex/readablecv/ReadableCV.cls560
-rwxr-xr-xMaster/tlpkg/bin/tlpkg-ctan-check2
-rw-r--r--Master/tlpkg/tlpsrc/collection-latexextra.tlpsrc1
-rw-r--r--Master/tlpkg/tlpsrc/readablecv.tlpsrc0
9 files changed, 747 insertions, 1 deletions
diff --git a/Master/texmf-dist/doc/latex/readablecv/README.md b/Master/texmf-dist/doc/latex/readablecv/README.md
new file mode 100644
index 00000000000..ddd6fc54b67
--- /dev/null
+++ b/Master/texmf-dist/doc/latex/readablecv/README.md
@@ -0,0 +1,23 @@
+ %% ReadableCV
+ %% Copyright 2020 Philip Stone
+ %
+ % This work may be distributed and/or modified under the
+ % conditions of the LaTeX Project Public License, either version 1.3
+ % of this license or (at your option) any later version.
+ % The latest version of this license is in
+ % http://www.latex-project.org/lppl.txt
+ % and version 1.3 or later is part of all distributions of LaTeX
+ % version 2005/12/01 or later.
+ %
+ % This work has the LPPL maintenance status `maintained'.
+ %
+ % The Current Maintainer of this work is Philip Stone
+ %
+ % This work consists of the files ReadableCV.cls and ReadableCV.tex
+
+
+This class, ReadableCV, is a re - working of how I wrote my own CV using other software.
+The intention is that it is a highly readable CV which is easy for a company to examine.
+
+The class file has plenty of comments describing it and the accompanying .tex file,
+whilst serving as an example of how to use the class, also contains plenty comments. \ No newline at end of file
diff --git a/Master/texmf-dist/doc/latex/readablecv/ReadableCV.pdf b/Master/texmf-dist/doc/latex/readablecv/ReadableCV.pdf
new file mode 100644
index 00000000000..509ceae98ab
--- /dev/null
+++ b/Master/texmf-dist/doc/latex/readablecv/ReadableCV.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex/readablecv/ReadableCV.tex b/Master/texmf-dist/doc/latex/readablecv/ReadableCV.tex
new file mode 100644
index 00000000000..3a148b61a31
--- /dev/null
+++ b/Master/texmf-dist/doc/latex/readablecv/ReadableCV.tex
@@ -0,0 +1,162 @@
+\documentclass{ReadableCV}
+
+% Set color of body text
+\color{black}
+
+% Set indent and paragraph formatting
+\setlength{\parindent}{0pt}
+\addtolength{\parskip}{6pt}
+
+\begin{document}
+
+% Set page colour using X11names colour definitions
+\setPageColour{white}
+
+% Set header details being aligned to the right or left
+% If an image is displayed it will be shown on the
+% opposite side to what is set here.
+\setHeaderAlignment{right}
+
+% Set colour of all headings, header highlights
+\setHeadingColours{SlateGray3}
+
+% Set image file to be displayed in header
+% If left blank no image is displayed
+%\setImage{profilepic.jpg}
+
+% If image not being displayed then user can
+% move contact details to opposite side of
+% page to name and jobtitle.
+% Use either opposite or below
+\setContactLocation{opposite}
+
+% Set up information needed for header.
+% If you do not want to include certain
+% information use {} instead.
+\setYourName{Joe Bloggs}
+\setYourJobTitle{General Dogs - Body}
+\setYourMobileNo{0712 345 6789}
+\setYourHomeNo{0123 456 7890}
+\setYourEmailAddr{joebloggs@gmail.com}
+\setYourWebAddr{www.joebloggs.co.uk}
+
+% Display header information
+\showHeader
+
+% Set up whether section headings are on the left or right
+\setSectionAlignment{left}
+
+% Creates a new section title / heading
+\newHeading{Personal Profile}
+
+Write some text here that explains a bit about what you can offer, things you have achieved etc.\ This should be around 4 - 6 lines but is entirely up to the user.
+
+\newHeading{Core Skills}
+
+% Add up to nine core skills. If they are
+% all not needed use {} instead.
+\addSkills{one}{two}{three}
+ {four}{five}{six}
+ {seven}{eight}{nine}
+
+\newHeading{Career Summary}
+
+% Set up whether job title or company printed first
+% Either use JobFirst or CompanyFirst
+\setJobCompanyOrder{JobFirst}
+
+% This displays the whole of the role information
+% including dates [1], job title [2],
+% company name [3] and role summary [4]
+% If a full history is required use \newrole and \roleAchievements
+% If only a brief description needed then just use \newrole
+\newRole{2013 - present}
+ {General Dogs - Body}
+ {Bigcorp}
+ {A short summary broadly detailing what the role involves.}
+
+\roleAchievements{one}
+ {two}
+ {three}
+ {four}
+ {five}
+
+\newRole{2000 - 2013}
+ {Dishwasher}
+ {Fleece them cafe}
+ {A short summary broadly detailing what the role involves.}
+
+% This tends to be any training work send you on
+\newHeading{Professional Development}
+
+% Allows the display of a new course. Arguments are
+% [1] date, [2] course title, [3] awarding body and [4] grade
+% Leave grade blank if not required.
+% If JobFirst set then course title will be first
+% If CompanyFirst set then awarding body will be first
+\newCourse{2018}
+ {Course Title}
+ {Awarding body}
+ {Grade}
+
+% This is training you have done in your own time
+\newHeading{Personal Development}
+
+\newCourse{2018}
+ {Course Title}
+ {Awarding body}
+ {Grade}
+
+% School education
+\newHeading{Education}
+
+\newCourse{2018}
+ {Course Title}
+ {Awarding body}
+ {Grade}
+
+\clearpage
+
+% Anything below creates a letter
+
+% Displays same header as on CV
+\showHeader
+
+% Name and address must be present but
+% job title is optional
+\setRecpName{Mr Deeds}
+\setRecpJobTitle{Hiring Manager}
+\setRecpRoad{BigCorp Road}
+\setRecpTown{BigCorp Town}
+\setRecpCity{BigCorp City}
+\setRecpPostcode{X12 3YZ}
+
+\makeLetter
+
+% Do not delete \recpname unless you want to call the
+% recipient something other than the name defined above.
+Dear \recpname,
+
+% Do not remove the following line
+\bigskip
+
+Please find enclosed my CV in application for the post advertised in the [insert place advertised] on [date advert seen].
+
+The nature of my degree course has prepared me for this position. It involved a great deal of independent research, requiring initiative, self-motivation and a wide range of skills. For one course, [insert course], an understanding of the [insert sector] industry was essential. I found this subject very stimulating.
+
+I am a fast and accurate writer, with a keen eye for detail and I should be very grateful for the opportunity to progress to market reporting. I am able to take on the responsibility of this position immediately, and have the enthusiasm and determination to ensure that I make a success of it.
+
+Thank you for taking the time to consider this application and I look forward to hearing from you in the near future.
+
+% Do not remove the following line
+\bigskip
+
+Yours sincerely, % if the opening is "Dear Mr(s) Doe,"
+%Yours faithfully, % if the opening is "Dear Sir or Madam,"
+
+% Insert name of image with your signature
+% If paper colour is not white best to use PNG
+% with transparency.
+\closeletter{sig.png}
+
+\end{document} \ No newline at end of file
diff --git a/Master/texmf-dist/doc/latex/readablecv/profilepic.jpg b/Master/texmf-dist/doc/latex/readablecv/profilepic.jpg
new file mode 100644
index 00000000000..b24d61d2343
--- /dev/null
+++ b/Master/texmf-dist/doc/latex/readablecv/profilepic.jpg
Binary files differ
diff --git a/Master/texmf-dist/doc/latex/readablecv/sig.png b/Master/texmf-dist/doc/latex/readablecv/sig.png
new file mode 100644
index 00000000000..eed50df57c7
--- /dev/null
+++ b/Master/texmf-dist/doc/latex/readablecv/sig.png
Binary files differ
diff --git a/Master/texmf-dist/tex/latex/readablecv/ReadableCV.cls b/Master/texmf-dist/tex/latex/readablecv/ReadableCV.cls
new file mode 100644
index 00000000000..db6197592dc
--- /dev/null
+++ b/Master/texmf-dist/tex/latex/readablecv/ReadableCV.cls
@@ -0,0 +1,560 @@
+%% ReadableCV
+%% Copyright 2020 Philip Stone
+%
+% This work may be distributed and/or modified under the
+% conditions of the LaTeX Project Public License, either version 1.3
+% of this license or (at your option) any later version.
+% The latest version of this license is in
+% http://www.latex-project.org/lppl.txt
+% and version 1.3 or later is part of all distributions of LaTeX
+% version 2005/12/01 or later.
+%
+% This work has the LPPL maintenance status `maintained'.
+%
+% The Current Maintainer of this work is Philip Stone
+%
+% This work consists of the files ReadableCV.cls and ReadableCV.tex
+
+\def\ClassDate{2020/05/14}
+\def\ClassVersion{2.0}
+\ProvidesClass{ReadableCV}[\ClassDate ReadableCV \ClassVersion class written by Philip Stone]
+
+\LoadClass[10pt, a4paper, onecolumn, oneside, notitlepage]{article}
+\NeedsTeXFormat{LaTeX2e}
+
+%set up PDF metadata
+\usepackage{hyperref}
+
+% Set up paper size and language
+\RequirePackage[a4paper, total={7in, 10in}]{geometry}
+\RequirePackage{titlesec}
+\RequirePackage[nodayofweek]{datetime}
+
+% Allow use of multiple columns
+\RequirePackage{multicol}
+
+% Support for graphics, fonts and colour
+\RequirePackage{marvosym}
+\RequirePackage{graphicx}
+\RequirePackage[x11names]{xcolor}
+\RequirePackage[sfdefault,thin]{roboto}
+\RequirePackage[T1]{fontenc}
+
+\pagestyle{empty}
+\setlength{\parindent}{0em}
+
+% Allow use of if statements
+\RequirePackage{etoolbox}
+\RequirePackage{xstring}
+
+
+% Set up whether sections align to the left or right
+\def\SectionAlignment{flushleft}
+
+\newcommand{\setSectionAlignment}[1]{
+ \IfEqCase{#1}{
+ {left}{\def\SectionAlignment{flushleft}}
+ {right}{\def\SectionAlignment{flushright}}
+ }
+}
+
+% Displays section title or heading
+\newcommand{\newHeading}[2]{
+ \begin{\SectionAlignment}
+% \vspace{\baselineskip}
+ \bigskip
+ \textcolor{\HeadingColour}{\textbf{\Large{#1}}}
+ \smallskip
+ \hrule
+% \vspace{\baselineskip}
+ \end{\SectionAlignment}
+}
+
+% Define page colour
+% Uses X11names
+\def\PageColour{white}
+\newcommand{\setPageColour}[1]{
+ \def\PageColour{#1}
+ \pagecolor{\PageColour}
+}
+
+% Define left or right aligned header
+% Can be either 'left' or 'right'
+\def\HeaderAlignment{flushright}
+% Create command to change header alignment
+\newcommand{\setHeaderAlignment}[1]{
+ \IfEqCase{#1}{
+ {left}{\def\HeaderAlignment{flushleft}}
+ {right}{\def\HeaderAlignment{flushright}}
+ }
+}
+
+% Define default colour of headings
+% Uses X11names
+\def\HeadingColour{SlateGray3}
+% Create command to change header colour
+\newcommand{\setHeadingColours}[1]{
+ \def\HeadingColour{#1}
+}
+
+\def\rcvname{}
+\def\rcvjobtitle{}
+\def\rcvmobileno{}
+\def\rcvhomeno{}
+\def\rcvemailaddr{}
+\def\rcvwebaddr{}
+
+\newcommand{\HeaderText}{
+
+ \begin{minipage}{1.0\linewidth}
+ \begin{\HeaderAlignment}
+ \textcolor{\HeadingColour}{\textbf{\Huge{\rcvname}}}\\
+ \vspace{-0.3em}
+ \LARGE{\rcvjobtitle}\\
+
+ \smallskip
+ \ifdefempty{\rcvmobileno}%
+ {
+ %if mobile number not defined
+ \ifdefempty{\rcvhomeno}%
+ {
+ % mobile and home numbers not defined
+ }
+ {
+ %mobile number not defined, home number is
+ \normalsize{\textcolor{\HeadingColour}{\Telefon}\ \rcvhomeno\\}
+ }
+ }
+ {
+ %if mobile number defined
+ \ifdefempty{\rcvhomeno}%
+ {
+ %if mobile number defined, home number not defined
+ \normalsize{\textcolor{\HeadingColour}{\Mobilefone}\ \rcvmobileno\\}
+ }
+ {
+ %if home number and mobile number defined
+ \normalsize{\textcolor{\HeadingColour}{\Mobilefone}\ \rcvmobileno\ {\textcolor{\HeadingColour}{\Telefon}\ \rcvhomeno\\}}
+ }
+ }
+
+ \ifdefempty{\rcvemailaddr}%
+ {
+ \ifdefempty{\rcvwebaddr}%
+ {
+ % email and web not defined
+ }
+ {
+ %email not defined, web is
+ \normalsize{\textcolor{\HeadingColour}{\Mundus}\ \rcvwebaddr\\}
+ }
+ }
+ {
+ %if email defined
+ \ifdefempty{\rcvwebaddr}%
+ {
+ %if email defined, web not defined
+ \normalsize{\textcolor{\HeadingColour}{\Letter}\ \rcvemailaddr\\}
+ }
+ {
+ %if email and web defined
+ \normalsize{\textcolor{\HeadingColour}{\Letter}\ \rcvemailaddr\ {\textcolor{\HeadingColour}{\Mundus}\ \rcvwebaddr\\}}
+ }
+ }
+ \end{\HeaderAlignment}
+ \end{minipage}
+}
+
+\newcommand{\HeaderRightContact}{
+ % Name and jobtitle on the left. Contact details on the right.
+
+ \begin{minipage}{0.5\linewidth}
+ \begin{flushleft}
+ \textcolor{\HeadingColour}{\textbf{\Huge{\rcvname}}}\\
+ \vspace{-0.3em}
+ \LARGE{\rcvjobtitle}\\
+ \end{flushleft}
+ \end{minipage}
+ \begin{minipage}{0.5\linewidth}
+ \begin{flushright}
+ \ifdefempty{\rcvmobileno}
+ {}
+ {\normalsize{\textcolor{\HeadingColour}{\Mobilefone}\ \rcvmobileno\\}}
+ \ifdefempty{\rcvhomeno}
+ {}
+ {\normalsize{\textcolor{\HeadingColour}{\Telefon}\ \rcvhomeno\\}}
+ \ifdefempty{\rcvemailaddr}
+ {}
+ {\normalsize{\textcolor{\HeadingColour}{\Letter}\ \rcvemailaddr\\}}
+ \ifdefempty{\rcvwebaddr}
+ {}
+ {\normalsize{\textcolor{\HeadingColour}{\Mundus}\ \rcvwebaddr\\}}
+ \end{flushright}
+ \end{minipage}
+}
+
+\newcommand{\HeaderLeftContact}{
+ % Name and jobtitle on the right. Contact details on the left.
+
+ \begin{minipage}{0.5\linewidth}
+ \begin{flushleft}
+ \ifdefempty{\rcvmobileno}
+ {}
+ {\normalsize{\textcolor{\HeadingColour}{\Mobilefone}\ \rcvmobileno\\}}
+ \ifdefempty{\rcvhomeno}
+ {}
+ {\normalsize{\textcolor{\HeadingColour}{\Telefon}\ \rcvhomeno\\}}
+ \ifdefempty{\rcvemailaddr}
+ {}
+ {\normalsize{\textcolor{\HeadingColour}{\Letter}\ \rcvemailaddr\\}}
+ \ifdefempty{\rcvwebaddr}
+ {}
+ {\normalsize{\textcolor{\HeadingColour}{\Mundus}\ \rcvwebaddr\\}}
+ \end{flushleft}
+ \end{minipage}
+ \begin{minipage}{0.5\linewidth}
+ \begin{flushright}
+ \textcolor{\HeadingColour}{\textbf{\Huge{\rcvname}}}\\
+ \vspace{-0.3em}
+ \LARGE{\rcvjobtitle}\\
+ \end{flushright}
+ \end{minipage}
+
+}
+
+\newcommand{\HeaderTextOppo}{
+ \IfEqCase{\HeaderAlignment}{
+ {flushleft}{\HeaderRightContact}
+ {flushright}{\HeaderLeftContact}
+ }
+}
+
+\newcommand{\HeaderLeftImage}{
+ \begin{minipage}{0.5\linewidth}
+ \begin{flushleft}
+ \includegraphics[width=2.5cm,height=2.5cm,keepaspectratio]{\rcvimageloc}
+ \end{flushleft}
+ \end{minipage}
+ \begin{minipage}{0.5\linewidth}
+ \begin{flushright}
+ \textcolor{\HeadingColour}{\textbf{\Huge{\rcvname}}}\\
+ \vspace{-0.3em}
+ \LARGE{\rcvjobtitle}\\
+
+ \smallskip
+ \ifdefempty{\rcvmobileno}%
+ {
+ %if mobile number not defined
+ \ifdefempty{\rcvhomeno}%
+ {
+ % mobile and home numbers not defined
+ }
+ {
+ %mobile number not defined, home number is
+ \normalsize{\textcolor{\HeadingColour}{\Telefon}\ \rcvhomeno\\}
+ }
+ }
+ {
+ %if mobile number defined
+ \ifdefempty{\rcvhomeno}%
+ {
+ %if mobile number defined, home number not defined
+ \normalsize{\textcolor{\HeadingColour}{\Mobilefone}\ \rcvmobileno\\}
+ }
+ {
+ %if home number and mobile number defined
+ \normalsize{\textcolor{\HeadingColour}{\Mobilefone}\ \rcvmobileno\ {\textcolor{\HeadingColour}{\Telefon}\ \rcvhomeno\\}}
+ }
+ }
+
+ \ifdefempty{\rcvemailaddr}%
+ {
+ \ifdefempty{\rcvwebaddr}%
+ {
+ % email and web not defined
+ }
+ {
+ %email not defined, web is
+ \normalsize{\textcolor{\HeadingColour}{\Mundus}\ \rcvwebaddr\\}
+ }
+ }
+ {
+ %if email defined
+ \ifdefempty{\rcvwebaddr}%
+ {
+ %if email defined, web not defined
+ \normalsize{\textcolor{\HeadingColour}{\Letter}\ \rcvemailaddr\\}
+ }
+ {
+ %if email and web defined
+ \normalsize{\textcolor{\HeadingColour}{\Letter}\ \rcvemailaddr\ {\textcolor{\HeadingColour}{\Mundus}\ \rcvwebaddr\\}}
+ }
+ }
+ \end{flushright}
+ \end{minipage}
+}
+
+\newcommand{\HeaderRightImage}{
+ \begin{minipage}{0.5\linewidth}
+ \begin{flushleft}
+ \textcolor{\HeadingColour}{\textbf{\Huge{\rcvname}}}\\
+ \vspace{-0.3em}
+ \LARGE{\rcvjobtitle}\\
+
+ \smallskip
+ \ifdefempty{\rcvmobileno}%
+ {
+ %if mobile number not defined
+ \ifdefempty{\rcvhomeno}%
+ {
+ % mobile and home numbers not defined
+ }
+ {
+ %mobile number not defined, home number is
+ \normalsize{\textcolor{\HeadingColour}{\Telefon}\ \rcvhomeno\\}
+ }
+ }
+ {
+ %if mobile number defined
+ \ifdefempty{\rcvhomeno}%
+ {
+ %if mobile number defined, home number not defined
+ \normalsize{\textcolor{\HeadingColour}{\Mobilefone}\ \rcvmobileno\\}
+ }
+ {
+ %if home number and mobile number defined
+ \normalsize{\textcolor{\HeadingColour}{\Mobilefone}\ \rcvmobileno\ {\textcolor{\HeadingColour}{\Telefon}\ \rcvhomeno\\}}
+ }
+ }
+
+ \ifdefempty{\rcvemailaddr}%
+ {
+ \ifdefempty{\rcvwebaddr}%
+ {
+ % email and web not defined
+ }
+ {
+ %email not defined, web is
+ \normalsize{\textcolor{\HeadingColour}{\Mundus}\ \rcvwebaddr\\}
+ }
+ }
+ {
+ %if email defined
+ \ifdefempty{\rcvwebaddr}%
+ {
+ %if email defined, web not defined
+ \normalsize{\textcolor{\HeadingColour}{\Letter}\ \rcvemailaddr\\}
+ }
+ {
+ %if email and web defined
+ \normalsize{\textcolor{\HeadingColour}{\Letter}\ \rcvemailaddr\ {\textcolor{\HeadingColour}{\Mundus}\ \rcvwebaddr\\}}
+ }
+ }
+ \end{flushleft}
+ \end{minipage}
+ \begin{minipage}{0.5\linewidth}
+ \begin{flushright}
+ \includegraphics[width=2.5cm,height=2.5cm,keepaspectratio]{\rcvimageloc}
+ \end{flushright}
+ \end{minipage}
+}
+
+% Define image use
+\newtoggle{useImage}
+\def\rcvimageloc{}
+
+% Set up use of image
+\newcommand{\setImage}[1]{
+ \IfEq {#1}{}{
+ \togglefalse{useImage}
+ \def\rcvimageloc{}
+ }
+ {
+ \toggletrue{useImage}
+ \def\rcvimageloc{#1}
+ }
+}
+
+\def\contactloc{below}
+
+\newcommand{\setContactLocation}[1]{
+ \IfEqCase{#1}{
+ {below}{\def\contactloc{below}}
+ {opposite}{\def\contactloc{opposite}}
+ }
+}
+
+\newcommand{\setYourName}[1]{\def\rcvname{#1}}
+\newcommand{\setYourJobTitle}[1]{\def\rcvjobtitle{#1}}
+\newcommand{\setYourMobileNo}[1]{\def\rcvmobileno{#1}}
+\newcommand{\setYourHomeNo}[1]{\def\rcvhomeno{#1}}
+\newcommand{\setYourEmailAddr}[1]{\def\rcvemailaddr{#1}}
+\newcommand{\setYourWebAddr}[1]{\def\rcvwebaddr{#1}}
+
+% Display header
+\newcommand{\showHeader}{
+
+ \hypersetup
+ {
+ pdftitle = {CV for \rcvname},
+ pdfauthor = {\rcvname},
+ pdfsubject = {CV for \rcvname},
+ pdfkeywords = {CV, curriculum, vitae, resume, \rcvname, \rcvjobtitle},
+ pdfproducer = {ReadableCV \ClassVersion\ template written by Philip Stone}
+ }
+
+ \iftoggle{useImage}%
+ {
+ % Image present
+ \IfEqCase{\HeaderAlignment}{
+ {flushleft}{\HeaderRightImage}
+ {flushright}{\HeaderLeftImage}
+ }
+ }
+ {
+ % Image not present
+ \IfEqCase{\contactloc}{
+ {below}{\HeaderText}
+ {opposite}{\HeaderTextOppo}
+ }
+ }
+
+ \vspace{\baselineskip}
+}
+
+\newcommand{\addSkills}[9]{
+ \def\sone{#1}
+ \def\stwo{#2}
+ \def\sthree{#3}
+ \def\sfour{#4}
+ \def\sfive{#5}
+ \def\ssix{#6}
+ \def\sseven{#7}
+ \def\seight{#8}
+ \def\snine{#9}
+
+ \begin{multicols}{3}
+ \begin{itemize}
+ \ifdefempty{\sone}{}{\item \sone}
+ \ifdefempty{\stwo}{}{\item \stwo}
+ \ifdefempty{\sthree}{}{\item \sthree}
+ \ifdefempty{\sfour}{}{\item \sfour}
+ \ifdefempty{\sfive}{}{\item \sfive}
+ \ifdefempty{\ssix}{}{\item \ssix}
+ \ifdefempty{\sseven}{}{\item \sseven}
+ \ifdefempty{\seight}{}{\item \seight}
+ \ifdefempty{\snine}{}{\item \snine}
+ \end{itemize}
+ \end{multicols}
+}
+
+% Set up whether job title or company printed first
+\newtoggle{jobfirst}
+\toggletrue{jobfirst}
+
+\newcommand{\setJobCompanyOrder}[1]{
+ \IfEqCase{#1}{
+ {JobFirst}{\toggletrue{jobfirst}}
+ {CompanyFirst}{\togglefalse{jobfirst}}
+ }
+}
+
+\newcommand{\newRole}[4]{
+ % This displays the whole of the role information
+ % including dates [1], job title [2],
+ % company name [3] and role summary [4]
+
+ \iftoggle{jobfirst}{
+ % Display job before company
+ \begin{tabular}{@{}p{3cm} l}
+ \textbf{#1} & \textbf{#2}\\
+ & \textbf{#3}\\
+ \end{tabular}
+ }
+ {
+ % Display company before job
+ \begin{tabular}{@{}p{3cm} l}
+ \textbf{#1} & \textbf{#3}\\
+ & \textbf{#2}\\
+ \end{tabular}
+ }
+
+ \vspace{\baselineskip}
+ \textit{Role outline} \par \par \hspace{2em}#4 \bigskip
+}
+
+\newcommand{\roleAchievements}[5]{
+ % Adds up to five achievements in an itemized list
+ \textit{Key achievements} \par \par
+
+ \def\aone{#1}
+ \def\atwo{#2}
+ \def\athree{#3}
+ \def\afour{#4}
+ \def\afive{#5}
+
+ \begin{itemize}
+ \ifdefempty{\aone}{}{\item \aone}
+ \ifdefempty{\atwo}{}{\item \atwo}
+ \ifdefempty{\athree}{}{\item \athree}
+ \ifdefempty{\afour}{}{\item \afour}
+ \ifdefempty{\afive}{}{\item \afive}
+ \end{itemize}
+
+ \bigskip
+}
+
+\newcommand{\newCourse}[4]{
+% Allows the display of a new course. Arguments are
+% [1] date, [2] course title, [3] awarding body.
+% If JobFirst set then course title will be first
+% If CompanyFirst set then awarding body will be first
+
+ \iftoggle{jobfirst}{
+ % Display job before company
+ \begin{tabular}{@{}p{3cm} l}
+ \textbf{#1} & \textbf{#2} (#3)\\
+ \end{tabular}
+}
+{
+ % Display company before job
+ \begin{tabular}{@{}p{3cm} l}
+ \textbf{#1} & \textbf{#3} (#2)\\
+ \end{tabular}
+}
+}
+
+% Recipients address
+\def\recpname{}
+\def\recpjobtitle{}
+\def\recproad{}
+\def\recptown{}
+\def\recpcity{}
+\def\recppostcode{}
+
+\newcommand{\setRecpName}[1]{\def\recpname{#1}}
+\newcommand{\setRecpJobTitle}[1]{\def\recpjobtitle{#1}}
+\newcommand{\setRecpRoad}[1]{\def\recproad{#1}}
+\newcommand{\setRecpTown}[1]{\def\recptown{#1}}
+\newcommand{\setRecpCity}[1]{\def\recpcity{#1}}
+\newcommand{\setRecpPostcode}[1]{\def\recppostcode{#1}}
+
+\newcommand{\makeLetter}{
+ \begin{flushright}
+ \today
+ \end{flushright}
+
+ \bigskip \bigskip
+
+ \recpname \\
+ \ifdefempty{\recpjobtitle}{}{\recpjobtitle \\}
+ \recproad \\ \recptown \\ \recpcity \\ \recppostcode
+
+ \bigskip
+
+}
+
+% Finish letter image of signature and your name
+\newcommand{\closeletter}[1]{%
+ \includegraphics{#1}\\ \bigskip \rcvname
+} \ No newline at end of file
diff --git a/Master/tlpkg/bin/tlpkg-ctan-check b/Master/tlpkg/bin/tlpkg-ctan-check
index 62cbe3bc0e2..e48f8a7217b 100755
--- a/Master/tlpkg/bin/tlpkg-ctan-check
+++ b/Master/tlpkg/bin/tlpkg-ctan-check
@@ -622,7 +622,7 @@ my @TLP_working = qw(
r_und_s ragged2e raleway ran_toks randbild
random randomlist randomwalk randtext
rank-2-roots rccol rcs rcs-multi rcsinfo
- readarray realboxes realhats realscripts rec-thy
+ readablecv readarray realboxes realhats realscripts rec-thy
recipe recipebook recipecard recycle rectopma
refcheck refcount refenums reflectgraphics refman refstyle
regcount regexpatch register regstats
diff --git a/Master/tlpkg/tlpsrc/collection-latexextra.tlpsrc b/Master/tlpkg/tlpsrc/collection-latexextra.tlpsrc
index 65d7bacdb1b..4dda983ab66 100644
--- a/Master/tlpkg/tlpsrc/collection-latexextra.tlpsrc
+++ b/Master/tlpkg/tlpsrc/collection-latexextra.tlpsrc
@@ -975,6 +975,7 @@ depend randtext
depend rccol
depend rcs-multi
depend rcsinfo
+depend readablecv
depend readarray
depend realboxes
depend recipe
diff --git a/Master/tlpkg/tlpsrc/readablecv.tlpsrc b/Master/tlpkg/tlpsrc/readablecv.tlpsrc
new file mode 100644
index 00000000000..e69de29bb2d
--- /dev/null
+++ b/Master/tlpkg/tlpsrc/readablecv.tlpsrc