mirror of
https://github.com/moderncv/moderncv.git
synced 2026-10-28 06:07:05 +01:00
Compare commits
5 commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
8f6ef0e729 |
||
|
|
45e7d7f26e |
||
|
|
91f15a1cf9 |
||
|
|
282cb09675 |
||
|
|
9e16e08831 |
20 changed files with 68 additions and 87 deletions
|
|
@ -1,10 +1,5 @@
|
|||
version next
|
||||
- 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)
|
||||
- Fix "Arithmetic overflow" in cvcolumns when every column sets a width (#311)
|
||||
- Treat a \cventry description containing only whitespace as empty (#312)
|
||||
|
||||
version 2.6.1 (24 Jun 2026)
|
||||
- Allow the customisation of the contemporary style (#297)
|
||||
|
|
@ -52,6 +47,7 @@ version 2.5.1 (31 Jan 2026)
|
|||
- Add contemporary CV header style to cover letter, which also makes icons
|
||||
visible (#186)
|
||||
- Fix minor horizontal spacing issue in 'contemporary' style header
|
||||
- Added optional support for specifying pronouns (#249)
|
||||
|
||||
|
||||
version 2.4.2 (01 Feb 2025)
|
||||
|
|
|
|||
Binary file not shown.
|
|
@ -97,7 +97,7 @@
|
|||
emph={
|
||||
cvitem, cventry, cvdoubleentry, cvdoubleitem, cvtripleitem, cvlistitem, cvlistdoubleitem, cvcolumns, moderncvstyle, moderncvcolor,
|
||||
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
|
||||
},
|
||||
emphstyle={\color{cvblue}},
|
||||
|
|
@ -106,7 +106,7 @@
|
|||
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,
|
||||
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},
|
||||
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} \\
|
||||
\textbf{\code{font family}:} & \code{sans}, \code{roman} \\
|
||||
\textbf{\code{font size}:} & \code{10pt}, \code{11pt} (default), \code{12pt} \\
|
||||
\textbf{\code{draft/final}:} & \code{draft}, \code{final} (default) \\
|
||||
\textbf{\code{skill level symbol}:} & \code{circle}, \code{square} (default)
|
||||
\textbf{\code{draft/final}:} & \code{draft}, \code{final} (default)
|
||||
\end{tabular}
|
||||
|
||||
\subsubsection*{Choosing a \texttt{moderncv} style and color}
|
||||
|
|
@ -300,6 +299,18 @@ A command for a birth date.
|
|||
\born{<birth date>}
|
||||
\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}}
|
||||
A command for a three-lined street address.
|
||||
\begin{lstlisting}
|
||||
|
|
@ -513,9 +524,7 @@ The required argument must be a number from 0 to 5.
|
|||
\begin{lstlisting}
|
||||
\cvskill{<0-5>}
|
||||
\end{lstlisting}
|
||||
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.
|
||||
This command can be used outside of the skill matrix, too.
|
||||
|
||||
\paragraph{\code{\\cvskilllegend}}
|
||||
A command for a legend for the skill matrix.
|
||||
|
|
@ -556,7 +565,7 @@ Takes five optional arguments: post-padding width, level, skill label, years of
|
|||
|
||||
\paragraph{\code{\\cvskillentry}}
|
||||
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.
|
||||
\begin{lstlisting}
|
||||
\cvskillentry*[<post-padding>]{<skill category>}{<0-5>}
|
||||
|
|
@ -564,7 +573,6 @@ Takes a single optional argument for the post-padding width.
|
|||
\end{lstlisting}
|
||||
An optional asterisk toggles the inclusion of a dashed line.
|
||||
\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}.
|
||||
|
||||
|
|
@ -819,6 +827,7 @@ Currently \Moderncv supports the following commands as \code{<\\symbolcommand>}:
|
|||
\item \code{\\battlenetsocialsymbol}
|
||||
\item \code{\\mediumsocialsymbol}
|
||||
\item \code{\\bornsymbol}
|
||||
\item \code{\\pronounsymbol}
|
||||
\item \code{\\arxivsocialsymbol}
|
||||
\item \code{\\inspiresocialsymbol}
|
||||
\item \code{\\simplexsocialsymbol}
|
||||
|
|
|
|||
13
moderncv.cls
13
moderncv.cls
|
|
@ -224,6 +224,14 @@
|
|||
% usage: \title{<title>}
|
||||
\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)
|
||||
% usage: \address{<street>}{<city>}{<country>}
|
||||
% where the <city> and <country> arguments can be omitted or provided empty
|
||||
|
|
@ -361,6 +369,7 @@
|
|||
\newcommand*{\listitemsymbol} {\labelitemi~}
|
||||
\newcommand*{\addresssymbol} {}
|
||||
\newcommand*{\bornsymbol} {}
|
||||
\newcommand*{\pronounsymbol} {}
|
||||
\newcommand*{\mobilephonesymbol} {}
|
||||
\newcommand*{\fixedphonesymbol} {}
|
||||
\newcommand*{\faxphonesymbol} {}
|
||||
|
|
@ -676,9 +685,7 @@
|
|||
% compute the width of each cvcolumn, considering a spacing of \separatorcolumnwidth and the columns with set width
|
||||
\ifnum\thecvcolumnscounter>0%
|
||||
\setlength{\cvcolumnswidth}{\maincolumnwidth-\value{cvcolumnscounter}\separatorcolumnwidth+\separatorcolumnwidth}%
|
||||
% only share the remaining width if some columns have no explicit width, to avoid a division by zero ("Arithmetic overflow") when all have one
|
||||
\ifnum\value{cvcolumnsautowidthcounter}>0%
|
||||
\setlength{\cvcolumnautowidth}{\cvcolumnswidth*\ratio{\cvcolumnsautowidth}{\cvcolumnsdummywidth}/\value{cvcolumnsautowidthcounter}}\fi\fi%
|
||||
\setlength{\cvcolumnautowidth}{\cvcolumnswidth*\ratio{\cvcolumnsautowidth}{\cvcolumnsdummywidth}/\value{cvcolumnsautowidthcounter}}\fi%
|
||||
% pre-aggregate the tabular definition, heading and content (required before creating the tabular, as the tabular environment doesn't like loops --- probably because "&" generates a \endgroup)
|
||||
% - the tabular definition is the aggregation of the different "\cvcolumn<i>@def" (by default "p{\cvcolumnautowidth}"), separated by "@{\hspace*{\separatorcolumnwidth}}"
|
||||
% - the tabular heading is the aggregation of the different "\cvcolumn<i>@head", separated by "&"
|
||||
|
|
|
|||
|
|
@ -132,7 +132,7 @@
|
|||
\ifthenelse{\equal{#5}{}}{}{, #5}%
|
||||
\ifthenelse{\equal{#6}{}}{}{, #6}%
|
||||
\strut%
|
||||
\ifblank{#7}{\@tempswatrue}{\@tempswafalse}\if@tempswa%
|
||||
\ifx&%
|
||||
\else{\newline{}\begin{minipage}[t]{\linewidth}\small#7\end{minipage}}\fi}}
|
||||
|
||||
\@initializebox{\cvitemwithcommentbox}
|
||||
|
|
|
|||
|
|
@ -139,13 +139,13 @@
|
|||
\newcommand*{\subsectionrule}{}
|
||||
\if@fullrules%
|
||||
\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%
|
||||
\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%
|
||||
\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%
|
||||
\renewcommand*{\sectionrule}{}
|
||||
\renewcommand*{\subsectionrule}{}\fi
|
||||
|
|
@ -190,7 +190,7 @@
|
|||
{{\bfseries #4} & {\bfseries #5}\\}%
|
||||
{\itshape #3\ifstrempty{#6}{}{, #6}} & {\itshape #2}\\%
|
||||
\end{tabular*}%
|
||||
\ifblank{#7}{\@tempswatrue}{\@tempswafalse}\if@tempswa%
|
||||
\ifx&%
|
||||
\else{\\%
|
||||
\begin{minipage}{\maincolumnwidth}%
|
||||
\small#7%
|
||||
|
|
|
|||
|
|
@ -129,7 +129,7 @@
|
|||
.\strut}%
|
||||
\usebox{\cventryyearbox}%
|
||||
\end{minipage}\strut%
|
||||
\ifblank{#7}{\@tempswatrue}{\@tempswafalse}\if@tempswa%
|
||||
\ifx&%
|
||||
\else{%
|
||||
\newline{}%
|
||||
\strut%
|
||||
|
|
|
|||
|
|
@ -159,7 +159,7 @@
|
|||
\ifthenelse{\equal{#6}{}}{}{, #6}%
|
||||
.\strut}%
|
||||
\usebox{\cventryyearbox}}%
|
||||
\ifblank{#7}{\@tempswatrue}{\@tempswafalse}\if@tempswa%
|
||||
\ifx&%
|
||||
\else%
|
||||
\vspace*{-4pt}%
|
||||
\cvitem[#1]{}{\small#7}\fi}
|
||||
|
|
|
|||
|
|
@ -138,7 +138,7 @@
|
|||
\ifthenelse{\equal{#5}{}}{}{, #5}%
|
||||
\ifthenelse{\equal{#6}{}}{}{, #6}%
|
||||
\strut%
|
||||
\ifblank{#7}{\@tempswatrue}{\@tempswafalse}\if@tempswa%
|
||||
\ifx&%
|
||||
\else{\newline{}\begin{minipage}[t]{\linewidth}\small#7\end{minipage}}\fi}}
|
||||
|
||||
\@initializebox{\cvitemwithcommentbox}
|
||||
|
|
|
|||
|
|
@ -86,6 +86,7 @@
|
|||
\ifthenelse{\equal{\@addresscountry}{}}{}{\addtofoot[~--~]{\@addresscountry}}%
|
||||
\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
|
||||
\addtofoot{\csname\collectionloopkey phonesymbol\endcsname\collectionloopitem}}%
|
||||
\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{\@addresscountry}{}}{}{\makenewline\@addresscountry}}%
|
||||
\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
|
||||
\ifthenelse{\isundefined{\@email}}{}{\makenewline\emailsymbol\emaillink{\@email}}%
|
||||
\ifthenelse{\isundefined{\@homepage}}{}{\makenewline\homepagesymbol%
|
||||
|
|
|
|||
|
|
@ -141,6 +141,7 @@
|
|||
\ifthenelse{\equal{\@addresscountry}{}}{}{\addtomakeheaddetails[~--~]{\@addresscountry}}%
|
||||
\flushmakeheaddetails\@firstmakeheaddetailselementtrue\\\null}%
|
||||
\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
|
||||
\addtomakeheaddetails{\csname\collectionloopkey phonesymbol\endcsname\collectionloopitem}}%
|
||||
\ifthenelse{\isundefined{\@email}}{}{\addtomakeheaddetails{\emailsymbol\emaillink{\@email}}}%
|
||||
|
|
|
|||
|
|
@ -94,6 +94,7 @@
|
|||
\ifthenelse{\equal{\@addresscountry}{}}{}{\addtomakeheaddetails[~--~]{\@addresscountry}}%
|
||||
\flushmakeheaddetails\@firstmakeheaddetailselementtrue\\}%
|
||||
\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
|
||||
\addtomakeheaddetails{\csname\collectionloopkey phonesymbol\endcsname\collectionloopitem}}%
|
||||
\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{\@addresscountry}{}}{}{\makenewline\@addresscountry}}%
|
||||
\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
|
||||
\makenewline\hbox to 1.0em{\csname\collectionloopkey phonesymbol\endcsname}~\collectionloopitem}%
|
||||
\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{\@addresscountry}{}}{}{\makenewline\@addresscountry}}%
|
||||
\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
|
||||
\makenewline\csname\collectionloopkey phonesymbol\endcsname~\collectionloopitem}%
|
||||
\ifthenelse{\isundefined{\@email}}{}{\makenewline\emailsymbol~\emaillink{\@email}}%
|
||||
|
|
|
|||
|
|
@ -115,6 +115,7 @@
|
|||
\ifthenelse{\equal{\@addresscountry}{}}{}{\addtomakeheaddetails[~--~]{\@addresscountry}}%
|
||||
\flushmakeheaddetails\@firstmakeheaddetailselementtrue\\\null}%
|
||||
\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
|
||||
\addtomakeheaddetails{\csname\collectionloopkey phonesymbol\endcsname\collectionloopitem}}%
|
||||
\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{\@addresscountry}{}}{}{\makenewline\@addresscountry}}%
|
||||
\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
|
||||
\ifthenelse{\isundefined{\@email}}{}{\makenewline\emailsymbol\emaillink{\@email}}%
|
||||
\ifthenelse{\isundefined{\@homepage}}{}{\makenewline\homepagesymbol\httplink{\@homepage}}%
|
||||
|
|
|
|||
|
|
@ -55,6 +55,7 @@
|
|||
\providecolor{playstation}{named}{default-socialicon-color}
|
||||
\providecolor{battlenet}{named}{default-socialicon-color}
|
||||
\providecolor{born}{named}{default-socialicon-color}
|
||||
\providecolor{gender}{named}{default-socialicon-color}
|
||||
\providecolor{signal}{named}{default-socialicon-color}
|
||||
\providecolor{medium}{named}{default-socialicon-color}
|
||||
|
||||
|
|
@ -104,8 +105,10 @@
|
|||
% \renewcommand*{\arxivsocialsymbol} {{\color{arxiv}{\small\faIcon{arxiv}}}~}
|
||||
% No inspire icon in fontawesome6 (v6.7.2-3) or fontawesome7 (v7.1.0-1)
|
||||
% \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*{\mediumsocialsymbol} {{\color{medium}\small\faIcon{medium}}~}
|
||||
\renewcommand*{\mediumsocialsymbol} {{\color{medium}\small\faIcon{medium}}~}
|
||||
|
||||
|
||||
\endinput
|
||||
|
|
|
|||
|
|
@ -219,7 +219,6 @@
|
|||
\DeclareOption{moderncvbodyv}{\@moderncvbodyifalse\@moderncvbodyiifalse\@moderncvbodyiiifalse\@moderncvbodyivfalse\@moderncvbodyvtrue}
|
||||
|
||||
% 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
|
||||
\DeclareOption{circle}{\@cvskillcircletrue}
|
||||
|
||||
|
|
@ -238,72 +237,33 @@
|
|||
% %-------------------------------------------------------------------------------
|
||||
% % \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
|
||||
|
||||
\@initializelength{\cvSkill@ShapeSize}
|
||||
\if@cvskillcircle%
|
||||
\setlength{\cvSkill@ShapeSize}{.8ex}%
|
||||
\newcommand*\cvSkill@FullCircle[1][\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);%
|
||||
}
|
||||
\setlength{\cvSkill@ShapeSize}{.7ex}%
|
||||
\def\cvSkill@Shape#1{\tikz\filldraw[#1] (0, 0) circle (\cvSkill@ShapeSize);}
|
||||
\else
|
||||
\setlength{\cvSkill@ShapeSize}{1.2ex}
|
||||
\def\cvSkill@Shape#1{\tikz\filldraw[#1] (0, 0) rectangle (\cvSkill@ShapeSize, \cvSkill@ShapeSize);}
|
||||
\fi
|
||||
|
||||
\newcount\my@repeat@count
|
||||
\DeclareDocumentCommand{\cvskill}{m}{%
|
||||
% Illustrate skill level with little colored boxes.
|
||||
% By default five skill levels are predefined.
|
||||
% Option "circle" replaces the boxes by circles
|
||||
%
|
||||
% Input:
|
||||
% integer between 0 and 5
|
||||
% Example usage:
|
||||
% \cvskill{3} gives 3 filled boxes or circles and 2 empty
|
||||
% \cvskill{3.5} gives 3 and a half filled circles and 1 and a half empty (only with option "circle")
|
||||
|
||||
\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@
|
||||
\@whilenum\my@repeat@count<#1\do{%
|
||||
\cvSkill@Shape{skillmatrixfullcolor}%
|
||||
\advance\my@repeat@count\@ne\,%
|
||||
}%
|
||||
\my@repeat@count=\numexpr5-\z@\relax
|
||||
\@whilenum\my@repeat@count>#1\do{%
|
||||
\cvSkill@Shape{skillmatrixemptycolor}%
|
||||
\advance\my@repeat@count\m@ne\,%
|
||||
}%
|
||||
\fi
|
||||
\endgroup
|
||||
% \cvskill{3}
|
||||
\begingroup
|
||||
\my@repeat@count=\z@
|
||||
\@whilenum\my@repeat@count<#1\do{\cvSkill@Shape{skillmatrixfullcolor}\advance%
|
||||
\my@repeat@count\@ne\,}%
|
||||
\my@repeat@count=\numexpr5-\z@\relax
|
||||
\@whilenum\my@repeat@count>#1\do{\cvSkill@Shape{skillmatrixemptycolor}\advance%
|
||||
\my@repeat@count\m@ne\,}%
|
||||
\endgroup
|
||||
}% end \cvskill
|
||||
|
||||
% %-------------------------------------------------------------------------------
|
||||
|
|
|
|||
14
template.tex
14
template.tex
|
|
@ -6,7 +6,7 @@
|
|||
% 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'
|
||||
% moderncv themes
|
||||
|
|
@ -56,6 +56,8 @@
|
|||
\name{John}{Doe}
|
||||
\title{Résumé title} % 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
|
||||
\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}
|
||||
|
|
@ -200,7 +202,7 @@ Detailed achievements:
|
|||
% \setcvskilllegendcolumns[\widthof{``Legend''}][0.45]
|
||||
% \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>}
|
||||
% \cvskilllegend % insert default legend without lines
|
||||
\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{}{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{}{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}
|
||||
% \cvskill{<0-5>} command
|
||||
\cvitem{\textbackslash{cvskill}:}{Skills can be visually expressed outside the skill matrix by the \textbackslash{cvskill} command, e.g.
|
||||
\cvskill{2}
|
||||
%\cvskill{3.5} half-integer skill levels are possible only when using document class option 'circle' (default in contemporary style)
|
||||
}
|
||||
%% \cvskill{<0-5>} command
|
||||
% \cvitem{\textbackslash{cvskill}:}{Skills can be visually expressed by the \textbackslash{cvskill} command, e.g. \cvskill{2}}
|
||||
|
||||
\section{Interests}
|
||||
\cvitem{hobby 1}{Description}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue