mirror of
https://github.com/moderncv/moderncv.git
synced 2026-02-06 10:05:19 +01:00
Merge branch 'master' into adjustable_colors
This commit is contained in:
commit
e164b26574
47 changed files with 1072 additions and 495 deletions
108
moderncv.cls
108
moderncv.cls
|
|
@ -1,5 +1,5 @@
|
|||
%% start of file `moderncv.cls'.
|
||||
%% Copyright 2006-2015 Xavier Danaux (xdanaux@gmail.com), 2020-2021 moderncv maintainers (github.com/moderncv).
|
||||
%% Copyright 2006-2015 Xavier Danaux (xdanaux@gmail.com), 2020-2022 moderncv maintainers (github.com/moderncv).
|
||||
%
|
||||
% This work may be distributed and/or modified under the
|
||||
% conditions of the LaTeX Project Public License version 1.3c,
|
||||
|
|
@ -10,7 +10,7 @@
|
|||
% identification
|
||||
%-------------------------------------------------------------------------------
|
||||
\NeedsTeXFormat{LaTeX2e}
|
||||
\ProvidesClass{moderncv}[2021/01/21 v2.1.0 modern curriculum vitae and letter document class]
|
||||
\ProvidesClass{moderncv}[2022-02-21 v2.3.1 modern curriculum vitae and letter document class]
|
||||
|
||||
|
||||
%-------------------------------------------------------------------------------
|
||||
|
|
@ -83,8 +83,8 @@
|
|||
% color
|
||||
\RequirePackage[table]{xcolor}
|
||||
|
||||
% font loading
|
||||
\RequirePackage{ifxetex,ifluatex}
|
||||
% tex compiler checking for symbol loading
|
||||
\RequirePackage{iftex}
|
||||
\newif\ifxetexorluatex
|
||||
\ifxetex
|
||||
\xetexorluatextrue
|
||||
|
|
@ -96,43 +96,17 @@
|
|||
\fi
|
||||
\fi
|
||||
|
||||
% do not use inputenc and do not automatically load lmodern to avoid problems with German
|
||||
% charactes, see
|
||||
% https://tex.stackexchange.com/questions/496630/lualatex-problems-with-german-characters
|
||||
\ifxetexorluatex
|
||||
% \RequirePackage{fontspec}
|
||||
% \defaultfontfeatures{Ligatures=TeX}
|
||||
% \RequirePackage{unicode-math}
|
||||
% \setmainfont{Latin Modern}
|
||||
% \setsansfont{Latin Modern Sans}
|
||||
% \setmathfont{Latin Modern Math}
|
||||
% \ifluatex
|
||||
% \usepackage{luatextra}
|
||||
% \usepackage{lualatex-math} %loads fontspec
|
||||
% \usepackage{shellesc} % fix a bug for lualatex shellescape
|
||||
% \fi
|
||||
\else
|
||||
\RequirePackage[utf8]{inputenc}
|
||||
% \RequirePackage[utf8]{inputenx}
|
||||
% %additions for utf8
|
||||
% \input{ix-utf8enc.dfu}
|
||||
\RequirePackage[T1]{fontenc}
|
||||
% loading lmodern can cause issues with certain special characters. avoid.
|
||||
% \IfFileExists{lmodern.sty}%
|
||||
% {\RequirePackage{lmodern}}%
|
||||
% {}
|
||||
% \fi
|
||||
\fi
|
||||
|
||||
% hyper links (hyperref is loaded at the end of the preamble to pass options required by loaded packages such as CJK)
|
||||
\newcommand*\pdfpagemode{UseNone}% do not show thumbnails or bookmarks on opening (on supporting browsers); set \pdfpagemode to "UseOutlines" to show bookmarks
|
||||
\RequirePackage{url}
|
||||
\urlstyle{tt}
|
||||
\AtEndPreamble{
|
||||
\pagenumbering{arabic}% has to be issued before loading hyperref, as to set \thepage and hence to avoid hyperref issuing a warning and setting pdfpagelabels=false
|
||||
\RequirePackage[unicode]{hyperref}% unicode is required for unicode pdf metadata
|
||||
\PassOptionsToPackage{unicode}{hyperref}
|
||||
\RequirePackage{hyperref}
|
||||
\hypersetup{
|
||||
breaklinks,
|
||||
baseurl = http://,
|
||||
pdfborder = 0 0 0,
|
||||
pdfpagemode = \pdfpagemode,
|
||||
pdfstartpage = 1,
|
||||
|
|
@ -141,7 +115,8 @@
|
|||
bookmarksopen = true,
|
||||
bookmarksdepth= 2,% to show sections and subsections
|
||||
pdfauthor = {\@firstname{}~\@lastname{}},
|
||||
pdftitle = {\@firstname{}~\@lastname{}\notblank{\@title}{ -- \@title}{}},
|
||||
pdftitle =
|
||||
{\@firstname{}~\@lastname{}\expandafter\notblank\expandafter{\@title}{ -- \@title}{}}, %\notblank does not expand argument automatically
|
||||
pdfsubject = {R\'{e}sum\'{e} of \@firstname{}~\@lastname{}},
|
||||
pdfkeywords = {\@firstname{}~\@lastname{}, curriculum vit\ae{}, r\'{e}sum\'{e}}}}
|
||||
|
||||
|
|
@ -278,7 +253,35 @@
|
|||
|
||||
% adds a social link to one's personal information (optional)
|
||||
% usage: \social[<optional type>][<optional url>]{<account name>}
|
||||
% where <optional type> should be either "linkedin", "xing", "twitter", "github", "gitlab", "bitbucket" or "skype"
|
||||
% where <optional type> 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"
|
||||
\collectionnew{socials}
|
||||
\NewDocumentCommand{\social}{O{}O{}m}{%
|
||||
\ifthenelse{\equal{#2}{}}%
|
||||
|
|
@ -286,6 +289,7 @@
|
|||
\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}}} {}%
|
||||
|
|
@ -298,7 +302,18 @@
|
|||
\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}{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}} {}%
|
||||
}
|
||||
{\collectionadd[#1]{socials}{\protect\httpslink[#3]{#2}}}}%
|
||||
|
||||
|
|
@ -339,6 +354,7 @@
|
|||
\newcommand*{\linkedinsocialsymbol} {}
|
||||
\newcommand*{\xingsocialsymbol} {}
|
||||
\newcommand*{\twittersocialsymbol} {}
|
||||
\newcommand*{\mastodonsocialsymbol} {}
|
||||
\newcommand*{\githubsocialsymbol} {}
|
||||
\newcommand*{\gitlabsocialsymbol} {}
|
||||
\newcommand*{\stackoverflowsocialsymbol}{}
|
||||
|
|
@ -352,6 +368,17 @@
|
|||
\newcommand*{\whatsappsocialsymbol} {}
|
||||
\newcommand*{\matrixsocialsymbol} {}
|
||||
\newcommand*{\signalsocialsymbol} {}
|
||||
\newcommand*{\codebergsocialsymbol} {}
|
||||
\newcommand*{\discordsocialsymbol} {}
|
||||
\newcommand*{\twitchsocialsymbol} {}
|
||||
\newcommand*{\youtubesocialsymbol} {}
|
||||
\newcommand*{\tiktoksocialsymbol} {}
|
||||
\newcommand*{\instagramsocialsymbol} {}
|
||||
\newcommand*{\soundcloudsocialsymbol} {}
|
||||
\newcommand*{\steamsocialsymbol} {}
|
||||
\newcommand*{\xboxsocialsymbol} {}
|
||||
\newcommand*{\playstationsocialsymbol} {}
|
||||
\newcommand*{\battlenetsocialsymbol} {}
|
||||
|
||||
% other
|
||||
%------
|
||||
|
|
@ -542,14 +569,14 @@
|
|||
\newcommand*{\link}[2][]{%
|
||||
\ifthenelse{\equal{#1}{}}%
|
||||
{\href{#2}{#2}}%
|
||||
{\href{#2}{\detokenize{#1}}}}
|
||||
{\href{#2}{#1}}}
|
||||
|
||||
% makes a http hyperlink
|
||||
% usage: \httplink[optional text]{link}
|
||||
\newcommand*{\httplink}[2][]{%
|
||||
\ifthenelse{\equal{#1}{}}%
|
||||
{\href{http://#2}{#2}}%
|
||||
{\href{http://#2}{\detokenize{#1}}}}
|
||||
{\href{http://#2}{#1}}}
|
||||
|
||||
|
||||
% makes an https hyperlink
|
||||
|
|
@ -557,14 +584,14 @@
|
|||
\newcommand*{\httpslink}[2][]{%
|
||||
\ifthenelse{\equal{#1}{}}%
|
||||
{\href{https://#2}{#2}}%
|
||||
{\href{https://#2}{\detokenize{#1}}}}
|
||||
{\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}{\detokenize{#1}}}}
|
||||
{\href{mailto:#2}{#1}}}
|
||||
|
||||
% makes a tel hyperlink
|
||||
% usage: \tellink[optional text]{link}
|
||||
|
|
@ -741,6 +768,7 @@
|
|||
% elements
|
||||
\newcommand*{\recipient}[2]{\def\@recipientname{#1}\def\@recipientaddress{#2}}
|
||||
\renewcommand*{\date}[1]{\def\@date{#1}}\date{\today}
|
||||
\newcommand*{\subject}[1]{\def\@subject{#1}}
|
||||
\newcommand*{\opening}[1]{\def\@opening{#1}}
|
||||
\newcommand*{\closing}[1]{\def\@closing{#1}}
|
||||
\newcommand*{\enclosure}[2][]{%
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue