Compare commits

..

No commits in common. "master" and "v2.5.1" have entirely different histories.

10 changed files with 104 additions and 93 deletions

View file

@ -12,37 +12,24 @@ jobs:
name: Build template
runs-on: ubuntu-latest
container:
image: texlive/texlive:latest-full
image: thomasweise/docker-texlive-full:latest
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Build pdf
run: |
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
run: latexmk -pdflua ./template.tex
- name: Upload pdf
uses: actions/upload-artifact@v4
with:
name: template.pdf
path: ./template_*.pdf
path: ./template.pdf
- name: Upload log
if: ${{ always() }}
uses: actions/upload-artifact@v4
with:
name: template.log
path: ./template_*.log
path: ./template.log

View file

@ -18,7 +18,7 @@ jobs:
UG_AUTHOR: Auto Userguide Creator
UG_COMMIT_MESSAGE: <automated> build of user guide
container:
image: texlive/texlive:latest-full
image: thomasweise/docker-texlive-full:latest
steps:
- name: Checkout source code

View file

@ -1,8 +1,3 @@
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)
@ -21,10 +16,6 @@ version 2.5.1 (31 Jan 2026)
visible (#186)
- Fix minor horizontal spacing issue in 'contemporary' style header
version 2.4.2 (01 Feb 2025)
- Added support for additional social icons like medium. (#264)
version 2.4.1 (18 Jul 2024)
- Fix commons/colors.tex not found in package (#194)

Binary file not shown.

View file

@ -104,7 +104,7 @@
emph={[2]
familydefault, sfdefault, rmdefault, inputenc, moderncv, document, bibliographyitemlabel,
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,
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}
\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}
\moderncvcolor{<color>}
\moderncvstyle{<style>}
\moderncvcolor{<color>}
\end{lstlisting}
As explained in \cvtemplate, the possible values are
\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},
\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}
\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.
\begin{lstlisting}
\social[<platform>]{<username or handle>}
\social[<platform>][<link to site>]{<Text shown in document>}
\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{multicols}{4}
\item \code{arxiv}
@ -348,7 +347,6 @@ The following values are supported for \code{<platform>} (see also \ref{icon:usa
\item \code{mastodon}
\item \code{matrix}
\item \code{orcid}
\item \code{medium}
\item \code{playstation}
\item \code{researcherid}
\item \code{researchgate}
@ -752,9 +750,17 @@ If an even finer control over the color scheme of the style is desired, the foll
\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}.
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>}:
\begin{itemize}
\begin{multicols}{2}
@ -764,76 +770,44 @@ Currently \Moderncv supports the following commands as \code{<\\symbolcommand>}:
\item \code{\\faxphonesymbol}
\item \code{\\emailsymbol}
\item \code{\\homepagesymbol}
\item \code{\\bornsymbol}
\item \code{\\linkedinsocialsymbol}
\item \code{\\xingsocialsymbol}
\item \code{\\twittersocialsymbol}
\item \code{\\mastodonsocialsymbol}
\item \code{\\githubsocialsymbol}
\item \code{\\gitlabsocialsymbol}
\item \code{\\stackoverflowsocialsymbol}
\item \code{\\bitbucketsocialsymbol}
\item \code{\\skypesocialsymbol}
\item \code{\\orcidsocialsymbol}
\item \code{\\researchgatesocialsymbol}
\item \code{\\researcheridsocialsymbol}
\item \code{\\googlescholarsocialsymbol}
\item \code{\\telegramsocialsymbol}
\item \code{\\whatsappsocialsymbol}
\item \code{\\signalsocialsymbol}
\item \code{\\matrixsocialsymbol}
\item \code{\\googlescholarsocialsymbol}
\item \code{\\codebergsocialsymbol}
\item \code{\\discordsocialsymbol}
\item \code{\\twitchsocialsymbol}
\item \code{\\youtubesocialsymbol}
\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{\\orcidsocialsymbol}
\item \code{\\researchgatesocialsymbol}
\item \code{\\researcheridsocialsymbol}
\item \code{\\bitbucketsocialsymbol}
\item \code{\\skypesocialsymbol}
\item \code{\\bornsymbol}
\item \code{\\arxivsocialsymbol}
\item \code{\\inspiresocialsymbol}
\item \code{\\simplexsocialsymbol}
\item \code{\\threemasocialsymbol}
\end{multicols}
\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.
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:
\begin{tabular}{l}
\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}
\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.}
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}
\renewcommand*{\fixedphonesymbol}{\ding{38}~}
\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.
\begin{lstlisting}
\moderncvicons{<symbols|letters>}
@ -1061,7 +1035,7 @@ In addition to the packages that \Moderncv provides, the following packages are
\item \code{expl3}
\item \code{tikz}
\item \code{changepage}
\item \code{fontawesome6}
\item \code{fontawesome5}
\item \code{academicons}
\item \code{tgpagella}
\item \code{ebgaramond}

