From 71e57b1c98740d1fbb24981d390bd3ec8f2e967b Mon Sep 17 00:00:00 2001
From: Norbert Preining <norbert@preining.info>
Date: Sun, 17 May 2020 03:03:04 +0000
Subject: CTAN sync 202005170303

---
 macros/latex/contrib/readablecv/ReadableCV.cls | 560 +++++++++++++++++++++++++
 1 file changed, 560 insertions(+)
 create mode 100644 macros/latex/contrib/readablecv/ReadableCV.cls

(limited to 'macros/latex/contrib/readablecv/ReadableCV.cls')

diff --git a/macros/latex/contrib/readablecv/ReadableCV.cls b/macros/latex/contrib/readablecv/ReadableCV.cls
new file mode 100644
index 0000000000..db6197592d
--- /dev/null
+++ b/macros/latex/contrib/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
-- 
cgit v1.2.3

