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: 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 c68e2d8..a00b2e7 100644 --- a/moderncv.cls +++ b/moderncv.cls @@ -249,6 +249,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}} @@ -281,19 +285,22 @@ {% \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}}} {}% \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}}}} + {\collectionadd[#1]{socials}{\protect\httpslink[#3]{#2}}}}% % defines additional personal information (optional) % usage: \extrainfo{} @@ -323,6 +330,7 @@ % other symbols \newcommand*{\listitemsymbol} {\labelitemi~} \newcommand*{\addresssymbol} {} +\newcommand*{\bornsymbol} {} \newcommand*{\mobilephonesymbol} {} \newcommand*{\fixedphonesymbol} {} \newcommand*{\faxphonesymbol} {} @@ -338,9 +346,12 @@ \newcommand*{\skypesocialsymbol} {} \newcommand*{\orcidsocialsymbol} {} \newcommand*{\researchgatesocialsymbol} {} -\newcommand*{\researchidsocialsymbol} {} +\newcommand*{\researcheridsocialsymbol} {} \newcommand*{\googlescholarsocialsymbol}{} \newcommand*{\telegramsocialsymbol} {} +\newcommand*{\whatsappsocialsymbol} {} +\newcommand*{\matrixsocialsymbol} {} +\newcommand*{\signalsocialsymbol} {} % other %------ @@ -379,7 +390,7 @@ % usage: \moderncvfoot[]{} \newcommand*{\moderncvfoot}[2][]{% \@loadmoderncvpackage[#1]{foot}{#2}} - + % loads a color scheme % usage: \moderncvcolor{} \newcommand*{\moderncvcolor}[1]{% @@ -551,8 +562,8 @@ \newcommand*{\emaillink}[2][]{% \ifthenelse{\equal{#1}{}}% {\href{mailto:#2}{#2}}% - {\href{mailto:#2}{\detokenize{#1}}}} + % makes a tel hyperlink % usage: \tellink[optional text]{link} \newcommand*{\tellink}[2][]{% 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/moderncvfooti.sty b/moderncvfooti.sty index 751216c..c150a4b 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 ff44702..fe62e4e 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\httpslink{\@homepage}}% diff --git a/moderncvheadii.sty b/moderncvheadii.sty index ecfaf13..4cc3d24 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 d851785..68eed83 100644 --- a/moderncvheadiii.sty +++ b/moderncvheadiii.sty @@ -91,6 +91,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 2f9b8e0..e737067 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 2f84785..a38b7fd 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 e647879..43e5960 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 f821130..764d3b0 100644 --- a/moderncviconsawesome.sty +++ b/moderncviconsawesome.sty @@ -29,6 +29,7 @@ %\renewcommand*{\labelitemiii} {\strut\textcolor{color1}{\rmfamily\textperiodcentered}}% no change from default in moderncv.cls %\renewcommand*{\labelitemiv} {\labelitemiii} % no change from default in moderncv.cls + \renewcommand*{\addresssymbol} {} \renewcommand*{\mobilephonesymbol} {{\small\faMobile}~} \renewcommand*{\fixedphonesymbol} {{\small\faPhone}~} @@ -45,9 +46,14 @@ \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}~} +\renewcommand*{\telegramsocialsymbol} {{\small\faTelegram}~} +\renewcommand*{\whatsappsocialsymbol} {{\small\faWhatsapp}~} +\renewcommand*{\signalsocialsymbol} {} +\renewcommand*{\matrixsocialsymbol} {} +\renewcommand*{\bornsymbol} {{\small\faAsterisk}~} \endinput diff --git a/moderncviconsletters.sty b/moderncviconsletters.sty index 79bb73f..28f8fa9 100644 --- a/moderncviconsletters.sty +++ b/moderncviconsletters.sty @@ -50,9 +50,13 @@ \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*{\whatsappsocialsymbol} {\textbf{wa}~} +\renewcommand*{\signalsocialsymbol} {\textbf{si}~} +\renewcommand*{\matrixsocialsymbol} {\textbf{ma}~} \renewcommand*{\googlescholarsocialsymbol}{\textbf{gs}~} +\renewcommand*{\bornsymbol} {\textbf{B}~} \renewcommand*{\listitemsymbol} {\labelitemi~} diff --git a/moderncviconsmarvosym.sty b/moderncviconsmarvosym.sty index 43b4602..f847232 100644 --- a/moderncviconsmarvosym.sty +++ b/moderncviconsmarvosym.sty @@ -227,9 +227,12 @@ \renewcommand*{\stackoverflowsocialsymbol}{} \renewcommand*{\googlescholarsocialsymbol}{} \renewcommand*{\telegramsocialsymbol}{} +\renewcommand*{\whatsappsocialsymbol}{} +\renewcommand*{\signalsocialsymbol}{} +\renewcommand*{\matrixsocialsymbol}{} \renewcommand*{\orcidsocialsymbol}{} \renewcommand*{\researchgatesocialsymbol}{} -\renewcommand*{\researchidsocialsymbol}{} +\renewcommand*{\researcheridsocialsymbol}{} \renewcommand*{\bitbucketsocialsymbol}{} \renewcommand*{\skypesocialsymbol} {% \protect\raisebox{-0.15em}{% @@ -238,7 +241,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) .. @@ -264,6 +267,7 @@ \protect\end{scope}% \protect\end{tikzpicture}}% ~} + \renewcommand*{\bornsymbol}{} \endinput 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 277ef0f..8cb9f76 100644 --- a/template.tex +++ b/template.tex @@ -23,10 +23,10 @@ %\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 +\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} @@ -36,7 +36,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 @@ -47,7 +47,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