Release 2.0.0
This commit is contained in:
33
CHANGELOG
33
CHANGELOG
@ -1,12 +1,33 @@
|
||||
version 1.6.0 (xx MMM 2013)
|
||||
version 2.0.0 (28 Jul 2015)
|
||||
- refactored the code into heads, body, foot and icon substyles. All styles
|
||||
(classic, casual, banking and oldstyle) are just a combination of these and
|
||||
some font selection. Mixing substyles (e.g., the banking header with the
|
||||
classic body) is now trivial by using the \moderncvhead, \moderncvbody,
|
||||
\moderncvfoot and \moderncvicons commands. Each of these take a substyle number
|
||||
as argument. \moderncvcolor takes a color name as argument.
|
||||
- added a new style, "fancy".
|
||||
- added an optional argument to \moderncvstyle to specify style options, i.e.
|
||||
\moderncvstyle[options]{style}.
|
||||
- added style options to the banking style, to specify how the section- and
|
||||
subsectionrules should behave: "fullrules", "shortrules", "mixedrules"
|
||||
(default; full rules for sections, short rules for subsections), "centered"
|
||||
(fullrules with centered title) and "norules" (norules, small caps font).
|
||||
\moderncvstyle[options]{style}. Below is a list of the available options per
|
||||
style:
|
||||
* classic
|
||||
> to specify of one's name should appear left or right at the top: "left"
|
||||
(default) or "right;
|
||||
* casual
|
||||
> to specify of one's name should appear left or right at the top: "left"
|
||||
(default) or "right;
|
||||
* banking
|
||||
> to specify how the section- and subsectionrules should be set:
|
||||
"fullrules", "shortrules", "mixedrules" (default; full rules for sections,
|
||||
short rules for subsections), "centered" (fullrules with centered title)
|
||||
and "norules" (norules, small caps font);
|
||||
> to specify how the body should be aligned: left" (default), "center" or
|
||||
"right";
|
||||
* oldstyle & fancy
|
||||
n/a
|
||||
- added a new color variant: "burgundy".
|
||||
- corrected the color of \addressstyle to match the one effectively used
|
||||
(color2).
|
||||
- adjusted the bibliography spacing to handle entries with or without labels.
|
||||
- added a check on the emptyness of \title when setting the hyperref document
|
||||
properties.
|
||||
|
||||
|
||||
@ -1,3 +1,5 @@
|
||||
- When using the "fancy" style, undesired space is added between the bibliography
|
||||
head and the first entry, as well as after the last entry
|
||||
- Moderncv is incompatible with biblatex.
|
||||
- Footnotes generates errors (though the output seem correct when running with
|
||||
"-interaction=nonstopmode")
|
||||
|
||||
1
README
1
README
@ -13,3 +13,4 @@ directory for some examples. Documents can be compiled into dvi, ps or pdf.
|
||||
|
||||
Author: Xavier Danaux <xdanaux@gmail.com>
|
||||
Licence: The LaTeX Project Public License, version 1.3c
|
||||
URL: https://github.com/xdanaux/moderncv
|
||||
|
||||
165
examples/template-multibib.tex
Normal file
165
examples/template-multibib.tex
Normal file
@ -0,0 +1,165 @@
|
||||
%% start of file `template.tex'.
|
||||
%% Copyright 2006-2013 Xavier Danaux (xdanaux@gmail.com).
|
||||
%
|
||||
% This work may be distributed and/or modified under the
|
||||
% conditions of the LaTeX Project Public License version 1.3c,
|
||||
% available at http://www.latex-project.org/lppl/.
|
||||
|
||||
|
||||
\documentclass[11pt,a4paper,sans]{moderncv} % possible options include font size ('10pt', '11pt' and '12pt'), paper size ('a4paper', 'letterpaper', 'a5paper', 'legalpaper', 'executivepaper' and 'landscape') and font family ('sans' and 'roman')
|
||||
|
||||
% moderncv themes
|
||||
\moderncvstyle{casual} % style options are 'casual' (default), 'classic', 'oldstyle' and 'banking'
|
||||
\moderncvcolor{blue} % color options 'blue' (default), 'orange', 'green', 'red', 'purple', 'grey' and 'black'
|
||||
%\renewcommand{\familydefault}{\sfdefault} % to set the default font; use '\sfdefault' for the default sans serif font, '\rmdefault' for the default roman one, or any tex font name
|
||||
%\nopagenumbers{} % uncomment to suppress automatic page numbering for CVs longer than one page
|
||||
|
||||
% character encoding
|
||||
%\usepackage[utf8]{inputenc} % if you are not using xelatex ou lualatex, replace by the encoding you are using
|
||||
%\usepackage{CJKutf8} % if you need to use CJK to typeset your resume in Chinese, Japanese or Korean
|
||||
|
||||
% adjust the page margins
|
||||
\usepackage[scale=0.75]{geometry}
|
||||
%\setlength{\hintscolumnwidth}{3cm} % if you want to change the width of the column with the dates
|
||||
%\setlength{\makecvtitlenamewidth}{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
|
||||
\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[linkedin]{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
|
||||
\extrainfo{additional information} % optional, remove / comment the line if not wanted
|
||||
\photo[64pt][0.4pt]{picture} % optional, remove / comment the line if not wanted; '64pt' is the height the picture must be resized to, 0.4pt is the thickness of the frame around it (put it to 0pt for no frame) and 'picture' is the name of the picture file
|
||||
\quote{Some quote} % optional, remove / comment the line if not wanted
|
||||
|
||||
% to show numerical labels in the bibliography (default is to show no labels); only useful if you make citations in your resume
|
||||
%\makeatletter
|
||||
%\renewcommand*{\bibliographyitemlabel}{\@biblabel{\arabic{enumiv}}}
|
||||
%\makeatother
|
||||
%\renewcommand*{\bibliographyitemlabel}{[\arabic{enumiv}]}% CONSIDER REPLACING THE ABOVE BY THIS
|
||||
|
||||
% bibliography with mutiple entries
|
||||
\usepackage{multibib}
|
||||
\newcites{book,misc}{{Books},{Others}}
|
||||
%----------------------------------------------------------------------------------
|
||||
% content
|
||||
%----------------------------------------------------------------------------------
|
||||
\begin{document}
|
||||
%\begin{CJK*}{UTF8}{gbsn} % to typeset your resume in Chinese using CJK
|
||||
%----- resume ---------------------------------------------------------
|
||||
\makecvtitle
|
||||
|
||||
\section{Education}
|
||||
\cventry{year--year}{Degree}{Institution}{City}{\textit{Grade}}{Description} % arguments 3 to 6 can be left empty
|
||||
\cventry{year--year}{Degree}{Institution}{City}{\textit{Grade}}{Description}
|
||||
|
||||
\section{Master thesis}
|
||||
\cvitem{title}{\emph{Title}}
|
||||
\cvitem{supervisors}{Supervisors}
|
||||
\cvitem{description}{Short thesis abstract}
|
||||
|
||||
\section{Experience}
|
||||
\subsection{Vocational}
|
||||
\cventry{year--year}{Job title}{Employer}{City}{}{General description no longer than 1--2 lines.\newline{}%
|
||||
Detailed achievements:%
|
||||
\begin{itemize}%
|
||||
\item Achievement 1;
|
||||
\item Achievement 2, with sub-achievements:
|
||||
\begin{itemize}%
|
||||
\item Sub-achievement (a);
|
||||
\item Sub-achievement (b), with sub-sub-achievements (don't do this!);
|
||||
\begin{itemize}
|
||||
\item Sub-sub-achievement i;
|
||||
\item Sub-sub-achievement ii;
|
||||
\item Sub-sub-achievement iii;
|
||||
\end{itemize}
|
||||
\item Sub-achievement (c);
|
||||
\end{itemize}
|
||||
\item Achievement 3.
|
||||
\end{itemize}}
|
||||
\cventry{year--year}{Job title}{Employer}{City}{}{Description line 1\newline{}Description line 2}
|
||||
\subsection{Miscellaneous}
|
||||
\cventry{year--year}{Job title}{Employer}{City}{}{Description}
|
||||
|
||||
\section{Languages}
|
||||
\cvitemwithcomment{Language 1}{Skill level}{Comment}
|
||||
\cvitemwithcomment{Language 2}{Skill level}{Comment}
|
||||
\cvitemwithcomment{Language 3}{Skill level}{Comment}
|
||||
|
||||
\section{Computer skills}
|
||||
\cvdoubleitem{category 1}{XXX, YYY, ZZZ}{category 4}{XXX, YYY, ZZZ}
|
||||
\cvdoubleitem{category 2}{XXX, YYY, ZZZ}{category 5}{XXX, YYY, ZZZ}
|
||||
\cvdoubleitem{category 3}{XXX, YYY, ZZZ}{category 6}{XXX, YYY, ZZZ}
|
||||
|
||||
\section{Interests}
|
||||
\cvitem{hobby 1}{Description}
|
||||
\cvitem{hobby 2}{Description}
|
||||
\cvitem{hobby 3}{Description}
|
||||
|
||||
\section{Extra 1}
|
||||
\cvlistitem{Item 1}
|
||||
\cvlistitem{Item 2}
|
||||
\cvlistitem{Item 3. This item is particularly long and therefore normally spans over several lines. Did you notice the indentation when the line wraps?}
|
||||
|
||||
\section{Extra 2}
|
||||
\cvlistdoubleitem{Item 1}{Item 4}
|
||||
\cvlistdoubleitem{Item 2}{Item 5\cite{book1}}
|
||||
\cvlistdoubleitem{Item 3}{Item 6. Like item 3 in the single column list before, this item is particularly long to wrap over several lines.}
|
||||
|
||||
\section{References}
|
||||
\begin{cvcolumns}
|
||||
\cvcolumn{Category 1}{\begin{itemize}\item Person 1\item Person 2\item Person 3\end{itemize}}
|
||||
\cvcolumn{Category 2}{Amongst others:\begin{itemize}\item Person 1, and\item Person 2\end{itemize}(more upon request)}
|
||||
\cvcolumn[0.5]{All the rest \& some more}{\textit{That} person, and \textbf{those} also (all available upon request).}
|
||||
\end{cvcolumns}
|
||||
|
||||
% Publications from a BibTeX file without multibib
|
||||
% for numerical labels: \renewcommand{\bibliographyitemlabel}{\@biblabel{\arabic{enumiv}}}% CONSIDER MERGING WITH PREAMBLE PART
|
||||
% to redefine the heading string ("Publications"): \renewcommand{\refname}{Articles}
|
||||
%\nocite{*}
|
||||
%\bibliographystyle{plain}
|
||||
%\bibliography{publications} % 'publications' is the name of a BibTeX file
|
||||
|
||||
% Publications from a BibTeX file using the multibib package
|
||||
\section{Publications}
|
||||
\nocitebook{book1,book2}
|
||||
\bibliographystylebook{plain}
|
||||
\bibliographybook{publications} % 'publications' is the name of a BibTeX file
|
||||
\nocitemisc{misc1,misc2,misc3}
|
||||
\bibliographystylemisc{plain}
|
||||
\bibliographymisc{publications} % 'publications' is the name of a BibTeX file
|
||||
|
||||
\clearpage
|
||||
%----- letter ---------------------------------------------------------
|
||||
% recipient data
|
||||
\recipient{Company Recruitment team}{Company, Inc.\\123 somestreet\\some city}
|
||||
\date{January 01, 1984}
|
||||
\opening{Dear Sir or Madam,}
|
||||
\closing{Yours faithfully,}
|
||||
\enclosure[Attached]{curriculum vit\ae{}} % use an optional argument to use a string other than "Enclosure", or redefine \enclname
|
||||
\makelettertitle
|
||||
|
||||
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Duis ullamcorper neque sit amet lectus facilisis sed luctus nisl iaculis. Vivamus at neque arcu, sed tempor quam. Curabitur pharetra tincidunt tincidunt. Morbi volutpat feugiat mauris, quis tempor neque vehicula volutpat. Duis tristique justo vel massa fermentum accumsan. Mauris ante elit, feugiat vestibulum tempor eget, eleifend ac ipsum. Donec scelerisque lobortis ipsum eu vestibulum. Pellentesque vel massa at felis accumsan rhoncus.
|
||||
|
||||
Suspendisse commodo, massa eu congue tincidunt, elit mauris pellentesque orci, cursus tempor odio nisl euismod augue. Aliquam adipiscing nibh ut odio sodales et pulvinar tortor laoreet. Mauris a accumsan ligula. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Suspendisse vulputate sem vehicula ipsum varius nec tempus dui dapibus. Phasellus et est urna, ut auctor erat. Sed tincidunt odio id odio aliquam mattis. Donec sapien nulla, feugiat eget adipiscing sit amet, lacinia ut dolor. Phasellus tincidunt, leo a fringilla consectetur, felis diam aliquam urna, vitae aliquet lectus orci nec velit. Vivamus dapibus varius blandit.
|
||||
|
||||
Duis sit amet magna ante, at sodales diam. Aenean consectetur porta risus et sagittis. Ut interdum, enim varius pellentesque tincidunt, magna libero sodales tortor, ut fermentum nunc metus a ante. Vivamus odio leo, tincidunt eu luctus ut, sollicitudin sit amet metus. Nunc sed orci lectus. Ut sodales magna sed velit volutpat sit amet pulvinar diam venenatis.
|
||||
|
||||
Albert Einstein discovered that $e=mc^2$ in 1905.
|
||||
|
||||
\[ e=\lim_{n \to \infty} \left(1+\frac{1}{n}\right)^n \]
|
||||
|
||||
\makeletterclosing
|
||||
|
||||
%\clearpage\end{CJK*} % if you are typesetting your resume in Chinese using CJK; the \clearpage is required for fancyhdr to work correctly with CJK, though it kills the page numbering by making \lastpage undefined
|
||||
\end{document}
|
||||
|
||||
|
||||
%% end of file `template.tex'.
|
||||
@ -1,5 +1,5 @@
|
||||
%% start of file `template.tex'.
|
||||
%% Copyright 2006-2013 Xavier Danaux (xdanaux@gmail.com).
|
||||
%% Copyright 2006-2015 Xavier Danaux (xdanaux@gmail.com).
|
||||
%
|
||||
% This work may be distributed and/or modified under the
|
||||
% conditions of the LaTeX Project Public License version 1.3c,
|
||||
@ -9,8 +9,8 @@
|
||||
\documentclass[11pt,a4paper,sans]{moderncv} % possible options include font size ('10pt', '11pt' and '12pt'), paper size ('a4paper', 'letterpaper', 'a5paper', 'legalpaper', 'executivepaper' and 'landscape') and font family ('sans' and 'roman')
|
||||
|
||||
% moderncv themes
|
||||
\moderncvstyle{casual} % style options are 'casual' (default), 'classic', 'oldstyle' and 'banking'
|
||||
\moderncvcolor{blue} % color options 'blue' (default), 'orange', 'green', 'red', 'purple', 'grey' and 'black'
|
||||
\moderncvstyle{casual} % style options are 'casual' (default), 'classic', 'banking', 'oldstyle' and 'fancy'
|
||||
\moderncvcolor{blue} % color options 'black', 'blue' (default), 'burgundy', 'green', 'grey', 'orange', 'purple' and 'red'
|
||||
%\renewcommand{\familydefault}{\sfdefault} % to set the default font; use '\sfdefault' for the default sans serif font, '\rmdefault' for the default roman one, or any tex font name
|
||||
%\nopagenumbers{} % uncomment to suppress automatic page numbering for CVs longer than one page
|
||||
|
||||
@ -39,11 +39,11 @@
|
||||
\photo[64pt][0.4pt]{picture} % optional, remove / comment the line if not wanted; '64pt' is the height the picture must be resized to, 0.4pt is the thickness of the frame around it (put it to 0pt for no frame) and 'picture' is the name of the picture file
|
||||
\quote{Some quote} % optional, remove / comment the line if not wanted
|
||||
|
||||
% to show numerical labels in the bibliography (default is to show no labels); only useful if you make citations in your resume
|
||||
%\makeatletter
|
||||
%\renewcommand*{\bibliographyitemlabel}{\@biblabel{\arabic{enumiv}}}
|
||||
%\makeatother
|
||||
%\renewcommand*{\bibliographyitemlabel}{[\arabic{enumiv}]}% CONSIDER REPLACING THE ABOVE BY THIS
|
||||
% bibliography adjustements (only useful if you make citations in your resume, or print a list of publications using BibTeX)
|
||||
% to show numerical labels in the bibliography (default is to show no labels)
|
||||
\makeatletter\renewcommand*{\bibliographyitemlabel}{\@biblabel{\arabic{enumiv}}}\makeatother
|
||||
% to redefine the bibliography heading string ("Publications")
|
||||
%\renewcommand{\refname}{Articles}
|
||||
|
||||
% bibliography with mutiple entries
|
||||
%\usepackage{multibib}
|
||||
|
||||
BIN
examples/template_banking_red-fullrules-center.pdf
Normal file
BIN
examples/template_banking_red-fullrules-center.pdf
Normal file
Binary file not shown.
BIN
examples/template_banking_red-norules.pdf
Normal file
BIN
examples/template_banking_red-norules.pdf
Normal file
Binary file not shown.
BIN
examples/template_banking_red-shortrules-right.pdf
Normal file
BIN
examples/template_banking_red-shortrules-right.pdf
Normal file
Binary file not shown.
BIN
examples/template_casual_orange-left.pdf
Normal file
BIN
examples/template_casual_orange-left.pdf
Normal file
Binary file not shown.
BIN
examples/template_classic_green-right.pdf
Normal file
BIN
examples/template_classic_green-right.pdf
Normal file
Binary file not shown.
BIN
examples/template_fancy_purple.pdf
Normal file
BIN
examples/template_fancy_purple.pdf
Normal file
Binary file not shown.
75
moderncv.cls
75
moderncv.cls
@ -1,5 +1,5 @@
|
||||
%% start of file `moderncv.cls'.
|
||||
%% Copyright 2006-2013 Xavier Danaux (xdanaux@gmail.com).
|
||||
%% Copyright 2006-2015 Xavier Danaux (xdanaux@gmail.com).
|
||||
%
|
||||
% 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}[2013/04/29 v1.5.1 modern curriculum vitae and letter document class]
|
||||
\ProvidesClass{moderncv}[2015/07/28 v2.0.0 modern curriculum vitae and letter document class]
|
||||
|
||||
|
||||
%-------------------------------------------------------------------------------
|
||||
@ -146,6 +146,8 @@
|
||||
\newcommand*{\nopagenumbers}{\@displaypagenumbersfalse}
|
||||
\AtEndPreamble{%
|
||||
\AtBeginDocument{%
|
||||
% fancyhdr length
|
||||
\renewcommand{\headwidth}{\textwidth}
|
||||
\if@displaypagenumbers%
|
||||
\@ifundefined{r@lastpage}{}{%
|
||||
\ifthenelse{\pageref{lastpage}>1}{%
|
||||
@ -316,14 +318,14 @@
|
||||
\RequirePackage[#1]{moderncvstyle#2}}
|
||||
|
||||
% loads a header variant
|
||||
% usage: \moderncvhead{<header variant number>}
|
||||
\newcommand*{\moderncvhead}[1]{
|
||||
\expandafter\RequirePackage\expandafter{\expandafter moderncvhead\romannumeral #1}}
|
||||
% usage: \moderncvhead[<optional head option>]{<header variant number>}
|
||||
\newcommand*{\moderncvhead}[2][]{
|
||||
\expandafter\RequirePackage\expandafter[\expandafter#1\expandafter]{\expandafter moderncvhead\romannumeral #2}}
|
||||
|
||||
% loads a body variant
|
||||
% usage: \moderncvbody{<body variant number>}
|
||||
\newcommand*{\moderncvbody}[1]{
|
||||
\expandafter\RequirePackage\expandafter{\expandafter moderncvbody\romannumeral #1}}
|
||||
% usage: \moderncvbody[<optional body option>]{<body variant number>}
|
||||
\newcommand*{\moderncvbody}[2][]{
|
||||
\expandafter\RequirePackage\expandafter[\expandafter#1\expandafter]{\expandafter moderncvbody\romannumeral #2}}
|
||||
|
||||
% loads a footer variant
|
||||
% usage: \moderncvfoot{<footer variant number>}
|
||||
@ -347,12 +349,19 @@
|
||||
\newcommand*{\recomputelengths}{\recomputecvlengths}
|
||||
\AtBeginDocument{\recomputelengths{}}
|
||||
|
||||
% creates a command if not yet defined
|
||||
\newcommand*{\@initializecommand}[2]{%
|
||||
\ifdefined#1
|
||||
\renewcommand{#1}{#2}%
|
||||
\else%
|
||||
\newcommand*{#1}{#2}\fi}
|
||||
|
||||
% creates a length if not yet defined
|
||||
\newcommand*{\@initializelength}[1]{%
|
||||
\ifdefined#1
|
||||
\setlength{#1}{0pt}%
|
||||
\else%
|
||||
\newlength{#1}\fi}
|
||||
\newlength{#1}\fi%
|
||||
\setlength{#1}{0pt}}
|
||||
|
||||
% creates a box if not yet defined
|
||||
\newcommand*{\@initializebox}[1]{%
|
||||
@ -363,13 +372,14 @@
|
||||
|
||||
% creates an if switch if not yet defined
|
||||
\newcommand*{\@initializeif}[1]{%
|
||||
\ifdefined#1
|
||||
\else%
|
||||
\newif#1\fi}
|
||||
% \ifdefined#1% not working due to the nested \if
|
||||
% \else%
|
||||
\newif#1%\fi
|
||||
}
|
||||
|
||||
% custom strut for spacing; the first argument is the vertical offset of the strut, the second its total height (both as a fraction of \baselineskip)
|
||||
% custom strut for spacing; the first argument is the vertical offset of the strut, the second its total height
|
||||
\newcommand*{\@moderncvstrut}[2]{%
|
||||
\rule[-#1\baselineskip]{0pt}{#2\baselineskip}}
|
||||
\rule[-#1]{0pt}{#2}}
|
||||
|
||||
|
||||
%-------------------------------------------------------------------------------
|
||||
@ -418,20 +428,20 @@
|
||||
|
||||
% internal maketitle command to issue a new line only when required
|
||||
\newif\if@firstdetailselement\@firstdetailselementtrue
|
||||
\newcommand*{\makenewline}{
|
||||
\newcommand*{\makenewline}[1][0pt]{%
|
||||
\if@firstdetailselement%
|
||||
\strut% to ensure baseline alignment, e.g. with when put in the margin vs sections that also contains a \strut
|
||||
\else%
|
||||
\\\fi%
|
||||
\\[#1]\fi%
|
||||
\@firstdetailselementfalse}
|
||||
|
||||
% makes the resume title
|
||||
% usage: \makecvtitle
|
||||
\newcommand*{\makecvtitle}{}
|
||||
|
||||
% makes the resume footer
|
||||
% usage: \makecvfooter
|
||||
\newcommand*{\makecvfooter}{\makefooter}
|
||||
\newcommand*{\makecvtitle}{%
|
||||
\makecvhead%
|
||||
\makecvfoot}
|
||||
\newcommand*{\makecvhead}{}
|
||||
\newcommand*{\makecvfoot}{}
|
||||
|
||||
% makes a resume section
|
||||
% usage: \section{<title>}
|
||||
@ -508,7 +518,7 @@
|
||||
\setcounter{cvcolumnsautowidthcounter}{0}%
|
||||
\setlength{\cvcolumnsautowidth}{\cvcolumnsdummywidth}%
|
||||
\setlength{\cvcolumnautowidth}{0pt}%
|
||||
\@cvcolumns@head@emptytrue}%
|
||||
\@cvcolumns@head@emptytrue\ignorespaces}%
|
||||
{% at environment closing: typeset environment
|
||||
% compute the width of each cvcolumn, considering a spacing of \separatorcolumnwidth and the columns with set width
|
||||
\ifnum\thecvcolumnscounter>0%
|
||||
@ -550,7 +560,7 @@
|
||||
% create the tabular
|
||||
\cvitem{}{%
|
||||
% \begin{tabular}{\cvcolumns@def}% this conflicts with the "colortbl" package (loaded by xcolor when passing the "table" option), and requires the below 2 lines to expand \cvcolumns@def
|
||||
\def\begincvcolumns{\begin{tabular}}
|
||||
\def\begincvcolumns{\begin{tabular}[t]}% "[t]" is required for some body styles; the default alignment is "[c]"
|
||||
\expandafter\begincvcolumns\expandafter{\cvcolumns@def}%
|
||||
\if@cvcolumns@head@empty\else%
|
||||
\cvcolumns@head%\\[-.8em]%
|
||||
@ -575,7 +585,8 @@
|
||||
\expandafter\expandafter\expandafter\def\expandafter\csname cvcolumn\roman{cvcolumnscounter}@head\endcsname{\protect\parbox[b]{#1\cvcolumnswidth}{\protect\subsectionstyle{#2}}}}%
|
||||
\ifthenelse{\equal{#2}{}}{}{\@cvcolumns@head@emptyfalse}%
|
||||
\expandafter\expandafter\expandafter\def\expandafter\csname cvcolumn\roman{cvcolumnscounter}@content\endcsname{\protect\cvcolumncell{#3}}%
|
||||
\stepcounter{cvcolumnscounter}}
|
||||
\stepcounter{cvcolumnscounter}%
|
||||
\ignorespaces}
|
||||
|
||||
% internal cvcolumncell command, that enables a cvcolumn cell to contain paragraph commands (lists, newlines, etc)
|
||||
\newcommand*{\cvcolumncell}[1]{{% put cell inside a group, so that command redefinitions are only local
|
||||
@ -597,6 +608,10 @@
|
||||
\newenvironment{thebibliography}[1]{}{}
|
||||
\newcommand*{\newblock}{\hskip .11em\@plus.33em\@minus.07em}
|
||||
\let\@openbib@code\@empty
|
||||
%% fix a bug (hardcoded bib label) in \@bibitem
|
||||
%\renewcommand\@bibitem[1]{%
|
||||
% \item\if@filesw \immediate\write\@auxout
|
||||
% {\string\bibcite{#1}{\theenumiv}}\fi\ignorespaces}% replaced "\the\value{\@listctr}" with "\theenumiv"
|
||||
|
||||
% itemize, enumerate and description environment
|
||||
\setlength{\leftmargini} {1em}
|
||||
@ -659,11 +674,11 @@
|
||||
|
||||
% makes the letter title
|
||||
% usage: \makelettertitle
|
||||
\newcommand*{\makelettertitle}{}
|
||||
|
||||
% makes the letter footer
|
||||
% usage: \makeletterfooter
|
||||
\newcommand*{\makeletterfooter}{\makefooter}
|
||||
\newcommand*{\makelettertitle}{%
|
||||
\makeletterhead%
|
||||
\makeletterfoot}
|
||||
\newcommand*{\makeletterhead}{}
|
||||
\newcommand*{\makeletterfoot}{}
|
||||
|
||||
% makes the letter closing
|
||||
% usage: \makeletterclosing
|
||||
|
||||
174
moderncvbodyi.sty
Normal file
174
moderncvbodyi.sty
Normal file
@ -0,0 +1,174 @@
|
||||
%% start of file `moderncvbodyi.sty'.
|
||||
%% Copyright 2006-2015 Xavier Danaux (xdanaux@gmail.com).
|
||||
%
|
||||
% This work may be distributed and/or modified under the
|
||||
% conditions of the LaTeX Project Public License version 1.3c,
|
||||
% available at http://www.latex-project.org/lppl/.
|
||||
|
||||
|
||||
%-------------------------------------------------------------------------------
|
||||
% identification
|
||||
%-------------------------------------------------------------------------------
|
||||
\NeedsTeXFormat{LaTeX2e}
|
||||
\ProvidesPackage{moderncvbodyi}[2015/07/28 v2.0.0 modern curriculum vitae and letter body variant: 1]
|
||||
|
||||
|
||||
%-------------------------------------------------------------------------------
|
||||
% required packages
|
||||
%-------------------------------------------------------------------------------
|
||||
|
||||
|
||||
%-------------------------------------------------------------------------------
|
||||
% overall body definition
|
||||
%-------------------------------------------------------------------------------
|
||||
% fonts
|
||||
\renewcommand*{\sectionfont}{\Large\mdseries\upshape}
|
||||
\renewcommand*{\subsectionfont}{\large\mdseries\upshape}
|
||||
\renewcommand*{\hintfont}{}
|
||||
|
||||
% styles
|
||||
\renewcommand*{\sectionstyle}[1]{{\sectionfont\textcolor{color1}{#1}}}
|
||||
\renewcommand*{\subsectionstyle}[1]{{\subsectionfont\textcolor{color1}{#1}}}
|
||||
\renewcommand*{\hintstyle}[1]{{\hintfont\textcolor{color0}{#1}}}
|
||||
|
||||
|
||||
%-------------------------------------------------------------------------------
|
||||
% resume body definition
|
||||
%-------------------------------------------------------------------------------
|
||||
% lengths
|
||||
% used by \cvitem (and all children command)
|
||||
\@initializelength{\hintscolumnwidth} \setlength{\hintscolumnwidth}{0.175\textwidth}
|
||||
\@initializelength{\separatorcolumnwidth} \setlength{\separatorcolumnwidth}{0.025\textwidth}
|
||||
\@initializelength{\maincolumnwidth}
|
||||
% used by \cvdoubleitem
|
||||
\@initializelength{\doubleitemcolumnwidth}
|
||||
% used by \cvlistitem
|
||||
\@initializelength{\listitemsymbolwidth} \settowidth{\listitemsymbolwidth}{\listitemsymbol}
|
||||
\@initializelength{\listitemcolumnwidth}
|
||||
% used by \cvlistdoubleitem
|
||||
\@initializelength{\listdoubleitemcolumnwidth}
|
||||
% default moderncv \photo (change the definition such that by default the photo and its box align with the section bars
|
||||
\RenewDocumentCommand{\photo}{O{\hintscolumnwidth-0.8pt-2\fboxsep}O{0.4pt}m}{\def\@photowidth{#1}\def\@photoframewidth{#2}\def\@photo{#3}}%
|
||||
|
||||
% commands
|
||||
\renewcommand*{\recomputecvbodylengths}{%
|
||||
% body lengths
|
||||
\setlength{\maincolumnwidth}{\textwidth-\leftskip-\rightskip-\separatorcolumnwidth-\hintscolumnwidth}%
|
||||
\setlength{\listitemcolumnwidth}{\maincolumnwidth-\listitemsymbolwidth}%
|
||||
\setlength{\doubleitemcolumnwidth}{\maincolumnwidth-\hintscolumnwidth-\separatorcolumnwidth-\separatorcolumnwidth}%
|
||||
\setlength{\doubleitemcolumnwidth}{0.5\doubleitemcolumnwidth}%
|
||||
\setlength{\listdoubleitemcolumnwidth}{\maincolumnwidth-\listitemsymbolwidth-\separatorcolumnwidth-\listitemsymbolwidth}%
|
||||
\setlength{\listdoubleitemcolumnwidth}{0.5\listdoubleitemcolumnwidth}%
|
||||
% regular lengths
|
||||
\setlength{\parskip}{0\p@}}
|
||||
|
||||
\@initializelength{\baseletterheight}
|
||||
\settoheight{\baseletterheight}{\sectionstyle{o}}
|
||||
\setlength{\baseletterheight}{\baseletterheight-0.95ex}
|
||||
\RenewDocumentCommand{\section}{sm}{%
|
||||
\par\addvspace{2.5ex}%
|
||||
\phantomsection{}% reset the anchor for hyperrefs
|
||||
\addcontentsline{toc}{section}{#2}%
|
||||
\cvitem[0ex]{\strut\raggedleft\raisebox{\baseletterheight}{\color{color1}\rule{\hintscolumnwidth}{0.95ex}}}{\strut\sectionstyle{#2}}%
|
||||
\par\nobreak\addvspace{1ex}\@afterheading}% to avoid a pagebreak after the heading
|
||||
|
||||
\RenewDocumentCommand{\subsection}{sm}{%
|
||||
\par\addvspace{1ex}%
|
||||
\phantomsection{}% reset the anchor for hyperrefs
|
||||
\addcontentsline{toc}{subsection}{#2}%
|
||||
\cvitem[0ex]{}{\strut\subsectionstyle{#2}}%
|
||||
\par\nobreak\addvspace{.5ex}\@afterheading}% to avoid a pagebreak after the heading
|
||||
|
||||
\renewcommand*{\cvitem}[3][.25em]{%
|
||||
\begin{tabular}{@{}p{\hintscolumnwidth}@{\hspace{\separatorcolumnwidth}}p{\maincolumnwidth}@{}}%
|
||||
\raggedleft\hintstyle{#2} &{#3}%
|
||||
\end{tabular}%
|
||||
\par\addvspace{#1}}
|
||||
|
||||
\renewcommand*{\cvdoubleitem}[5][.25em]{%
|
||||
\cvitem[#1]{#2}{%
|
||||
\begin{minipage}[t]{\doubleitemcolumnwidth}#3\end{minipage}%
|
||||
\hfill% fill of \separatorcolumnwidth
|
||||
\begin{minipage}[t]{\hintscolumnwidth}\raggedleft\hintstyle{#4}\end{minipage}%
|
||||
\hspace*{\separatorcolumnwidth}%
|
||||
\begin{minipage}[t]{\doubleitemcolumnwidth}#5\end{minipage}}}
|
||||
|
||||
\renewcommand*{\cvlistitem}[2][.25em]{%
|
||||
\cvitem[#1]{}{\listitemsymbol\begin{minipage}[t]{\listitemcolumnwidth}#2\end{minipage}}}
|
||||
|
||||
\renewcommand*{\cvlistdoubleitem}[3][.25em]{%
|
||||
\cvitem[#1]{}{\listitemsymbol\begin{minipage}[t]{\listdoubleitemcolumnwidth}#2\end{minipage}%
|
||||
\hfill% fill of \separatorcolumnwidth
|
||||
\ifthenelse{\equal{#3}{}}%
|
||||
{}%
|
||||
{\listitemsymbol\begin{minipage}[t]{\listdoubleitemcolumnwidth}#3\end{minipage}}}}
|
||||
|
||||
\renewcommand*{\cventry}[7][.25em]{%
|
||||
\cvitem[#1]{#2}{%
|
||||
{\bfseries#3}%
|
||||
\ifthenelse{\equal{#4}{}}{}{, {\slshape#4}}%
|
||||
\ifthenelse{\equal{#5}{}}{}{, #5}%
|
||||
\ifthenelse{\equal{#6}{}}{}{, #6}%
|
||||
.\strut%
|
||||
\ifx&%
|
||||
\else{\newline{}\begin{minipage}[t]{\linewidth}\small#7\end{minipage}}\fi}}
|
||||
|
||||
\@initializebox{\cvitemwithcommentbox}
|
||||
\@initializelength{\cvitemwithcommentskilllength}
|
||||
\@initializelength{\cvitemwithcommentcommentlength}
|
||||
\renewcommand*{\cvitemwithcomment}[4][.25em]{%
|
||||
\savebox{\cvitemwithcommentbox}{{#3}}%
|
||||
\setlength{\cvitemwithcommentskilllength}{\widthof{\usebox{\cvitemwithcommentbox}}}%
|
||||
\setlength{\cvitemwithcommentcommentlength}{\maincolumnwidth-\separatorcolumnwidth-\cvitemwithcommentskilllength}%
|
||||
\cvitem[#1]{#2}{%
|
||||
\begin{minipage}[t]{\cvitemwithcommentskilllength}\usebox{\cvitemwithcommentbox}\end{minipage}%
|
||||
\hfill% fill of \separatorcolumnwidth
|
||||
\begin{minipage}[t]{\cvitemwithcommentcommentlength}\raggedleft\small\itshape#4\end{minipage}}}
|
||||
|
||||
\renewenvironment{thebibliography}[1]%
|
||||
{%
|
||||
\bibliographyhead{\refname}%
|
||||
% \small%
|
||||
\begin{list}{\bibliographyitemlabel}%
|
||||
{%
|
||||
\setlength{\topsep}{0pt}%
|
||||
\setlength{\labelwidth}{\hintscolumnwidth}%
|
||||
\setlength{\labelsep}{\separatorcolumnwidth}%
|
||||
\leftmargin\labelwidth%
|
||||
\advance\leftmargin\labelsep%
|
||||
\@openbib@code%
|
||||
\usecounter{enumiv}%
|
||||
\let\p@enumiv\@empty%
|
||||
\renewcommand\theenumiv{\@arabic\c@enumiv}}%
|
||||
\sloppy%
|
||||
\clubpenalty4000%\@clubpenalty \clubpenalty%
|
||||
\widowpenalty4000%
|
||||
\sfcode`\.\@m%
|
||||
\sfcode `\=1000\relax}%
|
||||
{%
|
||||
\def\@noitemerr{\@latex@warning{Empty `thebibliography' environment}}%
|
||||
\end{list}}
|
||||
|
||||
|
||||
%-------------------------------------------------------------------------------
|
||||
% letter style definition
|
||||
%-------------------------------------------------------------------------------
|
||||
% commands
|
||||
\renewcommand*{\recomputeletterbodylengths}{%
|
||||
\recomputecvlengths%
|
||||
\setlength{\parskip}{6\p@}}
|
||||
|
||||
\renewcommand*{\makeletterclosing}{
|
||||
\@closing\\[3em]%
|
||||
{\bfseries\@firstname~\@lastname}%
|
||||
\ifthenelse{\isundefined{\@enclosure}}{}{%
|
||||
\\%
|
||||
\vfil%
|
||||
{\color{color2}\itshape\enclname: \@enclosure}}%
|
||||
\vfil}
|
||||
|
||||
|
||||
\endinput
|
||||
|
||||
|
||||
%% end of file `moderncvbodyi.sty'.
|
||||
174
moderncvbodyii.sty
Normal file
174
moderncvbodyii.sty
Normal file
@ -0,0 +1,174 @@
|
||||
%% start of file `moderncvbodyi.sty'.
|
||||
%% Copyright 2006-2015 Xavier Danaux (xdanaux@gmail.com).
|
||||
%
|
||||
% This work may be distributed and/or modified under the
|
||||
% conditions of the LaTeX Project Public License version 1.3c,
|
||||
% available at http://www.latex-project.org/lppl/.
|
||||
|
||||
|
||||
%-------------------------------------------------------------------------------
|
||||
% identification
|
||||
%-------------------------------------------------------------------------------
|
||||
\NeedsTeXFormat{LaTeX2e}
|
||||
\ProvidesPackage{moderncvbodyi}[2015/07/28 v2.0.0 modern curriculum vitae and letter body variant: 1]
|
||||
|
||||
|
||||
%-------------------------------------------------------------------------------
|
||||
% required packages
|
||||
%-------------------------------------------------------------------------------
|
||||
|
||||
|
||||
%-------------------------------------------------------------------------------
|
||||
% overall body definition
|
||||
%-------------------------------------------------------------------------------
|
||||
% fonts
|
||||
\renewcommand*{\sectionfont}{\Large\mdseries\upshape}
|
||||
\renewcommand*{\subsectionfont}{\large\mdseries\upshape}
|
||||
\renewcommand*{\hintfont}{}
|
||||
|
||||
% styles
|
||||
\renewcommand*{\sectionstyle}[1]{{\sectionfont\textcolor{color1}{#1}}}
|
||||
\renewcommand*{\subsectionstyle}[1]{{\subsectionfont\textcolor{color1}{#1}}}
|
||||
\renewcommand*{\hintstyle}[1]{{\hintfont\textcolor{color0}{#1}}}
|
||||
|
||||
|
||||
%-------------------------------------------------------------------------------
|
||||
% resume body definition
|
||||
%-------------------------------------------------------------------------------
|
||||
% lengths
|
||||
% used by \cvitem (and all children command)
|
||||
\@initializelength{\hintscolumnwidth} \setlength{\hintscolumnwidth}{0.175\textwidth}
|
||||
\@initializelength{\separatorcolumnwidth} \setlength{\separatorcolumnwidth}{0.025\textwidth}
|
||||
\@initializelength{\maincolumnwidth}
|
||||
% used by \cvdoubleitem
|
||||
\@initializelength{\doubleitemcolumnwidth}
|
||||
% used by \cvlistitem
|
||||
\@initializelength{\listitemsymbolwidth} \settowidth{\listitemsymbolwidth}{\listitemsymbol}
|
||||
\@initializelength{\listitemcolumnwidth}
|
||||
% used by \cvlistdoubleitem
|
||||
\@initializelength{\listdoubleitemcolumnwidth}
|
||||
% default moderncv \photo (change the definition such that by default the photo and its box align with the section bars
|
||||
\RenewDocumentCommand{\photo}{O{\hintscolumnwidth-0.8pt-2\fboxsep}O{0.4pt}m}{\def\@photowidth{#1}\def\@photoframewidth{#2}\def\@photo{#3}}%
|
||||
|
||||
% commands
|
||||
\renewcommand*{\recomputecvbodylengths}{%
|
||||
% body lengths
|
||||
\setlength{\maincolumnwidth}{\textwidth-\leftskip-\rightskip-\separatorcolumnwidth-\hintscolumnwidth}%
|
||||
\setlength{\listitemcolumnwidth}{\maincolumnwidth-\listitemsymbolwidth}%
|
||||
\setlength{\doubleitemcolumnwidth}{\maincolumnwidth-\hintscolumnwidth-\separatorcolumnwidth-\separatorcolumnwidth}%
|
||||
\setlength{\doubleitemcolumnwidth}{0.5\doubleitemcolumnwidth}%
|
||||
\setlength{\listdoubleitemcolumnwidth}{\maincolumnwidth-\listitemsymbolwidth-\separatorcolumnwidth-\listitemsymbolwidth}%
|
||||
\setlength{\listdoubleitemcolumnwidth}{0.5\listdoubleitemcolumnwidth}%
|
||||
% regular lengths
|
||||
\setlength{\parskip}{0\p@}}
|
||||
|
||||
\@initializelength{\baseletterheight}
|
||||
\settoheight{\baseletterheight}{\sectionstyle{o}}
|
||||
\setlength{\baseletterheight}{\baseletterheight-0.95ex}
|
||||
\RenewDocumentCommand{\section}{sm}{%
|
||||
\par\addvspace{2.5ex}%
|
||||
\phantomsection{}% reset the anchor for hyperrefs
|
||||
\addcontentsline{toc}{section}{#2}%
|
||||
\cvitem[0ex]{\strut\raggedleft\raisebox{\baseletterheight}{\color{color1}\rule{\hintscolumnwidth}{0.95ex}}}{\strut\sectionstyle{#2}}%
|
||||
\par\nobreak\addvspace{1ex}\@afterheading}% to avoid a pagebreak after the heading
|
||||
|
||||
\RenewDocumentCommand{\subsection}{sm}{%
|
||||
\par\addvspace{1ex}%
|
||||
\phantomsection{}% reset the anchor for hyperrefs
|
||||
\addcontentsline{toc}{subsection}{#2}%
|
||||
\cvitem[0ex]{}{\strut\subsectionstyle{#2}}%
|
||||
\par\nobreak\addvspace{.5ex}\@afterheading}% to avoid a pagebreak after the heading
|
||||
|
||||
\renewcommand*{\cvitem}[3][.25em]{%
|
||||
\begin{tabular}{@{}p{\hintscolumnwidth}@{\hspace{\separatorcolumnwidth}}p{\maincolumnwidth}@{}}%
|
||||
\raggedleft\hintstyle{#2} &{#3}%
|
||||
\end{tabular}%
|
||||
\par\addvspace{#1}}
|
||||
|
||||
\renewcommand*{\cvdoubleitem}[5][.25em]{%
|
||||
\cvitem[#1]{#2}{%
|
||||
\begin{minipage}[t]{\doubleitemcolumnwidth}#3\end{minipage}%
|
||||
\hfill% fill of \separatorcolumnwidth
|
||||
\begin{minipage}[t]{\hintscolumnwidth}\raggedleft\hintstyle{#4}\end{minipage}%
|
||||
\hspace*{\separatorcolumnwidth}%
|
||||
\begin{minipage}[t]{\doubleitemcolumnwidth}#5\end{minipage}}}
|
||||
|
||||
\renewcommand*{\cvlistitem}[2][.25em]{%
|
||||
\cvitem[#1]{}{\listitemsymbol\begin{minipage}[t]{\listitemcolumnwidth}#2\end{minipage}}}
|
||||
|
||||
\renewcommand*{\cvlistdoubleitem}[3][.25em]{%
|
||||
\cvitem[#1]{}{\listitemsymbol\begin{minipage}[t]{\listdoubleitemcolumnwidth}#2\end{minipage}%
|
||||
\hfill% fill of \separatorcolumnwidth
|
||||
\ifthenelse{\equal{#3}{}}%
|
||||
{}%
|
||||
{\listitemsymbol\begin{minipage}[t]{\listdoubleitemcolumnwidth}#3\end{minipage}}}}
|
||||
|
||||
\renewcommand*{\cventry}[7][.25em]{%
|
||||
\cvitem[#1]{#2}{%
|
||||
{\bfseries#3}%
|
||||
\ifthenelse{\equal{#4}{}}{}{, {\slshape#4}}%
|
||||
\ifthenelse{\equal{#5}{}}{}{, #5}%
|
||||
\ifthenelse{\equal{#6}{}}{}{, #6}%
|
||||
.\strut%
|
||||
\ifx&%
|
||||
\else{\newline{}\begin{minipage}[t]{\linewidth}\small#7\end{minipage}}\fi}}
|
||||
|
||||
\@initializebox{\cvitemwithcommentbox}
|
||||
\@initializelength{\cvitemwithcommentskilllength}
|
||||
\@initializelength{\cvitemwithcommentcommentlength}
|
||||
\renewcommand*{\cvitemwithcomment}[4][.25em]{%
|
||||
\savebox{\cvitemwithcommentbox}{{#3}}%
|
||||
\setlength{\cvitemwithcommentskilllength}{\widthof{\usebox{\cvitemwithcommentbox}}}%
|
||||
\setlength{\cvitemwithcommentcommentlength}{\maincolumnwidth-\separatorcolumnwidth-\cvitemwithcommentskilllength}%
|
||||
\cvitem[#1]{#2}{%
|
||||
\begin{minipage}[t]{\cvitemwithcommentskilllength}\usebox{\cvitemwithcommentbox}\end{minipage}%
|
||||
\hfill% fill of \separatorcolumnwidth
|
||||
\begin{minipage}[t]{\cvitemwithcommentcommentlength}\raggedleft\small\itshape#4\end{minipage}}}
|
||||
|
||||
\renewenvironment{thebibliography}[1]%
|
||||
{%
|
||||
\bibliographyhead{\refname}%
|
||||
% \small%
|
||||
\begin{list}{\bibliographyitemlabel}%
|
||||
{%
|
||||
\setlength{\topsep}{0pt}%
|
||||
\setlength{\labelwidth}{\hintscolumnwidth}%
|
||||
\setlength{\labelsep}{\separatorcolumnwidth}%
|
||||
\leftmargin\labelwidth%
|
||||
\advance\leftmargin\labelsep%
|
||||
\@openbib@code%
|
||||
\usecounter{enumiv}%
|
||||
\let\p@enumiv\@empty%
|
||||
\renewcommand\theenumiv{\@arabic\c@enumiv}}%
|
||||
\sloppy%
|
||||
\clubpenalty4000%\@clubpenalty \clubpenalty%
|
||||
\widowpenalty4000%
|
||||
\sfcode`\.\@m%
|
||||
\sfcode `\=1000\relax}%
|
||||
{%
|
||||
\def\@noitemerr{\@latex@warning{Empty `thebibliography' environment}}%
|
||||
\end{list}}
|
||||
|
||||
|
||||
%-------------------------------------------------------------------------------
|
||||
% letter style definition
|
||||
%-------------------------------------------------------------------------------
|
||||
% commands
|
||||
\renewcommand*{\recomputeletterbodylengths}{%
|
||||
\recomputecvlengths%
|
||||
\setlength{\parskip}{6\p@}}
|
||||
|
||||
\renewcommand*{\makeletterclosing}{
|
||||
\@closing\\[3em]%
|
||||
{\bfseries\@firstname~\@lastname}%
|
||||
\ifthenelse{\isundefined{\@enclosure}}{}{%
|
||||
\\%
|
||||
\vfil%
|
||||
{\color{color2}\itshape\enclname: \@enclosure}}%
|
||||
\vfil}
|
||||
|
||||
|
||||
\endinput
|
||||
|
||||
|
||||
%% end of file `moderncvbodyi.sty'.
|
||||
238
moderncvbodyiii.sty
Normal file
238
moderncvbodyiii.sty
Normal file
@ -0,0 +1,238 @@
|
||||
%% start of file `moderncvbodyiii.sty'.
|
||||
%% Copyright 2006-2015 Xavier Danaux (xdanaux@gmail.com).
|
||||
%
|
||||
% This work may be distributed and/or modified under the
|
||||
% conditions of the LaTeX Project Public License version 1.3c,
|
||||
% available at http://www.latex-project.org/lppl/.
|
||||
|
||||
|
||||
%-------------------------------------------------------------------------------
|
||||
% identification
|
||||
%-------------------------------------------------------------------------------
|
||||
\NeedsTeXFormat{LaTeX2e}
|
||||
\ProvidesPackage{moderncvbodyiii}[2015/07/28 v2.0.0 modern curriculum vitae and letter body variant: 3]
|
||||
|
||||
% rules type options: "fullrules", "shortrules", "mixedrules" (default) or "norules"
|
||||
\@initializeif{\if@fullrules}\@fullrulesfalse
|
||||
\DeclareOption{fullrules} {\@fullrulestrue\@shortrulesfalse\@mixedrulesfalse\@norulesfalse}
|
||||
\@initializeif{\if@shortrules}\@shortrulesfalse
|
||||
\DeclareOption{shortrules}{\@fullrulesfalse\@shortrulestrue\@mixedrulesfalse\@norulesfalse}
|
||||
\@initializeif{\if@mixedrules}\@mixedrulesfalse
|
||||
\DeclareOption{mixedrules}{\@fullrulesfalse\@shortrulesfalse\@mixedrulestrue\@norulesfalse}
|
||||
\@initializeif{\if@norules}\@norulesfalse
|
||||
\DeclareOption{norules} {\@fullrulesfalse\@shortrulesfalse\@mixedrulesfalse\@norulestrue}
|
||||
|
||||
% section alignment options: "left" (default), "center" or "right"
|
||||
\@initializeif{\if@left}\@leftfalse
|
||||
\DeclareOption{left} {\@lefttrue\@centerfalse\@rightfalse}
|
||||
\@initializeif{\if@center}\@centerfalse
|
||||
\DeclareOption{center} {\@leftfalse\@centertrue\@rightfalse}
|
||||
\@initializeif{\if@right}\@rightfalse
|
||||
\DeclareOption{right} {\@leftfalse\@centerfalse\@righttrue}
|
||||
|
||||
\DeclareOption*{}% avoid choking on unknown options
|
||||
\ExecuteOptions{mixedrules,left}
|
||||
\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
|
||||
|
||||
%-------------------------------------------------------------------------------
|
||||
% required packages
|
||||
%-------------------------------------------------------------------------------
|
||||
|
||||
|
||||
%-------------------------------------------------------------------------------
|
||||
% overall body definition
|
||||
%-------------------------------------------------------------------------------
|
||||
% fonts
|
||||
\renewcommand*{\sectionfont}{%
|
||||
\if@norules%
|
||||
\Large\bfseries\scshape%
|
||||
\else%
|
||||
\Large\bfseries\upshape\fi}
|
||||
\renewcommand*{\subsectionfont}{%
|
||||
\if@norules%
|
||||
\large\mdseries\itshape%
|
||||
\else%
|
||||
\large\upshape\fontseries{sb}\selectfont\fi}
|
||||
\renewcommand*{\hintfont}{\bfseries}
|
||||
|
||||
% styles
|
||||
\renewcommand*{\sectionstyle}[1]{{%
|
||||
\if@center\centering\else%
|
||||
\if@right\raggedleft\fi\fi%
|
||||
\sectionfont\textcolor{color1}{#1}%
|
||||
\if@shortrules\else%
|
||||
\par\fi}}
|
||||
\renewcommand*{\subsectionstyle}[1]{{%
|
||||
\if@center\centering\else%
|
||||
\if@right\raggedleft\fi\fi%
|
||||
\subsectionfont\textcolor{color1}{#1}%
|
||||
\if@shortrules\else\if@mixedrules\else%
|
||||
\par\fi\fi}}
|
||||
\renewcommand*{\hintstyle}[1]{{\hintfont\textcolor{color0}{#1}}}
|
||||
|
||||
|
||||
%-------------------------------------------------------------------------------
|
||||
% resume body definition
|
||||
%-------------------------------------------------------------------------------
|
||||
% lengths
|
||||
% used by \cvitem (and all children command)
|
||||
\@initializelength{\hintscolumnwidth} \setlength{\hintscolumnwidth}{0.3\textwidth}
|
||||
\@initializelength{\separatorcolumnwidth} \setlength{\separatorcolumnwidth}{0.025\textwidth}
|
||||
\@initializelength{\maincolumnwidth}
|
||||
% used by \cvdoubleitem
|
||||
\@initializelength{\doubleitemcolumnwidth}
|
||||
% used by \cvlistitem
|
||||
\@initializelength{\listitemsymbolwidth} \settowidth{\listitemsymbolwidth}{\listitemsymbol}
|
||||
\@initializelength{\listitemcolumnwidth}
|
||||
% used by \cvlistdoubleitem
|
||||
\@initializelength{\listdoubleitemcolumnwidth}
|
||||
|
||||
% commands
|
||||
\renewcommand*{\recomputecvbodylengths}{%
|
||||
% body lengths
|
||||
\setlength{\maincolumnwidth}{\textwidth-\leftskip-\rightskip}%
|
||||
\setlength{\listitemcolumnwidth}{\maincolumnwidth-\listitemsymbolwidth}%
|
||||
\setlength{\doubleitemcolumnwidth}{\maincolumnwidth-\separatorcolumnwidth}%
|
||||
\setlength{\doubleitemcolumnwidth}{0.5\doubleitemcolumnwidth}%
|
||||
\setlength{\listdoubleitemcolumnwidth}{\maincolumnwidth-\listitemsymbolwidth-\separatorcolumnwidth-\listitemsymbolwidth}%
|
||||
\setlength{\listdoubleitemcolumnwidth}{0.5\listdoubleitemcolumnwidth}%
|
||||
% regular lengths
|
||||
\setlength{\parskip}{0\p@}}
|
||||
|
||||
\RenewDocumentCommand{\section}{sm}{%
|
||||
\par\addvspace{2.5ex}%
|
||||
\phantomsection{}% reset the anchor for hyperrefs
|
||||
\addcontentsline{toc}{section}{#2}%
|
||||
\if@left\else\if@fullrules\else\if@mixedrules\else%
|
||||
\sectionrule\fi\fi\fi%
|
||||
\strut\sectionstyle{#2}%
|
||||
\if@fullrules%
|
||||
\sectionrule%
|
||||
\else\if@mixedrules%
|
||||
\sectionrule%
|
||||
\else\if@right\else%
|
||||
\sectionrule\fi\fi\fi%
|
||||
\par\nobreak\addvspace{1ex}\@afterheading}
|
||||
|
||||
\RenewDocumentCommand{\subsection}{sm}{%
|
||||
\par\addvspace{1ex}%
|
||||
\phantomsection{}%
|
||||
\addcontentsline{toc}{subsection}{#2}%
|
||||
\if@left\else\if@fullrules\else%
|
||||
\subsectionrule\fi\fi%
|
||||
\strut\subsectionstyle{#2}%
|
||||
\if@fullrules%
|
||||
\subsectionrule%
|
||||
\else\if@right\else%
|
||||
\subsectionrule\fi\fi%
|
||||
\par\nobreak\addvspace{0.5ex}\@afterheading}
|
||||
|
||||
\newcommand*{\sectionrule}{}
|
||||
\newcommand*{\subsectionrule}{}
|
||||
\if@fullrules%
|
||||
\renewcommand*{\sectionrule}{\par\nobreak\vspace*{-.7\baselineskip}\leavevmode{\color{color1}\leaders\hbox{\rule{1pt}{0.4pt}}\hfill\kern0pt}}
|
||||
\renewcommand*{\subsectionrule}{\par\nobreak\vspace*{-.7\baselineskip}\leavevmode{\color{color1}\xleaders\hbox to 0.35em{\scriptsize.}\hfill}}\fi% different subsectionrules will not be perfectly aligned, but remaining space at the end of the fill will be distributed evenly between leaders, so it will be barely visible}
|
||||
\if@shortrules%
|
||||
\renewcommand*{\sectionrule}{\leavevmode{\color{color1}\leaders\hbox{\rule{1pt}{0.4pt}}\hfill\kern0pt}}
|
||||
\renewcommand*{\subsectionrule}{\leavevmode{\color{color1}\xleaders\hbox to 0.35em{\scriptsize.}\hfill}}\fi% different subsectionrules will not be perfectly aligned, but remaining space at the end of the fill will be distributed evenly between leaders, so it will be barely visible}}
|
||||
\if@mixedrules%
|
||||
\renewcommand*{\sectionrule}{\par\nobreak\vspace*{-.7\baselineskip}\leavevmode{\color{color1}\leaders\hbox{\rule{1pt}{0.4pt}}\hfill\kern0pt}}
|
||||
\renewcommand*{\subsectionrule}{\leavevmode{\color{color1}\xleaders\hbox to 0.35em{\scriptsize.}\hfill}}\fi% different subsectionrules will not be perfectly aligned, but remaining space at the end of the fill will be distributed evenly between leaders, so it will be barely visible}}
|
||||
\if@norules%
|
||||
\renewcommand*{\sectionrule}{}
|
||||
\renewcommand*{\subsectionrule}{}\fi
|
||||
|
||||
\renewcommand*{\cvitem}[3][.25em]{%
|
||||
\ifthenelse{\equal{#2}{}}{}{\hintstyle{#2}: }{#3}%
|
||||
\par\addvspace{#1}}
|
||||
|
||||
\renewcommand*{\cvdoubleitem}[5][.25em]{%
|
||||
\begin{minipage}[t]{\doubleitemcolumnwidth}\hintstyle{#2}: #3\end{minipage}%
|
||||
\hfill% fill of \separatorcolumnwidth
|
||||
\begin{minipage}[t]{\doubleitemcolumnwidth}\ifthenelse{\equal{#4}{}}{}{\hintstyle{#4}: }#5\end{minipage}%
|
||||
\par\addvspace{#1}}
|
||||
|
||||
\renewcommand*{\cvlistitem}[2][.25em]{%
|
||||
\listitemsymbol\begin{minipage}[t]{\listitemcolumnwidth}#2\end{minipage}%
|
||||
\par\addvspace{#1}}
|
||||
|
||||
\renewcommand*{\cvlistdoubleitem}[3][.25em]{%
|
||||
\cvitem[#1]{}{\listitemsymbol\begin{minipage}[t]{\listdoubleitemcolumnwidth}#2\end{minipage}%
|
||||
\hfill% fill of \separatorcolumnwidth
|
||||
\ifthenelse{\equal{#3}{}}%
|
||||
{}%
|
||||
{\listitemsymbol\begin{minipage}[t]{\listdoubleitemcolumnwidth}#3\end{minipage}}}}
|
||||
|
||||
\renewcommand*{\cventry}[7][.25em]{
|
||||
\begin{tabular*}{\maincolumnwidth}{l@{\extracolsep{\fill}}r}%
|
||||
{\bfseries #4} & {\bfseries #5}\\%
|
||||
{\itshape #3\ifthenelse{\equal{#6}{}}{}{, #6}} & {\itshape #2}\\%
|
||||
\end{tabular*}%
|
||||
\ifx&%
|
||||
\else{\\%
|
||||
\begin{minipage}{\maincolumnwidth}%
|
||||
\small#7%
|
||||
\end{minipage}}\fi%
|
||||
\par\addvspace{#1}}
|
||||
|
||||
\@initializebox{\cvitemwithcommentmainbox}
|
||||
\@initializelength{\cvitemwithcommentmainlength}
|
||||
\@initializelength{\cvitemwithcommentcommentlength}
|
||||
\renewcommand*{\cvitemwithcomment}[4][.25em]{%
|
||||
\savebox{\cvitemwithcommentmainbox}{\ifthenelse{\equal{#2}{}}{}{\hintstyle{#2}: }#3}%
|
||||
\setlength{\cvitemwithcommentmainlength}{\widthof{\usebox{\cvitemwithcommentmainbox}}}%
|
||||
\setlength{\cvitemwithcommentcommentlength}{\maincolumnwidth-\separatorcolumnwidth-\cvitemwithcommentmainlength}%
|
||||
\begin{minipage}[t]{\cvitemwithcommentmainlength}\usebox{\cvitemwithcommentmainbox}\end{minipage}%
|
||||
\hfill% fill of \separatorcolumnwidth
|
||||
\begin{minipage}[t]{\cvitemwithcommentcommentlength}\raggedleft\small\itshape#4\end{minipage}%
|
||||
\par\addvspace{#1}}
|
||||
|
||||
\renewenvironment{thebibliography}[1]%
|
||||
{%
|
||||
\bibliographyhead{\refname}%
|
||||
% \small%
|
||||
\begin{list}{\bibliographyitemlabel}%
|
||||
{%
|
||||
\setlength{\topsep}{0pt}%
|
||||
\setlength{\labelwidth}{0pt}%
|
||||
\ifthenelse{\equal{\bibliographyitemlabel}{}}%
|
||||
{\setlength{\labelsep}{0pt}}%
|
||||
{\setlength{\labelsep}{\separatorcolumnwidth}}%
|
||||
\leftmargin\labelwidth%
|
||||
\advance\leftmargin\labelsep%
|
||||
\@openbib@code%
|
||||
\usecounter{enumiv}%
|
||||
\let\p@enumiv\@empty%
|
||||
\renewcommand\theenumiv{\@arabic\c@enumiv}}%
|
||||
\sloppy%
|
||||
\clubpenalty4000%\@clubpenalty \clubpenalty%
|
||||
\widowpenalty4000%
|
||||
\sfcode`\.\@m%
|
||||
\sfcode `\=1000\relax}%
|
||||
{%
|
||||
\def\@noitemerr{\@latex@warning{Empty `thebibliography' environment}}%
|
||||
\end{list}}
|
||||
|
||||
|
||||
%-------------------------------------------------------------------------------
|
||||
% letter style definition
|
||||
%-------------------------------------------------------------------------------
|
||||
% commands
|
||||
\renewcommand*{\recomputeletterbodylengths}{%
|
||||
\recomputecvbodylengths%
|
||||
\setlength{\parskip}{6\p@}}
|
||||
|
||||
\renewcommand*{\makeletterclosing}{
|
||||
\@closing\\[3em]%
|
||||
{\bfseries\@firstname~\@lastname}%
|
||||
\ifthenelse{\isundefined{\@enclosure}}{}{%
|
||||
\\%
|
||||
\vfil%
|
||||
{\color{color2}\itshape\enclname: \@enclosure}}%
|
||||
\vfil}
|
||||
|
||||
|
||||
\endinput
|
||||
|
||||
|
||||
%% end of file `moderncvbodyiii.sty'.
|
||||
183
moderncvbodyiv.sty
Normal file
183
moderncvbodyiv.sty
Normal file
@ -0,0 +1,183 @@
|
||||
%% start of file `moderncvbodyiv.sty'.
|
||||
%% Copyright 2006-2015 Xavier Danaux (xdanaux@gmail.com).
|
||||
%
|
||||
% This work may be distributed and/or modified under the
|
||||
% conditions of the LaTeX Project Public License version 1.3c,
|
||||
% available at http://www.latex-project.org/lppl/.
|
||||
|
||||
|
||||
%-------------------------------------------------------------------------------
|
||||
% identification
|
||||
%-------------------------------------------------------------------------------
|
||||
\NeedsTeXFormat{LaTeX2e}
|
||||
\ProvidesPackage{moderncvbodyiv}[2015/07/28 v2.0.0 modern curriculum vitae and letter body variant: 4]
|
||||
|
||||
|
||||
%-------------------------------------------------------------------------------
|
||||
% required packages
|
||||
%-------------------------------------------------------------------------------
|
||||
|
||||
|
||||
%-------------------------------------------------------------------------------
|
||||
% overall body definition
|
||||
%-------------------------------------------------------------------------------
|
||||
% fonts
|
||||
\renewcommand*{\sectionfont}{\Large\bfseries\upshape}
|
||||
\renewcommand*{\subsectionfont}{\large\bfseries\itshape}
|
||||
\renewcommand*{\hintfont}{\bfseries}
|
||||
|
||||
% styles
|
||||
\renewcommand*{\sectionstyle}[1]{{\sectionfont\textcolor{color1}{#1}}}
|
||||
\renewcommand*{\subsectionstyle}[1]{{\subsectionfont\textcolor{color1}{#1}}}
|
||||
\renewcommand*{\hintstyle}[1]{{\hintfont\textcolor{color0}{#1}}}
|
||||
|
||||
|
||||
%-------------------------------------------------------------------------------
|
||||
% resume body definition
|
||||
%-------------------------------------------------------------------------------
|
||||
% lengths
|
||||
% used by \cvitem (and all children command)
|
||||
\@initializelength{\hintscolumnwidth} \setlength{\hintscolumnwidth}{0.3\textwidth}
|
||||
\@initializelength{\separatorcolumnwidth} \setlength{\separatorcolumnwidth}{0.025\textwidth}
|
||||
\@initializelength{\maincolumnwidth}
|
||||
% used by \cvdoubleitem
|
||||
\@initializelength{\doubleitemcolumnwidth}
|
||||
% used by \cvlistitem
|
||||
\@initializelength{\listitemsymbolwidth} \settowidth{\listitemsymbolwidth}{\listitemsymbol}
|
||||
\@initializelength{\listitemcolumnwidth}
|
||||
% used by \cvlistdoubleitem
|
||||
\@initializelength{\listdoubleitemcolumnwidth}
|
||||
|
||||
% commands
|
||||
\renewcommand*{\recomputecvbodylengths}{%
|
||||
% body lengths
|
||||
\setlength{\maincolumnwidth}{\textwidth-\leftskip-\rightskip}%
|
||||
\setlength{\listitemcolumnwidth}{\maincolumnwidth-\listitemsymbolwidth}%
|
||||
\setlength{\doubleitemcolumnwidth}{\maincolumnwidth-\separatorcolumnwidth}%
|
||||
\setlength{\doubleitemcolumnwidth}{0.5\doubleitemcolumnwidth}%
|
||||
\setlength{\listdoubleitemcolumnwidth}{\maincolumnwidth-\listitemsymbolwidth-\separatorcolumnwidth-\listitemsymbolwidth}%
|
||||
\setlength{\listdoubleitemcolumnwidth}{0.5\listdoubleitemcolumnwidth}%
|
||||
% regular lengths
|
||||
\setlength{\parskip}{0\p@}}
|
||||
|
||||
\RenewDocumentCommand{\section}{sm}{%
|
||||
\par\addvspace{2.5ex}%
|
||||
\phantomsection{}% reset the anchor for hyperrefs
|
||||
\addcontentsline{toc}{section}{#2}%
|
||||
\strut\sectionstyle{#2}%
|
||||
\par\nobreak\addvspace{1ex}\@afterheading}
|
||||
|
||||
\RenewDocumentCommand{\subsection}{sm}{%
|
||||
\par\addvspace{1ex}%
|
||||
\phantomsection{}%
|
||||
\addcontentsline{toc}{subsection}{#2}%
|
||||
\strut\subsectionstyle{#2}%
|
||||
\par\nobreak\addvspace{0.5ex}\@afterheading}
|
||||
|
||||
\renewcommand*{\cvitem}[3][.25em]{%
|
||||
\ifthenelse{\equal{#2}{}}{}{\hintstyle{#2}: }{#3}%
|
||||
\par\addvspace{#1}}
|
||||
|
||||
\renewcommand*{\cvdoubleitem}[5][.25em]{%
|
||||
\begin{minipage}[t]{\doubleitemcolumnwidth}\hintstyle{#2}: #3\end{minipage}%
|
||||
\hfill% fill of \separatorcolumnwidth
|
||||
\begin{minipage}[t]{\doubleitemcolumnwidth}\ifthenelse{\equal{#4}{}}{}{\hintstyle{#4}: }#5\end{minipage}%
|
||||
\par\addvspace{#1}}
|
||||
|
||||
\renewcommand*{\cvlistitem}[2][.25em]{%
|
||||
\cvitem[#1]{}{\listitemsymbol\begin{minipage}[t]{\listitemcolumnwidth}#2\end{minipage}}}
|
||||
|
||||
\renewcommand*{\cvlistdoubleitem}[3][.25em]{%
|
||||
\cvitem[#1]{}{\listitemsymbol\begin{minipage}[t]{\listdoubleitemcolumnwidth}#2\end{minipage}%
|
||||
\hfill% fill of \separatorcolumnwidth
|
||||
\ifthenelse{\equal{#3}{}}%
|
||||
{}%
|
||||
{\listitemsymbol\begin{minipage}[t]{\listdoubleitemcolumnwidth}#3\end{minipage}}}}
|
||||
|
||||
\@initializebox{\cventryyearbox}
|
||||
\@initializelength{\cventrytitleboxwidth}
|
||||
\renewcommand*{\cventry}[7][.25em]{%
|
||||
\savebox{\cventryyearbox}{%
|
||||
\hspace*{2\separatorcolumnwidth}%
|
||||
\hintstyle{#2}}%
|
||||
\setlength{\cventrytitleboxwidth}{\widthof{\usebox{\cventryyearbox}}}%
|
||||
\setlength{\cventrytitleboxwidth}{\maincolumnwidth-\cventrytitleboxwidth}%
|
||||
\begin{minipage}{\maincolumnwidth}%
|
||||
\parbox[t]{\cventrytitleboxwidth}{%
|
||||
\strut%
|
||||
{\bfseries#3}%
|
||||
\ifthenelse{\equal{#4}{}}{}{, {\slshape#4}}%
|
||||
\ifthenelse{\equal{#5}{}}{}{, #5}%
|
||||
\ifthenelse{\equal{#6}{}}{}{, #6}%
|
||||
.\strut}%
|
||||
\usebox{\cventryyearbox}%
|
||||
\end{minipage}\strut%
|
||||
\ifx&%
|
||||
\else{%
|
||||
\newline{}%
|
||||
\strut%
|
||||
\begin{minipage}[t]{\maincolumnwidth}%
|
||||
\small%
|
||||
#7%
|
||||
\end{minipage}}\fi%
|
||||
\par\addvspace{#1}}
|
||||
|
||||
\@initializebox{\cvitemwithcommentmainbox}
|
||||
\@initializelength{\cvitemwithcommentmainlength}
|
||||
\@initializelength{\cvitemwithcommentcommentlength}
|
||||
\renewcommand*{\cvitemwithcomment}[4][.25em]{%
|
||||
\savebox{\cvitemwithcommentmainbox}{\ifthenelse{\equal{#2}{}}{}{\hintstyle{#2}: }#3}%
|
||||
\setlength{\cvitemwithcommentmainlength}{\widthof{\usebox{\cvitemwithcommentmainbox}}}%
|
||||
\setlength{\cvitemwithcommentcommentlength}{\maincolumnwidth-\separatorcolumnwidth-\cvitemwithcommentmainlength}%
|
||||
\begin{minipage}[t]{\cvitemwithcommentmainlength}\usebox{\cvitemwithcommentmainbox}\end{minipage}%
|
||||
\hfill% fill of \separatorcolumnwidth
|
||||
\begin{minipage}[t]{\cvitemwithcommentcommentlength}\raggedleft\small\itshape#4\end{minipage}%
|
||||
\par\addvspace{#1}}
|
||||
|
||||
\renewenvironment{thebibliography}[1]%
|
||||
{%
|
||||
\bibliographyhead{\refname}%
|
||||
% \small%
|
||||
\begin{list}{\bibliographyitemlabel}%
|
||||
{%
|
||||
\setlength{\topsep}{0pt}%
|
||||
\setlength{\labelwidth}{\hintscolumnwidth}%
|
||||
\setlength{\labelsep}{\separatorcolumnwidth}%
|
||||
\leftmargin\labelwidth%
|
||||
\advance\leftmargin\labelsep%
|
||||
\@openbib@code%
|
||||
\usecounter{enumiv}%
|
||||
\let\p@enumiv\@empty%
|
||||
\renewcommand\theenumiv{\@arabic\c@enumiv}}%
|
||||
\sloppy%
|
||||
\clubpenalty4000%\@clubpenalty \clubpenalty%
|
||||
\widowpenalty4000%
|
||||
\sfcode`\.\@m%
|
||||
\sfcode `\=1000\relax}%
|
||||
{%
|
||||
\def\@noitemerr{\@latex@warning{Empty `thebibliography' environment}}%
|
||||
\end{list}}
|
||||
|
||||
|
||||
%-------------------------------------------------------------------------------
|
||||
% letter style definition
|
||||
%-------------------------------------------------------------------------------
|
||||
% commands
|
||||
\renewcommand*{\recomputeletterbodylengths}{%
|
||||
\recomputecvbodylengths%
|
||||
\setlength{\parskip}{6\p@}}
|
||||
|
||||
\renewcommand*{\makeletterclosing}{
|
||||
\@closing\\[3em]%
|
||||
{\bfseries\@firstname~\@lastname}%
|
||||
\ifthenelse{\isundefined{\@enclosure}}{}{%
|
||||
\\%
|
||||
\vfil%
|
||||
{\color{color2}\itshape\enclname: \@enclosure}}%
|
||||
\vfil}
|
||||
|
||||
|
||||
\endinput
|
||||
|
||||
|
||||
%% end of file `moderncvbodyiv.sty'.
|
||||
210
moderncvbodyv.sty
Normal file
210
moderncvbodyv.sty
Normal file
@ -0,0 +1,210 @@
|
||||
%% start of file `moderncvbodyv.sty'.
|
||||
%% Copyright 2015-2015 Xavier Danaux (xdanaux@gmail.com).
|
||||
%
|
||||
% This work may be distributed and/or modified under the
|
||||
% conditions of the LaTeX Project Public License version 1.3c,
|
||||
% available at http://www.latex-project.org/lppl/.
|
||||
|
||||
|
||||
%-------------------------------------------------------------------------------
|
||||
% identification
|
||||
%-------------------------------------------------------------------------------
|
||||
\NeedsTeXFormat{LaTeX2e}
|
||||
\ProvidesPackage{moderncvbodyv}[2015/07/28 v2.0.0 modern curriculum vitae and letter body variant: 5]
|
||||
|
||||
|
||||
%-------------------------------------------------------------------------------
|
||||
% required packages
|
||||
%-------------------------------------------------------------------------------
|
||||
|
||||
|
||||
%-------------------------------------------------------------------------------
|
||||
% overall style definition
|
||||
%-------------------------------------------------------------------------------
|
||||
|
||||
|
||||
%-------------------------------------------------------------------------------
|
||||
% resume style definition
|
||||
%-------------------------------------------------------------------------------
|
||||
% fonts
|
||||
\renewcommand*{\sectionfont}{\Large\mdseries\upshape}
|
||||
\renewcommand*{\subsectionfont}{\large\mdseries\slshape}
|
||||
\renewcommand*{\hintfont}{\bfseries}
|
||||
|
||||
% styles
|
||||
\renewcommand*{\sectionstyle}[1]{{\sectionfont\textcolor{color1}{#1}}}
|
||||
\renewcommand*{\subsectionstyle}[1]{{\subsectionfont\textcolor{color1}{#1}}}
|
||||
\renewcommand*{\hintstyle}[1]{{\hintfont\textcolor{color0}{#1}}}
|
||||
|
||||
% lengths
|
||||
% used by \cvitem (and all children command)
|
||||
\@initializelength{\hintscolumnwidth} \setlength{\hintscolumnwidth}{0.25\textwidth}
|
||||
\@initializelength{\separatorcolumnwidth} \setlength{\separatorcolumnwidth}{0.025\textwidth}
|
||||
\@initializelength{\separatorrulewidth} \setlength{\separatorrulewidth}{1.2\p@}%
|
||||
\@initializelength{\maincolumnwidth}
|
||||
% used by \cvdoubleitem
|
||||
\@initializelength{\doubleitemcolumnwidth}
|
||||
% used by \cvlistitem
|
||||
\@initializelength{\listitemsymbolwidth} \settowidth{\listitemsymbolwidth}{\listitemsymbol}
|
||||
\@initializelength{\listitemcolumnwidth}
|
||||
%\@initializelength{\listitemmaincolumnwidth}
|
||||
% used by \cvlistdoubleitem
|
||||
\@initializelength{\listdoubleitemcolumnwidth}
|
||||
%\@initializelength{\listdoubleitemmaincolumnwidth}
|
||||
|
||||
% commands
|
||||
\@initializecommand{\recomputecvbodylengths}{%
|
||||
% body lengths
|
||||
\setlength{\maincolumnwidth}{\textwidth-\leftskip-\rightskip-\separatorcolumnwidth-\separatorcolumnwidth-\hintscolumnwidth-\separatorrulewidth}%
|
||||
\setlength{\listitemcolumnwidth}{\maincolumnwidth-\listitemsymbolwidth}%
|
||||
\setlength{\doubleitemcolumnwidth}{\maincolumnwidth-\separatorcolumnwidth}%
|
||||
\setlength{\doubleitemcolumnwidth}{0.5\doubleitemcolumnwidth}%
|
||||
\setlength{\listdoubleitemcolumnwidth}{\maincolumnwidth-\listitemsymbolwidth-\separatorcolumnwidth-\listitemsymbolwidth}%
|
||||
\setlength{\listdoubleitemcolumnwidth}{0.5\listdoubleitemcolumnwidth}%
|
||||
% regular lengths
|
||||
\setlength{\parskip}{0\p@}}
|
||||
|
||||
\@initializeif{\if@aftersection}\@aftersectionfalse%
|
||||
\RenewDocumentCommand{\section}{sm}{%
|
||||
\addvspace{2.5ex}%
|
||||
\phantomsection{}% reset the anchor for hyperrefs
|
||||
\addcontentsline{toc}{section}{#2}%
|
||||
\noindent\rlap{\@cvitem{\raggedleft\sectionstyle{#2}}{}}%
|
||||
\nobreak\@afterheading\@aftersectiontrue\ignorespaces}
|
||||
|
||||
%\@initializeif{\if@aftersubsection}\@aftersubsectionfalse%
|
||||
\RenewDocumentCommand{\subsection}{sm}{%
|
||||
%\addvspace{1ex}%
|
||||
\vspace*{-\arrayrulewidth}% HACK; I don't understand where the space is coming from, nor what it's exact value is :(
|
||||
\if@aftersection%
|
||||
\par\ignorespaces\fi%
|
||||
\phantomsection{}% reset the anchor for hyperrefs
|
||||
\addcontentsline{toc}{subsection}{#2}%
|
||||
\noindent\rlap{\@cvitem{\if@aftersection\else\@moderncvstrut{4pt}{24pt}\fi\raggedleft\subsectionstyle{#2}}{}}%
|
||||
\nobreak\@afterheading\@aftersectiontrue\ignorespaces}
|
||||
|
||||
\renewcommand*{\cvitem}[3][.5ex]{%
|
||||
\@cvitem[#1]{}{\ifthenelse{\equal{#2}{}}{}{\hintstyle{#2}: }{#3}}}
|
||||
|
||||
% underlying command to implement \cvitem, \subsection and \section
|
||||
\newcommand*{\@cvitem}[3][.5ex]{%
|
||||
\arrayrulecolor{color1}%
|
||||
\setlength\arrayrulewidth{\separatorrulewidth}%
|
||||
\if@aftersection\else%
|
||||
\vspace*{-\separatorrulewidth}\fi% HACK; I don't understand where the space is coming from, nor what it's exact value is :(
|
||||
\noindent%
|
||||
% \setlength{\fboxsep}{0pt}\framebox{% start of debuging
|
||||
\begin{tabular}[t]{@{}p{\hintscolumnwidth}@{\hspace{\separatorcolumnwidth}}|@{\hspace{\separatorcolumnwidth}}p{\maincolumnwidth}@{}}%
|
||||
\@moderncvstrut{4pt}{16pt}#2 \\[#1]% the spacing needs to be inside the cell for the vertical rule to extend correctly
|
||||
\end{tabular}%
|
||||
% }% end of debuging
|
||||
\par\@aftersectionfalse\ignorespaces}
|
||||
|
||||
\renewcommand*{\cvdoubleitem}[5][.5ex]{%
|
||||
\@cvitem[#1]{}{%
|
||||
\begin{minipage}[t]{\doubleitemcolumnwidth}\hintstyle{#2}: #3\end{minipage}%
|
||||
\hfill% fill of \separatorcolumnwidth
|
||||
\begin{minipage}[t]{\doubleitemcolumnwidth}\ifthenelse{\equal{#4}{}}{}{\hintstyle{#4}: }#5\end{minipage}}}
|
||||
|
||||
\renewcommand*{\cvlistitem}[2][.5ex]{%
|
||||
\@cvitem[#1]{}{\listitemsymbol\begin{minipage}[t]{\listitemcolumnwidth}#2\end{minipage}}}
|
||||
|
||||
\renewcommand*{\cvlistdoubleitem}[3][.5ex]{%
|
||||
\@cvitem[#1]{}{\listitemsymbol\begin{minipage}[t]{\listdoubleitemcolumnwidth}#2\end{minipage}%
|
||||
\hfill% fill of \separatorcolumnwidth
|
||||
\ifthenelse{\equal{#3}{}}%
|
||||
{}%
|
||||
{\listitemsymbol\begin{minipage}[t]{\listdoubleitemcolumnwidth}#3\end{minipage}}}}
|
||||
|
||||
\@initializebox{\cventryyearbox}
|
||||
\@initializelength{\cventrytitleboxwidth}
|
||||
\renewcommand*{\cventry}[7][.5ex]{%
|
||||
\savebox{\cventryyearbox}{%
|
||||
\hspace*{2\separatorcolumnwidth}%
|
||||
\hintstyle{#2}}%
|
||||
\setlength{\cventrytitleboxwidth}{\widthof{\usebox{\cventryyearbox}}}%
|
||||
\setlength{\cventrytitleboxwidth}{\maincolumnwidth-\cventrytitleboxwidth}%
|
||||
\cvitem[#1]{}{%
|
||||
\parbox[t]{\cventrytitleboxwidth}{%
|
||||
\strut%
|
||||
{\bfseries#3}%
|
||||
\ifthenelse{\equal{#4}{}}{}{, {\slshape#4}}%
|
||||
\ifthenelse{\equal{#5}{}}{}{, #5}%
|
||||
\ifthenelse{\equal{#6}{}}{}{, #6}%
|
||||
.\strut}%
|
||||
\usebox{\cventryyearbox}}%
|
||||
\ifx&%
|
||||
\else%
|
||||
\vspace*{-4pt}%
|
||||
\cvitem[#1]{}{\small#7}\fi}
|
||||
|
||||
\@initializebox{\cvitemwithcommentmainbox}
|
||||
\@initializelength{\cvitemwithcommentmainlength}
|
||||
\@initializelength{\cvitemwithcommentcommentlength}
|
||||
\renewcommand*{\cvitemwithcomment}[4][.5ex]{%
|
||||
\savebox{\cvitemwithcommentmainbox}{\ifthenelse{\equal{#2}{}}{}{\hintstyle{#2}: }#3}%
|
||||
\setlength{\cvitemwithcommentmainlength}{\widthof{\usebox{\cvitemwithcommentmainbox}}}%
|
||||
\setlength{\cvitemwithcommentcommentlength}{\maincolumnwidth-\separatorcolumnwidth-\cvitemwithcommentmainlength}%
|
||||
\@cvitem[#1]{}{%
|
||||
\begin{minipage}[t]{\cvitemwithcommentmainlength}\usebox{\cvitemwithcommentmainbox}\end{minipage}%
|
||||
\hfill% fill of \separatorcolumnwidth
|
||||
\begin{minipage}[t]{\cvitemwithcommentcommentlength}\raggedleft\small\itshape#4\end{minipage}}}
|
||||
|
||||
\renewenvironment{thebibliography}[1]% BUG/TODO: remove extra space between heading and first bibliography entry, as well as after last one
|
||||
{%
|
||||
\bibliographyhead{\refname}%
|
||||
% \small%
|
||||
\arrayrulecolor{color1}%
|
||||
\setlength\arrayrulewidth{\separatorrulewidth}%
|
||||
\noindent%
|
||||
\begin{tabular}[t]{@{}p{\hintscolumnwidth}@{\hspace{\separatorcolumnwidth}}|@{\hspace{\separatorcolumnwidth}}p{\maincolumnwidth}@{}}%
|
||||
\@moderncvstrut{4pt}{16pt} &%
|
||||
\begin{list}{\bibliographyitemlabel}{%
|
||||
\setlength{\topsep}{0pt}%
|
||||
\setlength{\partopsep}{0pt}%
|
||||
\setlength{\labelwidth}{0pt}%
|
||||
\setlength{\itemsep}{0pt}%
|
||||
\setlength{\parskip}{0pt}%
|
||||
\ifthenelse{\equal{\bibliographyitemlabel}{}}%
|
||||
{\setlength{\labelsep}{0pt}}%
|
||||
{\setlength{\labelsep}{\separatorcolumnwidth}}%
|
||||
\leftmargin\labelwidth%
|
||||
\advance\leftmargin\labelsep%
|
||||
\@openbib@code%
|
||||
\usecounter{enumiv}%
|
||||
\let\p@enumiv\@empty%
|
||||
\renewcommand\theenumiv{\@arabic\c@enumiv}}%
|
||||
\sloppy%
|
||||
\clubpenalty4000%\@clubpenalty \clubpenalty%
|
||||
\widowpenalty4000%
|
||||
\sfcode`\.\@m%
|
||||
\sfcode `\=1000\relax}%
|
||||
{%
|
||||
\def\@noitemerr{\@latex@warning{Empty `thebibliography' environment}}%
|
||||
\end{list}%
|
||||
\\[.5ex]%
|
||||
\end{tabular}%
|
||||
\par\@aftersectionfalse\ignorespaces}
|
||||
|
||||
|
||||
%-------------------------------------------------------------------------------
|
||||
% letter style definition
|
||||
%-------------------------------------------------------------------------------
|
||||
% commands
|
||||
\renewcommand*{\recomputeletterbodylengths}{%
|
||||
\recomputecvbodylengths%
|
||||
\setlength{\parskip}{6\p@}}
|
||||
|
||||
\renewcommand*{\makeletterclosing}{
|
||||
\@closing\\[3em]%
|
||||
{\bfseries \@firstname~\@lastname}%
|
||||
\ifthenelse{\isundefined{\@enclosure}}{}{%
|
||||
\\%
|
||||
\vfill%
|
||||
{\color{color2}\itshape\enclname: \@enclosure}}}
|
||||
|
||||
|
||||
\endinput
|
||||
|
||||
|
||||
%% end of file `moderncvbodyv.sty'.
|
||||
@ -1,5 +1,5 @@
|
||||
%% start of file `moderncvcollection.sty'.
|
||||
%% Copyright 2013-2013 Xavier Danaux (xdanaux@gmail.com).
|
||||
%% Copyright 2013-2015 Xavier Danaux (xdanaux@gmail.com).
|
||||
%
|
||||
% 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}
|
||||
\ProvidesPackage{moderncvcollection}[2013/04/29 v1.5.1 moderncv collections]
|
||||
\ProvidesPackage{moderncvcollection}[2015/07/28 v2.0.0 moderncv collections]
|
||||
|
||||
|
||||
%-------------------------------------------------------------------------------
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
%% start of file `moderncvcolorblack.sty'.
|
||||
%% Copyright 2006-2013 Xavier Danaux (xdanaux@gmail.com).
|
||||
%% Copyright 2006-2015 Xavier Danaux (xdanaux@gmail.com).
|
||||
%
|
||||
% 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}
|
||||
\ProvidesPackage{moderncvcolorblack}[2013/04/29 v1.5.1 modern curriculum vitae and letter color scheme: black]
|
||||
\ProvidesPackage{moderncvcolorblack}[2015/07/28 v2.0.0 modern curriculum vitae and letter color scheme: black]
|
||||
|
||||
|
||||
%-------------------------------------------------------------------------------
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
%% start of file `moderncvcolorblue.sty'.
|
||||
%% Copyright 2006-2013 Xavier Danaux (xdanaux@gmail.com).
|
||||
%% Copyright 2006-2015 Xavier Danaux (xdanaux@gmail.com).
|
||||
%
|
||||
% 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}
|
||||
\ProvidesPackage{moderncvcolorblue}[2013/04/29 v1.5.1 modern curriculum vitae and letter color scheme: blue]
|
||||
\ProvidesPackage{moderncvcolorblue}[2015/07/28 v2.0.0 modern curriculum vitae and letter color scheme: blue]
|
||||
|
||||
|
||||
%-------------------------------------------------------------------------------
|
||||
|
||||
27
moderncvcolorburgundy.sty
Normal file
27
moderncvcolorburgundy.sty
Normal file
@ -0,0 +1,27 @@
|
||||
%% start of file `moderncvcolorburgundy.sty'.
|
||||
%% Copyright 2006-2015 Xavier Danaux (xdanaux@gmail.com).
|
||||
%
|
||||
% This work may be distributed and/or modified under the
|
||||
% conditions of the LaTeX Project Public License version 1.3c,
|
||||
% available at http://www.latex-project.org/lppl/.
|
||||
|
||||
|
||||
%-------------------------------------------------------------------------------
|
||||
% identification
|
||||
%-------------------------------------------------------------------------------
|
||||
\NeedsTeXFormat{LaTeX2e}
|
||||
\ProvidesPackage{moderncvcolorburgundy}[2015/07/28 v2.0.0 modern curriculum vitae and letter color scheme: burgundy]
|
||||
|
||||
|
||||
%-------------------------------------------------------------------------------
|
||||
% color scheme definition
|
||||
%-------------------------------------------------------------------------------
|
||||
\definecolor{color0}{rgb}{0,0,0}% black
|
||||
\definecolor{color1}{rgb}{0.596078,0,0}% burgundy: 139/255 (0.545098) or 152/255 (0.596078)
|
||||
\definecolor{color2}{rgb}{0.45,0.45,0.45}% dark grey
|
||||
|
||||
|
||||
\endinput
|
||||
|
||||
|
||||
%% end of file `moderncvcolorburgundy.sty'.
|
||||
@ -1,5 +1,5 @@
|
||||
%% start of file `moderncvcolorgreen.sty'.
|
||||
%% Copyright 2006-2013 Xavier Danaux (xdanaux@gmail.com).
|
||||
%% Copyright 2006-2015 Xavier Danaux (xdanaux@gmail.com).
|
||||
%
|
||||
% 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}
|
||||
\ProvidesPackage{moderncvcolorgreen}[2013/04/29 v1.5.1 modern curriculum vitae and letter color scheme: green]
|
||||
\ProvidesPackage{moderncvcolorgreen}[2015/07/28 v2.0.0 modern curriculum vitae and letter color scheme: green]
|
||||
|
||||
|
||||
%-------------------------------------------------------------------------------
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
%% start of file `moderncvcolorgrey.sty'.
|
||||
%% Copyright 2006-2013 Xavier Danaux (xdanaux@gmail.com).
|
||||
%% Copyright 2006-2015 Xavier Danaux (xdanaux@gmail.com).
|
||||
%
|
||||
% 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}
|
||||
\ProvidesPackage{moderncvcolorgrey}[2013/04/29 v1.5.1 modern curriculum vitae and letter color scheme: grey]
|
||||
\ProvidesPackage{moderncvcolorgrey}[2015/07/28 v2.0.0 modern curriculum vitae and letter color scheme: grey]
|
||||
|
||||
|
||||
%-------------------------------------------------------------------------------
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
%% start of file `moderncvcolororange.sty'.
|
||||
%% Copyright 2006-2013 Xavier Danaux (xdanaux@gmail.com).
|
||||
%% Copyright 2006-2015 Xavier Danaux (xdanaux@gmail.com).
|
||||
%
|
||||
% 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}
|
||||
\ProvidesPackage{moderncvcolororange}[2013/04/29 v1.5.1 modern curriculum vitae and letter color scheme: orange]
|
||||
\ProvidesPackage{moderncvcolororange}[2015/07/28 v2.0.0 modern curriculum vitae and letter color scheme: orange]
|
||||
|
||||
|
||||
%-------------------------------------------------------------------------------
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
%% start of file `moderncvcolorpurple.sty'.
|
||||
%% Copyright 2006-2013 Xavier Danaux (xdanaux@gmail.com).
|
||||
%% Copyright 2006-2015 Xavier Danaux (xdanaux@gmail.com).
|
||||
%
|
||||
% 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}
|
||||
\ProvidesPackage{moderncvcolorpurple}[2013/04/29 v1.5.1 modern curriculum vitae and letter color scheme: purple]
|
||||
\ProvidesPackage{moderncvcolorpurple}[2015/07/28 v2.0.0 modern curriculum vitae and letter color scheme: purple]
|
||||
|
||||
|
||||
%-------------------------------------------------------------------------------
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
%% start of file `moderncvcolorred.sty'.
|
||||
%% Copyright 2006-2013 Xavier Danaux (xdanaux@gmail.com).
|
||||
%% Copyright 2006-2015 Xavier Danaux (xdanaux@gmail.com).
|
||||
%
|
||||
% 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}
|
||||
\ProvidesPackage{moderncvcolorred}[2013/04/29 v1.5.1 modern curriculum vitae and letter color scheme: red]
|
||||
\ProvidesPackage{moderncvcolorred}[2015/07/28 v2.0.0 modern curriculum vitae and letter color scheme: red]
|
||||
|
||||
|
||||
%-------------------------------------------------------------------------------
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
%% start of file `moderncvcompatibility.sty'.
|
||||
%% Copyright 2006-2013 Xavier Danaux (xdanaux@gmail.com).
|
||||
%% Copyright 2006-2015 Xavier Danaux (xdanaux@gmail.com).
|
||||
%
|
||||
% 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}
|
||||
\ProvidesPackage{moderncvcompatibility}[2013/04/29 v1.5.1 modern curriculum vitae and letter compatibility patches]
|
||||
\ProvidesPackage{moderncvcompatibility}[2015/07/28 v2.0.0 modern curriculum vitae and letter compatibility patches]
|
||||
|
||||
|
||||
%-------------------------------------------------------------------------------
|
||||
|
||||
54
moderncvdebugtools.sty
Normal file
54
moderncvdebugtools.sty
Normal file
@ -0,0 +1,54 @@
|
||||
%% start of file `moderncvdebugtools.sty'.
|
||||
%% Copyright 2013-2015 Xavier Danaux (xdanaux@gmail.com).
|
||||
%
|
||||
% This work may be distributed and/or modified under the
|
||||
% conditions of the LaTeX Project Public License version 1.3c,
|
||||
% available at http://www.latex-project.org/lppl/.
|
||||
|
||||
|
||||
%-------------------------------------------------------------------------------
|
||||
% identification
|
||||
%-------------------------------------------------------------------------------
|
||||
\NeedsTeXFormat{LaTeX2e}
|
||||
\ProvidesPackage{moderncvdebugtools}[2015/07/28 v2.0.0 modern curriculum vitae and letter debug tools]
|
||||
|
||||
|
||||
%-------------------------------------------------------------------------------
|
||||
% required packages
|
||||
%-------------------------------------------------------------------------------
|
||||
\RequirePackage{tikz}
|
||||
|
||||
|
||||
%-------------------------------------------------------------------------------
|
||||
% debug tools
|
||||
%-------------------------------------------------------------------------------
|
||||
% code of \tracedebugvrule and \tracedebughrule provided by Gonzalo Medina on TeX.SX (cfr tex.stackexchange.com/a/110805/10102)
|
||||
\newcounter{debugrule}
|
||||
\pgfdeclarelayer{background}
|
||||
\pgfsetlayers{background,main}
|
||||
|
||||
\DeclareDocumentCommand{\tracedebugvrule}{oO{0pt}}{%
|
||||
\stepcounter{debugrule}%
|
||||
\begin{tikzpicture}[remember picture,overlay]
|
||||
\begin{pgfonlayer}{background}
|
||||
\coordinate (a\thedebugrule);
|
||||
\draw[red,thin,#1]
|
||||
([xshift=#2]a\thedebugrule|-current page.north) -- ([xshift=#2]a\thedebugrule|-current page.south);
|
||||
\end{pgfonlayer}
|
||||
\end{tikzpicture}}
|
||||
|
||||
\DeclareDocumentCommand{\tracedebughrule}{oO{0pt}}{%
|
||||
\stepcounter{debugrule}%
|
||||
\begin{tikzpicture}[remember picture,overlay]
|
||||
\begin{pgfonlayer}{background}
|
||||
\coordinate (b\thedebugrule);
|
||||
\draw[red,thin,#1]
|
||||
([yshift=#2]b\thedebugrule-|current page.west) -- ([yshift=#2]b\thedebugrule-|current page.east);
|
||||
\end{pgfonlayer}
|
||||
\end{tikzpicture}}
|
||||
|
||||
|
||||
\endinput
|
||||
|
||||
|
||||
%% end of file `moderncvdebugtools.sty'.
|
||||
134
moderncvfooti.sty
Normal file
134
moderncvfooti.sty
Normal file
@ -0,0 +1,134 @@
|
||||
%% start of file `moderncvfooti.sty'.
|
||||
%% Copyright 2006-2015 Xavier Danaux (xdanaux@gmail.com).
|
||||
%
|
||||
% This work may be distributed and/or modified under the
|
||||
% conditions of the LaTeX Project Public License version 1.3c,
|
||||
% available at http://www.latex-project.org/lppl/.
|
||||
|
||||
|
||||
%-------------------------------------------------------------------------------
|
||||
% identification
|
||||
%-------------------------------------------------------------------------------
|
||||
\NeedsTeXFormat{LaTeX2e}
|
||||
\ProvidesPackage{moderncvfooti}[2015/07/28 v2.0.0 modern curriculum vitae and letter footer variant: 1]
|
||||
|
||||
|
||||
%-------------------------------------------------------------------------------
|
||||
% required packages
|
||||
%-------------------------------------------------------------------------------
|
||||
|
||||
|
||||
%-------------------------------------------------------------------------------
|
||||
% overall foot definition
|
||||
%-------------------------------------------------------------------------------
|
||||
% fonts
|
||||
\renewcommand*{\addressfont}{\normalsize\mdseries\slshape}
|
||||
|
||||
% symbols
|
||||
% footer symbol used to separate footer elements
|
||||
\newcommand*{\footsymbol}{%
|
||||
{~~~{\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
|
||||
|
||||
% lengths
|
||||
\@initializelength{\footwidth}%
|
||||
\renewcommand*{\recomputefootlengths}{%
|
||||
\setlength{\footwidth}{0.8\textwidth}}
|
||||
|
||||
% commands
|
||||
% internal command to add an element to the footer
|
||||
% it collects the elements in a temporary box, and checks when to flush the box
|
||||
\@initializebox{\footbox}%
|
||||
\@initializebox{\foottempbox}%
|
||||
\@initializelength{\footboxwidth}%
|
||||
\@initializeif{\if@firstfootelement}\@firstfootelementtrue%
|
||||
% adds an element to the footer, separated by footsymbol
|
||||
% usage: \addtofoot[footsymbol]{element}
|
||||
\newcommand*{\addtofoot}[2][\footsymbol]{%
|
||||
\if@firstfootelement%
|
||||
\savebox{\foottempbox}{\usebox{\footbox}#2}%
|
||||
\else%
|
||||
\savebox{\foottempbox}{\usebox{\footbox}#1#2}\fi%
|
||||
\settowidth{\footboxwidth}{\usebox{\foottempbox}}%
|
||||
\ifnum\footboxwidth<\footwidth%
|
||||
\savebox{\footbox}{\usebox{\foottempbox}}%
|
||||
\@firstfootelementfalse%
|
||||
\else%
|
||||
\flushfoot\\%
|
||||
\savebox{\footbox}{#2}%
|
||||
\savebox{\foottempbox}{#2}%
|
||||
\settowidth{\footboxwidth}{\usebox{\footbox}}%
|
||||
\@firstfootelementfalse\fi}
|
||||
% internal command to flush the foot
|
||||
\newcommand*{\flushfoot}{%
|
||||
\strut\usebox{\footbox}%
|
||||
\savebox{\footbox}{}%
|
||||
\savebox{\foottempbox}{}%
|
||||
\setlength{\footboxwidth}{0pt}}
|
||||
|
||||
|
||||
%-------------------------------------------------------------------------------
|
||||
% resume foot definition
|
||||
%-------------------------------------------------------------------------------
|
||||
% lenghts
|
||||
\renewcommand*{\recomputecvfootlengths}{\recomputefootlengths}
|
||||
|
||||
% commands
|
||||
\renewcommand*{\makecvfoot}{%
|
||||
\recomputecvfootlengths{}%
|
||||
\fancypagestyle{plain}{%
|
||||
\fancyfoot[c]{%
|
||||
\parbox[b]{\footwidth}{%
|
||||
\centering%
|
||||
\color{color2}\addressfont%
|
||||
\vspace{\baselineskip}% forces a white line to ensure space between main text and footer (as footer height can't be known in advance)
|
||||
\ifthenelse{\isundefined{\@addressstreet}}{}{\addtofoot[]{\addresssymbol\@addressstreet}%
|
||||
\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\\}%
|
||||
\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\httplink{\@homepage}}}%
|
||||
\collectionloop{socials}{% the key holds the social type (=symbol command prefix), the item holds the link
|
||||
\addtofoot{\csname\collectionloopkey socialsymbol\endcsname\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
|
||||
}}}%
|
||||
\pagestyle{plain}}
|
||||
|
||||
|
||||
%-------------------------------------------------------------------------------
|
||||
% letter foot definition
|
||||
%-------------------------------------------------------------------------------
|
||||
% commands
|
||||
\renewcommand*{\recomputeletterfootlengths}{\recomputefootlengths}
|
||||
\renewcommand*{\makeletterfoot}{%
|
||||
\recomputeletterfootlengths{}%
|
||||
\fancypagestyle{plain}{%
|
||||
\fancyfoot[c]{%
|
||||
\parbox[b]{\footwidth}{%
|
||||
\centering%
|
||||
\addressfont\color{color2}%
|
||||
\vspace{\baselineskip}% forces a white line to ensure space between main text and footer (as footer height can't be known in advance)
|
||||
\vspace{-\baselineskip}% to cancel out the extra vertical space taken by the name (below) and ensure perfect alignment of letter and cv footers
|
||||
\strut{\bfseries\upshape\@firstname~\@lastname}\\% the \strut is required to ensure the line is exactly \baselineskip tall
|
||||
\ifthenelse{\isundefined{\@addressstreet}}{}{\addtofoot[]{\addresssymbol\@addressstreet}%
|
||||
\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\\}%
|
||||
\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\httplink{\@homepage}}}%
|
||||
\collectionloop{socials}{% the key holds the social type (=symbol command prefix), the item holds the link
|
||||
\addtofoot{\csname\collectionloopkey socialsymbol\endcsname\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
|
||||
}}}%
|
||||
\pagestyle{plain}}
|
||||
|
||||
|
||||
\endinput
|
||||
|
||||
|
||||
%% end of file `moderncvfooti.sty'.
|
||||
187
moderncvheadi.sty
Normal file
187
moderncvheadi.sty
Normal file
@ -0,0 +1,187 @@
|
||||
%% start of file `moderncvheadi.sty'.
|
||||
%% Copyright 2006-2015 Xavier Danaux (xdanaux@gmail.com).
|
||||
%
|
||||
% This work may be distributed and/or modified under the
|
||||
% conditions of the LaTeX Project Public License version 1.3c,
|
||||
% available at http://www.latex-project.org/lppl/.
|
||||
|
||||
|
||||
%-------------------------------------------------------------------------------
|
||||
% identification
|
||||
%-------------------------------------------------------------------------------
|
||||
\NeedsTeXFormat{LaTeX2e}
|
||||
\ProvidesPackage{moderncvheadi}[2015/07/28 v2.0.0 modern curriculum vitae and letter header variant: 1]
|
||||
|
||||
% details options: "details" (default) or "nodetails"
|
||||
\@initializeif{\if@details}\@detailsfalse
|
||||
\DeclareOption{details} {\@detailstrue}
|
||||
\DeclareOption{nodetails} {\@detailsfalse}
|
||||
|
||||
% left/right options: "left" (default) or "right"
|
||||
\@initializeif{\if@left} \@leftfalse
|
||||
\DeclareOption{left} {\@lefttrue\@rightfalse}
|
||||
\@initializeif{\if@right}\@rightfalse
|
||||
\DeclareOption{right} {\@leftfalse\@righttrue}
|
||||
|
||||
\DeclareOption*{}% avoid choking on unknown options
|
||||
\ExecuteOptions{details,left}
|
||||
\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
|
||||
|
||||
|
||||
%-------------------------------------------------------------------------------
|
||||
% required packages
|
||||
%-------------------------------------------------------------------------------
|
||||
|
||||
|
||||
%-------------------------------------------------------------------------------
|
||||
% overall head definition
|
||||
%-------------------------------------------------------------------------------
|
||||
% fonts
|
||||
\renewcommand*{\namefont}{\fontsize{34}{36}\mdseries\upshape}
|
||||
\renewcommand*{\titlefont}{\LARGE\mdseries\slshape}
|
||||
\renewcommand*{\addressfont}{\small\mdseries\slshape}
|
||||
\renewcommand*{\quotefont}{\large\slshape}
|
||||
|
||||
% styles
|
||||
\renewcommand*{\namestyle}[1]{{\namefont\textcolor{color0}{#1}}}
|
||||
\renewcommand*{\titlestyle}[1]{{\titlefont\textcolor{color2}{#1}}}
|
||||
\renewcommand*{\addressstyle}[1]{{\addressfont\textcolor{color2}{#1}}}
|
||||
\renewcommand*{\quotestyle}[1]{{\quotefont\textcolor{color1}{#1}}}
|
||||
|
||||
|
||||
%-------------------------------------------------------------------------------
|
||||
% resume head definition
|
||||
%-------------------------------------------------------------------------------
|
||||
% lengths
|
||||
\@initializelength{\quotewidth}
|
||||
% optional makecvheadname width to force a certain width (if set/remains to 0pt, the width is calculated automatically)
|
||||
\@initializelength{\makecvheadnamewidth}
|
||||
\renewcommand*{\recomputecvheadlengths}{%
|
||||
\setlength{\quotewidth}{0.65\textwidth}}
|
||||
|
||||
% commands
|
||||
\renewcommand*{\makecvhead}{%
|
||||
% recompute lengths (in case we are switching from letter to resume, or vice versa)
|
||||
\recomputecvlengths%
|
||||
% 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}}%
|
||||
\savebox{\makecvheaddetailsbox}{%
|
||||
\addressfont\color{color2}%
|
||||
\if@left\begin{tabular}[b]{@{}r@{}}\fi%
|
||||
\if@right\begin{tabular}[b]{@{}l@{}}\fi%
|
||||
\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}}%
|
||||
\socialsdetails% needs to be pre-rendered as loops and tabulars seem to conflict
|
||||
\ifthenelse{\isundefined{\@extrainfo}}{}{\makenewline\@extrainfo}%
|
||||
\end{tabular}
|
||||
}\fi%
|
||||
% optional photo (pre-rendering)
|
||||
\@initializebox{\makecvheadpicturebox}%
|
||||
\savebox{\makecvheadpicturebox}{%
|
||||
\ifthenelse{\isundefined{\@photo}}%
|
||||
{}%
|
||||
{%
|
||||
\if@left%
|
||||
\hspace*{\separatorcolumnwidth}\fi%
|
||||
\color{color1}%
|
||||
\setlength{\fboxrule}{\@photoframewidth}%
|
||||
\ifdim\@photoframewidth=0pt%
|
||||
\setlength{\fboxsep}{0pt}\fi%
|
||||
\framebox{\includegraphics[width=\@photowidth]{\@photo}}}%
|
||||
\if@right%
|
||||
\hspace*{\separatorcolumnwidth}\fi}%
|
||||
% name and title (pre-rendering)
|
||||
\@initializelength{\makecvheaddetailswidth}\settowidth{\makecvheaddetailswidth}{\usebox{\makecvheaddetailsbox}}%
|
||||
\@initializelength{\makecvheadpicturewidth}\settowidth{\makecvheadpicturewidth}{\usebox{\makecvheadpicturebox}}%
|
||||
\ifthenelse{\lengthtest{\makecvheadnamewidth=0pt}}% check for dummy value (equivalent to \ifdim\makecvheadnamewidth=0pt)
|
||||
{\setlength{\makecvheadnamewidth}{\textwidth-\makecvheaddetailswidth-\makecvheadpicturewidth}}%
|
||||
{}%
|
||||
\@initializebox{\makecvheadnamebox}%
|
||||
\savebox{\makecvheadnamebox}{%
|
||||
\begin{minipage}[b]{\makecvheadnamewidth}%
|
||||
\if@left\raggedright\fi%
|
||||
\if@right\raggedleft\fi%
|
||||
\namestyle{\@firstname\ \@lastname}%
|
||||
\ifthenelse{\equal{\@title}{}}{}{\\[1.25em]\titlestyle{\@title}}%
|
||||
\end{minipage}}%
|
||||
% rendering
|
||||
\if@left%
|
||||
\usebox{\makecvheadnamebox}%
|
||||
\hfill%
|
||||
\llap{\usebox{\makecvheaddetailsbox}}% \llap is used to suppress the width of the box, allowing overlap if the value of makecvheadnamewidth is forced
|
||||
\usebox{\makecvheadpicturebox}\fi%
|
||||
\if@right%
|
||||
\usebox{\makecvheadpicturebox}%
|
||||
\rlap{\usebox{\makecvheaddetailsbox}}% \llap is used to suppress the width of the box, allowing overlap if the value of makecvheadnamewidth is forced
|
||||
\hfill%
|
||||
\usebox{\makecvheadnamebox}\fi%
|
||||
\\[2.5em]%
|
||||
% optional quote
|
||||
\ifthenelse{\isundefined{\@quote}}%
|
||||
{}%
|
||||
{{\centering\begin{minipage}{\quotewidth}\centering\quotestyle{\@quote}\end{minipage}\\[2.5em]}}%
|
||||
\par}% to avoid weird spacing bug at the first section if no blank line is left after \makecvhead
|
||||
|
||||
|
||||
%-------------------------------------------------------------------------------
|
||||
% letter head definition
|
||||
%-------------------------------------------------------------------------------
|
||||
% lengths
|
||||
%\renewcommand*{\recomputeletterheadlengths}{}
|
||||
|
||||
% commands
|
||||
\renewcommand*{\makeletterhead}{%
|
||||
% recompute lengths (in case we are switching from letter to resume, or vice versa)
|
||||
\recomputeletterlengths%
|
||||
% sender contact info
|
||||
\hfill%
|
||||
\begin{minipage}{.5\textwidth}%
|
||||
% optional detailed information
|
||||
\if@details%
|
||||
\raggedleft%
|
||||
\addressfont\textcolor{color2}{%
|
||||
{\bfseries\upshape\@firstname~\@lastname}\@firstdetailselementfalse%
|
||||
% optional detailed information
|
||||
\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\httplink{\@homepage}}%
|
||||
\ifthenelse{\isundefined{\@extrainfo}}{}{\makenewline\@extrainfo}}\fi%
|
||||
\end{minipage}\\[1em]
|
||||
% recipient block
|
||||
\begin{minipage}[t]{.5\textwidth}
|
||||
\raggedright%
|
||||
\addressfont%
|
||||
{\bfseries\upshape\@recipientname}\\%
|
||||
\@recipientaddress%
|
||||
\end{minipage}
|
||||
% date
|
||||
\hfill% US style
|
||||
% \\[1em]% UK style
|
||||
\@date\\[2em]% US informal style: "January 1, 1900"; UK formal style: "01/01/1900"
|
||||
% opening
|
||||
\raggedright%
|
||||
\@opening\\[1.5em]%
|
||||
% ensure no extra spacing after \makelettertitle due to a possible blank line
|
||||
% \ignorespacesafterend% not working
|
||||
\hspace{0pt}\par\vspace{-\baselineskip}\vspace{-\parskip}}
|
||||
|
||||
|
||||
\endinput
|
||||
|
||||
|
||||
%% end of file `moderncvheadi.sty'.
|
||||
205
moderncvheadii.sty
Normal file
205
moderncvheadii.sty
Normal file
@ -0,0 +1,205 @@
|
||||
%% start of file `moderncvheadii.sty'.
|
||||
%% Copyright 2006-2015 Xavier Danaux (xdanaux@gmail.com).
|
||||
%
|
||||
% This work may be distributed and/or modified under the
|
||||
% conditions of the LaTeX Project Public License version 1.3c,
|
||||
% available at http://www.latex-project.org/lppl/.
|
||||
|
||||
|
||||
%-------------------------------------------------------------------------------
|
||||
% identification
|
||||
%-------------------------------------------------------------------------------
|
||||
\NeedsTeXFormat{LaTeX2e}
|
||||
\ProvidesPackage{moderncvheadii}[2015/07/28 v2.0.0 modern curriculum vitae and letter header variant: 2]
|
||||
|
||||
% details options: "details" or "nodetails" (default)
|
||||
\@initializeif{\if@details}\@detailsfalse
|
||||
\DeclareOption{details}{\@detailstrue}
|
||||
\DeclareOption{nodetails}{\@detailsfalse}
|
||||
|
||||
% name design options: "alternate" (lowercase names & title, no spacing)
|
||||
\@initializeif{\if@alternate}\@alternatefalse
|
||||
\DeclareOption{alternate}{\@alternatetrue}
|
||||
|
||||
% left/right options: "left" or "right" (default)
|
||||
\@initializeif{\if@left} \@leftfalse
|
||||
\DeclareOption{left} {\@lefttrue\@rightfalse}
|
||||
\@initializeif{\if@right}\@rightfalse
|
||||
\DeclareOption{right} {\@leftfalse\@righttrue}
|
||||
|
||||
\DeclareOption*{}% avoid choking on unknown options
|
||||
\ExecuteOptions{nodetails,right}
|
||||
\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
|
||||
|
||||
|
||||
%-------------------------------------------------------------------------------
|
||||
% required packages
|
||||
%-------------------------------------------------------------------------------
|
||||
|
||||
|
||||
%-------------------------------------------------------------------------------
|
||||
% overall head definition
|
||||
%-------------------------------------------------------------------------------
|
||||
% fonts
|
||||
\renewcommand*{\namefont}{\fontsize{38}{40}\mdseries\upshape}
|
||||
\renewcommand*{\titlefont}{\LARGE\mdseries\slshape}
|
||||
\renewcommand*{\addressfont}{\normalsize\mdseries\slshape}
|
||||
\renewcommand*{\quotefont}{\large\slshape}
|
||||
|
||||
% styles
|
||||
\renewcommand*{\namestyle}[1]{{\namefont\textcolor{color0}{#1}}}
|
||||
\renewcommand*{\titlestyle}[1]{{\titlefont\textcolor{color2}{#1}}}
|
||||
\renewcommand*{\addressstyle}[1]{{\addressfont\textcolor{color2}{#1}}}
|
||||
\renewcommand*{\quotestyle}[1]{{\quotefont\textcolor{color1}{#1}}}
|
||||
|
||||
% commands
|
||||
\@initializecommand{\makeheaddetailssymbol}{%
|
||||
{~~~{\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
|
||||
% internal command to add an element to the footer
|
||||
% it collects the elements in a temporary box, and checks when to flush the box
|
||||
\@initializebox{\makeheaddetailsbox}%
|
||||
\@initializebox{\makeheaddetailstempbox}%
|
||||
\@initializelength{\makeheaddetailswidth}%
|
||||
\@initializelength{\makeheaddetailsboxwidth}%
|
||||
\@initializeif{\if@firstmakeheaddetailselement}\@firstmakeheaddetailselementtrue%
|
||||
% adds an element to the makehead, separated by makeheadsymbol
|
||||
% usage: \addtomakehead[makeheadsymbol]{element}
|
||||
\newcommand*{\addtomakeheaddetails}[2][\makeheaddetailssymbol]{% TODO: use \@initializecommand, which requires modifying its definition to handle mandatory and optional arguments
|
||||
\if@firstmakeheaddetailselement%
|
||||
\savebox{\makeheaddetailstempbox}{\usebox{\makeheaddetailsbox}#2}%
|
||||
\else%
|
||||
\savebox{\makeheaddetailstempbox}{\usebox{\makeheaddetailsbox}#1#2}\fi%
|
||||
\settowidth{\makeheaddetailsboxwidth}{\usebox{\makeheaddetailstempbox}}%
|
||||
\ifnum\makeheaddetailsboxwidth<\makeheaddetailswidth%
|
||||
\savebox{\makeheaddetailsbox}{\usebox{\makeheaddetailstempbox}}%
|
||||
\@firstmakeheaddetailselementfalse%
|
||||
\else%
|
||||
\flushmakeheaddetails\\\null% \null is required as there is no box on the line after \\, so glue such as \hfill (and leaders) disappear; this is in contrast to after \par, where the next line starts with an indent box (even after \noindent)
|
||||
\savebox{\makeheaddetailsbox}{#2}%
|
||||
\savebox{\makeheaddetailstempbox}{#2}%
|
||||
\settowidth{\makeheaddetailsboxwidth}{\usebox{\makeheaddetailsbox}}%
|
||||
\@firstmakeheaddetailselementfalse\fi}
|
||||
% internal command to flush the makehead
|
||||
\@initializecommand{\flushmakeheaddetails}{%
|
||||
\if@right\hfill\fi%
|
||||
\strut\usebox{\makeheaddetailsbox}%
|
||||
\savebox{\makeheaddetailsbox}{}%
|
||||
\savebox{\makeheaddetailstempbox}{}%
|
||||
\setlength{\makeheaddetailsboxwidth}{0pt}}
|
||||
|
||||
|
||||
%-------------------------------------------------------------------------------
|
||||
% resume head definition
|
||||
%-------------------------------------------------------------------------------
|
||||
% lengths
|
||||
\@initializelength{\quotewidth}
|
||||
% optional makecvheadname width to force a certain width (if set/remains to 0pt, the width is calculated automatically)
|
||||
\@initializelength{\makecvheadnamewidth}
|
||||
\renewcommand*{\recomputecvheadlengths}{%
|
||||
\setlength{\makeheaddetailswidth}{\textwidth}%
|
||||
\setlength{\quotewidth}{0.65\textwidth}}
|
||||
|
||||
% commands
|
||||
\renewcommand*{\makecvhead}{% TODO: use \@initializecommand, which requires modifying its definition to handle \par
|
||||
% recompute lengths (in case we are switching from letter to resume, or vice versa)
|
||||
\recomputecvlengths%
|
||||
% optional picture (pre-rendering)
|
||||
\@initializebox{\makecvheadpicturebox}%
|
||||
\savebox{\makecvheadpicturebox}{%
|
||||
\ifthenelse{\isundefined{\@photo}}%
|
||||
{}%
|
||||
{%
|
||||
\setlength\fboxrule{\@photoframewidth}%
|
||||
\ifdim\@photoframewidth=0pt%
|
||||
\setlength{\fboxsep}{0pt}\fi%
|
||||
{\color{color1}\framebox{\includegraphics[width=\@photowidth]{\@photo}}}}}%
|
||||
% name (pre-rendering)
|
||||
\@initializelength{\makecvheadpicturewidth}%
|
||||
\settowidth{\makecvheadpicturewidth}{\usebox{\makecvheadpicturebox}}%
|
||||
\@initializebox{\makecvheadnamebox}%
|
||||
\savebox{\makecvheadnamebox}{%
|
||||
\parbox[b]{\textwidth-\makecvheadpicturewidth}{%
|
||||
\if@left\raggedright\fi%
|
||||
\if@right\raggedleft\fi%
|
||||
\namefont%
|
||||
\if@alternate% alternate design: first- and lastname in lowercase with no space in between (distinction is made by color difference)
|
||||
{\color{color2!50}\MakeLowercase\@firstname}{\color{color2}\MakeLowercase\@lastname}%
|
||||
\else% default design: first- and lastname as given with a space in between
|
||||
{\color{color2!50}\@firstname} {\color{color2}\@lastname}\fi}}%
|
||||
% rendering
|
||||
\if@left%
|
||||
\usebox{\makecvheadnamebox}%
|
||||
\usebox{\makecvheadpicturebox}\fi
|
||||
\if@right%
|
||||
\usebox{\makecvheadpicturebox}%
|
||||
\usebox{\makecvheadnamebox}\fi\\[-.35em]%
|
||||
{\color{color2!50}\rule{\textwidth}{.25ex}}%
|
||||
% optional detailed information
|
||||
\if@details{%
|
||||
\\\null%
|
||||
\addressfont\color{color2}%
|
||||
\ifthenelse{\isundefined{\@addressstreet}}{}{\addtomakeheaddetails{\addresssymbol\@addressstreet}%
|
||||
\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}%
|
||||
\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\httplink{\@homepage}}}%
|
||||
\collectionloop{socials}{% the key holds the social type (=symbol command prefix), the item holds the link
|
||||
\addtomakeheaddetails{\csname\collectionloopkey socialsymbol\endcsname\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
|
||||
% optional title
|
||||
\ifthenelse{\equal{\@title}{}}{}{%
|
||||
\\[1.25em]\null% \null is required as there is no box on the line after \\, so glue such as \hfill (and leaders) disappear; this is in contrast to after \par, where the next line starts with an indent box (even after \noindent)
|
||||
\if@right\hfill\fi%
|
||||
\if@alternate%
|
||||
\titlestyle{\MakeLowercase\@title}%
|
||||
\else%
|
||||
\titlestyle{\@title}\fi%
|
||||
}\\[2.5em]%
|
||||
% optional quote
|
||||
\ifthenelse{\isundefined{\@quote}}%
|
||||
{}%
|
||||
{{\null\hfill%
|
||||
\begin{minipage}{\quotewidth}%
|
||||
\centering%
|
||||
\quotestyle{\@quote}%
|
||||
\end{minipage}\hfill\null\\[2.5em]}}%
|
||||
\par}% to avoid weird spacing bug at the first section if no blank line is left after \maketitle
|
||||
|
||||
|
||||
%-------------------------------------------------------------------------------
|
||||
% letter head definition
|
||||
%-------------------------------------------------------------------------------
|
||||
% lengths
|
||||
%\renewcommand*{\recomputeletterheadlengths}{}
|
||||
|
||||
% commands
|
||||
\renewcommand*{\makeletterhead}{%
|
||||
% recompute lengths (in case we are switching from letter to resume, or vice versa)
|
||||
\recomputeletterlengths%
|
||||
% recipient block
|
||||
\begin{minipage}[t]{.5\textwidth}
|
||||
\raggedright%
|
||||
\addressfont%
|
||||
{\bfseries\upshape\@recipientname}\\%
|
||||
\@recipientaddress%
|
||||
\end{minipage}
|
||||
% date
|
||||
\hfill% US style
|
||||
% \\[1em]% UK style
|
||||
\@date\\[2em]% US informal style: "January 1, 1900"; UK formal style: "01/01/1900"
|
||||
% opening
|
||||
\raggedright%
|
||||
\@opening\\[1.5em]%
|
||||
% ensure no extra spacing after \makelettertitle due to a possible blank line
|
||||
% \ignorespacesafterend% not working
|
||||
\hspace{0pt}\par\vspace{-\baselineskip}\vspace{-\parskip}}
|
||||
|
||||
|
||||
\endinput
|
||||
|
||||
|
||||
%% end of file `moderncvheadii.sty'.
|
||||
157
moderncvheadiii.sty
Normal file
157
moderncvheadiii.sty
Normal file
@ -0,0 +1,157 @@
|
||||
%% start of file `moderncvheadiii.sty'.
|
||||
%% Copyright 2006-2015 Xavier Danaux (xdanaux@gmail.com).
|
||||
%
|
||||
% This work may be distributed and/or modified under the
|
||||
% conditions of the LaTeX Project Public License version 1.3c,
|
||||
% available at http://www.latex-project.org/lppl/.
|
||||
|
||||
|
||||
%-------------------------------------------------------------------------------
|
||||
% identification
|
||||
%-------------------------------------------------------------------------------
|
||||
\NeedsTeXFormat{LaTeX2e}
|
||||
\ProvidesPackage{moderncvheadiii}[2015/07/28 v2.0.0 modern curriculum vitae and letter header variant: 3]
|
||||
|
||||
% details options: "details" (default) or "nodetails"
|
||||
\@initializeif{\if@details}\@detailsfalse
|
||||
\DeclareOption{details}{\@detailstrue}
|
||||
\DeclareOption{nodetails}{\@detailsfalse}
|
||||
|
||||
\DeclareOption*{}% avoid choking on unknown options
|
||||
\ExecuteOptions{details}
|
||||
\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
|
||||
|
||||
%-------------------------------------------------------------------------------
|
||||
% required packages
|
||||
%-------------------------------------------------------------------------------
|
||||
|
||||
|
||||
%-------------------------------------------------------------------------------
|
||||
% overall head definition
|
||||
%-------------------------------------------------------------------------------
|
||||
% fonts
|
||||
\renewcommand*{\namefont}{\Huge\bfseries\upshape}
|
||||
\renewcommand*{\titlefont}{\Huge\mdseries\upshape}
|
||||
\renewcommand*{\addressfont}{\normalsize\mdseries\upshape}
|
||||
\renewcommand*{\quotefont}{\large\slshape}
|
||||
|
||||
% styles
|
||||
\renewcommand*{\namestyle}[1]{{\namefont\textcolor{color1}{#1}}}
|
||||
\renewcommand*{\titlestyle}[1]{{\titlefont\textcolor{color2!85}{#1}}}
|
||||
\renewcommand*{\addressstyle}[1]{{\addressfont\textcolor{color2}{#1}}}
|
||||
\renewcommand*{\quotestyle}[1]{{\quotefont\textcolor{color1}{#1}}}
|
||||
|
||||
% commands
|
||||
\@initializecommand{\makeheaddetailssymbol}{%
|
||||
{~~~{\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
|
||||
% internal command to add an element to the footer
|
||||
% it collects the elements in a temporary box, and checks when to flush the box
|
||||
\@initializebox{\makeheaddetailsbox}%
|
||||
\@initializebox{\makeheaddetailstempbox}%
|
||||
\@initializelength{\makeheaddetailswidth}%
|
||||
\@initializelength{\makeheaddetailsboxwidth}%
|
||||
\@initializeif{\if@firstmakeheaddetailselement}\@firstmakeheaddetailselementtrue%
|
||||
% adds an element to the makehead, separated by makeheadsymbol
|
||||
% usage: \addtomakehead[makeheadsymbol]{element}
|
||||
\newcommand*{\addtomakeheaddetails}[2][\makeheaddetailssymbol]{% TODO: use \@initializecommand, which requires modifying its definition to handle mandatory and optional arguments
|
||||
\if@firstmakeheaddetailselement%
|
||||
\savebox{\makeheaddetailstempbox}{\usebox{\makeheaddetailsbox}#2}%
|
||||
\else%
|
||||
\savebox{\makeheaddetailstempbox}{\usebox{\makeheaddetailsbox}#1#2}\fi%
|
||||
\settowidth{\makeheaddetailsboxwidth}{\usebox{\makeheaddetailstempbox}}%
|
||||
\ifnum\makeheaddetailsboxwidth<\makeheaddetailswidth%
|
||||
\savebox{\makeheaddetailsbox}{\usebox{\makeheaddetailstempbox}}%
|
||||
\@firstmakeheaddetailselementfalse%
|
||||
\else%
|
||||
\flushmakeheaddetails\\%
|
||||
\savebox{\makeheaddetailsbox}{#2}%
|
||||
\savebox{\makeheaddetailstempbox}{#2}%
|
||||
\settowidth{\makeheaddetailsboxwidth}{\usebox{\makeheaddetailsbox}}%
|
||||
\@firstmakeheaddetailselementfalse\fi}
|
||||
% internal command to flush the makehead
|
||||
\@initializecommand{\flushmakeheaddetails}{%
|
||||
\strut\usebox{\makeheaddetailsbox}%
|
||||
\savebox{\makeheaddetailsbox}{}%
|
||||
\savebox{\makeheaddetailstempbox}{}%
|
||||
\setlength{\makeheaddetailsboxwidth}{0pt}}
|
||||
\@initializecommand{\makehead}{%
|
||||
\setlength{\makeheaddetailswidth}{0.8\textwidth}%
|
||||
\hfil%
|
||||
\parbox{\makeheaddetailswidth}{%
|
||||
\centering%
|
||||
% name and title
|
||||
\namestyle{\@firstname~\@lastname}%
|
||||
\ifthenelse{\equal{\@title}{}}{}{\titlestyle{~|~\@title}}\\% \isundefined doesn't work on \@title, as LaTeX itself defines \@title (before it possibly gets redefined by \title)
|
||||
% optional detailed information
|
||||
\if@details{%
|
||||
\addressfont\color{color2}%
|
||||
\ifthenelse{\isundefined{\@addressstreet}}{}{\addtomakeheaddetails{\addresssymbol\@addressstreet}%
|
||||
\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}%
|
||||
\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\httplink{\@homepage}}}%
|
||||
\collectionloop{socials}{% the key holds the social type (=symbol command prefix), the item holds the link
|
||||
\addtomakeheaddetails{\csname\collectionloopkey socialsymbol\endcsname\collectionloopitem}}%
|
||||
\ifthenelse{\isundefined{\@extrainfo}}{}{\addtomakeheaddetails{\@extrainfo}}%
|
||||
\flushmakeheaddetails}\fi}\\[2.5em]}% need to force a \par after this to avoid weird spacing bug at the first section if no blank line is left after \makehead
|
||||
|
||||
|
||||
%-------------------------------------------------------------------------------
|
||||
% resume head definition
|
||||
%-------------------------------------------------------------------------------
|
||||
% lengths
|
||||
\@initializelength{\quotewidth}
|
||||
\renewcommand*{\recomputecvheadlengths}{%
|
||||
\setlength{\quotewidth}{0.65\textwidth}}
|
||||
|
||||
% commands
|
||||
\renewcommand*{\makecvhead}{% TODO: use \@initializecommand, which requires modifying its definition to handle \par
|
||||
% recompute lengths (in case we are switching from letter to resume, or vice versa)
|
||||
\recomputecvlengths%
|
||||
\makehead%
|
||||
% optional quote
|
||||
\ifthenelse{\isundefined{\@quote}}%
|
||||
{}%
|
||||
{{\centering\begin{minipage}{\quotewidth}\centering\quotestyle{\@quote}\end{minipage}\\[2.5em]}}%
|
||||
\par}% to avoid weird spacing bug at the first section if no blank line is left after \maketitle}
|
||||
|
||||
|
||||
%-------------------------------------------------------------------------------
|
||||
% letter head definition
|
||||
%-------------------------------------------------------------------------------
|
||||
% lengths
|
||||
%\renewcommand*{\recomputeletterheadlengths}{}
|
||||
|
||||
% commands
|
||||
\renewcommand*{\makeletterhead}{%
|
||||
% recompute lengths (in case we are switching from letter to resume, or vice versa)
|
||||
\recomputeletterlengths%
|
||||
% sender block
|
||||
\makehead%
|
||||
\par%
|
||||
% recipient block
|
||||
\begin{minipage}[t]{.5\textwidth}
|
||||
\raggedright%
|
||||
\addressfont%
|
||||
{\bfseries\upshape\@recipientname}\\%
|
||||
\@recipientaddress%
|
||||
\end{minipage}
|
||||
% date
|
||||
\hfill% US style
|
||||
% \\[1em]% UK style
|
||||
\@date\\[2em]% US informal style: "January 1, 1900"; UK formal style: "01/01/1900"
|
||||
% opening
|
||||
\raggedright%
|
||||
\@opening\\[1.5em]%
|
||||
% ensure no extra spacing after \makelettertitle due to a possible blank line
|
||||
% \ignorespacesafterend% not working
|
||||
\hspace{0pt}\par\vspace{-\baselineskip}\vspace{-\parskip}}
|
||||
|
||||
|
||||
\endinput
|
||||
|
||||
|
||||
%% end of file `moderncvheadiii.sty'.
|
||||
168
moderncvheadiv.sty
Normal file
168
moderncvheadiv.sty
Normal file
@ -0,0 +1,168 @@
|
||||
%% start of file `moderncvheadiv.sty'.
|
||||
%% Copyright 2006-2015 Xavier Danaux (xdanaux@gmail.com).
|
||||
%
|
||||
% This work may be distributed and/or modified under the
|
||||
% conditions of the LaTeX Project Public License version 1.3c,
|
||||
% available at http://www.latex-project.org/lppl/.
|
||||
|
||||
|
||||
%-------------------------------------------------------------------------------
|
||||
% identification
|
||||
%-------------------------------------------------------------------------------
|
||||
\NeedsTeXFormat{LaTeX2e}
|
||||
\ProvidesPackage{moderncvheadiv}[2015/07/28 v2.0.0 modern curriculum vitae and letter header variant: 4]
|
||||
|
||||
% details options: "details" (default) or "nodetails"
|
||||
\@initializeif{\if@details}\@detailsfalse
|
||||
\DeclareOption{details}{\@detailstrue}
|
||||
\DeclareOption{nodetails}{\@detailsfalse}
|
||||
|
||||
\DeclareOption*{}% avoid choking on unknown options
|
||||
\ExecuteOptions{details}
|
||||
\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
|
||||
|
||||
%-------------------------------------------------------------------------------
|
||||
% required packages
|
||||
%-------------------------------------------------------------------------------
|
||||
% change the layout of the page on the fly, for resume or letter layout
|
||||
\RequirePackage{changepage}
|
||||
|
||||
|
||||
%-------------------------------------------------------------------------------
|
||||
% overall head definition
|
||||
%-------------------------------------------------------------------------------
|
||||
% fonts
|
||||
\renewcommand*{\namefont}{\fontsize{34}{36}\mdseries\upshape}
|
||||
\renewcommand*{\titlefont}{\LARGE\mdseries\slshape}
|
||||
\renewcommand*{\addressfont}{\small\mdseries}
|
||||
\renewcommand*{\quotefont}{\large\itshape}
|
||||
|
||||
% styles
|
||||
\renewcommand*{\namestyle}[1]{{\namefont\textcolor{color0}{#1}}}
|
||||
\renewcommand*{\titlestyle}[1]{{\titlefont\textcolor{color2}{#1}}}
|
||||
\renewcommand*{\addressstyle}[1]{{\addressfont\textcolor{color2}{#1}}}
|
||||
\renewcommand*{\quotestyle}[1]{{\quotefont\textcolor{color1}{#1}}}
|
||||
|
||||
|
||||
%-------------------------------------------------------------------------------
|
||||
% resume head definition
|
||||
%-------------------------------------------------------------------------------
|
||||
% lengths
|
||||
\@initializelength{\quotewidth}
|
||||
\setlength{\marginparwidth}{0\p@}
|
||||
\setlength{\marginparsep}{0\p@}
|
||||
\renewcommand*{\recomputecvheadlengths}{%
|
||||
\changepage{}{+\marginparwidth+\marginparsep}{}{}{}{}{}{}{}% if a letter was typeset before the resume, \marginparwidth and \marginparsep will be non-zero; otherwise, this has no effect
|
||||
\setlength{\marginparwidth}{0\p@}%
|
||||
\setlength{\marginparsep}{0\p@}%
|
||||
\setlength{\quotewidth}{0.85\textwidth}}
|
||||
|
||||
% commands
|
||||
\newcommand*{\makecvheadinfo}[1]{% TODO: use \@initializecommand, which requires modifying its definition to handle mandatory and optional arguments
|
||||
\newbox{\makecvheadinfobox}%
|
||||
\savebox{\makecvheadinfobox}{\parbox[t]{\hintscolumnwidth}{#1}}%
|
||||
\newlength{\makecvheadinfoheight}%
|
||||
\setlength{\makecvheadinfoheight}{\totalheightof{\usebox{\makecvheadinfobox}}}% the total height of the parbox is the sum of its height (\the\ht\makeinfobox) and its depth (\the\dp\makeinfobox); the \totalheightof command is provided by the "calc" package
|
||||
\usebox{\makecvheadinfobox}\vspace{-\makecvheadinfoheight}%
|
||||
% \newlength{\leftcolumnwidth}%
|
||||
% \setlength{\leftcolumnwidth}{\hintscolumnwidth+\separatorcolumnwidth}%
|
||||
% \par\vspace{-\baselineskip}\vspace{-\parskip}\leftskip=\leftcolumnwidth%
|
||||
\par\vspace{-\baselineskip}\vspace{-\parskip}%
|
||||
\leftskip=\dimexpr\hintscolumnwidth+\separatorcolumnwidth\relax% \dimexpr require e-TeX engine extensions
|
||||
\recomputecvlengths} % need to recompute the layout lenghts as we just changed \leftskip
|
||||
\renewcommand*{\makecvhead}{
|
||||
% recompute lengths (in case we are switching from letter to resume, or vice versa)
|
||||
\recomputecvlengths%
|
||||
% optional picture box
|
||||
\newbox{\makecvheadpicturebox}%
|
||||
\savebox{\makecvheadpicturebox}{%
|
||||
\ifthenelse{\isundefined{\@photo}}%
|
||||
{}%
|
||||
{%
|
||||
\color{color1}%
|
||||
\setlength\fboxrule{\@photoframewidth}%
|
||||
\ifdim\@photoframewidth=0pt%
|
||||
\setlength{\fboxsep}{0pt}\fi%
|
||||
\framebox{\includegraphics[width=\@photowidth]{\@photo}}}}%
|
||||
% name and optional title
|
||||
\newlength{\makecvheadpicturewidth}\settowidth{\makecvheadpicturewidth}{\usebox{\makecvheadpicturebox}}%
|
||||
\newlength{\makecvheadnamewidth}\setlength{\makecvheadnamewidth}{\textwidth-\makecvheadpicturewidth}%
|
||||
\begin{minipage}[b]{\makecvheadnamewidth}%
|
||||
\namestyle{\@firstname\ \@lastname}%
|
||||
\ifthenelse{\equal{\@title}{}}{}{\\[1.25em]\titlestyle{\@title}}%
|
||||
\end{minipage}%
|
||||
% optional photo
|
||||
\usebox{\makecvheadpicturebox}\\[2.5em]%
|
||||
% optional quote
|
||||
\ifthenelse{\isundefined{\@quote}}%
|
||||
{}%
|
||||
{{\centering\begin{minipage}{\quotewidth}\centering\quotestyle{\@quote}\end{minipage}\\[2.5em]}}%
|
||||
% optional details
|
||||
\if@details%
|
||||
\makecvheadinfo{%
|
||||
\addressfont\color{color2}%
|
||||
\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}~\httplink{\@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}%
|
||||
\ifthenelse{\isundefined{\@extrainfo}}{}{\makenewline\@extrainfo}}\fi}
|
||||
|
||||
|
||||
%-------------------------------------------------------------------------------
|
||||
% letter head definition
|
||||
%-------------------------------------------------------------------------------
|
||||
% lengths
|
||||
%\newlength{\textwidthdelta}%
|
||||
\renewcommand*{\recomputeletterheadlengths}{%
|
||||
\recomputecvlengths%
|
||||
% \setlength{\textwidthdelta}{+\marginparwidth+\marginparsep}%
|
||||
% \addtolength{\textwidthdelta}{-\marginparwidth-\marginparsep}%
|
||||
% \changepage{}{\textwidthdelta}{-\textwidthdelta}{}{}{}{}{}{}%\changepage{<textheight>}{<textwidth>}{<evensidemargin>}{<oddsidemargin>}{<columnsep>}{<topmargin>}{<headheight>}{<headsep>}{<footskip>}
|
||||
\setlength{\marginparwidth}{\hintscolumnwidth}%
|
||||
\setlength{\marginparsep}{2\separatorcolumnwidth}%
|
||||
\changepage{}{-\marginparwidth-\marginparsep}{}{}{}{}{}{}{}%\changepage{<textheight>}{<textwidth>}{<evensidemargin>}{<oddsidemargin>}{<columnsep>}{<topmargin>}{<headheight>}{<headsep>}{<footskip>}
|
||||
}
|
||||
|
||||
% commands
|
||||
\renewcommand*{\makeletterhead}{%
|
||||
% recompute lengths (in case we are switching from letter to resume, or vice versa)
|
||||
\leftskip=0pt% needs to be set before \recomputeletterlengths
|
||||
\recomputeletterlengths%
|
||||
% recipient block
|
||||
{\addressfont%
|
||||
{\bfseries\upshape\@recipientname}\\%
|
||||
\@recipientaddress}\\[1em]%
|
||||
% date
|
||||
\@date\\[2em]%
|
||||
% opening
|
||||
\@opening\\[1.5em]%
|
||||
% sender contact info
|
||||
\if@details%
|
||||
\hspace{0pt}%
|
||||
\marginpar{%
|
||||
\addressfont\textcolor{color2}{%
|
||||
{\bfseries\@firstname~\@lastname}\@firstdetailselementfalse%
|
||||
\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}~\httplink{\@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}%
|
||||
\ifthenelse{\isundefined{\@extrainfo}}{}{\makenewline\@extrainfo}}}%
|
||||
% ensure no extra spacing after \makelettertitle due to a possible blank line
|
||||
%\ignorespacesafterend% not working
|
||||
\par\vspace{-\baselineskip}\vspace{-\parskip}\fi}
|
||||
|
||||
|
||||
\endinput
|
||||
|
||||
|
||||
%% end of file `moderncvheadiv.sty'.
|
||||
170
moderncvheadv.sty
Normal file
170
moderncvheadv.sty
Normal file
@ -0,0 +1,170 @@
|
||||
%% start of file `moderncvheadv.sty'.
|
||||
%% Copyright 2015-2015 Xavier Danaux (xdanaux@gmail.com).
|
||||
%
|
||||
% This work may be distributed and/or modified under the
|
||||
% conditions of the LaTeX Project Public License version 1.3c,
|
||||
% available at http://www.latex-project.org/lppl/.
|
||||
|
||||
|
||||
%-------------------------------------------------------------------------------
|
||||
% identification
|
||||
%-------------------------------------------------------------------------------
|
||||
\NeedsTeXFormat{LaTeX2e}
|
||||
\ProvidesPackage{moderncvheadv}[2015/07/28 v2.0.0 modern curriculum vitae and letter header variant: 5]
|
||||
|
||||
% details options: "details" (default) or "nodetails"
|
||||
\@initializeif{\if@details}\@detailsfalse
|
||||
\DeclareOption{details} {\@detailstrue}
|
||||
\DeclareOption{nodetails} {\@detailsfalse}
|
||||
|
||||
\DeclareOption*{}% avoid choking on unknown options
|
||||
\ExecuteOptions{details}
|
||||
\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
|
||||
|
||||
|
||||
%-------------------------------------------------------------------------------
|
||||
% required packages
|
||||
%-------------------------------------------------------------------------------
|
||||
|
||||
|
||||
%-------------------------------------------------------------------------------
|
||||
% overall head definition
|
||||
%-------------------------------------------------------------------------------
|
||||
% fonts
|
||||
\renewcommand*{\namefont}{\fontsize{34}{36}\mdseries\upshape}
|
||||
\renewcommand*{\titlefont}{\LARGE\mdseries\slshape}
|
||||
\renewcommand*{\addressfont}{\small\mdseries\slshape}
|
||||
\renewcommand*{\quotefont}{\large\slshape}
|
||||
|
||||
% styles
|
||||
\renewcommand*{\namestyle}[1]{{\namefont\textcolor{color0}{#1}}}
|
||||
\renewcommand*{\titlestyle}[1]{{\titlefont\textcolor{color2}{#1}}}
|
||||
\renewcommand*{\addressstyle}[1]{{\addressfont\textcolor{color2}{#1}}}
|
||||
\renewcommand*{\quotestyle}[1]{{\quotefont\textcolor{color1}{#1}}}
|
||||
|
||||
|
||||
%-------------------------------------------------------------------------------
|
||||
% resume head definition
|
||||
%-------------------------------------------------------------------------------
|
||||
% lengths
|
||||
\@initializelength{\quotewidth}
|
||||
% optional makecvheadname width to force a certain width (if set/remains to 0pt, the width is calculated automatically)
|
||||
\@initializelength{\makecvheadnamewidth}
|
||||
\renewcommand*{\recomputecvheadlengths}{%
|
||||
\setlength{\quotewidth}{0.65\textwidth}}
|
||||
|
||||
% commands
|
||||
\renewcommand*{\makecvhead}{%
|
||||
% recompute lengths (in case we are switching from letter to resume, or vice versa)
|
||||
\recomputecvlengths%
|
||||
% optional photo (pre-rendering)
|
||||
\@initializebox{\makecvheadpicturebox}%
|
||||
\savebox{\makecvheadpicturebox}{%
|
||||
\ifthenelse{\isundefined{\@photo}}%
|
||||
{}%
|
||||
{%
|
||||
\color{color1}%
|
||||
\setlength{\fboxrule}{\@photoframewidth}%
|
||||
\ifdim\@photoframewidth=0pt%
|
||||
\setlength{\fboxsep}{0pt}\fi%
|
||||
\framebox{\includegraphics[width=\@photowidth]{\@photo}}}}%
|
||||
% rendering
|
||||
\@makecvtitle%
|
||||
{%
|
||||
\raggedleft%
|
||||
% optional photo
|
||||
\usebox{\makecvheadpicturebox}%
|
||||
% optional details
|
||||
\if@details%
|
||||
\ifthenelse{\isundefined{\@photo}}{}{\\[0.5em]}%
|
||||
\addressfont\color{color2}%
|
||||
\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~\httplink{\@homepage}}%
|
||||
\collectionloop{socials}{% the key holds the social type (=symbol command prefix), the item holds the link
|
||||
\makenewline\csname\collectionloopkey socialsymbol\endcsname~\collectionloopitem}%
|
||||
\ifthenelse{\isundefined{\@extrainfo}}{}{\makenewline\@extrainfo}\fi}%
|
||||
{%
|
||||
% name and optional title
|
||||
\newlength{\makecvheadpictureboxskip}%
|
||||
\setlength{\makecvheadpictureboxskip}{\totalheightof{\usebox{\makecvheadpicturebox}}}%
|
||||
\namestyle{\@firstname\ \@lastname}%
|
||||
\ifthenelse{\equal{\@title}{}}{}{\\[1.25em]\titlestyle{\@title}}\\[2.5em]%
|
||||
% optional quote
|
||||
\ifthenelse{\isundefined{\@quote}}%
|
||||
{}%
|
||||
{\begin{minipage}{\quotewidth}\quotestyle{\@quote}\end{minipage}\\[2.5em]}}%
|
||||
\par}% to avoid weird spacing bug at the first section if no blank line is left after \makecvhead
|
||||
|
||||
% underlying command to implement \makecvtitle, identical to \@cvitem from moderncvbodyv
|
||||
\let\standarddoublebackslash\\%
|
||||
\newcommand*{\@makecvtitle}[3][.5ex]{%
|
||||
\arrayrulecolor{color1}%
|
||||
\setlength\arrayrulewidth{1.2\p@}%
|
||||
\if@aftersection\else%
|
||||
\vspace*{-\arrayrulewidth}\fi% HACK; I don't understand where the space is coming from, nor what it's exact value is :(
|
||||
\noindent%
|
||||
\begin{tabular}[t]{@{}p{\hintscolumnwidth}@{\hspace{\separatorcolumnwidth}}|@{\hspace{\separatorcolumnwidth}}p{\maincolumnwidth}@{}}%
|
||||
\@moderncvstrut{4pt}{16pt}%
|
||||
\begin{minipage}[t]{\hintscolumnwidth}#2\end{minipage}
|
||||
&\begin{minipage}[t]{\maincolumnwidth}#3\end{minipage}%
|
||||
\\[#1]% the spacing needs to be inside the cell for the vertical rule to extend correctly
|
||||
\end{tabular}%
|
||||
\par\@aftersectionfalse\ignorespaces}
|
||||
|
||||
|
||||
%-------------------------------------------------------------------------------
|
||||
% letter head definition
|
||||
%-------------------------------------------------------------------------------
|
||||
% lengths
|
||||
%\renewcommand*{\recomputeletterheadlengths}{}
|
||||
|
||||
% commands
|
||||
\renewcommand*{\makeletterhead}{%
|
||||
% recompute lengths (in case we are switching from letter to resume, or vice versa)
|
||||
\recomputeletterlengths%
|
||||
% sender contact info
|
||||
\hfill%
|
||||
\begin{minipage}{.5\textwidth}%
|
||||
% optional detailed information
|
||||
\if@details%
|
||||
\raggedleft%
|
||||
\addressfont\textcolor{color2}{%
|
||||
{\bfseries\upshape\@firstname~\@lastname}\@firstdetailselementfalse%
|
||||
% optional detailed information
|
||||
\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\httplink{\@homepage}}%
|
||||
\ifthenelse{\isundefined{\@extrainfo}}{}{\makenewline\@extrainfo}}\fi%
|
||||
\end{minipage}\\[1em]
|
||||
% recipient block
|
||||
\begin{minipage}[t]{.5\textwidth}
|
||||
\raggedright%
|
||||
\addressfont%
|
||||
{\bfseries\upshape\@recipientname}\\%
|
||||
\@recipientaddress%
|
||||
\end{minipage}
|
||||
% date
|
||||
\hfill% US style
|
||||
% \\[1em]% UK style
|
||||
\@date\\[2em]% US informal style: "January 1, 1900"; UK formal style: "01/01/1900"
|
||||
% opening
|
||||
\raggedright%
|
||||
\@opening\\[1.5em]%
|
||||
% ensure no extra spacing after \makelettertitle due to a possible blank line
|
||||
% \ignorespacesafterend% not working
|
||||
\hspace{0pt}\par\vspace{-\baselineskip}\vspace{-\parskip}}
|
||||
|
||||
|
||||
\endinput
|
||||
|
||||
|
||||
%% end of file `moderncvheadv.sty'.
|
||||
168
moderncvheadvi.sty
Normal file
168
moderncvheadvi.sty
Normal file
@ -0,0 +1,168 @@
|
||||
%% start of file `moderncvheadvi.sty'.
|
||||
%% Copyright 2015-2015 Xavier Danaux (xdanaux@gmail.com).
|
||||
%
|
||||
% This work may be distributed and/or modified under the
|
||||
% conditions of the LaTeX Project Public License version 1.3c,
|
||||
% available at http://www.latex-project.org/lppl/.
|
||||
|
||||
|
||||
%-------------------------------------------------------------------------------
|
||||
% identification
|
||||
%-------------------------------------------------------------------------------
|
||||
\NeedsTeXFormat{LaTeX2e}
|
||||
\ProvidesPackage{moderncvheadvi}[2015/07/28 v2.0.0 modern curriculum vitae and letter header: 6]
|
||||
|
||||
% details options: "details" (default) or "nodetails"
|
||||
\@initializeif{\if@details}\@detailsfalse
|
||||
\DeclareOption{details}{\@detailstrue}
|
||||
\DeclareOption{nodetails}{\@detailsfalse}
|
||||
|
||||
% left/right options: "left" (default) or "right"
|
||||
\@initializeif{\if@left} \@leftfalse
|
||||
\DeclareOption{left} {\@lefttrue\@rightfalse}
|
||||
\@initializeif{\if@right}\@rightfalse
|
||||
\DeclareOption{right} {\@leftfalse\@righttrue}
|
||||
|
||||
\DeclareOption*{}% avoid choking on unknown options
|
||||
\ExecuteOptions{details, left}
|
||||
\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
|
||||
|
||||
|
||||
%-------------------------------------------------------------------------------
|
||||
% required packages
|
||||
%-------------------------------------------------------------------------------
|
||||
|
||||
|
||||
%-------------------------------------------------------------------------------
|
||||
% overall head definition
|
||||
%-------------------------------------------------------------------------------
|
||||
% fonts
|
||||
\renewcommand*{\namefont}{\Huge\bfseries\upshape}
|
||||
\renewcommand*{\titlefont}{\Huge\mdseries\upshape}
|
||||
\renewcommand*{\addressfont}{\normalsize\mdseries\upshape}
|
||||
\renewcommand*{\quotefont}{\large\slshape}
|
||||
|
||||
% styles
|
||||
\renewcommand*{\namestyle}[1]{{\namefont\textcolor{color1}{#1}}}
|
||||
\renewcommand*{\titlestyle}[1]{{\titlefont\textcolor{color2!85}{#1}}}
|
||||
\renewcommand*{\addressstyle}[1]{{\addressfont\textcolor{color2}{#1}}}
|
||||
\renewcommand*{\quotestyle}[1]{{\quotefont\textcolor{color1}{#1}}}
|
||||
|
||||
% commands
|
||||
\@initializecommand{\makehead}{%
|
||||
\setlength{\makeheaddetailswidth}{\textwidth}%
|
||||
% name and title
|
||||
\if@left\hfill\fi%
|
||||
\namestyle{\@firstname~\@lastname}%
|
||||
\ifthenelse{\equal{\@title}{}}{}{\titlestyle{~|~\@title}}\\[-.35em]% \isundefined doesn't work on \@title, as LaTeX itself defines \@title (before it possibly gets redefined by \title)
|
||||
% rule
|
||||
{\color{color1}\rule{\textwidth}{.25ex}}}
|
||||
|
||||
%-------------------------------------------------------------------------------
|
||||
% resume head definition
|
||||
%-------------------------------------------------------------------------------
|
||||
% lengths
|
||||
\@initializelength{\quotewidth}
|
||||
\renewcommand*{\recomputecvheadlengths}{%
|
||||
\setlength{\quotewidth}{0.65\textwidth}}
|
||||
|
||||
% commands
|
||||
\@initializecommand{\makeheaddetailssymbol}{%
|
||||
{~~~{\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
|
||||
% internal command to add an element to the footer
|
||||
% it collects the elements in a temporary box, and checks when to flush the box
|
||||
\@initializebox{\makeheaddetailsbox}%
|
||||
\@initializebox{\makeheaddetailstempbox}%
|
||||
\@initializelength{\makeheaddetailswidth}%
|
||||
\@initializelength{\makeheaddetailsboxwidth}%
|
||||
\@initializeif{\if@firstmakeheaddetailselement}\@firstmakeheaddetailselementtrue%
|
||||
% adds an element to the makehead, separated by makeheadsymbol
|
||||
% usage: \addtomakehead[makeheadsymbol]{element}
|
||||
\newcommand*{\addtomakeheaddetails}[2][\makeheaddetailssymbol]{% TODO: use \@initializecommand, which requires modifying its definition to handle mandatory and optional arguments
|
||||
\if@firstmakeheaddetailselement%
|
||||
\savebox{\makeheaddetailstempbox}{\usebox{\makeheaddetailsbox}#2}%
|
||||
\else%
|
||||
\savebox{\makeheaddetailstempbox}{\usebox{\makeheaddetailsbox}#1#2}\fi%
|
||||
\settowidth{\makeheaddetailsboxwidth}{\usebox{\makeheaddetailstempbox}}%
|
||||
\ifnum\makeheaddetailsboxwidth<\makeheaddetailswidth%
|
||||
\savebox{\makeheaddetailsbox}{\usebox{\makeheaddetailstempbox}}%
|
||||
\@firstmakeheaddetailselementfalse%
|
||||
\else%
|
||||
\flushmakeheaddetails\\\null% \null is required as there is no box on the line after \\, so glue such as \hfill (and leaders) disappear; this is in contrast to after \par, where the next line starts with an indent box (even after \noindent)
|
||||
\savebox{\makeheaddetailsbox}{#2}%
|
||||
\savebox{\makeheaddetailstempbox}{#2}%
|
||||
\settowidth{\makeheaddetailsboxwidth}{\usebox{\makeheaddetailsbox}}%
|
||||
\@firstmakeheaddetailselementfalse\fi}
|
||||
% internal command to flush the makehead
|
||||
\@initializecommand{\flushmakeheaddetails}{%
|
||||
\if@right\hfill\fi%
|
||||
\strut\usebox{\makeheaddetailsbox}%
|
||||
\savebox{\makeheaddetailsbox}{}%
|
||||
\savebox{\makeheaddetailstempbox}{}%
|
||||
\setlength{\makeheaddetailsboxwidth}{0pt}}
|
||||
\renewcommand*{\makecvhead}{% TODO: use \@initializecommand, which requires modifying its definition to handle \par
|
||||
% recompute lengths (in case we are switching from letter to resume, or vice versa)
|
||||
\recomputecvlengths%
|
||||
\makehead%
|
||||
% optional detailed information
|
||||
\if@details{%
|
||||
\\\null%
|
||||
\addressfont\color{color2}%
|
||||
\ifthenelse{\isundefined{\@addressstreet}}{}{\addtomakeheaddetails{\addresssymbol\@addressstreet}%
|
||||
\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}%
|
||||
\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\httplink{\@homepage}}}%
|
||||
\collectionloop{socials}{% the key holds the social type (=symbol command prefix), the item holds the link
|
||||
\addtomakeheaddetails{\csname\collectionloopkey socialsymbol\endcsname\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
|
||||
\ifthenelse{\isundefined{\@quote}}%
|
||||
{}%
|
||||
{{\\[1.25em]\null\hfill%
|
||||
\begin{minipage}{\quotewidth}%
|
||||
\centering\quotestyle{\@quote}%
|
||||
\end{minipage}\hfill\null}}\\[2.5em]%
|
||||
\par}% to avoid weird spacing bug at the first section if no blank line is left after \maketitle}
|
||||
|
||||
|
||||
%-------------------------------------------------------------------------------
|
||||
% letter head definition
|
||||
%-------------------------------------------------------------------------------
|
||||
% lengths
|
||||
%\renewcommand*{\recomputeletterheadlengths}{}
|
||||
|
||||
% commands
|
||||
\renewcommand*{\makeletterhead}{%
|
||||
% recompute lengths (in case we are switching from letter to resume, or vice versa)
|
||||
\recomputeletterlengths%
|
||||
% sender block
|
||||
\makehead\\[2.5em]%
|
||||
\par% to avoid weird spacing bug at the first section if no blank line is left after \maketitle}
|
||||
% recipient block
|
||||
\begin{minipage}[t]{.5\textwidth}
|
||||
\raggedright%
|
||||
\addressfont%
|
||||
{\bfseries\upshape\@recipientname}\\%
|
||||
\@recipientaddress%
|
||||
\end{minipage}
|
||||
% date
|
||||
\hfill% US style
|
||||
% \\[1em]% UK style
|
||||
\@date\\[2em]% US informal style: "January 1, 1900"; UK formal style: "01/01/1900"
|
||||
% opening
|
||||
\raggedright%
|
||||
\@opening\\[1.5em]%
|
||||
% ensure no extra spacing after \makelettertitle due to a possible blank line
|
||||
% \ignorespacesafterend% not working
|
||||
\hspace{0pt}\par\vspace{-\baselineskip}\vspace{-\parskip}}
|
||||
|
||||
|
||||
\endinput
|
||||
|
||||
|
||||
%% end of file `moderncvheadvi.sty'.
|
||||
@ -1,5 +1,5 @@
|
||||
%% start of file `moderncviconsletters.sty'.
|
||||
%% Copyright 2013-2013 Xavier Danaux (xdanaux@gmail.com).
|
||||
%% Copyright 2013-2015 Xavier Danaux (xdanaux@gmail.com).
|
||||
%
|
||||
% 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}
|
||||
\ProvidesPackage{moderncviconsletters}[2013/04/29 v1.5.1 modern curriculum vitae and letter icons: letters]
|
||||
\ProvidesPackage{moderncviconsletters}[2015/07/28 v2.0.0 modern curriculum vitae and letter icons: letters]
|
||||
|
||||
|
||||
%-------------------------------------------------------------------------------
|
||||
@ -35,14 +35,14 @@
|
||||
%\renewcommand*{\labelitemiv} {\labelitemiii} % no change from default in moderncv.cls
|
||||
|
||||
\renewcommand*{\addresssymbol} {}
|
||||
\renewcommand*{\mobilephonesymbol} {\hbox to 1.1em{\textbf{M}}~}% 1em is the width of the M capital in most fonts
|
||||
\renewcommand*{\fixedphonesymbol} {\hbox to 1.1em{\textbf{T}}~}
|
||||
\renewcommand*{\faxphonesymbol} {\hbox to 1.1em{\textbf{F}}~}
|
||||
\renewcommand*{\emailsymbol} {\hbox to 1.1em{\textbf{E}}~}
|
||||
\renewcommand*{\homepagesymbol} {\hbox to 1.1em{\textbf{W}}~}
|
||||
\renewcommand*{\linkedinsocialsymbol}{\hbox to 1.1em{\textbf{in}}~}
|
||||
\renewcommand*{\twittersocialsymbol} {\hbox to 1.1em{\textbf{tw}}~}
|
||||
\renewcommand*{\githubsocialsymbol} {\hbox to 1.1em{\textbf{gh}}~}
|
||||
\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*{\twittersocialsymbol} {\textbf{tw}~}
|
||||
\renewcommand*{\githubsocialsymbol} {\textbf{gh}~}
|
||||
|
||||
\renewcommand*{\listitemsymbol} {\labelitemi~}
|
||||
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
%% start of file `moderncviconsmarvosym.sty'.
|
||||
%% Copyright 2013-2013 Xavier Danaux (xdanaux@gmail.com).
|
||||
%% Copyright 2013-2015 Xavier Danaux (xdanaux@gmail.com).
|
||||
%
|
||||
% 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}
|
||||
\ProvidesPackage{moderncviconsmarvosym}[2013/04/29 v1.5.1 modern curriculum vitae and letter icons: marvosym]
|
||||
\ProvidesPackage{moderncviconsmarvosym}[2015/07/28 v2.0.0 modern curriculum vitae and letter icons: marvosym]
|
||||
|
||||
|
||||
%-------------------------------------------------------------------------------
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
%% start of file `moderncvstylebanking.sty'.
|
||||
%% Copyright 2006-2013 Xavier Danaux (xdanaux@gmail.com).
|
||||
%% Copyright 2006-2015 Xavier Danaux (xdanaux@gmail.com).
|
||||
%
|
||||
% This work may be distributed and/or modified under the
|
||||
% conditions of the LaTeX Project Public License version 1.3c,
|
||||
@ -10,32 +10,29 @@
|
||||
% identification
|
||||
%-------------------------------------------------------------------------------
|
||||
\NeedsTeXFormat{LaTeX2e}
|
||||
\ProvidesPackage{moderncvstylebanking}[2013/04/29 v1.5.1 modern curriculum vitae and letter style scheme: banking]
|
||||
\ProvidesPackage{moderncvstylebanking}[2015/07/28 v2.0.0 modern curriculum vitae and letter style scheme: banking]
|
||||
|
||||
\newif\if@fullrules\@fullrulesfalse
|
||||
\DeclareOption{fullrules}{\@fullrulestrue\@mixedrulesfalse}
|
||||
\newif\if@shortrules\@shortrulesfalse
|
||||
\DeclareOption{shortrules}{\@shortrulestrue\@mixedrulesfalse}
|
||||
\newif\if@mixedrules\@mixedrulesfalse
|
||||
\DeclareOption{mixedrules}{\@mixedrulestrue}
|
||||
\newif\if@centeredrules\@centeredrulesfalse
|
||||
\DeclareOption{centeredrules}{\@centeredrulestrue\@mixedrulesfalse}
|
||||
\newif\if@norules\@norulesfalse
|
||||
\DeclareOption{norules}{\@norulestrue\@mixedrulesfalse}
|
||||
% body rules type options: "fullrules", "shortrules", "mixedrules" (default) or "norules"
|
||||
\@initializecommand{\moderncvstylebodyoptions}{}
|
||||
\DeclareOption{fullrules} {\edef\moderncvstylebodyoptions{\moderncvstylebodyoptions,fullrules}}
|
||||
\DeclareOption{shortrules} {\edef\moderncvstylebodyoptions{\moderncvstylebodyoptions,shortrules}}
|
||||
\DeclareOption{mixedrules} {\edef\moderncvstylebodyoptions{\moderncvstylebodyoptions,mixedrules}}
|
||||
\DeclareOption{norules} {\edef\moderncvstylebodyoptions{\moderncvstylebodyoptions,norules}}
|
||||
|
||||
\ExecuteOptions{mixedrules}
|
||||
\ProcessOptions\relax
|
||||
% body section alignment options: "left" (default), "center" or "right"
|
||||
\DeclareOption{left} {\edef\moderncvstylebodyoptions{\moderncvstylebodyoptions,left}}
|
||||
\DeclareOption{center} {\edef\moderncvstylebodyoptions{\moderncvstylebodyoptions,center}}
|
||||
\DeclareOption{right} {\edef\moderncvstylebodyoptions{\moderncvstylebodyoptions,right}}
|
||||
|
||||
\DeclareOption*{}% avoid choking on unknown options
|
||||
\ExecuteOptions{mixedrules,left}
|
||||
\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
|
||||
|
||||
|
||||
%-------------------------------------------------------------------------------
|
||||
% required packages
|
||||
% fonts & icons
|
||||
%-------------------------------------------------------------------------------
|
||||
|
||||
|
||||
%-------------------------------------------------------------------------------
|
||||
% overall style definition
|
||||
%-------------------------------------------------------------------------------
|
||||
% fonts
|
||||
% TeX Gyre Pagella font
|
||||
%\ifxetexorluatex
|
||||
% \setmainfont{Tex-Gyre Pagella}
|
||||
% \setsansfont{Tex-Gyre Pagella}
|
||||
@ -54,281 +51,12 @@
|
||||
% symbols
|
||||
\moderncvicons{awesome}
|
||||
|
||||
% commands
|
||||
\newcommand*{\maketitlesymbol}{%
|
||||
{~~~{\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
|
||||
% internal command to add an element to the footer
|
||||
% it collects the elements in a temporary box, and checks when to flush the box
|
||||
\newsavebox{\maketitlebox}%
|
||||
\newsavebox{\maketitletempbox}%
|
||||
\newlength{\maketitlewidth}%
|
||||
\newlength{\maketitleboxwidth}%
|
||||
\newif\if@firstmaketitleelement\@firstmaketitleelementtrue%
|
||||
% adds an element to the maketitle, separated by maketitlesymbol
|
||||
% usage: \addtomaketitle[maketitlesymbol]{element}
|
||||
\newcommand*{\addtomaketitle}[2][\maketitlesymbol]{%
|
||||
\if@firstmaketitleelement%
|
||||
\savebox{\maketitletempbox}{\usebox{\maketitlebox}#2}%
|
||||
\else%
|
||||
\savebox{\maketitletempbox}{\usebox{\maketitlebox}#1#2}\fi%
|
||||
\settowidth{\maketitleboxwidth}{\usebox{\maketitletempbox}}%
|
||||
\ifnum\maketitleboxwidth<\maketitlewidth%
|
||||
\savebox{\maketitlebox}{\usebox{\maketitletempbox}}%
|
||||
\@firstmaketitleelementfalse%
|
||||
\else%
|
||||
\flushmaketitle{}\\%
|
||||
\savebox{\maketitlebox}{#2}%
|
||||
\savebox{\maketitletempbox}{#2}%
|
||||
\settowidth{\maketitleboxwidth}{\usebox{\maketitlebox}}%
|
||||
\@firstmaketitleelementfalse\fi}
|
||||
% internal command to flush the maketitle
|
||||
\newcommand*{\flushmaketitle}{%
|
||||
\strut\usebox{\maketitlebox}%
|
||||
\savebox{\maketitlebox}{}%
|
||||
\savebox{\maketitletempbox}{}%
|
||||
\setlength{\maketitleboxwidth}{0pt}}
|
||||
\renewcommand*{\maketitle}{%
|
||||
\setlength{\maketitlewidth}{0.8\textwidth}%
|
||||
\hfil%
|
||||
\parbox{\maketitlewidth}{%
|
||||
\centering%
|
||||
% name and title
|
||||
\namestyle{\@firstname~\@lastname}%
|
||||
\ifthenelse{\equal{\@title}{}}{}{\titlestyle{~|~\@title}}\\% \isundefined doesn't work on \@title, as LaTeX itself defines \@title (before it possibly gets redefined by \title)
|
||||
% detailed information
|
||||
\addressfont\color{color2}%
|
||||
\ifthenelse{\isundefined{\@addressstreet}}{}{\addtomaketitle{\addresssymbol\@addressstreet}%
|
||||
\ifthenelse{\equal{\@addresscity}{}}{}{\addtomaketitle[~--~]{\@addresscity}}% if \addresstreet is defined, \addresscity and \addresscountry will always be defined but could be empty
|
||||
\ifthenelse{\equal{\@addresscountry}{}}{}{\addtomaketitle[~--~]{\@addresscountry}}%
|
||||
\flushmaketitle\@firstmaketitleelementtrue\\}%
|
||||
\collectionloop{phones}{% the key holds the phone type (=symbol command prefix), the item holds the number
|
||||
\addtomaketitle{\csname\collectionloopkey phonesymbol\endcsname\collectionloopitem}}%
|
||||
\ifthenelse{\isundefined{\@email}}{}{\addtomaketitle{\emailsymbol\emaillink{\@email}}}%
|
||||
\ifthenelse{\isundefined{\@homepage}}{}{\addtomaketitle{\homepagesymbol\httplink{\@homepage}}}%
|
||||
\collectionloop{socials}{% the key holds the social type (=symbol command prefix), the item holds the link
|
||||
\addtomaketitle{\csname\collectionloopkey socialsymbol\endcsname\collectionloopitem}}%
|
||||
\ifthenelse{\isundefined{\@extrainfo}}{}{\addtomaketitle{\@extrainfo}}%
|
||||
\flushmaketitle}\\[2.5em]}% need to force a \par after this to avoid weird spacing bug at the first section if no blank line is left after \maketitle
|
||||
|
||||
|
||||
%-------------------------------------------------------------------------------
|
||||
% resume style definition
|
||||
% header, body & footer
|
||||
%-------------------------------------------------------------------------------
|
||||
% fonts
|
||||
\renewcommand*{\namefont}{\Huge\bfseries\upshape}
|
||||
\renewcommand*{\titlefont}{\Huge\mdseries\upshape}
|
||||
\renewcommand*{\addressfont}{\normalsize\mdseries\upshape}
|
||||
\renewcommand*{\quotefont}{\large\slshape}
|
||||
\renewcommand*{\sectionfont}{%
|
||||
\if@norules%
|
||||
\Large\bfseries\scshape%
|
||||
\else%
|
||||
\Large\bfseries\upshape\fi}
|
||||
\renewcommand*{\subsectionfont}{%
|
||||
\if@norules%
|
||||
\large\mdseries\itshape%
|
||||
\else%
|
||||
\large\upshape\fontseries{sb}\selectfont\fi}
|
||||
\renewcommand*{\hintfont}{\bfseries}
|
||||
|
||||
% styles
|
||||
\renewcommand*{\namestyle}[1]{{\namefont\textcolor{color1}{#1}}}
|
||||
\renewcommand*{\titlestyle}[1]{{\titlefont\textcolor{color2!85}{#1}}}
|
||||
\renewcommand*{\addressstyle}[1]{{\addressfont\textcolor{color2}{#1}}}
|
||||
\renewcommand*{\quotestyle}[1]{{\quotefont\textcolor{color1}{#1}}}
|
||||
\renewcommand*{\sectionstyle}[1]{%
|
||||
\if@centeredrules%
|
||||
{\centering\sectionfont\textcolor{color1}{#1}\par}%
|
||||
\else
|
||||
{\sectionfont\textcolor{color1}{#1}}\fi}
|
||||
\renewcommand*{\subsectionstyle}[1]{%
|
||||
\if@centeredrules%
|
||||
{\centering\subsectionfont\textcolor{color1}{#1}\par}%
|
||||
\else
|
||||
{\subsectionfont\textcolor{color1}{#1}}\fi}
|
||||
\renewcommand*{\hintstyle}[1]{{\hintfont\textcolor{color0}{#1}}}
|
||||
|
||||
% lengths
|
||||
\newlength{\quotewidth}
|
||||
\newlength{\hintscolumnwidth}
|
||||
\setlength{\hintscolumnwidth}{0.3\textwidth}%
|
||||
\newlength{\separatorcolumnwidth}
|
||||
\setlength{\separatorcolumnwidth}{0.025\textwidth}%
|
||||
\newlength{\maincolumnwidth}
|
||||
\newlength{\doubleitemcolumnwidth}
|
||||
\newlength{\listitemsymbolwidth}
|
||||
\settowidth{\listitemsymbolwidth}{\listitemsymbol}
|
||||
\newlength{\listitemmaincolumnwidth}
|
||||
\newlength{\listdoubleitemmaincolumnwidth}
|
||||
|
||||
% commands
|
||||
\renewcommand*{\recomputecvlengths}{%
|
||||
\setlength{\quotewidth}{0.65\textwidth}%
|
||||
% main lenghts
|
||||
\setlength{\maincolumnwidth}{\textwidth}%
|
||||
% listitem lengths
|
||||
\setlength{\listitemmaincolumnwidth}{\maincolumnwidth-\listitemsymbolwidth}%
|
||||
% doubleitem lengths
|
||||
\setlength{\doubleitemcolumnwidth}{\maincolumnwidth-\separatorcolumnwidth}%
|
||||
\setlength{\doubleitemcolumnwidth}{0.5\doubleitemcolumnwidth}%
|
||||
% listdoubleitem lengths
|
||||
\setlength{\listdoubleitemmaincolumnwidth}{\maincolumnwidth-\listitemsymbolwidth-\separatorcolumnwidth-\listitemsymbolwidth}%
|
||||
\setlength{\listdoubleitemmaincolumnwidth}{0.5\listdoubleitemmaincolumnwidth}%
|
||||
% fancyhdr lengths
|
||||
\renewcommand{\headwidth}{\textwidth}%
|
||||
% regular lengths
|
||||
\setlength{\parskip}{0\p@}}
|
||||
|
||||
\renewcommand*{\makecvtitle}{%
|
||||
% recompute lengths (in case we are switching from letter to resume, or vice versa)
|
||||
\recomputecvlengths%
|
||||
\maketitle%
|
||||
% optional quote
|
||||
\ifthenelse{\isundefined{\@quote}}%
|
||||
{}%
|
||||
{{\centering\begin{minipage}{\quotewidth}\centering\quotestyle{\@quote}\end{minipage}\\[2.5em]}}%
|
||||
\par}% to avoid weird spacing bug at the first section if no blank line is left after \maketitle}
|
||||
|
||||
\RenewDocumentCommand{\section}{sm}{%
|
||||
\par\addvspace{2.5ex}%
|
||||
\phantomsection{}% reset the anchor for hyperrefs
|
||||
\addcontentsline{toc}{section}{#2}%
|
||||
\strut\sectionstyle{#2}%
|
||||
\sectionrule%
|
||||
\par\nobreak\addvspace{1ex}\@afterheading}
|
||||
|
||||
\RenewDocumentCommand{\subsection}{sm}{%
|
||||
\par\addvspace{1ex}%
|
||||
\phantomsection{}%
|
||||
\addcontentsline{toc}{subsection}{#2}%
|
||||
\strut\subsectionstyle{#2}%
|
||||
\subsectionrule%
|
||||
\par\nobreak\addvspace{0.5ex}\@afterheading}
|
||||
|
||||
\newcommand*{\sectionrule}{}
|
||||
\newcommand*{\subsectionrule}{}
|
||||
\if@fullrules%
|
||||
\renewcommand*{\sectionrule}{\par\nobreak\vspace*{-.7\baselineskip}\leavevmode{\color{color1}\leaders\hbox{\rule{1pt}{0.4pt}}\hfill\kern0pt}}
|
||||
\renewcommand*{\subsectionrule}{\par\nobreak\vspace*{-.7\baselineskip}\leavevmode{\color{color1}\xleaders\hbox to 0.35em{\scriptsize.}\hfill}}\fi% different subsectionrules will not be perfectly aligned, but remaining space at the end of the fill will be distributed evenly between leaders, so it will be barely visible}
|
||||
\if@shortrules%
|
||||
\renewcommand*{\sectionrule}{\leavevmode{\color{color1}\leaders\hbox{\rule{1pt}{0.4pt}}\hfill\kern0pt}}
|
||||
\renewcommand*{\subsectionrule}{\leavevmode{\color{color1}\xleaders\hbox to 0.35em{\scriptsize.}\hfill}}\fi% different subsectionrules will not be perfectly aligned, but remaining space at the end of the fill will be distributed evenly between leaders, so it will be barely visible}}
|
||||
\if@mixedrules%
|
||||
\renewcommand*{\sectionrule}{\par\nobreak\vspace*{-.7\baselineskip}\leavevmode{\color{color1}\leaders\hbox{\rule{1pt}{0.4pt}}\hfill\kern0pt}}
|
||||
\renewcommand*{\subsectionrule}{\leavevmode{\color{color1}\xleaders\hbox to 0.35em{\scriptsize.}\hfill}}\fi% different subsectionrules will not be perfectly aligned, but remaining space at the end of the fill will be distributed evenly between leaders, so it will be barely visible}}
|
||||
\if@centeredrules%
|
||||
\renewcommand*{\sectionrule}{\par\nobreak\vspace*{-.7\baselineskip}\leavevmode{\color{color1}\leaders\hbox{\rule{1pt}{0.4pt}}\hfill\kern0pt}}
|
||||
\renewcommand*{\subsectionrule}{\par\nobreak\vspace*{-.7\baselineskip}\leavevmode{\color{color1}\xleaders\hbox to 0.35em{\scriptsize.}\hfill}}\fi% similar to full rules
|
||||
\if@norules%
|
||||
\renewcommand*{\sectionrule}{}
|
||||
\renewcommand*{\subsectionrule}{}\fi
|
||||
|
||||
\renewcommand*{\cvitem}[3][.25em]{%
|
||||
\ifthenelse{\equal{#2}{}}{}{\hintstyle{#2}: }{#3}%
|
||||
\par\addvspace{#1}}
|
||||
|
||||
\renewcommand*{\cvdoubleitem}[5][.25em]{%
|
||||
\begin{minipage}[t]{\doubleitemcolumnwidth}\hintstyle{#2}: #3\end{minipage}%
|
||||
\hfill% fill of \separatorcolumnwidth
|
||||
\begin{minipage}[t]{\doubleitemcolumnwidth}\ifthenelse{\equal{#4}{}}{}{\hintstyle{#4}: }#5\end{minipage}%
|
||||
\par\addvspace{#1}}
|
||||
|
||||
\renewcommand*{\cvlistitem}[2][.25em]{%
|
||||
\listitemsymbol\begin{minipage}[t]{\listitemmaincolumnwidth}#2\end{minipage}%
|
||||
\par\addvspace{#1}}
|
||||
|
||||
\renewcommand*{\cvlistdoubleitem}[3][.25em]{%
|
||||
\cvitem[#1]{}{\listitemsymbol\begin{minipage}[t]{\listdoubleitemmaincolumnwidth}#2\end{minipage}%
|
||||
\hfill% fill of \separatorcolumnwidth
|
||||
\ifthenelse{\equal{#3}{}}%
|
||||
{}%
|
||||
{\listitemsymbol\begin{minipage}[t]{\listdoubleitemmaincolumnwidth}#3\end{minipage}}}}
|
||||
|
||||
\renewcommand*{\cventry}[7][.25em]{
|
||||
\begin{tabular*}{\textwidth}{l@{\extracolsep{\fill}}r}%
|
||||
{\bfseries #4} & {\bfseries #5} \\%
|
||||
{\itshape #3\ifthenelse{\equal{#6}{}}{}{, #6}} & {\itshape #2}\\%
|
||||
\end{tabular*}%
|
||||
\ifx&%
|
||||
\else{\\\vbox{\small#7}}\fi%
|
||||
\par\addvspace{#1}}
|
||||
|
||||
\newbox{\cvitemwithcommentmainbox}
|
||||
\newlength{\cvitemwithcommentmainlength}
|
||||
\newlength{\cvitemwithcommentcommentlength}
|
||||
\renewcommand*{\cvitemwithcomment}[4][.25em]{%
|
||||
\savebox{\cvitemwithcommentmainbox}{\ifthenelse{\equal{#2}{}}{}{\hintstyle{#2}: }#3}%
|
||||
\setlength{\cvitemwithcommentmainlength}{\widthof{\usebox{\cvitemwithcommentmainbox}}}%
|
||||
\setlength{\cvitemwithcommentcommentlength}{\maincolumnwidth-\separatorcolumnwidth-\cvitemwithcommentmainlength}%
|
||||
\begin{minipage}[t]{\cvitemwithcommentmainlength}\ifthenelse{\equal{#2}{}}{}{\hintstyle{#2}: }#3\end{minipage}%
|
||||
\hfill% fill of \separatorcolumnwidth
|
||||
\begin{minipage}[t]{\cvitemwithcommentcommentlength}\raggedleft\small\itshape#4\end{minipage}%
|
||||
\par\addvspace{#1}}
|
||||
|
||||
\renewenvironment{thebibliography}[1]%
|
||||
{%
|
||||
\bibliographyhead{\refname}%
|
||||
% \small%
|
||||
\begin{list}{\bibliographyitemlabel}%
|
||||
{%
|
||||
\setlength{\topsep}{0pt}%
|
||||
\setlength{\labelwidth}{0pt}%
|
||||
\setlength{\labelsep}{0pt}%
|
||||
\leftmargin\labelwidth%
|
||||
\advance\leftmargin\labelsep%
|
||||
\@openbib@code%
|
||||
\usecounter{enumiv}%
|
||||
\let\p@enumiv\@empty%
|
||||
\renewcommand\theenumiv{\@arabic\c@enumiv}}%
|
||||
\sloppy\clubpenalty4000\widowpenalty4000%
|
||||
% \sfcode`\.\@m%
|
||||
% \sfcode `\=1000\relax%
|
||||
}%
|
||||
{%
|
||||
\def\@noitemerr{\@latex@warning{Empty `thebibliography' environment}}%
|
||||
\end{list}%
|
||||
}
|
||||
|
||||
|
||||
%-------------------------------------------------------------------------------
|
||||
% letter style definition
|
||||
%-------------------------------------------------------------------------------
|
||||
% commands
|
||||
\renewcommand*{\recomputeletterlengths}{
|
||||
\recomputecvlengths%
|
||||
\setlength{\parskip}{6\p@}}
|
||||
|
||||
\renewcommand*{\makelettertitle}{%
|
||||
% recompute lengths (in case we are switching from letter to resume, or vice versa)
|
||||
\recomputeletterlengths%
|
||||
% sender block
|
||||
\maketitle%
|
||||
\par%
|
||||
% recipient block
|
||||
\begin{minipage}[t]{.5\textwidth}
|
||||
\raggedright%
|
||||
\addressfont%
|
||||
{\bfseries\upshape\@recipientname}\\%
|
||||
\@recipientaddress%
|
||||
\end{minipage}
|
||||
% date
|
||||
\hfill % US style
|
||||
% \\[1em] % UK style
|
||||
\@date\\[2em]% US informal style: "April 6, 2006"; UK formal style: "05/04/2006"
|
||||
% opening
|
||||
\raggedright%
|
||||
\@opening\\[1.5em]%
|
||||
% ensure no extra spacing after \makelettertitle due to a possible blank line
|
||||
% \ignorespacesafterend% not working
|
||||
\hspace{0pt}\par\vspace{-\baselineskip}\vspace{-\parskip}}
|
||||
|
||||
\renewcommand*{\makeletterclosing}{
|
||||
\@closing\\[3em]%
|
||||
{\bfseries \@firstname~\@lastname}%
|
||||
\ifthenelse{\isundefined{\@enclosure}}{}{%
|
||||
\\%
|
||||
\vfill%
|
||||
{\color{color2}\itshape\enclname: \@enclosure}}}
|
||||
\moderncvhead{3}
|
||||
\moderncvbody[\moderncvstylebodyoptions]{3}
|
||||
|
||||
|
||||
\endinput
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
%% start of file `moderncvstylecasual.sty'.
|
||||
%% Copyright 2006-2013 Xavier Danaux (xdanaux@gmail.com).
|
||||
%% Copyright 2006-2015 Xavier Danaux (xdanaux@gmail.com).
|
||||
%
|
||||
% This work may be distributed and/or modified under the
|
||||
% conditions of the LaTeX Project Public License version 1.3c,
|
||||
@ -10,176 +10,41 @@
|
||||
% identification
|
||||
%-------------------------------------------------------------------------------
|
||||
\NeedsTeXFormat{LaTeX2e}
|
||||
\ProvidesPackage{moderncvstylecasual}[2013/04/29 v1.5.1 modern curriculum vitae and letter style scheme: casual]
|
||||
\ProvidesPackage{moderncvstylecasual}[2015/07/28 v2.0.0 modern curriculum vitae and letter style scheme: casual]
|
||||
|
||||
% head section alignment options: "left" (default) or "right"
|
||||
\@initializecommand{\moderncvstyleheadoptions}{}
|
||||
\DeclareOption{left} {\edef\moderncvstyleheadoptions{\moderncvstyleheadoptions,left}}
|
||||
\DeclareOption{right}{\edef\moderncvstyleheadoptions{\moderncvstyleheadoptions,right}}
|
||||
|
||||
\DeclareOption*{}% avoid choking on unknown options
|
||||
\ExecuteOptions{right}
|
||||
\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
|
||||
|
||||
%-------------------------------------------------------------------------------
|
||||
% required packages
|
||||
% fonts & icons
|
||||
%-------------------------------------------------------------------------------
|
||||
\RequirePackage{moderncvstyleclassic}
|
||||
% Latin Modern fonts
|
||||
%\ifxetexorluatex
|
||||
% \setmainfont{Latin Modern Roman}
|
||||
% \setsansfont{Latin Modern Sans}
|
||||
% \setmathfont{Latin Modern Math}
|
||||
%\else
|
||||
\IfFileExists{lmodern.sty}%
|
||||
{\RequirePackage{lmodern}}%
|
||||
{}
|
||||
%\fi
|
||||
|
||||
% symbols
|
||||
\moderncvicons{awesome}
|
||||
|
||||
|
||||
%-------------------------------------------------------------------------------
|
||||
% overall style definition
|
||||
% header, body & footer
|
||||
%-------------------------------------------------------------------------------
|
||||
% commands
|
||||
% footer symbol used to separate footer elements
|
||||
\newcommand*{\footersymbol}{%
|
||||
{~~~{\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
|
||||
% internal command to add an element to the footer
|
||||
% it collects the elements in a temporary box, and checks when to flush the box
|
||||
\newsavebox{\footerbox}%
|
||||
\newsavebox{\footertempbox}%
|
||||
\newlength{\footerwidth}%
|
||||
\newlength{\footerboxwidth}%
|
||||
\newif\if@firstfooterelement\@firstfooterelementtrue%
|
||||
% adds an element to the footer, separated by footersymbol
|
||||
% usage: \addtofooter[footersymbol]{element}
|
||||
\newcommand*{\addtofooter}[2][\footersymbol]{%
|
||||
\if@firstfooterelement%
|
||||
\savebox{\footertempbox}{\usebox{\footerbox}#2}%
|
||||
\else%
|
||||
\savebox{\footertempbox}{\usebox{\footerbox}#1#2}\fi%
|
||||
\settowidth{\footerboxwidth}{\usebox{\footertempbox}}%
|
||||
\ifnum\footerboxwidth<\footerwidth%
|
||||
\savebox{\footerbox}{\usebox{\footertempbox}}%
|
||||
\@firstfooterelementfalse%
|
||||
\else%
|
||||
\flushfooter\\%
|
||||
\savebox{\footerbox}{#2}%
|
||||
\savebox{\footertempbox}{#2}%
|
||||
\settowidth{\footerboxwidth}{\usebox{\footerbox}}%
|
||||
\@firstfooterelementfalse\fi}
|
||||
% internal command to flush the footer
|
||||
\newcommand*{\flushfooter}{%
|
||||
\strut\usebox{\footerbox}%
|
||||
\savebox{\footerbox}{}%
|
||||
\savebox{\footertempbox}{}%
|
||||
\setlength{\footerboxwidth}{0pt}}
|
||||
|
||||
|
||||
%-------------------------------------------------------------------------------
|
||||
% resume style definition
|
||||
%-------------------------------------------------------------------------------
|
||||
% fonts
|
||||
\renewcommand*{\namefont}{\fontsize{38}{40}\mdseries\upshape}
|
||||
\renewcommand*{\addressfont}{\normalsize\mdseries\slshape}
|
||||
|
||||
% commands
|
||||
\renewcommand*{\makecvtitle}{%
|
||||
% recompute lengths (in case we are switching from letter to resume, or vice versa)
|
||||
\recomputecvlengths%
|
||||
% ensure footer with personal information
|
||||
\makecvfooter%
|
||||
% optional picture
|
||||
\newbox{\makecvtitlepicturebox}%
|
||||
\savebox{\makecvtitlepicturebox}{%
|
||||
\ifthenelse{\isundefined{\@photo}}%
|
||||
{}%
|
||||
{%
|
||||
\setlength\fboxrule{\@photoframewidth}%
|
||||
\ifdim\@photoframewidth=0pt%
|
||||
\setlength{\fboxsep}{0pt}\fi%
|
||||
{\color{color1}\framebox{\includegraphics[width=\@photowidth]{\@photo}}}}}%
|
||||
\usebox{\makecvtitlepicturebox}%
|
||||
% name
|
||||
\@initializelength{\makecvtitlepicturewidth}%
|
||||
\settowidth{\makecvtitlepicturewidth}{\usebox{\makecvtitlepicturebox}}%
|
||||
\parbox[b]{\textwidth-\makecvtitlepicturewidth}{%
|
||||
\raggedleft\namefont{\color{color2!50}\@firstname} {\color{color2}\@lastname}}\\[-.35em]% alternate design: \MakeLowercase and no space
|
||||
{\color{color2!50}\rule{\textwidth}{.25ex}}%
|
||||
% optional title
|
||||
\ifthenelse{\equal{\@title}{}}{}{\\[1.25em]\null\hfill\titlestyle{\@title}}\\[2.5em]% \null is required as there is no box on the line after \\, so glue (and leaders) disappears; this is in contrast to after \par, where the next line starts with an indent box (even after \noindent).
|
||||
% optional quote
|
||||
\ifthenelse{\isundefined{\@quote}}%
|
||||
{}%
|
||||
{{\null\hfill\begin{minipage}{\quotewidth}\centering\quotestyle{\@quote}\end{minipage}\hfill\null\\[2.5em]}}%
|
||||
\par}% to avoid weird spacing bug at the first section if no blank line is left after \maketitle
|
||||
|
||||
\renewcommand*{\makecvfooter}{%
|
||||
\setlength{\footerwidth}{0.8\textwidth}%
|
||||
\fancypagestyle{plain}{%
|
||||
\fancyfoot[c]{%
|
||||
\parbox[b]{\footerwidth}{%
|
||||
\centering%
|
||||
\color{color2}\addressfont%
|
||||
\vspace{\baselineskip}% forces a white line to ensure space between main text and footer (as footer height can't be known in advance)
|
||||
\ifthenelse{\isundefined{\@addressstreet}}{}{\addtofooter[]{\addresssymbol\@addressstreet}%
|
||||
\ifthenelse{\equal{\@addresscity}{}}{}{\addtofooter[~--~]{\@addresscity}}% if \addresstreet is defined, \addresscity and \addresscountry will always be defined but could be empty
|
||||
\ifthenelse{\equal{\@addresscountry}{}}{}{\addtofooter[~--~]{\@addresscountry}}%
|
||||
\flushfooter\@firstfooterelementtrue\\}%
|
||||
\collectionloop{phones}{% the key holds the phone type (=symbol command prefix), the item holds the number
|
||||
\addtofooter{\csname\collectionloopkey phonesymbol\endcsname\collectionloopitem}}%
|
||||
\ifthenelse{\isundefined{\@email}}{}{\addtofooter{\emailsymbol\emaillink{\@email}}}%
|
||||
\ifthenelse{\isundefined{\@homepage}}{}{\addtofooter{\homepagesymbol\httplink{\@homepage}}}%
|
||||
\collectionloop{socials}{% the key holds the social type (=symbol command prefix), the item holds the link
|
||||
\addtofooter{\csname\collectionloopkey socialsymbol\endcsname\collectionloopitem}}%
|
||||
\ifthenelse{\isundefined{\@extrainfo}}{}{\addtofooter{\@extrainfo}}%
|
||||
\ifthenelse{\lengthtest{\footerboxwidth=0pt}}{}{\flushfooter}% 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
|
||||
}}}%
|
||||
\pagestyle{plain}}
|
||||
|
||||
|
||||
%-------------------------------------------------------------------------------
|
||||
% letter style definition
|
||||
%-------------------------------------------------------------------------------
|
||||
\renewcommand*{\makelettertitle}{%
|
||||
% recompute lengths (in case we are switching from letter to resume, or vice versa)
|
||||
\recomputeletterlengths%
|
||||
% ensure footer with personal information
|
||||
\makeletterfooter%
|
||||
% recipient block
|
||||
\begin{minipage}[t]{.5\textwidth}
|
||||
\raggedright%
|
||||
\addressfont%
|
||||
{\bfseries\upshape\@recipientname}\\%
|
||||
\@recipientaddress%
|
||||
\end{minipage}
|
||||
% date
|
||||
\hfill% US style
|
||||
% \\[1em]% UK style
|
||||
\@date\\[2em]% US informal style: "April 6, 2006"; UK formal style: "05/04/2006"
|
||||
% opening
|
||||
\raggedright%
|
||||
\@opening\\[1.5em]%
|
||||
% ensure no extra spacing after \makelettertitle due to a possible blank line
|
||||
% \ignorespacesafterend% not working
|
||||
\hspace{0pt}\par\vspace{-\baselineskip}\vspace{-\parskip}}
|
||||
|
||||
\renewcommand*{\makeletterfooter}{%
|
||||
\setlength{\footerwidth}{0.8\textwidth}%
|
||||
\fancypagestyle{plain}{%
|
||||
\fancyfoot[c]{%
|
||||
\parbox[b]{\footerwidth}{%
|
||||
\centering%
|
||||
\addressfont\color{color2}%
|
||||
\vspace{\baselineskip}% forces a white line to ensure space between main text and footer (as footer height can't be known in advance)
|
||||
\vspace{-\baselineskip}% to cancel out the extra vertical space taken by the name (below) and ensure perfect alignment of letter and cv footers
|
||||
\strut{\bfseries\upshape\@firstname~\@lastname}\\% the \strut is required to ensure the line is exactly \baselineskip tall
|
||||
\ifthenelse{\isundefined{\@addressstreet}}{}{\addtofooter[]{\addresssymbol\@addressstreet}%
|
||||
\ifthenelse{\equal{\@addresscity}{}}{}{\addtofooter[~--~]{\@addresscity}}% if \addresstreet is defined, \addresscity and addresscountry will always be defined but could be empty
|
||||
\ifthenelse{\equal{\@addresscountry}{}}{}{\addtofooter[~--~]{\@addresscountry}}%
|
||||
\flushfooter\@firstfooterelementtrue\\}%
|
||||
\collectionloop{phones}{% the key holds the phone type (=symbol command prefix), the item holds the number
|
||||
\addtofooter{\csname\collectionloopkey phonesymbol\endcsname\collectionloopitem}}%
|
||||
\ifthenelse{\isundefined{\@email}}{}{\addtofooter{\emailsymbol\emaillink{\@email}}}%
|
||||
\ifthenelse{\isundefined{\@homepage}}{}{\addtofooter{\homepagesymbol\httplink{\@homepage}}}%
|
||||
\collectionloop{socials}{% the key holds the social type (=symbol command prefix), the item holds the link
|
||||
\addtofooter{\csname\collectionloopkey socialsymbol\endcsname\collectionloopitem}}%
|
||||
\ifthenelse{\isundefined{\@extrainfo}}{}{\addtofooter{\@extrainfo}}%
|
||||
\ifthenelse{\lengthtest{\footerboxwidth=0pt}}{}{\flushfooter}% 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
|
||||
}}}%
|
||||
\pagestyle{plain}}
|
||||
|
||||
\renewcommand*{\makeletterclosing}{
|
||||
\@closing\\[3em]%
|
||||
{\bfseries\@firstname~\@lastname}%
|
||||
\ifthenelse{\isundefined{\@enclosure}}{}{%
|
||||
\\%
|
||||
\vfil%
|
||||
{\color{color2}\itshape\enclname: \@enclosure}}%
|
||||
\vfil}
|
||||
\moderncvhead[\moderncvstyleheadoptions]{2}
|
||||
\moderncvbody{1}
|
||||
\moderncvfoot{1}
|
||||
|
||||
|
||||
\endinput
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
%% start of file `moderncvstyleclassic.sty'.
|
||||
%% Copyright 2006-2013 Xavier Danaux (xdanaux@gmail.com).
|
||||
%% Copyright 2006-2015 Xavier Danaux (xdanaux@gmail.com).
|
||||
%
|
||||
% This work may be distributed and/or modified under the
|
||||
% conditions of the LaTeX Project Public License version 1.3c,
|
||||
@ -10,11 +10,19 @@
|
||||
% identification
|
||||
%-------------------------------------------------------------------------------
|
||||
\NeedsTeXFormat{LaTeX2e}
|
||||
\ProvidesPackage{moderncvstyleclassic}[2013/04/29 v1.5.1 modern curriculum vitae and letter style scheme: classic]
|
||||
\ProvidesPackage{moderncvstyleclassic}[2015/07/28 v2.0.0 modern curriculum vitae and letter style scheme: classic]
|
||||
|
||||
% head section alignment options: "left" (default) or "right"
|
||||
\@initializecommand{\moderncvstyleheadoptions}{}
|
||||
\DeclareOption{left} {\edef\moderncvstyleheadoptions{\moderncvstyleheadoptions,left}}
|
||||
\DeclareOption{right}{\edef\moderncvstyleheadoptions{\moderncvstyleheadoptions,right}}
|
||||
|
||||
\DeclareOption*{}% avoid choking on unknown options
|
||||
\ExecuteOptions{left}
|
||||
\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
|
||||
|
||||
%-------------------------------------------------------------------------------
|
||||
% required packages
|
||||
% fonts & icons
|
||||
%-------------------------------------------------------------------------------
|
||||
% Latin Modern fonts
|
||||
%\ifxetexorluatex
|
||||
@ -27,265 +35,15 @@
|
||||
{}
|
||||
%\fi
|
||||
|
||||
|
||||
%-------------------------------------------------------------------------------
|
||||
% overall style definition
|
||||
%-------------------------------------------------------------------------------
|
||||
% symbols
|
||||
\moderncvicons{marvosym}
|
||||
|
||||
|
||||
%-------------------------------------------------------------------------------
|
||||
% resume style definition
|
||||
% header, body & footer
|
||||
%-------------------------------------------------------------------------------
|
||||
% fonts
|
||||
\renewcommand*{\namefont}{\fontsize{34}{36}\mdseries\upshape}
|
||||
\renewcommand*{\titlefont}{\LARGE\mdseries\slshape}
|
||||
\renewcommand*{\addressfont}{\small\mdseries\slshape}
|
||||
\renewcommand*{\quotefont}{\large\slshape}
|
||||
\renewcommand*{\sectionfont}{\Large\mdseries\upshape}
|
||||
\renewcommand*{\subsectionfont}{\large\mdseries\upshape}
|
||||
\renewcommand*{\hintfont}{}
|
||||
|
||||
% styles
|
||||
\renewcommand*{\namestyle}[1]{{\namefont\textcolor{color0}{#1}}}
|
||||
\renewcommand*{\titlestyle}[1]{{\titlefont\textcolor{color2}{#1}}}
|
||||
\renewcommand*{\addressstyle}[1]{{\addressfont\textcolor{color2}{#1}}}
|
||||
\renewcommand*{\quotestyle}[1]{{\quotefont\textcolor{color1}{#1}}}
|
||||
\renewcommand*{\sectionstyle}[1]{{\sectionfont\textcolor{color1}{#1}}}
|
||||
\renewcommand*{\subsectionstyle}[1]{{\subsectionfont\textcolor{color1}{#1}}}
|
||||
\renewcommand*{\hintstyle}[1]{{\hintfont\textcolor{color0}{#1}}}
|
||||
|
||||
% lengths
|
||||
\@initializelength{\quotewidth}
|
||||
\@initializelength{\hintscolumnwidth}
|
||||
\setlength{\hintscolumnwidth}{0.175\textwidth}
|
||||
\@initializelength{\separatorcolumnwidth}
|
||||
\setlength{\separatorcolumnwidth}{0.025\textwidth}
|
||||
\@initializelength{\maincolumnwidth}
|
||||
\@initializelength{\doubleitemmaincolumnwidth}
|
||||
\@initializelength{\listitemsymbolwidth}
|
||||
\settowidth{\listitemsymbolwidth}{\listitemsymbol}
|
||||
\@initializelength{\listitemmaincolumnwidth}
|
||||
\@initializelength{\listdoubleitemmaincolumnwidth}
|
||||
|
||||
% commands
|
||||
\renewcommand*{\recomputecvlengths}{%
|
||||
\setlength{\quotewidth}{0.65\textwidth}%
|
||||
% main lenghts
|
||||
\setlength{\maincolumnwidth}{\textwidth-\separatorcolumnwidth-\hintscolumnwidth}%
|
||||
% listitem lengths
|
||||
\setlength{\listitemmaincolumnwidth}{\maincolumnwidth-\listitemsymbolwidth}%
|
||||
% doubleitem lengths
|
||||
\setlength{\doubleitemmaincolumnwidth}{\maincolumnwidth-\hintscolumnwidth-\separatorcolumnwidth-\separatorcolumnwidth}%
|
||||
\setlength{\doubleitemmaincolumnwidth}{0.5\doubleitemmaincolumnwidth}%
|
||||
% listdoubleitem lengths
|
||||
\setlength{\listdoubleitemmaincolumnwidth}{\maincolumnwidth-\listitemsymbolwidth-\separatorcolumnwidth-\listitemsymbolwidth}%
|
||||
\setlength{\listdoubleitemmaincolumnwidth}{0.5\listdoubleitemmaincolumnwidth}%
|
||||
% fancyhdr lengths
|
||||
\renewcommand{\headwidth}{\textwidth}%
|
||||
% regular lengths
|
||||
\setlength{\parskip}{0\p@}}
|
||||
|
||||
% optional maketitle width to force a certain width (if set to 0pt, the width is calculated automatically)
|
||||
\newlength{\makecvtitlenamewidth}
|
||||
\setlength{\makecvtitlenamewidth}{0pt}% dummy value
|
||||
\renewcommand*{\makecvtitle}{%
|
||||
% recompute lengths (in case we are switching from letter to resume, or vice versa)
|
||||
\recomputecvlengths%
|
||||
% optional detailed information (pre-rendering)
|
||||
\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}}%
|
||||
\newbox{\makecvtitledetailsbox}%
|
||||
\savebox{\makecvtitledetailsbox}{%
|
||||
\addressfont\color{color2}%
|
||||
\begin{tabular}[b]{@{}r@{}}%
|
||||
\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}}%
|
||||
\socialsdetails% needs to be pre-rendered as loops and tabulars seem to conflict
|
||||
\ifthenelse{\isundefined{\@extrainfo}}{}{\makenewline\@extrainfo}%
|
||||
\end{tabular}
|
||||
}%
|
||||
% optional photo (pre-rendering)
|
||||
\newbox{\makecvtitlepicturebox}%
|
||||
\savebox{\makecvtitlepicturebox}{%
|
||||
\ifthenelse{\isundefined{\@photo}}%
|
||||
{}%
|
||||
{%
|
||||
\hspace*{\separatorcolumnwidth}%
|
||||
\color{color1}%
|
||||
\setlength{\fboxrule}{\@photoframewidth}%
|
||||
\ifdim\@photoframewidth=0pt%
|
||||
\setlength{\fboxsep}{0pt}\fi%
|
||||
\framebox{\includegraphics[width=\@photowidth]{\@photo}}}}%
|
||||
% name and title
|
||||
\newlength{\makecvtitledetailswidth}\settowidth{\makecvtitledetailswidth}{\usebox{\makecvtitledetailsbox}}%
|
||||
\newlength{\makecvtitlepicturewidth}\settowidth{\makecvtitlepicturewidth}{\usebox{\makecvtitlepicturebox}}%
|
||||
\ifthenelse{\lengthtest{\makecvtitlenamewidth=0pt}}% check for dummy value (equivalent to \ifdim\makecvtitlenamewidth=0pt)
|
||||
{\setlength{\makecvtitlenamewidth}{\textwidth-\makecvtitledetailswidth-\makecvtitlepicturewidth}}%
|
||||
{}%
|
||||
\begin{minipage}[b]{\makecvtitlenamewidth}%
|
||||
\namestyle{\@firstname\ \@lastname}%
|
||||
\ifthenelse{\equal{\@title}{}}{}{\\[1.25em]\titlestyle{\@title}}%
|
||||
\end{minipage}%
|
||||
\hfill%
|
||||
% optional detailed information (rendering)
|
||||
\llap{\usebox{\makecvtitledetailsbox}}% \llap is used to suppress the width of the box, allowing overlap if the value of makecvtitlenamewidth is forced
|
||||
% optional photo (rendering)
|
||||
\usebox{\makecvtitlepicturebox}\\[2.5em]%
|
||||
% optional quote
|
||||
\ifthenelse{\isundefined{\@quote}}%
|
||||
{}%
|
||||
{{\centering\begin{minipage}{\quotewidth}\centering\quotestyle{\@quote}\end{minipage}\\[2.5em]}}%
|
||||
\par}% to avoid weird spacing bug at the first section if no blank line is left after \makecvtitle
|
||||
|
||||
\@initializelength{\baseletterheight}
|
||||
\settoheight{\baseletterheight}{\sectionstyle{o}}
|
||||
\setlength{\baseletterheight}{\baseletterheight-0.95ex}
|
||||
\RenewDocumentCommand{\section}{sm}{%
|
||||
\par\addvspace{2.5ex}%
|
||||
\phantomsection{}% reset the anchor for hyperrefs
|
||||
\addcontentsline{toc}{section}{#2}%
|
||||
\cvitem[0ex]{\strut\raggedleft\raisebox{\baseletterheight}{\color{color1}\rule{\hintscolumnwidth}{0.95ex}}}{\strut\sectionstyle{#2}}%
|
||||
\par\nobreak\addvspace{1ex}\@afterheading}% to avoid a pagebreak after the heading
|
||||
|
||||
\RenewDocumentCommand{\subsection}{sm}{%
|
||||
\par\addvspace{1ex}%
|
||||
\phantomsection{}% reset the anchor for hyperrefs
|
||||
\addcontentsline{toc}{subsection}{#2}%
|
||||
\cvitem[0ex]{}{\strut\subsectionstyle{#2}}%
|
||||
\par\nobreak\addvspace{.5ex}\@afterheading}% to avoid a pagebreak after the heading
|
||||
|
||||
\renewcommand*{\cvitem}[3][.25em]{%
|
||||
\begin{tabular}{@{}p{\hintscolumnwidth}@{\hspace{\separatorcolumnwidth}}p{\maincolumnwidth}@{}}%
|
||||
\raggedleft\hintstyle{#2} &{#3}%
|
||||
\end{tabular}%
|
||||
\par\addvspace{#1}}
|
||||
|
||||
\renewcommand*{\cvdoubleitem}[5][.25em]{%
|
||||
\cvitem[#1]{#2}{%
|
||||
\begin{minipage}[t]{\doubleitemmaincolumnwidth}#3\end{minipage}%
|
||||
\hfill% fill of \separatorcolumnwidth
|
||||
\begin{minipage}[t]{\hintscolumnwidth}\raggedleft\hintstyle{#4}\end{minipage}%
|
||||
\hspace*{\separatorcolumnwidth}%
|
||||
\begin{minipage}[t]{\doubleitemmaincolumnwidth}#5\end{minipage}}}
|
||||
|
||||
\renewcommand*{\cvlistitem}[2][.25em]{%
|
||||
\cvitem[#1]{}{\listitemsymbol\begin{minipage}[t]{\listitemmaincolumnwidth}#2\end{minipage}}}
|
||||
|
||||
\renewcommand*{\cvlistdoubleitem}[3][.25em]{%
|
||||
\cvitem[#1]{}{\listitemsymbol\begin{minipage}[t]{\listdoubleitemmaincolumnwidth}#2\end{minipage}%
|
||||
\hfill% fill of \separatorcolumnwidth
|
||||
\ifthenelse{\equal{#3}{}}%
|
||||
{}%
|
||||
{\listitemsymbol\begin{minipage}[t]{\listdoubleitemmaincolumnwidth}#3\end{minipage}}}}
|
||||
|
||||
\renewcommand*{\cventry}[7][.25em]{%
|
||||
\cvitem[#1]{#2}{%
|
||||
{\bfseries#3}%
|
||||
\ifthenelse{\equal{#4}{}}{}{, {\slshape#4}}%
|
||||
\ifthenelse{\equal{#5}{}}{}{, #5}%
|
||||
\ifthenelse{\equal{#6}{}}{}{, #6}%
|
||||
.\strut%
|
||||
\ifx&%
|
||||
\else{\newline{}\begin{minipage}[t]{\linewidth}\small#7\end{minipage}}\fi}}
|
||||
|
||||
\@initializebox{\cvitemwithcommentmainbox}
|
||||
\@initializelength{\cvitemwithcommentmainlength}
|
||||
\@initializelength{\cvitemwithcommentcommentlength}
|
||||
\renewcommand*{\cvitemwithcomment}[4][.25em]{%
|
||||
\savebox{\cvitemwithcommentmainbox}{{\bfseries#3}}%
|
||||
\setlength{\cvitemwithcommentmainlength}{\widthof{\usebox{\cvitemwithcommentmainbox}}}%
|
||||
\setlength{\cvitemwithcommentcommentlength}{\maincolumnwidth-\separatorcolumnwidth-\cvitemwithcommentmainlength}%
|
||||
\cvitem[#1]{#2}{%
|
||||
\begin{minipage}[t]{\cvitemwithcommentmainlength}\bfseries#3\end{minipage}%
|
||||
\hfill% fill of \separatorcolumnwidth
|
||||
\begin{minipage}[t]{\cvitemwithcommentcommentlength}\raggedleft\small\itshape#4\end{minipage}}}
|
||||
|
||||
\renewenvironment{thebibliography}[1]%
|
||||
{%
|
||||
\bibliographyhead{\refname}%
|
||||
% \small%
|
||||
\begin{list}{\bibliographyitemlabel}%
|
||||
{%
|
||||
\setlength{\topsep}{0pt}%
|
||||
\setlength{\labelwidth}{\hintscolumnwidth}%
|
||||
\setlength{\labelsep}{\separatorcolumnwidth}%
|
||||
\leftmargin\labelwidth%
|
||||
\advance\leftmargin\labelsep%
|
||||
\@openbib@code%
|
||||
\usecounter{enumiv}%
|
||||
\let\p@enumiv\@empty%
|
||||
\renewcommand\theenumiv{\@arabic\c@enumiv}}%
|
||||
\sloppy\clubpenalty4000\widowpenalty4000%
|
||||
% \sfcode`\.\@m%
|
||||
% \sfcode `\=1000\relax%
|
||||
}%
|
||||
{%
|
||||
\def\@noitemerr{\@latex@warning{Empty `thebibliography' environment}}%
|
||||
\end{list}%
|
||||
}
|
||||
|
||||
|
||||
%-------------------------------------------------------------------------------
|
||||
% letter style definition
|
||||
%-------------------------------------------------------------------------------
|
||||
% commands
|
||||
\renewcommand*{\recomputeletterlengths}{%
|
||||
\recomputecvlengths%
|
||||
\setlength{\parskip}{6\p@}}
|
||||
|
||||
\renewcommand*{\makelettertitle}{%
|
||||
% recompute lengths (in case we are switching from letter to resume, or vice versa)
|
||||
\recomputeletterlengths%
|
||||
% sender contact info
|
||||
\hfill%
|
||||
\begin{minipage}{.5\textwidth}%
|
||||
\raggedleft%
|
||||
\addressfont\textcolor{color2}{%
|
||||
{\bfseries\upshape\@firstname~\@lastname}\@firstdetailselementfalse%
|
||||
\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\httplink{\@homepage}}%
|
||||
\ifthenelse{\isundefined{\@extrainfo}}{}{\makenewline\@extrainfo}}%
|
||||
\end{minipage}\\[1em]
|
||||
% recipient block
|
||||
\begin{minipage}[t]{.5\textwidth}
|
||||
\raggedright%
|
||||
\addressfont%
|
||||
{\bfseries\upshape\@recipientname}\\%
|
||||
\@recipientaddress%
|
||||
\end{minipage}
|
||||
% date
|
||||
\hfill% US style
|
||||
% \\[1em]% UK style
|
||||
\@date\\[2em]% US informal style: "January 1, 1900"; UK formal style: "01/01/1900"
|
||||
% opening
|
||||
\raggedright%
|
||||
\@opening\\[1.5em]%
|
||||
% ensure no extra spacing after \makelettertitle due to a possible blank line
|
||||
% \ignorespacesafterend% not working
|
||||
\hspace{0pt}\par\vspace{-\baselineskip}\vspace{-\parskip}}
|
||||
|
||||
\renewcommand*{\makeletterclosing}{
|
||||
\@closing\\[3em]%
|
||||
{\bfseries \@firstname~\@lastname}%
|
||||
\ifthenelse{\isundefined{\@enclosure}}{}{%
|
||||
\\%
|
||||
\vfill%
|
||||
{\color{color2}\itshape\enclname: \@enclosure}}}
|
||||
\moderncvhead[\moderncvstyleheadoptions]{1}
|
||||
\moderncvbody{1}
|
||||
|
||||
|
||||
\endinput
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
%% start of file `moderncvstyleempty.sty'.
|
||||
%% Copyright 2006-2013 Xavier Danaux (xdanaux@gmail.com).
|
||||
%% Copyright 2006-2015 Xavier Danaux (xdanaux@gmail.com).
|
||||
%
|
||||
% 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}
|
||||
\ProvidesPackage{moderncvstyleempty}[2013/04/29 v1.5.1 modern curriculum vitae scheme: empty]
|
||||
\ProvidesPackage{moderncvstyleempty}[2015/07/28 v2.0.0 modern curriculum vitae scheme: empty]
|
||||
|
||||
|
||||
%-------------------------------------------------------------------------------
|
||||
|
||||
47
moderncvstylefancy.sty
Normal file
47
moderncvstylefancy.sty
Normal file
@ -0,0 +1,47 @@
|
||||
%% start of file `moderncvstylefancy.sty'.
|
||||
%% Copyright 2015-2015 Xavier Danaux (xdanaux@gmail.com).
|
||||
%
|
||||
% This work may be distributed and/or modified under the
|
||||
% conditions of the LaTeX Project Public License version 1.3c,
|
||||
% available at http://www.latex-project.org/lppl/.
|
||||
|
||||
|
||||
%-------------------------------------------------------------------------------
|
||||
% identification
|
||||
%-------------------------------------------------------------------------------
|
||||
\NeedsTeXFormat{LaTeX2e}
|
||||
\ProvidesPackage{moderncvstylefancy}[2015/07/28 v2.0.0 modern curriculum vitae and letter style scheme: fancy]
|
||||
|
||||
\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
|
||||
|
||||
%-------------------------------------------------------------------------------
|
||||
% fonts & icons
|
||||
%-------------------------------------------------------------------------------
|
||||
% EB Garamond font
|
||||
%\ifxetexorluatex
|
||||
% \setmainfont{EB Garamond}
|
||||
% \setsansfont{EB Garamond}
|
||||
% \setmathfont{EB Garamond}
|
||||
%\else
|
||||
\IfFileExists{ebgaramond.sty}%
|
||||
{\RequirePackage{ebgaramond}}%
|
||||
{}
|
||||
%\fi
|
||||
|
||||
% symbols
|
||||
\moderncvicons{awesome}
|
||||
|
||||
|
||||
%-------------------------------------------------------------------------------
|
||||
% header, body & footer
|
||||
%-------------------------------------------------------------------------------
|
||||
\moderncvhead{5}
|
||||
\moderncvbody{5}
|
||||
|
||||
|
||||
\endinput
|
||||
|
||||
|
||||
%% end of file `moderncvstylefancy.sty'.
|
||||
@ -1,5 +1,5 @@
|
||||
%% start of file `moderncvstyleoldstyle.sty'.
|
||||
%% Copyright 2006-2013 Xavier Danaux (xdanaux@gmail.com).
|
||||
%% Copyright 2006-2015 Xavier Danaux (xdanaux@gmail.com).
|
||||
%
|
||||
% This work may be distributed and/or modified under the
|
||||
% conditions of the LaTeX Project Public License version 1.3c,
|
||||
@ -10,20 +10,17 @@
|
||||
% identification
|
||||
%-------------------------------------------------------------------------------
|
||||
\NeedsTeXFormat{LaTeX2e}
|
||||
\ProvidesPackage{moderncvstyleoldstyle}[2013/04/29 v1.5.1 modern curriculum vitae and letter style scheme: oldstyle]
|
||||
\ProvidesPackage{moderncvstyleoldstyle}[2015/07/28 v2.0.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
|
||||
|
||||
|
||||
%-------------------------------------------------------------------------------
|
||||
% required packages
|
||||
% fonts & icons
|
||||
%-------------------------------------------------------------------------------
|
||||
% change the layout of the page on the fly, for resume or letter layout
|
||||
\RequirePackage{changepage}
|
||||
|
||||
|
||||
%-------------------------------------------------------------------------------
|
||||
% overall style definition
|
||||
%-------------------------------------------------------------------------------
|
||||
% fonts
|
||||
% Kurier font
|
||||
%\ifxetexorluatex
|
||||
% \setmainfont[Numbers={OldStyle,Proportional}, BoldFont={Kurier Bold}, ItalicFont={Kurier Light Italic}, BoldItalicFont={Kurier Bold Italic}]{Kurier Light}
|
||||
% \setsansfont[Numbers={OldStyle,Proportional}, BoldFont={Kurier Bold}, ItalicFont={Kurier Light Italic}, BoldItalicFont={Kurier Bold Italic}]{Kurier Light}
|
||||
@ -42,265 +39,10 @@
|
||||
|
||||
|
||||
%-------------------------------------------------------------------------------
|
||||
% resume style definition
|
||||
% header, body & footer
|
||||
%-------------------------------------------------------------------------------
|
||||
% fonts
|
||||
\renewcommand*{\namefont}{\fontsize{34}{36}\mdseries\upshape}
|
||||
\renewcommand*{\titlefont}{\LARGE\mdseries\slshape}
|
||||
\renewcommand*{\addressfont}{\small\mdseries}
|
||||
\renewcommand*{\quotefont}{\large\itshape}
|
||||
\renewcommand*{\sectionfont}{\Large\bfseries\upshape}
|
||||
\renewcommand*{\subsectionfont}{\large\bfseries\itshape}
|
||||
\renewcommand*{\hintfont}{\bfseries}
|
||||
|
||||
% styles
|
||||
\renewcommand*{\namestyle}[1]{{\namefont\textcolor{color0}{#1}}}
|
||||
\renewcommand*{\titlestyle}[1]{{\titlefont\textcolor{color2}{#1}}}
|
||||
\renewcommand*{\addressstyle}[1]{{\addressfont\textcolor{color2}{#1}}}
|
||||
\renewcommand*{\quotestyle}[1]{{\quotefont\textcolor{color1}{#1}}}
|
||||
\renewcommand*{\sectionstyle}[1]{{\sectionfont\textcolor{color1}{#1}}}
|
||||
\renewcommand*{\subsectionstyle}[1]{{\subsectionfont\textcolor{color1}{#1}}}
|
||||
\renewcommand*{\hintstyle}[1]{{\hintfont\textcolor{color0}{#1}}}
|
||||
|
||||
% lengths
|
||||
\newlength{\quotewidth}
|
||||
\newlength{\hintscolumnwidth}
|
||||
\setlength{\hintscolumnwidth}{0.3\textwidth}%
|
||||
\newlength{\separatorcolumnwidth}
|
||||
\setlength{\separatorcolumnwidth}{0.025\textwidth}%
|
||||
\newlength{\maincolumnwidth}
|
||||
\newlength{\doubleitemcolumnwidth}
|
||||
\newlength{\listitemsymbolwidth}
|
||||
\settowidth{\listitemsymbolwidth}{\listitemsymbol}
|
||||
\newlength{\listitemmaincolumnwidth}
|
||||
\newlength{\listdoubleitemmaincolumnwidth}
|
||||
|
||||
% commands
|
||||
\setlength{\marginparwidth}{0\p@}%
|
||||
\setlength{\marginparsep}{0\p@}
|
||||
\renewcommand*{\recomputecvlengths}{%
|
||||
% regular lengths
|
||||
\changepage{}{+\marginparwidth+\marginparsep}{}{}{}{}{}{}{}% if a letter was typeset before the resume, \marginparwidth and \marginparsep will be non-zero; otherwise, this has no effect
|
||||
\setlength{\marginparwidth}{0\p@}%
|
||||
\setlength{\marginparsep}{0\p@}
|
||||
\setlength{\parskip}{0\p@}%
|
||||
% maketitle lengths
|
||||
\setlength{\quotewidth}{0.65\textwidth}%
|
||||
% main lenghts
|
||||
\setlength{\maincolumnwidth}{\textwidth-\hintscolumnwidth-\separatorcolumnwidth}%
|
||||
% listitem lengths
|
||||
\setlength{\listitemmaincolumnwidth}{\maincolumnwidth-\listitemsymbolwidth}%
|
||||
% doubleitem lengths
|
||||
\setlength{\doubleitemcolumnwidth}{\maincolumnwidth-\separatorcolumnwidth}%
|
||||
\setlength{\doubleitemcolumnwidth}{0.5\doubleitemcolumnwidth}%
|
||||
% listdoubleitem lengths
|
||||
\setlength{\listdoubleitemmaincolumnwidth}{\maincolumnwidth-\listitemsymbolwidth-\separatorcolumnwidth-\listitemsymbolwidth}%
|
||||
\setlength{\listdoubleitemmaincolumnwidth}{0.5\listdoubleitemmaincolumnwidth}%
|
||||
% fancyhdr lengths
|
||||
\renewcommand{\headwidth}{\textwidth}}
|
||||
|
||||
\newcommand{\makecvinfo}[1]{%
|
||||
\newbox{\makecvinfobox}%
|
||||
\savebox{\makecvinfobox}{\parbox[t]{\hintscolumnwidth}{#1}}%
|
||||
\newlength{\makecvinfoheight}%
|
||||
\setlength{\makecvinfoheight}{\totalheightof{\usebox{\makecvinfobox}}}% the total height of the parbox is the sum of its height (\the\ht\makeinfobox) and its depth (\the\dp\makeinfobox); the \totalheightof command is provided by the "calc" package
|
||||
\usebox{\makecvinfobox}\vspace{-\makecvinfoheight}%
|
||||
\newlength{\leftcolumnwidth}%
|
||||
\setlength{\leftcolumnwidth}{\hintscolumnwidth+\separatorcolumnwidth}%
|
||||
\par\vspace{-\baselineskip}\vspace{-\parskip}\leftskip=\leftcolumnwidth}
|
||||
|
||||
\renewcommand*{\makecvtitle}{
|
||||
% recompute lengths (in case we are switching from letter to resume, or vice versa)
|
||||
\recomputecvlengths%
|
||||
% optional picture box
|
||||
\newbox{\makecvtitlepicturebox}%
|
||||
\savebox{\makecvtitlepicturebox}{%
|
||||
\ifthenelse{\isundefined{\@photo}}%
|
||||
{}%
|
||||
{%
|
||||
\color{color1}%
|
||||
\setlength\fboxrule{\@photoframewidth}%
|
||||
\ifdim\@photoframewidth=0pt%
|
||||
\setlength{\fboxsep}{0pt}\fi%
|
||||
\framebox{\includegraphics[width=\@photowidth]{\@photo}}}}%
|
||||
% name and title
|
||||
\newlength{\makecvtitlepicturewidth}\settowidth{\makecvtitlepicturewidth}{\usebox{\makecvtitlepicturebox}}%
|
||||
\newlength{\makecvtitlenamewidth}\setlength{\makecvtitlenamewidth}{\textwidth-\makecvtitlepicturewidth}%
|
||||
\begin{minipage}[b]{\makecvtitlenamewidth}%
|
||||
\namestyle{\@firstname\ \@lastname}%
|
||||
\ifthenelse{\equal{\@title}{}}{}{\\[1.25em]\titlestyle{\@title}}%
|
||||
\end{minipage}%
|
||||
% optional photo
|
||||
\usebox{\makecvtitlepicturebox}\\[2.5em]%
|
||||
% optional quote
|
||||
\ifthenelse{\isundefined{\@quote}}%
|
||||
{}%
|
||||
{{\centering\begin{minipage}{\quotewidth}\centering\quotestyle{\@quote}\end{minipage}\\[2.5em]}}%
|
||||
% optional details
|
||||
\makecvinfo{%
|
||||
\addressfont\color{color2}%
|
||||
\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\httplink{\@homepage}}%
|
||||
\collectionloop{socials}{% the key holds the social type (=symbol command prefix), the item holds the link
|
||||
\makenewline\csname\collectionloopkey socialsymbol\endcsname\collectionloopitem}%
|
||||
\ifthenelse{\isundefined{\@extrainfo}}{}{\makenewline\@extrainfo}}}
|
||||
|
||||
\RenewDocumentCommand{\section}{sm}{%
|
||||
\par\addvspace{2.5ex}%
|
||||
\phantomsection{}% reset the anchor for hyperrefs
|
||||
\addcontentsline{toc}{section}{#2}%
|
||||
\strut\sectionstyle{#2}%
|
||||
\par\nobreak\addvspace{1ex}\@afterheading}% to avoid a pagebreak after the heading
|
||||
|
||||
\RenewDocumentCommand{\subsection}{sm}{%
|
||||
\par\addvspace{1ex}%
|
||||
\phantomsection{}% reset the anchor for hyperrefs
|
||||
\addcontentsline{toc}{subsection}{#2}%
|
||||
\strut\subsectionstyle{#2}%
|
||||
\par\nobreak\addvspace{0.5ex}\@afterheading}% to avoid a pagebreak after the heading
|
||||
|
||||
\renewcommand*{\cvitem}[3][.25em]{%
|
||||
\ifthenelse{\equal{#2}{}}{}{\hintstyle{#2}: }{#3}%
|
||||
\par\addvspace{#1}}
|
||||
|
||||
\renewcommand*{\cvdoubleitem}[5][.25em]{%
|
||||
\begin{minipage}[t]{\doubleitemcolumnwidth}\hintstyle{#2}: #3\end{minipage}%
|
||||
\hfill% fill of \separatorcolumnwidth
|
||||
\begin{minipage}[t]{\doubleitemcolumnwidth}\ifthenelse{\equal{#4}{}}{}{\hintstyle{#4}: }#5\end{minipage}%
|
||||
\par\addvspace{#1}}
|
||||
|
||||
\renewcommand*{\cvlistitem}[2][.25em]{%
|
||||
\cvitem[#1]{}{\listitemsymbol\begin{minipage}[t]{\listitemmaincolumnwidth}#2\end{minipage}}}
|
||||
|
||||
\renewcommand*{\cvlistdoubleitem}[3][.25em]{%
|
||||
\cvitem[#1]{}{\listitemsymbol\begin{minipage}[t]{\listdoubleitemmaincolumnwidth}#2\end{minipage}%
|
||||
\hfill% fill of \separatorcolumnwidth
|
||||
\ifthenelse{\equal{#3}{}}%
|
||||
{}%
|
||||
{\listitemsymbol\begin{minipage}[t]{\listdoubleitemmaincolumnwidth}#3\end{minipage}}}}
|
||||
|
||||
\newbox{\cventryyearbox}
|
||||
\newlength{\cventrytitleboxwidth}
|
||||
\renewcommand*{\cventry}[7][.25em]{%
|
||||
\savebox{\cventryyearbox}{%
|
||||
\hspace*{2\separatorcolumnwidth}%
|
||||
\hintstyle{#2}}%
|
||||
\setlength{\cventrytitleboxwidth}{\widthof{\usebox{\cventryyearbox}}}%
|
||||
\setlength{\cventrytitleboxwidth}{\maincolumnwidth-\cventrytitleboxwidth}%
|
||||
\begin{minipage}{\maincolumnwidth}%
|
||||
\parbox[t]{\cventrytitleboxwidth}{%
|
||||
\strut%
|
||||
{\bfseries#3}%
|
||||
\ifthenelse{\equal{#4}{}}{}{, {\slshape#4}}%
|
||||
\ifthenelse{\equal{#5}{}}{}{, #5}%
|
||||
\ifthenelse{\equal{#6}{}}{}{, #6}%
|
||||
.\strut}%
|
||||
\usebox{\cventryyearbox}%
|
||||
\end{minipage}%
|
||||
\ifx&%
|
||||
\else{%
|
||||
\newline{}%
|
||||
\begin{minipage}[t]{\maincolumnwidth}%
|
||||
\small#7%
|
||||
\end{minipage}}\fi%
|
||||
\par\addvspace{#1}}
|
||||
|
||||
\newbox{\cvitemwithcommentmainbox}
|
||||
\newlength{\cvitemwithcommentmainlength}
|
||||
\newlength{\cvitemwithcommentcommentlength}
|
||||
\renewcommand*{\cvitemwithcomment}[4][.25em]{%
|
||||
\savebox{\cvitemwithcommentmainbox}{\ifthenelse{\equal{#2}{}}{}{\hintstyle{#2}: }#3}%
|
||||
\setlength{\cvitemwithcommentmainlength}{\widthof{\usebox{\cvitemwithcommentmainbox}}}%
|
||||
\setlength{\cvitemwithcommentcommentlength}{\maincolumnwidth-\separatorcolumnwidth-\cvitemwithcommentmainlength}%
|
||||
\begin{minipage}[t]{\cvitemwithcommentmainlength}\ifthenelse{\equal{#2}{}}{}{\hintstyle{#2}: }#3\end{minipage}%
|
||||
\hfill% fill of \separatorcolumnwidth
|
||||
\begin{minipage}[t]{\cvitemwithcommentcommentlength}\raggedleft\small\itshape#4\end{minipage}%
|
||||
\par\addvspace{#1}}
|
||||
|
||||
\renewenvironment{thebibliography}[1]%
|
||||
{%
|
||||
\bibliographyhead{\refname}%
|
||||
% \small%
|
||||
\begin{list}{\bibliographyitemlabel}%
|
||||
{%
|
||||
\setlength{\topsep}{0pt}%
|
||||
\setlength{\labelwidth}{\hintscolumnwidth}%
|
||||
\setlength{\labelsep}{\separatorcolumnwidth}%
|
||||
\leftmargin\labelwidth%
|
||||
\advance\leftmargin\labelsep%
|
||||
\@openbib@code%
|
||||
\usecounter{enumiv}%
|
||||
\let\p@enumiv\@empty%
|
||||
\renewcommand\theenumiv{\@arabic\c@enumiv}}%
|
||||
\sloppy\clubpenalty4000\widowpenalty4000%
|
||||
% \sfcode`\.\@m%
|
||||
% \sfcode `\=1000\relax%
|
||||
}%
|
||||
{%
|
||||
\def\@noitemerr{\@latex@warning{Empty `thebibliography' environment}}%
|
||||
\end{list}%
|
||||
}
|
||||
|
||||
|
||||
%-------------------------------------------------------------------------------
|
||||
% letter style definition
|
||||
%-------------------------------------------------------------------------------
|
||||
% commands
|
||||
%\newlength{\textwidthdelta}%
|
||||
\renewcommand*{\recomputeletterlengths}{%
|
||||
\recomputecvlengths%
|
||||
\setlength{\parskip}{6\p@}%
|
||||
\leftskip=0pt%
|
||||
% \setlength{\textwidthdelta}{+\marginparwidth+\marginparsep}%
|
||||
\setlength{\marginparwidth}{\hintscolumnwidth}%
|
||||
\setlength{\marginparsep}{2\separatorcolumnwidth}%
|
||||
% \addtolength{\textwidthdelta}{-\marginparwidth-\marginparsep}%
|
||||
% \changepage{}{\textwidthdelta}{-\textwidthdelta}{}{}{}{}{}{}%\changepage{<textheight>}{<textwidth>}{<evensidemargin>}{<oddsidemargin>}{<columnsep>}{<topmargin>}{<headheight>}{<headsep>}{<footskip>}
|
||||
\changepage{}{-\marginparwidth-\marginparsep}{}{}{}{}{}{}{}%\changepage{<textheight>}{<textwidth>}{<evensidemargin>}{<oddsidemargin>}{<columnsep>}{<topmargin>}{<headheight>}{<headsep>}{<footskip>}
|
||||
}
|
||||
|
||||
\renewcommand*{\makelettertitle}{%
|
||||
% recompute lengths (in case we are switching from letter to resume, or vice versa)
|
||||
\recomputeletterlengths%
|
||||
% recipient block
|
||||
{\addressfont%
|
||||
{\bfseries\upshape\@recipientname}\\%
|
||||
\@recipientaddress}\\[1em]%
|
||||
% date
|
||||
\@date\\[2em]%
|
||||
% opening
|
||||
\@opening\\[1.5em]%
|
||||
% sender contact info
|
||||
\hspace{0pt}%
|
||||
\marginpar{%
|
||||
\addressfont\textcolor{color2}{%
|
||||
{\bfseries\@firstname~\@lastname}\@firstdetailselementfalse%
|
||||
\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\httplink{\@homepage}}%
|
||||
\collectionloop{socials}{% the key holds the social type (=symbol command prefix), the item holds the link
|
||||
\makenewline\csname\collectionloopkey socialsymbol\endcsname\collectionloopitem}%
|
||||
\ifthenelse{\isundefined{\@extrainfo}}{}{\makenewline\@extrainfo}}}%
|
||||
% ensure no extra spacing after \makelettertitle due to a possible blank line
|
||||
% \ignorespacesafterend% not working
|
||||
\par\vspace{-\baselineskip}\vspace{-\parskip}}
|
||||
|
||||
\renewcommand*{\makeletterclosing}{
|
||||
\@closing\\[3em]%
|
||||
{\bfseries\@firstname~\@lastname}%
|
||||
\ifthenelse{\isundefined{\@enclosure}}{}{%
|
||||
\\%
|
||||
\vfill%
|
||||
{\color{color2}\itshape\enclname: \@enclosure}}}
|
||||
\moderncvhead{4}
|
||||
\moderncvbody{4}
|
||||
|
||||
|
||||
\endinput
|
||||
|
||||
Reference in New Issue
Block a user