diff --git a/CHANGELOG b/CHANGELOG index 847f38a..cf8f354 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -1,4 +1,6 @@ version next +- Fold \phone, \email and friends into \social +- Rework \social command - Fix french babel breaking contemporary style (#219) - Fix birthdate not showing up in contemporary style (#244) - Fix Inspire HEP social link (#241) diff --git a/manual/moderncv_userguide.tex b/manual/moderncv_userguide.tex index 84fa732..9bd46ea 100644 --- a/manual/moderncv_userguide.tex +++ b/manual/moderncv_userguide.tex @@ -305,19 +305,6 @@ A command for a three-lined street address. \address{}{}{} \end{lstlisting} -\paragraph{\code{\\phone}} -A command for a phone number. Takes the phone type as an optional argument. -\begin{lstlisting} - \phone[]{} -\end{lstlisting} -The allowed values for \code{} are \code{fax}, \code{fixed} and \code{mobile}. - -\paragraph{\code{\\email}} -A command for an email address. -\begin{lstlisting} - \email{} -\end{lstlisting} - \paragraph{\code{\\homepage}} A command for a personal website. \begin{lstlisting} @@ -325,14 +312,18 @@ A command for a personal website. \end{lstlisting} \paragraph{\code{\\social}} -A command for a social media account. -Takes the platform as an optional argument. +A command for a social media accounts. +Takes comma separated list of platforms as an optional argument. \begin{lstlisting} - \social[]{} + \social[]{} \end{lstlisting} -The following values are supported for \code{}: +The following values are supported: \begin{itemize} \begin{multicols}{4} + \item \code{email} + \item \code{mobilephone} + \item \code{fixedphone} + \item \code{faxphone} \item \code{arxiv} \item \code{battlenet} \item \code{bitbucket} @@ -367,6 +358,10 @@ The following values are supported for \code{}: \item \code{youtube} \end{multicols} \end{itemize} +\begin{lstlisting} + % Example: + \social[codeberg,github]{superuser} +\end{lstlisting} \paragraph{\code{\\extrainfo}} A command for any extra information. diff --git a/moderncv.cls b/moderncv.cls index 3756507..173b1fe 100644 --- a/moderncv.cls +++ b/moderncv.cls @@ -233,103 +233,80 @@ % usage: \born{date, place} \newcommand*{\born}[1]{\def\@born{#1}} -% defines one's email (optional) -% usage: \email{} -\newcommand*{\email}[1]{\def\@email{#1}} - % defines one's home page (optional) % usage: \homepage[]{} % where should be either "https" (default) or "http" \NewDocumentCommand{\homepage}{O{https}m}{\def\@homepageprotocol{#1}\def\@homepage{#2}} -% adds a fixed/mobile/fax number to one's personal information (optional) -% usage: \phone[]{} -% where should be either "fixed" (default), "mobile" or "fax -\collectionnew{phones} -\NewDocumentCommand{\phone}{O{fixed}m}{% - \ifthenelse{\equal{#1}{fax}}% - {\collectionadd[#1]{phones}{#2}} - {\collectionadd[#1]{phones}{\protect\tellink{#2}}} - } - - % http://latex.org/forum/viewtopic.php?t=12239 \def\SplitMyMacro#1/#2{#2} +% Define links for different social networks +\newcommand{\emaillink}[2]{\protect\href{mailto:#2}{#1}} +\newcommand{\mobilephonelink}[2]{\protect\tellink[#1]{#2}} +\newcommand{\fixedphonelink}[2]{\protect\tellink[#1]{#2}} +\newcommand{\faxphonelink}[2]{\protect\tellink[#1]{#2}} +\newcommand{\linkedinlink}[2]{\protect\httpslink[#1]{www.linkedin.com/in/#2}} +\newcommand{\xinglink}[2]{\protect\httpslink[#1]{www.xing.com/profile/#2}} +\newcommand{\twitterlink}[2]{\protect\httpslink[#1]{twitter.com/#2}} +\newcommand{\mastodonlink}[2]{\protect\httpslink[#1]{#2}} +\newcommand{\githublink}[2]{\protect\httpslink[#1]{github.com/#2}} +\newcommand{\gitlablink}[2]{\protect\httpslink[#1]{gitlab.com/#2}} +\newcommand{\stackoverflowlink}[2]{\protect\httpslink[#1]{stackoverflow.com/users/#2}} +\newcommand{\bitbucketlink}[2]{\protect\httpslink[#1]{bitbucket.org/#2}} +\newcommand{\skypelink}[2]{\ifthenelse{\equal{#1}{}}{#1}{#2}} +\newcommand{\orcidlink}[2]{\protect\httpslink[#1]{orcid.org/#2}} +\newcommand{\researchgatelink}[2]{\protect\httpslink[#1]{www.researchgate.net/profile/#2}} +\newcommand{\researcheridlink}[2]{\protect\httpslink[#1]{www.researcherid.com/rid/#2}} +\newcommand{\telegramlink}[2]{\protect\httpslink[#1]{t.me/#2}} +\newcommand{\whatsapplink}[2]{\protect\httpslink[#1]{wa.me/#2}} +\newcommand{\signallink}[2]{\ifthenelse{\equal{#1}{}}{#1}{#2}} +\newcommand{\matrixlink}[2]{\protect\httpslink[#1]{matrix.to/\#/#2}} +\newcommand{\googlescholarlink}[2]{\protect\httpslink[#1]{scholar.google.com/citations?user=#2}} +\newcommand{\codeberglink}[2]{\protect\httpslink[#1]{codeberg.org/#2}} +\newcommand{\discordlink}[2]{\ifthenelse{\equal{#1}{}}{#1}{#2}} +\newcommand{\twitchlink}[2]{\protect\httpslink[#1]{twitch.tv/#2}} +\newcommand{\youtubelink}[2]{\protect\httpslink[#1]{youtube.com/#2}} +\newcommand{\tiktoklink}[2]{\protect\httpslink[#1]{tiktok.com/@#2}} +\newcommand{\instagramlink}[2]{\protect\httpslink[#1]{instagram.com/#2}} +\newcommand{\soundcloudlink}[2]{\protect\httpslink[#1]{soundcloud.com/#2}} +\newcommand{\steamlink}[2]{\protect\httpslink[#1]{steamcommunity.com/id/#2}} +\newcommand{\xboxlink}[2]{\protect\httpslink[#1]{account.xbox.com/profile?gamertag=#2}} +\newcommand{\playstationlink}[2]{\ifthenelse{\equal{#1}{}}{#1}{#2}} +\newcommand{\battlenetlink}[2]{\ifthenelse{\equal{#1}{}}{#1}{#2}} +\newcommand{\arxivlink}[2]{\protect\httpslink[#1]{arxiv.org/a/#2}} +\newcommand{\inspirelink}[2]{\protect\httpslink[#1]{inspirehep.net/authors/#2}} +\newcommand{\simplexlink}[2]{\protect\httpslink[#1]{simplex.chat/#2}} +\newcommand{\threemalink}[2]{\protect\httpslink[#1]{threema.id/#2}} -% adds a social link to one's personal information (optional) -% usage: \social[][]{} -% where should be either: -% - "linkedin" -% - "xing" -% - "twitter" -% - "mastodon" -% - "github" -% - "gitlab" -% - "stackoverflow" -% - "bitbucket" -% - "skype" -% - "orcid" -% - "researchgate" -% - "researcherid" -% - "telegram" -% - "whatsapp" -% - "signal" -% - "matrix" -% - "googlescholar" -% - "codeberg" -% - "discord" -% - "twitch" -% - "youtube" -% - "tiktok" -% - "instagram" -% - "soundcloud" -% - "steam -% - "xbox" -% - "playstation" -% - "battlenet" -% - "arxiv" -% - "inspire" -% - "simplex" -% - "threema" +\NewDocumentCommand{\socialIconLink}{m}{ + \ifx\previtem\empty + % Do nothing on first iteration. This way we 'shift' the whole list by one. + \else % The actual work happens here. + \unskip\unskip\unskip~% Get rid of a glue space inserted by \ProcessList + \expandafter\expandafter\csname\previtem link\endcsname{\csname\previtem socialsymbol\endcsname}{\username} + % Eg for (linkedin, username) -> \linkedinlink{\linkedinsocialsymbol}{username} + \fi + \def\previtem{#1} % Update previtem +} + +% Adds a links to social networks +% usage: \social[,]{} +% If you have the same username you can specify multiple networks separating them by commas. +% The entries are shown in order they are added. +% To be supported network needs a \networknamelink and \networknamesocialsymbol commands. \collectionnew{socials} -\NewDocumentCommand{\social}{O{}O{}m}{% - \ifthenelse{\equal{#2}{}}% - {% - \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]{twitter.com/#3}}} {}% - \ifthenelse{\equal{#1}{mastodon}} {\collectionadd[mastodon]{socials} {\protect\httpslink[#3]{#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]{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}}} {}% - \ifthenelse{\equal{#1}{codeberg}} {\collectionadd[codeberg]{socials} {\protect\httpslink[#3]{codeberg.org/#3}}} {}% - \ifthenelse{\equal{#1}{discord}} {\collectionadd[discord]{socials} {#3}} {}% - \ifthenelse{\equal{#1}{twitch}} {\collectionadd[twitch]{socials} {\protect\httpslink[#3]{twitch.tv/#3}}} {}% - \ifthenelse{\equal{#1}{youtube}} {\collectionadd[youtube]{socials} {\protect\httpslink[#3]{youtube.com/#3}}} {}% - \ifthenelse{\equal{#1}{tiktok}} {\collectionadd[tiktok]{socials} {\protect\httpslink[#3]{tiktok.com/@#3}}} {}% - \ifthenelse{\equal{#1}{instagram}} {\collectionadd[instagram]{socials} {\protect\httpslink[#3]{instagram.com/#3}}} {}% - \ifthenelse{\equal{#1}{soundcloud}} {\collectionadd[soundcloud]{socials} {\protect\httpslink[#3]{soundcloud.com/#3}}} {}% - \ifthenelse{\equal{#1}{steam}} {\collectionadd[steam]{socials} {\protect\httpslink[#3]{steamcommunity.com/id/#3}}} {}% - \ifthenelse{\equal{#1}{xbox}} {\collectionadd[xbox]{socials} {\protect\httpslink[#3]{account.xbox.com/profile?gamertag=#3}}} {}% - \ifthenelse{\equal{#1}{playstation}} {\collectionadd[playstation]{socials} {#3}} {}% - \ifthenelse{\equal{#1}{battlenet}} {\collectionadd[battlenet]{socials} {#3}} {}% - \ifthenelse{\equal{#1}{arxiv}} {\collectionadd[arxiv]{socials} {\protect\httpslink[#3]{arxiv.org/a/#3}}} {}% - \ifthenelse{\equal{#1}{inspire}} {\collectionadd[inspire]{socials} {\protect\httpslink[#3]{inspirehep.net/authors/#3}}} {}% - \ifthenelse{\equal{#1}{simplex}} {\collectionadd[simplex]{socials} {\protect\httpslink[#3]{simplex.chat/#3}}} {}% - \ifthenelse{\equal{#1}{threema}} {\collectionadd[threema]{socials} {\protect\httpslink[#3]{threema.id/#3}}} {}% - } - {\collectionadd[#1]{socials}{\protect\httpslink[#3]{#2}}}}% +\NewDocumentCommand{\social}{>{\SplitList{,}}o m}{ + \collectionadd{socials}{ + \begingroup % Make sure \username does not leak outside + \def\username{#2} % \ProcessList can't handle multiple arguments. Work around it by defining a var. + \let\previtem\empty % Ugly hack to handle all but last element by acting on (i-1)th element + \ProcessList{#1}{\socialIconLink} % Common case handled here (all but last item) + \unskip\unskip\unskip~% Get rid of a glue space inserted by \ProcessList + \expandafter\expandafter\csname\previtem link\endcsname{\csname\previtem socialsymbol\endcsname~\username}{\username} % Last item + \endgroup + } +} % defines additional personal information (optional) % usage: \extrainfo{} @@ -360,10 +337,10 @@ \newcommand*{\listitemsymbol} {\labelitemi~} \newcommand*{\addresssymbol} {} \newcommand*{\bornsymbol} {} -\newcommand*{\mobilephonesymbol} {} -\newcommand*{\fixedphonesymbol} {} -\newcommand*{\faxphonesymbol} {} -\newcommand*{\emailsymbol} {} +\newcommand*{\mobilephonesocialsymbol} {} +\newcommand*{\fixedphonesocialsymbol} {} +\newcommand*{\faxphonesocialsymbol} {} +\newcommand*{\emailsocialsymbol} {} \newcommand*{\homepagesymbol} {} \newcommand*{\linkedinsocialsymbol} {} \newcommand*{\xingsocialsymbol} {} @@ -622,13 +599,6 @@ {\href{https://#2}{#2}}% {\href{https://#2}{#1}}}} -% makes an email hyperlink -% usage: \emaillink[optional text]{link} -\newcommand*{\emaillink}[2][]{% - \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 92f9de7..d9c10b5 100644 --- a/moderncvfooti.sty +++ b/moderncvfooti.sty @@ -86,13 +86,10 @@ \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}}}% \ifthenelse{\isundefined{\@homepage}}{}{\addtofoot{\homepagesymbol% \ifthenelse{\equal{\@homepageprotocol}{http}}{\httplink{\@homepage}}{\httpslink{\@homepage}}}}% \collectionloop{socials}{% the key holds the social type (=symbol command prefix), the item holds the link - \addtofoot{\csname\collectionloopkey socialsymbol\endcsname\collectionloopitem}}% + \addtofoot{\collectionloopitem}}% \ifthenelse{\isundefined{\@extrainfo}}{}{\addtofoot{\@extrainfo}}% \ifthenelse{\lengthtest{\footboxwidth=0pt}}{}{\flushfoot}% the lengthtest is required to avoid flushing an empty footer, which could cause a blank line due to the \\ after the address, if no other personal info is used }}}% @@ -119,13 +116,10 @@ \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}}}% \ifthenelse{\isundefined{\@homepage}}{}{\addtofoot{\homepagesymbol% \ifthenelse{\equal{\@homepageprotocol}{http}}{\httplink{\@homepage}}{\httpslink{\@homepage}}}}% \collectionloop{socials}{% the key holds the social type (=symbol command prefix), the item holds the link - \addtofoot{\csname\collectionloopkey socialsymbol\endcsname\collectionloopitem}}% + \addtofoot{\collectionloopitem}}% \ifthenelse{\isundefined{\@extrainfo}}{}{\addtofoot{\@extrainfo}}% \ifthenelse{\lengthtest{\footboxwidth=0pt}}{}{\flushfoot}% the lengthtest is required to avoid flushing an empty footer, which could cause a blank line due to the \\ after the address, if no other personal info is used }}}% diff --git a/moderncvheadi.sty b/moderncvheadi.sty index 930b1fd..f70bbcf 100644 --- a/moderncvheadi.sty +++ b/moderncvheadi.sty @@ -72,12 +72,9 @@ % optional detailed information (pre-rendering) \@initializebox{\makecvheaddetailsbox}% \if@details% - \def\phonesdetails{}% - \collectionloop{phones}{% the key holds the phone type (=symbol command prefix), the item holds the number - \protected@edef\phonesdetails{\phonesdetails\protect\makenewline\csname\collectionloopkey phonesymbol\endcsname\collectionloopitem}}% \def\socialsdetails{}% \collectionloop{socials}{% the key holds the social type (=symbol command prefix), the item holds the link - \protected@edef\socialsdetails{\socialsdetails\protect\makenewline\csname\collectionloopkey socialsymbol\endcsname\collectionloopitem}}% + \protected@edef\socialsdetails{\socialsdetails\protect\makenewline\collectionloopitem}}% \savebox{\makecvheaddetailsbox}{% \addressfont\color{addresscolor}% \if@left\begin{tabular}[b]{@{}r@{}}\fi% @@ -86,8 +83,6 @@ \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% \ifthenelse{\equal{\@homepageprotocol}{http}}{\httplink{\@homepage}}{\httpslink{\@homepage}}}% \socialsdetails% needs to be pre-rendered as loops and tabulars seem to conflict @@ -175,13 +170,10 @@ \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}}% - \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}}% \ifthenelse{\isundefined{\@homepage}}{}{\makenewline\homepagesymbol% \ifthenelse{\equal{\@homepageprotocol}{http}}{\httplink{\@homepage}}{\httpslink{\@homepage}}}% \collectionloop{socials}{% the key holds the social type (=symbol command prefix), the item holds the link - \makenewline\csname\collectionloopkey socialsymbol\endcsname\collectionloopitem}% + \makenewline\collectionloopitem}% \ifthenelse{\isundefined{\@extrainfo}}{}{\makenewline\@extrainfo}}\fi% \end{minipage}\\[2em] % recipient block diff --git a/moderncvheadii.sty b/moderncvheadii.sty index a36c8e1..22a9c79 100644 --- a/moderncvheadii.sty +++ b/moderncvheadii.sty @@ -141,9 +141,6 @@ \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}}}% \ifthenelse{\isundefined{\@homepage}}{}{\addtomakeheaddetails{\homepagesymbol% \ifthenelse{\equal{\@homepageprotocol}{http}}{\httplink{\@homepage}}{\httpslink{\@homepage}}}}% \collectionloop{socials}{% the key holds the social type (=symbol command prefix), the item holds the link diff --git a/moderncvheadiii.sty b/moderncvheadiii.sty index 6919dee..c36e158 100644 --- a/moderncvheadiii.sty +++ b/moderncvheadiii.sty @@ -94,13 +94,10 @@ \ifthenelse{\equal{\@addresscountry}{}}{}{\addtomakeheaddetails[~--~]{\@addresscountry}}% \flushmakeheaddetails\@firstmakeheaddetailselementtrue\\}% \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}}}% \ifthenelse{\isundefined{\@homepage}}{}{\addtomakeheaddetails{\homepagesymbol% \ifthenelse{\equal{\@homepageprotocol}{http}}{\httplink{\@homepage}}{\httpslink{\@homepage}}}}% \collectionloop{socials}{% the key holds the social type (=symbol command prefix), the item holds the link - \addtomakeheaddetails{\csname\collectionloopkey socialsymbol\endcsname\collectionloopitem}}% + \addtomakeheaddetails{\collectionloopitem}}% \ifthenelse{\isundefined{\@extrainfo}}{}{\addtomakeheaddetails{\@extrainfo}}% \flushmakeheaddetails}\fi}}% need to force a \par after this to avoid weird spacing bug at the first section if no blank line is left after \makehead @@ -154,13 +151,10 @@ \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}}% - \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}}% \ifthenelse{\isundefined{\@homepage}}{}{\makenewline\homepagesymbol% \ifthenelse{\equal{\@homepageprotocol}{http}}{\httplink{\@homepage}}{\httpslink{\@homepage}}}% \collectionloop{socials}{% the key holds the social type (=symbol command prefix), the item holds the link - \makenewline\csname\collectionloopkey socialsymbol\endcsname\collectionloopitem}% + \makenewline\collectionloopitem}% \ifthenelse{\isundefined{\@extrainfo}}{}{\makenewline\@extrainfo}}\fi% \end{minipage}\\[2em] % recipient block diff --git a/moderncvheadiv.sty b/moderncvheadiv.sty index 0c9970a..ece2ec7 100644 --- a/moderncvheadiv.sty +++ b/moderncvheadiv.sty @@ -110,13 +110,10 @@ \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}}% \ifthenelse{\isundefined{\@homepage}}{}{\makenewline\hbox to 1.0em{\homepagesymbol}~% \ifthenelse{\equal{\@homepageprotocol}{http}}{\httplink{\@homepage}}{\httpslink{\@homepage}}}% \collectionloop{socials}{% the key holds the social type (=symbol command prefix), the item holds the link - \makenewline\hbox to 1.0em{\csname\collectionloopkey socialsymbol\endcsname}~\collectionloopitem}% + \makenewline\collectionloopitem}% \ifthenelse{\isundefined{\@extrainfo}}{}{\makenewline\@extrainfo}}\fi} @@ -159,13 +156,10 @@ \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}}% - \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}}% \ifthenelse{\isundefined{\@homepage}}{}{\makenewline\hbox to 1.0em{\homepagesymbol}~% \ifthenelse{\equal{\@homepageprotocol}{http}}{\httplink{\@homepage}}{\httpslink{\@homepage}}}% \collectionloop{socials}{% the key holds the social type (=symbol command prefix), the item holds the link - \makenewline\hbox to 1.0em{\csname\collectionloopkey socialsymbol\endcsname}~\collectionloopitem}% + \makenewline\collectionloopitem}% \ifthenelse{\isundefined{\@extrainfo}}{}{\makenewline\@extrainfo}}}% % ensure no extra spacing after \makelettertitle due to a possible blank line %\ignorespacesafterend% not working diff --git a/moderncvheadv.sty b/moderncvheadv.sty index 2431ab3..55d18b1 100644 --- a/moderncvheadv.sty +++ b/moderncvheadv.sty @@ -82,13 +82,10 @@ \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}}% \ifthenelse{\isundefined{\@homepage}}{}{\makenewline\homepagesymbol~% \ifthenelse{\equal{\@homepageprotocol}{http}}{\httplink{\@homepage}}{\httpslink{\@homepage}}}% \collectionloop{socials}{% the key holds the social type (=symbol command prefix), the item holds the link - \makenewline\csname\collectionloopkey socialsymbol\endcsname~\collectionloopitem}% + \makenewline\collectionloopitem}% \ifthenelse{\isundefined{\@extrainfo}}{}{\makenewline\@extrainfo}\fi}% {% % name and optional title @@ -155,13 +152,10 @@ \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}}% - \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}}% \ifthenelse{\isundefined{\@homepage}}{}{\makenewline\homepagesymbol% \ifthenelse{\equal{\@homepageprotocol}{http}}{\httplink{\@homepage}}{\httpslink{\@homepage}}}% \collectionloop{socials}{% the key holds the social type (=symbol command prefix), the item holds the link - \makenewline\csname\collectionloopkey socialsymbol\endcsname\collectionloopitem}% + \makenewline\collectionloopitem}% \ifthenelse{\isundefined{\@extrainfo}}{}{\makenewline\@extrainfo}}\fi% \end{minipage}\\[2em] % recipient block diff --git a/moderncvheadvi.sty b/moderncvheadvi.sty index 405fdf2..f8c0fb7 100644 --- a/moderncvheadvi.sty +++ b/moderncvheadvi.sty @@ -115,13 +115,10 @@ \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}}}% \ifthenelse{\isundefined{\@homepage}}{}{\addtomakeheaddetails{\homepagesymbol% \ifthenelse{\equal{\@homepageprotocol}{http}}{\httplink{\@homepage}}{\httpslink{\@homepage}}}}% \collectionloop{socials}{% the key holds the social type (=symbol command prefix), the item holds the link - \addtomakeheaddetails{\csname\collectionloopkey socialsymbol\endcsname\collectionloopitem}}% + \addtomakeheaddetails{\collectionloopitem}}% \ifthenelse{\isundefined{\@extrainfo}}{}{\addtomakeheaddetails{\@extrainfo}}% \flushmakeheaddetails}\fi% need to force a \par after this to avoid weird spacing bug at the first section if no blank line is left after \makehead; not forcing it here because of the possible quote % optional quote diff --git a/moderncvheadvii.sty b/moderncvheadvii.sty index 6e6f1a1..7ae84e6 100644 --- a/moderncvheadvii.sty +++ b/moderncvheadvii.sty @@ -79,12 +79,9 @@ % optional detailed information (pre-rendering) \@initializebox{\makecvheaddetailsbox}% \if@details% - \def\phonesdetails{}% - \collectionloop{phones}{% the key holds the phone type (=symbol command prefix), the item holds the number - \protected@edef\phonesdetails{\phonesdetails\protect\makenewline\csname\collectionloopkey phonesymbol\endcsname\collectionloopitem}}% \def\socialsdetails{}% \collectionloop{socials}{% the key holds the social type (=symbol command prefix), the item holds the link - \protected@edef\socialsdetails{\socialsdetails\protect\makenewline\csname\collectionloopkey socialsymbol\endcsname\collectionloopitem}}% + \protected@edef\socialsdetails{\socialsdetails\protect\makenewline\collectionloopitem}}% \savebox{\makecvheaddetailsbox}{% \addressfont\color{headtext}% \if@left\begin{tabular}[b]{@{}r@{}}\fi% @@ -93,8 +90,6 @@ \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}}% \socialsdetails% needs to be pre-rendered as loops and tabulars seem to conflict \ifthenelse{\isundefined{\@extrainfo}}{}{\makenewline\@extrainfo}% @@ -187,9 +182,6 @@ \@initializebox{\makeletterdetailsbox}% \if@details% - \def\phonesdetails{}% - \collectionloop{phones}{% the key holds the phone type (=symbol command prefix), the item holds the number - \protected@edef\phonesdetails{\phonesdetails\protect\makenewline\csname\collectionloopkey phonesymbol\endcsname\collectionloopitem}}% \savebox{\makeletterdetailsbox}{% \addressfont\color{headtext}% \if@left\begin{tabular}[b]{@{}r@{}}\fi% @@ -197,8 +189,6 @@ \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}}% - \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}}% \ifthenelse{\isundefined{\@extrainfo}}{}{\makenewline\@extrainfo}% \end{tabular}% diff --git a/moderncviconsacademic.sty b/moderncviconsacademic.sty index 9e06107..1a333b8 100644 --- a/moderncviconsacademic.sty +++ b/moderncviconsacademic.sty @@ -38,10 +38,10 @@ %\newcommand*{\listitemsymbol} {\labelitemi~} %\newcommand*{\addresssymbol} {} %\newcommand*{\bornsymbol} {} -%\newcommand*{\mobilephonesymbol} {} -%\newcommand*{\fixedphonesymbol} {} -%\newcommand*{\faxphonesymbol} {} -%\newcommand*{\emailsymbol} {} +%\newcommand*{\mobilephonesocialsymbol} {} +%\newcommand*{\fixedphonesocialsymbol} {} +%\newcommand*{\faxphonesocialsymbol} {} +%\newcommand*{\emailsocialsymbol} {} %\newcommand*{\homepagesymbol} {} %\newcommand*{\linkedinsocialsymbol} {} %\newcommand*{\xingsocialsymbol} {} @@ -51,16 +51,16 @@ %\newcommand*{\stackoverflowsocialsymbol}{} %\newcommand*{\bitbucketsocialsymbol} {} %\newcommand*{\skypesocialsymbol} {} -\renewcommand*{\orcidsocialsymbol} {{\color{orcid}\small\aiOrcid}~} -\renewcommand*{\researchgatesocialsymbol} {{\color{researchgate}\small\aiResearchGateSquare}~} % alternative: \aiResearchGate -\renewcommand*{\researcheridsocialsymbol} {{\color{researcherid}\small\aiResearcherIDSquare}~} % alternative: \aiResearcherID -\renewcommand*{\googlescholarsocialsymbol}{{\color{googlescholar}\raisebox{-1pt}{\large\aiGoogleScholar}}~} +\renewcommand*{\orcidsocialsymbol} {{\color{orcid}\small\aiOrcid}} +\renewcommand*{\researchgatesocialsymbol} {{\color{researchgate}\small\aiResearchGateSquare}} % alternative: \aiResearchGate +\renewcommand*{\researcheridsocialsymbol} {{\color{researcherid}\small\aiResearcherIDSquare}} % alternative: \aiResearcherID +\renewcommand*{\googlescholarsocialsymbol}{{\color{googlescholar}\raisebox{-1pt}{\large\aiGoogleScholar}}} %\newcommand*{\telegramsocialsymbol} {} %\newcommand*{\whatsappsocialsymbol} {} %\newcommand*{\matrixsocialsymbol} {} %\newcommand*{\signalsocialsymbol} {} -\renewcommand*{\arxivsocialsymbol}{{\color{arxiv}{\small\aiarXiv}}~} -\renewcommand*{\inspiresocialsymbol}{{\color{inspire}{\small\aiInspire}}~} +\renewcommand*{\arxivsocialsymbol}{{\color{arxiv}{\small\aiarXiv}}} +\renewcommand*{\inspiresocialsymbol}{{\color{inspire}{\small\aiInspire}}} \endinput diff --git a/moderncviconsawesome.sty b/moderncviconsawesome.sty index 601ba32..3e3d4d1 100644 --- a/moderncviconsawesome.sty +++ b/moderncviconsawesome.sty @@ -66,41 +66,41 @@ %\renewcommand*{\addresssymbol} {} -\renewcommand*{\mobilephonesymbol} {{\color{mobilephone}\small\faMobile*}~} % alternative: \faMobile (solid style) -\renewcommand*{\fixedphonesymbol} {{\color{fixedphone}\small\faPhone*}~} % alternative: \faPhone (reversed) -\renewcommand*{\faxphonesymbol} {{\color{faxphone}\small\faFax}~} % alternative: \faPrint -\renewcommand*{\emailsymbol} {{\color{email}\small\faEnvelope[regular]}~} % alternative: \faInbox, \faEnvelope (solid style) -\renewcommand*{\homepagesymbol} {{\color{homepage}\small\faGlobeAmericas}~} % alternative: \faHome, \faGlobe, \faGlobeEurope, \faGlobeAfrica, \faGlobeAsia -\renewcommand*{\linkedinsocialsymbol} {{\color{linkedin}\small\faLinkedinIn}~} % alternative: \faLinkedin -\renewcommand*{\xingsocialsymbol} {{\color{xing}\small\faXing}~} % alternative: \faXingSquare -\renewcommand*{\twittersocialsymbol} {{\color{twitter}\small\faTwitter}~} % alternative: \faTwitterSquare -\renewcommand*{\mastodonsocialsymbol} {{\color{mastodon}\small\faMastodon}~} -\renewcommand*{\githubsocialsymbol} {{\color{github}\small\faGithub}~} % alternative: \faGithubSquare, \faGithub* -\renewcommand*{\gitlabsocialsymbol} {{\color{gitlab}\small\faGitlab}~} -\renewcommand*{\stackoverflowsocialsymbol}{{\color{stackoverflow}\small\faStackOverflow}~} -\renewcommand*{\bitbucketsocialsymbol} {{\color{bitbucket}\small\faBitbucket}~} -\renewcommand*{\skypesocialsymbol} {{\color{skype}\small\faSkype}~} -\renewcommand*{\orcidsocialsymbol} {{\color{orcid}\small\faOrcid}~} -\renewcommand*{\researchgatesocialsymbol} {{\color{researchgate}\small\faResearchgate}~} +\renewcommand*{\mobilephonesocialsymbol} {{\color{mobilephone}\small\faMobile*}} % alternative: \faMobile (solid style) +\renewcommand*{\fixedphonesocialsymbol} {{\color{fixedphone}\small\faPhone*}} % alternative: \faPhone (reversed) +\renewcommand*{\faxphonesocialsymbol} {{\color{faxphone}\small\faFax}} % alternative: \faPrint +\renewcommand*{\emailsocialsymbol} {{\color{email}\small\faEnvelope[regular]}} % alternative: \faInbox, \faEnvelope (solid style) +\renewcommand*{\homepagesymbol} {{\color{homepage}\small\faGlobeAmericas}} % alternative: \faHome, \faGlobe, \faGlobeEurope, \faGlobeAfrica, \faGlobeAsia +\renewcommand*{\linkedinsocialsymbol} {{\color{linkedin}\small\faLinkedinIn}} % alternative: \faLinkedin +\renewcommand*{\xingsocialsymbol} {{\color{xing}\small\faXing}} % alternative: \faXingSquare +\renewcommand*{\twittersocialsymbol} {{\color{twitter}\small\faTwitter}} % alternative: \faTwitterSquare +\renewcommand*{\mastodonsocialsymbol} {{\color{mastodon}\small\faMastodon}} +\renewcommand*{\githubsocialsymbol} {{\color{github}\small\faGithub}} % alternative: \faGithubSquare, \faGithub* +\renewcommand*{\gitlabsocialsymbol} {{\color{gitlab}\small\faGitlab}} +\renewcommand*{\stackoverflowsocialsymbol}{{\color{stackoverflow}\small\faStackOverflow}} +\renewcommand*{\bitbucketsocialsymbol} {{\color{bitbucket}\small\faBitbucket}} +\renewcommand*{\skypesocialsymbol} {{\color{skype}\small\faSkype}} +\renewcommand*{\orcidsocialsymbol} {{\color{orcid}\small\faOrcid}} +\renewcommand*{\researchgatesocialsymbol} {{\color{researchgate}\small\faResearchgate}} %\renewcommand*{\researcheridsocialsymbol} {} %\renewcommand*{\googlescholarsocialsymbol}{} -\renewcommand*{\telegramsocialsymbol} {{\color{telegram}\small\faTelegram}~} -\renewcommand*{\whatsappsocialsymbol} {{\color{whatsapp}\small\faWhatsapp}~} -\renewcommand*{\discordsocialsymbol} {{\color{discord}\small\faDiscord}~} -\renewcommand*{\twitchsocialsymbol} {{\color{twitch}\small\faTwitch}~} -\renewcommand*{\youtubesocialsymbol} {{\color{youtube}\small\faYoutube}~} -\renewcommand*{\tiktoksocialsymbol} {{\color{tiktok}\small\faTiktok}~} -\renewcommand*{\instagramsocialsymbol} {{\color{instagram}\small\faInstagram}~} -\renewcommand*{\soundcloudsocialsymbol} {{\color{soundcloud}\small\faSoundcloud}~} -\renewcommand*{\steamsocialsymbol} {{\color{steam}\small\faSteam}~} -\renewcommand*{\xboxsocialsymbol} {{\color{xbox}\small\faXbox}~} -\renewcommand*{\playstationsocialsymbol} {{\color{playstation}\small\faPlaystation}~} -\renewcommand*{\battlenetsocialsymbol} {{\color{battlenet}\small\faBattleNet}~} +\renewcommand*{\telegramsocialsymbol} {{\color{telegram}\small\faTelegram}} +\renewcommand*{\whatsappsocialsymbol} {{\color{whatsapp}\small\faWhatsapp}} +\renewcommand*{\discordsocialsymbol} {{\color{discord}\small\faDiscord}} +\renewcommand*{\twitchsocialsymbol} {{\color{twitch}\small\faTwitch}} +\renewcommand*{\youtubesocialsymbol} {{\color{youtube}\small\faYoutube}} +\renewcommand*{\tiktoksocialsymbol} {{\color{tiktok}\small\faTiktok}} +\renewcommand*{\instagramsocialsymbol} {{\color{instagram}\small\faInstagram}} +\renewcommand*{\soundcloudsocialsymbol} {{\color{soundcloud}\small\faSoundcloud}} +\renewcommand*{\steamsocialsymbol} {{\color{steam}\small\faSteam}} +\renewcommand*{\xboxsocialsymbol} {{\color{xbox}\small\faXbox}} +\renewcommand*{\playstationsocialsymbol} {{\color{playstation}\small\faPlaystation}} +\renewcommand*{\battlenetsocialsymbol} {{\color{battlenet}\small\faBattleNet}} %\renewcommand*{\signalsocialsymbol} {} %\renewcommand*{\matrixsocialsymbol} {} -% \renewcommand*{\arxivsocialsymbol} {{\color{arxiv}{\small\faarXiv}}~} -% \renewcommand*{\inspiresocialsymbol} {{\color{inspire}{\small\faInspire}}~} -\renewcommand*{\bornsymbol} {{\color{born}\small\faAsterisk}~} % alternative: \faBabyCarriage +% \renewcommand*{\arxivsocialsymbol} {{\color{arxiv}{\small\faarXiv}}} +% \renewcommand*{\inspiresocialsymbol} {{\color{inspire}{\small\faInspire}}} +\renewcommand*{\bornsymbol} {{\color{born}\small\faAsterisk}} % alternative: \faBabyCarriage \endinput diff --git a/moderncviconsletters.sty b/moderncviconsletters.sty index 85ae5ae..89c7708 100644 --- a/moderncviconsletters.sty +++ b/moderncviconsletters.sty @@ -23,43 +23,43 @@ %\renewcommand*{\labelitemiv} {\labelitemiii} % no change from default in moderncv.cls \renewcommand*{\addresssymbol} {} -\renewcommand*{\mobilephonesymbol} {\textbf{M}~} -\renewcommand*{\fixedphonesymbol} {\textbf{T}~} -\renewcommand*{\faxphonesymbol} {\textbf{F}~} -\renewcommand*{\emailsymbol} {\textbf{E}~} -\renewcommand*{\homepagesymbol} {\textbf{W}~} -\renewcommand*{\linkedinsocialsymbol} {\textbf{in}~} -\renewcommand*{\xingsocialsymbol} {\textbf{xi}~} -\renewcommand*{\twittersocialsymbol} {\textbf{tw}~} -\renewcommand*{\mastodonsocialsymbol} {\textbf{ms}~} -\renewcommand*{\githubsocialsymbol} {\textbf{gh}~} -\renewcommand*{\gitlabsocialsymbol} {\textbf{gl}~} -\renewcommand*{\stackoverflowsocialsymbol}{\textbf{so}~} -\renewcommand*{\bitbucketsocialsymbol} {\textbf{bb}~} -\renewcommand*{\skypesocialsymbol} {\textbf{sk}~} -\renewcommand*{\orcidsocialsymbol} {\textbf{orcid}~} -\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*{\bornsymbol} {\textbf{B}~} -\renewcommand*{\codebergsocialsymbol} {\textbf{cb}~} -\renewcommand*{\twitchsocialsymbol} {\textbf{ttv}~} -\renewcommand*{\youtubesocialsymbol} {\textbf{yt}~} -\renewcommand*{\tiktoksocialsymbol} {\textbf{tok}~} -\renewcommand*{\instagramsocialsymbol} {\textbf{insta}~} -\renewcommand*{\soundcloudsocialsymbol} {\textbf{sc}~} -\renewcommand*{\steamsocialsymbol} {\textbf{st}~} -\renewcommand*{\xboxsocialsymbol} {\textbf{xb}~} -\renewcommand*{\playstationsocialsymbol} {\textbf{psn}~} -\renewcommand*{\battlenetsocialsymbol} {\textbf{bn}~} -\renewcommand*{\arxivsocialsymbol} {\textbf{arx}~} -\renewcommand*{\inspiresocialsymbol} {\textbf{ins}~} -\renewcommand*{\simplexsocialsymbol} {\textbf{splx}~} -\renewcommand*{\simplexsocialsymbol} {\textbf{thr}~} +\renewcommand*{\mobilephonesocialsymbol} {\textbf{M}} +\renewcommand*{\fixedphonesocialsymbol} {\textbf{T}} +\renewcommand*{\faxphonesocialsymbol} {\textbf{F}} +\renewcommand*{\emailsocialsymbol} {\textbf{E}} +\renewcommand*{\homepagesymbol} {\textbf{W}} +\renewcommand*{\linkedinsocialsymbol} {\textbf{in}} +\renewcommand*{\xingsocialsymbol} {\textbf{xi}} +\renewcommand*{\twittersocialsymbol} {\textbf{tw}} +\renewcommand*{\mastodonsocialsymbol} {\textbf{ms}} +\renewcommand*{\githubsocialsymbol} {\textbf{gh}} +\renewcommand*{\gitlabsocialsymbol} {\textbf{gl}} +\renewcommand*{\stackoverflowsocialsymbol}{\textbf{so}} +\renewcommand*{\bitbucketsocialsymbol} {\textbf{bb}} +\renewcommand*{\skypesocialsymbol} {\textbf{sk}} +\renewcommand*{\orcidsocialsymbol} {\textbf{orcid}} +\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*{\bornsymbol} {\textbf{B}} +\renewcommand*{\codebergsocialsymbol} {\textbf{cb}} +\renewcommand*{\twitchsocialsymbol} {\textbf{ttv}} +\renewcommand*{\youtubesocialsymbol} {\textbf{yt}} +\renewcommand*{\tiktoksocialsymbol} {\textbf{tok}} +\renewcommand*{\instagramsocialsymbol} {\textbf{insta}} +\renewcommand*{\soundcloudsocialsymbol} {\textbf{sc}} +\renewcommand*{\steamsocialsymbol} {\textbf{st}} +\renewcommand*{\xboxsocialsymbol} {\textbf{xb}} +\renewcommand*{\playstationsocialsymbol} {\textbf{psn}} +\renewcommand*{\battlenetsocialsymbol} {\textbf{bn}} +\renewcommand*{\arxivsocialsymbol} {\textbf{arx}} +\renewcommand*{\inspiresocialsymbol} {\textbf{ins}} +\renewcommand*{\simplexsocialsymbol} {\textbf{splx}} +\renewcommand*{\simplexsocialsymbol} {\textbf{thr}} \renewcommand*{\listitemsymbol} {\labelitemi~} diff --git a/moderncviconsmarvosym.sty b/moderncviconsmarvosym.sty index 2dbc710..b9c834b 100644 --- a/moderncviconsmarvosym.sty +++ b/moderncviconsmarvosym.sty @@ -19,11 +19,11 @@ \renewcommand*{\labelitemi} {\strut\textcolor{color1}{\marvosymbol{123}}} % equivalent to \Neutral from marvosym package; alternative: \fontencoding{U}\fontfamily{ding}\selectfont\tiny\symbol{'102} -\renewcommand*{\mobilephonesymbol} {\marvosymbol{72}~} -\renewcommand*{\fixedphonesymbol} {\marvosymbol{84}~} -\renewcommand*{\faxphonesymbol} {\marvosymbol{117}~} -\renewcommand*{\emailsymbol} {\marvosymbol{66}~} -\renewcommand*{\homepagesymbol} {{\Large\marvosymbol{205}}~} +\renewcommand*{\mobilephonesocialsymbol}{\marvosymbol{72}} +\renewcommand*{\fixedphonesocialsymbol}{\marvosymbol{84}} +\renewcommand*{\faxphonesocialsymbol}{\marvosymbol{117}} +\renewcommand*{\emailsocialsymbol} {\marvosymbol{66}} +\renewcommand*{\homepagesymbol} {{\Large\marvosymbol{205}}} \endinput diff --git a/moderncviconstikz.sty b/moderncviconstikz.sty index f3f09ad..c4da6d5 100644 --- a/moderncviconstikz.sty +++ b/moderncviconstikz.sty @@ -338,7 +338,7 @@ (23.7698,30.6792) and (25.7191,30.6094) .. (26.0391,30.6094) -- cycle; \protect\end{scope} \protect\end{tikzpicture}} -~} +} }{}\par \ifdefempty{\matrixsocialsymbol} { @@ -385,7 +385,7 @@ (29.2278,31.2454) and (29.6629,31.2462) .. (30.0980,31.2470) -- cycle; \protect\end{scope} \protect\end{tikzpicture}} - ~} + } }{}\par \ifdefempty{\signalsocialsymbol} { @@ -455,7 +455,7 @@ (629.8000,234.8000) .. (512.0000,234.9000) -- cycle; \protect\end{scope} \protect\end{tikzpicture}} - ~} + } }{}\par \ifdefempty{\codebergsocialsymbol} { @@ -475,7 +475,7 @@ -- cycle; \protect\end{scope} \protect\end{tikzpicture}} - ~} + } }{}\par \ifdefempty{\simplexsocialsymbol} { @@ -494,7 +494,7 @@ (100,0) rectangle +(60,20); \protect\end{scope} \protect\end{tikzpicture}} - ~} + } }{}\par \ifdefempty{\threemasocialsymbol} { @@ -522,7 +522,7 @@ (390,553) circle (68); \protect\end{scope} \protect\end{tikzpicture}} - ~} + } }{}\par \endinput diff --git a/template.tex b/template.tex index a99c6b6..886c530 100644 --- a/template.tex +++ b/template.tex @@ -57,57 +57,46 @@ \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} -\phone[fax]{+3~(456)~789~012} -\email{john@doe.org} % optional, remove / comment the line if not wanted \homepage{www.johndoe.com} % optional, remove / comment the line if not wanted -% 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[github]{jdoe} % optional, remove / comment the line if not wanted -\social[gitlab]{jdoe} % optional, remove / comment the line if not wanted -\social[codeberg]{jdoe} % optional, remove / comment the line if not wanted -\social[bitbucket]{jdoe} % optional, remove / comment the line if not wanted -\social[stackoverflow]{0000000/johndoe} % optional, remove / comment the line if not wanted - -\social[skype]{jdoe} % optional, remove / comment the line if not wanted -\social[orcid]{0000-0000-000-000} % optional, remove / comment the line if not wanted -\social[researchgate]{jdoe} % optional, remove / comment the line if not wanted -\social[researcherid]{jdoe} % optional, remove / comment the line if not wanted -\social[googlescholar]{googlescholarid} % optional, remove / comment the line if not wanted - -\social[twitter]{ji\_doe} % optional, remove / comment the line if not wanted -\social[mastodon]{mastodon.social/web/@user} % optional, remove / comment the line if not wanted -\social[telegram]{jdoe} % optional, remove / comment the line if not wanted -\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[discord]{jdoe\#0000} % optional, remove / comment the line if not wanted - +% All uses of \social command are optional +\social[mobilephone]{+1~(234)~567~890} +\social[fixedphone]{+2~(345)~678~901} +\social[faxphone]{+3~(456)~789~012} +\social[email]{john@doe.org} +\social[linkedin]{john.doe} +\social[xing]{john\_doe} +\social[bitbucket,codeberg,github,gitlab]{jdoe} % Soclial netowrks with the same username can be stacked. Icons are links and text is part of the last one +\social[stackoverflow]{0000000/johndoe} +\social[skype]{jdoe} +\social[orcid]{0000-0000-000-000} +\social[researchgate]{jdoe} +\social[researcherid]{jdoe} +\social[googlescholar]{googlescholarid} +\social[twitter]{ji\_doe} +\social[mastodon]{mastodon.social/web/@user} +\social[telegram]{jdoe} +\social[whatsapp]{12345678901} +\social[signal]{12345678901} +\social[matrix]{@johndoe:matrix.org} +\social[discord]{jdoe\#0000} +\social[twitch]{jdoe} +\social[tiktok]{jdoe} +\social[instagram]{jdoe} +\social[soundcloud]{jdoe} +\social[steam]{jdoe} +\social[xbox]{jdoe} +\social[playstation]{jdoe} +\social[battlenet]{jdoe\#0000} +\social[arxiv]{doe\_j\_1} +\social[inspire]{0000000} +\social[simplex]{0000000} +\social[threema]{0000000} % YouTube links can take several forms, depending on how your account and channel are set up. % See https://support.google.com/youtube/answer/6180214 for more information. -\social[youtube]{c/jdoeschannel} % optional, remove / comment the line if not wanted; Custom URL - can be shorted by removing 'c/' -\social[youtube]{channel/XXXXXX} % optional, remove / comment the line if not wanted; Channel URL (ID-based) - can not be shortened -\social[youtube]{user/jdoe} % optional, remove / comment the line if not wanted; Legacy username URL - if jdoe is not already claimed by a Custom URL, can be shortened by removing 'user/' - -\social[twitch]{jdoe} % optional, remove / comment the line if not wanted -\social[tiktok]{jdoe} % optional, remove / comment the line if not wanted -\social[instagram]{jdoe} % optional, remove / comment the line if not wanted - -\social[soundcloud]{jdoe} % optional, remove / comment the line if not wanted - -\social[steam]{jdoe} % optional, remove / comment the line if not wanted -\social[xbox]{jdoe} % optional, remove / comment the line if not wanted -\social[playstation]{jdoe} % optional, remove / comment the line if not wanted -\social[battlenet]{jdoe\#0000} % optional, remove / comment the line if not wanted -\social[arxiv]{doe\_j\_1} % optional, remove / comment the line if not wanted -\social[inspire]{0000000} % optional, remove / comment the line if not wanted -\social[simplex]{0000000} % optional, remove / comment the line if not wanted -\social[threema]{0000000} % optional, remove / comment the line if not wanted - +\social[youtube]{c/jdoeschannel} %Custom URL - can be shorted by removing 'c/' +\social[youtube]{channel/XXXXXX} %Channel URL (ID-based) - can not be shortened +\social[youtube]{user/jdoe} %Legacy username URL - if jdoe is not already claimed by a Custom URL, can be shortened by removing 'user/' \extrainfo{additional information} % optional, remove / comment the line if not wanted \photo[64pt][2pt]{picture} % optional, remove / comment the line if not wanted; '64pt' is the height the picture must be resized to, 2pt is the thickness of the frame around it (put it to 0pt for no frame) and 'picture' is the name of the picture file