From e17569298483920de0ae933fd5278f45b8bdfb3c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tuomas=20V=C3=A4lim=C3=A4ki?= Date: Tue, 17 Apr 2018 12:53:50 +0300 Subject: [PATCH 1/8] support birth date --- moderncv.cls | 9 +++++++-- moderncvfooti.sty | 2 ++ moderncvheadi.sty | 1 + moderncvheadii.sty | 1 + moderncvheadiii.sty | 3 ++- moderncvheadiv.sty | 1 + moderncvheadv.sty | 1 + moderncvheadvi.sty | 1 + moderncviconsawesome.sty | 1 + moderncviconsletters.sty | 1 + moderncviconsmarvosym.sty | 3 ++- 11 files changed, 20 insertions(+), 4 deletions(-) diff --git a/moderncv.cls b/moderncv.cls index 3511c2c..a00e765 100644 --- a/moderncv.cls +++ b/moderncv.cls @@ -236,6 +236,10 @@ % where the and arguments can be omitted or provided empty \NewDocumentCommand{\address}{mG{}G{}}{\def\@addressstreet{#1}\def\@addresscity{#2}\def\@addresscountry{#3}} +% defines one's birthday (optional) +% usage: \born{date, place} +\newcommand*{\born}[1]{\def\@born{#1}} + % defines one's email (optional) % usage: \email{} \newcommand*{\email}[1]{\def\@email{#1}} @@ -299,6 +303,7 @@ % other symbols \newcommand*{\listitemsymbol} {\labelitemi~} \newcommand*{\addresssymbol} {} +\newcommand*{\bornsymbol} {} \newcommand*{\mobilephonesymbol} {} \newcommand*{\fixedphonesymbol} {} \newcommand*{\faxphonesymbol} {} @@ -348,7 +353,7 @@ % usage: \moderncvfoot[]{} \newcommand*{\moderncvfoot}[2][]{% \@loadmoderncvpackage[#1]{foot}{#2}} - + % loads a color scheme % usage: \moderncvcolor{} \newcommand*{\moderncvcolor}[1]{% @@ -513,7 +518,7 @@ \ifthenelse{\equal{#1}{}}% {\href{mailto:#2}{#2}}% {\href{mailto:#2}{#1}}} - + % makes a tel hyperlink % usage: \tellink[optional text]{link} \newcommand*{\tellink}[2][]{% diff --git a/moderncvfooti.sty b/moderncvfooti.sty index 1a66d0f..b801a68 100644 --- a/moderncvfooti.sty +++ b/moderncvfooti.sty @@ -85,6 +85,7 @@ \ifthenelse{\equal{\@addresscity}{}}{}{\addtofoot[~--~]{\@addresscity}}% if \addresstreet is defined, \addresscity and \addresscountry will always be defined but could be empty \ifthenelse{\equal{\@addresscountry}{}}{}{\addtofoot[~--~]{\@addresscountry}}% \flushfoot\@firstfootelementtrue\\}% + \ifthenelse{\isundefined{\@born}}{}{\addtofoot{\bornsymbol\@born}\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}}}% @@ -116,6 +117,7 @@ \ifthenelse{\equal{\@addresscity}{}}{}{\addtofoot[~--~]{\@addresscity}}% if \addresstreet is defined, \addresscity and addresscountry will always be defined but could be empty \ifthenelse{\equal{\@addresscountry}{}}{}{\addtofoot[~--~]{\@addresscountry}}% \flushfoot\@firstfootelementtrue\\}% + \ifthenelse{\isundefined{\@born}}{}{\addtofoot{\bornsymbol\@born}\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}}}% diff --git a/moderncvheadi.sty b/moderncvheadi.sty index 8c9ab97..f02cc6c 100644 --- a/moderncvheadi.sty +++ b/moderncvheadi.sty @@ -78,6 +78,7 @@ \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{\@addresscountry}{}}{}{\makenewline\@addresscountry}}% + \ifthenelse{\isundefined{\@born}}{}{\makenewline\bornsymbol\@born}% \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}}% diff --git a/moderncvheadii.sty b/moderncvheadii.sty index 2062e98..95f12fe 100644 --- a/moderncvheadii.sty +++ b/moderncvheadii.sty @@ -140,6 +140,7 @@ \ifthenelse{\equal{\@addresscity}{}}{}{\addtomakeheaddetails[~--~]{\@addresscity}}% if \addresstreet is defined, \addresscity and \addresscountry will always be defined but could be empty \ifthenelse{\equal{\@addresscountry}{}}{}{\addtomakeheaddetails[~--~]{\@addresscountry}}% \flushmakeheaddetails\@firstmakeheaddetailselementtrue\\\null}% + \ifthenelse{\isundefined{\@born}}{}{\addtomakeheaddetails{\bornsymbol\@born}}% \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}}}% diff --git a/moderncvheadiii.sty b/moderncvheadiii.sty index 54f86cb..36c3743 100644 --- a/moderncvheadiii.sty +++ b/moderncvheadiii.sty @@ -81,7 +81,7 @@ \centering% % name and title \namestyle{\@firstname~\@lastname}% - \ifthenelse{\equal{\@title}{}}{}{\titlestyle{~|~\@title}}\\% \isundefined doesn't work on \@title, as LaTeX itself defines \@title (before it possibly gets redefined by \title) + \ifthenelse{\equal{\@title}{}}{}{\titlestyle{~|~\@title}}\\% \isundefined doesn't work on \@title, as LaTeX itself defines \@title (before it possibly gets redefined by \title) % optional detailed information \if@details{% \addressfont\color{color2}% @@ -89,6 +89,7 @@ \ifthenelse{\equal{\@addresscity}{}}{}{\addtomakeheaddetails[~--~]{\@addresscity}}% if \addresstreet is defined, \addresscity and \addresscountry will always be defined but could be empty \ifthenelse{\equal{\@addresscountry}{}}{}{\addtomakeheaddetails[~--~]{\@addresscountry}}% \flushmakeheaddetails\@firstmakeheaddetailselementtrue\\\null}% + \ifthenelse{\isundefined{\@born}}{}{\addtomakeheaddetails{\bornsymbol\@born}}% \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}}}% diff --git a/moderncvheadiv.sty b/moderncvheadiv.sty index f3ceaf7..669e970 100644 --- a/moderncvheadiv.sty +++ b/moderncvheadiv.sty @@ -107,6 +107,7 @@ \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{\@addresscountry}{}}{}{\makenewline\@addresscountry}}% + \ifthenelse{\isundefined{\@born}}{}{\makenewline\hbox to 1.0em{\bornsymbol}~\@born}% \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}}% diff --git a/moderncvheadv.sty b/moderncvheadv.sty index 7a2c15b..a1e1b19 100644 --- a/moderncvheadv.sty +++ b/moderncvheadv.sty @@ -79,6 +79,7 @@ \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{\@addresscountry}{}}{}{\makenewline\@addresscountry}}% + \ifthenelse{\isundefined{\@born}}{}{\makenewline\bornsymbol~\@born}% \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}}% diff --git a/moderncvheadvi.sty b/moderncvheadvi.sty index 83c1055..a029e01 100644 --- a/moderncvheadvi.sty +++ b/moderncvheadvi.sty @@ -112,6 +112,7 @@ \ifthenelse{\equal{\@addresscity}{}}{}{\addtomakeheaddetails[~--~]{\@addresscity}}% if \addresstreet is defined, \addresscity and \addresscountry will always be defined but could be empty \ifthenelse{\equal{\@addresscountry}{}}{}{\addtomakeheaddetails[~--~]{\@addresscountry}}% \flushmakeheaddetails\@firstmakeheaddetailselementtrue\\\null}% + \ifthenelse{\isundefined{\@born}}{}{\addtomakeheaddetails{\bornsymbol\@born}}% \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}}}% diff --git a/moderncviconsawesome.sty b/moderncviconsawesome.sty index e0fd892..c8b6004 100644 --- a/moderncviconsawesome.sty +++ b/moderncviconsawesome.sty @@ -39,6 +39,7 @@ \renewcommand*{\githubsocialsymbol} {{\small\faGithub}~} % alternative: \faGithubSquare, \faGithubSquare \renewcommand*{\gitlabsocialsymbol} {{\small\faGitlab}~} \renewcommand*{\skypesocialsymbol} {{\small\faSkype}~} +\renewcommand*{\bornsymbol}{{\small\faAsterisk}~} \endinput diff --git a/moderncviconsletters.sty b/moderncviconsletters.sty index 2ef7c59..90e7417 100644 --- a/moderncviconsletters.sty +++ b/moderncviconsletters.sty @@ -46,6 +46,7 @@ \renewcommand*{\githubsocialsymbol} {\textbf{gh}~} \renewcommand*{\gitlabsocialsymbol} {\textbf{gl}~} \renewcommand*{\skypesocialsymbol} {\textbf{sk}~} +\renewcommand*{\bornsymbol} {\textbf{B}~} \renewcommand*{\listitemsymbol} {\labelitemi~} diff --git a/moderncviconsmarvosym.sty b/moderncviconsmarvosym.sty index 020f4d7..90beb82 100644 --- a/moderncviconsmarvosym.sty +++ b/moderncviconsmarvosym.sty @@ -231,7 +231,7 @@ \protect\path[fill=color2,even odd rule] (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) .. - (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) .. (216.9010,26.4410) .. controls (194.8280,12.0570) and (168.5590,3.6740) .. (140.2880,3.6740) .. controls (62.7660,3.6740) and (0.0000,66.4820) .. (0.0000,143.9800) .. controls (0.0000,172.1780) and (8.2990,198.3740) .. @@ -257,6 +257,7 @@ \protect\end{scope}% \protect\end{tikzpicture}}% ~} + \renewcommand*{\bornsymbol}{} \endinput From 35138209d3ef419fe514e9a49ddc8cd94dfcbe0d Mon Sep 17 00:00:00 2001 From: David Seus Date: Tue, 26 Jan 2021 12:57:04 +0100 Subject: [PATCH 2/8] Bugfixes, improvements and new symbols/nosymbols option for all styles (#34) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * fix Researcher ID (still) doesn't display Issue #29. * make options 'symbols' and 'nosymbols' available to all styles to toggle whether symbols should be used or not. Include symbols in oldstyle by default. * migrate older newcommand syntax in moderncvcollection.sty to the xparse syntax. * Fix resumé typo in template. Is now résumé. * remove loading lmodern fonts in all styles as they can produce issues with german characters, see https://tex.stackexchange.com/questions/496630/lualatex-problems-with-german-characters. * remove loading inputenc package by default. Only load the package when pdflatex is used. --- CHANGELOG | 11 +++++++++ moderncv.cls | 6 ++--- moderncvcollection.sty | 49 ++++++++++++++++++++++----------------- moderncviconsawesome.sty | 2 +- moderncviconsletters.sty | 2 +- moderncviconsmarvosym.sty | 2 +- moderncvstylebanking.sty | 19 +++++++++++---- moderncvstylecasual.sty | 24 ++++++++++++------- moderncvstyleclassic.sty | 24 ++++++++++++------- moderncvstyleempty.sty | 24 +++++++++++++++++-- moderncvstylefancy.sty | 19 +++++++++++---- moderncvstyleoldstyle.sty | 20 ++++++++++++---- template.tex | 3 +-- 13 files changed, 144 insertions(+), 61 deletions(-) diff --git a/CHANGELOG b/CHANGELOG index 41cbe5f..036e567 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -1,3 +1,14 @@ +Release: next +- fix Researcher ID (still) doesn't display Issue #29. +- make options 'symbols' and 'nosymbols' available to all styles to toggle whether + symbols should be used or not. Include symbols in oldstyle by default. +- migrate older newcommand syntax in moderncvcollection.sty to the xparse syntax. +- Fix resumé typo in template. Is now résumé. +- remove loading lmodern fonts in all styles as they can produce issues with + german characters, see https://tex.stackexchange.com/questions/496630/lualatex-problems-with-german-characters. +- remove loading inputenc package by default. Only load the package when pdflatex is + used. + version 2.1.0 (21 Jan 2021) - maintainer change: now team maintained (https://github.com/moderncv), since original repository is basically dead since 2016. diff --git a/moderncv.cls b/moderncv.cls index 2facfcd..8b17acc 100644 --- a/moderncv.cls +++ b/moderncv.cls @@ -285,7 +285,7 @@ \ifthenelse{\equal{#1}{github}} {\collectionadd[github]{socials} {\protect\httpslink[#3]{www.github.com/#3}}} {}% \ifthenelse{\equal{#1}{gitlab}} {\collectionadd[gitlab]{socials} {\protect\httpslink[#3]{www.gitlab.com/#3}}} {}% \ifthenelse{\equal{#1}{stackoverflow}}{\collectionadd[stackoverflow]{socials}{\protect\httpslink[#3]{stackoverflow.com/users/#3}}} {}% - \ifthenelse{\equal{#1}{bitbucket}} {\collectionadd[bitbucket]{socials} {\protect\httpslink[#3]{www.bitbucket.org/#3}}} {}% + \ifthenelse{\equal{#1}{bitbucket}} {\collectionadd[bitbucket]{socials} {\protect\httpslink[#3]{www.bitbucket.org/#3}}} {}% \ifthenelse{\equal{#1}{skype}} {\collectionadd[skype]{socials} {#3}} {}% \ifthenelse{\equal{#1}{orcid}} {\collectionadd[orcid]{socials} {\protect\httpslink[#3]{orcid.org/#3}}} {}% \ifthenelse{\equal{#1}{researchgate}} {\collectionadd[researchgate]{socials} {\protect\httpslink[#3]{www.researchgate.net/profile/#3}}} {}% @@ -293,7 +293,7 @@ \ifthenelse{\equal{#1}{telegram}} {\collectionadd[telegram]{socials} {\protect\httpslink[#3]{t.me/#3}}} {}% \ifthenelse{\equal{#1}{googlescholar}}{\collectionadd[googlescholar]{socials}{\protect\httpslink[#3]{scholar.google.com/citations?user=#3}}} {}% {}% } - {\collectionadd[#1]{socials}{\protect\httpslink[#3]{#2}}}} + {\collectionadd[#1]{socials}{\protect\httpslink[#3]{#2}}}}% % defines additional personal information (optional) % usage: \extrainfo{} @@ -338,7 +338,7 @@ \newcommand*{\skypesocialsymbol} {} \newcommand*{\orcidsocialsymbol} {} \newcommand*{\researchgatesocialsymbol} {} -\newcommand*{\researchidsocialsymbol} {} +\newcommand*{\researcheridsocialsymbol} {} \newcommand*{\googlescholarsocialsymbol}{} \newcommand*{\telegramsocialsymbol} {} diff --git a/moderncvcollection.sty b/moderncvcollection.sty index 73db08e..d59d811 100644 --- a/moderncvcollection.sty +++ b/moderncvcollection.sty @@ -27,42 +27,48 @@ % creates a new collection % usage: \collectionnew{} -\newcommand*{\collectionnew}[1]{% - \newcounter{collection@#1@count}} +\NewDocumentCommand\collectionnew{m}{% + \newcounter{collection@#1@count}% +}% % adds an item to a collection % usage: \collectionadd[]{}{} -\newcommand*{\collectionadd}[3][]{% +\NewDocumentCommand\collectionadd{ O{} m m }{% \expandafter\def\csname collection@#2@item\roman{collection@#2@count}\endcsname{#3}% - \if\relax\noexpand#1\relax% if #1 is empty - \else\expandafter\def\csname collection@#2@key\roman{collection@#2@count}\endcsname{#1}\fi% - \stepcounter{collection@#2@count}} - + \def\optional@FirstArg{#1}% + \ifdefempty{\optional@FirstArg}{% + \relax% if #1 is empty + }{% + \expandafter\def\csname collection@#2@key\roman{collection@#2@count}\endcsname{#1}% + }% + \stepcounter{collection@#2@count}% +}% % returns the number of items in a collection % usage: \collectioncount{} -\newcommand*{\collectioncount}[1]{% - \value{collection@#1@count}} - +\NewDocumentCommand\collectioncount{m}{% + \value{collection@#1@count}% +}% % gets an item from a collection % usage: \collectiongetitem{}{} % where is an integer between 0 and (collectioncount-1) -\newcommand*{\collectiongetitem}[2]{% - \csname collection@#1@item\romannumeral #2\endcsname} +\NewDocumentCommand\collectiongetitem{m m}{% + \csname collection@#1@item\romannumeral #2\endcsname% +}% % gets a key from a collection % usage: \collectiongetkey{}{} % where is an integer between 0 and (collectioncount-1) -\newcommand*{\collectiongetkey}[2]{% - \csname collection@#1@key\romannumeral #2\endcsname} - +\NewDocumentCommand\collectiongetkey{m m}{% + \csname collection@#1@key\romannumeral #2\endcsname% +}% % loops through a collection and perform the given operation on every element % usage: \collectionloop{}{} % where is the code sequence to be evaluated for each collection item, % code which can refer to \collectionloopid, \collectionloopkey, \collectionloopitem and % \collectionloopbreak \newcounter{collection@iterator} -\newcommand*{\collectionloopbreak}{\let\iterate\relax} -\newcommand*{\collectionloop}[2]{% +\NewDocumentCommand\collectionloopbreak{}{\let\iterate\relax} +\NewDocumentCommand\collectionloop{m m}{% \setcounter{collection@iterator}{0}% \loop\ifnum\value{collection@iterator}<\value{collection@#1@count}% \def\collectionloopid{\arabic{collection@iterator}}% @@ -70,14 +76,15 @@ \def\collectionloopkey{\collectiongetkey{#1}{\collectionloopid}}% #2% \stepcounter{collection@iterator}% - \repeat} + \repeat% +} % loops through a collection and finds the (first) element matching the given key % usage: \collectionfindbykey{}{key>} -\newcommand*{\collectionfindbykey}[2]{% +\NewDocumentCommand\collectionfindbykey{m m}{% \collectionloop{#1}{% - \ifthenelse{\equal{\collectionloopkey}{#2}}{\collectionloopitem\collectionloopbreak}{}}} - + \ifthenelse{\equal{\collectionloopkey}{#2}}{\collectionloopitem\collectionloopbreak}{}}% +}% \endinput diff --git a/moderncviconsawesome.sty b/moderncviconsawesome.sty index f821130..374d982 100644 --- a/moderncviconsawesome.sty +++ b/moderncviconsawesome.sty @@ -45,7 +45,7 @@ \renewcommand*{\skypesocialsymbol} {{\small\faSkype}~} \renewcommand*{\orcidsocialsymbol} {{\small\aiOrcid}~} \renewcommand*{\researchgatesocialsymbol} {{\small\aiResearchGate}~} -\renewcommand*{\researchidsocialsymbol} {{\small\aiResearcherID}~} +\renewcommand*{\researcheridsocialsymbol} {{\small\aiResearcherID}~} % alternative: \aiResearcherIDSquare \renewcommand*{\telegramsocialsymbol} {{\small\faTelegram}~} \renewcommand*{\googlescholarsocialsymbol}{{\small\aiGoogleScholar}~} diff --git a/moderncviconsletters.sty b/moderncviconsletters.sty index 79bb73f..3b91204 100644 --- a/moderncviconsletters.sty +++ b/moderncviconsletters.sty @@ -50,7 +50,7 @@ \renewcommand*{\skypesocialsymbol} {\textbf{sk}~} \renewcommand*{\orcidsocialsymbol} {\textbf{orcid}~} \renewcommand*{\researchgatesocialsymbol} {\textbf{rg}~} -\renewcommand*{\researchidsocialsymbol} {\textbf{ri}~} +\renewcommand*{\researcheridsocialsymbol} {\textbf{ri}~} \renewcommand*{\telegramsocialsymbol} {\textbf{tg}~} \renewcommand*{\googlescholarsocialsymbol}{\textbf{gs}~} diff --git a/moderncviconsmarvosym.sty b/moderncviconsmarvosym.sty index 43b4602..edd47e4 100644 --- a/moderncviconsmarvosym.sty +++ b/moderncviconsmarvosym.sty @@ -229,7 +229,7 @@ \renewcommand*{\telegramsocialsymbol}{} \renewcommand*{\orcidsocialsymbol}{} \renewcommand*{\researchgatesocialsymbol}{} -\renewcommand*{\researchidsocialsymbol}{} +\renewcommand*{\researcheridsocialsymbol}{} \renewcommand*{\bitbucketsocialsymbol}{} \renewcommand*{\skypesocialsymbol} {% \protect\raisebox{-0.15em}{% diff --git a/moderncvstylebanking.sty b/moderncvstylebanking.sty index e9ced7f..7ca0253 100644 --- a/moderncvstylebanking.sty +++ b/moderncvstylebanking.sty @@ -24,8 +24,13 @@ \DeclareOption{center} {\edef\moderncvstylebodyoptions{\moderncvstylebodyoptions,center}} \DeclareOption{right} {\edef\moderncvstylebodyoptions{\moderncvstylebodyoptions,right}} +% toggle use of symbol fonts. +\@initializeif{\if@symbols}\@symbolsfalse +\DeclareOption{symbols} {\@symbolstrue} +\DeclareOption{nosymbols} {\@symbolsfalse} + \DeclareOption*{}% avoid choking on unknown options -\ExecuteOptions{mixedrules,left} +\ExecuteOptions{mixedrules,left,symbols} \ProcessOptions*\relax% \ProcessOptions* processes the options in the order provided (i.e., with the later ones possibly overriding the former ones), while \ProcessOptions processes them in the order of the package @@ -49,14 +54,18 @@ %\fi % symbols -\RequirePackage{ifxetex} -\ifxetexorluatex - \moderncvicons{awesome} +\if@symbols + \ifxetexorluatex + \moderncvicons{awesome} % use font-awesome symbols if lualatex or xelatex is used + \else + \moderncvicons{marvosym} % use marvosym symbols pdflatex is used + \fi \else - \moderncvicons{marvosym} + \moderncvicons{letters} % do not use symbols, use letters \fi + %------------------------------------------------------------------------------- % header, body & footer %------------------------------------------------------------------------------- diff --git a/moderncvstylecasual.sty b/moderncvstylecasual.sty index a3eed14..6aed657 100644 --- a/moderncvstylecasual.sty +++ b/moderncvstylecasual.sty @@ -17,8 +17,13 @@ \DeclareOption{left} {\edef\moderncvstyleheadoptions{\moderncvstyleheadoptions,left}} \DeclareOption{right}{\edef\moderncvstyleheadoptions{\moderncvstyleheadoptions,right}} +% toggle use of symbol fonts. +\@initializeif{\if@symbols}\@symbolsfalse +\DeclareOption{symbols} {\@symbolstrue} +\DeclareOption{nosymbols} {\@symbolsfalse} + \DeclareOption*{}% avoid choking on unknown options -\ExecuteOptions{right} +\ExecuteOptions{right,symbols} \ProcessOptions*\relax% \ProcessOptions* processes the options in the order provided (i.e., with the later ones possibly overriding the former ones), while \ProcessOptions processes them in the order of the package %------------------------------------------------------------------------------- @@ -30,17 +35,20 @@ % \setsansfont{Latin Modern Sans} % \setmathfont{Latin Modern Math} %\else - \IfFileExists{lmodern.sty}% - {\RequirePackage{lmodern}}% - {} +% \IfFileExists{lmodern.sty}% +% {\RequirePackage{lmodern}}% +% {} %\fi % symbols -\RequirePackage{ifxetex} -\ifxetexorluatex - \moderncvicons{awesome} +\if@symbols + \ifxetexorluatex + \moderncvicons{awesome} % use font-awesome symbols if lualatex or xelatex is used + \else + \moderncvicons{marvosym} % use marvosym symbols pdflatex is used + \fi \else - \moderncvicons{marvosym} + \moderncvicons{letters} % do not use symbols, use letters \fi diff --git a/moderncvstyleclassic.sty b/moderncvstyleclassic.sty index 2f94813..0a5229d 100644 --- a/moderncvstyleclassic.sty +++ b/moderncvstyleclassic.sty @@ -17,8 +17,13 @@ \DeclareOption{left} {\edef\moderncvstyleheadoptions{\moderncvstyleheadoptions,left}} \DeclareOption{right}{\edef\moderncvstyleheadoptions{\moderncvstyleheadoptions,right}} +% toggle use of symbol fonts. +\@initializeif{\if@symbols}\@symbolsfalse +\DeclareOption{symbols} {\@symbolstrue} +\DeclareOption{nosymbols} {\@symbolsfalse} + \DeclareOption*{}% avoid choking on unknown options -\ExecuteOptions{left} +\ExecuteOptions{left,symbols} \ProcessOptions*\relax% \ProcessOptions* processes the options in the order provided (i.e., with the later ones possibly overriding the former ones), while \ProcessOptions processes them in the order of the package %------------------------------------------------------------------------------- @@ -30,17 +35,20 @@ % \setsansfont{Latin Modern Sans} % \setmathfont{Latin Modern Math} %\else - \IfFileExists{lmodern.sty}% - {\RequirePackage{lmodern}}% - {} +% \IfFileExists{lmodern.sty}% +% {\RequirePackage{lmodern}}% +% {} %\fi % symbols -\RequirePackage{ifxetex} -\ifxetexorluatex - \moderncvicons{awesome} +\if@symbols + \ifxetexorluatex + \moderncvicons{awesome} % use font-awesome symbols if lualatex or xelatex is used + \else + \moderncvicons{marvosym} % use marvosym symbols pdflatex is used + \fi \else - \moderncvicons{marvosym} + \moderncvicons{letters} % do not use symbols, use letters \fi diff --git a/moderncvstyleempty.sty b/moderncvstyleempty.sty index cadc930..cb68526 100644 --- a/moderncvstyleempty.sty +++ b/moderncvstyleempty.sty @@ -12,20 +12,40 @@ \NeedsTeXFormat{LaTeX2e} \ProvidesPackage{moderncvstyleempty}[2021/01/21 v2.1.0 modern curriculum vitae scheme: empty] - %------------------------------------------------------------------------------- % required packages %------------------------------------------------------------------------------- - %------------------------------------------------------------------------------- % package options %------------------------------------------------------------------------------- +% toggle use of symbol fonts. +\@initializeif{\if@symbols}\@symbolsfalse +\DeclareOption{symbols} {\@symbolstrue} +\DeclareOption{nosymbols} {\@symbolsfalse} +\DeclareOption*{}% avoid choking on unknown options +\ExecuteOptions{symbols} +\ProcessOptions*\relax% \ProcessOptions* processes the options in the order provided (i.e., with the later ones possibly overriding the former ones), while \ProcessOptions processes them in the order of the package %------------------------------------------------------------------------------- % style definition %------------------------------------------------------------------------------- + +%------------------------------------------------------------------------------- +% fonts & icons +%------------------------------------------------------------------------------- +% symbols +\if@symbols + \ifxetexorluatex + \moderncvicons{awesome} % use font-awesome symbols if lualatex or xelatex is used + \else + \moderncvicons{marvosym} % use marvosym symbols pdflatex is used + \fi +\else + \moderncvicons{letters} % do not use symbols, use letters +\fi + % see moderncv.cls for command declarations that needs to be implemented, e.g. \maketitle, \section, \subsections, \cvline, etc \endinput diff --git a/moderncvstylefancy.sty b/moderncvstylefancy.sty index 940f943..ecce008 100644 --- a/moderncvstylefancy.sty +++ b/moderncvstylefancy.sty @@ -12,8 +12,13 @@ \NeedsTeXFormat{LaTeX2e} \ProvidesPackage{moderncvstylefancy}[2021/01/21 v2.1.0 modern curriculum vitae and letter style scheme: fancy] +% toggle use of symbol fonts. +\@initializeif{\if@symbols}\@symbolsfalse +\DeclareOption{symbols} {\@symbolstrue} +\DeclareOption{nosymbols} {\@symbolsfalse} + \DeclareOption*{}% avoid choking on unknown options -\ExecuteOptions{} +\ExecuteOptions{symbols} \ProcessOptions*\relax% \ProcessOptions* processes the options in the order provided (i.e., with the later ones possibly overriding the former ones), while \ProcessOptions processes them in the order of the package %------------------------------------------------------------------------------- @@ -30,12 +35,16 @@ {} %\fi + % symbols -\RequirePackage{ifxetex} -\ifxetexorluatex - \moderncvicons{awesome} +\if@symbols + \ifxetexorluatex + \moderncvicons{awesome} % use font-awesome symbols if lualatex or xelatex is used + \else + \moderncvicons{marvosym} % use marvosym symbols pdflatex is used + \fi \else - \moderncvicons{marvosym} + \moderncvicons{letters} % do not use symbols, use letters \fi diff --git a/moderncvstyleoldstyle.sty b/moderncvstyleoldstyle.sty index 13e270c..712fab9 100644 --- a/moderncvstyleoldstyle.sty +++ b/moderncvstyleoldstyle.sty @@ -12,10 +12,14 @@ \NeedsTeXFormat{LaTeX2e} \ProvidesPackage{moderncvstyleoldstyle}[2021/01/21 v2.1.0 modern curriculum vitae and letter style scheme: oldstyle] -\DeclareOption*{}% avoid choking on unknown options -\ExecuteOptions{} -\ProcessOptions*\relax% \ProcessOptions* processes the options in the order provided (i.e., with the later ones possibly overriding the former ones), while \ProcessOptions processes them in the order of the package +% toggle use of symbol fonts. +\@initializeif{\if@symbols}\@symbolsfalse +\DeclareOption{symbols} {\@symbolstrue} +\DeclareOption{nosymbols} {\@symbolsfalse} +\DeclareOption*{}% avoid choking on unknown options +\ExecuteOptions{symbols} +\ProcessOptions*\relax% \ProcessOptions* processes the options in the order provided (i.e., with the later ones possibly overriding the former ones), while \ProcessOptions processes them in the order of the package %------------------------------------------------------------------------------- % fonts & icons @@ -35,7 +39,15 @@ %\fi % symbols -\moderncvicons{letters} +\if@symbols + \ifxetexorluatex + \moderncvicons{awesome} % use font-awesome symbols if lualatex or xelatex is used + \else + \moderncvicons{marvosym} % use marvosym symbols pdflatex is used + \fi +\else + \moderncvicons{letters} % do not use symbols, use letters +\fi %------------------------------------------------------------------------------- diff --git a/template.tex b/template.tex index 77ea54a..c55bc37 100644 --- a/template.tex +++ b/template.tex @@ -23,10 +23,9 @@ %\setlength{\hintscolumnwidth}{3cm} % if you want to change the width of the column with the dates %\setlength{\makecvheadnamewidth}{10cm} % for the 'classic' style, if you want to force the width allocated to your name and avoid line breaks. be careful though, the length is normally calculated to avoid any overlap with your personal info; use this at your own typographical risks... - % personal data \name{John}{Doe} -\title{Resumé title} % optional, remove / comment the line if not wanted +\title{Résumé title} % 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} From 74d672dec0ab66b3b91ec7ae27f85223145e8bdb Mon Sep 17 00:00:00 2001 From: Mark E Fuller Date: Sun, 7 Feb 2021 13:43:50 +0100 Subject: [PATCH 3/8] add WhatsApp, Signal, Matrix social, WhatsApp icon (#37) --- moderncv.cls | 6 ++++++ moderncviconsawesome.sty | 4 ++++ moderncviconsletters.sty | 3 +++ moderncviconsmarvosym.sty | 3 +++ template.tex | 7 +++++-- 5 files changed, 21 insertions(+), 2 deletions(-) diff --git a/moderncv.cls b/moderncv.cls index 8b17acc..cf505e2 100644 --- a/moderncv.cls +++ b/moderncv.cls @@ -291,6 +291,9 @@ \ifthenelse{\equal{#1}{researchgate}} {\collectionadd[researchgate]{socials} {\protect\httpslink[#3]{www.researchgate.net/profile/#3}}} {}% \ifthenelse{\equal{#1}{researcherid}} {\collectionadd[researcherid]{socials} {\protect\httpslink[#3]{www.researcherid.com/rid/#3}}} {}% \ifthenelse{\equal{#1}{telegram}} {\collectionadd[telegram]{socials} {\protect\httpslink[#3]{t.me/#3}}} {}% + \ifthenelse{\equal{#1}{whatsapp}} {\collectionadd[whatsapp]{socials} {\protect\httpslink[#3]{wa.me/#3}}} {}% + \ifthenelse{\equal{#1}{signal}} {\collectionadd[signal]{socials} {#3}} {}% + \ifthenelse{\equal{#1}{matrix}} {\collectionadd[matrix]{socials} {\httpslink[#3]{matrix.to/\#/#3}}} {}% \ifthenelse{\equal{#1}{googlescholar}}{\collectionadd[googlescholar]{socials}{\protect\httpslink[#3]{scholar.google.com/citations?user=#3}}} {}% {}% } {\collectionadd[#1]{socials}{\protect\httpslink[#3]{#2}}}}% @@ -341,6 +344,9 @@ \newcommand*{\researcheridsocialsymbol} {} \newcommand*{\googlescholarsocialsymbol}{} \newcommand*{\telegramsocialsymbol} {} +\newcommand*{\whatsappsocialsymbol} {} +\newcommand*{\matrixsocialsymbol} {} +\newcommand*{\signalsocialsymbol} {} % other %------ diff --git a/moderncviconsawesome.sty b/moderncviconsawesome.sty index 374d982..b3c035c 100644 --- a/moderncviconsawesome.sty +++ b/moderncviconsawesome.sty @@ -48,6 +48,10 @@ \renewcommand*{\researcheridsocialsymbol} {{\small\aiResearcherID}~} % alternative: \aiResearcherIDSquare \renewcommand*{\telegramsocialsymbol} {{\small\faTelegram}~} \renewcommand*{\googlescholarsocialsymbol}{{\small\aiGoogleScholar}~} +\renewcommand*{\telegramsocialsymbol} {{\small\faTelegram}~} +\renewcommand*{\whatsappsocialsymbol} {{\small\faWhatsapp}~} +\renewcommand*{\signalsocialsymbol} {} +\renewcommand*{\matrixsocialsymbol} {} \endinput diff --git a/moderncviconsletters.sty b/moderncviconsletters.sty index 3b91204..9e68443 100644 --- a/moderncviconsletters.sty +++ b/moderncviconsletters.sty @@ -52,6 +52,9 @@ \renewcommand*{\researchgatesocialsymbol} {\textbf{rg}~} \renewcommand*{\researcheridsocialsymbol} {\textbf{ri}~} \renewcommand*{\telegramsocialsymbol} {\textbf{tg}~} +\renewcommand*{\whatsappsocialsymbol} {\textbf{wa}~} +\renewcommand*{\signalsocialsymbol} {\textbf{si}~} +\renewcommand*{\matrixsocialsymbol} {\textbf{ma}~} \renewcommand*{\googlescholarsocialsymbol}{\textbf{gs}~} \renewcommand*{\listitemsymbol} {\labelitemi~} diff --git a/moderncviconsmarvosym.sty b/moderncviconsmarvosym.sty index edd47e4..b691455 100644 --- a/moderncviconsmarvosym.sty +++ b/moderncviconsmarvosym.sty @@ -227,6 +227,9 @@ \renewcommand*{\stackoverflowsocialsymbol}{} \renewcommand*{\googlescholarsocialsymbol}{} \renewcommand*{\telegramsocialsymbol}{} +\renewcommand*{\whatsappsocialsymbol}{} +\renewcommand*{\signalsocialsymbol}{} +\renewcommand*{\matrixsocialsymbol}{} \renewcommand*{\orcidsocialsymbol}{} \renewcommand*{\researchgatesocialsymbol}{} \renewcommand*{\researcheridsocialsymbol}{} diff --git a/template.tex b/template.tex index c55bc37..ecc23de 100644 --- a/template.tex +++ b/template.tex @@ -35,7 +35,7 @@ % Social icons \social[linkedin]{john.doe} % optional, remove / comment the line if not wanted -\social[xing]{john\_doe} % optional, remove / comment the line if not wanted +\social[xing]{john_doe} % optional, remove / comment the line if not wanted \social[twitter]{jdoe} % optional, remove / comment the line if not wanted \social[github]{jdoe} % optional, remove / comment the line if not wanted \social[gitlab]{jdoe} % optional, remove / comment the line if not wanted @@ -46,7 +46,10 @@ \social[researchgate]{jdoe} % optional, remove / comment the line if not wanted \social[researcherid]{jdoe} % optional, remove / comment the line if not wanted \social[telegram]{jdoe} % optional, remove / comment the line if not wanted -\social[googlescholar]{googlescholarid} % optional, remove / comment the line if not wanted +\social[whatsapp]{12345678901} % optional, remove / comment the line if not wanted +\social[signal]{12345678901} % optional, remove / comment the line if not wanted +\social[matrix]{@johndoe:matrix.org} % optional, remove / comment the line if not wanted +\social[googlescholar]{googlescholarid} % optional, remove / comment the line if not wanted \extrainfo{additional information} % optional, remove / comment the line if not wanted From 51e77f85640d91f654818a7989c90d07367cffc6 Mon Sep 17 00:00:00 2001 From: Stephan Lachnit Date: Sun, 7 Feb 2021 13:50:22 +0100 Subject: [PATCH 4/8] run workflow on PRs Signed-off-by: Stephan Lachnit --- .github/workflows/build-pdf.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/build-pdf.yml b/.github/workflows/build-pdf.yml index 772d818..4969d24 100644 --- a/.github/workflows/build-pdf.yml +++ b/.github/workflows/build-pdf.yml @@ -1,5 +1,5 @@ name: Build template -on: push +on: [push, pull_request] jobs: build-template: From 8408c353de3884f5cf155c921577c5c3ace19a88 Mon Sep 17 00:00:00 2001 From: "Mark E. Fuller" Date: Wed, 10 Feb 2021 10:35:37 +0100 Subject: [PATCH 5/8] add birthdate field to template --- .gitignore | 1 + template.tex | 4 ++-- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/.gitignore b/.gitignore index 4174475..9235563 100644 --- a/.gitignore +++ b/.gitignore @@ -6,6 +6,7 @@ *.fls *.log *.out +*.synctex.gz # template.tex output # move to *.pdf once manual is done diff --git a/template.tex b/template.tex index d5547ef..2b351a4 100644 --- a/template.tex +++ b/template.tex @@ -9,7 +9,7 @@ \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') % moderncv themes -\moderncvstyle{classic} % style options are 'casual' (default), 'classic', 'banking', 'oldstyle' and 'fancy' +\moderncvstyle{casual} % style options are 'casual' (default), 'classic', 'banking', 'oldstyle' and 'fancy' \moderncvcolor{blue} % color options 'black', 'blue' (default), 'burgundy', 'green', 'grey', 'orange', 'purple' and 'red' %\renewcommand{\familydefault}{\sfdefault} % to set the default font; use '\sfdefault' for the default sans serif font, '\rmdefault' for the default roman one, or any tex font name %\nopagenumbers{} % uncomment to suppress automatic page numbering for CVs longer than one page @@ -26,7 +26,7 @@ % personal data \name{John}{Doe} \title{Résumé title} % optional, remove / comment the line if not wanted -\born{4 July 1776} +\born{4 July 1776} % 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} From 09d62474db024c653a29874306c9e1d19d7ed77a Mon Sep 17 00:00:00 2001 From: "Mark E. Fuller" Date: Wed, 10 Feb 2021 10:39:44 +0100 Subject: [PATCH 6/8] delete synctex.gz --- template.synctex.gz | Bin 50737 -> 0 bytes 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 template.synctex.gz diff --git a/template.synctex.gz b/template.synctex.gz deleted file mode 100644 index 3b938656d8d421ea6a96cd9acb366209a3c61811..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 50737 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 z Date: Sun, 28 Feb 2021 15:29:31 +0100 Subject: [PATCH 7/8] Fix compilation error with banking style (#41) It fix the bug that already exists in upstream : https://github.com/xdanaux/moderncv/issues/98 --- moderncvheadiii.sty | 1 - 1 file changed, 1 deletion(-) diff --git a/moderncvheadiii.sty b/moderncvheadiii.sty index dbc63fc..68eed83 100644 --- a/moderncvheadiii.sty +++ b/moderncvheadiii.sty @@ -83,7 +83,6 @@ % name and title \namestyle{\@firstname~\@lastname}% \ifthenelse{\equal{\@title}{}}{}{\titlestyle{~|~\@title}}% \isundefined doesn't work on \@title, as LaTeX itself defines \@title (before it possibly gets redefined by \title) - % optional detailed information \if@details{% \\% From e543cd7976e3528b2e80ff29a9493552d9929082 Mon Sep 17 00:00:00 2001 From: Stefan Sundin Date: Sun, 28 Mar 2021 23:58:26 -0700 Subject: [PATCH 8/8] Remove www from Twitter, GitHub, GitLab, and BitBucket domain names. (#44) --- moderncv.cls | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/moderncv.cls b/moderncv.cls index 1e7eb68..aa47a53 100644 --- a/moderncv.cls +++ b/moderncv.cls @@ -285,11 +285,11 @@ {% \ifthenelse{\equal{#1}{linkedin}} {\collectionadd[linkedin]{socials} {\protect\httpslink[#3]{www.linkedin.com/in/#3}}} {}% \ifthenelse{\equal{#1}{xing}} {\collectionadd[xing]{socials} {\protect\httpslink[#3]{www.xing.com/profile/#3}}} {}% - \ifthenelse{\equal{#1}{twitter}} {\collectionadd[twitter]{socials} {\protect\httpslink[#3]{www.twitter.com/#3}}} {}% - \ifthenelse{\equal{#1}{github}} {\collectionadd[github]{socials} {\protect\httpslink[#3]{www.github.com/#3}}} {}% - \ifthenelse{\equal{#1}{gitlab}} {\collectionadd[gitlab]{socials} {\protect\httpslink[#3]{www.gitlab.com/#3}}} {}% + \ifthenelse{\equal{#1}{twitter}} {\collectionadd[twitter]{socials} {\protect\httpslink[#3]{twitter.com/#3}}} {}% + \ifthenelse{\equal{#1}{github}} {\collectionadd[github]{socials} {\protect\httpslink[#3]{github.com/#3}}} {}% + \ifthenelse{\equal{#1}{gitlab}} {\collectionadd[gitlab]{socials} {\protect\httpslink[#3]{gitlab.com/#3}}} {}% \ifthenelse{\equal{#1}{stackoverflow}}{\collectionadd[stackoverflow]{socials}{\protect\httpslink[#3]{stackoverflow.com/users/#3}}} {}% - \ifthenelse{\equal{#1}{bitbucket}} {\collectionadd[bitbucket]{socials} {\protect\httpslink[#3]{www.bitbucket.org/#3}}} {}% + \ifthenelse{\equal{#1}{bitbucket}} {\collectionadd[bitbucket]{socials} {\protect\httpslink[#3]{bitbucket.org/#3}}} {}% \ifthenelse{\equal{#1}{skype}} {\collectionadd[skype]{socials} {#3}} {}% \ifthenelse{\equal{#1}{orcid}} {\collectionadd[orcid]{socials} {\protect\httpslink[#3]{orcid.org/#3}}} {}% \ifthenelse{\equal{#1}{researchgate}} {\collectionadd[researchgate]{socials} {\protect\httpslink[#3]{www.researchgate.net/profile/#3}}} {}%