Compare commits

..

5 commits

54 changed files with 564 additions and 975 deletions

View file

@ -1,7 +0,0 @@
[codespell]
# Ref: https://github.com/codespell-project/codespell#using-a-config-file
skip = .git*,*.pdf,.codespellrc
check-hidden = true
# names, case sensitive
ignore-regex = \bWille\b|\\@\S+
# ignore-words-list =

View file

@ -12,37 +12,24 @@ jobs:
name: Build template name: Build template
runs-on: ubuntu-latest runs-on: ubuntu-latest
container: container:
image: texlive/texlive:latest-full image: thomasweise/docker-texlive-full:latest
steps: steps:
- name: Checkout code - name: Checkout code
uses: actions/checkout@v4 uses: actions/checkout@v3
- name: Build pdf - name: Build pdf
run: | run: latexmk -pdflua ./template.tex
prev_style=contemporary
for style in casual classic banking oldstyle fancy contemporary
do
echo -e "\033[1;35mCompiling style $style...\033[0m"
# first cleanup, but keep .log files for later artifact upload
latexmk -c -e 'sub cleanup_generated { my $ext = $_[0]; return 0 if $ext eq "log"; return 1; }'
sed -i "s/moderncvstyle\[\]{${prev_style}}/moderncvstyle\[\]{${style}}/g" template.tex
latexmk -pdflua ./template.tex
mv template.pdf template_${style}.pdf
mv template.log template_${style}.log
# remember previous style
prev_style=$style
done
- name: Upload pdf - name: Upload pdf
uses: actions/upload-artifact@v4 uses: actions/upload-artifact@v3
with: with:
name: template.pdf name: template.pdf
path: ./template_*.pdf path: ./template.pdf
- name: Upload log - name: Upload log
if: ${{ always() }} if: ${{ always() }}
uses: actions/upload-artifact@v4 uses: actions/upload-artifact@v3
with: with:
name: template.log name: template.log
path: ./template_*.log path: ./template.log

View file

@ -1,55 +0,0 @@
name: Build user guide
on:
push:
branches:
- master
paths:
- 'manual/moderncv_userguide.tex'
pull_request:
paths:
- 'manual/moderncv_userguide.tex'
jobs:
build-userguide:
name: Build user guide
runs-on: ubuntu-latest
env:
UG_AUTHOR: Auto Userguide Creator
UG_COMMIT_MESSAGE: <automated> build of user guide
container:
image: texlive/texlive:latest-full
steps:
- name: Checkout source code
uses: actions/checkout@v4
with:
fetch-depth: 2
- name: Build user guide pdf
run: latexmk -pdflua -cd ./manual/moderncv_userguide.tex
- name: Upload user guide pdf
uses: actions/upload-artifact@v4
with:
name: moderncv_userguide.pdf
path: ./manual/moderncv_userguide.pdf
- name: Upload user guide log
if: ${{ always() }}
uses: actions/upload-artifact@v4
with:
name: moderncv_userguide.log
path: ./manual/moderncv_userguide.log
- name: Push new user guide to master
if: ${{ github.ref_name == 'master' }}
run: |
# maybe switch to an image with git already included, for now install it here
apt update && apt install git -y
git config --global user.name '${{ env.UG_AUTHOR }}'
git config --global user.email '${{ github.actor }}@users.noreply.github.com'
ls -l
git add manual/moderncv_userguide.pdf
git commit -m "${{ env.UG_COMMIT_MESSAGE }}"
git push

View file

@ -1,25 +0,0 @@
# Codespell configuration is within .codespellrc
---
name: Codespell
on:
push:
branches: [master]
pull_request:
branches: [master]
permissions:
contents: read
jobs:
codespell:
name: Check for spelling errors
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Annotate locations with typos
uses: codespell-project/codespell-problem-matcher@v1
- name: Codespell
uses: codespell-project/actions-codespell@v2

View file

