mirror of
https://github.com/moderncv/moderncv.git
synced 2026-09-27 20:34:09 +02:00
Compare commits
5 commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
8f6ef0e729 |
||
|
|
45e7d7f26e |
||
|
|
91f15a1cf9 |
||
|
|
282cb09675 |
||
|
|
9e16e08831 |
16 changed files with 62 additions and 77 deletions
|
|
@ -1,8 +1,5 @@
|
||||||
version next
|
version next
|
||||||
- Upgrade to Fontawesome 7 (#270)
|
- Upgrade to Fontawesome 7 (#270)
|
||||||
- Fix "Underfull \hbox (badness 10000)" warning in banking \subsection dotted
|
|
||||||
rules by adding \hss glue as in \dotfill (#307)
|
|
||||||
- Update "circle" option to allow for half-filled circles in skill matrix (#309)
|
|
||||||
|
|
||||||
version 2.6.1 (24 Jun 2026)
|
version 2.6.1 (24 Jun 2026)
|
||||||
- Allow the customisation of the contemporary style (#297)
|
- Allow the customisation of the contemporary style (#297)
|
||||||
|
|
@ -50,6 +47,7 @@ version 2.5.1 (31 Jan 2026)
|
||||||
- Add contemporary CV header style to cover letter, which also makes icons
|
- Add contemporary CV header style to cover letter, which also makes icons
|
||||||
visible (#186)
|
visible (#186)
|
||||||
- Fix minor horizontal spacing issue in 'contemporary' style header
|
- Fix minor horizontal spacing issue in 'contemporary' style header
|
||||||
|
- Added optional support for specifying pronouns (#249)
|
||||||
|
|
||||||
|
|
||||||
version 2.4.2 (01 Feb 2025)
|
version 2.4.2 (01 Feb 2025)
|
||||||
|
|
|
||||||
Binary file not shown.
|
|
@ -97,7 +97,7 @@
|
||||||
emph={
|
emph={
|
||||||
cvitem, cventry, cvdoubleentry, cvdoubleitem, cvtripleitem, cvlistitem, cvlistdoubleitem, cvcolumns, moderncvstyle, moderncvcolor,
|
cvitem, cventry, cvdoubleentry, cvdoubleitem, cvtripleitem, cvlistitem, cvlistdoubleitem, cvcolumns, moderncvstyle, moderncvcolor,
|
||||||
cvskill, cvskilllegend, cvskillplainlegend, cvskillhead, cvskillentry, nopagenumbers,
|
cvskill, cvskilllegend, cvskillplainlegend, cvskillhead, cvskillentry, nopagenumbers,
|
||||||
name, born, address, email, link, social, phone, homepage, extrainfo, photo, quote, section, subsection, setlength, NewDocumentCommand, definecolor, colorlet, cvitemwithcomment,
|
name, born, pronouns, gendericon, address, email, link, social, phone, homepage, extrainfo, photo, quote, section, subsection, setlength, NewDocumentCommand, definecolor, colorlet, cvitemwithcomment,
|
||||||
recipient, subject, opening, closing, signature, postscript, enclosure, makelettertitle, makeletterclosing, httplink, httpslink, emaillink
|
recipient, subject, opening, closing, signature, postscript, enclosure, makelettertitle, makeletterclosing, httplink, httpslink, emaillink
|
||||||
},
|
},
|
||||||
emphstyle={\color{cvblue}},
|
emphstyle={\color{cvblue}},
|
||||||
|
|
@ -106,7 +106,7 @@
|
||||||
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, mastodonsocialsymbol, codebergsocialsymbol, discordsocialsymbol, twitchsocialsymbol, youtubesocialsymbol, tiktoksocialsymbol, instagramsocialsymbol, soundcloudsocialsymbol, steamsocialsymbol, xboxsocialsymbol, playstationsocialsymbol, battlenetsocialsymbol, simplexsocialsymbol, threemasocialsymbol,
|
||||||
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, pronounsymbol
|
||||||
},
|
},
|
||||||
emphstyle={[2]\color{cvblue!60!cvgrey}\bfseries},
|
emphstyle={[2]\color{cvblue!60!cvgrey}\bfseries},
|
||||||
literate={{é}{{\'e}}1},
|
literate={{é}{{\'e}}1},
|
||||||
|
|
@ -237,8 +237,7 @@ where at most one value for each option can be passed to the document class:
|
||||||
\code{legalpaper}, \code{executivepaper}, \code{landscape} \\
|
\code{legalpaper}, \code{executivepaper}, \code{landscape} \\
|
||||||
\textbf{\code{font family}:} & \code{sans}, \code{roman} \\
|
\textbf{\code{font family}:} & \code{sans}, \code{roman} \\
|
||||||
\textbf{\code{font size}:} & \code{10pt}, \code{11pt} (default), \code{12pt} \\
|
\textbf{\code{font size}:} & \code{10pt}, \code{11pt} (default), \code{12pt} \\
|
||||||
\textbf{\code{draft/final}:} & \code{draft}, \code{final} (default) \\
|
\textbf{\code{draft/final}:} & \code{draft}, \code{final} (default)
|
||||||
\textbf{\code{skill level symbol}:} & \code{circle}, \code{square} (default)
|
|
||||||
\end{tabular}
|
\end{tabular}
|
||||||
|
|
||||||
\subsubsection*{Choosing a \texttt{moderncv} style and color}
|
\subsubsection*{Choosing a \texttt{moderncv} style and color}
|
||||||
|
|
@ -300,6 +299,18 @@ A command for a birth date.
|
||||||
\born{<birth date>}
|
\born{<birth date>}
|
||||||
\end{lstlisting}
|
\end{lstlisting}
|
||||||
|
|
||||||
|
\paragraph{\code{\\pronouns}}
|
||||||
|
A command for your pronouns.
|
||||||
|
\begin{lstlisting}
|
||||||
|
\pronouns{<pronouns>}
|
||||||
|
\end{lstlisting}
|
||||||
|
|
||||||
|
\paragraph{\code{\\gendericon}}
|
||||||
|
A command for the icon used for your gender.
|
||||||
|
\begin{lstlisting}
|
||||||
|
\gendericon{<icon>}
|
||||||
|
\end{lstlisting}
|
||||||
|
|
||||||
\paragraph{\code{\\address}}
|
\paragraph{\code{\\address}}
|
||||||
A command for a three-lined street address.
|
A command for a three-lined street address.
|
||||||
\begin{lstlisting}
|
\begin{lstlisting}
|
||||||
|
|
@ -515,8 +526,6 @@ The required argument must be a number from 0 to 5.
|
||||||
\end{lstlisting}
|
\end{lstlisting}
|
||||||
This command can be used outside of the skill matrix, too.
|
This command can be used outside of the skill matrix, too.
|
||||||
|
|
||||||
If the option \code{square} (default) is passed when loading the document class, the skill level will be represented by filled and empty squares. If the option \code{circle} is passed, half-integer values ($0.5$, $1.5$, \emph{etc}) are allowed and the skill level will be represented by filled, half-filled and empty circles.
|
|
||||||
|
|
||||||
\paragraph{\code{\\cvskilllegend}}
|
\paragraph{\code{\\cvskilllegend}}
|
||||||
A command for a legend for the skill matrix.
|
A command for a legend for the skill matrix.
|
||||||
Takes six optional arguments: post-padding width and the descriptions for the five skill levels.
|
Takes six optional arguments: post-padding width and the descriptions for the five skill levels.
|
||||||
|
|
@ -556,7 +565,7 @@ Takes five optional arguments: post-padding width, level, skill label, years of
|
||||||
|
|
||||||
\paragraph{\code{\\cvskillentry}}
|
\paragraph{\code{\\cvskillentry}}
|
||||||
A command for an entry in the skill matrix.
|
A command for an entry in the skill matrix.
|
||||||
Takes five required arguments: skill category, skill level, skill name, years of experience and a comment.
|
Takes five required arguments: skill category, skill level (0 to 5), skill name, years of experience and a comment.
|
||||||
Takes a single optional argument for the post-padding width.
|
Takes a single optional argument for the post-padding width.
|
||||||
\begin{lstlisting}
|
\begin{lstlisting}
|
||||||
\cvskillentry*[<post-padding>]{<skill category>}{<0-5>}
|
\cvskillentry*[<post-padding>]{<skill category>}{<0-5>}
|
||||||
|
|
@ -564,7 +573,6 @@ Takes a single optional argument for the post-padding width.
|
||||||
\end{lstlisting}
|
\end{lstlisting}
|
||||||
An optional asterisk toggles the inclusion of a dashed line.
|
An optional asterisk toggles the inclusion of a dashed line.
|
||||||
\code{<post-padding>} must be a valid length like \code{1em} or \code{1ex}.
|
\code{<post-padding>} must be a valid length like \code{1em} or \code{1ex}.
|
||||||
Skill level ranges from 0 to 5 with integer steps when using document class option \code{square}; or half-integer steps when using option \code{circle}.
|
|
||||||
|
|
||||||
How to make length adjustments to the skill matrix will be explained in section \ref{section:length:skillmatrix}.
|
How to make length adjustments to the skill matrix will be explained in section \ref{section:length:skillmatrix}.
|
||||||
|
|
||||||
|
|
@ -819,6 +827,7 @@ Currently \Moderncv supports the following commands as \code{<\\symbolcommand>}:
|
||||||
\item \code{\\battlenetsocialsymbol}
|
\item \code{\\battlenetsocialsymbol}
|
||||||
\item \code{\\mediumsocialsymbol}
|
\item \code{\\mediumsocialsymbol}
|
||||||
\item \code{\\bornsymbol}
|
\item \code{\\bornsymbol}
|
||||||
|
\item \code{\\pronounsymbol}
|
||||||
\item \code{\\arxivsocialsymbol}
|
\item \code{\\arxivsocialsymbol}
|
||||||
\item \code{\\inspiresocialsymbol}
|
\item \code{\\inspiresocialsymbol}
|
||||||
\item \code{\\simplexsocialsymbol}
|
\item \code{\\simplexsocialsymbol}
|
||||||
|
|
|
||||||
|
|
@ -224,6 +224,14 @@
|
||||||
% usage: \title{<title>}
|
% usage: \title{<title>}
|
||||||
\renewcommand*{\title}[1]{\def\@title{#1}}
|
\renewcommand*{\title}[1]{\def\@title{#1}}
|
||||||
|
|
||||||
|
% defines one's preferred pronouns (optional)
|
||||||
|
% usage: \pronouns{<pronouns>}
|
||||||
|
\newcommand*{\pronouns}[1]{\def\@pronouns{#1}}
|
||||||
|
|
||||||
|
% defines one's preferred gender icon (optional)
|
||||||
|
% usage: \gendericon{<gendericon>}
|
||||||
|
\newcommand*{\gendericon}[1]{\def\@gendericon{#1}}
|
||||||
|
|
||||||
% defines one's address (optional)
|
% defines one's address (optional)
|
||||||
% usage: \address{<street>}{<city>}{<country>}
|
% usage: \address{<street>}{<city>}{<country>}
|
||||||
% where the <city> and <country> arguments can be omitted or provided empty
|
% where the <city> and <country> arguments can be omitted or provided empty
|
||||||
|
|
@ -361,6 +369,7 @@
|
||||||
\newcommand*{\listitemsymbol} {\labelitemi~}
|
\newcommand*{\listitemsymbol} {\labelitemi~}
|
||||||
\newcommand*{\addresssymbol} {}
|
\newcommand*{\addresssymbol} {}
|
||||||
\newcommand*{\bornsymbol} {}
|
\newcommand*{\bornsymbol} {}
|
||||||
|
\newcommand*{\pronounsymbol} {}
|
||||||
\newcommand*{\mobilephonesymbol} {}
|
\newcommand*{\mobilephonesymbol} {}
|
||||||
\newcommand*{\fixedphonesymbol} {}
|
\newcommand*{\fixedphonesymbol} {}
|
||||||
\newcommand*{\faxphonesymbol} {}
|
\newcommand*{\faxphonesymbol} {}
|
||||||
|
|
|
||||||
|
|
@ -139,13 +139,13 @@
|
||||||
\newcommand*{\subsectionrule}{}
|
\newcommand*{\subsectionrule}{}
|
||||||
\if@fullrules%
|
\if@fullrules%
|
||||||
\renewcommand*{\sectionrule}{\par\nobreak\vspace*{-.7\baselineskip}\leavevmode{\color{bodyrulecolor}\leaders\hbox{\rule{1pt}{0.4pt}}\hfill\kern0pt}}
|
\renewcommand*{\sectionrule}{\par\nobreak\vspace*{-.7\baselineskip}\leavevmode{\color{bodyrulecolor}\leaders\hbox{\rule{1pt}{0.4pt}}\hfill\kern0pt}}
|
||||||
\renewcommand*{\subsectionrule}{\par\nobreak\vspace*{-.7\baselineskip}\leavevmode{\color{bodyrulecolor}\xleaders\hbox to 0.35em{\hss\scriptsize.\hss}\hfill\kern0pt}}\fi% different subsectionrules will not be perfectly aligned, but remaining space at the end of the fill will be distributed evenly between leaders, so it will be barely visible}
|
\renewcommand*{\subsectionrule}{\par\nobreak\vspace*{-.7\baselineskip}\leavevmode{\color{bodyrulecolor}\xleaders\hbox to 0.35em{\scriptsize.}\hfill}}\fi% different subsectionrules will not be perfectly aligned, but remaining space at the end of the fill will be distributed evenly between leaders, so it will be barely visible}
|
||||||
\if@shortrules%
|
\if@shortrules%
|
||||||
\renewcommand*{\sectionrule}{\leavevmode{\color{bodyrulecolor}\leaders\hbox{\rule{1pt}{0.4pt}}\hfill\kern0pt}}
|
\renewcommand*{\sectionrule}{\leavevmode{\color{bodyrulecolor}\leaders\hbox{\rule{1pt}{0.4pt}}\hfill\kern0pt}}
|
||||||
\renewcommand*{\subsectionrule}{\leavevmode{\color{bodyrulecolor}\xleaders\hbox to 0.35em{\hss\scriptsize.\hss}\hfill\kern0pt}}\fi% different subsectionrules will not be perfectly aligned, but remaining space at the end of the fill will be distributed evenly between leaders, so it will be barely visible}}
|
\renewcommand*{\subsectionrule}{\leavevmode{\color{bodyrulecolor}\xleaders\hbox to 0.35em{\scriptsize.}\hfill}}\fi% different subsectionrules will not be perfectly aligned, but remaining space at the end of the fill will be distributed evenly between leaders, so it will be barely visible}}
|
||||||
\if@mixedrules%
|
\if@mixedrules%
|
||||||
\renewcommand*{\sectionrule}{\par\nobreak\vspace*{-.7\baselineskip}\leavevmode{\color{bodyrulecolor}\leaders\hbox{\rule{1pt}{0.4pt}}\hfill\kern0pt}}
|
\renewcommand*{\sectionrule}{\par\nobreak\vspace*{-.7\baselineskip}\leavevmode{\color{bodyrulecolor}\leaders\hbox{\rule{1pt}{0.4pt}}\hfill\kern0pt}}
|
||||||
\renewcommand*{\subsectionrule}{\leavevmode{\color{bodyrulecolor}\xleaders\hbox to 0.35em{\hss\scriptsize.\hss}\hfill\kern0pt}}\fi% different subsectionrules will not be perfectly aligned, but remaining space at the end of the fill will be distributed evenly between leaders, so it will be barely visible}}
|
\renewcommand*{\subsectionrule}{\leavevmode{\color{bodyrulecolor}\xleaders\hbox to 0.35em{\scriptsize.}\hfill}}\fi% different subsectionrules will not be perfectly aligned, but remaining space at the end of the fill will be distributed evenly between leaders, so it will be barely visible}}
|
||||||
\if@norules%
|
\if@norules%
|
||||||
\renewcommand*{\sectionrule}{}
|
\renewcommand*{\sectionrule}{}
|
||||||
\renewcommand*{\subsectionrule}{}\fi
|
\renewcommand*{\subsectionrule}{}\fi
|
||||||
|
|
|
||||||
|
|
@ -86,6 +86,7 @@
|
||||||
\ifthenelse{\equal{\@addresscountry}{}}{}{\addtofoot[~--~]{\@addresscountry}}%
|
\ifthenelse{\equal{\@addresscountry}{}}{}{\addtofoot[~--~]{\@addresscountry}}%
|
||||||
\flushfoot\@firstfootelementtrue\\}%
|
\flushfoot\@firstfootelementtrue\\}%
|
||||||
\ifthenelse{\isundefined{\@born}}{}{\addtofoot{\bornsymbol\@born}\flushfoot\@firstfootelementtrue\\}%
|
\ifthenelse{\isundefined{\@born}}{}{\addtofoot{\bornsymbol\@born}\flushfoot\@firstfootelementtrue\\}%
|
||||||
|
\ifthenelse{\isundefined{\@pronouns}}{}{\addtofoot{\pronounsymbol\@pronouns}\flushfoot\@firstfootelementtrue\\}%
|
||||||
\collectionloop{phones}{% the key holds the phone type (=symbol command prefix), the item holds the number
|
\collectionloop{phones}{% the key holds the phone type (=symbol command prefix), the item holds the number
|
||||||
\addtofoot{\csname\collectionloopkey phonesymbol\endcsname\collectionloopitem}}%
|
\addtofoot{\csname\collectionloopkey phonesymbol\endcsname\collectionloopitem}}%
|
||||||
\ifthenelse{\isundefined{\@email}}{}{\addtofoot{\emailsymbol\emaillink{\@email}}}%
|
\ifthenelse{\isundefined{\@email}}{}{\addtofoot{\emailsymbol\emaillink{\@email}}}%
|
||||||
|
|
|
||||||
|
|
@ -86,6 +86,7 @@
|
||||||
\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}%
|
\ifthenelse{\isundefined{\@born}}{}{\makenewline\bornsymbol\@born}%
|
||||||
|
\ifthenelse{\isundefined{\@pronouns}}{}{\makenewline\pronounsymbol\@pronouns}%
|
||||||
\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%
|
\ifthenelse{\isundefined{\@homepage}}{}{\makenewline\homepagesymbol%
|
||||||
|
|
|
||||||
|
|
@ -141,6 +141,7 @@
|
||||||
\ifthenelse{\equal{\@addresscountry}{}}{}{\addtomakeheaddetails[~--~]{\@addresscountry}}%
|
\ifthenelse{\equal{\@addresscountry}{}}{}{\addtomakeheaddetails[~--~]{\@addresscountry}}%
|
||||||
\flushmakeheaddetails\@firstmakeheaddetailselementtrue\\\null}%
|
\flushmakeheaddetails\@firstmakeheaddetailselementtrue\\\null}%
|
||||||
\ifthenelse{\isundefined{\@born}}{}{\addtomakeheaddetails{\bornsymbol\@born}}%
|
\ifthenelse{\isundefined{\@born}}{}{\addtomakeheaddetails{\bornsymbol\@born}}%
|
||||||
|
\ifthenelse{\isundefined{\@pronouns}}{}{\addtomakeheaddetails{\pronounsymbol\@pronouns}}%
|
||||||
\collectionloop{phones}{% the key holds the phone type (=symbol command prefix), the item holds the number
|
\collectionloop{phones}{% the key holds the phone type (=symbol command prefix), the item holds the number
|
||||||
\addtomakeheaddetails{\csname\collectionloopkey phonesymbol\endcsname\collectionloopitem}}%
|
\addtomakeheaddetails{\csname\collectionloopkey phonesymbol\endcsname\collectionloopitem}}%
|
||||||
\ifthenelse{\isundefined{\@email}}{}{\addtomakeheaddetails{\emailsymbol\emaillink{\@email}}}%
|
\ifthenelse{\isundefined{\@email}}{}{\addtomakeheaddetails{\emailsymbol\emaillink{\@email}}}%
|
||||||
|
|
|
||||||
|
|
@ -94,6 +94,7 @@
|
||||||
\ifthenelse{\equal{\@addresscountry}{}}{}{\addtomakeheaddetails[~--~]{\@addresscountry}}%
|
\ifthenelse{\equal{\@addresscountry}{}}{}{\addtomakeheaddetails[~--~]{\@addresscountry}}%
|
||||||
\flushmakeheaddetails\@firstmakeheaddetailselementtrue\\}%
|
\flushmakeheaddetails\@firstmakeheaddetailselementtrue\\}%
|
||||||
\ifthenelse{\isundefined{\@born}}{}{\addtomakeheaddetails{\bornsymbol\@born}}%
|
\ifthenelse{\isundefined{\@born}}{}{\addtomakeheaddetails{\bornsymbol\@born}}%
|
||||||
|
\ifthenelse{\isundefined{\@pronouns}}{}{\addtomakeheaddetails{\pronounsymbol\@pronouns}}%
|
||||||
\collectionloop{phones}{% the key holds the phone type (=symbol command prefix), the item holds the number
|
\collectionloop{phones}{% the key holds the phone type (=symbol command prefix), the item holds the number
|
||||||
\addtomakeheaddetails{\csname\collectionloopkey phonesymbol\endcsname\collectionloopitem}}%
|
\addtomakeheaddetails{\csname\collectionloopkey phonesymbol\endcsname\collectionloopitem}}%
|
||||||
\ifthenelse{\isundefined{\@email}}{}{\addtomakeheaddetails{\emailsymbol\emaillink{\@email}}}%
|
\ifthenelse{\isundefined{\@email}}{}{\addtomakeheaddetails{\emailsymbol\emaillink{\@email}}}%
|
||||||
|
|
|
||||||
|
|
@ -110,6 +110,7 @@
|
||||||
\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\hbox to 1.0em{\bornsymbol}~\@born}%
|
\ifthenelse{\isundefined{\@born}}{}{\makenewline\hbox to 1.0em{\bornsymbol}~\@born}%
|
||||||
|
\ifthenelse{\isundefined{\@pronouns}}{}{\makenewline\hbox to 1.0em{\pronounsymbol}~\@pronouns}%
|
||||||
\collectionloop{phones}{% the key holds the phone type (=symbol command prefix), the item holds the number
|
\collectionloop{phones}{% the key holds the phone type (=symbol command prefix), the item holds the number
|
||||||
\makenewline\hbox to 1.0em{\csname\collectionloopkey phonesymbol\endcsname}~\collectionloopitem}%
|
\makenewline\hbox to 1.0em{\csname\collectionloopkey phonesymbol\endcsname}~\collectionloopitem}%
|
||||||
\ifthenelse{\isundefined{\@email}}{}{\makenewline\hbox to 1.0em{\emailsymbol}~\emaillink{\@email}}%
|
\ifthenelse{\isundefined{\@email}}{}{\makenewline\hbox to 1.0em{\emailsymbol}~\emaillink{\@email}}%
|
||||||
|
|
|
||||||
|
|
@ -82,6 +82,7 @@
|
||||||
\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}%
|
\ifthenelse{\isundefined{\@born}}{}{\makenewline\bornsymbol~\@born}%
|
||||||
|
\ifthenelse{\isundefined{\@pronouns}}{}{\makenewline\pronounsymbol~\@pronouns}%
|
||||||
\collectionloop{phones}{% the key holds the phone type (=symbol command prefix), the item holds the number
|
\collectionloop{phones}{% the key holds the phone type (=symbol command prefix), the item holds the number
|
||||||
\makenewline\csname\collectionloopkey phonesymbol\endcsname~\collectionloopitem}%
|
\makenewline\csname\collectionloopkey phonesymbol\endcsname~\collectionloopitem}%
|
||||||
\ifthenelse{\isundefined{\@email}}{}{\makenewline\emailsymbol~\emaillink{\@email}}%
|
\ifthenelse{\isundefined{\@email}}{}{\makenewline\emailsymbol~\emaillink{\@email}}%
|
||||||
|
|
|
||||||
|
|
@ -115,6 +115,7 @@
|
||||||
\ifthenelse{\equal{\@addresscountry}{}}{}{\addtomakeheaddetails[~--~]{\@addresscountry}}%
|
\ifthenelse{\equal{\@addresscountry}{}}{}{\addtomakeheaddetails[~--~]{\@addresscountry}}%
|
||||||
\flushmakeheaddetails\@firstmakeheaddetailselementtrue\\\null}%
|
\flushmakeheaddetails\@firstmakeheaddetailselementtrue\\\null}%
|
||||||
\ifthenelse{\isundefined{\@born}}{}{\addtomakeheaddetails{\bornsymbol\@born}}%
|
\ifthenelse{\isundefined{\@born}}{}{\addtomakeheaddetails{\bornsymbol\@born}}%
|
||||||
|
\ifthenelse{\isundefined{\@pronouns}}{}{\addtomakeheaddetails{\pronounsymbol\@pronouns}}%
|
||||||
\collectionloop{phones}{% the key holds the phone type (=symbol command prefix), the item holds the number
|
\collectionloop{phones}{% the key holds the phone type (=symbol command prefix), the item holds the number
|
||||||
\addtomakeheaddetails{\csname\collectionloopkey phonesymbol\endcsname\collectionloopitem}}%
|
\addtomakeheaddetails{\csname\collectionloopkey phonesymbol\endcsname\collectionloopitem}}%
|
||||||
\ifthenelse{\isundefined{\@email}}{}{\addtomakeheaddetails{\emailsymbol\emaillink{\@email}}}%
|
\ifthenelse{\isundefined{\@email}}{}{\addtomakeheaddetails{\emailsymbol\emaillink{\@email}}}%
|
||||||
|
|
|
||||||
|
|
@ -98,6 +98,7 @@
|
||||||
\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}%
|
\ifthenelse{\isundefined{\@born}}{}{\makenewline\bornsymbol\@born}%
|
||||||
|
\ifthenelse{\isundefined{\@pronouns}}{}{\makenewline\pronounsymbol\@pronouns}%
|
||||||
\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}}%
|
||||||
|
|
|
||||||
|
|
@ -55,6 +55,7 @@
|
||||||
\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{gender}{named}{default-socialicon-color}
|
||||||
\providecolor{signal}{named}{default-socialicon-color}
|
\providecolor{signal}{named}{default-socialicon-color}
|
||||||
\providecolor{medium}{named}{default-socialicon-color}
|
\providecolor{medium}{named}{default-socialicon-color}
|
||||||
|
|
||||||
|
|
@ -104,6 +105,8 @@
|
||||||
% \renewcommand*{\arxivsocialsymbol} {{\color{arxiv}{\small\faIcon{arxiv}}}~}
|
% \renewcommand*{\arxivsocialsymbol} {{\color{arxiv}{\small\faIcon{arxiv}}}~}
|
||||||
% No inspire icon in fontawesome6 (v6.7.2-3) or fontawesome7 (v7.1.0-1)
|
% No inspire icon in fontawesome6 (v6.7.2-3) or fontawesome7 (v7.1.0-1)
|
||||||
% \renewcommand*{\inspiresocialsymbol} {{\color{inspire}{\small\faIcon{inspire}}}~}
|
% \renewcommand*{\inspiresocialsymbol} {{\color{inspire}{\small\faIcon{inspire}}}~}
|
||||||
|
\def\@gendericon{\faNeuter}
|
||||||
|
\renewcommand*{\pronounsymbol} {{\color{gender}\small\@gendericon}~}
|
||||||
\renewcommand*{\bornsymbol} {{\color{born}\raisebox{.5ex}{\tiny\faIcon{asterisk}}}~} % alternative: \faIcon{baby-carriage}
|
\renewcommand*{\bornsymbol} {{\color{born}\raisebox{.5ex}{\tiny\faIcon{asterisk}}}~} % alternative: \faIcon{baby-carriage}
|
||||||
\renewcommand*{\mediumsocialsymbol} {{\color{medium}\small\faIcon{medium}}~}
|
\renewcommand*{\mediumsocialsymbol} {{\color{medium}\small\faIcon{medium}}~}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -219,7 +219,6 @@
|
||||||
\DeclareOption{moderncvbodyv}{\@moderncvbodyifalse\@moderncvbodyiifalse\@moderncvbodyiiifalse\@moderncvbodyivfalse\@moderncvbodyvtrue}
|
\DeclareOption{moderncvbodyv}{\@moderncvbodyifalse\@moderncvbodyiifalse\@moderncvbodyiiifalse\@moderncvbodyivfalse\@moderncvbodyvtrue}
|
||||||
|
|
||||||
% If option `circle` is specified, use circles instead of small rectangles for rating skills
|
% If option `circle` is specified, use circles instead of small rectangles for rating skills
|
||||||
% This option also allows for half-filled circles
|
|
||||||
\@initializeif{\if@cvskillcircle}\@cvskillcirclefalse
|
\@initializeif{\if@cvskillcircle}\@cvskillcirclefalse
|
||||||
\DeclareOption{circle}{\@cvskillcircletrue}
|
\DeclareOption{circle}{\@cvskillcircletrue}
|
||||||
|
|
||||||
|
|
@ -238,71 +237,32 @@
|
||||||
% %-------------------------------------------------------------------------------
|
% %-------------------------------------------------------------------------------
|
||||||
% % \cvskill command
|
% % \cvskill command
|
||||||
% %-------------------------------------------------------------------------------
|
% %-------------------------------------------------------------------------------
|
||||||
% The code for the Skilllevel illustration with the little boxes (or circles).
|
% The code for the Skilllevel illustration with the little boxes.
|
||||||
% This is idea stolen from the limecv package, see https://github.com/opieters/limecv.git
|
% This is idea stolen from the limecv package, see https://github.com/opieters/limecv.git
|
||||||
|
|
||||||
\@initializelength{\cvSkill@ShapeSize}
|
\@initializelength{\cvSkill@ShapeSize}
|
||||||
\if@cvskillcircle%
|
\if@cvskillcircle%
|
||||||
\setlength{\cvSkill@ShapeSize}{.8ex}%
|
\setlength{\cvSkill@ShapeSize}{.7ex}%
|
||||||
\newcommand*\cvSkill@FullCircle[1][\cvSkill@ShapeSize]{%
|
\def\cvSkill@Shape#1{\tikz\filldraw[#1] (0, 0) circle (\cvSkill@ShapeSize);}
|
||||||
\tikz\filldraw[skillmatrixfullcolor] (0,0) circle (#1);%
|
|
||||||
}
|
|
||||||
\newcommand*\cvSkill@HalfCircle[1][\cvSkill@ShapeSize]{%
|
|
||||||
\tikz{%
|
|
||||||
\fill[skillmatrixfullcolor] (0,0) -- (90:#1) arc (90:270:#1) -- cycle;%
|
|
||||||
\fill[skillmatrixemptycolor] (0,0) -- (-90:#1) arc (-90:90:#1) -- cycle;%
|
|
||||||
}%
|
|
||||||
}
|
|
||||||
\newcommand*\cvSkill@EmptyCircle[1][\cvSkill@ShapeSize]{%
|
|
||||||
\tikz\filldraw[skillmatrixemptycolor] (0,0) circle (#1);%
|
|
||||||
}
|
|
||||||
\else
|
\else
|
||||||
\setlength{\cvSkill@ShapeSize}{1.2ex}
|
\setlength{\cvSkill@ShapeSize}{1.2ex}
|
||||||
\def\cvSkill@Shape#1{\tikz\filldraw[#1] (0, 0) rectangle (\cvSkill@ShapeSize, \cvSkill@ShapeSize);}
|
\def\cvSkill@Shape#1{\tikz\filldraw[#1] (0, 0) rectangle (\cvSkill@ShapeSize, \cvSkill@ShapeSize);}
|
||||||
\fi
|
\fi
|
||||||
|
\newcount\my@repeat@count
|
||||||
\DeclareDocumentCommand{\cvskill}{m}{%
|
\DeclareDocumentCommand{\cvskill}{m}{%
|
||||||
% Illustrate skill level with little colored boxes.
|
% Illustrate skill level with little colored boxes.
|
||||||
% By default five skill levels are predefined.
|
% By default five skill levels are predefined.
|
||||||
% Option "circle" replaces the boxes by circles
|
|
||||||
%
|
%
|
||||||
% Input:
|
% Input:
|
||||||
% integer between 0 and 5
|
% integer between 0 and 5
|
||||||
% Example usage:
|
% Example usage:
|
||||||
% \cvskill{3} gives 3 filled boxes or circles and 2 empty
|
% \cvskill{3}
|
||||||
% \cvskill{3.5} gives 3 and a half filled circles and 1 and a half empty (only with option "circle")
|
|
||||||
|
|
||||||
\begingroup
|
\begingroup
|
||||||
\if@cvskillcircle%
|
|
||||||
\pgfmathtruncatemacro{\full}{floor(#1)}% number of full circles
|
|
||||||
\pgfmathparse{(#1-\full) > 0.01 ? 1 : 0}%
|
|
||||||
\let\half\pgfmathresult% number of half circles
|
|
||||||
\pgfmathtruncatemacro{\empty}{5-\full-\half}% number of empty circles
|
|
||||||
\ifnum\full>0%
|
|
||||||
\foreach \z in {1,...,\full}%
|
|
||||||
{\cvSkill@FullCircle\,}%
|
|
||||||
\fi%
|
|
||||||
\ifnum\pgfmathresult=1%
|
|
||||||
{\cvSkill@HalfCircle\,}%
|
|
||||||
\fi%
|
|
||||||
\ifnum\empty>0%
|
|
||||||
\foreach \z in {1,...,\empty}%
|
|
||||||
{\cvSkill@EmptyCircle\,}%
|
|
||||||
\fi%
|
|
||||||
\else
|
|
||||||
% Only full boxes
|
|
||||||
\newcount\my@repeat@count
|
|
||||||
\my@repeat@count=\z@
|
\my@repeat@count=\z@
|
||||||
\@whilenum\my@repeat@count<#1\do{%
|
\@whilenum\my@repeat@count<#1\do{\cvSkill@Shape{skillmatrixfullcolor}\advance%
|
||||||
\cvSkill@Shape{skillmatrixfullcolor}%
|
\my@repeat@count\@ne\,}%
|
||||||
\advance\my@repeat@count\@ne\,%
|
|
||||||
}%
|
|
||||||
\my@repeat@count=\numexpr5-\z@\relax
|
\my@repeat@count=\numexpr5-\z@\relax
|
||||||
\@whilenum\my@repeat@count>#1\do{%
|
\@whilenum\my@repeat@count>#1\do{\cvSkill@Shape{skillmatrixemptycolor}\advance%
|
||||||
\cvSkill@Shape{skillmatrixemptycolor}%
|
\my@repeat@count\m@ne\,}%
|
||||||
\advance\my@repeat@count\m@ne\,%
|
|
||||||
}%
|
|
||||||
\fi
|
|
||||||
\endgroup
|
\endgroup
|
||||||
}% end \cvskill
|
}% end \cvskill
|
||||||
|
|
||||||
|
|
|
||||||
14
template.tex
14
template.tex
|
|
@ -6,7 +6,7 @@
|
||||||
% available at http://www.latex-project.org/lppl/.
|
% available at http://www.latex-project.org/lppl/.
|
||||||
|
|
||||||
|
|
||||||
\documentclass[11pt,a4paper,sans]{moderncv} % possible options include font size ('10pt', '11pt' (default) and '12pt'), paper size ('a4paper' (default), 'letterpaper', 'a5paper', 'legalpaper', 'executivepaper' and 'landscape'), font family ('sans' and 'roman'), draft state ('draft', 'final' (default)) and skill level symbol ('circle', 'square' (default))
|
\documentclass[11pt,a4paper,sans]{moderncv} % possible options include font size ('10pt', '11pt' and '12pt'), paper size ('a4paper', 'letterpaper', 'a5paper', 'legalpaper', 'executivepaper' and 'landscape') and font family ('sans' and 'roman')
|
||||||
|
|
||||||
\moderncvcolor{cerulean} % color options 'black', 'blue' (default), 'burgundy', 'green', 'grey', 'orange', 'purple' and 'red'; for contemporary style use 'cerulean'
|
\moderncvcolor{cerulean} % color options 'black', 'blue' (default), 'burgundy', 'green', 'grey', 'orange', 'purple' and 'red'; for contemporary style use 'cerulean'
|
||||||
% moderncv themes
|
% moderncv themes
|
||||||
|
|
@ -56,6 +56,8 @@
|
||||||
\name{John}{Doe}
|
\name{John}{Doe}
|
||||||
\title{Résumé title} % optional, remove / comment the line if not wanted
|
\title{Résumé title} % optional, remove / comment the line if not wanted
|
||||||
\born{4 July 1776} % optional, remove / comment the line if not wanted
|
\born{4 July 1776} % optional, remove / comment the line if not wanted
|
||||||
|
\pronouns{they/them} % optional, remove / comment the line if not wanted
|
||||||
|
\gendericon{\faNeuter} % optional, remove / comment the line if not wanted
|
||||||
\address{street and number}{postcode city}{country}% optional, remove / comment the line if not wanted; the "postcode city" and "country" arguments can be omitted or provided empty
|
\address{street and number}{postcode city}{country}% optional, remove / comment the line if not wanted; the "postcode city" and "country" arguments can be omitted or provided empty
|
||||||
\phone[mobile]{+1~(234)~567~890} % optional, remove / comment the line if not wanted; the optional "type" of the phone can be "mobile" (default), "fixed" or "fax"
|
\phone[mobile]{+1~(234)~567~890} % optional, remove / comment the line if not wanted; the optional "type" of the phone can be "mobile" (default), "fixed" or "fax"
|
||||||
\phone[fixed]{+2~(345)~678~901}
|
\phone[fixed]{+2~(345)~678~901}
|
||||||
|
|
@ -200,7 +202,7 @@ Detailed achievements:
|
||||||
% \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 useful for the banking style
|
||||||
|
|
||||||
%% Add a legend if you are using \cvskill{<0-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>}
|
||||||
% \cvskilllegend % insert default legend without lines
|
% \cvskilllegend % insert default legend without lines
|
||||||
\cvskilllegend*[1em]{}% adjust post spacing
|
\cvskilllegend*[1em]{}% adjust post spacing
|
||||||
|
|
@ -227,13 +229,9 @@ Detailed achievements:
|
||||||
\cvskillentry{}{2}{Lilypond}{14}{So much sheet music! Man, I'm the best!}
|
\cvskillentry{}{2}{Lilypond}{14}{So much sheet music! Man, I'm the best!}
|
||||||
\cvskillentry{}{3}{\LaTeX}{14}{Clearly I rock at \LaTeX}
|
\cvskillentry{}{3}{\LaTeX}{14}{Clearly I rock at \LaTeX}
|
||||||
\cvskillentry*{OS:}{3}{Linux}{2}{I only use Archlinux btw}% notice the use of the starred command and the optional
|
\cvskillentry*{OS:}{3}{Linux}{2}{I only use Archlinux btw}% notice the use of the starred command and the optional
|
||||||
%\cvskillentry{}{4.5}{AmigaOS}{20}{I've been developing games most of my life}% Half-integer skill level possible when using document class option 'circle' (default in contemporary style)
|
|
||||||
\cvskillentry*[1em]{Methods}{4}{SCRUM}{8}{SCRUM master for 5 years}
|
\cvskillentry*[1em]{Methods}{4}{SCRUM}{8}{SCRUM master for 5 years}
|
||||||
% \cvskill{<0-5>} command
|
%% \cvskill{<0-5>} command
|
||||||
\cvitem{\textbackslash{cvskill}:}{Skills can be visually expressed outside the skill matrix by the \textbackslash{cvskill} command, e.g.
|
% \cvitem{\textbackslash{cvskill}:}{Skills can be visually expressed by the \textbackslash{cvskill} command, e.g. \cvskill{2}}
|
||||||
\cvskill{2}
|
|
||||||
%\cvskill{3.5} half-integer skill levels are possible only when using document class option 'circle' (default in contemporary style)
|
|
||||||
}
|
|
||||||
|
|
||||||
\section{Interests}
|
\section{Interests}
|
||||||
\cvitem{hobby 1}{Description}
|
\cvitem{hobby 1}{Description}
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue