Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Bankingplus style and two new command helps for creating nested cventry #85

Open
wants to merge 1 commit into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
11 changes: 11 additions & 0 deletions moderncv.cls
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
%% start of file `moderncv.cls'.
%% Copyright 2006-2015 Xavier Danaux ([email protected]).
%% Modification Copyright 2019-2019 Raju Rimal ([email protected]).
%
% This work may be distributed and/or modified under the
% conditions of the LaTeX Project Public License version 1.3c,
Expand Down Expand Up @@ -489,6 +490,16 @@
% usage: \cventry[spacing]{years}{degree/job title}{institution/employer}{localization}{optionnal: grade/...}{optional: comment/job description}
\newcommand*{\cventry}[7][.25em]{}

% makes a resume entry which contains nested subentries
% Removed the year and degree/job title from cventry. These items can be multiple and can be nested
% usage: \cventryout[spacing]{years}{localization}{optional: comment/job description}
\newcommand*{\cventryout}[4][.25em]{}

% makes a resume entry which has removed institution/employer and localization
% This can be used as nested item under cvhasnesedentry so that multiple items can be nested with same cventry
% usage: \cventryin[spacing]{years}{degree/job title}{optional: comment/job description}
\newcommand*{\cventryin}[4][.25em]{}

% makes a resume entry with a proficiency comment
% usage: \cvitemwithcomment[spacing]{header}{text}{comment}
\newcommand*{\cvitemwithcomment}[4][.25em]{}
Expand Down
261 changes: 261 additions & 0 deletions moderncvbodyvii.sty
Original file line number Diff line number Diff line change
@@ -0,0 +1,261 @@
%% start of file `moderncvbodyvii.sty'.
%% Copyright 2006-2015 Xavier Danaux ([email protected]).
%% Copyright 2019-2019 Raju Rimal ([email protected]).
%
% This work may be distributed and/or modified under the
% conditions of the LaTeX Project Public License version 1.3c,
% available at http://www.latex-project.org/lppl/.


%-------------------------------------------------------------------------------
% identification
%-------------------------------------------------------------------------------
\NeedsTeXFormat{LaTeX2e}
\ProvidesPackage{moderncvbodyvii}[2019/10/30 v2.0.0 modern curriculum vitae and letter body variant: 7]

% rules type options: "fullrules", "shortrules", "mixedrules" (default) or "norules"
\@initializeif{\if@fullrules}\@fullrulesfalse
\DeclareOption{fullrules} {\@fullrulestrue\@shortrulesfalse\@mixedrulesfalse\@norulesfalse}
\@initializeif{\if@shortrules}\@shortrulesfalse
\DeclareOption{shortrules}{\@fullrulesfalse\@shortrulestrue\@mixedrulesfalse\@norulesfalse}
\@initializeif{\if@mixedrules}\@mixedrulesfalse
\DeclareOption{mixedrules}{\@fullrulesfalse\@shortrulesfalse\@mixedrulestrue\@norulesfalse}
\@initializeif{\if@norules}\@norulesfalse
\DeclareOption{norules} {\@fullrulesfalse\@shortrulesfalse\@mixedrulesfalse\@norulestrue}

% section alignment options: "left" (default), "center" or "right"
\@initializeif{\if@left}\@leftfalse
\DeclareOption{left} {\@lefttrue\@centerfalse\@rightfalse}
\@initializeif{\if@center}\@centerfalse
\DeclareOption{center} {\@leftfalse\@centertrue\@rightfalse}
\@initializeif{\if@right}\@rightfalse
\DeclareOption{right} {\@leftfalse\@centerfalse\@righttrue}

\DeclareOption*{}% avoid choking on unknown options
\ExecuteOptions{mixedrules,left}
\ProcessOptions*\relax% \ProcessOptions* processes the options in the order provided (i.e., with the later ones possibly overriding the former ones), while \ProcessOptions processes them in the order of the package

%-------------------------------------------------------------------------------
% required packages
%-------------------------------------------------------------------------------


%-------------------------------------------------------------------------------
% overall body definition
%-------------------------------------------------------------------------------
% fonts
\renewcommand*{\sectionfont}{%
\if@norules%
\Large\bfseries\scshape%
\else%
\Large\bfseries\upshape\fi}
\renewcommand*{\subsectionfont}{%
\if@norules%
\large\mdseries\itshape%
\else%
\large\upshape\fontseries{sb}\selectfont\fi}
\renewcommand*{\hintfont}{\bfseries}

