summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/tex/latex/moderncv/moderncv.cls
diff options
context:
space:
mode:
Diffstat (limited to 'Master/texmf-dist/tex/latex/moderncv/moderncv.cls')
-rw-r--r--Master/texmf-dist/tex/latex/moderncv/moderncv.cls149
1 files changed, 86 insertions, 63 deletions
diff --git a/Master/texmf-dist/tex/latex/moderncv/moderncv.cls b/Master/texmf-dist/tex/latex/moderncv/moderncv.cls
index 08b24c9a1ae..476b0ffdba7 100644
--- a/Master/texmf-dist/tex/latex/moderncv/moderncv.cls
+++ b/Master/texmf-dist/tex/latex/moderncv/moderncv.cls
@@ -10,7 +10,7 @@
% identification
%-------------------------------------------------------------------------------
\NeedsTeXFormat{LaTeX2e}
-\ProvidesClass{moderncv}[2013/02/09 v1.3.0 modern curriculum vitae and letter document class]
+\ProvidesClass{moderncv}[2013/04/23 v1.5.0 modern curriculum vitae and letter document class]
%-------------------------------------------------------------------------------
@@ -110,15 +110,6 @@
{}
%\fi
-% MarVoSym font for symbols
-%\RequirePackage{marvosym}
-\newcommand*{\marvosymbol}[1]{}
-%\ifxetexorluatex
-% \renewcommand*{\marvosymbol}[1]{{\fontspec{MarVoSym}\char#1}}
-%\else
- \renewcommand*{\marvosymbol}[1]{{\fontfamily{mvs}\fontencoding{U}\fontseries{m}\fontshape{n}\selectfont\char#1}}
-%\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}
@@ -136,10 +127,10 @@
% pdfproducer = {\LaTeX{}},% will/should be set automatically to the correct TeX engine used
bookmarksopen = true,
bookmarksdepth= 2,% to show sections and subsections
- pdfauthor = {\@firstname{}~\@familyname{}},
- pdftitle = {\@firstname{}~\@familyname{} -- \@title{}},
- pdfsubject = {Resum\'{e} of \@firstname{}~\@familyname{}},
- pdfkeywords = {\@firstname{}~\@familyname{}, curriculum vit\ae{}, resum\'{e}}}}
+ pdfauthor = {\@firstname{}~\@lastname{}},
+ pdftitle = {\@firstname{}~\@lastname{} -- \@title{}},
+ pdfsubject = {Resum\'{e} of \@firstname{}~\@lastname{}},
+ pdfkeywords = {\@firstname{}~\@lastname{}, curriculum vit\ae{}, resum\'{e}}}}
% graphics
\RequirePackage{graphicx}
@@ -161,7 +152,7 @@
\newlength{\pagenumberwidth}%
\settowidth{\pagenumberwidth}{\color{color2}\addressfont\itshape\strut\thepage/\pageref{lastpage}}%
\fancypagestyle{plain}{%
- \fancyfoot[r]{\parbox[b]{\pagenumberwidth}{\color{color2}\addressfont\itshape\strut\thepage/\pageref{lastpage}}}}% the parbox is required to ensure alignment with a possible center footer (e.g., as in the casual style)
+ \fancyfoot[r]{\parbox[b]{\pagenumberwidth}{\color{color2}\pagenumberfont\strut\thepage/\pageref{lastpage}}}}% the parbox is required to ensure alignment with a possible center footer (e.g., as in the casual style)
\pagestyle{plain}}{}}%
\AtEndDocument{\label{lastpage}}\else\fi}}
\pagestyle{plain}
@@ -192,6 +183,9 @@
% micro-typography (e.g., character protrusion, font expansion, hyphenatable letterspacing)
\RequirePackage{microtype}
+% stack of key-value elements, used to save personal information
+\RequirePackage{moderncvcollection}
+
% compatibility package with older versions of moderncv
\RequirePackageWithOptions{moderncvcompatibility}
@@ -225,64 +219,86 @@
% overall design commands definitions
%-------------------------------------------------------------------------------
% elements
-% defines one's first name
-% usage: \firstname{<firstname>}
-\newcommand*{\firstname}[1]{\def\@firstname{#1}}
-% defines one's family name
-% usage: \familyname{<familyname>}
-\newcommand*{\familyname}[1]{\def\@familyname{#1}}
+%---------
+% defines one's name
+% usage: \name{<firstname>}{<lastname>}
+\newcommand*{\name}[2]{\def\@firstname{#1}\def\@lastname{#2}}
+
% defines one's title (optional)
% usage: \title{<title>}
\renewcommand*{\title}[1]{\def\@title{#1}}
+
% defines one's address (optional)
% usage: \address{<street>}{<city>}{<country>}
% where the <city> and <country> arguments can be omitted or provided empty
\NewDocumentCommand{\address}{mG{}G{}}{\def\@addressstreet{#1}\def\@addresscity{#2}\def\@addresscountry{#3}}
-% defines one's mobile phone number (optional)
-% usage: \mobile{<number>}
-\newcommand*{\mobile}[1]{\def\@mobile{#1}}
-% defines one's fixed phone number (optional)
-% usage: \phone{<number>}
-\newcommand*{\phone}[1]{\def\@phone{#1}}
-% defines one's fax number (optional)
-% usage: \fax{<number>}
-\newcommand*{\fax}[1]{\def\@fax{#1}}
-% defines one's email address (optional)
-% usage: \email{<email>}
+
+% defines one's email (optional)
+% usage: \email{<email adress>}
\newcommand*{\email}[1]{\def\@email{#1}}
+
% defines one's home page (optional)
% usage: \homepage{<url>}
\newcommand*{\homepage}[1]{\def\@homepage{#1}}
+
+% adds a fixed/mobile/fax number to one's personal information (optional)
+% usage: \phone[<optional type>]{<number>}
+% where <optional type> should be either "fixed" (default), "mobile" or "fax
+\collectionnew{phones}
+\newcommand*{\phone}[2][fixed]{\collectionadd[#1]{phones}{#2}}
+
+% 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", "twitter" or "github"
+\collectionnew{socials}
+\NewDocumentCommand{\social}{O{}O{}m}{%
+ \ifthenelse{\equal{#2}{}}%
+ {%
+ \ifthenelse{\equal{#1}{linkedin}}{\collectionadd[linkedin]{socials}{\protect\httplink[#3]{www.linkedin.com/in/#3}}}{}%
+ \ifthenelse{\equal{#1}{twitter}} {\collectionadd[twitter]{socials} {\protect\httplink[#3]{www.twitter.com/#3}}} {}%
+ \ifthenelse{\equal{#1}{github}} {\collectionadd[github]{socials} {\protect\httplink[#3]{www.github.com/#3}}} {}%
+ }
+ {\collectionadd[#1]{socials}{\protect\httplink[#3]{#2}}}}
+
% defines additional personal information (optional)
% usage: \extrainfo{<text>}
\newcommand*{\extrainfo}[1]{\def\@extrainfo{#1}}
% colors
+%-------
\definecolor{color0}{rgb}{0,0,0}% main default color, normally left to black
-\definecolor{color1}{rgb}{0,0,0}% primary theme color
-\definecolor{color2}{rgb}{0,0,0}% secondary theme color
-\definecolor{color3}{rgb}{0,0,0}% tertiary theme color
+\definecolor{color1}{rgb}{0,0,0}% primary scheme color
+\definecolor{color2}{rgb}{0,0,0}% secondary scheme color
+\definecolor{color3}{rgb}{0,0,0}% tertiary scheme color
% symbols
-% itemize labels (the struts were added to correct inter-item spacing (works for single line items, until a solution is found for multi-line ones...)
-\newcommand*{\labelitemi}{\strut\textcolor{color1}{\marvosymbol{123}}}% equivalent to \Neutral from marvosym package; alternative: \fontencoding{U}\fontfamily{ding}\selectfont\tiny\symbol{'102}
-\newcommand*{\labelitemii}{\strut\textcolor{color1}{\large\bfseries-}}
-\newcommand*{\labelitemiii}{\strut\textcolor{color1}{\rmfamily\textperiodcentered}}% alternative: \textasteriskcentered; the \rmfamily is required to force Latin Modern fonts when using sans serif, as OMS/lmss/m/n is not defined and gets substituted by OMS/cmsy/m/n
-\newcommand*{\labelitemiv}{\labelitemiii}
-% enumerate labels
-\renewcommand{\theenumi}{\@arabic\c@enumi}
-\renewcommand{\theenumii}{\@alph\c@enumii}
-\renewcommand{\theenumiii}{\@roman\c@enumiii}
-\renewcommand{\theenumiv}{\@Alph\c@enumiv}
-% other symbols
-\newcommand*{\listitemsymbol}{\labelitemi~}
-\newcommand*{\addresssymbol}{}
-\newcommand*{\mobilesymbol}{}
-\newcommand*{\phonesymbol}{}
-\newcommand*{\faxsymbol}{}
-\newcommand*{\emailsymbol}{}
-\newcommand*{\homepagesymbol}{}
-
+%--------
+% itemize labels (the struts were added to correct inter-item spacing (works for single line items, until a solution is found for multi-line ones...)
+\newcommand*{\labelitemi} {\strut\textcolor{color1}{\large\rmfamily\textbullet}}% the \rmfamily is required to force Latin Modern fonts when using sans serif, as OMS/lmss/m/n is not defined and gets substituted by OMS/cmsy/m/n
+\newcommand*{\labelitemii} {\strut\textcolor{color1}{\large\bfseries-}}
+\newcommand*{\labelitemiii} {\strut\textcolor{color1}{\rmfamily\textperiodcentered}}% alternative: \textasteriskcentered; the \rmfamily is required to force Latin Modern fonts when using sans serif, as OMS/lmss/m/n is not defined and gets substituted by OMS/cmsy/m/n
+\newcommand*{\labelitemiv} {\labelitemiii}
+
+% enumerate labels
+\renewcommand{\theenumi} {\@arabic\c@enumi}
+\renewcommand{\theenumii} {\@alph\c@enumii}
+\renewcommand{\theenumiii} {\@roman\c@enumiii}
+\renewcommand{\theenumiv} {\@Alph\c@enumiv}
+
+% other symbols
+\newcommand*{\listitemsymbol} {\labelitemi~}
+\newcommand*{\addresssymbol} {}
+\newcommand*{\mobilephonesymbol} {}
+\newcommand*{\fixedphonesymbol} {}
+\newcommand*{\faxphonesymbol} {}
+\newcommand*{\emailsymbol} {}
+\newcommand*{\homepagesymbol} {}
+\newcommand*{\linkedinsocialsymbol}{}
+\newcommand*{\twittersocialsymbol} {}
+\newcommand*{\githubsocialsymbol} {}
+
+% other
+%------
% fonts
\AtBeginDocument{\normalfont\color{color0}}
@@ -294,14 +310,21 @@
% usage: \makefooter
\newcommand*{\makefooter}{}%
-% loads a style scheme
+% loads a style variant
+% usage: \moderncvstyle{<style variant name>}
\newcommand*{\moderncvstyle}[1]{
\RequirePackage{moderncvstyle#1}}
% loads a color scheme
+% usage: \moderncvcolor{<color scheme name>}
\newcommand*{\moderncvcolor}[1]{
\RequirePackage{moderncvcolor#1}}
+% loads an icons set
+% usage: \moderncvicons{<icon set name>}
+\newcommand*{\moderncvicons}[1]{
+ \RequirePackage{moderncvicons#1}}
+
% recomputes all automatic lengths
\newcommand*{\recomputelengths}{\recomputecvlengths}
\AtBeginDocument{\recomputelengths{}}
@@ -328,6 +351,7 @@
\newcommand*{\sectionfont}{}
\newcommand*{\subsectionfont}{}
\newcommand*{\hintfont}{}
+\newcommand*{\pagenumberfont}{\addressfont\itshape}
% styles
\newcommand*{\namestyle}[1]{{\namefont#1}}
@@ -337,6 +361,7 @@
\newcommand*{\sectionstyle}[1]{{\sectionfont#1}}
\newcommand*{\subsectionstyle}[1]{{\subsectionfont#1}}
\newcommand*{\hintstyle}[1]{{\hintfont#1}}
+\newcommand*{\pagenumberstyle}[1]{{\pagenumberfont#1}}
% recompute all resume lengths
\newcommand*{\recomputecvlengths}{}
@@ -360,15 +385,12 @@
% makes a resume section
% usage: \section{<title>}
-\newcommand*{\section}[1]{}
-% starred variant, which is identical but defined to allow its use (e.g. for natbib compatibility, who uses \section*{} for the bibliography header)
-\RequirePackage{suffix}
-\AtBeginDocument{\WithSuffix\newcommand\section*{\section}}
+% identical starred and non-starred variants should be defined for compatibility with other packages (e.g. with natbib, that uses \section*{} for the bibliography header)
+\NewDocumentCommand{\section}{sm}{}
% makes a resume subsection
% usage: \subsection{title}
-\newcommand*{\subsection}[1]{}
-\AtBeginDocument{\WithSuffix\newcommand\subsection*{\subsection}}
+\NewDocumentCommand{\subsection}{sm}{}
% makes a resume line with a header and a corresponding text
% usage: \cvitem[spacing]{header}{text}
@@ -477,8 +499,9 @@
\cvitem{}{%
\begin{tabular}{\cvcolumns@def}%
\if@cvcolumns@head@empty\else%
- \cvcolumns@head\\[-.8em]%
- {\color{color1}\rule{\maincolumnwidth}{.25pt}}\\\fi%
+ \cvcolumns@head%\\[-.8em]%
+% {\color{color1}\rule{\maincolumnwidth}{.25pt}}%
+ \\\fi%
\cvcolumns@content%
\end{tabular}}}