View file

@ -328,7 +328,6 @@
\ifthenelse{\equal{#1}{inspire}} {\collectionadd[inspire]{socials} {\protect\httpslink[#3]{inspirehep.net/authors/#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}}}}%
@ -398,10 +397,6 @@
\newcommand*{\inspiresocialsymbol} {}
\newcommand*{\simplexsocialsymbol} {}
\newcommand*{\threemasocialsymbol} {}
\newcommand*{\mediumsocialsymbol} {}
% other
%------

View file

@ -16,7 +16,7 @@
% required packages
%-------------------------------------------------------------------------------
% Font Awesome font
\RequirePackage{fontawesome6}
\RequirePackage{fontawesome5}
\RequirePackage{xcolor}
%-------------------------------------------------------------------------------
@ -55,8 +55,6 @@
\providecolor{playstation}{named}{default-socialicon-color}
\providecolor{battlenet}{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
@ -72,7 +70,7 @@
\renewcommand*{\fixedphonesymbol} {{\color{fixedphone}\small\faPhone*}~} % alternative: \faPhone (reversed)
\renewcommand*{\faxphonesymbol} {{\color{faxphone}\small\faFax}~} % alternative: \faPrint
\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*{\xingsocialsymbol} {{\color{xing}\small\faXing}~} % alternative: \faXingSquare
\renewcommand*{\twittersocialsymbol} {{\color{twitter}\small\faTwitter}~} % alternative: \faTwitterSquare
@ -98,13 +96,11 @@
\renewcommand*{\xboxsocialsymbol} {{\color{xbox}\small\faXbox}~}
\renewcommand*{\playstationsocialsymbol} {{\color{playstation}\small\faPlaystation}~}
\renewcommand*{\battlenetsocialsymbol} {{\color{battlenet}\small\faBattleNet}~}
\renewcommand*{\signalsocialsymbol} {{\color{signal}\small\faSignalMessenger}~}
%\renewcommand*{\signalsocialsymbol} {}
%\renewcommand*{\matrixsocialsymbol} {}
% \renewcommand*{\arxivsocialsymbol} {{\color{arxiv}{\small\faarXiv}}~}
% \renewcommand*{\inspiresocialsymbol} {{\color{inspire}{\small\faInspire}}~}
\renewcommand*{\bornsymbol} {{\color{born}\small\faAsterisk}~} % alternative: \faBabyCarriage
\renewcommand*{\mediumsocialsymbol} {{\color{medium}\small\faMedium}~}
\endinput

View file

@ -38,7 +38,6 @@
\renewcommand*{\bitbucketsocialsymbol} {\textbf{bb}~}
\renewcommand*{\skypesocialsymbol} {\textbf{sk}~}
\renewcommand*{\orcidsocialsymbol} {\textbf{orcid}~}
\renewcommand*{\mediumsocialsymbol} {\textbf{Me}~}
\renewcommand*{\researchgatesocialsymbol} {\textbf{rg}~}
\renewcommand*{\researcheridsocialsymbol} {\textbf{ri}~}
\renewcommand*{\telegramsocialsymbol} {\textbf{tg}~}

View file

@ -33,6 +33,7 @@
\providecolor{skype}{named}{default-socialicon-color}
\providecolor{googlescholar}{named}{default-socialicon-color}
\providecolor{matrix}{named}{default-socialicon-color}
\providecolor{signal}{named}{default-socialicon-color}
\providecolor{codeberg}{named}{default-socialicon-color}
\providecolor{simplex}{named}{default-socialicon-color}
\providecolor{threema}{named}{default-socialicon-color}
@ -387,6 +388,76 @@
~}
}{}\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=signal]
(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} {
\renewcommand*{\codebergsocialsymbol} {
\protect\raisebox{-0.12em}{

View file

@ -79,8 +79,6 @@
\social[researcherid]{jdoe} % 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[mastodon]{mastodon.social/web/@user} % optional, remove / comment the line if not wanted
\social[telegram]{jdoe} % optional, remove / comment the line if not wanted