% styles
\renewcommand*{\sectionstyle}[1]{{%
\if@center\centering\else%
\if@right\raggedleft\fi\fi%
\sectionfont\textcolor{color1}{#1}%
\if@shortrules\else%
\par\fi}}
\renewcommand*{\subsectionstyle}[1]{{%
\if@center\centering\else%
\if@right\raggedleft\fi\fi%
\subsectionfont\textcolor{color1}{#1}%
\if@shortrules\else\if@mixedrules\else%
\par\fi\fi}}
\renewcommand*{\hintstyle}[1]{{\hintfont\textcolor{color0}{#1}}}


%-------------------------------------------------------------------------------
% resume body definition
%-------------------------------------------------------------------------------
% lengths
% used by \cvitem (and all children command)
\@initializelength{\hintscolumnwidth} \setlength{\hintscolumnwidth}{0.3\textwidth}
\@initializelength{\separatorcolumnwidth} \setlength{\separatorcolumnwidth}{0.025\textwidth}
\@initializelength{\maincolumnwidth}
% used by \cvdoubleitem
\@initializelength{\doubleitemcolumnwidth}
% used by \cvlistitem
\@initializelength{\listitemsymbolwidth} \settowidth{\listitemsymbolwidth}{\listitemsymbol}
\@initializelength{\listitemcolumnwidth}
% used by \cvlistdoubleitem
\@initializelength{\listdoubleitemcolumnwidth}

% commands
\renewcommand*{\recomputecvbodylengths}{%
% body lengths
\setlength{\maincolumnwidth}{\textwidth-\leftskip-\rightskip}%
\setlength{\listitemcolumnwidth}{\maincolumnwidth-\listitemsymbolwidth}%
\setlength{\doubleitemcolumnwidth}{\maincolumnwidth-\separatorcolumnwidth}%
\setlength{\doubleitemcolumnwidth}{0.5\doubleitemcolumnwidth}%
\setlength{\listdoubleitemcolumnwidth}{\maincolumnwidth-\listitemsymbolwidth-\separatorcolumnwidth-\listitemsymbolwidth}%
\setlength{\listdoubleitemcolumnwidth}{0.5\listdoubleitemcolumnwidth}%
% regular lengths
\setlength{\parskip}{0\p@}}

\RenewDocumentCommand{\section}{sm}{%
\par\addvspace{2.5ex}%
\phantomsection{}% reset the anchor for hyperrefs
\addcontentsline{toc}{section}{#2}%
\if@left\else\if@fullrules\else\if@mixedrules\else%
\sectionrule\fi\fi\fi%
\strut\sectionstyle{#2}%
\if@fullrules%
\sectionrule%
\else\if@mixedrules%
\sectionrule%
\else\if@right\else%
\sectionrule\fi\fi\fi%
\par\nobreak\addvspace{1ex}\@afterheading}

\RenewDocumentCommand{\subsection}{sm}{%
\par\addvspace{1ex}%
\phantomsection{}%
\addcontentsline{toc}{subsection}{#2}%
\if@left\else\if@fullrules\else%
\subsectionrule\fi\fi%
\strut\subsectionstyle{#2}%
\if@fullrules%
\subsectionrule%
\else\if@right\else%
\subsectionrule\fi\fi%
\par\nobreak\addvspace{0.5ex}\@afterheading}

\newcommand*{\sectionrule}{}
\newcommand*{\subsectionrule}{}
\if@fullrules%
\renewcommand*{\sectionrule}{\par\nobreak\vspace*{-.7\baselineskip}\leavevmode{\color{color1}\leaders\hbox{\rule{1pt}{0.4pt}}\hfill\kern0pt}}
\renewcommand*{\subsectionrule}{\par\nobreak\vspace*{-.7\baselineskip}\leavevmode{\color{color1}\xleaders\hbox to 0.35em{\scriptsize.}\hfill}}\fi% different subsectionrules will not be perfectly aligned, but remaining space at the end of the fill will be distributed evenly between leaders, so it will be barely visible}
\if@shortrules%
\renewcommand*{\sectionrule}{\leavevmode{\color{color1}\leaders\hbox{\rule{1pt}{0.4pt}}\hfill\kern0pt}}
\renewcommand*{\subsectionrule}{\leavevmode{\color{color1}\xleaders\hbox to 0.35em{\scriptsize.}\hfill}}\fi% different subsectionrules will not be perfectly aligned, but remaining space at the end of the fill will be distributed evenly between leaders, so it will be barely visible}}
\if@mixedrules%
\renewcommand*{\sectionrule}{\par\nobreak\vspace*{-.7\baselineskip}\leavevmode{\color{color1}\leaders\hbox{\rule{1pt}{0.4pt}}\hfill\kern0pt}}
\renewcommand*{\subsectionrule}{\leavevmode{\color{color1}\xleaders\hbox to 0.35em{\scriptsize.}\hfill}}\fi% different subsectionrules will not be perfectly aligned, but remaining space at the end of the fill will be distributed evenly between leaders, so it will be barely visible}}
\if@norules%
\renewcommand*{\sectionrule}{}
\renewcommand*{\subsectionrule}{}\fi

\renewcommand*{\cvitem}[3][.25em]{%
\ifthenelse{\equal{#2}{}}{}{\hintstyle{#2}: }{#3}%
\par\addvspace{#1}}

\renewcommand*{\cvdoubleitem}[5][.25em]{%
\begin{minipage}[t]{\doubleitemcolumnwidth}\hintstyle{#2}: #3\end{minipage}%
\hfill% fill of \separatorcolumnwidth
\begin{minipage}[t]{\doubleitemcolumnwidth}\ifthenelse{\equal{#4}{}}{}{\hintstyle{#4}: }#5\end{minipage}%
\par\addvspace{#1}}

\renewcommand*{\cvlistitem}[2][.25em]{%
\listitemsymbol\begin{minipage}[t]{\listitemcolumnwidth}#2\end{minipage}%
\par\addvspace{#1}}

\renewcommand*{\cvlistdoubleitem}[3][.25em]{%
\cvitem[#1]{}{\listitemsymbol\begin{minipage}[t]{\listdoubleitemcolumnwidth}#2\end{minipage}%
\hfill% fill of \separatorcolumnwidth
\ifthenelse{\equal{#3}{}}%
{}%
{\listitemsymbol\begin{minipage}[t]{\listdoubleitemcolumnwidth}#3\end{minipage}}}}

\renewcommand*{\cventry}[7][.25em]{
\begin{tabular*}{\maincolumnwidth}{l@{\extracolsep{\fill}}r}%
{\bfseries #4} & {\bfseries #5}\\%
{\itshape #3\ifthenelse{\equal{#6}{}}{}{, #6}} & {\itshape #2}\\%
\end{tabular*}%
\ifx&#7&%
\else{\\%
\begin{minipage}{\maincolumnwidth}%
\small#7%
\end{minipage}}\fi%
\par\addvspace{#1}}

\renewcommand*{\cventryout}[4][.25em]{
\begin{tabular*}{\maincolumnwidth}{l@{\extracolsep{\fill}}r}%
{\bfseries #2} & {\bfseries #3}\\%
\end{tabular*}%
\ifx&#4&%
\else{\vspace{0.5ex}\\%
\begin{minipage}{\maincolumnwidth}%
\small#4%
\end{minipage}}\fi%
\par\addvspace{#1}}

\renewcommand*{\cventryin}[4][.25em]{
\begin{tabular*}{\maincolumnwidth}{l@{\extracolsep{\fill}}r}%
{\itshape #2} & {\itshape #3}\\%
\end{tabular*}%
\ifx&#4&%
\else{\vspace{0.5ex}\\%
\begin{minipage}{\maincolumnwidth}%
\small#4%
\end{minipage}}\fi%
\par\addvspace{#1}}

\@initializebox{\cvitemwithcommentmainbox}
\@initializelength{\cvitemwithcommentmainlength}
\@initializelength{\cvitemwithcommentcommentlength}
\renewcommand*{\cvitemwithcomment}[4][.25em]{%
\savebox{\cvitemwithcommentmainbox}{\ifthenelse{\equal{#2}{}}{}{\hintstyle{#2}: }#3}%
\setlength{\cvitemwithcommentmainlength}{\widthof{\usebox{\cvitemwithcommentmainbox}}}%
\setlength{\cvitemwithcommentcommentlength}{\maincolumnwidth-\separatorcolumnwidth-\cvitemwithcommentmainlength}%
\begin{minipage}[t]{\cvitemwithcommentmainlength}\usebox{\cvitemwithcommentmainbox}\end{minipage}%
\hfill% fill of \separatorcolumnwidth
\begin{minipage}[t]{\cvitemwithcommentcommentlength}\raggedleft\small\itshape#4\end{minipage}%
\par\addvspace{#1}}

\renewenvironment{thebibliography}[1]%
{%
\bibliographyhead{\refname}%
% \small%
\begin{list}{\bibliographyitemlabel}%
{%
\setlength{\topsep}{0pt}%
\setlength{\labelwidth}{0pt}%
\ifthenelse{\equal{\bibliographyitemlabel}{}}%
{\setlength{\labelsep}{0pt}}%
{\setlength{\labelsep}{\separatorcolumnwidth}}%
\leftmargin\labelwidth%
\advance\leftmargin\labelsep%
\@openbib@code%
\usecounter{enumiv}%
\let\p@enumiv\@empty%
\renewcommand\theenumiv{\@arabic\c@enumiv}}%
\sloppy%
\clubpenalty4000%\@clubpenalty \clubpenalty%
\widowpenalty4000%
\sfcode`\.\@m%
\sfcode `\=1000\relax}%
{%
\def\@noitemerr{\@latex@warning{Empty `thebibliography' environment}}%
\end{list}}


%-------------------------------------------------------------------------------
% letter style definition
%-------------------------------------------------------------------------------
% commands
\renewcommand*{\recomputeletterbodylengths}{%
\recomputecvbodylengths%
\setlength{\parskip}{6\p@}}

\renewcommand*{\makeletterclosing}{
\@closing\\[3em]%
{\bfseries\@firstname~\@lastname}%
\ifthenelse{\isundefined{\@enclosure}}{}{%
\\%
\vfil%
{\color{color2}\itshape\enclname: \@enclosure}}%
\vfil}


\endinput


%% end of file `moderncvbodyiii.sty'.
Loading