Compare commits

..

4 commits

Author SHA1 Message Date
Mark E Fuller
e256459c05
Merge branch 'master' into revive-orphaned-sections 2025-02-22 21:21:11 +02:00
LLdaniel
12be32298a also re-compile the userguide due to the new default value 2025-02-02 12:07:26 +01:00
LLdaniel
a4445849d2 incorporate comments from the code review on the original PR #57 2025-02-02 11:51:07 +01:00
daniel
272289901e
Tweakable orphaned sections - revive old PR (#231)
* introduce different first and lastname styles.

* fix orphaned section headers (needs testing). Closes #10.

* introduce \cvsectionstretchability and \cvsubsectionstretchability

* set default stretchability to 0.9\baselineskip

* add fix orphaned section notice to changelog

---------

Co-authored-by: David <forenkram@gmx.de>
2025-02-02 11:38:16 +01:00
53 changed files with 358 additions and 455 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@v4
- 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@v4
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@v4
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,30 +1,20 @@
version next version next
- Upgrade to Fontawesome 6 (#183)
- Document how to set custom strings for social command (#239)
- 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) - Change moderncvcolors.tex to a .sty file for MikTeX compatibility (#199)
- Fix error when omitting the photo in contemporary style (#201) - Fix error when omitting the photo in contemporary style (#201)
- Fix spacing between first and last name (#204) - Fix spacing between first and last name (#204)
- Include social icons in cover letter for styles classic, fancy and banking (#170) - Include social icons in cover letter for styles classic, fancy and banking (#170)
- Update Oldstyle to use symbols instead of marvosym (#209) - Update Oldstyle to use symbols instead of marvosym (#209)
- Added SimpleX and Threema social (#217)
- Fix spacing between first and last name again (#220) - Fix spacing between first and last name again (#220)
- Make header details flush against sides for casual, classic, and contemporary - Make header details flush against sides for casual, classic, and contemporary
styles (#229) styles (#229)
- Fix tikz icon color in contemporary style (#224) - partially fix orphaned section headers for singualar use of \section and \subsection
- Add contemporary CV header style to cover letter, which also makes icons commands and give users the new adjustable lengths \cvsectionstretchability
visible (#186) and \subsectionstretchability. In case \section and \subsection are used
- Fix minor horizontal spacing issue in 'contemporary' style header directly one after the other, an orphaned section header might still occur.
This is structural and should be solved by \newpage instead of increasing
\cvsectionstretchability (#10/#226).
version 2.4.2 (01 Feb 2025)
- Added support for additional social icons like medium. (#264)
version 2.4.1 (18 Jul 2024) version 2.4.1 (18 Jul 2024)
- Fix commons/colors.tex not found in package (#194) - Fix commons/colors.tex not found in package (#194)
@ -149,7 +139,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,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 2024-07-18 v2.4.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,7 +9,7 @@
\title{% \title{%
\texttt{moderncv} User Guide\\ \texttt{moderncv} User Guide\\
{\small Package v2.5.1}% {\small Package v2.4.1}%
} }
% Cristina Sambo, % Cristina Sambo,
\author{% \author{%
@ -18,7 +18,7 @@
moderncv community\\ 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}
@ -104,7 +104,7 @@
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 +240,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 +329,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 +347,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}
@ -407,7 +403,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}
@ -494,7 +490,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.
@ -752,9 +748,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,76 +768,44 @@ 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.} \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. 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} \begin{lstlisting}
\moderncvicons{<symbols|letters>} \moderncvicons{<symbols|letters>}
@ -965,7 +937,7 @@ If \Latex breaks pages just after \code{\\section} or \code{\\subsection} comman
\setlength{\cvsubsectionstretchability}{100pt} \setlength{\cvsubsectionstretchability}{100pt}
\end{lstlisting} \end{lstlisting}
These two lengths tell \Latex how much extra length it needs after \code{\\section} and \code{\\subsection} commands. These two lengths tell \Latex how much extra length it needs after \code{\\section} and \code{\\subsection} commands.
By default, \Moderncv sets both lengths to \code{0.9\\baselineskip}. By default, \Moderncv sets both lengths to \code{0pt} by default.
This should solve orphaned \code{\\section} and \code{\\subsection} commands that are used alone for most users. This should solve orphaned \code{\\section} and \code{\\subsection} commands that are used alone for most users.
However, \Latex does not check for content. However, \Latex does not check for content.
@ -1061,7 +1033,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-2024 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}[2024-07-18 v2.4.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
%------ %------
@ -490,6 +479,36 @@
\newcommand*{\@moderncvstrut}[2]{% \newcommand*{\@moderncvstrut}[2]{%
\rule[-#1]{0pt}{#2}} \rule[-#1]{0pt}{#2}}
% custom needspace command to avoid orphaned sections
% adapted from the explanations given on
% https://tex.stackexchange.com/questions/348994/understanding-needspace
% the stretchabilities are zero by default and are only there to be changed
% by the user if needed.
\@initializelength{\cvsectionstretchability}
\@initializelength{\cvsubsectionstretchability}
% set the default stretchability.
\setlength{\cvsectionstretchability}{0pt}
\setlength{\cvsubsectionstretchability}{0pt}
% must be between -100 and 9999. The higher the less likely a page break will occur.
% This is where the page break should occur, so this number should not bee too high
\NewDocumentCommand\withinstretchpenalty{}{0}
% must be between -100 and 9999. The higher the less likely a page break will occur.
\NewDocumentCommand\poststretchpenalty{}{9999}
% command intended to use with section definitions to avoid orphaned sections. (Pagebreak bewteen
% \section{} and cv content e.g. \cvitem{}.
% usage \@cvneedspace{<length>} preferably \cvneedspace{\cvstretchability} to allow the user
% to adapt as needed.
\NewDocumentCommand\@cvneedspace{m}{%
\begingroup
\setlength{\dimen@}{#1}%
\vskip\z@\@plus\dimen@
\penalty \withinstretchpenalty\vskip\z@\@plus -\dimen@
\vskip\dimen@
\penalty \poststretchpenalty%
\vskip -\dimen@
\vskip\z@skip % hide the previous |\vskip| from |\addvspace|
\endgroup
}
%------------------------------------------------------------------------------- %-------------------------------------------------------------------------------
% resume design commands definitions % resume design commands definitions
@ -584,7 +603,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 +679,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-2024 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}[2024-07-18 v2.4.1 modern curriculum vitae and letter body variant: 1]
%------------------------------------------------------------------------------- %-------------------------------------------------------------------------------
@ -74,7 +74,17 @@
\@initializelength{\baseletterheight} \@initializelength{\baseletterheight}
\settoheight{\baseletterheight}{\sectionstyle{o}} \settoheight{\baseletterheight}{\sectionstyle{o}}
\setlength{\baseletterheight}{\baseletterheight-0.95ex} \setlength{\baseletterheight}{\baseletterheight-0.95ex}
% leave the stretchability zero by default
% \setlength{\cvsectionstretchability}{0.0pt}
% \setlength{\cvsubsectionstretchability}{0.0pt}
% must be between -100 and 9999. The higher the less likely a page break will occur.
% This is where the page break should occur, so this number should not bee too high
% \RenewDocumentCommand\withinstretchpenalty{}{0}
% must be between -100 and 9999. The higher the less likely a page break will occur.
% \RenewDocumentCommand\poststretchpenalty{}{9999}
\RenewDocumentCommand{\section}{sm}{% \RenewDocumentCommand{\section}{sm}{%
\@cvneedspace{\cvsectionstretchability}% avoid orphaned sections
\par\addvspace{2.5ex}% \par\addvspace{2.5ex}%
\phantomsection{}% reset the anchor for hyperrefs \phantomsection{}% reset the anchor for hyperrefs
\addcontentsline{toc}{section}{#2}% \addcontentsline{toc}{section}{#2}%
@ -82,6 +92,7 @@
\par\nobreak\addvspace{1ex}\@afterheading}% to avoid a pagebreak after the heading \par\nobreak\addvspace{1ex}\@afterheading}% to avoid a pagebreak after the heading
\RenewDocumentCommand{\subsection}{sm}{% \RenewDocumentCommand{\subsection}{sm}{%
\@cvneedspace{\cvsubsectionstretchability}% avoid orphaned sections
\par\addvspace{1ex}% \par\addvspace{1ex}%
\phantomsection{}% reset the anchor for hyperrefs \phantomsection{}% reset the anchor for hyperrefs
\addcontentsline{toc}{subsection}{#2}% \addcontentsline{toc}{subsection}{#2}%

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-2024 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}[2024-07-18 v2.4.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
@ -107,7 +107,16 @@
% regular lengths % regular lengths
\setlength{\parskip}{0\p@}} \setlength{\parskip}{0\p@}}
% leave the stretchability zero by default
% \setlength{\cvsectionstretchability}{0.0pt}
% \setlength{\cvsubsectionstretchability}{0.0pt}
% must be between -100 and 9999. The higher the less likely a page break will occur.
% This is where the page break should occur, so this number should not bee too high
% \RenewDocumentCommand\withinstretchpenalty{}{0}
% must be between -100 and 9999. The higher the less likely a page break will occur.
% \RenewDocumentCommand\poststretchpenalty{}{9999}
\RenewDocumentCommand{\section}{sm}{% \RenewDocumentCommand{\section}{sm}{%
\@cvneedspace{\cvsectionstretchability}% avoid orphaned sections
\par\addvspace{2.5ex}% \par\addvspace{2.5ex}%
\phantomsection{}% reset the anchor for hyperrefs \phantomsection{}% reset the anchor for hyperrefs
\addcontentsline{toc}{section}{#2}% \addcontentsline{toc}{section}{#2}%
@ -123,6 +132,7 @@
\par\nobreak\addvspace{1ex}\@afterheading} \par\nobreak\addvspace{1ex}\@afterheading}
\RenewDocumentCommand{\subsection}{sm}{% \RenewDocumentCommand{\subsection}{sm}{%
\@cvneedspace{\cvsubsectionstretchability}% avoid orphaned sections
\par\addvspace{1ex}% \par\addvspace{1ex}%
\phantomsection{}% \phantomsection{}%
\addcontentsline{toc}{subsection}{#2}% \addcontentsline{toc}{subsection}{#2}%

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-2024 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}[2024-07-18 v2.4.1 modern curriculum vitae and letter body variant: 4]
%------------------------------------------------------------------------------- %-------------------------------------------------------------------------------
@ -69,7 +69,16 @@
% regular lengths % regular lengths
\setlength{\parskip}{0\p@}} \setlength{\parskip}{0\p@}}
% leave the stretchability zero by default
% \setlength{\cvsectionstretchability}{0.0pt}
% \setlength{\cvsubsectionstretchability}{0.0pt}
% must be between -100 and 9999. The higher the less likely a page break will occur.
% This is where the page break should occur, so this number should not bee too high
% \RenewDocumentCommand\withinstretchpenalty{}{0}
% must be between -100 and 9999. The higher the less likely a page break will occur.
% \RenewDocumentCommand\poststretchpenalty{}{9999}
\RenewDocumentCommand{\section}{sm}{% \RenewDocumentCommand{\section}{sm}{%
\@cvneedspace{\cvsectionstretchability}% avoid orphaned sections
\par\addvspace{2.5ex}% \par\addvspace{2.5ex}%
\phantomsection{}% reset the anchor for hyperrefs \phantomsection{}% reset the anchor for hyperrefs
\addcontentsline{toc}{section}{#2}% \addcontentsline{toc}{section}{#2}%
@ -77,6 +86,7 @@
\par\nobreak\addvspace{1ex}\@afterheading} \par\nobreak\addvspace{1ex}\@afterheading}
\RenewDocumentCommand{\subsection}{sm}{% \RenewDocumentCommand{\subsection}{sm}{%
\@cvneedspace{\cvsubsectionstretchability}% avoid orphaned sections
\par\addvspace{1ex}% \par\addvspace{1ex}%
\phantomsection{}% \phantomsection{}%
\addcontentsline{toc}{subsection}{#2}% \addcontentsline{toc}{subsection}{#2}%

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-2024 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}[2024-07-18 v2.4.1 modern curriculum vitae and letter body variant: 5]
%------------------------------------------------------------------------------- %-------------------------------------------------------------------------------
@ -72,8 +72,18 @@
% regular lengths % regular lengths
\setlength{\parskip}{0\p@}} \setlength{\parskip}{0\p@}}
% leave the stretchability zero by default
% \setlength{\cvsectionstretchability}{0.0pt}
% \setlength{\cvsubsectionstretchability}{0.0pt}
% must be between -100 and 9999. The higher the less likely a page break will occur.
% This is where the page break should occur, so this number should not bee too high
% \RenewDocumentCommand\withinstretchpenalty{}{0}
% must be between -100 and 9999. The higher the less likely a page break will occur.
% \RenewDocumentCommand\poststretchpenalty{}{9999}
\@initializeif{\if@aftersection}\@aftersectionfalse% \@initializeif{\if@aftersection}\@aftersectionfalse%
\RenewDocumentCommand{\section}{sm}{% \RenewDocumentCommand{\section}{sm}{%
\@cvneedspace{\cvsectionstretchability}% avoid orphaned sections
\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}%
@ -83,6 +93,7 @@
%\@initializeif{\if@aftersubsection}\@aftersubsectionfalse% %\@initializeif{\if@aftersubsection}\@aftersubsectionfalse%
\RenewDocumentCommand{\subsection}{sm}{% \RenewDocumentCommand{\subsection}{sm}{%
\@cvneedspace{\cvsubsectionstretchability}% avoid orphaned sections
%\addvspace{1ex}% %\addvspace{1ex}%
\vspace*{-\arrayrulewidth}% HACK; I don't understand where the space is coming from, nor what it's exact value is :( \vspace*{-\arrayrulewidth}% HACK; I don't understand where the space is coming from, nor what it's exact value is :(
\if@aftersection% \if@aftersection%
@ -111,11 +122,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]{%

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]
%------------------------------------------------------------------------------- %-------------------------------------------------------------------------------
@ -79,7 +79,18 @@
\setlength{\baseletterheight}{\baseletterheight-0.95ex} \setlength{\baseletterheight}{\baseletterheight-0.95ex}
% The optional argument can be used to place a small icon near the section name. % The optional argument can be used to place a small icon near the section name.
% E.g. `\section[\faBookmark]{Education}` % E.g. `\section[\faBookmark]{Education}`
%
%
% leave the stretchability zero by default
% \setlength{\cvsectionstretchability}{0.0pt}
% \setlength{\cvsubsectionstretchability}{0.0pt}
% must be between -100 and 9999. The higher the less likely a page break will occur.
% This is where the page break should occur, so this number should not bee too high
% \RenewDocumentCommand\withinstretchpenalty{}{0}
% must be between -100 and 9999. The higher the less likely a page break will occur.
% \RenewDocumentCommand\poststretchpenalty{}{9999}
\RenewDocumentCommand{\section}{sO{}m}{% \RenewDocumentCommand{\section}{sO{}m}{%
\@cvneedspace{\cvsectionstretchability}% avoid orphaned sections
\tl@resetchain% \tl@resetchain%
\par\addvspace{2.5ex}% \par\addvspace{2.5ex}%
\phantomsection{}% reset the anchor for hyperrefs \phantomsection{}% reset the anchor for hyperrefs
@ -89,6 +100,7 @@
\par\nobreak\addvspace{1ex}\@afterheading}% to avoid a pagebreak after the heading \par\nobreak\addvspace{1ex}\@afterheading}% to avoid a pagebreak after the heading
\RenewDocumentCommand{\subsection}{sm}{% \RenewDocumentCommand{\subsection}{sm}{%
\@cvneedspace{\cvsubsectionstretchability}% avoid orphaned sections
\par\addvspace{1ex}% \par\addvspace{1ex}%
\phantomsection{}% reset the anchor for hyperrefs \phantomsection{}% reset the anchor for hyperrefs
\addcontentsline{toc}{subsection}{#2}% \addcontentsline{toc}{subsection}{#2}%

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-2024 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}[2024-07-18 v2.4.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-2024 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{moderncvcolorblack}[2026-01-31 v2.5.1 modern curriculum vitae and letter color scheme: black] \ProvidesPackage{moderncvcolorblack}[2024-07-18 v2.4.1 modern curriculum vitae and letter color scheme: black]
%------------------------------------------------------------------------------- %-------------------------------------------------------------------------------

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-2024 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{moderncvcolorblue}[2026-01-31 v2.5.1 modern curriculum vitae and letter color scheme: blue] \ProvidesPackage{moderncvcolorblue}[2024-07-18 v2.4.1 modern curriculum vitae and letter color scheme: blue]
%------------------------------------------------------------------------------- %-------------------------------------------------------------------------------

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-2024 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{moderncvcolorburgundy}[2026-01-31 v2.5.1 modern curriculum vitae and letter color scheme: burgundy] \ProvidesPackage{moderncvcolorburgundy}[2024-07-18 v2.4.1 modern curriculum vitae and letter color scheme: burgundy]
%------------------------------------------------------------------------------- %-------------------------------------------------------------------------------

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,7 +11,7 @@
% 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]
%------------------------------------------------------------------------------- %-------------------------------------------------------------------------------

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-2024 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{moderncvcolorgreen}[2026-01-31 v2.5.1 modern curriculum vitae and letter color scheme: green] \ProvidesPackage{moderncvcolorgreen}[2024-07-18 v2.4.1 modern curriculum vitae and letter color scheme: green]
%------------------------------------------------------------------------------- %-------------------------------------------------------------------------------

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-2024 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{moderncvcolorgrey}[2026-01-31 v2.5.1 modern curriculum vitae and letter color scheme: grey] \ProvidesPackage{moderncvcolorgrey}[2024-07-18 v2.4.1 modern curriculum vitae and letter color scheme: grey]
%------------------------------------------------------------------------------- %-------------------------------------------------------------------------------

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-2024 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{moderncvcolororange}[2026-01-31 v2.5.1 modern curriculum vitae and letter color scheme: orange] \ProvidesPackage{moderncvcolororange}[2024-07-18 v2.4.1 modern curriculum vitae and letter color scheme: orange]
%------------------------------------------------------------------------------- %-------------------------------------------------------------------------------

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-2024 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{moderncvcolorpurple}[2026-01-31 v2.5.1 modern curriculum vitae and letter color scheme: purple] \ProvidesPackage{moderncvcolorpurple}[2024-07-18 v2.4.1 modern curriculum vitae and letter color scheme: purple]
%------------------------------------------------------------------------------- %-------------------------------------------------------------------------------

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-2024 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{moderncvcolorred}[2026-01-31 v2.5.1 modern curriculum vitae and letter color scheme: red] \ProvidesPackage{moderncvcolorred}[2024-07-18 v2.4.1 modern curriculum vitae and letter color scheme: red]
%------------------------------------------------------------------------------- %-------------------------------------------------------------------------------

View file

@ -1,6 +1,6 @@
%% start of file `moderncvcolors.sty'. %% start of file `moderncvcolors.sty'.
%% Copyright 2006-2015 Xavier Danaux (xdanaux@gmail.com) %% Copyright 2006-2015 Xavier Danaux (xdanaux@gmail.com)
%% Copyright 2020-2026 moderncv maintainers (github.com/moderncv). %% Copyright 2024-2024 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{moderncvcolors}[2026-01-31 v2.5.1 modern curriculum vitae and letter base colors] \ProvidesPackage{moderncvcolors}[2024-07-18 v2.4.1 modern curriculum vitae and letter base colors]
%------------------------------------------------------------------------------- %-------------------------------------------------------------------------------
% built-in colors % built-in colors

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-2024 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}[2024-07-18 v2.4.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-2024 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}[2024-07-18 v2.4.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-2024 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}[2024-07-18 v2.4.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-2024 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}[2024-07-18 v2.4.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

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-2024 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}[2024-07-18 v2.4.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-2024 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}[2024-07-18 v2.4.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

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-2024 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}[2024-07-18 v2.4.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%

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-2024 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}[2024-07-18 v2.4.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

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-2024 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}[2024-07-18 v2.4.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

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,7 +92,6 @@
\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}}%
@ -158,9 +157,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 +183,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-2024 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}[2024-07-18 v2.4.1 modern curriculum vitae icons: academicons]
%------------------------------------------------------------------------------- %-------------------------------------------------------------------------------

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-2024 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,13 +10,13 @@
% identification % identification
%------------------------------------------------------------------------------- %-------------------------------------------------------------------------------
\NeedsTeXFormat{LaTeX2e} \NeedsTeXFormat{LaTeX2e}
\ProvidesPackage{moderncviconsawesome}[2026-01-31 v2.5.1 modern curriculum vitae icons: awesome] \ProvidesPackage{moderncviconsawesome}[2024-07-18 v2.4.1 modern curriculum vitae icons: awesome]
%------------------------------------------------------------------------------- %-------------------------------------------------------------------------------
% required packages % required packages
%------------------------------------------------------------------------------- %-------------------------------------------------------------------------------
% Font Awesome font % Font Awesome font
\RequirePackage{fontawesome6} \RequirePackage{fontawesome5}
\RequirePackage{xcolor} \RequirePackage{xcolor}
%------------------------------------------------------------------------------- %-------------------------------------------------------------------------------
@ -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-2024 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}[2024-07-18 v2.4.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-2024 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}[2024-07-18 v2.4.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-2024 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-2024 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}[2024-07-18 v2.4.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
% %
% %
@ -77,7 +77,7 @@
% 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: <Level>
% input_3 (optional): string naming the skill column (3rd column), default: <Skill> % input_3 (optional): string naming the skill column (3nd column), default: <Skill>
% input_4 (optional): string naming the experience-in-years column (4th column), default: <Years> % input_4 (optional): string naming the experience-in-years column (4th column), default: <Years>
% input_5 (optional): string naming the comment column (5th column), default: <Comment> % input_5 (optional): string naming the comment column (5th column), default: <Comment>
% %
@ -97,11 +97,11 @@
% asterix (optional): include horizontal (dashed) line above the entered line. This behaviour depends on the body style. % asterix (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 asterix 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: integer between 0 and 5, describing level of skill. \cvskill{input_2} is called internally, default: <>
% input_4: string, naming the skill, default: <> % input_4: string, naming the skill, default: <>
% input_5: positive real number, stating the number of years of experience with this skill , default: <> % input_5: positive real number, stating the number of years of experience with this skill , default: <>
% input_6: string, explaining details w.r.t. that particular skill default: <> % input_6: string, explaining details w.r.t. that particual skill default: <>
% %
% Example usages: % Example usages:
% \cvskillentry*{Language:}{3}{Python}{2}{I have done a million projects with Python} % \cvskillentry*{Language:}{3}{Python}{2}{I have done a million projects with Python}
@ -121,7 +121,7 @@
% 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
@ -137,12 +137,12 @@
% \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{``Year''}]% adjust fourth (years) 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 +153,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 +161,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,7 +203,7 @@
% identification % identification
%------------------------------------------------------------------------------- %-------------------------------------------------------------------------------
\NeedsTeXFormat{LaTeX2e} \NeedsTeXFormat{LaTeX2e}
\ProvidesPackage{moderncvskillmatrix}[2026-01-31 v2.5.1 modern curriculum vitae and letter skill matrix] \ProvidesPackage{moderncvskillmatrix}[2024-07-18 v2.4.1 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 usde.
% body type options: "moderncvbodyi" (default), "moderncvbodyii", "moderncvbodyiii", "moderncvbodyiv" or "moderncvbodyv" % body type options: "moderncvbodyi" (default), "moderncvbodyii", "moderncvbodyiii", "moderncvbodyiv" or "moderncvbodyv"
@ -230,7 +230,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%
@ -402,7 +401,7 @@
% 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
@ -418,12 +417,12 @@
% \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{``Year''}]% adjust fourth (years) 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!!!
@ -503,7 +502,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 +510,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}%
@ -594,7 +593,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
@ -768,7 +767,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}
@ -915,7 +914,7 @@
% 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: <Level>
% input_3 (optional): string naming the skill column (3rd column), default: <Skill> % input_3 (optional): string naming the skill column (3nd column), default: <Skill>
% input_4 (optional): string naming the experience-in-years column (4th column), default: <Years> % input_4 (optional): string naming the experience-in-years column (4th column), default: <Years>
% input_5 (optional): string naming the comment column (5th column), default: <Comment> % input_5 (optional): string naming the comment column (5th column), default: <Comment>
% %
@ -980,11 +979,11 @@
% asterix (optional): include horizontal (dashed) line above the entered line. This behaviour depends on the body style. % asterix (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 asterix 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: integer between 0 and 5, describing level of skill. \cvskill{input_2} is called internally, default: <>
% input_4: string, naming the skill, default: <> % input_4: string, naming the skill, default: <>
% input_5: positive real number, stating the number of years of experience with this skill , default: <> % input_5: positive real number, stating the number of years of experience with this skill , default: <>
% input_6: string, explaining details w.r.t. that particular skill default: <> % input_6: string, explaining details w.r.t. that particual skill default: <>
% %
% Example usages: % Example usages:
% \cvskillentry*{Language:}{3}{Python}{2}{I have done a million projects with Python} % \cvskillentry*{Language:}{3}{Python}{2}{I have done a million projects with Python}

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-2024 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}[2024-07-18 v2.4.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-2024 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}[2024-07-18 v2.4.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-2024 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}[2024-07-18 v2.4.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}{}

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-2024 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}[2024-07-18 v2.4.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-2024 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}[2024-07-18 v2.4.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-2024 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}[2024-07-18 v2.4.1 modern curriculum vitae and letter style scheme: oldstyle]
% headoptions % headoptions
\@initializecommand{\moderncvstyleheadoptions}{} \@initializecommand{\moderncvstyleheadoptions}{}

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-2024 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
@ -198,7 +194,7 @@ Detailed achievements:
%% 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 %% 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>} %% Usage \cvskilllegend[*][<post_padding>][<first_level>][<second_level>][<third_level>][<fourth_level>][<fifth_level>]{<name>}
@ -283,9 +279,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-2024 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.