refactor code for cover letter

This commit is contained in:
Posquit0.BJ
2015-12-14 15:59:20 +09:00
parent e087d3f792
commit 81e9d569e5
11 changed files with 122 additions and 32 deletions

View File

@@ -21,7 +21,7 @@
%-------------------------------------------------------------------------------
% Identification
%-------------------------------------------------------------------------------
\ProvidesClass{awesome-cv}[2015/12/10 v1.2 Awesome Curriculum Vitae Class]
\ProvidesClass{awesome-cv}[2015/12/14 v1.3 Awesome Curriculum Vitae Class]
\NeedsTeXFormat{LaTeX2e}
@@ -64,6 +64,8 @@
\RequirePackage{xifthen}
% Needed to use a toolbox of programming tools
\RequirePackage{etoolbox}
% Needed to change line spacing in specific environment
\RequirePackage{setspace}
% Needed to manage fonts
\ifxetex
\RequirePackage[quiet]{fontspec}
@@ -254,8 +256,15 @@
\newcommand*{\skillsetstyle}[1]{{\fontsize{9pt}{1em}\bodyfontlight\color{text} #1}}
% For elements of the cover letter
\newcommand*{\cvletteraddressstyle}[1]{{\fontsize{10pt}{1em}\bodyfont\scshape\color{graytext} #1}}
\newcommand*{\cvlettertitelstyle}[1]{{\fontsize{11pt}{1em}\bodyfont\bfseries\color{darktext} #1}}
\newcommand*{\paragraphstyle}[1]{{\fontsize{14pt}{1em}\bodyfont\bfseries\color{text}\@sectioncolor #1}}
\newcommand*{\recipientaddressstyle}[1]{{\fontsize{9pt}{1em}\bodyfont\scshape\color{graytext} #1}}
\newcommand*{\recipienttitlestyle}[1]{{\fontsize{11pt}{1em}\bodyfont\bfseries\color{darktext} #1}}
\newcommand*{\lettertitlestyle}[1]{{\fontsize{10pt}{1em}\bodyfontlight\bfseries\color{darktext} \underline{#1}}}
\newcommand*{\letterdatestyle}[1]{{\fontsize{9pt}{1em}\bodyfontlight\slshape\color{graytext} #1}}
\newcommand*{\lettertextstyle}{\fontsize{10pt}{1.4em}\bodyfontlight\upshape\color{graytext}}
\newcommand*{\letternamestyle}[1]{{\fontsize{10pt}{1em}\bodyfont\bfseries\color{darktext} #1}}
\newcommand*{\letterenclosurestyle}[1]{{\fontsize{10pt}{1em}\bodyfontlight\slshape\color{lighttext} #1}}
%-------------------------------------------------------------------------------
% Commands for personal information
@@ -317,6 +326,39 @@
% Usage: \quote{<quote>}
\renewcommand*{\quote}[1]{\def\@quote{#1}}
% Defines recipient's information (cover letter only)
% Usage: \recipient{<recipient name>}{<recipient address>}
% Usage: \recipientname{<recipient name>}
% Usage: \recipientaddress{<recipient address>}
\newcommand*{\recipient}[2]{\def\@recipientname{#1}\def\@recipientaddress{#2}}
\newcommand*{\recipientname}[1]{\def\@recipientname{#1}}
\newcommand*{\recipientaddress}[1]{\def\@recipientaddress{#1}}
% Defines the title for letter (cover letter only, optional)
% Usage: \lettertitle{<title>}
\newcommand*{\lettertitle}[1]{\def\@lettertitle{#1}}
% Defines the date for letter (cover letter only)
% Usage: \letterdate{<date>}
\newcommand*{\letterdate}[1]{\def\@letterdate{#1}}
% Defines a message of opening for letter (cover letter only)
% Usage: \letteropening{<message>}
\newcommand*{\letteropening}[1]{\def\@letteropening{#1}}
% Defines a message of closing for letter (cover letter only)
% Usage: \letterclosing{<message>}
\newcommand*{\letterclosing}[1]{\def\@letterclosing{#1}}
% Defines an enclosure for letter (cover letter only, optional)
% Usage: \letterenclosure[<enclosure name>]{<enclosure>}
\newcommand*{\letterenclname}[1][Enclosure]{\def\@letterenclname{#1}}
\newcommand*{\letterenclosure}[2][]{
% if an optional argument is provided, use it to redefine \enclname
\ifthenelse{\equal{#1}{}}{}{\def\@letterenclname{#1}}
\def\@letterenclosure{#2}
}
%-------------------------------------------------------------------------------
% Commands for extra
@@ -352,7 +394,7 @@
\begin{center}
\headerfirstnamestyle{
\@firstname
}\headerlastnamestyle{
} \headerlastnamestyle{
\@lastname
}
\\
@@ -576,23 +618,48 @@
%-------------------------------------------------------------------------------
% Define an environment for cvletter
\newenvironment{cvletter}{
\fontsize{11pt}{1.3em}\bodyfontlight\upshape\color{darktext}\selectfont
\lettertextstyle
}{
}
% Define the header of the cover letter
% Usage: \cvletterinfo {Name}{Street}{City}{Country}{JobTitle}
\newcommand*{\cvletterinfo}[5]{
% Define a paragraph for cvletter
% Usage: \cvparagraph{<paragraph-title>}
\newcommand{\cvparagraph}[1]{
\par\addvspace{2.5ex}
\phantomsection{}
\paragraphstyle{#1}
\color{gray}\vhrulefill{0.9pt}
\par\nobreak\addvspace{0.4ex}
}
% Define a title of the cover letter
% Usage: \makelettertitle
\newcommand*{\makelettertitle}{
\vspace{8.4mm}
\setlength\tabcolsep{0pt}
\setlength{\extrarowheight}{0pt}
\begin{tabular*}{\textwidth}{@{\extracolsep{\fill}} L{12.5cm} R{4.5cm}}
\vspace{0.5cm} \\
\cvletteraddressstyle{#1} \\
\cvletteraddressstyle{#2} \\
\cvletteraddressstyle{#3} \\
\cvletteraddressstyle{#4} \\
& \entrydatestyle{\today} \\
\\
\cvlettertitelstyle{#5} \\
\recipienttitlestyle{\@recipientname} & \letterdatestyle{\@letterdate}
\end{tabular*}
\begin{singlespace}
\recipientaddressstyle{\@recipientaddress} \\\\
\end{singlespace}
\ifthenelse{\isundefined{\@lettertitle}}
{}
{\lettertitlestyle{\@lettertitle} \\}
\lettertextstyle{\@letteropening}
}
% Define a closing of the cover letter
% Usage: \makeletterclosing
\newcommand*{\makeletterclosing}{
\vspace{3.4mm}
\lettertextstyle{\@letterclosing} \\\\
\letternamestyle{\@firstname \@lastname}
\ifthenelse{\isundefined{\@letterenclosure}}
{\\}
{
\\\\\\
\letterenclosurestyle{\@letterenclname: \@letterenclosure} \\
}
}