create unified moderncvskillmatrix.sty package and remove moderncvbody<i-v>skillmatrix.sty files

This commit is contained in:
David 2021-01-19 00:28:16 +01:00
commit 6d4c4fb22a
10 changed files with 311 additions and 741 deletions

View file

@ -16,7 +16,9 @@
%-------------------------------------------------------------------------------
% required packages
%-------------------------------------------------------------------------------
% provides the commands for the skillmatrix as well as the command
% \recomputecvskillmatrixlengths
\RequirePackage[moderncvbodyi]{moderncvskillmatrix}
%-------------------------------------------------------------------------------
% overall body definition
@ -50,9 +52,6 @@
% default moderncv \photo (change the definition such that by default the photo and its box align with the section bars
\RenewDocumentCommand{\photo}{O{\hintscolumnwidth-0.8pt-2\fboxsep}O{0.4pt}m}{\def\@photowidth{#1}\def\@photoframewidth{#2}\def\@photo{#3}}%
%% include moderncv Skillmatrix code
\input{moderncvbodyiskillmatrix.sty}
% commands
\renewcommand*{\recomputecvbodylengths}{%
% body lengths

View file

@ -89,8 +89,6 @@
% used by \cvlistdoubleitem
\@initializelength{\listdoubleitemcolumnwidth}
%% include moderncv Skillmatrix code
\input{moderncvbodyiiiskillmatrix.sty}
% commands
\renewcommand*{\recomputecvbodylengths}{%
% body lengths

View file

@ -1,124 +0,0 @@
% some packages required for this code
\RequirePackage{tikz}
% needed for the dashed lines
\RequirePackage{arydshln}
%%% The code for the Skilllevel illustration with the little boxes.
% This is idea stolen from the limecv package
\@initializelength{\cvSkillRectangleSize}
\setlength{\cvSkillRectangleSize}{1.2ex}
\newcount\my@repeat@count
\NewDocumentCommand{\cvSkill}{m}{%
\begingroup
\my@repeat@count=\z@
\@whilenum\my@repeat@count<#1\do{\tikz\filldraw[color1] (0, 0) rectangle (\cvSkillRectangleSize, \cvSkillRectangleSize);\advance%
\my@repeat@count\@ne\,}%
\my@repeat@count=\numexpr5-\z@\relax
\@whilenum\my@repeat@count>#1\do{\tikz\filldraw[color2!30] (0, 0) rectangle (\cvSkillRectangleSize, \cvSkillRectangleSize);\advance%
\my@repeat@count\m@ne\,}%
\endgroup
}
\@initializelength{\cvskillwidth}
\@initializelength{\cvskilldescriptorwidth}
\@initializelength{\cvskilllegenddescriptorwidth}
\@initializelength{\cvskillexperiencewidth}
\@initializelength{\skillmatrixcolumnwidth}
\@initializelength{\skillmatrixcommentwidth}
\@initializelength{\skillmatrixcommentpadding}
\@initializelength{\skillmatrixhintscolumnwidth}
\@initializelength{\skilllegendhintscolumnwidth}
\NewDocumentCommand{\recomputecvskillmatrixlengths}{}{%
\setlength{\skillmatrixcommentpadding}{1ex}
\setlength{\separatorcolumnwidth}{\skillmatrixcommentpadding}
\setlength{\skillmatrixhintscolumnwidth}{\widthof{``Languages''}}
\setlength{\skilllegendhintscolumnwidth}{\skillmatrixhintscolumnwidth} %0.175\textwidth
% \setlength{\skillmatrixhintscolumnwidth}{0.14\textwidth} %0.175\textwidth
\setlength{\cvskillwidth}{\widthof{\cvSkill{5}}}
\setlength{\cvskillexperiencewidth}{\widthof{``Jahre''}}
\@initializelength{\matrixbodylength}
\setlength{\matrixbodylength}{\maincolumnwidth-\skillmatrixhintscolumnwidth-\separatorcolumnwidth}
\setlength{\skillmatrixcolumnwidth}{0.45\matrixbodylength}%
\setlength{\cvskilldescriptorwidth}{\skillmatrixcolumnwidth-\cvskillwidth-\cvskillexperiencewidth}
\setlength{\skillmatrixcommentwidth}{\matrixbodylength-\skillmatrixcolumnwidth-\skillmatrixcommentpadding}%
\setlength{\cvskilllegenddescriptorwidth}{0.5\matrixbodylength-\cvskillwidth-\skillmatrixcommentpadding}
% regular lengths
\setlength{\parskip}{0\p@}}
\RequirePackage{multirow}
\NewDocumentCommand\legendFontSize{}{\scriptsize}
\NewDocumentCommand\cvSkillMatrixLegend{s +O{.25em} +O{basic knowledge} +O{intermediate knowledge with experience in projects} +O{extensive experience in projects} +O{deep expert knowledge} +O{expert/guru} +m}{%
\IfBooleanTF#1%
{% if a star is given, add dashed line
\begingroup
\arrayrulecolor{color1}
\begin{tabular}{@{}p{\skilllegendhintscolumnwidth}
@{\hspace{\separatorcolumnwidth}}p{\cvskillwidth}@{};{.6pt/1pt}p{\cvskilllegenddescriptorwidth} @{\hspace{2\skillmatrixcommentpadding}}p{\cvskillwidth}@{};{.6pt/1pt}p{\cvskilllegenddescriptorwidth}@{}}%
\raggedleft\hintstyle{#8} & \cvSkill{1}\, & \,{\legendFontSize #3} & \cvSkill{3}\, &\,{\legendFontSize #5 } \\
%
& \cvSkill{2}\, & \,\multirow{2}{\cvskilllegenddescriptorwidth}{{\legendFontSize #4}} & \cvSkill{4}\, &\,{\legendFontSize #6 } \\
%
& & & \cvSkill{5}\, &\,{\legendFontSize #7 }
\end{tabular}%
\endgroup
\par\addvspace{#2}
}
{% if no star is given, do not add dashed line
\begin{tabular}{@{}p{\skilllegendhintscolumnwidth}
@{\hspace{\separatorcolumnwidth}}p{\cvskillwidth}@{}p{\cvskilllegenddescriptorwidth} @{\hspace{2\skillmatrixcommentpadding}}p{\cvskillwidth}@{}p{\cvskilllegenddescriptorwidth}@{}}%
\raggedleft\hintstyle{#8} & \cvSkill{1}\, & \,{\legendFontSize #3} & \cvSkill{3}\, &\,{\legendFontSize #5 } \\
%
& \cvSkill{2}\, & \,\multirow{2}{\cvskilllegenddescriptorwidth}{{\legendFontSize #4}} & \cvSkill{4}\, &\,{\legendFontSize #6 } \\
%
& & & \cvSkill{5}\, &\,{\legendFontSize #7 }
\end{tabular}%
\par\addvspace{#2}
}
}
\NewDocumentCommand\cvSkillMatrixHeadFont{}{\normalfont}
\NewDocumentCommand\cvSkillMatrixHead{s O{.25em} +O{Level} +O{Skill} +O{Years} +O{Comment}}{%
\IfBooleanTF#1%
{% if a star is given, add dashed line
\begingroup
\renewcommand{\arraystretch}{1.25}
\arrayrulecolor{color1}
\begin{tabular}{@{}p{\skillmatrixhintscolumnwidth}
@{\hspace{\separatorcolumnwidth}}p{\cvskillwidth}@{}@{}p{\cvskilldescriptorwidth}@{} p{\cvskillexperiencewidth} @{\hspace{\skillmatrixcommentpadding}}p{\skillmatrixcommentwidth}@{}}%
& \centering{\cvSkillMatrixHeadFont #3} & \centering{\cvSkillMatrixHeadFont #4} & \centering{\cvSkillMatrixHeadFont #5} & {\cvSkillMatrixHeadFont #6} \\\cdashline{2-5}[.6pt/1pt]
\end{tabular}%
\endgroup
\par\addvspace{#2}
}
{%if star is not given, do not add dashed line
\begingroup
\renewcommand{\arraystretch}{1.25}
\begin{tabular}{@{}p{\skillmatrixhintscolumnwidth}
@{\hspace{\separatorcolumnwidth}}p{\cvskillwidth}@{}@{}p{\cvskilldescriptorwidth}@{} p{\cvskillexperiencewidth} @{\hspace{\skillmatrixcommentpadding}}p{\skillmatrixcommentwidth}@{}}%
& \centering{\cvSkillMatrixHeadFont #3} & \centering{\cvSkillMatrixHeadFont #4} & \centering{\cvSkillMatrixHeadFont #5} & {\cvSkillMatrixHeadFont #6}
\end{tabular}%
\endgroup
\par\addvspace{#2}
}
}
\NewDocumentCommand\cvSkillMatrixEntry{s O{.25em} +m +m +m +m +m}{%
%test for the star * in the command
\IfBooleanTF#1%
{% If a star is seen a dotted line is drawn above the entry
\begingroup
\renewcommand{\arraystretch}{1.25}
\arrayrulecolor{color1}
\begin{tabular}{@{}p{\skillmatrixhintscolumnwidth}@{\hspace{\separatorcolumnwidth}}p{\cvskillwidth}@{}@{}p{\cvskilldescriptorwidth}@{} p{\cvskillexperiencewidth} @{\hspace{\skillmatrixcommentpadding}} p{\skillmatrixcommentwidth}@{}}%
\cdashline{2-5}[.6pt/1pt]
\raggedleft\hintstyle{#3} &\centering \cvSkill{#4} &\centering {#5} & \centering {#6} &{\itshape#7}%
\end{tabular}%
\endgroup
\par\addvspace{#2}}
%
{% If no star is seen no line is drawn
\begin{tabular}{@{}p{\skillmatrixhintscolumnwidth}@{\hspace{\separatorcolumnwidth}}p{\cvskillwidth}@{}@{}p{\cvskilldescriptorwidth}@{} p{\cvskillexperiencewidth} @{\hspace{\skillmatrixcommentpadding}} p{\skillmatrixcommentwidth}@{}}%
\raggedleft\hintstyle{#3} &\centering \cvSkill{#4} &\centering {#5} & \centering {#6} &{\itshape#7}%
\end{tabular}%
\par\addvspace{#2}}
}

View file

@ -1,121 +0,0 @@
% some packages required for this code
\RequirePackage{tikz}
% needed for the dashed lines
\RequirePackage{arydshln}
%%% The code for the Skilllevel illustration with the little boxes.
% This is idea stolen from the limecv package
\@initializelength{\cvSkillRectangleSize}
\setlength{\cvSkillRectangleSize}{1.2ex}
\newcount\my@repeat@count
\NewDocumentCommand{\cvSkill}{m}{%
\begingroup
\my@repeat@count=\z@
\@whilenum\my@repeat@count<#1\do{\tikz\filldraw[color1] (0, 0) rectangle (\cvSkillRectangleSize, \cvSkillRectangleSize);\advance%
\my@repeat@count\@ne\,}%
\my@repeat@count=\numexpr5-\z@\relax
\@whilenum\my@repeat@count>#1\do{\tikz\filldraw[color2!30] (0, 0) rectangle (\cvSkillRectangleSize, \cvSkillRectangleSize);\advance%
\my@repeat@count\m@ne\,}%
\endgroup
}
\@initializelength{\cvskillwidth}
\@initializelength{\cvskilldescriptorwidth}
\@initializelength{\cvskilllegenddescriptorwidth}
\@initializelength{\cvskillexperiencewidth}
\@initializelength{\skillmatrixcolumnwidth}
\@initializelength{\skillmatrixcommentwidth}
\@initializelength{\skillmatrixcommentpadding}
\@initializelength{\skillmatrixhintscolumnwidth}
\@initializelength{\skilllegendhintscolumnwidth}
\NewDocumentCommand{\recomputecvskillmatrixlengths}{}{%
\setlength{\skillmatrixhintscolumnwidth}{\hintscolumnwidth}
\setlength{\skilllegendhintscolumnwidth}{\hintscolumnwidth} %0.175\textwidth
% \setlength{\skillmatrixhintscolumnwidth}{0.14\textwidth} %0.175\textwidth
\setlength{\cvskillwidth}{\widthof{\cvSkill{5}}}
\setlength{\cvskillexperiencewidth}{\widthof{``Jahre''}}
\setlength{\skillmatrixcolumnwidth}{0.45\maincolumnwidth}%
\setlength{\cvskilldescriptorwidth}{\skillmatrixcolumnwidth-\cvskillwidth-\cvskillexperiencewidth}
\setlength{\skillmatrixcommentpadding}{1ex}
\setlength{\skillmatrixcommentwidth}{\maincolumnwidth-\skillmatrixcolumnwidth-\skillmatrixcommentpadding}%
\setlength{\cvskilllegenddescriptorwidth}{0.5\maincolumnwidth-\cvskillwidth-\skillmatrixcommentpadding}
% regular lengths
\setlength{\parskip}{0\p@}}
\RequirePackage{multirow}
\NewDocumentCommand\legendFontSize{}{\scriptsize}
\NewDocumentCommand\cvSkillMatrixLegend{s +O{.25em} +O{basic knowledge} +O{intermediate knowledge with experience in projects} +O{extensive experience in projects} +O{deep expert knowledge} +O{expert/guru} +m}{%
\IfBooleanTF#1%
{% if a star is given, add dashed line
\begingroup
\arrayrulecolor{color1}
\begin{tabular}{@{}p{\skilllegendhintscolumnwidth}
@{\hspace{\separatorcolumnwidth}}p{\cvskillwidth}@{};{.6pt/1pt}p{\cvskilllegenddescriptorwidth} @{\hspace{2\skillmatrixcommentpadding}}p{\cvskillwidth}@{};{.6pt/1pt}p{\cvskilllegenddescriptorwidth}@{}}%
\raggedleft\hintstyle{#8} & \cvSkill{1}\, & \,{\legendFontSize #3} & \cvSkill{3}\, &\,{\legendFontSize #5 } \\
%
& \cvSkill{2}\, & \,\multirow{2}{\cvskilllegenddescriptorwidth}{{\legendFontSize #4}} & \cvSkill{4}\, &\,{\legendFontSize #6 } \\
%
& & & \cvSkill{5}\, &\,{\legendFontSize #7 }
\end{tabular}%
\endgroup
\par\addvspace{#2}
}
{% if no star is given, do not add dashed line
\begin{tabular}{@{}p{\skilllegendhintscolumnwidth}
@{\hspace{\separatorcolumnwidth}}p{\cvskillwidth}@{}p{\cvskilllegenddescriptorwidth} @{\hspace{2\skillmatrixcommentpadding}}p{\cvskillwidth}@{}p{\cvskilllegenddescriptorwidth}@{}}%
\raggedleft\hintstyle{#8} & \cvSkill{1}\, & \,{\legendFontSize #3} & \cvSkill{3}\, &\,{\legendFontSize #5 } \\
%
& \cvSkill{2}\, & \,\multirow{2}{\cvskilllegenddescriptorwidth}{{\legendFontSize #4}} & \cvSkill{4}\, &\,{\legendFontSize #6 } \\
%
& & & \cvSkill{5}\, &\,{\legendFontSize #7 }
\end{tabular}%
\par\addvspace{#2}
}
}
\NewDocumentCommand\cvSkillMatrixHeadFont{}{\normalfont}
\NewDocumentCommand\cvSkillMatrixHead{s O{.25em} +O{Level} +O{Skill} +O{Years} +O{Comment}}{%
\IfBooleanTF#1%
{% if a star is given, add dashed line
\begingroup
\renewcommand{\arraystretch}{1.25}
\arrayrulecolor{color1}
\begin{tabular}{@{}p{\skillmatrixhintscolumnwidth}
@{\hspace{\separatorcolumnwidth}}p{\cvskillwidth}@{}@{}p{\cvskilldescriptorwidth}@{} p{\cvskillexperiencewidth} @{\hspace{\skillmatrixcommentpadding}}p{\skillmatrixcommentwidth}@{}}%
& \centering{\cvSkillMatrixHeadFont #3} & \centering{\cvSkillMatrixHeadFont #4} & \centering{\cvSkillMatrixHeadFont #5} & {\cvSkillMatrixHeadFont #6} \\\cdashline{2-5}[.6pt/1pt]
\end{tabular}%
\endgroup
\par\addvspace{#2}
}
{%if star is not given, do not add dashed line
\begingroup
\renewcommand{\arraystretch}{1.25}
\begin{tabular}{@{}p{\skillmatrixhintscolumnwidth}
@{\hspace{\separatorcolumnwidth}}p{\cvskillwidth}@{}@{}p{\cvskilldescriptorwidth}@{} p{\cvskillexperiencewidth} @{\hspace{\skillmatrixcommentpadding}}p{\skillmatrixcommentwidth}@{}}%
& \centering{\cvSkillMatrixHeadFont #3} & \centering{\cvSkillMatrixHeadFont #4} & \centering{\cvSkillMatrixHeadFont #5} & {\cvSkillMatrixHeadFont #6}
\end{tabular}%
\endgroup
\par\addvspace{#2}
}
}
\NewDocumentCommand\cvSkillMatrixEntry{s O{.25em} +m +m +m +m +m}{%
%test for the star * in the command
\IfBooleanTF#1%
{% If a star is seen a dotted line is drawn above the entry
\begingroup
\renewcommand{\arraystretch}{1.25}
\arrayrulecolor{color1}
\begin{tabular}{@{}p{\skillmatrixhintscolumnwidth}@{\hspace{\separatorcolumnwidth}}p{\cvskillwidth}@{}@{}p{\cvskilldescriptorwidth}@{} p{\cvskillexperiencewidth} @{\hspace{\skillmatrixcommentpadding}} p{\skillmatrixcommentwidth}@{}}%
\cdashline{2-5}[.6pt/1pt]
\raggedleft\hintstyle{#3} &\centering \cvSkill{#4} &\centering {#5} & \centering {#6} &{\itshape#7}%
\end{tabular}%
\endgroup
\par\addvspace{#2}}
%
{% If no star is seen no line is drawn
\begin{tabular}{@{}p{\skillmatrixhintscolumnwidth}@{\hspace{\separatorcolumnwidth}}p{\cvskillwidth}@{}@{}p{\cvskilldescriptorwidth}@{} p{\cvskillexperiencewidth} @{\hspace{\skillmatrixcommentpadding}} p{\skillmatrixcommentwidth}@{}}%
\raggedleft\hintstyle{#3} &\centering \cvSkill{#4} &\centering {#5} & \centering {#6} &{\itshape#7}%
\end{tabular}%
\par\addvspace{#2}}
}

View file

@ -16,7 +16,9 @@
%-------------------------------------------------------------------------------
% required packages
%-------------------------------------------------------------------------------
% provides the commands for the skillmatrix as well as the command
% \recomputecvskillmatrixlengths
\RequirePackage[moderncvbodyiv]{moderncvskillmatrix}
%-------------------------------------------------------------------------------
% overall body definition
@ -48,9 +50,6 @@
% used by \cvlistdoubleitem
\@initializelength{\listdoubleitemcolumnwidth}
%% include moderncv Skillmatrix code
\input{moderncvbodyivskillmatrix.sty}
% commands
\renewcommand*{\recomputecvbodylengths}{%
% body lengths

View file

@ -1,124 +0,0 @@
% some packages required for this code
\RequirePackage{tikz}
% needed for the dashed lines
\RequirePackage{arydshln}
%%% The code for the Skilllevel illustration with the little boxes.
% This is idea stolen from the limecv package
\@initializelength{\cvSkillRectangleSize}
\setlength{\cvSkillRectangleSize}{1.2ex}
\newcount\my@repeat@count
\NewDocumentCommand{\cvSkill}{m}{%
\begingroup
\my@repeat@count=\z@
\@whilenum\my@repeat@count<#1\do{\tikz\filldraw[color1] (0, 0) rectangle (\cvSkillRectangleSize, \cvSkillRectangleSize);\advance%
\my@repeat@count\@ne\,}%
\my@repeat@count=\numexpr5-\z@\relax
\@whilenum\my@repeat@count>#1\do{\tikz\filldraw[color2!30] (0, 0) rectangle (\cvSkillRectangleSize, \cvSkillRectangleSize);\advance%
\my@repeat@count\m@ne\,}%
\endgroup
}
\@initializelength{\cvskillwidth}
\@initializelength{\cvskilldescriptorwidth}
\@initializelength{\cvskilllegenddescriptorwidth}
\@initializelength{\cvskillexperiencewidth}
\@initializelength{\skillmatrixcolumnwidth}
\@initializelength{\skillmatrixcommentwidth}
\@initializelength{\skillmatrixcommentpadding}
\@initializelength{\skillmatrixhintscolumnwidth}
\@initializelength{\skilllegendhintscolumnwidth}
\NewDocumentCommand{\recomputecvskillmatrixlengths}{}{%
\setlength{\skillmatrixcommentpadding}{1ex}
\setlength{\separatorcolumnwidth}{\skillmatrixcommentpadding}
\setlength{\skillmatrixhintscolumnwidth}{\widthof{``Languages''}}
\setlength{\skilllegendhintscolumnwidth}{\skillmatrixhintscolumnwidth}
% \setlength{\skillmatrixhintscolumnwidth}{0.14\textwidth} %0.175\textwidth
\setlength{\cvskillwidth}{\widthof{\cvSkill{5}}}
\setlength{\cvskillexperiencewidth}{\widthof{``Jahre''}}
\@initializelength{\matrixbodylength}
\setlength{\matrixbodylength}{\maincolumnwidth-\skillmatrixhintscolumnwidth-\separatorcolumnwidth}
\setlength{\skillmatrixcolumnwidth}{0.45\matrixbodylength}%
\setlength{\cvskilldescriptorwidth}{\skillmatrixcolumnwidth-\cvskillwidth-\cvskillexperiencewidth}
\setlength{\skillmatrixcommentwidth}{\matrixbodylength-\skillmatrixcolumnwidth-\skillmatrixcommentpadding}%
\setlength{\cvskilllegenddescriptorwidth}{0.5\matrixbodylength-\cvskillwidth-\skillmatrixcommentpadding}
% regular lengths
\setlength{\parskip}{0\p@}}
\RequirePackage{multirow}
\NewDocumentCommand\legendFontSize{}{\scriptsize}
\NewDocumentCommand\cvSkillMatrixLegend{s +O{.25em} +O{basic knowledge} +O{intermediate knowledge with experience in projects} +O{extensive experience in projects} +O{deep expert knowledge} +O{expert/guru} +m}{%
\IfBooleanTF#1%
{% if a star is given, add dashed line
\begingroup
\arrayrulecolor{color1}
\begin{tabular}{@{}p{\skilllegendhintscolumnwidth}
@{\hspace{\separatorcolumnwidth}}p{\cvskillwidth}@{};{.6pt/1pt}p{\cvskilllegenddescriptorwidth} @{\hspace{2\skillmatrixcommentpadding}}p{\cvskillwidth}@{};{.6pt/1pt}p{\cvskilllegenddescriptorwidth}@{}}%
\raggedleft\hintstyle{#8} & \cvSkill{1}\, & \,{\legendFontSize #3} & \cvSkill{3}\, &\,{\legendFontSize #5 } \\
%
& \cvSkill{2}\, & \,\multirow{2}{\cvskilllegenddescriptorwidth}{{\legendFontSize #4}} & \cvSkill{4}\, &\,{\legendFontSize #6 } \\
%
& & & \cvSkill{5}\, &\,{\legendFontSize #7 }
\end{tabular}%
\endgroup
\par\addvspace{#2}
}
{% if no star is given, do not add dashed line
\begin{tabular}{@{}p{\skilllegendhintscolumnwidth}
@{\hspace{\separatorcolumnwidth}}p{\cvskillwidth}@{}p{\cvskilllegenddescriptorwidth} @{\hspace{2\skillmatrixcommentpadding}}p{\cvskillwidth}@{}p{\cvskilllegenddescriptorwidth}@{}}%
\raggedleft\hintstyle{#8} & \cvSkill{1}\, & \,{\legendFontSize #3} & \cvSkill{3}\, &\,{\legendFontSize #5 } \\
%
& \cvSkill{2}\, & \,\multirow{2}{\cvskilllegenddescriptorwidth}{{\legendFontSize #4}} & \cvSkill{4}\, &\,{\legendFontSize #6 } \\
%
& & & \cvSkill{5}\, &\,{\legendFontSize #7 }
\end{tabular}%
\par\addvspace{#2}
}
}
\NewDocumentCommand\cvSkillMatrixHeadFont{}{\normalfont}
\NewDocumentCommand\cvSkillMatrixHead{s O{.25em} +O{Level} +O{Skill} +O{Years} +O{Comment}}{%
\IfBooleanTF#1%
{% if a star is given, add dashed line
\begingroup
\renewcommand{\arraystretch}{1.25}
\arrayrulecolor{color1}
\begin{tabular}{@{}p{\skillmatrixhintscolumnwidth}
@{\hspace{\separatorcolumnwidth}}p{\cvskillwidth}@{}@{}p{\cvskilldescriptorwidth}@{} p{\cvskillexperiencewidth} @{\hspace{\skillmatrixcommentpadding}}p{\skillmatrixcommentwidth}@{}}%
& \centering{\cvSkillMatrixHeadFont #3} & \centering{\cvSkillMatrixHeadFont #4} & \centering{\cvSkillMatrixHeadFont #5} & {\cvSkillMatrixHeadFont #6} \\\cdashline{2-5}[.6pt/1pt]
\end{tabular}%
\endgroup
\par\addvspace{#2}
}
{%if star is not given, do not add dashed line
\begingroup
\renewcommand{\arraystretch}{1.25}
\begin{tabular}{@{}p{\skillmatrixhintscolumnwidth}
@{\hspace{\separatorcolumnwidth}}p{\cvskillwidth}@{}@{}p{\cvskilldescriptorwidth}@{} p{\cvskillexperiencewidth} @{\hspace{\skillmatrixcommentpadding}}p{\skillmatrixcommentwidth}@{}}%
& \centering{\cvSkillMatrixHeadFont #3} & \centering{\cvSkillMatrixHeadFont #4} & \centering{\cvSkillMatrixHeadFont #5} & {\cvSkillMatrixHeadFont #6}
\end{tabular}%
\endgroup
\par\addvspace{#2}
}
}
\NewDocumentCommand\cvSkillMatrixEntry{s O{.25em} +m +m +m +m +m}{%
%test for the star * in the command
\IfBooleanTF#1%
{% If a star is seen a dotted line is drawn above the entry
\begingroup
\renewcommand{\arraystretch}{1.25}
\arrayrulecolor{color1}
\begin{tabular}{@{}p{\skillmatrixhintscolumnwidth}@{\hspace{\separatorcolumnwidth}}p{\cvskillwidth}@{}@{}p{\cvskilldescriptorwidth}@{} p{\cvskillexperiencewidth} @{\hspace{\skillmatrixcommentpadding}} p{\skillmatrixcommentwidth}@{}}%
\cdashline{2-5}[.6pt/1pt]
\raggedleft\hintstyle{#3} &\centering \cvSkill{#4} &\centering {#5} & \centering {#6} &{\itshape#7}%
\end{tabular}%
\endgroup
\par\addvspace{#2}}
%
{% If no star is seen no line is drawn
\begin{tabular}{@{}p{\skillmatrixhintscolumnwidth}@{\hspace{\separatorcolumnwidth}}p{\cvskillwidth}@{}@{}p{\cvskilldescriptorwidth}@{} p{\cvskillexperiencewidth} @{\hspace{\skillmatrixcommentpadding}} p{\skillmatrixcommentwidth}@{}}%
\raggedleft\hintstyle{#3} &\centering \cvSkill{#4} &\centering {#5} & \centering {#6} &{\itshape#7}%
\end{tabular}%
\par\addvspace{#2}}
}

View file

@ -16,7 +16,9 @@
%-------------------------------------------------------------------------------
% required packages
%-------------------------------------------------------------------------------
% provides the commands for the skillmatrix as well as the command
% \recomputecvskillmatrixlengths
\RequirePackage[moderncvbodyv]{moderncvskillmatrix}
%-------------------------------------------------------------------------------
% overall style definition
@ -52,9 +54,6 @@
\@initializelength{\listdoubleitemcolumnwidth}
%\@initializelength{\listdoubleitemmaincolumnwidth}
%% include moderncv Skillmatrix code
\input{moderncvbodyvskillmatrix.sty}
% commands
\@initializecommand{\recomputecvbodylengths}{%
% body lengths
@ -88,7 +87,15 @@
\nobreak\@afterheading\@aftersectiontrue\ignorespaces}
\renewcommand*{\cvitem}[3][.5ex]{%
\@cvitem[#1]{}{\ifthenelse{\equal{#2}{}}{}{\hintstyle{#2}: }{#3}}}
\@cvitem[#1]{}{\ifthenelse{\equal{#2}{}}{}{\hintstyle{#2}: }{#3}}%
}
% \RenewDocumentCommand{\cvitem}{+O{.5ex} +m +m}{%
% \IfNoValueTF{#2}{%
% \@cvitem[#1]{}{#3}%
% }{%
% \@cvitem[#1]{}{\hintstyle{#2}: {#3}}%
% }%
% }
% underlying command to implement \cvitem, \subsection and \section
\newcommand*{\@cvitem}[3][.5ex]{%

View file

@ -1,144 +0,0 @@
% some packages required for this code
\RequirePackage{tikz}
% needed for the dashed lines
% \RequirePackage{arydshln} % incompatible with fancy style
%%% The code for the Skilllevel illustration with the little boxes.
% This is idea stolen from the limecv package
\@initializelength{\cvSkillRectangleSize}
\setlength{\cvSkillRectangleSize}{1.2ex}
\newcount\my@repeat@count
\NewDocumentCommand{\cvSkill}{m}{%
\begingroup
\my@repeat@count=\z@
\@whilenum\my@repeat@count<#1\do{\tikz\filldraw[color1] (0, 0) rectangle (\cvSkillRectangleSize, \cvSkillRectangleSize);\advance%
\my@repeat@count\@ne\,}%
\my@repeat@count=\numexpr5-\z@\relax
\@whilenum\my@repeat@count>#1\do{\tikz\filldraw[color2!30] (0, 0) rectangle (\cvSkillRectangleSize, \cvSkillRectangleSize);\advance%
\my@repeat@count\m@ne\,}%
\endgroup
}
\@initializelength{\cvskillwidth}
\@initializelength{\cvskilldescriptorwidth}
\@initializelength{\cvskilllegenddescriptorwidth}
\@initializelength{\cvskillexperiencewidth}
\@initializelength{\skillmatrixcolumnwidth}
\@initializelength{\skillmatrixcommentwidth}
\@initializelength{\skillmatrixcommentpadding}
\@initializelength{\skillmatrixhintscolumnwidth}
\@initializelength{\skilllegendhintscolumnwidth}
\NewDocumentCommand{\recomputecvskillmatrixlengths}{}{%
\setlength{\skillmatrixcommentpadding}{1ex}
% \setlength{\separatorcolumnwidth}{\skillmatrixcommentpadding}
\setlength{\skillmatrixhintscolumnwidth}{\widthof{``Languages''}}
\setlength{\skilllegendhintscolumnwidth}{\skillmatrixhintscolumnwidth} %0.175\textwidth
% \setlength{\skillmatrixhintscolumnwidth}{0.14\textwidth} %0.175\textwidth
\setlength{\cvskillwidth}{\widthof{\cvSkill{5}}}
\setlength{\cvskillexperiencewidth}{\widthof{``Jahre''}}
\@initializelength{\matrixbodylength}
\setlength{\matrixbodylength}{\maincolumnwidth-\skillmatrixhintscolumnwidth-\skillmatrixcommentpadding}%\skillmatrixhintscolumnwidth
\setlength{\skillmatrixcolumnwidth}{0.45\matrixbodylength}%
\setlength{\cvskilldescriptorwidth}{\skillmatrixcolumnwidth-\cvskillwidth-\cvskillexperiencewidth}
\setlength{\skillmatrixcommentwidth}{\matrixbodylength-\skillmatrixcolumnwidth-\skillmatrixcommentpadding}%
\setlength{\cvskilllegenddescriptorwidth}{0.5\maincolumnwidth-\cvskillwidth-\skillmatrixcommentpadding}
}
\RequirePackage{multirow}
% \RequirePackage{ifmtarg}
\NewDocumentCommand\legendFontSize{}{\scriptsize}
\DeclareDocumentCommand\starIndependentTabular{}{}%
\DeclareDocumentCommand\insertLegendString{}{}%
\DeclareDocumentCommand\cvSkillMatrixLegend{s +O{.25em} +O{basic knowledge} +O{intermediate knowledge with experience in projects} +O{extensive experience in projects} +O{deep expert knowledge} +O{expert/guru} +m}{%
% check whether Argument #8 is given and if so provide it as cvitem
\def\legendString{#8}%
\ifdefempty{\legendString}{}{\cvitem{#8}{}}%
% \IfNoValueTF{#8}{\cvitem{}{}}{\cvitem{#8}{}}%
\arrayrulecolor{color1}%
\setlength\arrayrulewidth{\separatorrulewidth}%
\if@aftersection\else%
\vspace*{-\separatorrulewidth}\fi% HACK; I don't understand where the space is coming from, nor what it's exact value is :(
\noindent%
\RenewDocumentCommand{\starIndependentTabular}{}{%
\begin{tabular}[t]{@{}p{\hintscolumnwidth}%\skilllegendhintscolumnwidth
@{\hspace{\separatorcolumnwidth}}|@{\hspace{\separatorcolumnwidth}}
p{\cvskillwidth}@{}
p{\cvskilllegenddescriptorwidth} @{\hspace{2\skillmatrixcommentpadding}}
p{\cvskillwidth}@{}p{\cvskilllegenddescriptorwidth}@{}}%
\@moderncvstrut{4pt}{16pt} & \cvSkill{1}\, & \,{\legendFontSize #3} & \cvSkill{3}\, &\,{\legendFontSize #5 } \\
%
& \cvSkill{2}\, & \,\multirow{2}{\cvskilllegenddescriptorwidth}{{\legendFontSize #4}} & \cvSkill{4}\, &\,{\legendFontSize #6 } \\
%
& & & \cvSkill{5}\, &\,{\legendFontSize #7 } \\[#2]% the spacing needs to be inside the cell for the vertical rule to extend correctly
\end{tabular}%
\par\@aftersectionfalse\ignorespaces%
}%
% because of this weird style and the position of the parameter [#2], the dashed lines of the other version look bad. So no lines.
\IfBooleanTF#1%
{%
\starIndependentTabular%
}
{%
\starIndependentTabular%
}
}%
\NewDocumentCommand\cvSkillMatrixHeadFont{}{\normalfont}%
\NewDocumentCommand\cvSkillMatrixHead{+O{.25em} +O{Level} +O{Skill} +O{Years} +O{Comment}}{%
\arrayrulecolor{color1}%
\setlength\arrayrulewidth{\separatorrulewidth}%
\if@aftersection\else%
\vspace*{-\separatorrulewidth}\fi% HACK; I don't understand where the space is coming from, nor what it's exact value is :(
\noindent%
\begingroup%
% \renewcommand{\arraystretch}{1.25}%
\begin{tabular}[t]{@{}p{\hintscolumnwidth}%
@{\hspace{\separatorcolumnwidth}}|@{\hspace{\separatorcolumnwidth}}%
p{\skillmatrixhintscolumnwidth}%
@{\hspace{\skillmatrixcommentpadding}}p{\cvskillwidth}@{}%
p{\cvskilldescriptorwidth}@{}%
p{\cvskillexperiencewidth}%
@{\hspace{\skillmatrixcommentpadding}}p{\skillmatrixcommentwidth}@{}}%
& & \centering{\cvSkillMatrixHeadFont#2} & \centering{\cvSkillMatrixHeadFont#3} & \centering{\cvSkillMatrixHeadFont#4} & {\cvSkillMatrixHeadFont#5} \\[#1]% the spacing needs to be inside the cell for the vertical rule to extend correctly
\end{tabular}%
\endgroup%
\par\@aftersectionfalse\ignorespaces%
}%
\NewDocumentCommand\cvSkillMatrixEntry{s O{.25em} +m +m +m +m +m}{%
\arrayrulecolor{color1}%
\setlength\arrayrulewidth{\separatorrulewidth}%
\if@aftersection\else%
\vspace*{-\separatorrulewidth}\fi% HACK; I don't understand where the space is coming from, nor what it's exact value is :(
\noindent%
%test for the star * in the command
\IfBooleanTF#1{% If a star is seen a dotted line is drawn above the entry
\begingroup%
\renewcommand{\arraystretch}{1.25}%
\begin{tabular}[t]{@{}p{\hintscolumnwidth}%
@{\hspace{\separatorcolumnwidth}}|@{\hspace{\separatorcolumnwidth}}p{\skillmatrixhintscolumnwidth}
@{\hspace{\skillmatrixcommentpadding}}
p{\cvskillwidth}@{}
p{\cvskilldescriptorwidth}@{}
p{\cvskillexperiencewidth} @{\hspace{\skillmatrixcommentpadding}}p{\skillmatrixcommentwidth}@{}}%
% \cline{3-6}%
& \raggedleft\hintstyle{#3} &\centering \cvSkill{#4} &\centering {#5} & \centering {#6} &{\itshape#7}\\[#2]%
\end{tabular}%
\endgroup%
% \par\@aftersectionfalse\ignorespaces%
}{% If no star is seen no line is drawn
\begingroup%
\renewcommand{\arraystretch}{1.25}%
\begin{tabular}[t]{@{}p{\hintscolumnwidth}%
@{\hspace{\separatorcolumnwidth}}|@{\hspace{\separatorcolumnwidth}}p{\skillmatrixhintscolumnwidth}
@{\hspace{\skillmatrixcommentpadding}}
p{\cvskillwidth}@{}
p{\cvskilldescriptorwidth}@{}
p{\cvskillexperiencewidth} @{\hspace{\skillmatrixcommentpadding}}p{\skillmatrixcommentwidth}@{}}%
& \raggedleft\hintstyle{#3} &\centering \cvSkill{#4} &\centering {#5} & \centering {#6} &{\itshape#7}\\[#2]%
\end{tabular}%
\endgroup%
% \par\@aftersectionfalse\ignorespaces%
}%
\par\@aftersectionfalse\ignorespaces%
}

View file

@ -43,9 +43,9 @@
\RequirePackage{arydshln} % incompatible with fancy style
\fi
%-------------------------------------------------------------------------------
% overall body definition
%-------------------------------------------------------------------------------
% %-------------------------------------------------------------------------------
% % \cvSkill command
% %-------------------------------------------------------------------------------
% The code for the Skilllevel illustration with the little boxes.
% This is idea stolen from the limecv package
\@initializelength{\cvSkillRectangleSize}
@ -62,6 +62,11 @@
\endgroup
}
% %-------------------------------------------------------------------------------
% % \recomputecvskillmatrixlengths
% %-------------------------------------------------------------------------------
% initialise lengths needed for the skillmatrix
\@initializelength{\cvskillwidth}
\@initializelength{\cvskilldescriptorwidth}
\@initializelength{\cvskilllegenddescriptorwidth}
@ -71,218 +76,293 @@
\@initializelength{\skillmatrixcommentpadding}
\@initializelength{\skillmatrixhintscolumnwidth}
\@initializelength{\skilllegendhintscolumnwidth}
\NewDocumentCommand{\recomputecvskillmatrixlengths}{}{%
\setlength{\skillmatrixcommentpadding}{1ex}
\setlength{\separatorcolumnwidth}{\skillmatrixcommentpadding}
\setlength{\skillmatrixhintscolumnwidth}{\widthof{``Languages''}}
\setlength{\skilllegendhintscolumnwidth}{\skillmatrixhintscolumnwidth} %0.175\textwidth
% \setlength{\skillmatrixhintscolumnwidth}{0.14\textwidth} %0.175\textwidth
\setlength{\cvskillwidth}{\widthof{\cvSkill{5}}}
\setlength{\cvskillexperiencewidth}{\widthof{``Jahre''}}
\@initializelength{\matrixbodylength}
\setlength{\matrixbodylength}{\maincolumnwidth-\skillmatrixhintscolumnwidth-\separatorcolumnwidth}
\setlength{\skillmatrixcolumnwidth}{0.45\matrixbodylength}%
\setlength{\cvskilldescriptorwidth}{\skillmatrixcolumnwidth-\cvskillwidth-\cvskillexperiencewidth}
\setlength{\skillmatrixcommentwidth}{\matrixbodylength-\skillmatrixcolumnwidth-\skillmatrixcommentpadding}%
\setlength{\cvskilllegenddescriptorwidth}{0.5\matrixbodylength-\cvskillwidth-\skillmatrixcommentpadding}
% regular lengths
\setlength{\parskip}{0\p@}}
% \separatorrulewidth is defined in moderncvbodyv.sty and we need to
% define it to not throw an error in the other cases
\if@moderncvbodyv%
% \RequirePackage{arydshln} % incompatible with fancy style
\else%
\@initializelength{\separatorrulewidth}
\setlength{\separatorrulewidth}{1ex}
\fi
%% DEFINITION \recomputecvskillmatrixlengths
% declare the command \recomputecvskillmatrixlengths empty
\DeclareDocumentCommand{\recomputecvskillmatrixlengths}{}{}%
% the command gets redifined depending on which option is given
\if@moderncvbodyi%
\RenewDocumentCommand{\recomputecvskillmatrixlengths}{}{%
\setlength{\skillmatrixcommentpadding}{1ex}
\setlength{\skillmatrixhintscolumnwidth}{\hintscolumnwidth}
\setlength{\skilllegendhintscolumnwidth}{\hintscolumnwidth}
\setlength{\cvskillwidth}{\widthof{\cvSkill{5}}}
\setlength{\cvskillexperiencewidth}{\widthof{``Jahre''}}
\setlength{\skillmatrixcolumnwidth}{0.45\maincolumnwidth}%
\setlength{\cvskilldescriptorwidth}{\skillmatrixcolumnwidth-\cvskillwidth-\cvskillexperiencewidth}
\setlength{\skillmatrixcommentwidth}{\maincolumnwidth-\skillmatrixcolumnwidth-\skillmatrixcommentpadding}%
\setlength{\cvskilllegenddescriptorwidth}{0.5\maincolumnwidth-\cvskillwidth-\skillmatrixcommentpadding}
}
\fi
% % 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}
%
% %% include moderncv Skillmatrix code
% \input{moderncvbodyiiiskillmatrix.sty}
%
% % 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}%
% \recomputecvskillmatrixlengths
% % 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}}
%
% \@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}
%
\if@moderncvbodyiii%
\RenewDocumentCommand{\recomputecvskillmatrixlengths}{}{%
\setlength{\skillmatrixcommentpadding}{1ex}
\setlength{\separatorcolumnwidth}{\skillmatrixcommentpadding}
\setlength{\skillmatrixhintscolumnwidth}{\widthof{``Language''}}
\setlength{\skilllegendhintscolumnwidth}{\skillmatrixhintscolumnwidth}%
\setlength{\cvskillwidth}{\widthof{\cvSkill{5}}}
\setlength{\cvskillexperiencewidth}{\widthof{``Jahre''}}
\@initializelength{\matrixbodylength}
\setlength{\matrixbodylength}{\maincolumnwidth-\skillmatrixhintscolumnwidth-\separatorcolumnwidth}
\setlength{\skillmatrixcolumnwidth}{0.45\matrixbodylength}%
\setlength{\cvskilldescriptorwidth}{\skillmatrixcolumnwidth-\cvskillwidth-\cvskillexperiencewidth}
\setlength{\skillmatrixcommentwidth}{\matrixbodylength-\skillmatrixcolumnwidth-\skillmatrixcommentpadding}%
\setlength{\cvskilllegenddescriptorwidth}{0.5\matrixbodylength-\cvskillwidth-\skillmatrixcommentpadding}
}
\fi
\if@moderncvbodyiv%
\RenewDocumentCommand{\recomputecvskillmatrixlengths}{}{%
\setlength{\skillmatrixcommentpadding}{1ex}
\setlength{\separatorcolumnwidth}{\skillmatrixcommentpadding}
\setlength{\skillmatrixhintscolumnwidth}{\widthof{``Languagi''}}
\setlength{\skilllegendhintscolumnwidth}{0ex}%\skillmatrixhintscolumnwidth
\setlength{\cvskillwidth}{\widthof{\cvSkill{5}}}
\setlength{\cvskillexperiencewidth}{\widthof{``Jahre''}}
\@initializelength{\matrixbodylength}
\setlength{\matrixbodylength}{\maincolumnwidth-\skillmatrixhintscolumnwidth-\separatorcolumnwidth}
\setlength{\skillmatrixcolumnwidth}{0.45\matrixbodylength}%
\setlength{\cvskilldescriptorwidth}{\skillmatrixcolumnwidth-\cvskillwidth-\cvskillexperiencewidth}
\setlength{\skillmatrixcommentwidth}{\matrixbodylength-\skillmatrixcolumnwidth-\skillmatrixcommentpadding}%
\setlength{\cvskilllegenddescriptorwidth}{0.5\maincolumnwidth-\cvskillwidth-\skillmatrixcommentpadding}
}
\fi
\if@moderncvbodyv%
\RenewDocumentCommand{\recomputecvskillmatrixlengths}{}{%
\setlength{\skillmatrixcommentpadding}{1ex}
\setlength{\skillmatrixhintscolumnwidth}{\widthof{``Languages''}}
\setlength{\skilllegendhintscolumnwidth}{\skillmatrixhintscolumnwidth}
\setlength{\cvskillwidth}{\widthof{\cvSkill{5}}}
\setlength{\cvskillexperiencewidth}{\widthof{``Jahre''}}
\@initializelength{\matrixbodylength}
\setlength{\matrixbodylength}{\maincolumnwidth-\skillmatrixhintscolumnwidth-\skillmatrixcommentpadding}%\skillmatrixhintscolumnwidth
\setlength{\skillmatrixcolumnwidth}{0.45\matrixbodylength}%
\setlength{\cvskilldescriptorwidth}{\skillmatrixcolumnwidth-\cvskillwidth-\cvskillexperiencewidth}
\setlength{\skillmatrixcommentwidth}{\matrixbodylength-\skillmatrixcolumnwidth-\skillmatrixcommentpadding}%
\setlength{\cvskilllegenddescriptorwidth}{0.5\maincolumnwidth-\cvskillwidth-\skillmatrixcommentpadding}
}
\fi
% %-------------------------------------------------------------------------------
% % \cvSkillMatrixLegend
% %-------------------------------------------------------------------------------
\NewDocumentCommand\legendFontSize{}{\scriptsize}
\DeclareDocumentCommand\cvSkillMatrixLegend{s +O{} +O{} +O{} +O{} +O{} +O{} +m}{}%
% The following definition is valid for moderncvbodyi, moderncvbodyii, moderncvbodyiii
\RenewDocumentCommand\cvSkillMatrixLegend{s +O{.25em} +O{basic knowledge} +O{intermediate knowledge with experience in projects} +O{extensive experience in projects} +O{deep expert knowledge} +O{expert/guru} +m}{%
\IfBooleanTF#1{% if a star is given, add dashed line
\begingroup
\arrayrulecolor{color1}
\begin{tabular}{@{}p{\skilllegendhintscolumnwidth}
@{\hspace{\separatorcolumnwidth}}p{\cvskillwidth}@{};{.6pt/1pt}p{\cvskilllegenddescriptorwidth} @{\hspace{2\skillmatrixcommentpadding}}p{\cvskillwidth}@{};{.6pt/1pt}p{\cvskilllegenddescriptorwidth}@{}}%
\raggedleft\hintstyle{#8} & \cvSkill{1}\, & \,{\legendFontSize #3} & \cvSkill{3}\, &\,{\legendFontSize #5 } \\
%
& \cvSkill{2}\, & \,\multirow{2}{\cvskilllegenddescriptorwidth}{{\legendFontSize #4}} & \cvSkill{4}\, &\,{\legendFontSize #6 } \\
%
& & & \cvSkill{5}\, &\,{\legendFontSize #7 }
\end{tabular}%
\endgroup
\par\addvspace{#2}}{
% if no star is given, do not add dashed line
\begin{tabular}{@{}p{\skilllegendhintscolumnwidth}
@{\hspace{\separatorcolumnwidth}}p{\cvskillwidth}@{}p{\cvskilllegenddescriptorwidth} @{\hspace{2\skillmatrixcommentpadding}}p{\cvskillwidth}@{}p{\cvskilllegenddescriptorwidth}@{}}%
\raggedleft\hintstyle{#8} & \cvSkill{1}\, & \,{\legendFontSize #3} & \cvSkill{3}\, &\,{\legendFontSize #5 } \\
%
& \cvSkill{2}\, & \,\multirow{2}{\cvskilllegenddescriptorwidth}{{\legendFontSize #4}} & \cvSkill{4}\, &\,{\legendFontSize #6 } \\
%
& & & \cvSkill{5}\, &\,{\legendFontSize #7 }
\end{tabular}%
\par\addvspace{#2}
}
}
\if@moderncvbodyiv%
\RenewDocumentCommand\cvSkillMatrixLegend{s +O{.25em} +O{basic knowledge} +O{intermediate knowledge with experience in projects} +O{extensive experience in projects} +O{deep expert knowledge} +O{expert/guru} +m}{%
\def\legendString{#8}%
\ifdefempty{\legendString}{%
}{%
\cvitem[0.25em]{\hintstyle{#8}}{}%
}%
\IfBooleanTF#1{% if a star is given, add dashed line
\begingroup
\arrayrulecolor{color1}
\begin{tabular}{@{}p{\skilllegendhintscolumnwidth}
@{\hspace{\separatorcolumnwidth}}p{\cvskillwidth}@{};{.6pt/1pt}p{0.9\cvskilllegenddescriptorwidth} @{\hspace{2\skillmatrixcommentpadding}}p{\cvskillwidth}@{};{.6pt/1pt}p{1.1\cvskilllegenddescriptorwidth}@{}}%
\raggedleft\hintstyle{} & \cvSkill{1}\, & \,{\legendFontSize #3} & \cvSkill{3}\, &\,{\legendFontSize #5 } \\
%
& \cvSkill{2}\, & \,\multirow{2}{\cvskilllegenddescriptorwidth}{{\legendFontSize #4}} & \cvSkill{4}\, &\,{\legendFontSize #6 } \\
%
& & & \cvSkill{5}\, &\,{\legendFontSize #7 }
\end{tabular}%
\endgroup
\par\addvspace{#2}}{
% if no star is given, do not add dashed line
\begin{tabular}{@{}p{\skilllegendhintscolumnwidth}
@{\hspace{\separatorcolumnwidth}}p{\cvskillwidth}@{};{.6pt/1pt}p{0.9\cvskilllegenddescriptorwidth} @{\hspace{2\skillmatrixcommentpadding}}p{\cvskillwidth}@{};{.6pt/1pt}p{1.1\cvskilllegenddescriptorwidth}@{}}%
\raggedleft\hintstyle{} & \cvSkill{1}\, & \,{\legendFontSize #3} & \cvSkill{3}\, &\,{\legendFontSize #5 } \\
%
& \cvSkill{2}\, & \,\multirow{2}{\cvskilllegenddescriptorwidth}{{\legendFontSize #4}} & \cvSkill{4}\, &\,{\legendFontSize #6 } \\
%
& & & \cvSkill{5}\, &\,{\legendFontSize #7 }
\end{tabular}%
\par\addvspace{#2}
}
}
\fi
% in case moderncvbodyv is used we need a redefinition of \cvSkillMatrixLegend
\if@moderncvbodyv%
\DeclareDocumentCommand\@starIndependentTabular{}{}%
\RenewDocumentCommand\cvSkillMatrixLegend{s +O{.25em} +O{basic knowledge} +O{intermediate knowledge with experience in projects} +O{extensive experience in projects} +O{deep expert knowledge} +O{expert/guru} +m}{%
% check whether Argument #8 is given and if so provide it as cvitem
\def\legendString{#8}%
\ifdefempty{\legendString}{%
\vspace*{-\separatorrulewidth}% HACK; I don't understand where the space is coming from, nor what it's exact value is :(
}{%
\cvitem[-0.5em]{#8}{}%
}%
\arrayrulecolor{color1}%
\setlength\arrayrulewidth{\separatorrulewidth}%
\RenewDocumentCommand{\@starIndependentTabular}{}{%
\begingroup%
% \renewcommand{\arraystretch}{1.0}%
\begin{tabular}[t]{@{}p{\hintscolumnwidth}%\skilllegendhintscolumnwidth
@{\hspace{\separatorcolumnwidth}}|@{\hspace{\separatorcolumnwidth}}
p{\cvskillwidth}@{}
p{0.9\cvskilllegenddescriptorwidth} @{\hspace{2\skillmatrixcommentpadding}}
p{\cvskillwidth}@{}p{1.1\cvskilllegenddescriptorwidth}@{}}%
\@moderncvstrut{4pt}{16pt} & \cvSkill{1}\, & \,{\legendFontSize #3} & \cvSkill{3}\, &\,{\legendFontSize #5 } \\
%
& \cvSkill{2}\, & \,\multirow{2}{\cvskilllegenddescriptorwidth}{{\legendFontSize #4}} & \cvSkill{4}\, &\,{\legendFontSize #6 } \\
%
& & & \cvSkill{5}\, &\,{\legendFontSize #7 } \\[#2]% the spacing needs to be inside the cell for the vertical rule to extend correctly
\end{tabular}%
\endgroup%
\par\@aftersectionfalse\ignorespaces%
}%
% because of this weird style and the position of the parameter [#2], the dashed lines of the other version look bad. So no lines.
\IfBooleanTF#1{%
\@starIndependentTabular%
}{%
\@starIndependentTabular%
}
}%
\fi
% %-------------------------------------------------------------------------------
% % \cvSkillMatrixHeadFont
% %-------------------------------------------------------------------------------
\NewDocumentCommand\cvSkillMatrixHeadFont{}{\normalfont}
\DeclareDocumentCommand\cvSkillMatrixHead{+O{} +O{} +O{} +O{} +O{}}{}%
% The following definition is valid for moderncvbodyi, moderncvbodyii, moderncvbodyiii, moderncvbodyiv
\RenewDocumentCommand\cvSkillMatrixHead{O{.25em} +O{Level} +O{Skill} +O{Years} +O{Comment}}{%
\begingroup
\renewcommand{\arraystretch}{1.25}
\arrayrulecolor{color1}
\begin{tabular}{@{}p{\skillmatrixhintscolumnwidth}
@{\hspace{\separatorcolumnwidth}}p{\cvskillwidth}@{}@{}p{\cvskilldescriptorwidth}@{} p{\cvskillexperiencewidth} @{\hspace{\skillmatrixcommentpadding}}p{\skillmatrixcommentwidth}@{}}%
& \centering{\cvSkillMatrixHeadFont #2} & \centering{\cvSkillMatrixHeadFont #3} & \centering{\cvSkillMatrixHeadFont #4} & {\cvSkillMatrixHeadFont #5}
% \\\cdashline{2-5}[.6pt/1pt]
\end{tabular}%
\endgroup
\par\addvspace{#1}
}
% in case moderncvbodyv is used we need a redefinition of \cvSkillMatrixHead
\if@moderncvbodyv%
\RenewDocumentCommand\cvSkillMatrixHead{O{.25em} +O{Level} +O{Skill} +O{Years} +O{Comment}}{%
\arrayrulecolor{color1}%
\setlength\arrayrulewidth{\separatorrulewidth}%
\vspace*{-\separatorrulewidth}% HACK; I don't understand where the space is coming from, nor what it's exact value is :(
\begingroup%
% \renewcommand{\arraystretch}{1.25}%
\begin{tabular}[t]{@{}p{\hintscolumnwidth}%
@{\hspace{\separatorcolumnwidth}}|@{\hspace{\separatorcolumnwidth}}%
p{\skillmatrixhintscolumnwidth}%
@{\hspace{\skillmatrixcommentpadding}}p{\cvskillwidth}@{}%
p{\cvskilldescriptorwidth}@{}%
p{\cvskillexperiencewidth}%
@{\hspace{\skillmatrixcommentpadding}}p{\skillmatrixcommentwidth}@{}}%
& & \centering{\cvSkillMatrixHeadFont#2} & \centering{\cvSkillMatrixHeadFont#3} & \centering{\cvSkillMatrixHeadFont#4} & {\cvSkillMatrixHeadFont#5} \\[#1]% the spacing needs to be inside the cell for the vertical rule to extend correctly
\end{tabular}%
\endgroup%
\par\@aftersectionfalse\ignorespaces%
}
\fi
% %-------------------------------------------------------------------------------
% % \cvSkillMatrixEntry
% %-------------------------------------------------------------------------------
\DeclareDocumentCommand\cvSkillMatrixEntry{s +O{} +m +m +m +m +m}{}%
% The following definition is valid for moderncvbodyi, moderncvbodyii, moderncvbodyiii, moderncvbodyiv
\RenewDocumentCommand\cvSkillMatrixEntry{s +O{.25em} +m +m +m +m +m}{%
%test for the star * in the command
\IfBooleanTF{#1}{% If a star is seen a dotted line is drawn above the entry
\begingroup
\renewcommand{\arraystretch}{1.25}
\arrayrulecolor{color1}
\begin{tabular}{@{}p{\skillmatrixhintscolumnwidth}@{\hspace{\separatorcolumnwidth}}%
p{\cvskillwidth}@{}%
p{\cvskilldescriptorwidth}@{}%
p{\cvskillexperiencewidth} @{\hspace{\skillmatrixcommentpadding}}%
p{\skillmatrixcommentwidth}@{}}%
\cdashline{2-5}[.6pt/1pt]
\raggedleft\hintstyle{#3} &\centering \cvSkill{#4} &\centering {#5} & \centering {#6} &{\itshape#7}%
\end{tabular}%
\endgroup
\par\addvspace{#2}
}{% If no star is seen no line is drawn
\begin{tabular}{@{}p{\skillmatrixhintscolumnwidth}@{\hspace{\separatorcolumnwidth}}%
p{\cvskillwidth}@{}%
p{\cvskilldescriptorwidth}@{}%
p{\cvskillexperiencewidth}%
@{\hspace{\skillmatrixcommentpadding}}%
p{\skillmatrixcommentwidth}@{}}%
\raggedleft\hintstyle{#3} &\centering \cvSkill{#4} &\centering {#5} & \centering {#6} &{\itshape#7}%
\end{tabular}%
\par\addvspace{#2}
}
}
% in case moderncvbodyv is used we need a redefinition of \cvSkillMatrixEntry
\if@moderncvbodyv%
\DeclareDocumentCommand\@starIndependentMatrixEntry{}{}%
\RenewDocumentCommand\cvSkillMatrixEntry{s O{.25em} +m +m +m +m +m}{%
\arrayrulecolor{color1}%
\setlength\arrayrulewidth{\separatorrulewidth}%
\vspace*{-\separatorrulewidth}% HACK; I don't understand where the space is coming from, nor what it's exact value is :(
%test for the star * in the command
\RenewDocumentCommand{\@starIndependentMatrixEntry}{}{
\begingroup%
\renewcommand{\arraystretch}{1.25}%
\begin{tabular}[t]{@{}p{\hintscolumnwidth}%
@{\hspace{\separatorcolumnwidth}}|@{\hspace{\separatorcolumnwidth}}p{\skillmatrixhintscolumnwidth}
@{\hspace{\skillmatrixcommentpadding}}
p{\cvskillwidth}@{}
p{\cvskilldescriptorwidth}@{}
p{\cvskillexperiencewidth} @{\hspace{\skillmatrixcommentpadding}}p{\skillmatrixcommentwidth}@{}}%
% \cline{3-6}%
& \raggedleft\hintstyle{#3} &\centering \cvSkill{#4} &\centering {#5} & \centering {#6} &{\itshape#7}\\[#2]%
\end{tabular}%
\endgroup%
}
\IfBooleanTF{#1}{% the star does not do anything here
\@starIndependentMatrixEntry
}{%
\@starIndependentMatrixEntry
}%
\par\@aftersectionfalse\ignorespaces%
}
\fi
\endinput

View file

@ -9,7 +9,7 @@
\documentclass[11pt,a4paper,sans]{moderncv} % possible options include font size ('10pt', '11pt' and '12pt'), paper size ('a4paper', 'letterpaper', 'a5paper', 'legalpaper', 'executivepaper' and 'landscape') and font family ('sans' and 'roman')
% moderncv themes
\moderncvstyle[right]{banking} % style options are 'casual' (default), 'classic', 'banking', 'oldstyle' and 'fancy'
\moderncvstyle{casual} % style options are 'casual' (default), 'classic', 'banking', 'oldstyle' and 'fancy'
\moderncvcolor{blue} % color options 'black', 'blue' (default), 'burgundy', 'green', 'grey', 'orange', 'purple' and 'red'
%\renewcommand{\familydefault}{\sfdefault} % to set the default font; use '\sfdefault' for the default sans serif font, '\rmdefault' for the default roman one, or any tex font name
%\nopagenumbers{} % uncomment to suppress automatic page numbering for CVs longer than one page
@ -125,16 +125,16 @@ Detailed achievements:%
% % Programing languages
\cvSkillMatrixEntry*{Language:}{3}{Python}{2}{I'm so experienced in this and I have done a million projects in this}
\cvSkillMatrixEntry{}{2}{Lilypond}{14}{So much sheet music! Man I'm the best!}
\cvSkillMatrixEntry*{}{3}{\LaTeX}{14}{Clearly I rock at \LaTeX}
\cvSkillMatrixEntry{}{3}{\LaTeX}{14}{Clearly I rock at \LaTeX}
% OS
% notice the use of the starred command and the optional
\cvSkillMatrixEntry*[1.5em]{OS:}{3}{Linux}{2}{I only use Archlinux}
%
\cvitem{Skillmatrix in another language}{German example and dropping some dashed lines (exept fancy style)}
\cvitem{Skillmatrix in another language}{German example and dropping dashed lines (exept fancy style)}
% %% German version
% % adjust the legend entries for other languages like so. The first entry is a post padding
\cvSkillMatrixLegend*[0.2em][Grundkenntnisse][Grundkenntnisse und eigene Erfahrung in Projekten][Umfangreiche Erfahrung in Projekten][Vertiefte Expertenkenntnisse][Experte/Guru]{Legend}
% % Similarly adjust the head of the matrix for descriptiors in other languages
\cvSkillMatrixLegend[0.2em][Grundkenntnisse][Grundkenntnisse und eigene Erfahrung in Projekten][Umfangreiche Erfahrung in Projekten][Vertiefte Expertenkenntnisse][Experte/Guru]{Legende}
% % % Similarly adjust the head of the matrix for descriptiors in other languages
\cvSkillMatrixHead[-0.0em][Level][Fähigkeit][Jahre][Bemerkung]
%
% % The matrix itself