@ -1,35 +1,6 @@
version next version 2.?.? (29 Jun 2023)
- Upgrade to Fontawesome 6 (#183) - Rewrote user guide, thanks to David Seus (#58, #169). The new user guide is
- Document how to set custom strings for social command (#239) still incomplete.
- Correct documentation to reflect new order \moderncvcolor before \moderncvstyle (#256)
version 2.5.1 (31 Jan 2026)
- Fix french babel breaking contemporary style (#219)
- Fix birthdate not showing up in contemporary style (#244)
- Fix Inspire HEP social link (#241)
- Change moderncvcolors.tex to a .sty file for MikTeX compatibility (#199)
- Fix error when omitting the photo in contemporary style (#201)
- Fix spacing between first and last name (#204)
- Include social icons in cover letter for styles classic, fancy and banking (#170)
- Update Oldstyle to use symbols instead of marvosym (#209)
- Added SimpleX and Threema social (#217)
- Fix spacing between first and last name again (#220)
- Make header details flush against sides for casual, classic, and contemporary
styles (#229)
- Fix tikz icon color in contemporary style (#224)
- Add contemporary CV header style to cover letter, which also makes icons
visible (#186)
- Fix minor horizontal spacing issue in 'contemporary' style header
version 2.4.2 (01 Feb 2025)
- Added support for additional social icons like medium. (#264)
version 2.4.1 (18 Jul 2024)
- Fix commons/colors.tex not found in package (#194)
version 2.4.0 (08 Jul 2024)
- Rewrote user guide, thanks to David Seus (#58, #106, #169).
- Fixed "Underfull \hbox (badness 10000)" warning in \makecvtitle (#162). - Fixed "Underfull \hbox (badness 10000)" warning in \makecvtitle (#162).
- Fixed unnecessary academicons warning when academicons aren't used (#161). - Fixed unnecessary academicons warning when academicons aren't used (#161).
- Fixed page counts unnecessarily linking to the last page of the PDF (#159). - Fixed page counts unnecessarily linking to the last page of the PDF (#159).
@ -50,12 +21,10 @@ version 2.4.0 (08 Jul 2024)
- Added Codeberg and Mastodon social icons (#107). - Added Codeberg and Mastodon social icons (#107).
- New \social options: arXiv, INSPIRE (#185) - New \social options: arXiv, INSPIRE (#185)
- Systematize colors and make them user adjustable. See documentation for details. - Systematize colors and make them user adjustable. See documentation for details.
This requires the \moderncvcolor to be issued BEFORE \moderncvstyle (#151). This requires the \moderncvcolor to be issued BEFORE \moderncvstyle.
- all styles: make the head options 'details' and 'nodetails' available to the user. (previously they were hidden). Oldstyle does not respond too well to nodetails (#150). - all styles: make the head options 'details' and 'nodetails' available to the user. (previously they were hidden). Oldstyle does not respond too well to nodetails.
- casual style: make the head options 'alternate', 'details' and 'nodetails' available to the user. (previously they were hidden) (#150). - casual style: make the head options 'alternate', 'details' and 'nodetails' available to the user. (previously they were hidden).
- Setting \listitemsymbolspace allows custom spacing between list symbol and text item (for \cvlistitem and \cvlistdoubleitem) (#74). - Setting \listitemsymbolspace allows custom spacing between list symbol and text item (for \cvlistitem and \cvlistdoubleitem).
- Introducing \cvtripleitem command for items in three columns. Closing feature request #174.
- Fixed wrong cvlistitem vspace caused by multiline section titles in fancy style (#69).
version 2.3.1 (21 Feb 2022) version 2.3.1 (21 Feb 2022)
- Fix duplicate GitLab icon (#105). - Fix duplicate GitLab icon (#105).
@ -149,7 +118,7 @@ version 1.4.0 (28 Mar 2013)
now use each of these multiple times, e.g. to display multiple mobile phone now use each of these multiple times, e.g. to display multiple mobile phone
numbers. numbers.
- Deprecated \firstname and \familyname in favour of \name{<first>}{<last>}. - Deprecated \firstname and \familyname in favour of \name{<first>}{<last>}.
- Added a new mechanism to select among different possible icon sets: - Added a new mechanism to select amongs different possible icon sets:
\moderncvicons{<iconsetname>}, where <iconsetname> can be "marvosym" (used by \moderncvicons{<iconsetname>}, where <iconsetname> can be "marvosym" (used by
default in the banking, casual and classic styles) or "letters" (used by default in the banking, casual and classic styles) or "letters" (used by
default in the oldstyle style). \moderncvicons should always be called after default in the oldstyle style). \moderncvicons should always be called after

View file

@ -1,42 +1,15 @@
%% start of file `moderncvcolors.sty'.
%% Copyright 2006-2015 Xavier Danaux (xdanaux@gmail.com)
%% Copyright 2020-2026 moderncv maintainers (github.com/moderncv).
%
% 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{moderncvcolors}[2026-01-31 v2.5.1 modern curriculum vitae and letter base colors]
%------------------------------------------------------------------------------- %-------------------------------------------------------------------------------
% built-in colors % built-in colors
%------------------------------------------------------------------------------- %-------------------------------------------------------------------------------
\definecolor{black}{RGB}{0, 0, 0} \definecolor{black}{RGB}{0, 0, 0}
\definecolor{white}{HTML}{ffffff}
\definecolor{red}{rgb}{0.95, 0.20, 0.20} \definecolor{red}{rgb}{0.95, 0.20, 0.20}
\definecolor{darkgrey}{rgb}{0.45, 0.45, 0.45} \definecolor{darkgrey}{rgb}{0.45, 0.45, 0.45}
\definecolor{lightgrey}{HTML}{d3d3d3}
\definecolor{orange}{rgb}{0.95, 0.55, 0.15} \definecolor{orange}{rgb}{0.95, 0.55, 0.15}
\definecolor{burgundy}{rgb}{0.596078, 0, 0}% 139/255 (0.545098) or 152/255 (0.596078) \definecolor{burgundy}{rgb}{0.596078, 0, 0}% 139/255 (0.545098) or 152/255 (0.596078)
\definecolor{purple}{rgb}{0.50, 0.33, 0.80} \definecolor{purple}{rgb}{0.50, 0.33, 0.80}
\definecolor{lightblue}{rgb}{0.22, 0.45, 0.70} \definecolor{lightblue}{rgb}{0.22, 0.45, 0.70}
\definecolor{green}{rgb}{0.35, 0.70, 0.30} \definecolor{green}{rgb}{0.35, 0.70, 0.30}
\definecolor{cerulean}{HTML}{0081a7}
\definecolor{darkcyan}{HTML}{4d908e}
\definecolor{verdigris}{HTML}{00afb9}
\definecolor{lightskyblue}{HTML}{b1dffc}
\definecolor{darkred}{HTML}{d60000}
\definecolor{palegreen}{HTML}{a6fca6}
\definecolor{lightorange}{HTML}{ffbb3d}
\definecolor{lavender}{HTML}{9090e9}
\definecolor{firebrick}{HTML}{ce2727}
\definecolor{lightblack}{HTML}{3d3d3d}
%------------------------------------------------------------------------------- %-------------------------------------------------------------------------------
% default colors % default colors
@ -60,5 +33,3 @@
%------------------------------------------------------------------------------- %-------------------------------------------------------------------------------
% \definecolor{tsinghua}{HTML}{791CB5} % \definecolor{tsinghua}{HTML}{791CB5}
%% end of file `moderncvcolors.sty'.

View file

@ -1,10 +1,5 @@
#!/bin/sh #!/bin/sh
# script to create a tarball for the files that should be in the CTAN upload # script to create a tarball for the files that should be in the CTAN upload
#
# do not forget to replace comments/headers beforehand
# 1. date and version in moderncv_userguide.tex
# 2. find . -type f -exec sed -i 's/$OLD_DATE $OLD_VERSION/$NEW_DATE $NEW_VERSION/g' {} \;
# 3. find . -type f -exec sed -i 's|-$OLD_YEAR moderncv maintainers (github.com/moderncv)|-$NEW_YEAR moderncv maintainers (github.com/moderncv)|g' {} \;
# fetch version via git # fetch version via git
VERSION=$(git describe --tags --dirty) VERSION=$(git describe --tags --dirty)
@ -17,7 +12,7 @@ rm -f $TARBALL $TARBALL.gz
git archive --prefix=moderncv/ HEAD > $TARBALL git archive --prefix=moderncv/ HEAD > $TARBALL
# remove git specific files # remove git specific files
tar -f $TARBALL --delete moderncv/.github/ moderncv/.gitignore moderncv/create-release-tarball.sh moderncv/.codespellrc tar -f $TARBALL --delete moderncv/.github/ moderncv/.gitignore moderncv/create-release-tarball.sh
# compress # compress
gzip $TARBALL gzip $TARBALL

Binary file not shown.

View file

@ -1,5 +1,5 @@
%% moderncv_userguide.tex as shipped with 2026-01-31 v2.5.1 modern curriculum vitae and letter document class (moderncv) %% moderncv_userguide.tex as shipped with 2022/02/21 v2.3.1 modern curriculum vitae and letter document class (moderncv)
%% 2021 David Seus (cryptointerest@posteo.de), 2021-2026 moderncv maintainers (github.com/moderncv). %% 2021 David Seus, cryptointerest@posteo.de
% %
% This work may be distributed and/or modified under the % This work may be distributed and/or modified under the
% conditions of the LaTeX Project Public License version 1.3c, % conditions of the LaTeX Project Public License version 1.3c,
@ -9,16 +9,14 @@
\title{% \title{%
\texttt{moderncv} User Guide\\ \texttt{moderncv} User Guide\\
{\small Package v2.5.1}% {\small Package v2.3.1}%
} }
% Cristina Sambo, % Cristina Sambo,
\author{% \author{%
Package by Xavier Danaux\\ Package by Xavier Danaux\\
and\\
moderncv community\\
{\small Documentation by David Seus}% {\small Documentation by David Seus}%
} }
\date{2026-01-31} \date{\today}
% Language and encoding options % Language and encoding options
\usepackage[english]{babel} \usepackage[english]{babel}
@ -95,16 +93,15 @@
belowcaptionskip=0.75\baselineskip, belowcaptionskip=0.75\baselineskip,
% frame=L, % frame=L,
emph={ emph={
cvitem, cventry, cvdoubleentry, cvdoubleitem, cvtripleitem, cvlistitem, cvlistdoubleitem, cvcolumns, moderncvstyle, moderncvcolor, cvitem, cventry, cvdoubleentry, cvdoubleitem, cvlistitem, cvlistdoubleitem, cvcolumns, moderncvstyle, moderncvcolor,
cvskill, cvskilllegend, cvskillplainlegend, cvskillhead, cvskillentry, nopagenumbers, cvskill, cvskilllegend, cvskillplainlegend, cvskillhead, cvskillentry, nopagenumbers,
name, born, address, email, link, social, phone, homepage, extrainfo, photo, quote, section, subsection, setlength, NewDocumentCommand, definecolor, colorlet, cvitemwithcomment, name, born, address, email, link, social, phone, homepage, extrainfo, photo, quote, section, subsection, setlength, NewDocumentCommand, definecolor, colorlet, cvitemwithcomment
recipient, subject, opening, closing, signature, enclosure
}, },
emphstyle={\color{cvblue}}, emphstyle={\color{cvblue}},
emph={[2] emph={[2]
familydefault, sfdefault, rmdefault, inputenc, moderncv, document, bibliographyitemlabel, familydefault, sfdefault, rmdefault, inputenc, moderncv, document, bibliographyitemlabel,
addresssymbol, mobilephonesymbol, fixedphonesymbol, faxphonesymbol, emailsymbol, homepagesymbol, linkedinsocialsymbol, addresssymbol, mobilephonesymbol, fixedphonesymbol, faxphonesymbol, emailsymbol, homepagesymbol, linkedinsocialsymbol,
xingsocialsymbol, twittersocialsymbol, githubsocialsymbol, gitlabsocialsymbol, mastodonsocialsymbol, codebergsocialsymbol, discordsocialsymbol, twitchsocialsymbol, youtubesocialsymbol, tiktoksocialsymbol, instagramsocialsymbol, soundcloudsocialsymbol, steamsocialsymbol, xboxsocialsymbol, playstationsocialsymbol, battlenetsocialsymbol, simplexsocialsymbol, threemasocialsymbol, xingsocialsymbol, twittersocialsymbol, githubsocialsymbol, gitlabsocialsymbol,
stackoverflowsocialsymbol, bitbucketsocialsymbol, skypesocialsymbol, orcidsocialsymbol, researchgatesocialsymbol, arxivsocialsymbol, inspiresocialsymbol, stackoverflowsocialsymbol, bitbucketsocialsymbol, skypesocialsymbol, orcidsocialsymbol, researchgatesocialsymbol, arxivsocialsymbol, inspiresocialsymbol,
researcheridsocialsymbol, telegramsocialsymbol, whatsappsocialsymbol, signalsocialsymbol, matrixsocialsymbol, googlescholarsocialsymbol, cvstretchability, bornsymbol researcheridsocialsymbol, telegramsocialsymbol, whatsappsocialsymbol, signalsocialsymbol, matrixsocialsymbol, googlescholarsocialsymbol, cvstretchability, bornsymbol
}, },
@ -240,17 +237,17 @@ where at most one value for each option can be passed to the document class:
\end{tabular} \end{tabular}
\subsubsection*{Choosing a \texttt{moderncv} style and color} \subsubsection*{Choosing a \texttt{moderncv} style and color}
Choose a \Moderncv style and color by adjusting the commands (command order is important!): Choose a \Moderncv style and color by adjusting the commands
\begin{lstlisting} \begin{lstlisting}
\moderncvcolor{<color>}
\moderncvstyle{<style>} \moderncvstyle{<style>}
\moderncvcolor{<color>}
\end{lstlisting} \end{lstlisting}
As explained in \cvtemplate, the possible values are As explained in \cvtemplate, the possible values are
\begin{tabular}{r@{\hspace{2ex}}p{0.65\textwidth}} \begin{tabular}{r@{\hspace{2ex}}p{0.65\textwidth}}
\textbf{\code{color}:} & \code{black} \cvdoccolorbox{black}, \code{blue} \cvdoccolorbox{cvblue} (default), \code{burgundy} \cvdoccolorbox{cvburgundy}, \code{green} \cvdoccolorbox{cvgreen}, \code{grey} \cvdoccolorbox{cvgrey}, \code{orange} \cvdoccolorbox{cvorange}, \code{purple} \cvdoccolorbox{cvpurple}, \code{red} \cvdoccolorbox{cvred}\\
\textbf{\code{style}:} & \code{casual} (default), \code{classic}, \code{banking}, \code{oldstyle}, \textbf{\code{style}:} & \code{casual} (default), \code{classic}, \code{banking}, \code{oldstyle},
\code{fancy} \code{fancy} \\
\textbf{\code{color}:} & \code{black} \cvdoccolorbox{black}, \code{blue} \cvdoccolorbox{cvblue} (default), \code{burgundy} \cvdoccolorbox{cvburgundy}, \code{green} \cvdoccolorbox{cvgreen}, \code{grey} \cvdoccolorbox{cvgrey}, \code{orange} \cvdoccolorbox{cvorange}, \code{purple} \cvdoccolorbox{cvpurple}, \code{red} \cvdoccolorbox{cvred}
\end{tabular} \end{tabular}
\note Some of the styles take additional options to fine-tune their appearance. \note Some of the styles take additional options to fine-tune their appearance.
@ -329,9 +326,8 @@ A command for a social media account.
Takes the platform as an optional argument. Takes the platform as an optional argument.
\begin{lstlisting} \begin{lstlisting}
\social[<platform>]{<username or handle>} \social[<platform>]{<username or handle>}
\social[<platform>][<link to site>]{<Text shown in document>}
\end{lstlisting} \end{lstlisting}
The following values are supported for \code{<platform>} (see also \ref{icon:usage}): The following values are supported for \code{<platform>}:
\begin{itemize} \begin{itemize}
\begin{multicols}{4} \begin{multicols}{4}
\item \code{arxiv} \item \code{arxiv}
@ -348,18 +344,15 @@ The following values are supported for \code{<platform>} (see also \ref{icon:usa
\item \code{mastodon} \item \code{mastodon}
\item \code{matrix} \item \code{matrix}
\item \code{orcid} \item \code{orcid}
\item \code{medium}
\item \code{playstation} \item \code{playstation}
\item \code{researcherid} \item \code{researcherid}
\item \code{researchgate} \item \code{researchgate}
\item \code{signal} \item \code{signal}
\item \code{simplex}
\item \code{skype} \item \code{skype}
\item \code{soundcloud} \item \code{soundcloud}
\item \code{stackoverflow} \item \code{stackoverflow}
\item \code{steam} \item \code{steam}
\item \code{telegram} \item \code{telegram}
\item \code{threema}
\item \code{tiktok} \item \code{tiktok}
\item \code{twitch} \item \code{twitch}
\item \code{twitter} \item \code{twitter}
@ -390,15 +383,9 @@ A command for a quote.
\quote{<quote>} \quote{<quote>}
\end{lstlisting} \end{lstlisting}
\note{Long names and URLs can break some CVs and cover letters depending on the used style. Manually inserting line breaks for names with \code{\\\\} can help for \texttt{oldstyle} or \texttt{fancy}. Adjusting lengths as described in section \ref{subsection:adjusting:lengths} could help to mitigate issues with long URLs.} \todox{explain adding pictures}
\paragraph{Pictures.} \todox{Add note about how to handle long names and long URLs. Is this handled correctly?}
For some occasions you may need to include pictures besides the portrait photo. For this task it is helpful to know basic lengths used in \moderncv. For a more detailed description of lengths see section \ref{subsection:adjusting:lengths}.
For instance, pictures can be included with \code{\\includegraphics}:
\begin{lstlisting}
\hspace{\hintscolumnwidth + \separatorcolumnwidth}\includegraphics[<scale>]{<file name picture>}
\end{lstlisting}
Adding \code{\\hspace} in units of basic \code{moderncv} lengths will fit them more naturally into the CV or resume.
\paragraph{Bibliography.} \paragraph{Bibliography.}
In case BibTeX is used, the bibliography settings are adjusted in the lines In case BibTeX is used, the bibliography settings are adjusted in the lines
@ -407,7 +394,7 @@ In case BibTeX is used, the bibliography settings are adjusted in the lines
% \renewcommand*{\bibliographyitemlabel}{[\arabic{enumiv}]} % \renewcommand*{\bibliographyitemlabel}{[\arabic{enumiv}]}
% \renewcommand{\refname}{Articles} % \renewcommand{\refname}{Articles}
% bibliography with multiple entries % bibliography with mutiple entries
% \usepackage{multibib} % \usepackage{multibib}
% \newcites{book, misc}{{Books}, {Others}} % \newcites{book, misc}{{Books}, {Others}}
\end{lstlisting} \end{lstlisting}
@ -445,14 +432,6 @@ Can be used to enter skills, such as computer skills or language skills, in a tw
\cvdoubleitem{<descriptor 1>}{<body 1>}{<descriptor 2>}{<body 2>} \cvdoubleitem{<descriptor 1>}{<body 1>}{<descriptor 2>}{<body 2>}
\end{lstlisting} \end{lstlisting}
\paragraph{\code{\\cvtripleitem}}
A three-column variation of \code{\\cvitem}.
Takes six required arguments: the descriptor and body text of the first column, second and third column.
Can be used to enter skills, such as computer skills or language skills, in a three-column fashion.
\begin{lstlisting}
\cvtripleitem{<descriptor 1>}{<body 1>}{<descriptor 2>}{<body 2>}{<descriptor 3>}{<body 3>}
\end{lstlisting}
\paragraph{\code{\\cvitemwithcomment}} \paragraph{\code{\\cvitemwithcomment}}
A variation of \code{\\cvitem} with an additional argument for a comment. A variation of \code{\\cvitem} with an additional argument for a comment.
Can be used to enter skills such as computer skills or language skills. Can be used to enter skills such as computer skills or language skills.
@ -494,7 +473,7 @@ This can be combined with the \code{itemize} environment.
\cvcolumn[<width>]{<content>} \cvcolumn[<width>]{<content>}
\end{cvcolumns} \end{cvcolumns}
\end{lstlisting} \end{lstlisting}
\code{<width>} is a number between 0 and 1 controlling the width of the column. \code{<width>} is a number between 0 and 1 controling the width of the column.
\subsubsection{Skill matrix macros} \subsubsection{Skill matrix macros}
The skill matrix is a table for displaying skills such as computer skills or project management skills graphically. The skill matrix is a table for displaying skills such as computer skills or project management skills graphically.
@ -566,50 +545,10 @@ How to make length adjustments to the skill matrix will be explained in section
\subsection{Letter of motivation} \subsection{Letter of motivation}
In order to provide additional information for a job application, {\moderncv} provides a motivation letter. Define the following recipient data fields to customize your letter: \todo{add short explanation of motivation letter.}
\paragraph{\code{\\recipient}} To add a subject to the letter of motivation or to close with your signature, see sections \ref{section:add:subject} and \ref{section:add:signature}, respectively.
A command for the letter's recipient. This allows line breaks to properly format the recipient's address.
\begin{lstlisting}
\recipient{<Team or contact person>}{<company>\\<street>\\<city>}
\end{lstlisting}
\paragraph{\code{\\date}}
A command to set the letter's date.
\begin{lstlisting}
\date{<your custom date>}
\end{lstlisting}
\paragraph{\code{\\subject}}
A command to define the job application subject.
\begin{lstlisting}
\subject{<subject>}
\end{lstlisting}
\paragraph{\code{\\opening}}
A command to set your opening (e.g. ``Dear X,'' or ``To whom it may concern,'').
\begin{lstlisting}
\opening{<greeting>}
\end{lstlisting}
\paragraph{\code{\\closing}}
A command to set your closing (e.g. ``Sincerely,'' or ``Yours truly,'').
\begin{lstlisting}
\closing{<closing>}
\end{lstlisting}
\paragraph{\code{\\signature}}
An optional command to include your signature after the closing. This feature is defined using the \code{\\includegraphics}. The first argument is the scale and the second argument is the filename of your scanned signature.
\begin{lstlisting}
\signature{<scale>}{<signature filename>}
\end{lstlisting}
\paragraph{\code{\\enclosure}}
A command to list the attached documents. The first optional parameter allows a redefinition of the default ``Enclosure'' label.
\begin{lstlisting}
\enclosure[<optional alternative label>]{<list of documents>}
\end{lstlisting}
\note If typesetting the resume in Chinese using CJK an additional \code{\\clearpage} is required after the \code{\\makeletterclosing} command. This helps \code{fancyhdr} to work correctly with CJK. Otherwise it will remove the page numbering by making \code{lastpage} undefined.
\section{Customization} \section{Customization}
\label{section:customization} \label{section:customization}
@ -752,9 +691,17 @@ If an even finer control over the color scheme of the style is desired, the foll
\subsection{Modifying symbols and icons} \subsection{Modifying symbols and icons}
\subsubsection{Icons}\label{icon:usage} \subsubsection{Icons}
As stated in section \ref{section:customization:stylesAndOptions}, the use of icons is toggled by the \code{symbols} option that can be passed to \code{\\moderncvstyle}. As stated in section \ref{section:customization:stylesAndOptions}, the use of icons is toggled by the \code{symbols} option that can be passed to \code{\\moderncvstyle}.
The icons used in the display of the personal data (phone numbers, email, fax, social media accounts, etc.) can be customized by redefining the internal commands for the symbols:
\begin{lstlisting}
\renewcommand*{<\symbolcommand>}{{\small<\symbol>}~}
\end{lstlisting}
Using \code{\\small} is optional, but the default behavior is to render all icons using \code{\\small}.
Use \code{\\small} if one merely wishes to replace an icon/symbol while keeping the size consistent with the default icons/symbols.
The tilde ensures proper spacing after the symbols and is recommended as well.
Currently \Moderncv supports the following commands as \code{<\\symbolcommand>}: Currently \Moderncv supports the following commands as \code{<\\symbolcommand>}:
\begin{itemize} \begin{itemize}
\begin{multicols}{2} \begin{multicols}{2}
@ -764,82 +711,43 @@ Currently \Moderncv supports the following commands as \code{<\\symbolcommand>}:
\item \code{\\faxphonesymbol} \item \code{\\faxphonesymbol}
\item \code{\\emailsymbol} \item \code{\\emailsymbol}
\item \code{\\homepagesymbol} \item \code{\\homepagesymbol}
\item \code{\\bornsymbol}
\item \code{\\linkedinsocialsymbol} \item \code{\\linkedinsocialsymbol}
\item \code{\\xingsocialsymbol} \item \code{\\xingsocialsymbol}
\item \code{\\twittersocialsymbol} \item \code{\\twittersocialsymbol}
\item \code{\\mastodonsocialsymbol}
\item \code{\\githubsocialsymbol} \item \code{\\githubsocialsymbol}
\item \code{\\gitlabsocialsymbol} \item \code{\\gitlabsocialsymbol}
\item \code{\\stackoverflowsocialsymbol} \item \code{\\stackoverflowsocialsymbol}
\item \code{\\bitbucketsocialsymbol} \item \code{\\googlescholarsocialsymbol}
\item \code{\\skypesocialsymbol}
\item \code{\\orcidsocialsymbol}
\item \code{\\researchgatesocialsymbol}
\item \code{\\researcheridsocialsymbol}
\item \code{\\telegramsocialsymbol} \item \code{\\telegramsocialsymbol}
\item \code{\\whatsappsocialsymbol} \item \code{\\whatsappsocialsymbol}
\item \code{\\signalsocialsymbol} \item \code{\\signalsocialsymbol}
\item \code{\\matrixsocialsymbol} \item \code{\\matrixsocialsymbol}
\item \code{\\googlescholarsocialsymbol} \item \code{\\orcidsocialsymbol}
\item \code{\\codebergsocialsymbol} \item \code{\\researchgatesocialsymbol}
\item \code{\\discordsocialsymbol} \item \code{\\researcheridsocialsymbol}
\item \code{\\twitchsocialsymbol} \item \code{\\bitbucketsocialsymbol}
\item \code{\\youtubesocialsymbol} \item \code{\\skypesocialsymbol}
\item \code{\\tiktoksocialsymbol}
\item \code{\\instagramsocialsymbol}
\item \code{\\soundcloudsocialsymbol}
\item \code{\\steamsocialsymbol}
\item \code{\\xboxsocialsymbol}
\item \code{\\playstationsocialsymbol}
\item \code{\\battlenetsocialsymbol}
\item \code{\\mediumsocialsymbol}
\item \code{\\bornsymbol} \item \code{\\bornsymbol}
\item \code{\\arxivsocialsymbol} \item \code{\\arxivsocialsymbol}
\item \code{\\inspiresocialsymbol} \item \code{\\inspiresocialsymbol}
\item \code{\\simplexsocialsymbol}
\item \code{\\threemasocialsymbol}
\end{multicols} \end{multicols}
\end{itemize} \end{itemize}
The general usage is \code{\\social\[\<symbol\>\]\{\<url fragment of profile\>\}}. Usually only the profile dependent url fragment has to be used as the common url parts are already defined in \texttt{moderncv.cls}.
As an alternative the appearing link and string after the symbol can be customized when using the following command instead:
\begin{lstlisting}
\social[<symbol>][<custom url>]{<custom name>}
\end{lstlisting}
\paragraph{Note.}
The possible options for \code{<\\symbol>} depend on the package that is used. The possible options for \code{<\\symbol>} depend on the package that is used.
By default, the \code{marvosym} package is loaded if \code{pdflatex} is used, and the \code{academicons} and \code{fontawesome6} packages are loaded if either \code{lualatex} or \code{xelatex} is used. By default, the \code{marvosym} package is loaded if \code{pdflatex} is used, and the \code{academicons} and \code{fontawesome5} packages are loaded if either \code{lualatex} or \code{xelatex} is used.
Full lists of all available symbols and icons can be found in the documentation of each respective package: Full lists of all available symbols and icons can be found in the documentation of each respective package:
\begin{tabular}{l} \begin{tabular}{l}
\url{https://ctan.org/pkg/marvosym} \\[1ex] \url{https://ctan.org/pkg/marvosym} \\[1ex]
\url{https://ctan.org/pkg/fontawesome6} \\[1ex] \url{https://ctan.org/pkg/fontawesome5} \\[1ex]
\url{https://ctan.org/pkg/academicons} \url{https://ctan.org/pkg/academicons}
\end{tabular} \end{tabular}
\paragraph{Redefinition.}The icons used in the display of the personal data (phone numbers, email, fax, social media accounts, etc.) can be customized by redefining the internal commands for the symbols:
\begin{lstlisting}
\renewcommand*{<\symbolcommand>}{{\small<\symbol>}~}
\end{lstlisting}
Using \code{\\small} is optional, but the default behavior is to render all icons using \code{\\small}.
Use \code{\\small} if one merely wishes to replace an icon/symbol while keeping the size consistent with the default icons/symbols.
The tilde ensures proper spacing after the symbols and is recommended as well.
\paragraph{Example.} \paragraph{Example.}
If one wanted to use the dingbat fonts to replace the default phone symbol, one should load the \code{pifont} package in the preamble and then substitute the default symbol with the dingbat symbol \ding{38}\ with If one wanted to use the dingbat fonts to replace the default phone symbol, one should load the \code{pifont} package in the preamble and then substitute the default symbol with the dingbat symbol \ding{38}\ with
\begin{lstlisting} \begin{lstlisting}
\renewcommand*{\fixedphonesymbol}{\ding{38}~} \renewcommand*{\fixedphonesymbol}{\ding{38}~}
\end{lstlisting} \end{lstlisting}
\paragraph{Alternative to icons.}
In case you do not want \texttt{symbols} (default) for the icons, there is also the option to replace icons with \texttt{letters} instead. This is set by the macro \code{\\moderncvicons}, which must be called after setting the style in the preamble.
\begin{lstlisting}
\moderncvicons{<symbols|letters>}
\end{lstlisting}
This mechanism is also used to determine the icon set. In principle the \code{\\moderncvicons} can be used to determine the icon set with the possible values \texttt{marvosym}, \texttt{awesome} or \texttt{academic}, but it is recommended to let {\moderncv} decide the correct icon set due to differing \Latex compiler support.
\subsubsection{Listing labels} \subsubsection{Listing labels}
The labels used in \code{itemize} environments, \code{cvlistitem} and \code{cvlistdoubleitem} can be changed in two different ways: The labels used in \code{itemize} environments, \code{cvlistitem} and \code{cvlistdoubleitem} can be changed in two different ways:
@ -854,7 +762,8 @@ The labels used in \code{itemize} environments, \code{cvlistitem} and \code{cvli
\end{lstlisting} \end{lstlisting}
\end{itemize} \end{itemize}
\subsection{Adjusting lengths}\label{subsection:adjusting:lengths} \subsection{Adjusting lengths}
\todo{Add more adjustable lengths}
Some lengths in \Moderncv can be adjusted. Some lengths in \Moderncv can be adjusted.
The hints column can be adjusted by setting \code{\\hintscolumnwidth}: The hints column can be adjusted by setting \code{\\hintscolumnwidth}:
@ -869,35 +778,11 @@ For the \code{classic} style, the amount of horizontal space for the name can be
One should be careful though, as the length is normally calculated to avoid any overlap with the personal information. One should be careful though, as the length is normally calculated to avoid any overlap with the personal information.
This should be used at one's own typographical risk. This should be used at one's own typographical risk.
The spacing between the hints column and the CV entries can be adjusted by setting\\
\code{\\separatorcolumnwidth}. The default value is \code{0.025\\textwidth}.
\begin{lstlisting}
\setlength{\separatorcolumnwidth}{0.05\textwidth}
\end{lstlisting}
The spacing between the list symbol and the text item of \code{\\cvlistitem} and \code{\\cvlistdoubleitem} can be adjusted by setting \code{\\listitemsymbolspace} in the preamble. The default value is set to \code{0pt}.
\begin{lstlisting}
\setlength{\listitemsymbolspace}{5pt}
\end{lstlisting}
The width of the footer can be adjusted by setting \code{\\footwidth}. Due to internal calculations \code{\\renewcommand} is needed. The default value is \code{0.8\\textwidth}.
\begin{lstlisting}
\renewcommand*{\recomputefootlengths}{%
\setlength{\footwidth}{0.9\textwidth}}
\end{lstlisting}
The width of the quote can be adjusted by setting \code{\\quotewidth}. Due to internal calculations \code{\\renewcommand} is needed. The default value is \code{0.65\\textwidth}.
\begin{lstlisting}
\renewcommand*{\recomputecvheadlengths}{%
\setlength{\quotewidth}{0.5\textwidth}}
\end{lstlisting}
% The different lengths used by moderncv are customizable by % The different lengths used by moderncv are customizable by
% \begin{lstlisting} % \begin{lstlisting}
% \setlength{<length>}{<new_dimensions>} % \setlength{<length>}{<new_dimensions>}
% \end{lstlisting} % \end{lstlisting}
% where \code{<length>} are \code{maincolumnwidth}, \code{doubleitemmaincolumnwidth}, \code{listitemsymbolwidth}, \code{listdoubleitemmaincolumnwidth}, % where \code{<length>} are \code{quotewidth}, \code{separatorcolumnwidth}, \code{maincolumnwidth}, \code{doubleitemmaincolumnwidth}, \code{listitemsymbolwidth}, \code{listdoubleitemmaincolumnwidth},
\subsubsection{Lengths in the skill matrix} \subsubsection{Lengths in the skill matrix}
@ -927,37 +812,6 @@ The width of the skill matrix columns can be adjusted as follows:
\end{lstlisting} \end{lstlisting}
\code{<width>} and \code{<exp_width>} should be lengths smaller than \code{\\textwidth}, and \code{<factor>} must be between 0 and 1. \code{<width>} and \code{<exp_width>} should be lengths smaller than \code{\\textwidth}, and \code{<factor>} must be between 0 and 1.
\subsection{Additional link commands}%% adapted from Cristina Sambo's documentation
To create links to a website or a email address, use the following commands:
A general weblink with optional text.
\begin{lstlisting}
\link[<text>]{<link>}
%% example
\link[name of the link]{ftp://ftp.somesite.org}
\end{lstlisting}
An HTTP link. The HTTP prefix is generated automatically and is not needed in the link argument.
\begin{lstlisting}
\link[<text>]{<link>}
%% example
\link[goto HTTP site]{www.somehttpsite.org}
\end{lstlisting}
A HTTPS link. The HTTPS prefix is generated automatically and is not needed in the link argument.
\begin{lstlisting}
\link[<text>]{<link>}
%% example
\httpslink[goto HTTPS site]{www.somesecuresite.org}
\end{lstlisting}
An email link. The mailto prefix is generated automatically and is not needed in the link argument.
\begin{lstlisting}
\link[<text>]{<link>}
%% example
\emaillink[my email]{jdoe@website.org}
\end{lstlisting}
\subsection{Page breaks and orphaned section headers} \subsection{Page breaks and orphaned section headers}
If \Latex breaks pages just after \code{\\section} or \code{\\subsection} commands, try adjusting the stretchability of the page with \code{\\cvsectionstretchability} or \code{\\cvsubsectionstretchability}: If \Latex breaks pages just after \code{\\section} or \code{\\subsection} commands, try adjusting the stretchability of the page with \code{\\cvsectionstretchability} or \code{\\cvsubsectionstretchability}:
\begin{lstlisting} \begin{lstlisting}
@ -1006,6 +860,58 @@ A good explanation of \code{\\needspace} can be found at \url{https://tex.stacke
\subsection{Tips and Tricks} \subsection{Tips and Tricks}
\subsubsection{Including a scanned signature in the letter of motivation}
\label{section:add:signature}
To add a scanned signature to your letter of motivation, add the following to your preamble:
%%%% redefinition of makeletterclosing without printing Name and last name but inserting
%%%% a signature png instead.
\begin{lstlisting}
\makeatletter
\renewcommand*{\makeletterclosing}{
\@closing\\[3em]%
\includegraphics[height=1.5cm, width=5.5cm]{<signature.png>}
% \textbf{\@firstname~\@lastname}%
\ifthenelse{\isundefined{\@enclosure}}{}{%
\\%
\vfill%
\textcolor{color2}{\textit{\enclname: \@enclosure}}%
}%
}
\makeatother
\end{lstlisting}
\subsubsection{Including a subject in the letter of motivation}
\label{section:add:subject}
To add a subject to your letter of motivation, add the following to your preamble:
\begin{lstlisting}
\makeatletter
\renewcommand*{\makeletterhead}{%
\recomputeletterlengths % in case we are switching from letter to resume, or vice versa
% recipient block
\begin{minipage}[t]{0.5\textwidth}
\raggedright\addressfont%
\textbf{\textup{\@recipientname}}\\%
\@recipientaddress%
\end{minipage}
% date
\hfill % US style
% \\[1em] % UK style
\@date\\[4em] % US informal style: "January 1, 1900"; UK formal style: "01/01/1900"
% opening
\raggedright%
\textbf{\subject}\\[2em]
\@opening\\[1.5em]%
% ensure no extra spacing after \makelettertitle due to a possible blank line
% \ignorespacesafterend % not working
\hspace{0pt}\par\vspace{-\baselineskip}\vspace{-\parskip}
}
\makeatother
\end{lstlisting}
Then a subject can be added to the letter of motivation with
\begin{lstlisting}
\subject{<subject_text>}
\end{lstlisting}
\subsubsection{Legal disclaimer at the end of the CV} \subsubsection{Legal disclaimer at the end of the CV}
Some countries (e.g. Italy) require you to add a legal disclaimer authorizing the use of the personal data in your CV. Some countries (e.g. Italy) require you to add a legal disclaimer authorizing the use of the personal data in your CV.
To add such a disclaimer, add the following to the bottom of your CV:% To add such a disclaimer, add the following to the bottom of your CV:%
@ -1023,21 +929,7 @@ To add such a disclaimer, add the following to the bottom of your CV:%
\label{section:implementationDetails} \label{section:implementationDetails}
\subsection{Creating your own styles} \subsection{Creating your own styles}
Currently {\moderncv} ships with six different styles: \texttt{casual} (default), \texttt{classic}, \texttt{banking}, \texttt{oldstyle}, \texttt{fancy} and \texttt{contemporary}. Internally, these styles are numbered 1, 2, 3, 4, 5 and 6, respectively. All styles except \texttt{oldstyle} and \texttt{fancy} possess additional option parameters which were described in section \ref{section:customization:stylesAndOptions}. \todox{Explain how to create styles and and how to recombine headers, footers, bodies etc.}
Different styles' head, body and foot can be combined to create custom styles. This is done by setting \code{\\moderncvhead}, \code{\\moderncvbody} and \code{\\moderncvfoot} in the preamble. Here is an example of a custom style with a \texttt{banking} head, an \texttt{oldstyle} body and a \texttt{casual} foot:
\begin{lstlisting}
\moderncvhead{3}
\moderncvbody{4}
\moderncvfoot{1}
\end{lstlisting}
Furthermore, options for each part of {\moderncv} parts can be set as well in such combinations. To get a CV with a \texttt{classic} head and a \texttt{banking} body with full rules, define the following in the preamble:
\begin{lstlisting}
\moderncvhead{2}
\moderncvbody[fullrules]{3}
\moderncvfoot{1}
\end{lstlisting}
\subsection{Required packages} \subsection{Required packages}
\label{section:implementationDetails:requiredPackages} \label{section:implementationDetails:requiredPackages}
@ -1061,7 +953,7 @@ In addition to the packages that \Moderncv provides, the following packages are
\item \code{expl3} \item \code{expl3}
\item \code{tikz} \item \code{tikz}
\item \code{changepage} \item \code{changepage}
\item \code{fontawesome6} \item \code{fontawesome5}
\item \code{academicons} \item \code{academicons}
\item \code{tgpagella} \item \code{tgpagella}
\item \code{ebgaramond} \item \code{ebgaramond}

View file

@ -1,5 +1,5 @@
%% start of file `moderncv.cls'. %% start of file `moderncv.cls'.
%% Copyright 2006-2015 Xavier Danaux (xdanaux@gmail.com), 2020-2026 moderncv maintainers (github.com/moderncv). %% Copyright 2006-2015 Xavier Danaux (xdanaux@gmail.com), 2020-2022 moderncv maintainers (github.com/moderncv).
% %
% This work may be distributed and/or modified under the % This work may be distributed and/or modified under the
% conditions of the LaTeX Project Public License version 1.3c, % conditions of the LaTeX Project Public License version 1.3c,
@ -10,7 +10,7 @@
% identification % identification
%------------------------------------------------------------------------------- %-------------------------------------------------------------------------------
\NeedsTeXFormat{LaTeX2e} \NeedsTeXFormat{LaTeX2e}
\ProvidesClass{moderncv}[2026-01-31 v2.5.1 modern curriculum vitae and letter document class] \ProvidesClass{moderncv}[2022-02-21 v2.3.1 modern curriculum vitae and letter document class]
%------------------------------------------------------------------------------- %-------------------------------------------------------------------------------
@ -154,7 +154,7 @@
% reduced list spacing % reduced list spacing
% package providing hooks into lists % package providing hooks into lists
% originally developed by Jakob Schiotz (see http://dcwww.camd.dtu.dk/~schiotz/comp/LatexTips/tweaklist.sty) % originally developped by Jakob Schiotz (see http://dcwww.camd.dtu.dk/~schiotz/comp/LatexTips/tweaklist.sty)
% modified and distributed with moderncv(not available otherwise on ctan) % modified and distributed with moderncv(not available otherwise on ctan)
\RequirePackage{tweaklist} \RequirePackage{tweaklist}
\renewcommand*{\itemhook}{% \renewcommand*{\itemhook}{%
@ -234,7 +234,7 @@
\newcommand*{\born}[1]{\def\@born{#1}} \newcommand*{\born}[1]{\def\@born{#1}}
% defines one's email (optional) % defines one's email (optional)
% usage: \email{<email address>} % usage: \email{<email adress>}
\newcommand*{\email}[1]{\def\@email{#1}} \newcommand*{\email}[1]{\def\@email{#1}}
% defines one's home page (optional) % defines one's home page (optional)
@ -290,8 +290,6 @@
% - "battlenet" % - "battlenet"
% - "arxiv" % - "arxiv"
% - "inspire" % - "inspire"
% - "simplex"
% - "threema"
\collectionnew{socials} \collectionnew{socials}
\NewDocumentCommand{\social}{O{}O{}m}{% \NewDocumentCommand{\social}{O{}O{}m}{%
\ifthenelse{\equal{#2}{}}% \ifthenelse{\equal{#2}{}}%
@ -325,10 +323,7 @@
\ifthenelse{\equal{#1}{playstation}} {\collectionadd[playstation]{socials} {#3}} {}% \ifthenelse{\equal{#1}{playstation}} {\collectionadd[playstation]{socials} {#3}} {}%
\ifthenelse{\equal{#1}{battlenet}} {\collectionadd[battlenet]{socials} {#3}} {}% \ifthenelse{\equal{#1}{battlenet}} {\collectionadd[battlenet]{socials} {#3}} {}%
\ifthenelse{\equal{#1}{arxiv}} {\collectionadd[arxiv]{socials} {\protect\httpslink[#3]{arxiv.org/a/#3}}} {}% \ifthenelse{\equal{#1}{arxiv}} {\collectionadd[arxiv]{socials} {\protect\httpslink[#3]{arxiv.org/a/#3}}} {}%
\ifthenelse{\equal{#1}{inspire}} {\collectionadd[inspire]{socials} {\protect\httpslink[#3]{inspirehep.net/authors/#3}}} {}% \ifthenelse{\equal{#1}{inspire}} {\collectionadd[inspire]{socials} {\protect\httpslink[#3]{inspirehep.net/authoris/#3}}} {}%
\ifthenelse{\equal{#1}{simplex}} {\collectionadd[simplex]{socials} {\protect\httpslink[#3]{simplex.chat/#3}}} {}%
\ifthenelse{\equal{#1}{threema}} {\collectionadd[threema]{socials} {\protect\httpslink[#3]{threema.id/#3}}} {}%
\ifthenelse{\equal{#1}{medium}} {\collectionadd[medium]{socials} {\protect\httpslink[#3]{medium.com/#3}}} {}%
} }
{\collectionadd[#1]{socials}{\protect\httpslink[#3]{#2}}}}% {\collectionadd[#1]{socials}{\protect\httpslink[#3]{#2}}}}%
@ -396,12 +391,6 @@
\newcommand*{\battlenetsocialsymbol} {} \newcommand*{\battlenetsocialsymbol} {}
\newcommand*{\arxivsocialsymbol} {} \newcommand*{\arxivsocialsymbol} {}
\newcommand*{\inspiresocialsymbol} {} \newcommand*{\inspiresocialsymbol} {}
\newcommand*{\simplexsocialsymbol} {}
\newcommand*{\threemasocialsymbol} {}
\newcommand*{\mediumsocialsymbol} {}
% other % other
%------ %------
@ -571,10 +560,6 @@
% usage: \cvdoubleitem[spacing]{header1}{text1}{header2}{text2} % usage: \cvdoubleitem[spacing]{header1}{text1}{header2}{text2}
\newcommand*{\cvdoubleitem}[5][.25em]{} \newcommand*{\cvdoubleitem}[5][.25em]{}
% makes a resume line 3 headers and their corresponding text
% usage: \cvtripleitem[spacing]{header1}{text1}{header2}{text2}{header3}{text3}
\newcommand*{\cvtripleitem}[7][.1em]{}
% makes a resume line with a list item % makes a resume line with a list item
% usage: \cvlistitem[spacing]{item} % usage: \cvlistitem[spacing]{item}
\newcommand*{\cvlistitem}[2][\listitemsymbol]{} \newcommand*{\cvlistitem}[2][\listitemsymbol]{}
@ -584,7 +569,7 @@
\newcommand*{\cvlistdoubleitem}[3][\listitemsymbol]{} \newcommand*{\cvlistdoubleitem}[3][\listitemsymbol]{}
% makes a typical resume job / education entry % makes a typical resume job / education entry
% usage: \cventry[spacing]{years}{degree/job title}{institution/employer}{localization}{optional: grade/...}{optional: comment/job description} % usage: \cventry[spacing]{years}{degree/job title}{institution/employer}{localization}{optionnal: grade/...}{optional: comment/job description}
\newcommand*{\cventry}[7][.25em]{} \newcommand*{\cventry}[7][.25em]{}
% makes a resume entry with a proficiency comment % makes a resume entry with a proficiency comment
@ -660,7 +645,7 @@
\newcounter{cvcolumnscounter}% counter for the number of columns \newcounter{cvcolumnscounter}% counter for the number of columns
\newcounter{cvcolumnsautowidthcounter}% counter for the number of columns with no column width provided, and which will then be equally distributed \newcounter{cvcolumnsautowidthcounter}% counter for the number of columns with no column width provided, and which will then be equally distributed
\newcounter{tmpiteratorcounter}% counter for any temporary purpose (e.g., iterating loops) \newcounter{tmpiteratorcounter}% counter for any temporary purpose (e.g., iterating loops)
\newlength{\cvcolumnsdummywidth}\setlength{\cvcolumnsdummywidth}{1000pt}% dummy width for total width, in order to enable arithmetic (TeX has no float variables, only integer counters or lengths) \newlength{\cvcolumnsdummywidth}\setlength{\cvcolumnsdummywidth}{1000pt}% dummy width for total width, in order to enable arithmetics (TeX has no float variables, only integer counters or lengths)
\newlength{\cvcolumnswidth}% total width available for head / content \newlength{\cvcolumnswidth}% total width available for head / content
\newlength{\cvcolumnsautowidth}% total width of columns with no explicit width provided \newlength{\cvcolumnsautowidth}% total width of columns with no explicit width provided
\newlength{\cvcolumnautowidth}% width of one of the columns with no explicit width provided (based on equal distribution of remaining space) \newlength{\cvcolumnautowidth}% width of one of the columns with no explicit width provided (based on equal distribution of remaining space)

View file

@ -1,5 +1,5 @@
%% start of file `moderncvbodyi.sty'. %% start of file `moderncvbodyi.sty'.
%% Copyright 2006-2015 Xavier Danaux (xdanaux@gmail.com), 2020-2026 moderncv maintainers (github.com/moderncv). %% Copyright 2006-2015 Xavier Danaux (xdanaux@gmail.com), 2020-2022 moderncv maintainers (github.com/moderncv).
% %
% This work may be distributed and/or modified under the % This work may be distributed and/or modified under the
% conditions of the LaTeX Project Public License version 1.3c, % conditions of the LaTeX Project Public License version 1.3c,
@ -10,7 +10,7 @@
% identification % identification
%------------------------------------------------------------------------------- %-------------------------------------------------------------------------------
\NeedsTeXFormat{LaTeX2e} \NeedsTeXFormat{LaTeX2e}
\ProvidesPackage{moderncvbodyi}[2026-01-31 v2.5.1 modern curriculum vitae and letter body variant: 1] \ProvidesPackage{moderncvbodyi}[2022-02-21 v2.3.1 modern curriculum vitae and letter body variant: 1]
%------------------------------------------------------------------------------- %-------------------------------------------------------------------------------
@ -44,8 +44,6 @@
\@initializelength{\maincolumnwidth} \@initializelength{\maincolumnwidth}
% used by \cvdoubleitem % used by \cvdoubleitem
\@initializelength{\doubleitemcolumnwidth} \@initializelength{\doubleitemcolumnwidth}
% used by \cvtripleitem
\@initializelength{\tripleitemcolumnwidth}
% used by \cvlistitem % used by \cvlistitem
\@initializelength{\listitemsymbolwidth} \settowidth{\listitemsymbolwidth}{\listitemsymbol} \@initializelength{\listitemsymbolwidth} \settowidth{\listitemsymbolwidth}{\listitemsymbol}
\@initializelength{\listitemcolumnwidth} \@initializelength{\listitemcolumnwidth}
@ -62,8 +60,6 @@
\setlength{\listitemcolumnwidth}{\maincolumnwidth-\listitemsymbolwidth}% \setlength{\listitemcolumnwidth}{\maincolumnwidth-\listitemsymbolwidth}%
\setlength{\doubleitemcolumnwidth}{\maincolumnwidth-\hintscolumnwidth-\separatorcolumnwidth-\separatorcolumnwidth}% \setlength{\doubleitemcolumnwidth}{\maincolumnwidth-\hintscolumnwidth-\separatorcolumnwidth-\separatorcolumnwidth}%
\setlength{\doubleitemcolumnwidth}{0.5\doubleitemcolumnwidth}% \setlength{\doubleitemcolumnwidth}{0.5\doubleitemcolumnwidth}%
\setlength{\tripleitemcolumnwidth}{\maincolumnwidth-2\hintscolumnwidth-3\separatorcolumnwidth}%
\setlength{\tripleitemcolumnwidth}{0.33\tripleitemcolumnwidth}%
\setlength{\listdoubleitemcolumnwidth}{\maincolumnwidth-\listitemsymbolwidth-\separatorcolumnwidth-\listitemsymbolwidth}% \setlength{\listdoubleitemcolumnwidth}{\maincolumnwidth-\listitemsymbolwidth-\separatorcolumnwidth-\listitemsymbolwidth}%
\setlength{\listdoubleitemcolumnwidth}{0.5\listdoubleitemcolumnwidth}% \setlength{\listdoubleitemcolumnwidth}{0.5\listdoubleitemcolumnwidth}%
\recompute@cvskillmatrix@lengths \recompute@cvskillmatrix@lengths
@ -102,19 +98,6 @@
\hspace*{\separatorcolumnwidth}% \hspace*{\separatorcolumnwidth}%
\begin{minipage}[t]{\doubleitemcolumnwidth}#5\end{minipage}}} \begin{minipage}[t]{\doubleitemcolumnwidth}#5\end{minipage}}}
\renewcommand*{\cvtripleitem}[7][.1em]{%
\cvitem[#1]{#2}{%
\begin{minipage}[t]{\tripleitemcolumnwidth}#3\end{minipage}%
\hfill% fill of \separatorcolumnwidth
\begin{minipage}[t]{\hintscolumnwidth}\raggedleft\hintstyle{#4}\end{minipage}%
\hspace*{\separatorcolumnwidth}%
\begin{minipage}[t]{\tripleitemcolumnwidth}#5\end{minipage}%
\hspace*{\separatorcolumnwidth}%
\begin{minipage}[t]{\hintscolumnwidth}\raggedleft\hintstyle{#6}\end{minipage}%
\hspace*{\separatorcolumnwidth}%
\begin{minipage}[t]{\tripleitemcolumnwidth}#7\end{minipage}}}
\renewcommand*{\cvlistitem}[2][.25em]{% \renewcommand*{\cvlistitem}[2][.25em]{%
\cvitem[#1]{}{\listitemsymbol\hspace{\listitemsymbolspace}\begin{minipage}[t]{\listitemcolumnwidth-\listitemsymbolspace}#2\end{minipage}}} \cvitem[#1]{}{\listitemsymbol\hspace{\listitemsymbolspace}\begin{minipage}[t]{\listitemcolumnwidth-\listitemsymbolspace}#2\end{minipage}}}

View file

@ -1,5 +1,5 @@
%% start of file `moderncvbodyiii.sty'. %% start of file `moderncvbodyiii.sty'.
%% Copyright 2006-2015 Xavier Danaux (xdanaux@gmail.com), 2020-2026 moderncv maintainers (github.com/moderncv). %% Copyright 2006-2015 Xavier Danaux (xdanaux@gmail.com), 2020-2022 moderncv maintainers (github.com/moderncv).
% %
% This work may be distributed and/or modified under the % This work may be distributed and/or modified under the
% conditions of the LaTeX Project Public License version 1.3c, % conditions of the LaTeX Project Public License version 1.3c,
@ -10,7 +10,7 @@
% identification % identification
%------------------------------------------------------------------------------- %-------------------------------------------------------------------------------
\NeedsTeXFormat{LaTeX2e} \NeedsTeXFormat{LaTeX2e}
\ProvidesPackage{moderncvbodyiii}[2026-01-31 v2.5.1 modern curriculum vitae and letter body variant: 3] \ProvidesPackage{moderncvbodyiii}[2022-02-21 v2.3.1 modern curriculum vitae and letter body variant: 3]
% rules type options: "fullrules", "shortrules", "mixedrules" (default) or "norules" % rules type options: "fullrules", "shortrules", "mixedrules" (default) or "norules"
\@initializeif{\if@fullrules}\@fullrulesfalse \@initializeif{\if@fullrules}\@fullrulesfalse
@ -83,8 +83,6 @@
\@initializelength{\maincolumnwidth} \@initializelength{\maincolumnwidth}
% used by \cvdoubleitem % used by \cvdoubleitem
\@initializelength{\doubleitemcolumnwidth} \@initializelength{\doubleitemcolumnwidth}
% used by \cvtripleitem
\@initializelength{\tripleitemcolumnwidth}
% used by \cvlistitem % used by \cvlistitem
\@initializelength{\listitemsymbolwidth} \settowidth{\listitemsymbolwidth}{\listitemsymbol} \@initializelength{\listitemsymbolwidth} \settowidth{\listitemsymbolwidth}{\listitemsymbol}
\@initializelength{\listitemcolumnwidth} \@initializelength{\listitemcolumnwidth}
@ -99,8 +97,6 @@
\setlength{\listitemcolumnwidth}{\maincolumnwidth-\listitemsymbolwidth}% \setlength{\listitemcolumnwidth}{\maincolumnwidth-\listitemsymbolwidth}%
\setlength{\doubleitemcolumnwidth}{\maincolumnwidth-\separatorcolumnwidth}% \setlength{\doubleitemcolumnwidth}{\maincolumnwidth-\separatorcolumnwidth}%
\setlength{\doubleitemcolumnwidth}{0.5\doubleitemcolumnwidth}% \setlength{\doubleitemcolumnwidth}{0.5\doubleitemcolumnwidth}%
\setlength{\tripleitemcolumnwidth}{\maincolumnwidth-2\separatorcolumnwidth}%
\setlength{\tripleitemcolumnwidth}{0.33\tripleitemcolumnwidth}%
\setlength{\listdoubleitemcolumnwidth}{\maincolumnwidth-\listitemsymbolwidth-\separatorcolumnwidth-\listitemsymbolwidth}% \setlength{\listdoubleitemcolumnwidth}{\maincolumnwidth-\listitemsymbolwidth-\separatorcolumnwidth-\listitemsymbolwidth}%
\setlength{\listdoubleitemcolumnwidth}{0.5\listdoubleitemcolumnwidth}% \setlength{\listdoubleitemcolumnwidth}{0.5\listdoubleitemcolumnwidth}%
\recompute@cvskillmatrix@lengths \recompute@cvskillmatrix@lengths
@ -160,14 +156,6 @@
\begin{minipage}[t]{\doubleitemcolumnwidth}\ifstrempty{#4}{}{\hintstyle{#4}: }#5\end{minipage}% \begin{minipage}[t]{\doubleitemcolumnwidth}\ifstrempty{#4}{}{\hintstyle{#4}: }#5\end{minipage}%
\par\addvspace{#1}} \par\addvspace{#1}}
\renewcommand*{\cvtripleitem}[7][.1em]{%
\begin{minipage}[t]{\tripleitemcolumnwidth}\hintstyle{#2}: #3\end{minipage}%
\hfill% fill of \separatorcolumnwidth
\begin{minipage}[t]{\tripleitemcolumnwidth}\hintstyle{#4}: #5\end{minipage}%
\hfill% fill of \separatorcolumnwidth
\begin{minipage}[t]{\tripleitemcolumnwidth}\ifstrempty{#6}{}{\hintstyle{#6}: }#7\end{minipage}%
\par\addvspace{#1}}
\renewcommand*{\cvlistitem}[2][.25em]{% \renewcommand*{\cvlistitem}[2][.25em]{%
\listitemsymbol\hspace{\listitemsymbolspace}\begin{minipage}[t]{\listitemcolumnwidth-\listitemsymbolspace}#2\end{minipage}% \listitemsymbol\hspace{\listitemsymbolspace}\begin{minipage}[t]{\listitemcolumnwidth-\listitemsymbolspace}#2\end{minipage}%
\par\addvspace{#1}} \par\addvspace{#1}}

View file

@ -1,5 +1,5 @@
%% start of file `moderncvbodyiv.sty'. %% start of file `moderncvbodyiv.sty'.
%% Copyright 2006-2015 Xavier Danaux (xdanaux@gmail.com), 2020-2026 moderncv maintainers (github.com/moderncv). %% Copyright 2006-2015 Xavier Danaux (xdanaux@gmail.com), 2020-2022 moderncv maintainers (github.com/moderncv).
% %
% This work may be distributed and/or modified under the % This work may be distributed and/or modified under the
% conditions of the LaTeX Project Public License version 1.3c, % conditions of the LaTeX Project Public License version 1.3c,
@ -10,7 +10,7 @@
% identification % identification
%------------------------------------------------------------------------------- %-------------------------------------------------------------------------------
\NeedsTeXFormat{LaTeX2e} \NeedsTeXFormat{LaTeX2e}
\ProvidesPackage{moderncvbodyiv}[2026-01-31 v2.5.1 modern curriculum vitae and letter body variant: 4] \ProvidesPackage{moderncvbodyiv}[2022-02-21 v2.3.1 modern curriculum vitae and letter body variant: 4]
%------------------------------------------------------------------------------- %-------------------------------------------------------------------------------
@ -49,11 +49,8 @@
\@initializelength{\listitemcolumnwidth} \@initializelength{\listitemcolumnwidth}
% used by \cvlistdoubleitem % used by \cvlistdoubleitem
\@initializelength{\listdoubleitemcolumnwidth} \@initializelength{\listdoubleitemcolumnwidth}
% used by \cvtripleitem
\@initializelength{\tripleitemcolumnwidth}
\@initializelength{\listitemsymbolspace} \setlength{\listitemsymbolspace}{0pt} \@initializelength{\listitemsymbolspace} \setlength{\listitemsymbolspace}{0pt}
% commands % commands
\renewcommand*{\recomputecvbodylengths}{% \renewcommand*{\recomputecvbodylengths}{%
% body lengths % body lengths
@ -61,8 +58,6 @@
\setlength{\listitemcolumnwidth}{\maincolumnwidth-\listitemsymbolwidth}% \setlength{\listitemcolumnwidth}{\maincolumnwidth-\listitemsymbolwidth}%
\setlength{\doubleitemcolumnwidth}{\maincolumnwidth-\separatorcolumnwidth}% \setlength{\doubleitemcolumnwidth}{\maincolumnwidth-\separatorcolumnwidth}%
\setlength{\doubleitemcolumnwidth}{0.5\doubleitemcolumnwidth}% \setlength{\doubleitemcolumnwidth}{0.5\doubleitemcolumnwidth}%
\setlength{\tripleitemcolumnwidth}{\maincolumnwidth-2\separatorcolumnwidth}%
\setlength{\tripleitemcolumnwidth}{0.33\tripleitemcolumnwidth}%
\setlength{\listdoubleitemcolumnwidth}{\maincolumnwidth-\listitemsymbolwidth-\separatorcolumnwidth-\listitemsymbolwidth}% \setlength{\listdoubleitemcolumnwidth}{\maincolumnwidth-\listitemsymbolwidth-\separatorcolumnwidth-\listitemsymbolwidth}%
\setlength{\listdoubleitemcolumnwidth}{0.5\listdoubleitemcolumnwidth}% \setlength{\listdoubleitemcolumnwidth}{0.5\listdoubleitemcolumnwidth}%
\recompute@cvskillmatrix@lengths \recompute@cvskillmatrix@lengths
@ -93,14 +88,6 @@
\begin{minipage}[t]{\doubleitemcolumnwidth}\ifthenelse{\equal{#4}{}}{}{\hintstyle{#4}: }#5\end{minipage}% \begin{minipage}[t]{\doubleitemcolumnwidth}\ifthenelse{\equal{#4}{}}{}{\hintstyle{#4}: }#5\end{minipage}%
\par\addvspace{#1}} \par\addvspace{#1}}
\renewcommand*{\cvtripleitem}[7][.1em]{%
\begin{minipage}[t]{\tripleitemcolumnwidth}\hintstyle{#2}: #3\end{minipage}%
\hfill% fill of \separatorcolumnwidth
\begin{minipage}[t]{\tripleitemcolumnwidth}\hintstyle{#4}: #5\end{minipage}%
\hfill% fill of \separatorcolumnwidth
\begin{minipage}[t]{\tripleitemcolumnwidth}\ifthenelse{\equal{#6}{}}{}{\hintstyle{#6}: }#7\end{minipage}%
\par\addvspace{#1}}
\renewcommand*{\cvlistitem}[2][.25em]{% \renewcommand*{\cvlistitem}[2][.25em]{%
\cvitem[#1]{}{\listitemsymbol\hspace{\listitemsymbolspace}\begin{minipage}[t]{\listitemcolumnwidth-\listitemsymbolspace}#2\end{minipage}}} \cvitem[#1]{}{\listitemsymbol\hspace{\listitemsymbolspace}\begin{minipage}[t]{\listitemcolumnwidth-\listitemsymbolspace}#2\end{minipage}}}

View file

@ -1,5 +1,5 @@
%% start of file `moderncvbodyv.sty'. %% start of file `moderncvbodyv.sty'.
%% Copyright 2015-2015 Xavier Danaux (xdanaux@gmail.com), 2020-2026 moderncv maintainers (github.com/moderncv). %% Copyright 2015-2015 Xavier Danaux (xdanaux@gmail.com), 2020-2022 moderncv maintainers (github.com/moderncv).
% %
% This work may be distributed and/or modified under the % This work may be distributed and/or modified under the
% conditions of the LaTeX Project Public License version 1.3c, % conditions of the LaTeX Project Public License version 1.3c,
@ -10,7 +10,7 @@
% identification % identification
%------------------------------------------------------------------------------- %-------------------------------------------------------------------------------
\NeedsTeXFormat{LaTeX2e} \NeedsTeXFormat{LaTeX2e}
\ProvidesPackage{moderncvbodyv}[2026-01-31 v2.5.1 modern curriculum vitae and letter body variant: 5] \ProvidesPackage{moderncvbodyv}[2022-02-21 v2.3.1 modern curriculum vitae and letter body variant: 5]
%------------------------------------------------------------------------------- %-------------------------------------------------------------------------------
@ -46,8 +46,6 @@
\@initializelength{\maincolumnwidth} \@initializelength{\maincolumnwidth}
% used by \cvdoubleitem % used by \cvdoubleitem
\@initializelength{\doubleitemcolumnwidth} \@initializelength{\doubleitemcolumnwidth}
% used by \cvtripleitem
\@initializelength{\tripleitemcolumnwidth}
% used by \cvlistitem % used by \cvlistitem
\@initializelength{\listitemsymbolwidth} \settowidth{\listitemsymbolwidth}{\listitemsymbol} \@initializelength{\listitemsymbolwidth} \settowidth{\listitemsymbolwidth}{\listitemsymbol}
\@initializelength{\listitemcolumnwidth} \@initializelength{\listitemcolumnwidth}
@ -64,8 +62,6 @@
\setlength{\listitemcolumnwidth}{\maincolumnwidth-\listitemsymbolwidth}% \setlength{\listitemcolumnwidth}{\maincolumnwidth-\listitemsymbolwidth}%
\setlength{\doubleitemcolumnwidth}{\maincolumnwidth-\separatorcolumnwidth}% \setlength{\doubleitemcolumnwidth}{\maincolumnwidth-\separatorcolumnwidth}%
\setlength{\doubleitemcolumnwidth}{0.5\doubleitemcolumnwidth}% \setlength{\doubleitemcolumnwidth}{0.5\doubleitemcolumnwidth}%
\setlength{\tripleitemcolumnwidth}{\maincolumnwidth-2\separatorcolumnwidth}%
\setlength{\tripleitemcolumnwidth}{0.33\tripleitemcolumnwidth}%
\setlength{\listdoubleitemcolumnwidth}{\maincolumnwidth-\listitemsymbolwidth-\separatorcolumnwidth-\listitemsymbolwidth}% \setlength{\listdoubleitemcolumnwidth}{\maincolumnwidth-\listitemsymbolwidth-\separatorcolumnwidth-\listitemsymbolwidth}%
\setlength{\listdoubleitemcolumnwidth}{0.5\listdoubleitemcolumnwidth}% \setlength{\listdoubleitemcolumnwidth}{0.5\listdoubleitemcolumnwidth}%
\recompute@cvskillmatrix@lengths \recompute@cvskillmatrix@lengths
@ -77,8 +73,7 @@
\addvspace{2.5ex}% \addvspace{2.5ex}%
\phantomsection{}% reset the anchor for hyperrefs \phantomsection{}% reset the anchor for hyperrefs
\addcontentsline{toc}{section}{#2}% \addcontentsline{toc}{section}{#2}%
% minipage for correct spacing with multiline sections #69 \noindent\rlap{\@cvitem{\raggedleft\sectionstyle{#2}}{}}%
\noindent\rlap{\@cvitem{\begin{minipage}[t][1ex]{\hintscolumnwidth}\raggedleft\sectionstyle{#2}\end{minipage}}{}}%
\nobreak\@afterheading\@aftersectiontrue\ignorespaces} \nobreak\@afterheading\@aftersectiontrue\ignorespaces}
%\@initializeif{\if@aftersubsection}\@aftersubsectionfalse% %\@initializeif{\if@aftersubsection}\@aftersubsectionfalse%
@ -89,8 +84,7 @@
\par\ignorespaces\fi% \par\ignorespaces\fi%
\phantomsection{}% reset the anchor for hyperrefs \phantomsection{}% reset the anchor for hyperrefs
\addcontentsline{toc}{subsection}{#2}% \addcontentsline{toc}{subsection}{#2}%
% minipage for correct spacing with multiline subsections #69 \noindent\rlap{\@cvitem{\if@aftersection\else\@moderncvstrut{4pt}{24pt}\fi\raggedleft\subsectionstyle{#2}}{}}%
\noindent\rlap{\@cvitem{\begin{minipage}[t][1ex]{\hintscolumnwidth}\if@aftersection\else\@moderncvstrut{4pt}{24pt}\fi\raggedleft\subsectionstyle{#2}\end{minipage}}{}}%
\nobreak\@afterheading\@aftersectiontrue\ignorespaces} \nobreak\@afterheading\@aftersectiontrue\ignorespaces}
\renewcommand*{\cvitem}[3][.5ex]{% \renewcommand*{\cvitem}[3][.5ex]{%
@ -111,11 +105,11 @@
\if@aftersection\else% \if@aftersection\else%
\vspace*{-\separatorrulewidth}\fi% HACK; I don't understand where the space is coming from, nor what it's exact value is :( \vspace*{-\separatorrulewidth}\fi% HACK; I don't understand where the space is coming from, nor what it's exact value is :(
\noindent% \noindent%
% \setlength{\fboxsep}{0pt}\framebox{% start of debugging % \setlength{\fboxsep}{0pt}\framebox{% start of debuging
\begin{tabular}[t]{@{}p{\hintscolumnwidth}@{\hspace{\separatorcolumnwidth}}|@{\hspace{\separatorcolumnwidth}}p{\maincolumnwidth}@{}}% \begin{tabular}[t]{@{}p{\hintscolumnwidth}@{\hspace{\separatorcolumnwidth}}|@{\hspace{\separatorcolumnwidth}}p{\maincolumnwidth}@{}}%
\@moderncvstrut{4pt}{16pt}#2 &#3\\[#1]% the spacing needs to be inside the cell for the vertical rule to extend correctly \@moderncvstrut{4pt}{16pt}#2 &#3\\[#1]% the spacing needs to be inside the cell for the vertical rule to extend correctly
\end{tabular}% \end{tabular}%
% }% end of debugging % }% end of debuging
\par\@aftersectionfalse\ignorespaces} \par\@aftersectionfalse\ignorespaces}
\renewcommand*{\cvdoubleitem}[5][.5ex]{% \renewcommand*{\cvdoubleitem}[5][.5ex]{%
@ -124,14 +118,6 @@
\hfill% fill of \separatorcolumnwidth \hfill% fill of \separatorcolumnwidth
\begin{minipage}[t]{\doubleitemcolumnwidth}\ifthenelse{\equal{#4}{}}{}{\hintstyle{#4}: }#5\end{minipage}}} \begin{minipage}[t]{\doubleitemcolumnwidth}\ifthenelse{\equal{#4}{}}{}{\hintstyle{#4}: }#5\end{minipage}}}
\renewcommand*{\cvtripleitem}[7][.1ex]{%
\@cvitem[#1]{}{%
\begin{minipage}[t]{\tripleitemcolumnwidth}\hintstyle{#2}: #3\end{minipage}%
\hfill% fill of \separatorcolumnwidth
\begin{minipage}[t]{\tripleitemcolumnwidth}\hintstyle{#4}: #5\end{minipage}%
\hfill% fill of \separatorcolumnwidth
\begin{minipage}[t]{\tripleitemcolumnwidth}\ifthenelse{\equal{#6}{}}{}{\hintstyle{#6}: }#7\end{minipage}}}
\renewcommand*{\cvlistitem}[2][.5ex]{% \renewcommand*{\cvlistitem}[2][.5ex]{%
\@cvitem[#1]{}{\listitemsymbol\hspace{\listitemsymbolspace}\begin{minipage}[t]{\listitemcolumnwidth-\listitemsymbolspace}#2\end{minipage}}} \@cvitem[#1]{}{\listitemsymbol\hspace{\listitemsymbolspace}\begin{minipage}[t]{\listitemcolumnwidth-\listitemsymbolspace}#2\end{minipage}}}

View file

@ -1,6 +1,6 @@
%% start of file `moderncvbodyvi.sty'. %% start of file `moderncvbodyvi.sty'.
%% Copyright 2006-2015 Xavier Danaux (xdanaux@gmail.com). %% Copyright 2006-2015 Xavier Danaux (xdanaux@gmail.com).
%% Copyright 2023 Javier Lopez-Gomez (javier.lopez.gomez@proton.me), 2024-2026 moderncv maintainers (github.com/moderncv). %% Copyright 2023 Javier Lopez-Gomez (javier.lopez.gomez@proton.me).
% %
% This work may be distributed and/or modified under the % This work may be distributed and/or modified under the
% conditions of the LaTeX Project Public License version 1.3c, % conditions of the LaTeX Project Public License version 1.3c,
@ -11,7 +11,7 @@
% identification % identification
%------------------------------------------------------------------------------- %-------------------------------------------------------------------------------
\NeedsTeXFormat{LaTeX2e} \NeedsTeXFormat{LaTeX2e}
\ProvidesPackage{moderncvbodyvi}[2026-01-31 v2.5.1 modern curriculum vitae and letter body variant: 6] \ProvidesPackage{moderncvbodyvi}[2023/11/21 v2.0.0 modern curriculum vitae and letter body variant: 6]
%------------------------------------------------------------------------------- %-------------------------------------------------------------------------------
@ -48,8 +48,6 @@
\@initializelength{\maincolumnwidth} \@initializelength{\maincolumnwidth}
% used by \cvdoubleitem % used by \cvdoubleitem
\@initializelength{\doubleitemcolumnwidth} \@initializelength{\doubleitemcolumnwidth}
% used by \cvtripleitem
\@initializelength{\tripleitemcolumnwidth}
% used by \cvlistitem % used by \cvlistitem
\@initializelength{\listitemsymbolwidth} \settowidth{\listitemsymbolwidth}{\listitemsymbol} \@initializelength{\listitemsymbolwidth} \settowidth{\listitemsymbolwidth}{\listitemsymbol}
\@initializelength{\listitemcolumnwidth} \@initializelength{\listitemcolumnwidth}
@ -66,8 +64,6 @@
\setlength{\listitemcolumnwidth}{\maincolumnwidth-\listitemsymbolwidth}% \setlength{\listitemcolumnwidth}{\maincolumnwidth-\listitemsymbolwidth}%
\setlength{\doubleitemcolumnwidth}{\maincolumnwidth-\hintscolumnwidth-\separatorcolumnwidth-\separatorcolumnwidth}% \setlength{\doubleitemcolumnwidth}{\maincolumnwidth-\hintscolumnwidth-\separatorcolumnwidth-\separatorcolumnwidth}%
\setlength{\doubleitemcolumnwidth}{0.5\doubleitemcolumnwidth}% \setlength{\doubleitemcolumnwidth}{0.5\doubleitemcolumnwidth}%
\setlength{\tripleitemcolumnwidth}{\maincolumnwidth-2\hintscolumnwidth-3\separatorcolumnwidth}%
\setlength{\tripleitemcolumnwidth}{0.33\tripleitemcolumnwidth}%
\setlength{\listdoubleitemcolumnwidth}{\maincolumnwidth-\listitemsymbolwidth-\separatorcolumnwidth-\listitemsymbolwidth}% \setlength{\listdoubleitemcolumnwidth}{\maincolumnwidth-\listitemsymbolwidth-\separatorcolumnwidth-\listitemsymbolwidth}%
\setlength{\listdoubleitemcolumnwidth}{0.5\listdoubleitemcolumnwidth}% \setlength{\listdoubleitemcolumnwidth}{0.5\listdoubleitemcolumnwidth}%
\recompute@cvskillmatrix@lengths \recompute@cvskillmatrix@lengths
@ -109,18 +105,6 @@
\hspace*{\separatorcolumnwidth}% \hspace*{\separatorcolumnwidth}%
\begin{minipage}[t]{\doubleitemcolumnwidth}#5\end{minipage}}} \begin{minipage}[t]{\doubleitemcolumnwidth}#5\end{minipage}}}
\renewcommand*{\cvtripleitem}[7][.1em]{%
\cvitem[#1]{#2}{%
\begin{minipage}[t]{\tripleitemcolumnwidth}#3\end{minipage}%
\hfill% fill of \separatorcolumnwidth
\begin{minipage}[t]{\hintscolumnwidth}\raggedleft\hintstyle{#4}\end{minipage}%
\hspace*{\separatorcolumnwidth}%
\begin{minipage}[t]{\tripleitemcolumnwidth}#5\end{minipage}%
\hspace*{\separatorcolumnwidth}%
\begin{minipage}[t]{\hintscolumnwidth}\raggedleft\hintstyle{#6}\end{minipage}%
\hspace*{\separatorcolumnwidth}%
\begin{minipage}[t]{\tripleitemcolumnwidth}#7\end{minipage}}}
\renewcommand*{\cvlistitem}[2][.25em]{% \renewcommand*{\cvlistitem}[2][.25em]{%
\cvitem[#1]{}{\listitemsymbol\hspace{\listitemsymbolspace}\begin{minipage}[t]{\listitemcolumnwidth-\listitemsymbolspace}#2\end{minipage}}} \cvitem[#1]{}{\listitemsymbol\hspace{\listitemsymbolspace}\begin{minipage}[t]{\listitemcolumnwidth-\listitemsymbolspace}#2\end{minipage}}}

View file

@ -1,5 +1,5 @@
%% start of file `moderncvcollection.sty'. %% start of file `moderncvcollection.sty'.
%% Copyright 2013-2015 Xavier Danaux (xdanaux@gmail.com), 2020-2026 moderncv maintainers (github.com/moderncv). %% Copyright 2013-2015 Xavier Danaux (xdanaux@gmail.com), 2020-2022 moderncv maintainers (github.com/moderncv).
% %
% This work may be distributed and/or modified under the % This work may be distributed and/or modified under the
% conditions of the LaTeX Project Public License version 1.3c, % conditions of the LaTeX Project Public License version 1.3c,
@ -10,7 +10,7 @@
% identification % identification
%------------------------------------------------------------------------------- %-------------------------------------------------------------------------------
\NeedsTeXFormat{LaTeX2e} \NeedsTeXFormat{LaTeX2e}
\ProvidesPackage{moderncvcollection}[2026-01-31 v2.5.1 moderncv collections] \ProvidesPackage{moderncvcollection}[2022-02-21 v2.3.1 moderncv collections]
%------------------------------------------------------------------------------- %-------------------------------------------------------------------------------

View file

@ -1,5 +1,5 @@
%% start of file `moderncvcolorblack.sty'. %% start of file `moderncvcolorblack.sty'.
%% Copyright 2006-2015 Xavier Danaux (xdanaux@gmail.com), 2020-2026 moderncv maintainers (github.com/moderncv). %% Copyright 2006-2015 Xavier Danaux (xdanaux@gmail.com), 2020-2022 moderncv maintainers (github.com/moderncv).
% %
% This work may be distributed and/or modified under the % This work may be distributed and/or modified under the
% conditions of the LaTeX Project Public License version 1.3c, % conditions of the LaTeX Project Public License version 1.3c,
@ -10,21 +10,18 @@
% identification % identification
%------------------------------------------------------------------------------- %-------------------------------------------------------------------------------
\NeedsTeXFormat{LaTeX2e} \NeedsTeXFormat{LaTeX2e}
\ProvidesPackage{moderncvcolorblack}[2026-01-31 v2.5.1 modern curriculum vitae and letter color scheme: black] \ProvidesPackage{moderncvcolorblack}[2022-02-21 v2.3.1 modern curriculum vitae and letter color scheme: black]
%------------------------------------------------------------------------------- %-------------------------------------------------------------------------------
% color scheme definition % color scheme definition
%------------------------------------------------------------------------------- %-------------------------------------------------------------------------------
\usepackage{moderncvcolors} \input{commons/colors}
\colorlet{color0}{black}% black
\colorlet{color1}{black}% black
\colorlet{color2}{black}% black
\colorlet{color0}{black}
\colorlet{color1}{black}
\colorlet{color2}{black}
\colorlet{headTL}{lightblack}
\colorlet{headBR}{color1}
\colorlet{headtext}{white}
\colorlet{headhr}{color2}
\endinput \endinput

View file

@ -1,5 +1,5 @@
%% start of file `moderncvcolorblue.sty'. %% start of file `moderncvcolorblue.sty'.
%% Copyright 2006-2015 Xavier Danaux (xdanaux@gmail.com), 2020-2026 moderncv maintainers (github.com/moderncv). %% Copyright 2006-2015 Xavier Danaux (xdanaux@gmail.com), 2020-2022 moderncv maintainers (github.com/moderncv).
% %
% This work may be distributed and/or modified under the % This work may be distributed and/or modified under the
% conditions of the LaTeX Project Public License version 1.3c, % conditions of the LaTeX Project Public License version 1.3c,
@ -10,21 +10,17 @@
% identification % identification
%------------------------------------------------------------------------------- %-------------------------------------------------------------------------------
\NeedsTeXFormat{LaTeX2e} \NeedsTeXFormat{LaTeX2e}
\ProvidesPackage{moderncvcolorblue}[2026-01-31 v2.5.1 modern curriculum vitae and letter color scheme: blue] \ProvidesPackage{moderncvcolorblue}[2022-02-21 v2.3.1 modern curriculum vitae and letter color scheme: blue]
%------------------------------------------------------------------------------- %-------------------------------------------------------------------------------
% color scheme definition % color scheme definition
%------------------------------------------------------------------------------- %-------------------------------------------------------------------------------
\usepackage{moderncvcolors} \input{commons/colors}
\colorlet{color0}{black} \colorlet{color0}{black}% black
\colorlet{color1}{lightblue} \colorlet{color1}{lightblue}% light blue
\colorlet{color2}{darkgrey} \colorlet{color2}{darkgrey}% dark grey
\colorlet{headTL}{lightskyblue}
\colorlet{headBR}{color1}
\colorlet{headtext}{white}
\colorlet{headhr}{color2}
\endinput \endinput

View file

@ -1,5 +1,5 @@
%% start of file `moderncvcolorburgundy.sty'. %% start of file `moderncvcolorburgundy.sty'.
%% Copyright 2006-2015 Xavier Danaux (xdanaux@gmail.com), 2020-2026 moderncv maintainers (github.com/moderncv). %% Copyright 2006-2015 Xavier Danaux (xdanaux@gmail.com), 2020-2022 moderncv maintainers (github.com/moderncv).
% %
% This work may be distributed and/or modified under the % This work may be distributed and/or modified under the
% conditions of the LaTeX Project Public License version 1.3c, % conditions of the LaTeX Project Public License version 1.3c,
@ -10,21 +10,18 @@
% identification % identification
%------------------------------------------------------------------------------- %-------------------------------------------------------------------------------
\NeedsTeXFormat{LaTeX2e} \NeedsTeXFormat{LaTeX2e}
\ProvidesPackage{moderncvcolorburgundy}[2026-01-31 v2.5.1 modern curriculum vitae and letter color scheme: burgundy] \ProvidesPackage{moderncvcolorburgundy}[2022-02-21 v2.3.1 modern curriculum vitae and letter color scheme: burgundy]
%------------------------------------------------------------------------------- %-------------------------------------------------------------------------------
% color scheme definition % color scheme definition
%------------------------------------------------------------------------------- %-------------------------------------------------------------------------------
\usepackage{moderncvcolors} \input{commons/colors}
\colorlet{color0}{black}% black
\colorlet{color1}{burgundy}% burgundy
\colorlet{color2}{darkgrey}% dark grey
\colorlet{color0}{black}
\colorlet{color1}{burgundy}
\colorlet{color2}{darkgrey}
\colorlet{headTL}{darkred}
\colorlet{headBR}{color1}
\colorlet{headtext}{white}
\colorlet{headhr}{color2}
\endinput \endinput

View file

@ -1,6 +1,6 @@
%% start of file `moderncvcolorcerulean.sty'. %% start of file `moderncvcolorcerulean.sty'.
%% Copyright 2006-2015 Xavier Danaux (xdanaux@gmail.com). %% Copyright 2006-2015 Xavier Danaux (xdanaux@gmail.com).
%% Copyright 2023 Javier Lopez-Gomez (javier.lopez.gomez@proton.me), 2024-2024 moderncv maintainers. %% Copyright 2023 Javier Lopez-Gomez (javier.lopez.gomez@proton.me).
% %
% This work may be distributed and/or modified under the % This work may be distributed and/or modified under the
% conditions of the LaTeX Project Public License version 1.3c, % conditions of the LaTeX Project Public License version 1.3c,
@ -11,22 +11,21 @@
% identification % identification
%------------------------------------------------------------------------------- %-------------------------------------------------------------------------------
\NeedsTeXFormat{LaTeX2e} \NeedsTeXFormat{LaTeX2e}
\ProvidesPackage{moderncvcolorcerulean}[2026-01-31 v2.5.1 modern curriculum vitae and letter color scheme: cerulean] \ProvidesPackage{moderncvcolorcerulean}[2023/11/21 v2.0.0 modern curriculum vitae and letter color scheme: cerulean]
%------------------------------------------------------------------------------- %-------------------------------------------------------------------------------
% color scheme definition % color scheme definition
%------------------------------------------------------------------------------- %-------------------------------------------------------------------------------
\usepackage{moderncvcolors} \definecolor{color0}{rgb}{0,0,0}% black
\definecolor{color1}{HTML}{0081a7}% cerulean
\colorlet{color0}{black} \definecolor{color2}{HTML}{4d908e}% dark cyan
\colorlet{color1}{cerulean} \definecolor{headTL}{HTML}{00afb9}% verdigris
\colorlet{color2}{darkcyan}
\colorlet{headTL}{verdigris}
\colorlet{headBR}{color1} \colorlet{headBR}{color1}
\colorlet{headtext}{white} \definecolor{headtext}{HTML}{ffffff}% white
\colorlet{headhr}{color2} \colorlet{headhr}{color2}
\endinput \endinput

View file

@ -1,5 +1,5 @@
%% start of file `moderncvcolorgreen.sty'. %% start of file `moderncvcolorgreen.sty'.
%% Copyright 2006-2015 Xavier Danaux (xdanaux@gmail.com), 2020-2026 moderncv maintainers (github.com/moderncv). %% Copyright 2006-2015 Xavier Danaux (xdanaux@gmail.com), 2020-2022 moderncv maintainers (github.com/moderncv).
% %
% This work may be distributed and/or modified under the % This work may be distributed and/or modified under the
% conditions of the LaTeX Project Public License version 1.3c, % conditions of the LaTeX Project Public License version 1.3c,
@ -10,21 +10,17 @@
% identification % identification
%------------------------------------------------------------------------------- %-------------------------------------------------------------------------------
\NeedsTeXFormat{LaTeX2e} \NeedsTeXFormat{LaTeX2e}
\ProvidesPackage{moderncvcolorgreen}[2026-01-31 v2.5.1 modern curriculum vitae and letter color scheme: green] \ProvidesPackage{moderncvcolorgreen}[2022-02-21 v2.3.1 modern curriculum vitae and letter color scheme: green]
%------------------------------------------------------------------------------- %-------------------------------------------------------------------------------
% color scheme definition % color scheme definition
%------------------------------------------------------------------------------- %-------------------------------------------------------------------------------
\usepackage{moderncvcolors} \input{commons/colors}
\colorlet{color0}{black} \colorlet{color0}{black}% black
\colorlet{color1}{green} \colorlet{color1}{green}% green
\colorlet{color2}{darkgrey} \colorlet{color2}{darkgrey}% dark grey
\colorlet{headTL}{palegreen}
\colorlet{headBR}{color1}
\colorlet{headtext}{white}
\colorlet{headhr}{color2}
\endinput \endinput

View file

@ -1,5 +1,5 @@
%% start of file `moderncvcolorgrey.sty'. %% start of file `moderncvcolorgrey.sty'.
%% Copyright 2006-2015 Xavier Danaux (xdanaux@gmail.com), 2020-2026 moderncv maintainers (github.com/moderncv). %% Copyright 2006-2015 Xavier Danaux (xdanaux@gmail.com), 2020-2022 moderncv maintainers (github.com/moderncv).
% %
% This work may be distributed and/or modified under the % This work may be distributed and/or modified under the
% conditions of the LaTeX Project Public License version 1.3c, % conditions of the LaTeX Project Public License version 1.3c,
@ -10,21 +10,18 @@
% identification % identification
%------------------------------------------------------------------------------- %-------------------------------------------------------------------------------
\NeedsTeXFormat{LaTeX2e} \NeedsTeXFormat{LaTeX2e}
\ProvidesPackage{moderncvcolorgrey}[2026-01-31 v2.5.1 modern curriculum vitae and letter color scheme: grey] \ProvidesPackage{moderncvcolorgrey}[2022-02-21 v2.3.1 modern curriculum vitae and letter color scheme: grey]
%------------------------------------------------------------------------------- %-------------------------------------------------------------------------------
% color scheme definition % color scheme definition
%------------------------------------------------------------------------------- %-------------------------------------------------------------------------------
\usepackage{moderncvcolors} \input{commons/colors}
\colorlet{color0}{black}% black
\colorlet{color1}{darkgrey}% dark grey
\colorlet{color2}{darkgrey}% dark grey
\colorlet{color0}{black}
\colorlet{color1}{darkgrey}
\colorlet{color2}{darkgrey}
\colorlet{headTL}{lightgrey}
\colorlet{headBR}{color1}
\colorlet{headtext}{white}
\colorlet{headhr}{color2}
\endinput \endinput

View file

@ -1,5 +1,5 @@
%% start of file `moderncvcolororange.sty'. %% start of file `moderncvcolororange.sty'.
%% Copyright 2006-2015 Xavier Danaux (xdanaux@gmail.com), 2020-2026 moderncv maintainers (github.com/moderncv). %% Copyright 2006-2015 Xavier Danaux (xdanaux@gmail.com), 2020-2022 moderncv maintainers (github.com/moderncv).
% %
% This work may be distributed and/or modified under the % This work may be distributed and/or modified under the
% conditions of the LaTeX Project Public License version 1.3c, % conditions of the LaTeX Project Public License version 1.3c,
@ -10,21 +10,18 @@
% identification % identification
%------------------------------------------------------------------------------- %-------------------------------------------------------------------------------
\NeedsTeXFormat{LaTeX2e} \NeedsTeXFormat{LaTeX2e}
\ProvidesPackage{moderncvcolororange}[2026-01-31 v2.5.1 modern curriculum vitae and letter color scheme: orange] \ProvidesPackage{moderncvcolororange}[2022-02-21 v2.3.1 modern curriculum vitae and letter color scheme: orange]
%------------------------------------------------------------------------------- %-------------------------------------------------------------------------------
% color scheme definition % color scheme definition
%------------------------------------------------------------------------------- %-------------------------------------------------------------------------------
\usepackage{moderncvcolors} \input{commons/colors}
\colorlet{color0}{black}% black
\colorlet{color1}{orange}% orange
\colorlet{color2}{darkgrey}% dark grey
\colorlet{color0}{black}
\colorlet{color1}{orange}
\colorlet{color2}{darkgrey}
\colorlet{headTL}{lightorange}
\colorlet{headBR}{color1}
\colorlet{headtext}{white}
\colorlet{headhr}{color2}
\endinput \endinput

View file

@ -1,5 +1,5 @@
%% start of file `moderncvcolorpurple.sty'. %% start of file `moderncvcolorpurple.sty'.
%% Copyright 2006-2015 Xavier Danaux (xdanaux@gmail.com), 2020-2026 moderncv maintainers (github.com/moderncv). %% Copyright 2006-2015 Xavier Danaux (xdanaux@gmail.com), 2020-2022 moderncv maintainers (github.com/moderncv).
% %
% This work may be distributed and/or modified under the % This work may be distributed and/or modified under the
% conditions of the LaTeX Project Public License version 1.3c, % conditions of the LaTeX Project Public License version 1.3c,
@ -10,21 +10,17 @@
% identification % identification
%------------------------------------------------------------------------------- %-------------------------------------------------------------------------------
\NeedsTeXFormat{LaTeX2e} \NeedsTeXFormat{LaTeX2e}
\ProvidesPackage{moderncvcolorpurple}[2026-01-31 v2.5.1 modern curriculum vitae and letter color scheme: purple] \ProvidesPackage{moderncvcolorpurple}[2022-02-21 v2.3.1 modern curriculum vitae and letter color scheme: purple]
%------------------------------------------------------------------------------- %-------------------------------------------------------------------------------
% color scheme definition % color scheme definition
%------------------------------------------------------------------------------- %-------------------------------------------------------------------------------
\usepackage{moderncvcolors} \input{commons/colors}
\colorlet{color0}{black} \colorlet{color0}{black}% black
\colorlet{color1}{purple} \colorlet{color1}{purple}% purple
\colorlet{color2}{darkgrey} \colorlet{color2}{darkgrey}% dark grey
\colorlet{headTL}{lavender}
\colorlet{headBR}{color1}
\colorlet{headtext}{white}
\colorlet{headhr}{color2}
\endinput \endinput

View file

@ -1,5 +1,5 @@
%% start of file `moderncvcolorred.sty'. %% start of file `moderncvcolorred.sty'.
%% Copyright 2006-2015 Xavier Danaux (xdanaux@gmail.com), 2020-2026 moderncv maintainers (github.com/moderncv). %% Copyright 2006-2015 Xavier Danaux (xdanaux@gmail.com), 2020-2022 moderncv maintainers (github.com/moderncv).
% %
% This work may be distributed and/or modified under the % This work may be distributed and/or modified under the
% conditions of the LaTeX Project Public License version 1.3c, % conditions of the LaTeX Project Public License version 1.3c,
@ -10,21 +10,17 @@
% identification % identification
%------------------------------------------------------------------------------- %-------------------------------------------------------------------------------
\NeedsTeXFormat{LaTeX2e} \NeedsTeXFormat{LaTeX2e}
\ProvidesPackage{moderncvcolorred}[2026-01-31 v2.5.1 modern curriculum vitae and letter color scheme: red] \ProvidesPackage{moderncvcolorred}[2022-02-21 v2.3.1 modern curriculum vitae and letter color scheme: red]
%------------------------------------------------------------------------------- %-------------------------------------------------------------------------------
% color scheme definition % color scheme definition
%------------------------------------------------------------------------------- %-------------------------------------------------------------------------------
\usepackage{moderncvcolors} \input{commons/colors}
\colorlet{color0}{black} \colorlet{color0}{black}% black
\colorlet{color1}{red} \colorlet{color1}{red}% red
\colorlet{color2}{darkgrey} \colorlet{color2}{darkgrey}% dark grey
\colorlet{headTL}{firebrick}
\colorlet{headBR}{color1}
\colorlet{headtext}{white}
\colorlet{headhr}{color2}
\endinput \endinput

View file

@ -1,5 +1,5 @@
%% start of file `moderncvcompatibility.sty'. %% start of file `moderncvcompatibility.sty'.
%% Copyright 2006-2015 Xavier Danaux (xdanaux@gmail.com), 2020-2026 moderncv maintainers (github.com/moderncv). %% Copyright 2006-2015 Xavier Danaux (xdanaux@gmail.com), 2020-2022 moderncv maintainers (github.com/moderncv).
% %
% This work may be distributed and/or modified under the % This work may be distributed and/or modified under the
% conditions of the LaTeX Project Public License version 1.3c, % conditions of the LaTeX Project Public License version 1.3c,
@ -10,7 +10,7 @@
% identification % identification
%------------------------------------------------------------------------------- %-------------------------------------------------------------------------------
\NeedsTeXFormat{LaTeX2e} \NeedsTeXFormat{LaTeX2e}
\ProvidesPackage{moderncvcompatibility}[2026-01-31 v2.5.1 modern curriculum vitae and letter compatibility patches] \ProvidesPackage{moderncvcompatibility}[2022-02-21 v2.3.1 modern curriculum vitae and letter compatibility patches]
%------------------------------------------------------------------------------- %-------------------------------------------------------------------------------

View file

@ -1,5 +1,5 @@
%% start of file `moderncvdebugtools.sty'. %% start of file `moderncvdebugtools.sty'.
%% Copyright 2013-2015 Xavier Danaux (xdanaux@gmail.com), 2020-2026 moderncv maintainers (github.com/moderncv). %% Copyright 2013-2015 Xavier Danaux (xdanaux@gmail.com), 2020-2022 moderncv maintainers (github.com/moderncv).
% %
% This work may be distributed and/or modified under the % This work may be distributed and/or modified under the
% conditions of the LaTeX Project Public License version 1.3c, % conditions of the LaTeX Project Public License version 1.3c,
@ -10,14 +10,13 @@
% identification % identification
%------------------------------------------------------------------------------- %-------------------------------------------------------------------------------
\NeedsTeXFormat{LaTeX2e} \NeedsTeXFormat{LaTeX2e}
\ProvidesPackage{moderncvdebugtools}[2026-01-31 v2.5.1 modern curriculum vitae and letter debug tools] \ProvidesPackage{moderncvdebugtools}[2022-02-21 v2.3.1 modern curriculum vitae and letter debug tools]
%------------------------------------------------------------------------------- %-------------------------------------------------------------------------------
% required packages % required packages
%------------------------------------------------------------------------------- %-------------------------------------------------------------------------------
\RequirePackage{tikz} \RequirePackage{tikz}
\usetikzlibrary{babel}
%------------------------------------------------------------------------------- %-------------------------------------------------------------------------------

View file

@ -1,5 +1,5 @@
%% start of file `moderncvfooti.sty'. %% start of file `moderncvfooti.sty'.
%% Copyright 2006-2015 Xavier Danaux (xdanaux@gmail.com), 2020-2026 moderncv maintainers (github.com/moderncv). %% Copyright 2006-2015 Xavier Danaux (xdanaux@gmail.com), 2020-2022 moderncv maintainers (github.com/moderncv).
% %
% This work may be distributed and/or modified under the % This work may be distributed and/or modified under the
% conditions of the LaTeX Project Public License version 1.3c, % conditions of the LaTeX Project Public License version 1.3c,
@ -10,7 +10,7 @@
% identification % identification
%------------------------------------------------------------------------------- %-------------------------------------------------------------------------------
\NeedsTeXFormat{LaTeX2e} \NeedsTeXFormat{LaTeX2e}
\ProvidesPackage{moderncvfooti}[2026-01-31 v2.5.1 modern curriculum vitae and letter footer variant: 1] \ProvidesPackage{moderncvfooti}[2022-02-21 v2.3.1 modern curriculum vitae and letter footer variant: 1]
%------------------------------------------------------------------------------- %-------------------------------------------------------------------------------
@ -69,7 +69,7 @@
%------------------------------------------------------------------------------- %-------------------------------------------------------------------------------
% resume foot definition % resume foot definition
%------------------------------------------------------------------------------- %-------------------------------------------------------------------------------
% lengths % lenghts
\renewcommand*{\recomputecvfootlengths}{\recomputefootlengths} \renewcommand*{\recomputecvfootlengths}{\recomputefootlengths}
% commands % commands

View file

@ -1,5 +1,5 @@
%% start of file `moderncvheadi.sty'. %% start of file `moderncvheadi.sty'.
%% Copyright 2006-2015 Xavier Danaux (xdanaux@gmail.com), 2020-2026 moderncv maintainers (github.com/moderncv). %% Copyright 2006-2015 Xavier Danaux (xdanaux@gmail.com), 2020-2022 moderncv maintainers (github.com/moderncv).
% %
% This work may be distributed and/or modified under the % This work may be distributed and/or modified under the
% conditions of the LaTeX Project Public License version 1.3c, % conditions of the LaTeX Project Public License version 1.3c,
@ -10,7 +10,7 @@
% identification % identification
%------------------------------------------------------------------------------- %-------------------------------------------------------------------------------
\NeedsTeXFormat{LaTeX2e} \NeedsTeXFormat{LaTeX2e}
\ProvidesPackage{moderncvheadi}[2026-01-31 v2.5.1 modern curriculum vitae and letter header variant: 1] \ProvidesPackage{moderncvheadi}[2022-02-21 v2.3.1 modern curriculum vitae and letter header variant: 1]
% details options: "details" (default) or "nodetails" % details options: "details" (default) or "nodetails"
\@initializeif{\if@details}\@detailsfalse \@initializeif{\if@details}\@detailsfalse
@ -92,7 +92,7 @@
\ifthenelse{\equal{\@homepageprotocol}{http}}{\httplink{\@homepage}}{\httpslink{\@homepage}}}% \ifthenelse{\equal{\@homepageprotocol}{http}}{\httplink{\@homepage}}{\httpslink{\@homepage}}}%
\socialsdetails% needs to be pre-rendered as loops and tabulars seem to conflict \socialsdetails% needs to be pre-rendered as loops and tabulars seem to conflict
\ifthenelse{\isundefined{\@extrainfo}}{}{\makenewline\@extrainfo}% \ifthenelse{\isundefined{\@extrainfo}}{}{\makenewline\@extrainfo}%
\end{tabular}% \end{tabular}
}\fi% }\fi%
% optional photo (pre-rendering) % optional photo (pre-rendering)
\@initializebox{\makecvheadpicturebox}% \@initializebox{\makecvheadpicturebox}%
@ -106,9 +106,9 @@
\setlength{\fboxrule}{\@photoframewidth}% \setlength{\fboxrule}{\@photoframewidth}%
\ifdim\@photoframewidth=0pt% \ifdim\@photoframewidth=0pt%
\setlength{\fboxsep}{0pt}\fi% \setlength{\fboxsep}{0pt}\fi%
\framebox{\includegraphics[width=\@photowidth]{\@photo}}% \framebox{\includegraphics[width=\@photowidth]{\@photo}}}%
\if@right% \if@right%
\hspace*{\separatorcolumnwidth}\fi}}% \hspace*{\separatorcolumnwidth}\fi}%
% name and title (pre-rendering) % name and title (pre-rendering)
\@initializelength{\makecvheaddetailswidth}\settowidth{\makecvheaddetailswidth}{\usebox{\makecvheaddetailsbox}}% \@initializelength{\makecvheaddetailswidth}\settowidth{\makecvheaddetailswidth}{\usebox{\makecvheaddetailsbox}}%
\@initializelength{\makecvheadpicturewidth}\settowidth{\makecvheadpicturewidth}{\usebox{\makecvheadpicturebox}}% \@initializelength{\makecvheadpicturewidth}\settowidth{\makecvheadpicturewidth}{\usebox{\makecvheadpicturebox}}%
@ -120,7 +120,7 @@
\begin{minipage}[b]{\makecvheadnamewidth}% \begin{minipage}[b]{\makecvheadnamewidth}%
\if@left\raggedright\fi% \if@left\raggedright\fi%
\if@right\raggedleft\fi% \if@right\raggedleft\fi%
\firstnamestyle{\@firstname\ }\lastnamestyle{\@lastname}% \firstnamestyle{\@firstname}~\lastnamestyle{\@lastname}%
\ifthenelse{\equal{\@title}{}}{}{\\[1.25em]\titlestyle{\@title}}% \ifthenelse{\equal{\@title}{}}{}{\\[1.25em]\titlestyle{\@title}}%
\end{minipage}}% \end{minipage}}%
% raise boxes if top option is set % raise boxes if top option is set
@ -180,8 +180,6 @@
\ifthenelse{\isundefined{\@email}}{}{\makenewline\emailsymbol\emaillink{\@email}}% \ifthenelse{\isundefined{\@email}}{}{\makenewline\emailsymbol\emaillink{\@email}}%
\ifthenelse{\isundefined{\@homepage}}{}{\makenewline\homepagesymbol% \ifthenelse{\isundefined{\@homepage}}{}{\makenewline\homepagesymbol%
\ifthenelse{\equal{\@homepageprotocol}{http}}{\httplink{\@homepage}}{\httpslink{\@homepage}}}% \ifthenelse{\equal{\@homepageprotocol}{http}}{\httplink{\@homepage}}{\httpslink{\@homepage}}}%
\collectionloop{socials}{% the key holds the social type (=symbol command prefix), the item holds the link
\makenewline\csname\collectionloopkey socialsymbol\endcsname\collectionloopitem}%
\ifthenelse{\isundefined{\@extrainfo}}{}{\makenewline\@extrainfo}}\fi% \ifthenelse{\isundefined{\@extrainfo}}{}{\makenewline\@extrainfo}}\fi%
\end{minipage}\\[2em] \end{minipage}\\[2em]
% recipient block % recipient block

View file

@ -1,5 +1,5 @@
%% start of file `moderncvheadii.sty'. %% start of file `moderncvheadii.sty'.
%% Copyright 2006-2015 Xavier Danaux (xdanaux@gmail.com), 2020-2026 moderncv maintainers (github.com/moderncv). %% Copyright 2006-2015 Xavier Danaux (xdanaux@gmail.com), 2020-2022 moderncv maintainers (github.com/moderncv).
% %
% This work may be distributed and/or modified under the % This work may be distributed and/or modified under the
% conditions of the LaTeX Project Public License version 1.3c, % conditions of the LaTeX Project Public License version 1.3c,
@ -10,7 +10,7 @@
% identification % identification
%------------------------------------------------------------------------------- %-------------------------------------------------------------------------------
\NeedsTeXFormat{LaTeX2e} \NeedsTeXFormat{LaTeX2e}
\ProvidesPackage{moderncvheadii}[2026-01-31 v2.5.1 modern curriculum vitae and letter header variant: 2] \ProvidesPackage{moderncvheadii}[2022-02-21 v2.3.1 modern curriculum vitae and letter header variant: 2]
% details options: "details" or "nodetails" (default) % details options: "details" or "nodetails" (default)
\@initializeif{\if@details}\@detailsfalse \@initializeif{\if@details}\@detailsfalse

View file

@ -1,5 +1,5 @@
%% start of file `moderncvheadiii.sty'. %% start of file `moderncvheadiii.sty'.
%% Copyright 2006-2015 Xavier Danaux (xdanaux@gmail.com), 2020-2026 moderncv maintainers (github.com/moderncv). %% Copyright 2006-2015 Xavier Danaux (xdanaux@gmail.com), 2020-2022 moderncv maintainers (github.com/moderncv).
% %
% This work may be distributed and/or modified under the % This work may be distributed and/or modified under the
% conditions of the LaTeX Project Public License version 1.3c, % conditions of the LaTeX Project Public License version 1.3c,
@ -10,7 +10,7 @@
% identification % identification
%------------------------------------------------------------------------------- %-------------------------------------------------------------------------------
\NeedsTeXFormat{LaTeX2e} \NeedsTeXFormat{LaTeX2e}
\ProvidesPackage{moderncvheadiii}[2026-01-31 v2.5.1 modern curriculum vitae and letter header variant: 3] \ProvidesPackage{moderncvheadiii}[2022-02-21 v2.3.1 modern curriculum vitae and letter header variant: 3]
% details options: "details" (default) or "nodetails" % details options: "details" (default) or "nodetails"
\@initializeif{\if@details}\@detailsfalse \@initializeif{\if@details}\@detailsfalse
@ -83,7 +83,7 @@
\parbox{\makeheaddetailswidth}{% \parbox{\makeheaddetailswidth}{%
\centering% \centering%
% name and title % name and title
\firstnamestyle{\@firstname\ }\lastnamestyle{\@lastname}% \firstnamestyle{\@firstname}~\lastnamestyle{\@lastname}%
\ifthenelse{\equal{\@title}{}}{}{\titlestyle{~|~\@title}}% \isundefined doesn't work on \@title, as LaTeX itself defines \@title (before it possibly gets redefined by \title) \ifthenelse{\equal{\@title}{}}{}{\titlestyle{~|~\@title}}% \isundefined doesn't work on \@title, as LaTeX itself defines \@title (before it possibly gets redefined by \title)
% optional detailed information % optional detailed information
\if@details{% \if@details{%
@ -159,8 +159,6 @@
\ifthenelse{\isundefined{\@email}}{}{\makenewline\emailsymbol\emaillink{\@email}}% \ifthenelse{\isundefined{\@email}}{}{\makenewline\emailsymbol\emaillink{\@email}}%
\ifthenelse{\isundefined{\@homepage}}{}{\makenewline\homepagesymbol% \ifthenelse{\isundefined{\@homepage}}{}{\makenewline\homepagesymbol%
\ifthenelse{\equal{\@homepageprotocol}{http}}{\httplink{\@homepage}}{\httpslink{\@homepage}}}% \ifthenelse{\equal{\@homepageprotocol}{http}}{\httplink{\@homepage}}{\httpslink{\@homepage}}}%
\collectionloop{socials}{% the key holds the social type (=symbol command prefix), the item holds the link
\makenewline\csname\collectionloopkey socialsymbol\endcsname\collectionloopitem}%
\ifthenelse{\isundefined{\@extrainfo}}{}{\makenewline\@extrainfo}}\fi% \ifthenelse{\isundefined{\@extrainfo}}{}{\makenewline\@extrainfo}}\fi%
\end{minipage}\\[2em] \end{minipage}\\[2em]
% recipient block % recipient block

View file

@ -1,5 +1,5 @@
%% start of file `moderncvheadiv.sty'. %% start of file `moderncvheadiv.sty'.
%% Copyright 2006-2015 Xavier Danaux (xdanaux@gmail.com), 2020-2026 moderncv maintainers (github.com/moderncv). %% Copyright 2006-2015 Xavier Danaux (xdanaux@gmail.com), 2020-2022 moderncv maintainers (github.com/moderncv).
% %
% This work may be distributed and/or modified under the % This work may be distributed and/or modified under the
% conditions of the LaTeX Project Public License version 1.3c, % conditions of the LaTeX Project Public License version 1.3c,
@ -10,7 +10,7 @@
% identification % identification
%------------------------------------------------------------------------------- %-------------------------------------------------------------------------------
\NeedsTeXFormat{LaTeX2e} \NeedsTeXFormat{LaTeX2e}
\ProvidesPackage{moderncvheadiv}[2026-01-31 v2.5.1 modern curriculum vitae and letter header variant: 4] \ProvidesPackage{moderncvheadiv}[2022-02-21 v2.3.1 modern curriculum vitae and letter header variant: 4]
% details options: "details" (default) or "nodetails" % details options: "details" (default) or "nodetails"
\@initializeif{\if@details}\@detailsfalse \@initializeif{\if@details}\@detailsfalse
@ -72,7 +72,7 @@
% \par\vspace{-\baselineskip}\vspace{-\parskip}\leftskip=\leftcolumnwidth% % \par\vspace{-\baselineskip}\vspace{-\parskip}\leftskip=\leftcolumnwidth%
\par\vspace{-\baselineskip}\vspace{-\parskip}% \par\vspace{-\baselineskip}\vspace{-\parskip}%
\leftskip=\dimexpr\hintscolumnwidth+\separatorcolumnwidth\relax% \dimexpr require e-TeX engine extensions \leftskip=\dimexpr\hintscolumnwidth+\separatorcolumnwidth\relax% \dimexpr require e-TeX engine extensions
\recomputecvlengths} % need to recompute the layout lengths as we just changed \leftskip \recomputecvlengths} % need to recompute the layout lenghts as we just changed \leftskip
\renewcommand*{\makecvhead}{ \renewcommand*{\makecvhead}{
% recompute lengths (in case we are switching from letter to resume, or vice versa) % recompute lengths (in case we are switching from letter to resume, or vice versa)
\recomputecvlengths% \recomputecvlengths%
@ -93,7 +93,7 @@
{\setlength{\makecvheadnamewidth}{\textwidth-\makecvheadpicturewidth}}% {\setlength{\makecvheadnamewidth}{\textwidth-\makecvheadpicturewidth}}%
{}% {}%
\begin{minipage}[b]{\makecvheadnamewidth}% \begin{minipage}[b]{\makecvheadnamewidth}%
\firstnamestyle{\@firstname\ }\lastnamestyle{\@lastname}% \firstnamestyle{\@firstname}~\lastnamestyle{\@lastname}%
\ifthenelse{\equal{\@title}{}}{}{\\[1.25em]\titlestyle{\@title}}% \ifthenelse{\equal{\@title}{}}{}{\\[1.25em]\titlestyle{\@title}}%
\end{minipage}% \end{minipage}%
% optional photo % optional photo

View file

@ -1,5 +1,5 @@
%% start of file `moderncvheadv.sty'. %% start of file `moderncvheadv.sty'.
%% Copyright 2015-2015 Xavier Danaux (xdanaux@gmail.com), 2020-2026 moderncv maintainers (github.com/moderncv). %% Copyright 2015-2015 Xavier Danaux (xdanaux@gmail.com), 2020-2022 moderncv maintainers (github.com/moderncv).
% %
% This work may be distributed and/or modified under the % This work may be distributed and/or modified under the
% conditions of the LaTeX Project Public License version 1.3c, % conditions of the LaTeX Project Public License version 1.3c,
@ -10,7 +10,7 @@
% identification % identification
%------------------------------------------------------------------------------- %-------------------------------------------------------------------------------
\NeedsTeXFormat{LaTeX2e} \NeedsTeXFormat{LaTeX2e}
\ProvidesPackage{moderncvheadv}[2026-01-31 v2.5.1 modern curriculum vitae and letter header variant: 5] \ProvidesPackage{moderncvheadv}[2022-02-21 v2.3.1 modern curriculum vitae and letter header variant: 5]
% details options: "details" (default) or "nodetails" % details options: "details" (default) or "nodetails"
\@initializeif{\if@details}\@detailsfalse \@initializeif{\if@details}\@detailsfalse
@ -94,7 +94,7 @@
% name and optional title % name and optional title
\newlength{\makecvheadpictureboxskip}% \newlength{\makecvheadpictureboxskip}%
\setlength{\makecvheadpictureboxskip}{\totalheightof{\usebox{\makecvheadpicturebox}}}% \setlength{\makecvheadpictureboxskip}{\totalheightof{\usebox{\makecvheadpicturebox}}}%
\firstnamestyle{\@firstname\ }\lastnamestyle{\@lastname}% \firstnamestyle{\@firstname}~\lastnamestyle{\@lastname}%
\ifthenelse{\equal{\@title}{}}{ \ifthenelse{\equal{\@title}{}}{
\ifthenelse{\isundefined{\@quote}}% \ifthenelse{\isundefined{\@quote}}%
{}% {}%
@ -160,8 +160,6 @@
\ifthenelse{\isundefined{\@email}}{}{\makenewline\emailsymbol\emaillink{\@email}}% \ifthenelse{\isundefined{\@email}}{}{\makenewline\emailsymbol\emaillink{\@email}}%
\ifthenelse{\isundefined{\@homepage}}{}{\makenewline\homepagesymbol% \ifthenelse{\isundefined{\@homepage}}{}{\makenewline\homepagesymbol%
\ifthenelse{\equal{\@homepageprotocol}{http}}{\httplink{\@homepage}}{\httpslink{\@homepage}}}% \ifthenelse{\equal{\@homepageprotocol}{http}}{\httplink{\@homepage}}{\httpslink{\@homepage}}}%
\collectionloop{socials}{% the key holds the social type (=symbol command prefix), the item holds the link
\makenewline\csname\collectionloopkey socialsymbol\endcsname\collectionloopitem}%
\ifthenelse{\isundefined{\@extrainfo}}{}{\makenewline\@extrainfo}}\fi% \ifthenelse{\isundefined{\@extrainfo}}{}{\makenewline\@extrainfo}}\fi%
\end{minipage}\\[2em] \end{minipage}\\[2em]
% recipient block % recipient block

View file

@ -1,5 +1,5 @@
%% start of file `moderncvheadvi.sty'. %% start of file `moderncvheadvi.sty'.
%% Copyright 2015-2015 Xavier Danaux (xdanaux@gmail.com), 2020-2026 moderncv maintainers (github.com/moderncv). %% Copyright 2015-2015 Xavier Danaux (xdanaux@gmail.com), 2020-2022 moderncv maintainers (github.com/moderncv).
% %
% This work may be distributed and/or modified under the % This work may be distributed and/or modified under the
% conditions of the LaTeX Project Public License version 1.3c, % conditions of the LaTeX Project Public License version 1.3c,
@ -10,7 +10,7 @@
% identification % identification
%------------------------------------------------------------------------------- %-------------------------------------------------------------------------------
\NeedsTeXFormat{LaTeX2e} \NeedsTeXFormat{LaTeX2e}
\ProvidesPackage{moderncvheadvi}[2026-01-31 v2.5.1 modern curriculum vitae and letter header: 6] \ProvidesPackage{moderncvheadvi}[2022-02-21 v2.3.1 modern curriculum vitae and letter header: 6]
% details options: "details" (default) or "nodetails" % details options: "details" (default) or "nodetails"
\@initializeif{\if@details}\@detailsfalse \@initializeif{\if@details}\@detailsfalse
@ -55,7 +55,7 @@
\setlength{\makeheaddetailswidth}{\textwidth}% \setlength{\makeheaddetailswidth}{\textwidth}%
% name and title % name and title
\if@left\hfill\fi% \if@left\hfill\fi%
\firstnamestyle{\@firstname\ }\lastnamestyle{\@lastname}% \firstnamestyle{\@firstname}~\lastnamestyle{\@lastname}%
\ifthenelse{\equal{\@title}{}}{}{\titlestyle{~|~\@title}}\\[-.35em]% \isundefined doesn't work on \@title, as LaTeX itself defines \@title (before it possibly gets redefined by \title) \ifthenelse{\equal{\@title}{}}{}{\titlestyle{~|~\@title}}\\[-.35em]% \isundefined doesn't work on \@title, as LaTeX itself defines \@title (before it possibly gets redefined by \title)
% rule % rule
{\color{bodyrulecolor}\rule{\textwidth}{.25ex}}} {\color{bodyrulecolor}\rule{\textwidth}{.25ex}}}

View file

@ -1,6 +1,6 @@
%% start of file `moderncvheadvii.sty'. %% start of file `moderncvheadvii.sty'.
%% Copyright 2006-2015 Xavier Danaux (xdanaux@gmail.com). %% Copyright 2006-2015 Xavier Danaux (xdanaux@gmail.com).
%% Copyright 2023 Javier Lopez-Gomez (javier.lopez.gomez@proton.me), 2024-2026 moderncv maintainers (github.com/moderncv). %% Copyright 2023 Javier Lopez-Gomez (javier.lopez.gomez@proton.me).
% %
% This work may be distributed and/or modified under the % This work may be distributed and/or modified under the
% conditions of the LaTeX Project Public License version 1.3c, % conditions of the LaTeX Project Public License version 1.3c,
@ -11,7 +11,7 @@
% identification % identification
%------------------------------------------------------------------------------- %-------------------------------------------------------------------------------
\NeedsTeXFormat{LaTeX2e} \NeedsTeXFormat{LaTeX2e}
\ProvidesPackage{moderncvheadvii}[2026-01-31 v2.5.1 modern curriculum vitae and letter header variant: 7] \ProvidesPackage{moderncvheadvii}[2023/11/21 v2.0.0 modern curriculum vitae and letter header variant: 7]
% details options: "details" (default) or "nodetails" % details options: "details" (default) or "nodetails"
\@initializeif{\if@details}\@detailsfalse \@initializeif{\if@details}\@detailsfalse
@ -39,7 +39,7 @@
%------------------------------------------------------------------------------- %-------------------------------------------------------------------------------
\RequirePackage{qrcode} \RequirePackage{qrcode}
\RequirePackage{tikz} \RequirePackage{tikz}
\usetikzlibrary{tikzmark,fit,babel} \usetikzlibrary{tikzmark,fit}
%------------------------------------------------------------------------------- %-------------------------------------------------------------------------------
@ -92,13 +92,12 @@
\ifthenelse{\isundefined{\@addressstreet}}{}{\makenewline\addresssymbol\@addressstreet% \ifthenelse{\isundefined{\@addressstreet}}{}{\makenewline\addresssymbol\@addressstreet%
\ifthenelse{\equal{\@addresscity}{}}{}{\makenewline\@addresscity}% if \addresstreet is defined, \addresscity and addresscountry will always be defined but could be empty \ifthenelse{\equal{\@addresscity}{}}{}{\makenewline\@addresscity}% if \addresstreet is defined, \addresscity and addresscountry will always be defined but could be empty
\ifthenelse{\equal{\@addresscountry}{}}{}{\makenewline\@addresscountry}}% \ifthenelse{\equal{\@addresscountry}{}}{}{\makenewline\@addresscountry}}%
\ifthenelse{\isundefined{\@born}}{}{\makenewline\bornsymbol\@born}%
\phonesdetails% needs to be pre-rendered as loops and tabulars seem to conflict \phonesdetails% needs to be pre-rendered as loops and tabulars seem to conflict
\ifthenelse{\isundefined{\@email}}{}{\makenewline\emailsymbol\emaillink{\@email}}% \ifthenelse{\isundefined{\@email}}{}{\makenewline\emailsymbol\emaillink{\@email}}%
\ifthenelse{\isundefined{\@homepage}}{}{\makenewline\homepagesymbol\httplink{\@homepage}}% \ifthenelse{\isundefined{\@homepage}}{}{\makenewline\homepagesymbol\httplink{\@homepage}}%
\socialsdetails% needs to be pre-rendered as loops and tabulars seem to conflict \socialsdetails% needs to be pre-rendered as loops and tabulars seem to conflict
\ifthenelse{\isundefined{\@extrainfo}}{}{\makenewline\@extrainfo}% \ifthenelse{\isundefined{\@extrainfo}}{}{\makenewline\@extrainfo}%
\end{tabular}% \end{tabular}
}\fi% }\fi%
% optional photo (pre-rendering) % optional photo (pre-rendering)
\@initializebox{\makecvheadpicturebox}% \@initializebox{\makecvheadpicturebox}%
@ -116,9 +115,9 @@
\node[inner sep=0pt] at (0,0) {\includegraphics[width=\@photowidth]{\@photo}}; \node[inner sep=0pt] at (0,0) {\includegraphics[width=\@photowidth]{\@photo}};
\end{scope} \end{scope}
\end{tikzpicture}% \end{tikzpicture}%
\if@left%
\hspace*{\separatorcolumnwidth}\fi}%
}% }%
\if@left%
\hspace*{\separatorcolumnwidth}\fi}%
% optional QR for homepage (pre-rendering) % optional QR for homepage (pre-rendering)
\@initializebox{\makecvheadqrbox}% \@initializebox{\makecvheadqrbox}%
\if@headqr% \if@headqr%
@ -146,8 +145,6 @@
% Users may define `\@moderncvheadBackground` for additional background decoration % Users may define `\@moderncvheadBackground` for additional background decoration
\ifthenelse{\isundefined{\@moderncvheadBackground}}{}{\@moderncvheadBackground} \ifthenelse{\isundefined{\@moderncvheadBackground}}{}{\@moderncvheadBackground}
% case with no photo: assure defined \@photoframewidth with 2pt
\ifthenelse{\isundefined{\@photo}}{\@initializelength{\@photoframewidth}\setlength{\@photoframewidth}{2pt}}{}%
\path[draw,line width=\@photoframewidth] \path[draw,line width=\@photoframewidth]
(head-bg.south west) edge[color=headhr!85!black] ([xshift=8em]head-bg.south west) (head-bg.south west) edge[color=headhr!85!black] ([xshift=8em]head-bg.south west)
([xshift=8em]head-bg.south west) edge[color=headhr] ([xshift=-8em]head-bg.south east) ([xshift=8em]head-bg.south west) edge[color=headhr] ([xshift=-8em]head-bg.south east)
@ -158,9 +155,9 @@
\usebox{\makecvheadnamebox}% \usebox{\makecvheadnamebox}%
\hfill% \hfill%
\llap{\usebox{\makecvheaddetailsbox}}% \llap is used to suppress the width of the box, allowing overlap if the value of makecvheadnamewidth is forced \llap{\usebox{\makecvheaddetailsbox}}% \llap is used to suppress the width of the box, allowing overlap if the value of makecvheadnamewidth is forced
\hspace{.5ex}\usebox{\makecvheadqrbox}\fi% \usebox{\makecvheadqrbox}\fi%
\if@right% \if@right%
\usebox{\makecvheadqrbox}\hspace{.5ex}% \usebox{\makecvheadqrbox}%
\rlap{\usebox{\makecvheaddetailsbox}}% \llap is used to suppress the width of the box, allowing overlap if the value of makecvheadnamewidth is forced \rlap{\usebox{\makecvheaddetailsbox}}% \llap is used to suppress the width of the box, allowing overlap if the value of makecvheadnamewidth is forced
\hfill% \hfill%
\usebox{\makecvheadnamebox}% \usebox{\makecvheadnamebox}%
@ -184,41 +181,24 @@
\renewcommand*{\makeletterhead}{% \renewcommand*{\makeletterhead}{%
% recompute lengths (in case we are switching from letter to resume, or vice versa) % recompute lengths (in case we are switching from letter to resume, or vice versa)
\recomputeletterlengths% \recomputeletterlengths%
% sender contact info
\@initializebox{\makeletterdetailsbox}% \hfill%
\if@details% \begin{minipage}{.5\textwidth}%
\def\phonesdetails{}% % optional detailed information
\collectionloop{phones}{% the key holds the phone type (=symbol command prefix), the item holds the number \if@details%
\protected@edef\phonesdetails{\phonesdetails\protect\makenewline\csname\collectionloopkey phonesymbol\endcsname\collectionloopitem}}% \raggedleft%
\savebox{\makeletterdetailsbox}{% \addressfont\textcolor{color2}{%
\addressfont\color{headtext}% {\bfseries\upshape\@firstname~\@lastname}\@firstdetailselementfalse%
\if@left\begin{tabular}[b]{@{}r@{}}\fi% % optional detailed information
\if@right\begin{tabular}[b]{@{}l@{}}\fi%
\ifthenelse{\isundefined{\@addressstreet}}{}{\makenewline\addresssymbol\@addressstreet% \ifthenelse{\isundefined{\@addressstreet}}{}{\makenewline\addresssymbol\@addressstreet%
\ifthenelse{\equal{\@addresscity}{}}{}{\makenewline\@addresscity}% if \addresstreet is defined, \addresscity and addresscountry will always be defined but could be empty \ifthenelse{\equal{\@addresscity}{}}{}{\makenewline\@addresscity}% if \addresstreet is defined, \addresscity and addresscountry will always be defined but could be empty
\ifthenelse{\equal{\@addresscountry}{}}{}{\makenewline\@addresscountry}}% \ifthenelse{\equal{\@addresscountry}{}}{}{\makenewline\@addresscountry}}%
\phonesdetails% needs to be pre-rendered as loops and tabulars seem to conflict \collectionloop{phones}{% the key holds the phone type (=symbol command prefix), the item holds the number
\makenewline\csname\collectionloopkey phonesymbol\endcsname\collectionloopitem}%
\ifthenelse{\isundefined{\@email}}{}{\makenewline\emailsymbol\emaillink{\@email}}% \ifthenelse{\isundefined{\@email}}{}{\makenewline\emailsymbol\emaillink{\@email}}%
\ifthenelse{\isundefined{\@homepage}}{}{\makenewline\homepagesymbol\httplink{\@homepage}}% \ifthenelse{\isundefined{\@homepage}}{}{\makenewline\homepagesymbol\httplink{\@homepage}}%
\ifthenelse{\isundefined{\@extrainfo}}{}{\makenewline\@extrainfo}% \ifthenelse{\isundefined{\@extrainfo}}{}{\makenewline\@extrainfo}}\fi%
\end{tabular}% \end{minipage}\\[1em]
}\fi%
% name and title (pre-rendering)
\@initializelength{\makeletterdetailswidth}\settowidth{\makeletterdetailswidth}{\usebox{\makeletterdetailsbox}}%
% rendering
\begin{tikzpicture}[remember picture,overlay]
\node(letter-head-bg) [top color=headTL,bottom color=headBR,shading angle=45,inner sep=0pt,
fit={(current page.north west)(current page.north east)(pic cs:letter-head-end)}] {};
\end{tikzpicture}%
\hfill
\llap{\usebox{\makeletterdetailsbox}}% \llap is used to suppress
\\[.15em]%
\tikzmark{letter-head-end}\\[.15em]%
% recipient block % recipient block
\begin{minipage}[t]{.5\textwidth} \begin{minipage}[t]{.5\textwidth}
\raggedright% \raggedright%

View file

@ -1,5 +1,5 @@
%% start of file `moderncviconsacademic.sty'. %% start of file `moderncviconsacademic.sty'.
%% Copyright 2013-2015 Xavier Danaux (xdanaux@gmail.com), 2020-2026 moderncv maintainers (github.com/moderncv). %% Copyright 2013-2015 Xavier Danaux (xdanaux@gmail.com), 2020-2022 moderncv maintainers (github.com/moderncv).
% %
% This work may be distributed and/or modified under the % This work may be distributed and/or modified under the
% conditions of the LaTeX Project Public License version 1.3c, % conditions of the LaTeX Project Public License version 1.3c,
@ -10,7 +10,7 @@
% identification % identification
%------------------------------------------------------------------------------- %-------------------------------------------------------------------------------
\NeedsTeXFormat{LaTeX2e} \NeedsTeXFormat{LaTeX2e}
\ProvidesPackage{moderncviconsacademic}[2026-01-31 v2.5.1 modern curriculum vitae icons: academicons] \ProvidesPackage{moderncviconsacademic}[2022-02-21 v2.3.1 modern curriculum vitae icons: academicons]
%------------------------------------------------------------------------------- %-------------------------------------------------------------------------------
@ -23,7 +23,7 @@
%------------------------------------------------------------------------------- %-------------------------------------------------------------------------------
% set colors % set colors
%------------------------------------------------------------------------------- %-------------------------------------------------------------------------------
\usepackage{moderncvcolors} \input{commons/colors}
\providecolor{orcid}{named}{default-socialicon-color} \providecolor{orcid}{named}{default-socialicon-color}
\providecolor{researchgate}{named}{default-socialicon-color} \providecolor{researchgate}{named}{default-socialicon-color}

View file

@ -1,5 +1,5 @@
%% start of file `moderncviconsawesome.sty'. %% start of file `moderncviconsawesome.sty'.
%% Copyright 2013-2015 Xavier Danaux (xdanaux@gmail.com), 2020-2026 moderncv maintainers (github.com/moderncv). %% Copyright 2013-2015 Xavier Danaux (xdanaux@gmail.com), 2020-2022 moderncv maintainers (github.com/moderncv).
% %
% This work may be distributed and/or modified under the % This work may be distributed and/or modified under the
% conditions of the LaTeX Project Public License version 1.3c, % conditions of the LaTeX Project Public License version 1.3c,
@ -10,19 +10,19 @@
% identification % identification
%------------------------------------------------------------------------------- %-------------------------------------------------------------------------------
\NeedsTeXFormat{LaTeX2e} \NeedsTeXFormat{LaTeX2e}
\ProvidesPackage{moderncviconsawesome}[2026-01-31 v2.5.1 modern curriculum vitae icons: awesome] \ProvidesPackage{moderncviconsawesome}[2022-02-21 v2.3.1 modern curriculum vitae icons: awesome]
%------------------------------------------------------------------------------- %-------------------------------------------------------------------------------
% required packages % required packages
%------------------------------------------------------------------------------- %-------------------------------------------------------------------------------
% Font Awesome font % Font Awesome font
\RequirePackage{fontawesome6} \RequirePackage{fontawesome5}
\RequirePackage{xcolor} \RequirePackage{xcolor}
%------------------------------------------------------------------------------- %-------------------------------------------------------------------------------
% set colors % set colors
%------------------------------------------------------------------------------- %-------------------------------------------------------------------------------
\usepackage{moderncvcolors} \input{commons/colors}
\providecolor{address}{named}{default-socialicon-color} \providecolor{address}{named}{default-socialicon-color}
\providecolor{mobilephone}{named}{default-socialicon-color} \providecolor{mobilephone}{named}{default-socialicon-color}
@ -55,8 +55,6 @@
\providecolor{playstation}{named}{default-socialicon-color} \providecolor{playstation}{named}{default-socialicon-color}
\providecolor{battlenet}{named}{default-socialicon-color} \providecolor{battlenet}{named}{default-socialicon-color}
\providecolor{born}{named}{default-socialicon-color} \providecolor{born}{named}{default-socialicon-color}
\providecolor{signal}{named}{default-socialicon-color}
\providecolor{medium}{named}{default-socialicon-color}
%------------------------------------------------------------------------------- %-------------------------------------------------------------------------------
% all symbols described in moderncv.cls % all symbols described in moderncv.cls
@ -72,7 +70,7 @@
\renewcommand*{\fixedphonesymbol} {{\color{fixedphone}\small\faPhone*}~} % alternative: \faPhone (reversed) \renewcommand*{\fixedphonesymbol} {{\color{fixedphone}\small\faPhone*}~} % alternative: \faPhone (reversed)
\renewcommand*{\faxphonesymbol} {{\color{faxphone}\small\faFax}~} % alternative: \faPrint \renewcommand*{\faxphonesymbol} {{\color{faxphone}\small\faFax}~} % alternative: \faPrint
\renewcommand*{\emailsymbol} {{\color{email}\small\faEnvelope[regular]}~} % alternative: \faInbox, \faEnvelope (solid style) \renewcommand*{\emailsymbol} {{\color{email}\small\faEnvelope[regular]}~} % alternative: \faInbox, \faEnvelope (solid style)
\renewcommand*{\homepagesymbol} {{\color{homepage}\small\faEarthAmericas}~} % alternative: \faHome, \faGlobe, \faEarthEurope, \faEarthAfrica, \faEarthAsia, \faEarthOceania \renewcommand*{\homepagesymbol} {{\color{homepage}\small\faGlobeAmericas}~} % alternative: \faHome, \faGlobe, \faGlobeEurope, \faGlobeAfrica, \faGlobeAsia
\renewcommand*{\linkedinsocialsymbol} {{\color{linkedin}\small\faLinkedinIn}~} % alternative: \faLinkedin \renewcommand*{\linkedinsocialsymbol} {{\color{linkedin}\small\faLinkedinIn}~} % alternative: \faLinkedin
\renewcommand*{\xingsocialsymbol} {{\color{xing}\small\faXing}~} % alternative: \faXingSquare \renewcommand*{\xingsocialsymbol} {{\color{xing}\small\faXing}~} % alternative: \faXingSquare
\renewcommand*{\twittersocialsymbol} {{\color{twitter}\small\faTwitter}~} % alternative: \faTwitterSquare \renewcommand*{\twittersocialsymbol} {{\color{twitter}\small\faTwitter}~} % alternative: \faTwitterSquare
@ -98,13 +96,11 @@
\renewcommand*{\xboxsocialsymbol} {{\color{xbox}\small\faXbox}~} \renewcommand*{\xboxsocialsymbol} {{\color{xbox}\small\faXbox}~}
\renewcommand*{\playstationsocialsymbol} {{\color{playstation}\small\faPlaystation}~} \renewcommand*{\playstationsocialsymbol} {{\color{playstation}\small\faPlaystation}~}
\renewcommand*{\battlenetsocialsymbol} {{\color{battlenet}\small\faBattleNet}~} \renewcommand*{\battlenetsocialsymbol} {{\color{battlenet}\small\faBattleNet}~}
\renewcommand*{\signalsocialsymbol} {{\color{signal}\small\faSignalMessenger}~} %\renewcommand*{\signalsocialsymbol} {}
%\renewcommand*{\matrixsocialsymbol} {} %\renewcommand*{\matrixsocialsymbol} {}
% \renewcommand*{\arxivsocialsymbol} {{\color{arxiv}{\small\faarXiv}}~} % \renewcommand*{\arxivsocialsymbol} {{\color{arxiv}{\small\faarXiv}}~}
% \renewcommand*{\inspiresocialsymbol} {{\color{inspire}{\small\faInspire}}~} % \renewcommand*{\inspiresocialsymbol} {{\color{inspire}{\small\faInspire}}~}
\renewcommand*{\bornsymbol} {{\color{born}\small\faAsterisk}~} % alternative: \faBabyCarriage \renewcommand*{\bornsymbol} {{\color{born}\small\faAsterisk}~} % alternative: \faBabyCarriage
\renewcommand*{\mediumsocialsymbol} {{\color{medium}\small\faMedium}~}
\endinput \endinput

View file

@ -1,5 +1,5 @@
%% start of file `moderncviconsletters.sty'. %% start of file `moderncviconsletters.sty'.
%% Copyright 2013-2015 Xavier Danaux (xdanaux@gmail.com), 2020-2026 moderncv maintainers (github.com/moderncv). %% Copyright 2013-2015 Xavier Danaux (xdanaux@gmail.com), 2020-2022 moderncv maintainers (github.com/moderncv).
% %
% This work may be distributed and/or modified under the % This work may be distributed and/or modified under the
% conditions of the LaTeX Project Public License version 1.3c, % conditions of the LaTeX Project Public License version 1.3c,
@ -10,7 +10,7 @@
% identification % identification
%------------------------------------------------------------------------------- %-------------------------------------------------------------------------------
\NeedsTeXFormat{LaTeX2e} \NeedsTeXFormat{LaTeX2e}
\ProvidesPackage{moderncviconsletters}[2026-01-31 v2.5.1 modern curriculum vitae icons: letter] \ProvidesPackage{moderncviconsletters}[2022-02-21 v2.3.1 modern curriculum vitae icons: letter]
%------------------------------------------------------------------------------- %-------------------------------------------------------------------------------
% symbols definition % symbols definition
@ -38,7 +38,6 @@
\renewcommand*{\bitbucketsocialsymbol} {\textbf{bb}~} \renewcommand*{\bitbucketsocialsymbol} {\textbf{bb}~}
\renewcommand*{\skypesocialsymbol} {\textbf{sk}~} \renewcommand*{\skypesocialsymbol} {\textbf{sk}~}
\renewcommand*{\orcidsocialsymbol} {\textbf{orcid}~} \renewcommand*{\orcidsocialsymbol} {\textbf{orcid}~}
\renewcommand*{\mediumsocialsymbol} {\textbf{Me}~}
\renewcommand*{\researchgatesocialsymbol} {\textbf{rg}~} \renewcommand*{\researchgatesocialsymbol} {\textbf{rg}~}
\renewcommand*{\researcheridsocialsymbol} {\textbf{ri}~} \renewcommand*{\researcheridsocialsymbol} {\textbf{ri}~}
\renewcommand*{\telegramsocialsymbol} {\textbf{tg}~} \renewcommand*{\telegramsocialsymbol} {\textbf{tg}~}
@ -59,8 +58,6 @@
\renewcommand*{\battlenetsocialsymbol} {\textbf{bn}~} \renewcommand*{\battlenetsocialsymbol} {\textbf{bn}~}
\renewcommand*{\arxivsocialsymbol} {\textbf{arx}~} \renewcommand*{\arxivsocialsymbol} {\textbf{arx}~}
\renewcommand*{\inspiresocialsymbol} {\textbf{ins}~} \renewcommand*{\inspiresocialsymbol} {\textbf{ins}~}
\renewcommand*{\simplexsocialsymbol} {\textbf{splx}~}
\renewcommand*{\simplexsocialsymbol} {\textbf{thr}~}
\renewcommand*{\listitemsymbol} {\labelitemi~} \renewcommand*{\listitemsymbol} {\labelitemi~}

View file

@ -1,5 +1,5 @@
%% start of file `moderncviconsmarvosym.sty'. %% start of file `moderncviconsmarvosym.sty'.
%% Copyright 2013-2015 Xavier Danaux (xdanaux@gmail.com), 2020-2026 moderncv maintainers (github.com/moderncv). %% Copyright 2013-2015 Xavier Danaux (xdanaux@gmail.com), 2020-2022 moderncv maintainers (github.com/moderncv).
% %
% This work may be distributed and/or modified under the % This work may be distributed and/or modified under the
% conditions of the LaTeX Project Public License version 1.3c, % conditions of the LaTeX Project Public License version 1.3c,
@ -10,7 +10,7 @@
% identification % identification
%------------------------------------------------------------------------------- %-------------------------------------------------------------------------------
\NeedsTeXFormat{LaTeX2e} \NeedsTeXFormat{LaTeX2e}
\ProvidesPackage{moderncviconsmarvosym}[2026-01-31 v2.5.1 modern curriculum vitae icons: marvosym] \ProvidesPackage{moderncviconsmarvosym}[2022-02-21 v2.3.1 modern curriculum vitae icons: marvosym]
%------------------------------------------------------------------------------- %-------------------------------------------------------------------------------
% all symbols described in moderncv.cls % all symbols described in moderncv.cls

View file

@ -1,5 +1,5 @@
%% start of file `moderncviconssymbols.sty'. %% start of file `moderncviconssymbols.sty'.
%% Copyright 2013-2015 Xavier Danaux (xdanaux@gmail.com), 2020-2026 moderncv maintainers (github.com/moderncv). %% Copyright 2013-2015 Xavier Danaux (xdanaux@gmail.com), 2020-2022 moderncv maintainers (github.com/moderncv).
% %
% This work may be distributed and/or modified under the % This work may be distributed and/or modified under the
% conditions of the LaTeX Project Public License version 1.3c, % conditions of the LaTeX Project Public License version 1.3c,
@ -10,7 +10,7 @@
% identification % identification
%------------------------------------------------------------------------------- %-------------------------------------------------------------------------------
\NeedsTeXFormat{LaTeX2e} \NeedsTeXFormat{LaTeX2e}
\ProvidesPackage{moderncviconssymbols}[2026-01-31 v2.5.1 modern curriculum vitae icons selector] \ProvidesPackage{moderncviconssymbols}[2021-12-12 v2.2.0 modern curriculum vitae icons selector]
\ifxetexorluatex \ifxetexorluatex

View file

@ -1,5 +1,5 @@
%% start of file `moderncviconstikz.sty'. %% start of file `moderncviconstikz.sty'.
%% Copyright 2013-2015 Xavier Danaux (xdanaux@gmail.com), 2020-2026 moderncv maintainers (github.com/moderncv). %% Copyright 2013-2015 Xavier Danaux (xdanaux@gmail.com), 2020-2022 moderncv maintainers (github.com/moderncv).
% %
% This work may be distributed and/or modified under the % This work may be distributed and/or modified under the
% conditions of the LaTeX Project Public License version 1.3c, % conditions of the LaTeX Project Public License version 1.3c,
@ -10,32 +10,14 @@
% identification % identification
%------------------------------------------------------------------------------- %-------------------------------------------------------------------------------
\NeedsTeXFormat{LaTeX2e} \NeedsTeXFormat{LaTeX2e}
\ProvidesPackage{moderncviconstikz}[2026-01-31 v2.5.1 modern curriculum vitae and letter icons: tickz] \ProvidesPackage{moderncviconstikz}[2022-02-21 v2.3.1 modern curriculum vitae and letter icons: tickz]
%------------------------------------------------------------------------------- %-------------------------------------------------------------------------------
% required packages % required packages
%------------------------------------------------------------------------------- %-------------------------------------------------------------------------------
\RequirePackage{tikz} \RequirePackage{tikz}
\usetikzlibrary{babel}
\RequirePackage{etoolbox} \RequirePackage{etoolbox}
\RequirePackage{xcolor}
%-------------------------------------------------------------------------------
% set colors
%-------------------------------------------------------------------------------
\usepackage{moderncvcolors}
\providecolor{linkedin}{named}{default-socialicon-color}
\providecolor{twitter}{named}{default-socialicon-color}
\providecolor{github}{named}{default-socialicon-color}
\providecolor{gitlab}{named}{default-socialicon-color}
\providecolor{skype}{named}{default-socialicon-color}
\providecolor{googlescholar}{named}{default-socialicon-color}
\providecolor{matrix}{named}{default-socialicon-color}
\providecolor{codeberg}{named}{default-socialicon-color}
\providecolor{simplex}{named}{default-socialicon-color}
\providecolor{threema}{named}{default-socialicon-color}
%------------------------------------------------------------------------------- %-------------------------------------------------------------------------------
@ -47,7 +29,7 @@
\protect\raisebox{-0.165em}{ \protect\raisebox{-0.165em}{
\protect\begin{tikzpicture}[x=0.08em, y=0.08em, xscale=0.25, yscale=-0.25, inner sep=0pt, outer sep=0pt] \protect\begin{tikzpicture}[x=0.08em, y=0.08em, xscale=0.25, yscale=-0.25, inner sep=0pt, outer sep=0pt]
\protect\begin{scope}[cm={{0.60,0.0,0.0,0.60,(346.39,123.07)}}] \protect\begin{scope}[cm={{0.60,0.0,0.0,0.60,(346.39,123.07)}}]
\protect\path[fill=linkedin] \protect\path[fill=color2]
(381,202) -- (434,202) .. controls (439,202) and (442,205) .. (381,202) -- (434,202) .. controls (439,202) and (442,205) ..
(442,210) -- (442,264) .. controls (442,268) and (439,272) .. (442,210) -- (442,264) .. controls (442,268) and (439,272) ..
(434,272) -- (381,272) .. controls (376,272) and (372,268) .. (434,272) -- (381,272) .. controls (376,272) and (372,268) ..
@ -92,7 +74,7 @@
\renewcommand*{\twittersocialsymbol} { \renewcommand*{\twittersocialsymbol} {
\protect\raisebox{0em}{% \protect\raisebox{0em}{%
\protect\begin{tikzpicture}[x=0.08em, y=0.08em, xscale=0.005, yscale=-0.005, inner sep=0pt, outer sep=0pt] \protect\begin{tikzpicture}[x=0.08em, y=0.08em, xscale=0.005, yscale=-0.005, inner sep=0pt, outer sep=0pt]
\protect\path[fill=twitter] \protect\path[fill=color2]
(2000, 192) .. controls (1926, 225) and (1847, 247) .. (2000, 192) .. controls (1926, 225) and (1847, 247) ..
(1764, 257) .. controls (1849, 206) and (1914, 126) .. (1764, 257) .. controls (1849, 206) and (1914, 126) ..
(1945, 30) .. controls (1865, 77) and (1778, 111) .. (1945, 30) .. controls (1865, 77) and (1778, 111) ..
@ -124,7 +106,7 @@
\protect\raisebox{-0.15em} { \protect\raisebox{-0.15em} {
\protect\begin{tikzpicture}[x=0.08em, y=0.08em, xscale=0.25, yscale=-0.25, inner sep=0pt, outer sep=0pt] \protect\begin{tikzpicture}[x=0.08em, y=0.08em, xscale=0.25, yscale=-0.25, inner sep=0pt, outer sep=0pt]
\protect\begin{scope}[shift={(507,387)}] \protect\begin{scope}[shift={(507,387)}]
\protect\path[fill=github] \protect\path[fill=color2]
(117, 60) .. controls (117, 71) and (108, 81) .. (117, 60) .. controls (117, 71) and (108, 81) ..
( 96, 81) .. controls ( 85, 81) and ( 75, 71) .. ( 96, 81) .. controls ( 85, 81) and ( 75, 71) ..
( 75, 60) .. controls ( 75, 48) and ( 85, 39) .. ( 75, 60) .. controls ( 75, 48) and ( 85, 39) ..
@ -136,7 +118,7 @@
( 75, 60) .. controls ( 75, 48) and ( 85, 39) .. ( 75, 60) .. controls ( 75, 48) and ( 85, 39) ..
( 96, 39) .. controls (108, 39) and (117, 48) .. ( 96, 39) .. controls (108, 39) and (117, 48) ..
(117, 60) -- cycle; (117, 60) -- cycle;
\protect\path[fill=github, nonzero rule] \protect\path[fill=color2, nonzero rule]
(103, 45) .. controls (103, 45) and (101, 46) .. (103, 45) .. controls (103, 45) and (101, 46) ..
(101, 47) -- (100, 47) -- (101, 47) -- (100, 47) --
( 99, 47) .. controls ( 99, 47) and ( 98, 47) .. ( 99, 47) .. controls ( 99, 47) and ( 98, 47) ..
@ -235,7 +217,7 @@
\protect\raisebox{-0.12em}{ \protect\raisebox{-0.12em}{
\protect\begin{tikzpicture}[x=0.11em, y=0.11em, xscale=0.015, yscale=-0.015, inner sep=0pt, outer sep=0pt] \protect\begin{tikzpicture}[x=0.11em, y=0.11em, xscale=0.015, yscale=-0.015, inner sep=0pt, outer sep=0pt]
\protect\begin{scope}[shift={(507,387)}] \protect\begin{scope}[shift={(507,387)}]
\protect\path[fill=gitlab,line width=0.057pt] \protect\path[fill=color2,line width=0.057pt]
(105.2000,24.9000) .. controls (102.1000,16.0000) and (89.5000,16.0000) .. (105.2000,24.9000) .. controls (102.1000,16.0000) and (89.5000,16.0000) ..
(86.3000,24.9000) -- (29.8000,199.7000) -- (161.7000,199.7000) .. controls (86.3000,24.9000) -- (29.8000,199.7000) -- (161.7000,199.7000) .. controls
(161.7000,199.7000) and (105.2000,24.9000) .. (105.2000,24.9000) -- cycle (161.7000,199.7000) and (105.2000,24.9000) .. (105.2000,24.9000) -- cycle
@ -256,7 +238,7 @@
\protect\raisebox{-0.15em}{ \protect\raisebox{-0.15em}{
\protect\begin{tikzpicture}[y=0.08em, x=0.08em, xscale=0.020, yscale=-0.020, inner sep=0pt, outer sep=0pt] \protect\begin{tikzpicture}[y=0.08em, x=0.08em, xscale=0.020, yscale=-0.020, inner sep=0pt, outer sep=0pt]
\protect\begin{scope}[shift={(507,387)}] \protect\begin{scope}[shift={(507,387)}]
\protect\path[fill=skype,even odd rule] \protect\path[fill=color2,even odd rule]
(487.6550,288.9690) .. controls (489.0610,278.5690) and (489.8700,267.9960) .. (487.6550,288.9690) .. controls (489.0610,278.5690) and (489.8700,267.9960) ..
(489.8700,257.2330) .. controls (489.8700,128.0770) and (384.5990,23.3610) .. (489.8700,257.2330) .. controls (489.8700,128.0770) and (384.5990,23.3610) ..
(254.7670,23.3610) .. controls (241.8630,23.3610) and (229.2120,24.4210) .. (254.7670,23.3610) .. controls (241.8630,23.3610) and (229.2120,24.4210) ..
@ -292,7 +274,7 @@
\protect\raisebox{-0.12em}{ \protect\raisebox{-0.12em}{
\protect\begin{tikzpicture}[y=2.0pt, x=2.0pt, yscale=-0.1, xscale=0.1, inner sep=0pt, outer sep=0pt] \protect\begin{tikzpicture}[y=2.0pt, x=2.0pt, yscale=-0.1, xscale=0.1, inner sep=0pt, outer sep=0pt]
\protect\begin{scope}[shift={(507,387)}] \protect\begin{scope}[shift={(507,387)}]
\protect\path[fill=googlescholar] (25.0000,2.0000) .. controls (12.3095,2.0000) and (2.0000,12.3095) \protect\path[fill=color2] (25.0000,2.0000) .. controls (12.3095,2.0000) and (2.0000,12.3095)
.. (2.0000,25.0000) .. controls (2.0000,37.6905) and (12.3095,48.0000) .. .. (2.0000,25.0000) .. controls (2.0000,37.6905) and (12.3095,48.0000) ..
(25.0000,48.0000) .. controls (37.6905,48.0000) and (48.0000,37.6905) .. (25.0000,48.0000) .. controls (37.6905,48.0000) and (48.0000,37.6905) ..
(48.0000,25.0000) .. controls (48.0000,12.3095) and (37.6905,2.0000) .. (48.0000,25.0000) .. controls (48.0000,12.3095) and (37.6905,2.0000) ..
@ -345,7 +327,7 @@
\protect\raisebox{-0.12em}{ \protect\raisebox{-0.12em}{
\protect\begin{tikzpicture}[y=1.8pt, x=1.8pt, yscale=-0.15, xscale=0.15, inner sep=0pt, outer sep=0pt] \protect\begin{tikzpicture}[y=1.8pt, x=1.8pt, yscale=-0.15, xscale=0.15, inner sep=0pt, outer sep=0pt]
\protect\begin{scope}[shift={(507,387)}] \protect\begin{scope}[shift={(507,387)}]
\protect\path[fill=matrix] \protect\path[fill=color2]
(0.9360,0.7320) .. controls (0.9360,10.9053) and (0.9360,21.0787) .. (0.9360,0.7320) .. controls (0.9360,10.9053) and (0.9360,21.0787) ..
(0.9360,31.2520) .. controls (1.6673,31.2520) and (2.3987,31.2520) .. (0.9360,31.2520) .. controls (1.6673,31.2520) and (2.3987,31.2520) ..
(3.1300,31.2520) .. controls (3.3452,32.0075) and (2.8778,32.0803) .. (3.1300,31.2520) .. controls (3.3452,32.0075) and (2.8778,32.0803) ..
@ -387,6 +369,76 @@
~} ~}
}{}\par }{}\par
\ifdefempty{\signalsocialsymbol} {
\renewcommand*{\signalsocialsymbol} {
\protect\raisebox{-0.12em}{
\protect\begin{tikzpicture}[y=0.1pt, x=0.1pt, yscale=-0.13, xscale=0.13, inner sep=0pt, outer sep=0pt]
\protect\begin{scope}[shift={(507,387)}]
\protect\path[fill=color2]
(430.1000,180.9000) -- (437.8000,211.9000) .. controls (407.6000,219.3000)
and (378.7000,231.3000) .. (352.1000,247.3000) -- (335.7000,220.0000) ..
controls (365.0000,202.3000) and (396.9000,189.1000) .. (430.1000,180.9000) --
cycle(593.9000,180.9000) -- (586.2000,211.9000) .. controls
(616.4000,219.3000) and (645.3000,231.3000) .. (671.9000,247.3000) --
(688.4000,219.9000) .. controls (659.0000,202.3000) and (627.2000,189.1000) ..
(593.9000,180.9000) -- cycle(220.0000,335.7000) .. controls
(202.3000,365.0000) and (189.1000,396.9000) .. (180.9000,430.1000) --
(211.9000,437.8000) .. controls (219.3000,407.6000) and (231.3000,378.7000) ..
(247.3000,352.1000) -- cycle(202.9000,512.0000) .. controls
(202.9000,496.5000) and (204.0000,481.0000) .. (206.4000,465.7000) --
(174.8000,460.9000) .. controls (169.7000,494.8000) and (169.7000,529.2000) ..
(174.8000,563.1000) -- (206.4000,558.3000) .. controls (204.1000,543.0000) and
(202.9000,527.5000) .. (202.9000,512.0000) -- cycle(688.3000,804.0000) --
(671.9000,776.6000) .. controls (645.3000,792.7000) and (616.5000,804.6000) ..
(586.3000,812.0000) -- (594.0000,843.0000) .. controls (627.2000,834.8000) and
(659.0000,821.7000) .. (688.3000,804.0000) -- cycle(821.1000,512.0000) ..
controls (821.1000,527.5000) and (820.0000,543.0000) .. (817.6000,558.3000) --
(849.2000,563.1000) .. controls (854.3000,529.2000) and (854.3000,494.8000) ..
(849.2000,460.9000) -- (817.6000,465.7000) .. controls (819.9000,481.0000) and
(821.1000,496.5000) .. (821.1000,512.0000) -- cycle(843.1000,593.8000) --
(812.1000,586.1000) .. controls (804.7000,616.3000) and (792.7000,645.2000) ..
(776.7000,671.8000) -- (804.1000,688.3000) .. controls (821.7000,659.0000) and
(834.9000,627.1000) .. (843.1000,593.8000) -- cycle(558.3000,817.6000) ..
controls (527.6000,822.2000) and (496.4000,822.2000) .. (465.7000,817.6000) --
(460.9000,849.2000) .. controls (494.8000,854.3000) and (529.2000,854.3000) ..
(563.1000,849.2000) -- cycle(760.8000,695.3000) .. controls
(742.4000,720.3000) and (720.3000,742.3000) .. (695.3000,760.7000) --
(714.3000,786.4000) .. controls (741.9000,766.1000) and (766.2000,741.9000) ..
(786.6000,714.4000) -- cycle(695.3000,263.2000) .. controls
(720.3000,281.6000) and (742.4000,303.7000) .. (760.8000,328.7000) --
(786.5000,309.5000) .. controls (766.2000,282.0000) and (741.9000,257.7000) ..
(714.5000,237.5000) -- cycle(263.2000,328.7000) .. controls
(281.6000,303.7000) and (303.7000,281.6000) .. (328.7000,263.2000) --
(309.5000,237.5000) .. controls (282.0000,257.8000) and (257.7000,282.1000) ..
(237.5000,309.5000) -- cycle(804.0000,335.7000) -- (776.6000,352.1000) ..
controls (792.7000,378.7000) and (804.6000,407.5000) .. (812.0000,437.7000) --
(843.0000,430.0000) .. controls (834.9000,396.8000) and (821.7000,365.0000) ..
(804.0000,335.7000) -- cycle(465.7000,206.4000) .. controls
(496.4000,201.8000) and (527.6000,201.8000) .. (558.3000,206.4000) --
(563.1000,174.8000) .. controls (529.2000,169.7000) and (494.8000,169.7000) ..
(460.9000,174.8000) -- cycle(279.6000,795.0000) -- (213.6000,810.4000) --
(229.0000,744.4000) -- (197.9000,737.1000) -- (182.5000,803.1000) .. controls
(180.0000,813.9000) and (183.2000,825.2000) .. (191.0000,833.0000) .. controls
(198.8000,840.8000) and (210.1000,844.0000) .. (220.9000,841.5000) --
(286.9000,826.4000) -- cycle(204.5000,708.5000) -- (235.6000,715.7000) --
(246.3000,669.9000) .. controls (230.8000,643.8000) and (219.2000,615.5000) ..
(211.9000,586.0000) -- (180.9000,593.7000) .. controls (187.9000,622.0000) and
(198.4000,649.2000) .. (212.3000,674.7000) -- cycle(353.7000,777.8000) --
(308.0000,788.5000) -- (315.2000,819.6000) -- (348.9000,811.8000) .. controls
(374.5000,825.7000) and (401.7000,836.3000) .. (430.0000,843.2000) --
(437.7000,812.2000) .. controls (408.3000,804.9000) and (380.1000,793.2000) ..
(354.0000,777.6000) -- cycle(512.0000,234.9000) .. controls
(411.2000,235.0000) and (318.3000,289.8000) .. (269.6000,378.0000) .. controls
(220.9000,466.2000) and (223.9000,574.0000) .. (277.6000,659.4000) --
(251.0000,773.1000) -- (364.7000,746.5000) .. controls (464.4000,809.3000) and
(592.9000,802.2000) .. (685.1000,728.8000) .. controls (777.3000,655.4000) and
(812.9000,531.7000) .. (774.0000,420.5000) .. controls (734.8000,309.2000) and
(629.8000,234.8000) .. (512.0000,234.9000) -- cycle;
\protect\end{scope}
\protect\end{tikzpicture}}
~}
}{}\par
\ifdefempty{\codebergsocialsymbol} { \ifdefempty{\codebergsocialsymbol} {
\renewcommand*{\codebergsocialsymbol} { \renewcommand*{\codebergsocialsymbol} {
\protect\raisebox{-0.12em}{ \protect\raisebox{-0.12em}{
@ -397,7 +449,7 @@
(11258.5852,-1839.4433)arc(66.699:32.084:23.067) -- (11258.5852,-1839.4433)arc(66.699:32.084:23.067) --
(11250.0698,-1872.8557)arc(329.460:269.346:0.201313 and 0.150) -- cycle; (11250.0698,-1872.8557)arc(329.460:269.346:0.201313 and 0.150) -- cycle;
\protect\path[scale=0.265, fill=codeberg, line width=0.426pt] \protect\path[scale=0.265, fill=color2, line width=0.426pt]
(11249.3743,-1883.6959)arc(269.785:180.000:23.067)arc(180.001:147.920:23.067) (11249.3743,-1883.6959)arc(269.785:180.000:23.067)arc(180.001:147.920:23.067)
-- (11249.1480,-1873.2412)arc(209.929:330.071:0.360097 and 0.269) -- -- (11249.1480,-1873.2412)arc(209.929:330.071:0.360097 and 0.269) --
(11269.0053,-1848.3766)arc(32.082:-0.002:23.067)arc(360.000:270.000:23.067)arc(270.108:269.892:23.067) (11269.0053,-1848.3766)arc(32.082:-0.002:23.067)arc(360.000:270.000:23.067)arc(270.108:269.892:23.067)
@ -407,53 +459,6 @@
~} ~}
}{}\par }{}\par
\ifdefempty{\simplexsocialsymbol} {
\renewcommand*{\simplexsocialsymbol} {
\protect\raisebox{-0.12em}{
\protect\begin{tikzpicture}[y=0.8pt, x=0.8pt, yscale=-1.0, xscale=1.0, inner sep=0pt, outer sep=0pt]
\protect\begin{scope}[shift={(507,387)}, rotate=45]
\protect\path[fill=simplex!80, scale=0.065]
(0,0) rectangle +(100,20)
(40,-60) rectangle +(20,120);
\protect\path[fill=simplex, scale=0.065]
(0,-60) rectangle +(160,20)
(40,-100) rectangle +(20,60)
(100,-100) rectangle +(20,160)
(100,0) rectangle +(60,20);
\protect\end{scope}
\protect\end{tikzpicture}}
~}
}{}\par
\ifdefempty{\threemasocialsymbol} {
\renewcommand*{\threemasocialsymbol} {
\protect\raisebox{-0.12em}{
\protect\begin{tikzpicture}[y=0.8pt, x=0.8pt, yscale=-1.0, xscale=1.0, inner sep=0pt, outer sep=0pt]
\protect\begin{scope}[shift={(507,387)}]
\protect\path[fill=threema, scale=0.015]
% speech bubble
(137,25) ellipse (400 and 350)
% lock shackle
(244.5,-51) arc [start angle=0, end angle=-180, radius=107]
(199.5,-51) arc [start angle=0, end angle=-180, radius=62]
(199.5,-51) rectangle +(45,52)
(30.5,-51) rectangle +(45,52)
% lock body
(0, 0) rectangle +(274, 196);
% triangle
\protect\path[fill=threema, scale=0.015]
(-200,213) -- +(-41,168) -- +(157,120) -- cycle;
% three dots
\protect\path[fill=threema, scale=0.015]
(-94,553) circle (68)
(144,553) circle (68)
(390,553) circle (68);
\protect\end{scope}
\protect\end{tikzpicture}}
~}
}{}\par
\endinput \endinput
%% end of file `moderncviconstikz.sty'. %% end of file `moderncviconstikz.sty'.

View file

@ -1,5 +1,5 @@
%% start of file `moderncvskillmatrix.sty'. %% start of file `moderncvskillmatrix.sty'.
%% Copyright 2021 David Seus (cryptointerest@posteo.de), 2022-2026 moderncv maintainers (github.com/moderncv). %% Copyright 2021 David Seus (cryptointerest@posteo.de).
% %
% This package provides a skill matrix template for the moderncv package. % This package provides a skill matrix template for the moderncv package.
% Some recruiting firms require applicants to rate their skills, computer % Some recruiting firms require applicants to rate their skills, computer
@ -43,7 +43,7 @@
% Note: % Note:
% -The width of the columns can be adjusted by the \setcvskilllegendcolumns, see \setcvskilllegendcolumns % -The width of the columns can be adjusted by the \setcvskilllegendcolumns, see \setcvskilllegendcolumns
% -The design of the table is such that the <second_level> entry stands in the first column but % -The design of the table is such that the <second_level> entry stands in the first column but
% occupies rows two and three. This has been done to accommodate english and german defaults. % occupies rows two and three. This has been done to accomodate english and german defaults.
% An alternative is provided by \cvskillplainlegend % An alternative is provided by \cvskillplainlegend
% %
% %
@ -71,43 +71,41 @@
% -The width of the columns can be adjusted by the \setcvskilllegendcolumns, see \setcvskilllegendcolumns % -The width of the columns can be adjusted by the \setcvskilllegendcolumns, see \setcvskilllegendcolumns
% %
% %
% \cvskillhead[<post_padding>][<Level>][<Skill>][<Years>][<Comment>]% % \cvskillhead[<post_padding>][<Skill>][<Level>][<Comment>]%
% add skill matrix line acting as header explaining the meaning of columns. % add skill matrix line acting as header explaining the meaning of columns.
% %
% Input: % Input:
% input_1 (optional): padding length appended to the legend, default: <0.25em> % input_1 (optional): padding length appended to the legend, default: <0.25em>
% input_2 (optional): string naming the level column (2nd column), default: <Level> % input_2 (optional): string naming the level column (2nd column), default: <Skill>
% input_3 (optional): string naming the skill column (3rd column), default: <Skill> % input_3 (optional): string naming the skill column (3rd column), default: <Level>
% input_4 (optional): string naming the experience-in-years column (4th column), default: <Years> % input_4 (optional): string naming the comment column (4th column), default: <Comment>
% input_5 (optional): string naming the comment column (5th column), default: <Comment>
% %
% Example usages: % Example usages:
% \cvskillhead print default head. % \cvskillhead print default head.
% \cvskillhead[0.5em] print default head, but adjust post padding. % \cvskillhead[0.5em] print default head, but adjust post padding.
% \cvskillhead[0.25em][Level][F\"ahigkeit][Jahre][Bemerkung] Fully adjust head to German example % \cvskillhead[0.25em][F\"ahigkeit][Level][Bemerkung] Fully adjust head to German example
% %
% Note: % Note:
% - The width of the columns can be adjusted by the \setcvskillcolumns command, see \setcvskillcolumns. % - The width of the columns can be adjusted by the \setcvskillcolumns command, see \setcvskillcolumns.
% %
% %
% \cvskillentry[*][<post_padding>]{<skill_cathegory>}{<0-5>}{<skill_name>}{<years_of_experience>}{<comment>}% % \cvskillentry[*][<post_padding>]{<skill_cathegory>}{<skill_name>}{<0-5>}{<comment>}%
% add cvskill matrix row. % add cvskill matrix row.
% %
% Input: % Input:
% asterix (optional): include horizontal (dashed) line above the entered line. This behaviour depends on the body style. % asterisk (optional): include horizontal (dashed) line above the entered line. This behaviour depends on the body style.
% For the fancy style, the asterix has no meaning. % For the fancy style, the asterisk has no meaning.
% input_1 (optional): padding length appended to the legend, default: <0.25em> % input_1 (optional): padding length appended to the legend, default: <0.25em>
% input_2: string, naming skill category, default: <> % input_2: string, naming skill cathegory, default: <>
% input_3: integer between 0 and 5, describing level of skill. \cvskill{input_2} is called internally, default: <> % input_3: string, naming the skill, default: <>
% input_4: string, naming the skill, default: <> % input_4: integer between 0 and 5, describing level of skill. \cvskill{input_4} is called internally, default: <>
% input_5: positive real number, stating the number of years of experience with this skill , default: <> % input_5: string, explaining details w.r.t. that particual skill default: <>
% input_6: string, explaining details w.r.t. that particular skill default: <>
% %
% Example usages: % Example usages:
% \cvskillentry*{Language:}{3}{Python}{2}{I have done a million projects with Python} % \cvskillentry*{Language:}{Python}{3}{I'm so experienced in Python and have realised a million projects. At least.}
% \cvskillentry{}{2}{Lilypond}{14}{So much sheet music! Man I'm the best!} % \cvskillentry{}{Lilypond}{2}{So much sheet music! Man, I'm the best!}
% \cvskillentry{}{3}{\LaTeX}{14}{Clearly I rock at \LaTeX} % \cvskillentry{}{\LaTeX}{3}{Clearly I rock at \LaTeX}
% \cvskillentry*[1.5em]{OS:}{3}{Linux}{2}{I only use Archlinux} % \cvskillentry*{OS:}{Linux}{3}{I only use Archlinux btw}
% %
% Note: % Note:
% - The width of the columns can be adjusted by the \setcvskillcolumns command, see \setcvskillcolumns. % - The width of the columns can be adjusted by the \setcvskillcolumns command, see \setcvskillcolumns.
@ -121,28 +119,28 @@
% and actually yield a decent looking table. The defaults depend on the style used and are chosen reasonably. % and actually yield a decent looking table. The defaults depend on the style used and are chosen reasonably.
% However, depending on the user input and the style that is used some of the columns might need adjustments. % However, depending on the user input and the style that is used some of the columns might need adjustments.
% The \setcvskillcolumns command provides means to influence the width of the first, the third and the fourth % The \setcvskillcolumns command provides means to influence the width of the first, the third and the fourth
% skill matrix column. The second column containing the output of \cvskill remains fixed width. The last column, % skill matrix column. The second column containg the output of \cvskill remains fixed width. The last column,
% the comment column gets recalculated according to the setting of the other columns. % the comment column gets recalculated according to the setting of the other columns.
% %
% Input % Input
% Input_1 (optional): width smaller than \textwidth, default <\skillmatrix@hintscolumnwidth> % Input_1 (optional): width smaller than \textwidth, default <\skillmatrix@hintscolumnwidth>
% Input_2 (optional): float between 0 and 1 adjusting how much percent of the table width without % Input_2 (optional): float between 0 and 1 adjusting how much percent of the table width without
% the first column is used columns two, three and four. Through this parameter % the first column is used columns two and three. Through this parameter
% the width of the 3rd column (skill name) can be adjusted, default <\skillmatrix@columnwidth> % the width of the 3rd column (level) can be adjusted, default <\skillmatrix@columnwidth>
% Input_3 (optional): width smaller than \textwidth, setting the width of the 4th column % Input_3 (optional): width smaller than \textwidth, setting the width of the 4th column
% (Years of experience), default <\cvskill@experiencewidth> % (Comment), default <\cvskill@experiencewidth>
% %
% Example usage % Example usage
% \setcvskillcolumns[5em][][]% adjust first column. Same as \setcvskillcolumns[5em] % \setcvskillcolumns[5em][][]% adjust first column. Same as \setcvskillcolumns[5em]
% \setcvskillcolumns[][0.45][]% adjust third (skill) column. Same as \setcvskillcolumns[][0.45] % \setcvskillcolumns[][0.45][]% adjust third (skill) column. Same as \setcvskillcolumns[][0.45]
% \setcvskillcolumns[][][\widthof{``Year''}]% adjust fourth (years) column. % \setcvskillcolumns[][][\widthof{``Comment''}]% adjust fourth (comment) column.
% \setcvskillcolumns[\widthof{``Language''}][0.48][]% adjust 1st and 3rd columns. Same as \setcvskillcolumns[\widthof{``Language''}][0.45] % \setcvskillcolumns[\widthof{``Language''}][0.48][]% adjust 1st and 3rd columns. Same as \setcvskillcolumns[\widthof{``Language''}][0.45]
% \setcvskillcolumns[\widthof{``Management Tools''}][0.6][3em]% adjust all at once. % \setcvskillcolumns[\widthof{``Management Tools''}][0.6][3em]% ajust all at once.
% %
% Note % Note
% - For the styles 'classic' and 'casual' the first column is set to hintscolumnwidth such that % - For the styles 'classic' and 'casual' the first column is set to hintscolumnwidth such that
% it aligns with the rest of the entries. A readjustment of the first column should therefore % it aligns with the rest of the entries. A readjustment of the first column should therefor
% be avoided. It is recommended to only use \setcvskillcolumns in the form of % be avoided. It is recomended to only use \setcvskillcolumns in the form of
% \setcvskillcolumns[][<factor>][<width>], thereby leaving the defaults in place for the first column. % \setcvskillcolumns[][<factor>][<width>], thereby leaving the defaults in place for the first column.
% %
% %
@ -153,7 +151,7 @@
% such that the default english and german examples look good. % such that the default english and german examples look good.
% However, depending on the user input (translation) and the style that is used some adjustment might be needed. % However, depending on the user input (translation) and the style that is used some adjustment might be needed.
% The \setcvskilllegendcolumns command provides means to influence all columns except the ones containing % The \setcvskilllegendcolumns command provides means to influence all columns except the ones containing
% \cvskill commands. The second column containing the output of \cvskill remains fixed width. The last column, % \cvskill commands. The second column containg the output of \cvskill remains fixed width. The last column,
% the comment column gets recalculated according to the setting of the other columns. % the comment column gets recalculated according to the setting of the other columns.
% %
% Input % Input
@ -161,24 +159,24 @@
% where depending on the style the legend_string gets printed. In case the % where depending on the style the legend_string gets printed. In case the
% string is left empty adjusting this width allows moving the legend horizontally. % string is left empty adjusting this width allows moving the legend horizontally.
% Default <\skilllegend@hintscolumnwidth> % Default <\skilllegend@hintscolumnwidth>
% Input_2 (optional): float between 0 and 1 influencing the width of the left legend descriptor column, % Input_2 (optional): float between 0 and 1 influencing the width of the left legend descritor column,
% aka \cvskilllegend@leftdescriptorwidth. The descriptor column on the right, % aka \cvskilllegend@leftdescriptorwidth. The desriptor column on the right,
% \cvskilllegend@rightdescriptorwidth is influenced by the factor 1-<factor>. % \cvskilllegend@rightdescriptorwidth is influenced by the factor 1-<factor>.
% Default <\skilllegend@leftdesriptorfactor> % Default <\skilllegend@leftdesriptorfactor>
% %
% Example usage % Example usage
% \setcvskilllegendcolumns[][0.45]%% adjust left descriptor column. % \setcvskilllegendcolumns[][0.45]%% adjust left desriptor column.
% \setcvskilllegendcolumns[\widthof{``Legend''}][0.45]% adjust both left descriptor column and string column % \setcvskilllegendcolumns[\widthof{``Legend''}][0.45]% adjust both left descriptor column and string column
% %
% Note % Note
% - Due to implementation of \cvskilllegend for style 'fancy' (moderncvbodyv) % - Due to implementation of \cvskilllegend for style 'fancy' (moderncvbodyv)
% the first optional variable has no effect in this case. % the first optional variable has no effect in this case.
% - For the styles 'classic' and 'casual' the first column is set to hintscolumnwidth such that % - For the styles 'classic' and 'casual' the first column is set to hintscolumnwidth such that
% it aligns with the rest of the entries. A readjustment of the first column should therefore % it aligns with the rest of the entries. A readjustment of the first column should therefor
% be avoided. It is recommended to only use \cvskilllegend in the form of % be avoided. It is recomended to only use \cvskilllegend in the form of
% \cvskilllegend[][<factor>], thereby leaving the defaults in place for the first column. % \cvskilllegend[][<factor>], thereby leaving the defaults in place for the first column.
% - For style 'banking' the first column is set to align with the rest of the \cvskillentry entries % - For style 'banking' the first column is set to align with the rest of the \cvskillentry entries
% Therefore adjusting the first column can be used to widen the table while moving it around. If no % Therefor adjusting the first column can be used to widen the table while moving it around. If no
% legend string is used, setting \cvskilllegend[0em] maximises the real enstate for the legend. % legend string is used, setting \cvskilllegend[0em] maximises the real enstate for the legend.
% %
% %
@ -203,9 +201,9 @@
% identification % identification
%------------------------------------------------------------------------------- %-------------------------------------------------------------------------------
\NeedsTeXFormat{LaTeX2e} \NeedsTeXFormat{LaTeX2e}
\ProvidesPackage{moderncvskillmatrix}[2026-01-31 v2.5.1 modern curriculum vitae and letter skill matrix] \ProvidesPackage{moderncvskillmatrix}[2022-03-18 v2.4.0 modern curriculum vitae and letter skill matrix]
% The definitions need to be adjusted depending on which moderncvbody<i-v>.sty style is usde. % The definitions need to be adjusted depending on which moderncvbody<i-v>.sty style is used.
% body type options: "moderncvbodyi" (default), "moderncvbodyii", "moderncvbodyiii", "moderncvbodyiv" or "moderncvbodyv" % body type options: "moderncvbodyi" (default), "moderncvbodyii", "moderncvbodyiii", "moderncvbodyiv" or "moderncvbodyv"
\@initializeif{\if@moderncvbodyi}\@moderncvbodyifalse \@initializeif{\if@moderncvbodyi}\@moderncvbodyifalse
\DeclareOption{moderncvbodyi}{\@moderncvbodyitrue\@moderncvbodyiifalse\@moderncvbodyiiifalse\@moderncvbodyivfalse\@moderncvbodyvfalse} \DeclareOption{moderncvbodyi}{\@moderncvbodyitrue\@moderncvbodyiifalse\@moderncvbodyiiifalse\@moderncvbodyivfalse\@moderncvbodyvfalse}
@ -230,7 +228,6 @@
% required packages % required packages
%------------------------------------------------------------------------------- %-------------------------------------------------------------------------------
\RequirePackage{tikz} \RequirePackage{tikz}
\usetikzlibrary{babel}
\RequirePackage{multirow} \RequirePackage{multirow}
% package arydshln is needed for the dashed lines but is incompatible with fancy style % package arydshln is needed for the dashed lines but is incompatible with fancy style
\if@moderncvbodyv% \if@moderncvbodyv%
@ -317,11 +314,13 @@
\setlength{\skillmatrix@padding}{1ex}% \setlength{\skillmatrix@padding}{1ex}%
\setlength{\skillmatrix@hintscolumnwidth}{\hintscolumnwidth}% \setlength{\skillmatrix@hintscolumnwidth}{\hintscolumnwidth}%
\setlength{\cvskill@width}{\widthof{\cvskill{5}}}% \setlength{\cvskill@width}{\widthof{\cvskill{5}}}%
\setlength{\cvskill@experiencewidth}{\widthof{``Year''}}% %\setlength{\cvskill@experiencewidth}{\widthof{``Year''}}%
\setlength{\skillmatrix@bodylength}{\maincolumnwidth}% \setlength{\skillmatrix@bodylength}{\maincolumnwidth}%
\setlength{\skillmatrix@columnwidth}{0.45\skillmatrix@bodylength}% \setlength{\skillmatrix@columnwidth}{0.45\skillmatrix@bodylength}%
\setlength{\cvskill@descriptorwidth}{\skillmatrix@columnwidth-\cvskill@width-\cvskill@experiencewidth}% \setlength{\cvskill@descriptorwidth}{\skillmatrix@columnwidth-\cvskill@width}%
\setlength{\skillmatrix@commentwidth}{\skillmatrix@bodylength-\skillmatrix@columnwidth-3\skillmatrix@padding}% % \setlength{\cvskill@descriptorwidth}{\skillmatrix@columnwidth-\cvskill@width-\cvskill@experiencewidth}%
\setlength{\skillmatrix@commentwidth}{\skillmatrix@bodylength-\skillmatrix@columnwidth-2\skillmatrix@padding}%
% \setlength{\skillmatrix@commentwidth}{\skillmatrix@bodylength-\skillmatrix@columnwidth-3\skillmatrix@padding}%
% lengths and definitions needed for the legends % lengths and definitions needed for the legends
% note that \skillmatrix@padding also affects the appearance of legends % note that \skillmatrix@padding also affects the appearance of legends
\setlength{\skilllegend@padding}{0.25ex}% \setlength{\skilllegend@padding}{0.25ex}%
@ -340,8 +339,10 @@
\setlength{\cvskill@experiencewidth}{\widthof{``Year''}}% \setlength{\cvskill@experiencewidth}{\widthof{``Year''}}%
\setlength{\skillmatrix@bodylength}{\maincolumnwidth-\skillmatrix@hintscolumnwidth-\separatorcolumnwidth}% \setlength{\skillmatrix@bodylength}{\maincolumnwidth-\skillmatrix@hintscolumnwidth-\separatorcolumnwidth}%
\setlength{\skillmatrix@columnwidth}{0.45\skillmatrix@bodylength}% \setlength{\skillmatrix@columnwidth}{0.45\skillmatrix@bodylength}%
\setlength{\cvskill@descriptorwidth}{\skillmatrix@columnwidth-\cvskill@width-\cvskill@experiencewidth}% \setlength{\cvskill@descriptorwidth}{\skillmatrix@columnwidth-\cvskill@width}%
\setlength{\skillmatrix@commentwidth}{\skillmatrix@bodylength-\skillmatrix@columnwidth-3\skillmatrix@padding}% % \setlength{\cvskill@descriptorwidth}{\skillmatrix@columnwidth-\cvskill@width-\cvskill@experiencewidth}%
\setlength{\skillmatrix@commentwidth}{\skillmatrix@bodylength-\skillmatrix@columnwidth-2\skillmatrix@padding}%
% \setlength{\skillmatrix@commentwidth}{\skillmatrix@bodylength-\skillmatrix@columnwidth-3\skillmatrix@padding}%
% lengths and definitions needed for the legends % lengths and definitions needed for the legends
% note that \skillmatrix@padding also affects the appearance of legends % note that \skillmatrix@padding also affects the appearance of legends
\setlength{\skilllegend@padding}{0.25ex}% \setlength{\skilllegend@padding}{0.25ex}%
@ -360,8 +361,10 @@
\setlength{\cvskill@experiencewidth}{\widthof{``Year''}} \setlength{\cvskill@experiencewidth}{\widthof{``Year''}}
\setlength{\skillmatrix@bodylength}{\maincolumnwidth-\skillmatrix@hintscolumnwidth-\separatorcolumnwidth} \setlength{\skillmatrix@bodylength}{\maincolumnwidth-\skillmatrix@hintscolumnwidth-\separatorcolumnwidth}
\setlength{\skillmatrix@columnwidth}{0.45\skillmatrix@bodylength}% \setlength{\skillmatrix@columnwidth}{0.45\skillmatrix@bodylength}%
\setlength{\cvskill@descriptorwidth}{\skillmatrix@columnwidth-\cvskill@width-\cvskill@experiencewidth} \setlength{\cvskill@descriptorwidth}{\skillmatrix@columnwidth-\cvskill@width}
\setlength{\skillmatrix@commentwidth}{\skillmatrix@bodylength-\skillmatrix@columnwidth-3\skillmatrix@padding}% % \setlength{\cvskill@descriptorwidth}{\skillmatrix@columnwidth-\cvskill@width-\cvskill@experiencewidth}
\setlength{\skillmatrix@commentwidth}{\skillmatrix@bodylength-\skillmatrix@columnwidth-2\skillmatrix@padding}%
% \setlength{\skillmatrix@commentwidth}{\skillmatrix@bodylength-\skillmatrix@columnwidth-3\skillmatrix@padding}%
% lengths and definitions needed for the legends % lengths and definitions needed for the legends
% note that \skillmatrix@padding also affects the appearance of legends % note that \skillmatrix@padding also affects the appearance of legends
\setlength{\skilllegend@padding}{0.25ex} \setlength{\skilllegend@padding}{0.25ex}
@ -379,8 +382,10 @@
\setlength{\cvskill@experiencewidth}{\widthof{``Year''}}% \setlength{\cvskill@experiencewidth}{\widthof{``Year''}}%
\setlength{\skillmatrix@bodylength}{\maincolumnwidth-\skillmatrix@hintscolumnwidth-\skillmatrix@padding}%\skillmatrix@hintscolumnwidth \setlength{\skillmatrix@bodylength}{\maincolumnwidth-\skillmatrix@hintscolumnwidth-\skillmatrix@padding}%\skillmatrix@hintscolumnwidth
\setlength{\skillmatrix@columnwidth}{0.45\skillmatrix@bodylength}% \setlength{\skillmatrix@columnwidth}{0.45\skillmatrix@bodylength}%
\setlength{\cvskill@descriptorwidth}{\skillmatrix@columnwidth-\cvskill@width-\cvskill@experiencewidth}% \setlength{\cvskill@descriptorwidth}{\skillmatrix@columnwidth-\cvskill@width}%
\setlength{\skillmatrix@commentwidth}{\skillmatrix@bodylength-\skillmatrix@columnwidth-3\skillmatrix@padding}% % \setlength{\cvskill@descriptorwidth}{\skillmatrix@columnwidth-\cvskill@width-\cvskill@experiencewidth}%
\setlength{\skillmatrix@commentwidth}{\skillmatrix@bodylength-\skillmatrix@columnwidth-2\skillmatrix@padding}%
% \setlength{\skillmatrix@commentwidth}{\skillmatrix@bodylength-\skillmatrix@columnwidth-3\skillmatrix@padding}%
% lengths and definitions needed for the legends % lengths and definitions needed for the legends
% note that \skillmatrix@padding also affects the appearance of legends % note that \skillmatrix@padding also affects the appearance of legends
\setlength{\skilllegend@padding}{0.25ex}% \setlength{\skilllegend@padding}{0.25ex}%
@ -397,33 +402,33 @@
\DeclareDocumentCommand{\setcvskillcolumns}{+O{\skillmatrix@hintscolumnwidth} +O{\skillmatrix@columnwidth} +O{\cvskill@experiencewidth}}{% \DeclareDocumentCommand{\setcvskillcolumns}{+O{\skillmatrix@hintscolumnwidth} +O{\skillmatrix@columnwidth} +O{\cvskill@experiencewidth}}{%
% adjust column width of skill table % adjust column width of skill table
% %
% The \cvskillentry command comes with default FIXED width definitions of the kill matrix for the columns % The \cvskillentry command comes with default FIXED width definitions of the skill matrix for the columns
% based on the author's own skill matrix. This is necessary to ensure that the entries are nicely aligned % based on the author's own skill matrix. This is necessary to ensure that the entries are nicely aligned
% and actually yield a decent looking table. The defaults depend on the style used and are chosen reasonably. % and actually yield a decent looking table. The defaults depend on the style used and are chosen reasonably.
% However, depending on the user input and the style that is used some of the columns might need adjustments. % However, depending on the user input and the style that is used some of the columns might need adjustments.
% The \setcvskillcolumns command provides means to influence the width of the first, the third and the fourth % The \setcvskillcolumns command provides means to influence the width of the first, the third and the fourth
% skill matrix column. The second column containing the output of \cvskill remains fixed width. The last column, % skill matrix column. The second column containg the output of \cvskill remains fixed width. The last column,
% the comment column gets recalculated according to the setting of the other columns. % the comment column gets recalculated according to the setting of the other columns.
% %
% Input % Input
% Input_1 (optional): width smaller than \textwidth, default <\skillmatrix@hintscolumnwidth> % Input_1 (optional): width smaller than \textwidth, default <\skillmatrix@hintscolumnwidth>
% Input_2 (optional): float between 0 and 1 adjusting how much percent of the table width without % Input_2 (optional): float between 0 and 1 adjusting how much percent of the table width without
% the first column is used columns two, three and four. Through this parameter % the first column is used columns two and three. Through this parameter
% the width of the 3rd column (skill name) can be adjusted, default <\skillmatrix@columnwidth> % the width of the 3rd column (level) can be adjusted, default <\skillmatrix@columnwidth>
% Input_3 (optional): width smaller than \textwidth, setting the width of the 4th column % Input_3 (optional): width smaller than \textwidth, setting the width of the 4th column
% (Years of experience), default <\cvskill@experiencewidth> % (Comment), default <\cvskill@experiencewidth>
% %
% Example usage % Example usage
% \setcvskillcolumns[5em][][]% adjust first column. Same as \setcvskillcolumns[5em] % \setcvskillcolumns[5em][][]% adjust first column. Same as \setcvskillcolumns[5em]
% \setcvskillcolumns[][0.45][]% adjust third (skill) column. Same as \setcvskillcolumns[][0.45] % \setcvskillcolumns[][0.45][]% adjust third (skill) column. Same as \setcvskillcolumns[][0.45]
% \setcvskillcolumns[][][\widthof{``Year''}]% adjust fourth (years) column. % \setcvskillcolumns[][][\widthof{``Comment''}]% adjust fourth (comment) column.
% \setcvskillcolumns[\widthof{``Language''}][0.48][]% adjust 1st and 3rd columns. Same as \setcvskillcolumns[\widthof{``Language''}][0.45] % \setcvskillcolumns[\widthof{``Language''}][0.48][]% adjust 1st and 3rd columns. Same as \setcvskillcolumns[\widthof{``Language''}][0.45]
% \setcvskillcolumns[\widthof{``Management Tools''}][0.6][3em]% adjust all at once. % \setcvskillcolumns[\widthof{``Management Tools''}][0.6][3em]% ajust all at once.
% %
% Note % Note
% - For the styles 'classic' and 'casual' the first column is set to hintscolumnwidth such that % - For the styles 'classic' and 'casual' the first column is set to hintscolumnwidth such that
% it aligns with the rest of the entries. A readjustment of the first column should therefore % it aligns with the rest of the entries. A readjustment of the first column should therefor
% be avoided. It is recommended to only use \setcvskillcolumns in the form of % be avoided. It is recomended to only use \setcvskillcolumns in the form of
% \setcvskillcolumns[][<factor>][<width>], thereby leaving the defaults in place for the first column. % \setcvskillcolumns[][<factor>][<width>], thereby leaving the defaults in place for the first column.
% %
\def\arg@new@hintscolumnwidth{#1}% <-- all these terminal % signs are necessary for the fancy style to not show weird spaces!!! \def\arg@new@hintscolumnwidth{#1}% <-- all these terminal % signs are necessary for the fancy style to not show weird spaces!!!
@ -458,7 +463,8 @@
\setlength{\cvskill@descriptorwidth}{\skillmatrix@columnwidth-\cvskill@width-\cvskill@experiencewidth}% \setlength{\cvskill@descriptorwidth}{\skillmatrix@columnwidth-\cvskill@width-\cvskill@experiencewidth}%
}% }%
\setlength{\cvskill@descriptorwidth}{\skillmatrix@columnwidth-\cvskill@width-\cvskill@experiencewidth}% \setlength{\cvskill@descriptorwidth}{\skillmatrix@columnwidth-\cvskill@width-\cvskill@experiencewidth}%
\setlength{\skillmatrix@commentwidth}{\skillmatrix@bodylength-\skillmatrix@columnwidth-3\skillmatrix@padding}% \setlength{\skillmatrix@commentwidth}{\skillmatrix@bodylength-\skillmatrix@columnwidth-2\skillmatrix@padding}%
% \setlength{\skillmatrix@commentwidth}{\skillmatrix@bodylength-\skillmatrix@columnwidth-3\skillmatrix@padding}%
}% }%
% Case \setcvskillcolumns[] nothing needs to be done here recalculate lengths affected by the change % Case \setcvskillcolumns[] nothing needs to be done here recalculate lengths affected by the change
}{% }{%
@ -491,7 +497,8 @@
}% }%
}% }%
\setlength{\cvskill@descriptorwidth}{\skillmatrix@columnwidth-\cvskill@width-\cvskill@experiencewidth}% \setlength{\cvskill@descriptorwidth}{\skillmatrix@columnwidth-\cvskill@width-\cvskill@experiencewidth}%
\setlength{\skillmatrix@commentwidth}{\skillmatrix@bodylength-\skillmatrix@columnwidth-3\skillmatrix@padding}% \setlength{\skillmatrix@commentwidth}{\skillmatrix@bodylength-\skillmatrix@columnwidth-2\skillmatrix@padding}%
% \setlength{\skillmatrix@commentwidth}{\skillmatrix@bodylength-\skillmatrix@columnwidth-3\skillmatrix@padding}%
}% }%
}% }%
% %
@ -503,7 +510,7 @@
% such that the default english and german examples look good. % such that the default english and german examples look good.
% However, depending on the user input (translation) and the style that is used some adjustment might be needed. % However, depending on the user input (translation) and the style that is used some adjustment might be needed.
% The \setcvskilllegendcolumns command provides means to influence all columns except the ones containing % The \setcvskilllegendcolumns command provides means to influence all columns except the ones containing
% \cvskill commands. The second column containing the output of \cvskill remains fixed width. The last column, % \cvskill commands. The second column containg the output of \cvskill remains fixed width. The last column,
% the comment column gets recalculated according to the setting of the other columns. % the comment column gets recalculated according to the setting of the other columns.
% %
% Input % Input
@ -511,24 +518,24 @@
% where depending on the style the legend_string gets printed. In case the % where depending on the style the legend_string gets printed. In case the
% string is left empty adjusting this width allows moving the legend horizontally. % string is left empty adjusting this width allows moving the legend horizontally.
% Default <\skilllegend@hintscolumnwidth> % Default <\skilllegend@hintscolumnwidth>
% Input_2 (optional): float between 0 and 1 influencing the width of the left legend descriptor column, % Input_2 (optional): float between 0 and 1 influencing the width of the left legend descritor column,
% aka \cvskilllegend@leftdescriptorwidth. The descriptor column on the right, % aka \cvskilllegend@leftdescriptorwidth. The desriptor column on the right,
% \cvskilllegend@rightdescriptorwidth is influenced by the factor 1-<factor>. % \cvskilllegend@rightdescriptorwidth is influenced by the factor 1-<factor>.
% Default <\skilllegend@leftdesriptorfactor> % Default <\skilllegend@leftdesriptorfactor>
% %
% Example usage % Example usage
% \setcvskilllegendcolumns[][0.45]%% adjust left descriptor column. % \setcvskilllegendcolumns[][0.45]%% adjust left desriptor column.
% \setcvskilllegendcolumns[\widthof{``Legend''}][0.45]% adjust both left descriptor column and string column % \setcvskilllegendcolumns[\widthof{``Legend''}][0.45]% adjust both left descriptor column and string column
% %
% Note % Note
% - Due to implementation of \cvskilllegend for style 'fancy' (moderncvbodyv) % - Due to implementation of \cvskilllegend for style 'fancy' (moderncvbodyv)
% the first optional variable has no effect in this case. % the first optional variable has no effect in this case.
% - For the styles 'classic' and 'casual' the first column is set to hintscolumnwidth such that % - For the styles 'classic' and 'casual' the first column is set to hintscolumnwidth such that
% it aligns with the rest of the entries. A readjustment of the first column should therefore % it aligns with the rest of the entries. A readjustment of the first column should therefor
% be avoided. It is recommended to only use \cvskilllegend in the form of % be avoided. It is recomended to only use \cvskilllegend in the form of
% \cvskilllegend[][<factor>], thereby leaving the defaults in place for the first column. % \cvskilllegend[][<factor>], thereby leaving the defaults in place for the first column.
% - For style 'banking' the first column is set to align with the rest of the \cvskillentry entries % - For style 'banking' the first column is set to align with the rest of the \cvskillentry entries
% Therefore adjusting the first column can be used to widen the table while moving it around. If no % Therefor adjusting the first column can be used to widen the table while moving it around. If no
% legend string is used, setting \cvskilllegend[0em] maximises the real enstate for the legend. % legend string is used, setting \cvskilllegend[0em] maximises the real enstate for the legend.
% %
\def\arg@new@legend@hintscolumnwidth{#1}% \def\arg@new@legend@hintscolumnwidth{#1}%
@ -576,8 +583,8 @@
% Print legend table explaining the meaning of \cvskill{1}...\cvskill{5}. % Print legend table explaining the meaning of \cvskill{1}...\cvskill{5}.
% %
% Input: % Input:
% asterix (optional): include vertical (dashed) lines. This behaviour depends on the body style. % asterisk (optional): include vertical (dashed) lines. This behaviour depends on the body style.
% For the fancy style, the asterix has no meaning. % For the fancy style, the asterisk has no meaning.
% input_1 (optional): padding length appended to the legend, default: <0.25em> % input_1 (optional): padding length appended to the legend, default: <0.25em>
% input_2 (optional): string describing meaning of \cvskill{1}, default: <basic knowledge> % input_2 (optional): string describing meaning of \cvskill{1}, default: <basic knowledge>
% input_3 (optional): string describing meaning of \cvskill{2}, default: <intermediate knowledge with some project experience> % input_3 (optional): string describing meaning of \cvskill{2}, default: <intermediate knowledge with some project experience>
@ -594,7 +601,7 @@
% Note: % Note:
% -The width of the columns can be adjusted by the \setcvskilllegendcolumns, see \setcvskilllegendcolumns % -The width of the columns can be adjusted by the \setcvskilllegendcolumns, see \setcvskilllegendcolumns
% -The design of the table is such that the <second_level> entry stands in the first column but % -The design of the table is such that the <second_level> entry stands in the first column but
% occupies rows two and three. This has been done to accommodate english and german defaults. % occupies rows two and three. This has been done to accomodate english and german defaults.
% An alternative is provided by \cvskillplainlegend % An alternative is provided by \cvskillplainlegend
% declare default legend entries % declare default legend entries
@ -618,7 +625,8 @@
p{\cvskill@width}@{\hspace{\skilllegend@padding}};{.6pt/1pt}% p{\cvskill@width}@{\hspace{\skilllegend@padding}};{.6pt/1pt}%
p{2\skilllegend@padding}% p{2\skilllegend@padding}%
p{\cvskilllegend@rightdescriptorwidth}@{}}% p{\cvskilllegend@rightdescriptorwidth}@{}}%
\raggedleft\hintstyle{#8} & \cvskill{1}& & {\skillLegend@FontSize #3} & \cvskill{3}& &{\skillLegend@FontSize #5 } \\% \cdashline{2-7}[6pt/1.5pt]
\raggedleft\hintstyle{{\bfseries#8}} & \cvskill{1}& & {\skillLegend@FontSize #3} & \cvskill{3}& &{\skillLegend@FontSize #5 } \\%
% %
& \cvskill{2} & & \multirow{2}{\cvskilllegend@leftdescriptorwidth}{{\skillLegend@FontSize #4}} & \cvskill{4}& & {\skillLegend@FontSize #6 } \\% & \cvskill{2} & & \multirow{2}{\cvskilllegend@leftdescriptorwidth}{{\skillLegend@FontSize #4}} & \cvskill{4}& & {\skillLegend@FontSize #6 } \\%
% %
@ -637,7 +645,7 @@
p{\cvskilllegend@leftdescriptorwidth}@{\hspace{2\skillmatrix@padding}}% p{\cvskilllegend@leftdescriptorwidth}@{\hspace{2\skillmatrix@padding}}%
p{\cvskill@width}@{\hspace{\skilllegend@padding}}% p{\cvskill@width}@{\hspace{\skilllegend@padding}}%
p{\cvskilllegend@rightdescriptorwidth}@{}}% p{\cvskilllegend@rightdescriptorwidth}@{}}%
\raggedleft\hintstyle{#8} & \cvskill{1}\, & \,{\skillLegend@FontSize #3} & \cvskill{3}\, &\,{\skillLegend@FontSize #5 } \\% \raggedleft\hintstyle{{\bfseries#8}} & \cvskill{1}\, & \,{\skillLegend@FontSize #3} & \cvskill{3}\, &\,{\skillLegend@FontSize #5 } \\%
% %
& \cvskill{2}\, & \,\multirow{2}{\cvskilllegend@leftdescriptorwidth}{{\skillLegend@FontSize #4}} & \cvskill{4}\, &\,{\skillLegend@FontSize #6 } \\% & \cvskill{2}\, & \,\multirow{2}{\cvskilllegend@leftdescriptorwidth}{{\skillLegend@FontSize #4}} & \cvskill{4}\, &\,{\skillLegend@FontSize #6 } \\%
% %
@ -749,8 +757,8 @@
% In this legend, the first three skill levels are in one column % In this legend, the first three skill levels are in one column
% %
% Input: % Input:
% asterix (optional): include vertical (dashed) lines. This behaviour depends on the body style. % asterisk (optional): include vertical (dashed) lines. This behaviour depends on the body style.
% For the fancy style, the asterix has no meaning. % For the fancy style, the asterisk has no meaning.
% input_1 (optional): padding length appended to the legend, default: <0.25em> % input_1 (optional): padding length appended to the legend, default: <0.25em>
% input_2 (optional): string describing meaning of \cvskill{1}, default: <basic knowledge> % input_2 (optional): string describing meaning of \cvskill{1}, default: <basic knowledge>
% input_3 (optional): string describing meaning of \cvskill{2}, default: <intermediate knowledge with some project experience> % input_3 (optional): string describing meaning of \cvskill{2}, default: <intermediate knowledge with some project experience>
@ -768,7 +776,7 @@
% -The width of the columns can be adjusted by the \setcvskilllegendcolumns, see \setcvskilllegendcolumns % -The width of the columns can be adjusted by the \setcvskilllegendcolumns, see \setcvskilllegendcolumns
% declare default legend entries % declare default legend entries
\NewDocumentCommand\skillPlainLegend@defaultLevelOne{}{basic knowledge} \NewDocumentCommand\skillPlainLegend@defaultLevelOne{}{basic knowlegde}
\NewDocumentCommand\skillPlainLegend@defaultLevelTwo{}{intermediate knowledge, some project experience} \NewDocumentCommand\skillPlainLegend@defaultLevelTwo{}{intermediate knowledge, some project experience}
\NewDocumentCommand\skillPlainLegend@defaultLevelThree{}{extensive project experience} \NewDocumentCommand\skillPlainLegend@defaultLevelThree{}{extensive project experience}
\NewDocumentCommand\skillPlainLegend@defaultLevelFour{}{deepened expert knowledge} \NewDocumentCommand\skillPlainLegend@defaultLevelFour{}{deepened expert knowledge}
@ -788,7 +796,7 @@
p{\cvskill@width}@{\hspace{\skilllegend@padding}};{.6pt/1pt}% p{\cvskill@width}@{\hspace{\skilllegend@padding}};{.6pt/1pt}%
p{2\skilllegend@padding}% p{2\skilllegend@padding}%
p{\cvskilllegend@rightdescriptorwidth}@{}}% p{\cvskilllegend@rightdescriptorwidth}@{}}%
\raggedleft\hintstyle{#8} & \cvskill{1}& & {\skillLegend@FontSize #3} & \cvskill{4}& &{\skillLegend@FontSize #6} \\% \raggedleft\hintstyle{{\bfseries#8}} & \cvskill{1}& & {\skillLegend@FontSize #3} & \cvskill{4}& &{\skillLegend@FontSize #6} \\%
% %
& \cvskill{2} & & {\skillLegend@FontSize #4} & \cvskill{5}& & {\skillLegend@FontSize #7} \\% & \cvskill{2} & & {\skillLegend@FontSize #4} & \cvskill{5}& & {\skillLegend@FontSize #7} \\%
% %
@ -807,7 +815,7 @@
p{\cvskilllegend@leftdescriptorwidth}@{\hspace{2\skillmatrix@padding}}% p{\cvskilllegend@leftdescriptorwidth}@{\hspace{2\skillmatrix@padding}}%
p{\cvskill@width}@{\hspace{2\skilllegend@padding}}% p{\cvskill@width}@{\hspace{2\skilllegend@padding}}%
p{\cvskilllegend@rightdescriptorwidth}@{}}% p{\cvskilllegend@rightdescriptorwidth}@{}}%
\raggedleft\hintstyle{#8} & \cvskill{1} & {\skillLegend@FontSize #3} & \cvskill{4} &{\skillLegend@FontSize #6} \\% \raggedleft\hintstyle{{\bfseries#8}} & \cvskill{1} & {\skillLegend@FontSize #3} & \cvskill{4} &{\skillLegend@FontSize #6} \\%
% %
& \cvskill{2} & {\skillLegend@FontSize #4} & \cvskill{5} &{\skillLegend@FontSize #7} \\% & \cvskill{2} & {\skillLegend@FontSize #4} & \cvskill{5} &{\skillLegend@FontSize #7} \\%
% %
@ -909,47 +917,46 @@
% % \cvskillhead % % \cvskillhead
% %------------------------------------------------------------------------------- % %-------------------------------------------------------------------------------
\NewDocumentCommand\cvSkillMatrix@HeadFont{}{\normalfont} \NewDocumentCommand\cvSkillMatrix@HeadFont{}{\normalfont}
\DeclareDocumentCommand\cvskillhead{+O{} +O{} +O{} +O{} +O{}}{}% \DeclareDocumentCommand\cvskillhead{+O{} +O{} +O{} +O{}}{}%
% add skill matrix line acting as header explaining the meaning of columns. % add skill matrix line acting as header explaining the meaning of columns.
% %
% Input: % Input:
% input_1 (optional): padding length appended to the legend, default: <0.25em> % input_1 (optional): padding length appended to the legend, default: <0.25em>
% input_2 (optional): string naming the level column (2nd column), default: <Level> % input_2 (optional): string naming the skill column (2nd column), default: <Skill>
% input_3 (optional): string naming the skill column (3rd column), default: <Skill> % input_3 (optional): string naming the level column (3rd column), default: <Level>
% input_4 (optional): string naming the experience-in-years column (4th column), default: <Years> % input_4 (optional): string naming the comment column (4th column), default: <Comment>
% input_5 (optional): string naming the comment column (5th column), default: <Comment>
% %
% Example usages: % Example usages:
% \cvskillhead print default head. % \cvskillhead print default head.
% \cvskillhead[0.5em] print default head, but adjust post padding. % \cvskillhead[0.5em] print default head, but adjust post padding.
% \cvskillhead[0.25em][Level][F\"ahigkeit][Jahre][Bemerkung] Fully adjust head to German example % \cvskillhead[0.25em][F\"ahigkeit][Level][Bemerkung] Fully adjust head to German example
% %
% Note: % Note:
% - The width of the columns can be adjusted by the \setcvskillcolumns command, see \setcvskillcolumns. % - The width of the columns can be adjusted by the \setcvskillcolumns command, see \setcvskillcolumns.
\NewDocumentCommand\skillMatrix@HeaderDefaultOne{}{Level} \NewDocumentCommand\skillMatrix@HeaderDefaultOne{}{Skill}
\NewDocumentCommand\skillMatrix@HeaderDefaultTwo{}{Skill} \NewDocumentCommand\skillMatrix@HeaderDefaultTwo{}{Level}
\NewDocumentCommand\skillMatrix@HeaderDefaultThree{}{Years} % \NewDocumentCommand\skillMatrix@HeaderDefaultThree{}{Years}
\NewDocumentCommand\skillMatrix@HeaderDefaultFour{}{Comment} \NewDocumentCommand\skillMatrix@HeaderDefaultFour{}{Comment}
% Definition of \cvskillhead valid for moderncvbodyi, moderncvbodyii, moderncvbodyiii, moderncvbodyiv % Definition of \cvskillhead valid for moderncvbodyi, moderncvbodyii, moderncvbodyiii, moderncvbodyiv
\RenewDocumentCommand\cvskillhead{O{.25em} +O{\skillMatrix@HeaderDefaultOne} +O{\skillMatrix@HeaderDefaultTwo} +O{\skillMatrix@HeaderDefaultThree} +O{\skillMatrix@HeaderDefaultFour}}{% \RenewDocumentCommand\cvskillhead{O{.25em} +O{\skillMatrix@HeaderDefaultOne} +O{\skillMatrix@HeaderDefaultTwo} +O{\skillMatrix@HeaderDefaultFour}}{%
\begingroup \begingroup
\renewcommand{\arraystretch}{1.25} \renewcommand{\arraystretch}{1.25}
\arrayrulecolor{bodyrulecolor} \arrayrulecolor{bodyrulecolor}
\begin{tabular}{@{}p{\skillmatrix@hintscolumnwidth}@{\hspace{\separatorcolumnwidth}}% \begin{tabular}{@{}p{\skillmatrix@hintscolumnwidth}@{\hspace{\separatorcolumnwidth}}%
p{\cvskill@width}@{\hspace{\skillmatrix@padding}}%
p{\cvskill@descriptorwidth}@{\hspace{\skillmatrix@padding}}% p{\cvskill@descriptorwidth}@{\hspace{\skillmatrix@padding}}%
p{\cvskill@experiencewidth}@{\hspace{\skillmatrix@padding}} p{\cvskill@width}@{\hspace{\skillmatrix@padding}}%
%p{\cvskill@experiencewidth}@{\hspace{\skillmatrix@padding}}
p{\skillmatrix@commentwidth}@{}}% p{\skillmatrix@commentwidth}@{}}%
& \centering{\cvSkillMatrix@HeadFont #2} & \centering{\cvSkillMatrix@HeadFont #3} & \centering{\cvSkillMatrix@HeadFont #4} & {\cvSkillMatrix@HeadFont #5} & \raggedright{\cvSkillMatrix@HeadFont {\bfseries #2}} & \centering{\cvSkillMatrix@HeadFont {\bfseries #3}} & {\cvSkillMatrix@HeadFont {\bfseries\itshape #4}}
\end{tabular}% \end{tabular}%
\endgroup \endgroup
\par\addvspace{#1} \par\addvspace{#1}
} }
% Definition of \cvskillhead valid moderncvbodyv % Definition of \cvskillhead valid moderncvbodyv
\if@moderncvbodyv% \if@moderncvbodyv%
\RenewDocumentCommand\cvskillhead{O{.25em} +O{\skillMatrix@HeaderDefaultOne} +O{\skillMatrix@HeaderDefaultTwo} +O{\skillMatrix@HeaderDefaultThree} +O{\skillMatrix@HeaderDefaultFour}}{% \RenewDocumentCommand\cvskillhead{O{.25em} +O{\skillMatrix@HeaderDefaultOne} +O{\skillMatrix@HeaderDefaultTwo} +O{\skillMatrix@HeaderDefaultFour}}{%
\arrayrulecolor{bodyrulecolor}% \arrayrulecolor{color1}%
\setlength\arrayrulewidth{\separatorrulewidth}% \setlength\arrayrulewidth{\separatorrulewidth}%
\vspace*{-\separatorrulewidth}% HACK; I don't understand where the space is coming from, nor what it's exact value is :( \vspace*{-\separatorrulewidth}% HACK; I don't understand where the space is coming from, nor what it's exact value is :(
\begingroup% \begingroup%
@ -958,11 +965,11 @@
@{\hspace{\separatorcolumnwidth}}|@{\hspace{\separatorcolumnwidth}}% @{\hspace{\separatorcolumnwidth}}|@{\hspace{\separatorcolumnwidth}}%
p{\skillmatrix@hintscolumnwidth}% p{\skillmatrix@hintscolumnwidth}%
@{\hspace{\skillmatrix@padding}}% @{\hspace{\skillmatrix@padding}}%
p{\cvskill@width}@{\hspace{\skillmatrix@padding}}%
p{\cvskill@descriptorwidth}@{\hspace{\skillmatrix@padding}}% p{\cvskill@descriptorwidth}@{\hspace{\skillmatrix@padding}}%
p{\cvskill@experiencewidth}@{\hspace{\skillmatrix@padding}}% p{\cvskill@width}@{\hspace{\skillmatrix@padding}}%
%p{\cvskill@experiencewidth}@{\hspace{\skillmatrix@padding}}%
p{\skillmatrix@commentwidth}@{}}% p{\skillmatrix@commentwidth}@{}}%
& & \centering{\cvSkillMatrix@HeadFont#2} & \centering{\cvSkillMatrix@HeadFont#3} & \centering{\cvSkillMatrix@HeadFont#4} & {\cvSkillMatrix@HeadFont#5} \\[#1]% the spacing needs to be inside the cell for the vertical rule to extend correctly & & \raggedright{\cvSkillMatrix@HeadFont {\bfseries #2}} & \centering{\cvSkillMatrix@HeadFont {\bfseries #3}} & {\cvSkillMatrix@HeadFont {\bfseries\itshape #4}} \\[#1]% the spacing needs to be inside the cell for the vertical rule to extend correctly
\end{tabular}% \end{tabular}%
\endgroup% \endgroup%
\par\@aftersectionfalse\ignorespaces% \par\@aftersectionfalse\ignorespaces%
@ -972,54 +979,55 @@
% %------------------------------------------------------------------------------- % %-------------------------------------------------------------------------------
% % \cvskillentry % % \cvskillentry
% %------------------------------------------------------------------------------- % %-------------------------------------------------------------------------------
% \cvskillentry[*][<post_padding>]{<skill_cathegory>}{<0-5>}{<skill_name>}{<years_of_experience>}{<comment>}% % \cvskillentry[*][<post_padding>]{<skill_cathegory>}{<skill_name>}{<0-5>}{<comment>}%
\DeclareDocumentCommand\cvskillentry{s +O{} +m +m +m +m +m}{}% \DeclareDocumentCommand\cvskillentry{s +O{} +m +m +m +m}{}%
% add cvskill matrix row. % add cvskill matrix row.
% %
% Input: % Input:
% asterix (optional): include horizontal (dashed) line above the entered line. This behaviour depends on the body style. % asterisk (optional): include horizontal (dashed) line above the entered line. This behaviour depends on the body style.
% For the fancy style, the asterix has no meaning. % For the fancy style, the asterisk has no meaning.
% input_1 (optional): padding length appended to the legend, default: <0.25em> % input_1 (optional): padding length appended to the legend, default: <0.25em>
% input_2: string, naming skill category, default: <> % input_2: string, naming skill cathegory, default: <>
% input_3: integer between 0 and 5, describing level of skill. \cvskill{input_2} is called internally, default: <> % input_3: string, naming the skill, default: <>
% input_4: string, naming the skill, default: <> % input_4: integer between 0 and 5, describing level of skill. \cvskill{input_4} is called internally, default: <>
% input_5: positive real number, stating the number of years of experience with this skill , default: <> % input_5: string, explaining details w.r.t. that particual skill default: <>
% input_6: string, explaining details w.r.t. that particular skill default: <>
% %
% Example usages: % Example usages:
% \cvskillentry*{Language:}{3}{Python}{2}{I have done a million projects with Python} % \cvskillentry*{Language:}{Python}{3}{I'm so experienced in Python and have realised a million projects. At least.}
% \cvskillentry{}{2}{Lilypond}{14}{So much sheet music! Man I'm the best!} % \cvskillentry{}{Lilypond}{2}{So much sheet music! Man, I'm the best!}
% \cvskillentry{}{3}{\LaTeX}{14}{Clearly I rock at \LaTeX} % \cvskillentry{}{\LaTeX}{3}{Clearly I rock at \LaTeX}
% \cvskillentry*[1.5em]{OS:}{3}{Linux}{2}{I only use Archlinux} % \cvskillentry*{OS:}{Linux}{3}{I only use Archlinux btw}
% %
% Note: % Note:
% - The width of the columns can be adjusted by the \setcvskillcolumns command, see \setcvskillcolumns. % - The width of the columns can be adjusted by the \setcvskillcolumns command, see \setcvskillcolumns.
% Definition of \cvskillentry valid for moderncvbodyi, moderncvbodyii, moderncvbodyiii, moderncvbodyiv % Definition of \cvskillentry valid for moderncvbodyi, moderncvbodyii, moderncvbodyiii, moderncvbodyiv
\RenewDocumentCommand\cvskillentry{s +O{.25em} +m +m +m +m +m}{% \usepackage{setspace}
\newcolumntype{P}[1]{>{\setstretch{.6}}p{#1}}
\RenewDocumentCommand\cvskillentry{s +O{.25em} +m +m +m +m}{%
%test for the star * in the command %test for the star * in the command
\IfBooleanTF{#1}{% If a star is seen a dotted line is drawn above the entry \IfBooleanTF{#1}{% If a star is seen a dotted line is drawn above the entry
\begingroup \begingroup
\renewcommand{\arraystretch}{1.25} \renewcommand{\arraystretch}{1.1}
\arrayrulecolor{bodyrulecolor} \arrayrulecolor{bodyrulecolor}
\begin{tabular}{@{}p{\skillmatrix@hintscolumnwidth}@{\hspace{\separatorcolumnwidth}}% \begin{tabular}{@{}p{\skillmatrix@hintscolumnwidth}@{\hspace{\separatorcolumnwidth}}%
p{\cvskill@width}@{\hspace{\skillmatrix@padding}}%
p{\cvskill@descriptorwidth}@{\hspace{\skillmatrix@padding}}% p{\cvskill@descriptorwidth}@{\hspace{\skillmatrix@padding}}%
p{\cvskill@experiencewidth} @{\hspace{\skillmatrix@padding}}% p{\cvskill@width}@{\hspace{\skillmatrix@padding}}%
p{\skillmatrix@commentwidth}@{}}% %p{\cvskill@experiencewidth} @{\hspace{\skillmatrix@padding}}%
\cdashline{2-5}[.6pt/1pt] P{\skillmatrix@commentwidth}@{}}%
\raggedleft\hintstyle{#3} &\centering \cvskill{#4} &\centering {#5} & \centering {#6} &{\itshape#7}% \cdashline{2-4}[.6pt/1pt]
\raggedleft\hintstyle{\bfseries #3} & \raggedright {#4} & \centering \cvskill{#5} & {\skillLegend@FontSize\itshape #6}%
\end{tabular}% \end{tabular}%
\endgroup \endgroup
\par\addvspace{#2} \par\addvspace{#2}
}{% If no star is seen no line is drawn }{% If no star is seen no line is drawn
\begin{tabular}{@{}p{\skillmatrix@hintscolumnwidth}@{\hspace{\separatorcolumnwidth}}% \begin{tabular}{@{}p{\skillmatrix@hintscolumnwidth}@{\hspace{\separatorcolumnwidth}}%
p{\cvskill@width}@{\hspace{\skillmatrix@padding}}%
p{\cvskill@descriptorwidth}@{\hspace{\skillmatrix@padding}}% p{\cvskill@descriptorwidth}@{\hspace{\skillmatrix@padding}}%
p{\cvskill@experiencewidth}% p{\cvskill@width}@{\hspace{\skillmatrix@padding}}%
@{\hspace{\skillmatrix@padding}}% %p{\cvskill@experiencewidth}%
p{\skillmatrix@commentwidth}@{}}% %@{\hspace{\skillmatrix@padding}}%
\raggedleft\hintstyle{#3} &\centering \cvskill{#4} &\centering {#5} & \centering {#6} &{\itshape#7}% P{\skillmatrix@commentwidth}@{}}%
\raggedleft\hintstyle{\bfseries #3} & \raggedright {#4} & \centering \cvskill{#5} & {\skillLegend@FontSize\itshape #6}%
\end{tabular}% \end{tabular}%
\par\addvspace{#2} \par\addvspace{#2}
} }
@ -1028,22 +1036,23 @@
% Definition of \cvskillentry valid for moderncvbodyv % Definition of \cvskillentry valid for moderncvbodyv
\if@moderncvbodyv% \if@moderncvbodyv%
\DeclareDocumentCommand\@starIndependentMatrixEntry{}{}% \DeclareDocumentCommand\@starIndependentMatrixEntry{}{}%
\RenewDocumentCommand\cvskillentry{s O{.25em} +m +m +m +m +m}{% \RenewDocumentCommand\cvskillentry{s O{.25em} +m +m +m +m}{%
\arrayrulecolor{bodyrulecolor}% \arrayrulecolor{bodyrulecolor}%
\setlength\arrayrulewidth{\separatorrulewidth}% \setlength\arrayrulewidth{\separatorrulewidth}%
\vspace*{-\separatorrulewidth}% HACK; I don't understand where the space is coming from, nor what it's exact value is :( \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 %test for the star * in the command
\RenewDocumentCommand{\@starIndependentMatrixEntry}{}{% \RenewDocumentCommand{\@starIndependentMatrixEntry}{}{%
\begingroup% \begingroup%
\renewcommand{\arraystretch}{1.25}% \renewcommand{\arraystretch}{1.1}%
\begin{tabular}[t]{@{}p{\hintscolumnwidth}% \begin{tabular}[t]{@{}p{\hintscolumnwidth}%
@{\hspace{\separatorcolumnwidth}}|@{\hspace{\separatorcolumnwidth}}p{\skillmatrix@hintscolumnwidth} @{\hspace{\separatorcolumnwidth}}|@{\hspace{\separatorcolumnwidth}}p{\skillmatrix@hintscolumnwidth}
@{\hspace{\skillmatrix@padding}}% @{\hspace{\skillmatrix@padding}}%
p{\cvskill@width}@{\hspace{\skillmatrix@padding}}% p{\cvskill@width}@{\hspace{\skillmatrix@padding}}%
p{\cvskill@descriptorwidth}@{\hspace{\skillmatrix@padding}}% p{\cvskill@descriptorwidth}@{\hspace{\skillmatrix@padding}}%
p{\cvskill@experiencewidth} @{\hspace{\skillmatrix@padding}}p{\skillmatrix@commentwidth}@{}}% %p{\cvskill@experiencewidth} @{\hspace{\skillmatrix@padding}}
P{\skillmatrix@commentwidth}@{}}%
% \cline{3-6}% % \cline{3-6}%
& \raggedleft\hintstyle{#3} &\centering \cvskill{#4} &\centering {#5} & \centering {#6} &{\itshape#7}\\[#2]% & \raggedleft\hintstyle{#3} & \centering \cvskill{#4}} & \centering {#5} & {\skillLegend@FontSize\itshape#6}\\[#2]%
\end{tabular}% \end{tabular}%
\endgroup% \endgroup%
}% }%

View file

@ -1,5 +1,5 @@
%% start of file `moderncvstylebanking.sty'. %% start of file `moderncvstylebanking.sty'.
%% Copyright 2006-2015 Xavier Danaux (xdanaux@gmail.com), 2020-2026 moderncv maintainers (github.com/moderncv). %% Copyright 2006-2015 Xavier Danaux (xdanaux@gmail.com), 2020-2022 moderncv maintainers (github.com/moderncv).
% %
% This work may be distributed and/or modified under the % This work may be distributed and/or modified under the
% conditions of the LaTeX Project Public License version 1.3c, % conditions of the LaTeX Project Public License version 1.3c,
@ -10,7 +10,7 @@
% identification % identification
%------------------------------------------------------------------------------- %-------------------------------------------------------------------------------
\NeedsTeXFormat{LaTeX2e} \NeedsTeXFormat{LaTeX2e}
\ProvidesPackage{moderncvstylebanking}[2026-01-31 v2.5.1 modern curriculum vitae and letter style scheme: banking] \ProvidesPackage{moderncvstylebanking}[2022-02-21 v2.3.1 modern curriculum vitae and letter style scheme: banking]
% body rules type options: "fullrules", "shortrules", "mixedrules" (default) or "norules" % body rules type options: "fullrules", "shortrules", "mixedrules" (default) or "norules"
\@initializecommand{\moderncvstylebodyoptions}{} \@initializecommand{\moderncvstylebodyoptions}{}

View file

@ -1,5 +1,5 @@
%% start of file `moderncvstylecasual.sty'. %% start of file `moderncvstylecasual.sty'.
%% Copyright 2006-2015 Xavier Danaux (xdanaux@gmail.com), 2020-2026 moderncv maintainers (github.com/moderncv). %% Copyright 2006-2015 Xavier Danaux (xdanaux@gmail.com), 2020-2022 moderncv maintainers (github.com/moderncv).
% %
% This work may be distributed and/or modified under the % This work may be distributed and/or modified under the
% conditions of the LaTeX Project Public License version 1.3c, % conditions of the LaTeX Project Public License version 1.3c,
@ -10,7 +10,7 @@
% identification % identification
%------------------------------------------------------------------------------- %-------------------------------------------------------------------------------
\NeedsTeXFormat{LaTeX2e} \NeedsTeXFormat{LaTeX2e}
\ProvidesPackage{moderncvstylecasual}[2026-01-31 v2.5.1 modern curriculum vitae and letter style scheme: casual] \ProvidesPackage{moderncvstylecasual}[2022-02-21 v2.3.1 modern curriculum vitae and letter style scheme: casual]
% head section alignment options: "left" (default) or "right" % head section alignment options: "left" (default) or "right"
\@initializecommand{\moderncvstyleheadoptions}{} \@initializecommand{\moderncvstyleheadoptions}{}

View file

@ -1,5 +1,5 @@
%% start of file `moderncvstyleclassic.sty'. %% start of file `moderncvstyleclassic.sty'.
%% Copyright 2006-2015 Xavier Danaux (xdanaux@gmail.com), 2020-2026 moderncv maintainers (github.com/moderncv). %% Copyright 2006-2015 Xavier Danaux (xdanaux@gmail.com), 2020-2022 moderncv maintainers (github.com/moderncv).
% %
% This work may be distributed and/or modified under the % This work may be distributed and/or modified under the
% conditions of the LaTeX Project Public License version 1.3c, % conditions of the LaTeX Project Public License version 1.3c,
@ -10,7 +10,7 @@
% identification % identification
%------------------------------------------------------------------------------- %-------------------------------------------------------------------------------
\NeedsTeXFormat{LaTeX2e} \NeedsTeXFormat{LaTeX2e}
\ProvidesPackage{moderncvstyleclassic}[2026-01-31 v2.5.1 modern curriculum vitae and letter style scheme: classic] \ProvidesPackage{moderncvstyleclassic}[2022-02-21 v2.3.1 modern curriculum vitae and letter style scheme: classic]
% head section alignment options: "left" (default) or "right" % head section alignment options: "left" (default) or "right"
\@initializecommand{\moderncvstyleheadoptions}{} \@initializecommand{\moderncvstyleheadoptions}{}

View file

@ -1,6 +1,6 @@
%% start of file `moderncvstylecontemporary.sty'. %% start of file `moderncvstylecontemporary.sty'.
%% Copyright 2006-2015 Xavier Danaux (xdanaux@gmail.com). %% Copyright 2006-2015 Xavier Danaux (xdanaux@gmail.com).
%% Copyright 2023 Javier Lopez-Gomez (javier.lopez.gomez@proton.me), 2024-2026 moderncv maintainers (github.com/moderncv). %% Copyright 2023 Javier Lopez-Gomez (javier.lopez.gomez@proton.me).
% %
% This work may be distributed and/or modified under the % This work may be distributed and/or modified under the
% conditions of the LaTeX Project Public License version 1.3c, % conditions of the LaTeX Project Public License version 1.3c,
@ -11,7 +11,7 @@
% identification % identification
%------------------------------------------------------------------------------- %-------------------------------------------------------------------------------
\NeedsTeXFormat{LaTeX2e} \NeedsTeXFormat{LaTeX2e}
\ProvidesPackage{moderncvstylecontemporary}[2026-01-31 v2.5.1 modern curriculum vitae and letter style scheme: contemporary] \ProvidesPackage{moderncvstylecontemporary}[2023/11/24 v2.0.0 modern curriculum vitae and letter style scheme: contemporary]
% head section alignment options: "left" (default) or "right" % head section alignment options: "left" (default) or "right"
\@initializecommand{\moderncvstyleheadoptions}{} \@initializecommand{\moderncvstyleheadoptions}{}
@ -39,7 +39,7 @@
%\fi %\fi
% symbols % symbols
\definecolor{default-socialicon-color}{named}{headtext} \providecolor{default-socialicon-color}{named}{headtext}
\moderncvicons{symbols} \moderncvicons{symbols}
%------------------------------------------------------------------------------- %-------------------------------------------------------------------------------

View file

@ -1,5 +1,5 @@
%% start of file `moderncvstyleempty.sty'. %% start of file `moderncvstyleempty.sty'.
%% Copyright 2006-2015 Xavier Danaux (xdanaux@gmail.com), 2020-2026 moderncv maintainers (github.com/moderncv). %% Copyright 2006-2015 Xavier Danaux (xdanaux@gmail.com), 2020-2022 moderncv maintainers (github.com/moderncv).
% %
% This work may be distributed and/or modified under the % This work may be distributed and/or modified under the
% conditions of the LaTeX Project Public License version 1.3c, % conditions of the LaTeX Project Public License version 1.3c,
@ -10,7 +10,7 @@
% identification % identification
%------------------------------------------------------------------------------- %-------------------------------------------------------------------------------
\NeedsTeXFormat{LaTeX2e} \NeedsTeXFormat{LaTeX2e}
\ProvidesPackage{moderncvstyleempty}[2026-01-31 v2.5.1 modern curriculum vitae scheme: empty] \ProvidesPackage{moderncvstyleempty}[2022-02-21 v2.3.1 modern curriculum vitae scheme: empty]
%------------------------------------------------------------------------------- %-------------------------------------------------------------------------------
% required packages % required packages

View file

@ -1,5 +1,5 @@
%% start of file `moderncvstylefancy.sty'. %% start of file `moderncvstylefancy.sty'.
%% Copyright 2015-2015 Xavier Danaux (xdanaux@gmail.com), 2020-2026 moderncv maintainers (github.com/moderncv). %% Copyright 2015-2015 Xavier Danaux (xdanaux@gmail.com), 2020-2022 moderncv maintainers (github.com/moderncv).
% %
% This work may be distributed and/or modified under the % This work may be distributed and/or modified under the
% conditions of the LaTeX Project Public License version 1.3c, % conditions of the LaTeX Project Public License version 1.3c,
@ -10,7 +10,7 @@
% identification % identification
%------------------------------------------------------------------------------- %-------------------------------------------------------------------------------
\NeedsTeXFormat{LaTeX2e} \NeedsTeXFormat{LaTeX2e}
\ProvidesPackage{moderncvstylefancy}[2026-01-31 v2.5.1 modern curriculum vitae and letter style scheme: fancy] \ProvidesPackage{moderncvstylefancy}[2022-02-21 v2.3.1 modern curriculum vitae and letter style scheme: fancy]
% headoptions % headoptions
\@initializecommand{\moderncvstyleheadoptions}{} \@initializecommand{\moderncvstyleheadoptions}{}

View file

@ -1,5 +1,5 @@
%% start of file `moderncvstyleoldstyle.sty'. %% start of file `moderncvstyleoldstyle.sty'.
%% Copyright 2006-2015 Xavier Danaux (xdanaux@gmail.com), 2020-2026 moderncv maintainers (github.com/moderncv). %% Copyright 2006-2015 Xavier Danaux (xdanaux@gmail.com), 2020-2022 moderncv maintainers (github.com/moderncv).
% %
% This work may be distributed and/or modified under the % This work may be distributed and/or modified under the
% conditions of the LaTeX Project Public License version 1.3c, % conditions of the LaTeX Project Public License version 1.3c,
@ -10,7 +10,7 @@
% identification % identification
%------------------------------------------------------------------------------- %-------------------------------------------------------------------------------
\NeedsTeXFormat{LaTeX2e} \NeedsTeXFormat{LaTeX2e}
\ProvidesPackage{moderncvstyleoldstyle}[2026-01-31 v2.5.1 modern curriculum vitae and letter style scheme: oldstyle] \ProvidesPackage{moderncvstyleoldstyle}[2022-02-21 v2.3.1 modern curriculum vitae and letter style scheme: oldstyle]
% headoptions % headoptions
\@initializecommand{\moderncvstyleheadoptions}{} \@initializecommand{\moderncvstyleheadoptions}{}
@ -47,7 +47,11 @@
% symbols % symbols
\if@symbols \if@symbols
\moderncvicons{symbols} % use marvosym symbols pdflatex is used \ifxetexorluatex
\moderncvicons{awesome} % use font-awesome symbols if lualatex or xelatex is used
\else
\moderncvicons{marvosym} % use marvosym symbols pdflatex is used
\fi
\else \else
\moderncvicons{letters} % do not use symbols, use letters \moderncvicons{letters} % do not use symbols, use letters
\fi \fi

View file

@ -1,5 +1,5 @@
%% start of file `moderncvverticaltimeline.sty'. %% start of file `moderncvverticaltimeline.sty'.
%% Copyright 2023 Javier Lopez-Gomez (javier.lopez.gomez@proton.me), 2024-2026 moderncv maintainers (github.com/moderncv). %% Copyright 2023 Javier Lopez-Gomez (javier.lopez.gomez@proton.me).
% %
% This work may be distributed and/or modified under the % This work may be distributed and/or modified under the
% conditions of the LaTeX Project Public License version 1.3c, % conditions of the LaTeX Project Public License version 1.3c,
@ -10,14 +10,13 @@
% identification % identification
%------------------------------------------------------------------------------- %-------------------------------------------------------------------------------
\NeedsTeXFormat{LaTeX2e} \NeedsTeXFormat{LaTeX2e}
\ProvidesPackage{moderncvverticaltimeline}[2026-01-31 v2.5.1 modern curriculum vitae vertical timeline] \ProvidesPackage{moderncvverticaltimeline}[2023/11/29 v2.0.0 modern curriculum vitae vertical timeline]
%------------------------------------------------------------------------------- %-------------------------------------------------------------------------------
% required packages % required packages
%------------------------------------------------------------------------------- %-------------------------------------------------------------------------------
\RequirePackage{tikz} \RequirePackage{tikz}
\usetikzlibrary{babel}
%------------------------------------------------------------------------------- %-------------------------------------------------------------------------------
% vertical timeline implementation % vertical timeline implementation

View file

@ -1,5 +1,5 @@
%% start of file `publications.bib'. %% start of file `publications.bib'.
%% Copyright 2006-2012 Xavier Danaux (xdanaux at gmail.com), 2020-2026 moderncv maintainers (github.com/moderncv). %% Copyright 2006-2012 Xavier Danaux (xdanaux at gmail.com).
% %
% This work may be distributed and/or modified under the % This work may be distributed and/or modified under the
% conditions of the LaTeX Project Public License version 1.3c, % conditions of the LaTeX Project Public License version 1.3c,

View file

@ -1,5 +1,5 @@
%% start of file `template.tex'. %% start of file `template.tex'.
%% Copyright 2006-2015 Xavier Danaux (xdanaux@gmail.com), 2020-2026 moderncv maintainers (github.com/moderncv). %% Copyright 2006-2015 Xavier Danaux (xdanaux@gmail.com), 2020-2022 moderncv maintainers (github.com/moderncv).
% %
% This work may be distributed and/or modified under the % This work may be distributed and/or modified under the
% conditions of the LaTeX Project Public License version 1.3c, % conditions of the LaTeX Project Public License version 1.3c,
@ -79,8 +79,6 @@
\social[researcherid]{jdoe} % optional, remove / comment the line if not wanted \social[researcherid]{jdoe} % optional, remove / comment the line if not wanted
\social[googlescholar]{googlescholarid} % optional, remove / comment the line if not wanted \social[googlescholar]{googlescholarid} % optional, remove / comment the line if not wanted
\social[medium]{jdoe} % optional, remove / comment the line if not wanted
\social[twitter]{ji\_doe} % optional, remove / comment the line if not wanted \social[twitter]{ji\_doe} % optional, remove / comment the line if not wanted
\social[mastodon]{mastodon.social/web/@user} % optional, remove / comment the line if not wanted \social[mastodon]{mastodon.social/web/@user} % optional, remove / comment the line if not wanted
\social[telegram]{jdoe} % optional, remove / comment the line if not wanted \social[telegram]{jdoe} % optional, remove / comment the line if not wanted
@ -105,10 +103,8 @@
\social[xbox]{jdoe} % optional, remove / comment the line if not wanted \social[xbox]{jdoe} % optional, remove / comment the line if not wanted
\social[playstation]{jdoe} % optional, remove / comment the line if not wanted \social[playstation]{jdoe} % optional, remove / comment the line if not wanted
\social[battlenet]{jdoe\#0000} % optional, remove / comment the line if not wanted \social[battlenet]{jdoe\#0000} % optional, remove / comment the line if not wanted
\social[arxiv]{doe\_j\_1} % optional, remove / comment the line if not wanted \social[arxiv]{doe\_j\_1} % optional, remove / comment the line if not wanted
\social[inspire]{0000000} % optional, remove / comment the line if not wanted \social[inspire]{0000000} % optional, remove / comment the line if not wanted
\social[simplex]{0000000} % optional, remove / comment the line if not wanted
\social[threema]{0000000} % optional, remove / comment the line if not wanted
\extrainfo{additional information} % optional, remove / comment the line if not wanted \extrainfo{additional information} % optional, remove / comment the line if not wanted
@ -122,7 +118,7 @@
% to redefine the bibliography heading string ("Publications") % to redefine the bibliography heading string ("Publications")
%\renewcommand{\refname}{Articles} %\renewcommand{\refname}{Articles}
% bibliography with multiple entries % bibliography with mutiple entries
%\usepackage{multibib} %\usepackage{multibib}
%\newcites{book,misc}{{Books},{Others}} %\newcites{book,misc}{{Books},{Others}}
%---------------------------------------------------------------------------------- %----------------------------------------------------------------------------------
@ -176,7 +172,6 @@ Detailed achievements:
\cvdoubleitem{category 1}{XXX, YYY, ZZZ}{category 4}{XXX, YYY, ZZZ} \cvdoubleitem{category 1}{XXX, YYY, ZZZ}{category 4}{XXX, YYY, ZZZ}
\cvdoubleitem{category 2}{XXX, YYY, ZZZ}{category 5}{XXX, YYY, ZZZ} \cvdoubleitem{category 2}{XXX, YYY, ZZZ}{category 5}{XXX, YYY, ZZZ}
\cvdoubleitem{category 3}{XXX, YYY, ZZZ}{category 6}{XXX, YYY, ZZZ} \cvdoubleitem{category 3}{XXX, YYY, ZZZ}{category 6}{XXX, YYY, ZZZ}
\cvtripleitem{category 4}{XYZ}{category 5}{XYZ}{category 6}{XYZ}
\section{Skill matrix} \section{Skill matrix}
\cvitem{Skill matrix}{Alternatively, provide a skill matrix to show off your skills} \cvitem{Skill matrix}{Alternatively, provide a skill matrix to show off your skills}
@ -186,27 +181,19 @@ Detailed achievements:
%% Usage \setcvskillcolumns[<width>][<factor>][<exp_width>] %% Usage \setcvskillcolumns[<width>][<factor>][<exp_width>]
%% <width>, <exp_width> should be lengths smaller than \textwidth, <factor> needs to be between 0 and 1. %% <width>, <exp_width> should be lengths smaller than \textwidth, <factor> needs to be between 0 and 1.
%% Examples: %% Examples:
% \setcvskillcolumns[5em][][]% adjust first column. Same as \setcvskillcolumns[5em] % \setcvskillcolumns[5em][][]% adjust first (skill category) column. Same as \setcvskillcolumns[5em]
% \setcvskillcolumns[][0.45][]% adjust third (skill) column. Same as \setcvskillcolumns[][0.45] % \setcvskillcolumns[][0.25][]% adjust third (level) column. Same as \setcvskillcolumns[][0.45]
% \setcvskillcolumns[][][\widthof{``Year''}]% adjust fourth (years) column. % \setcvskillcolumns[][][\widthof{``Comment''}]% adjust fourth (comment) column.
% \setcvskillcolumns[][0.45][\widthof{``Year''}]% % \setcvskillcolumns[][0.25][\widthof{``Comment''}]%
% \setcvskillcolumns[\widthof{``Languag''}][0.48][] % \setcvskillcolumns[\widthof{``Language''}][0.48][]
% \setcvskillcolumns[\widthof{``Languag''}]% % \setcvskillcolumns[\widthof{``Language''}]%
%% Adjusts width of legend columns. Usage \setcvskilllegendcolumns[<width>][<factor>] %% Adjusts width of legend columns. Usage \setcvskilllegendcolumns[<width>][<factor>]
%% <factor> needs to be between 0 and 1. <width> should be a length smaller than \textwidth %% <factor> needs to be between 0 and 1. <width> should be a length smaller than \textwidth
%% Examples: %% Examples:
% \setcvskilllegendcolumns[][0.45] % \setcvskilllegendcolumns[][0.45]
% \setcvskilllegendcolumns[\widthof{``Legend''}][0.45] % \setcvskilllegendcolumns[\widthof{``Legend''}][0.45]
% \setcvskilllegendcolumns[0ex][0.46]% this is useful for the banking style % \setcvskilllegendcolumns[0ex][0.46]% this is usefull for the banking style
%% Add a legend if you are using \cvskill{<1-5>} command or \cvskillentry
%% Usage \cvskilllegend[*][<post_padding>][<first_level>][<second_level>][<third_level>][<fourth_level>][<fifth_level>]{<name>}
% \cvskilllegend % insert default legend without lines
\cvskilllegend*[1em]{}% adjust post spacing
% \cvskilllegend*{Legend}% Alternatively add a description string
%% adjust the legend entries for other languages, here German
% \cvskilllegend[0.2em][Grundkenntnisse][Grundkenntnisse und eigene Erfahrung in Projekten][Umfangreiche Erfahrung in Projekten][Vertiefte Expertenkenntnisse][Experte\,/\,Spezialist]{Legende}
%% Alternative legend style with the first three skill levels in one column %% Alternative legend style with the first three skill levels in one column
%% Usage \cvskillplainlegend[*][<post_padding>][<first_level>][<second_level>][<third_level>][<fourth_level>][<fifth_level>]{<name>} %% Usage \cvskillplainlegend[*][<post_padding>][<first_level>][<second_level>][<third_level>][<fourth_level>][<fifth_level>]{<name>}
@ -216,21 +203,29 @@ Detailed achievements:
% \cvskillplainlegend[0.2em][Grundkenntnisse][Grundkenntnisse und eigene Erfahrung in Projekten][Umfangreiche Erfahrung in Projekten][Vertiefte Expertenkenntnisse][Experte/Guru]{Legende} % \cvskillplainlegend[0.2em][Grundkenntnisse][Grundkenntnisse und eigene Erfahrung in Projekten][Umfangreiche Erfahrung in Projekten][Vertiefte Expertenkenntnisse][Experte/Guru]{Legende}
%% Add a head of the skill matrix table with descriptions. %% Add a head of the skill matrix table with descriptions.
%% Usage \cvskillhead[<post_padding>][<Level>][<Skill>][<Years>][<Comment>]% %% Usage \cvskillhead[<post_padding>][<Skill>][<Level>][<Comment>]%
\cvskillhead[-0.1em]% this inserts the standard legend in english and adjust padding \cvskillhead[-0.1em]% this inserts the standard legend in english and adjust padding
%% Adjust head of the skill matrix for other languages %% Adjust head of the skill matrix for other languages
% \cvskillhead[0.25em][Level][F\"ahigkeit][Jahre][Bemerkung] % \cvskillhead[0.25em][F\"ahigkeit][Level][Bemerkung]
%% \cvskillentry[*][<post_padding>]{<skill_cathegory>}{<0-5>}{<skill_name>}{<years_of_experience>}{<comment>}% %% \cvskillentry[*][<post_padding>]{<skill_cathegory>}{<skill_name>}{<0-5>}{<comment>}%
%% Example usages: %% Example usages:
\cvskillentry*{Language:}{3}{Python}{2}{I'm so experienced in Python and have realised a million projects. At least.} \cvskillentry*{Language:}{Python}{3}{I'm so experienced in Python and have realised a million projects. At least.}
\cvskillentry{}{2}{Lilypond}{14}{So much sheet music! Man, I'm the best!} \cvskillentry{}{Lilypond}{2}{So much sheet music! Man, I'm the best!}
\cvskillentry{}{3}{\LaTeX}{14}{Clearly I rock at \LaTeX} \cvskillentry{}{\LaTeX}{3}{Clearly I rock at \LaTeX}
\cvskillentry*{OS:}{3}{Linux}{2}{I only use Archlinux btw}% notice the use of the starred command and the optional \cvskillentry*{OS:}{Linux}{3}{I only use Archlinux btw}% notice the use of the starred command and the optional
\cvskillentry*[1em]{Methods}{4}{SCRUM}{8}{SCRUM master for 5 years} \cvskillentry*[1em]{Methods:}{SCRUM}{4}{SCRUM master for 5 years}
%% \cvskill{<0-5>} command %% \cvskill{<0-5>} command
% \cvitem{\textbackslash{cvskill}:}{Skills can be visually expressed by the \textbackslash{cvskill} command, e.g. \cvskill{2}} % \cvitem{\textbackslash{cvskill}:}{Skills can be visually expressed by the \textbackslash{cvskill} command, e.g. \cvskill{2}}
%% Add a legend if you are using \cvskill{<1-5>} command or \cvskillentry
%% Usage \cvskilllegend[*][<post_padding>][<first_level>][<second_level>][<third_level>][<fourth_level>][<fifth_level>]{<name>}
% \cvskilllegend % insert default legend without lines
\cvskilllegend*[1em]{}% adjust post spacing
% \cvskilllegend*{Legend}% Alternatively add a description string
%% adjust the legend entries for other languages, here German
% \cvskilllegend[0.2em][Grundkenntnisse][Grundkenntnisse und eigene Erfahrung in Projekten][Umfangreiche Erfahrung in Projekten][Vertiefte Expertenkenntnisse][Experte\,/\,Spezialist]{Legende}
\section{Interests} \section{Interests}
\cvitem{hobby 1}{Description} \cvitem{hobby 1}{Description}
\cvitem{hobby 2}{Description} \cvitem{hobby 2}{Description}
@ -283,9 +278,9 @@ Detailed achievements:
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Duis ullamcorper neque sit amet lectus facilisis sed luctus nisl iaculis. Vivamus at neque arcu, sed tempor quam. Curabitur pharetra tincidunt tincidunt. Morbi volutpat feugiat mauris, quis tempor neque vehicula volutpat. Duis tristique justo vel massa fermentum accumsan. Mauris ante elit, feugiat vestibulum tempor eget, eleifend ac ipsum. Donec scelerisque lobortis ipsum eu vestibulum. Pellentesque vel massa at felis accumsan rhoncus. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Duis ullamcorper neque sit amet lectus facilisis sed luctus nisl iaculis. Vivamus at neque arcu, sed tempor quam. Curabitur pharetra tincidunt tincidunt. Morbi volutpat feugiat mauris, quis tempor neque vehicula volutpat. Duis tristique justo vel massa fermentum accumsan. Mauris ante elit, feugiat vestibulum tempor eget, eleifend ac ipsum. Donec scelerisque lobortis ipsum eu vestibulum. Pellentesque vel massa at felis accumsan rhoncus.
Suspendisse commodo, massa eu congue tincidunt, elit mauris pellentesque orci, cursus tempor odio nisl euismod augue. Aliquam adipiscing nibh ut odio sodales et pulvinar tortor laoreet. Mauris a accumsan ligula. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Suspendisse vulputate sem vehicula ipsum various nec tempus dui dapibus. Phasellus et est urna, ut auctor erat. Sed tincidunt odio id odio aliquam mattis. Donec sapien nulla, feugiat eget adipiscing sit amet, lacinia ut dolor. Phasellus tincidunt, leo a fringilla consectetur, felis diam aliquam urna, vitae aliquet lectus orci nec velit. Vivamus dapibus various blandit. Suspendisse commodo, massa eu congue tincidunt, elit mauris pellentesque orci, cursus tempor odio nisl euismod augue. Aliquam adipiscing nibh ut odio sodales et pulvinar tortor laoreet. Mauris a accumsan ligula. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Suspendisse vulputate sem vehicula ipsum varius nec tempus dui dapibus. Phasellus et est urna, ut auctor erat. Sed tincidunt odio id odio aliquam mattis. Donec sapien nulla, feugiat eget adipiscing sit amet, lacinia ut dolor. Phasellus tincidunt, leo a fringilla consectetur, felis diam aliquam urna, vitae aliquet lectus orci nec velit. Vivamus dapibus varius blandit.
Duis sit amet magna ante, at sodales diam. Aenean consectetur porta risus et sagittis. Ut interdum, enim various pellentesque tincidunt, magna libero sodales tortor, ut fermentum nunc metus a ante. Vivamus odio leo, tincidunt eu luctus ut, sollicitudin sit amet metus. Nunc sed orci lectus. Ut sodales magna sed velit volutpat sit amet pulvinar diam venenatis. Duis sit amet magna ante, at sodales diam. Aenean consectetur porta risus et sagittis. Ut interdum, enim varius pellentesque tincidunt, magna libero sodales tortor, ut fermentum nunc metus a ante. Vivamus odio leo, tincidunt eu luctus ut, sollicitudin sit amet metus. Nunc sed orci lectus. Ut sodales magna sed velit volutpat sit amet pulvinar diam venenatis.
Albert Einstein discovered that $e=mc^2$ in 1905. Albert Einstein discovered that $e=mc^2$ in 1905.

View file

@ -1,6 +1,6 @@
%% start of file `tweaklist.sty'. %% start of file `tweaklist.sty'.
%% Original by Jakob Schiotz, downloaded from http://dcwww.camd.dtu.dk/~schiotz/comp/LatexTips/tweaklist.sty; not found on ctan. %% Original by Jakob Schiotz, downloaded from http://dcwww.camd.dtu.dk/~schiotz/comp/LatexTips/tweaklist.sty; not found on ctan.
%% Modified by Xavier Danaux (xdanaux@gmail.com), 2020-2026 moderncv maintainers (github.com/moderncv). %% Modified by Xavier Danaux (xdanaux@gmail.com), 2020-2022 moderncv maintainers (github.com/moderncv).
% %
% The tweaklist.sty package redefines the itemize, enumerate and description packages, so that all parameters can be adjusted. % The tweaklist.sty package redefines the itemize, enumerate and description packages, so that all parameters can be adjusted.
% This was done by copying the original definitions, and adding "hook commands" that are executed when entering the environment. % This was done by copying the original definitions, and adding "hook commands" that are executed when entering the environment.