From 1894ab074ea13818640bdf24c043c53871204964 Mon Sep 17 00:00:00 2001 From: Kyle Belanger Date: Wed, 30 Dec 2020 10:36:25 -0500 Subject: [PATCH] Initial commit --- .gitattributes | 2 + .gitignore | 36 ++ README.md | 2 + WKB/WKB.Rmd | 88 +++++ WKB/WKB.pdf | Bin 0 -> 205569 bytes WKB/moderncv.cls | 720 ++++++++++++++++++++++++++++++++++ WKB/moderncvbodyi.sty | 174 ++++++++ WKB/moderncvbodyiii.sty | 238 +++++++++++ WKB/moderncvbodyiv.sty | 183 +++++++++ WKB/moderncvbodyv.sty | 210 ++++++++++ WKB/moderncvcollection.sty | 85 ++++ WKB/moderncvfooti.sty | 134 +++++++ WKB/moderncvheadi.sty | 139 +++++++ WKB/moderncvheadii.sty | 203 ++++++++++ WKB/moderncvheadiii.sty | 157 ++++++++ WKB/moderncvheadiv.sty | 171 ++++++++ WKB/moderncvheadv.sty | 168 ++++++++ WKB/moderncvstylebanking.sty | 65 +++ WKB/moderncvstylecasual.sty | 53 +++ WKB/moderncvstyleclassic.sty | 52 +++ WKB/moderncvstylefancy.sty | 47 +++ WKB/moderncvstyleoldstyle.sty | 51 +++ WKB/tweaklist.sty | 56 +++ data/education.csv | 3 + data/jobs.csv | 11 + resume.Rproj | 13 + 26 files changed, 3061 insertions(+) create mode 100644 .gitattributes create mode 100644 .gitignore create mode 100644 README.md create mode 100644 WKB/WKB.Rmd create mode 100644 WKB/WKB.pdf create mode 100644 WKB/moderncv.cls create mode 100644 WKB/moderncvbodyi.sty create mode 100644 WKB/moderncvbodyiii.sty create mode 100644 WKB/moderncvbodyiv.sty create mode 100644 WKB/moderncvbodyv.sty create mode 100644 WKB/moderncvcollection.sty create mode 100644 WKB/moderncvfooti.sty create mode 100644 WKB/moderncvheadi.sty create mode 100644 WKB/moderncvheadii.sty create mode 100644 WKB/moderncvheadiii.sty create mode 100644 WKB/moderncvheadiv.sty create mode 100644 WKB/moderncvheadv.sty create mode 100644 WKB/moderncvstylebanking.sty create mode 100644 WKB/moderncvstylecasual.sty create mode 100644 WKB/moderncvstyleclassic.sty create mode 100644 WKB/moderncvstylefancy.sty create mode 100644 WKB/moderncvstyleoldstyle.sty create mode 100644 WKB/tweaklist.sty create mode 100644 data/education.csv create mode 100644 data/jobs.csv create mode 100644 resume.Rproj diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 0000000..dfe0770 --- /dev/null +++ b/.gitattributes @@ -0,0 +1,2 @@ +# Auto detect text files and perform LF normalization +* text=auto diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..f5b98bb --- /dev/null +++ b/.gitignore @@ -0,0 +1,36 @@ +# History files +.Rhistory +.Rapp.history + +# Session Data files +.RData + +# User-specific files +.Ruserdata + +# Example code in package build process +*-Ex.R + +# Output files from R CMD build +/*.tar.gz + +# Output files from R CMD check +/*.Rcheck/ + +# RStudio files +.Rproj.user/ + +# produced vignettes +vignettes/*.html +vignettes/*.pdf + +# OAuth2 token, see https://github.com/hadley/httr/releases/tag/v0.3 +.httr-oauth + +# knitr and R markdown default cache directories +*_cache/ +/cache/ + +# Temporary files created by R markdown +*.utf8.md +*.knit.md diff --git a/README.md b/README.md new file mode 100644 index 0000000..14bb111 --- /dev/null +++ b/README.md @@ -0,0 +1,2 @@ +# resume + diff --git a/WKB/WKB.Rmd b/WKB/WKB.Rmd new file mode 100644 index 0000000..022f065 --- /dev/null +++ b/WKB/WKB.Rmd @@ -0,0 +1,88 @@ +--- +name: William Kyle +surname: Belanger +position: "Field Application Specialist" +address: "435 Gibson Dairy Road, Elizabethtown NC 28337" +phone: 843-455-5122 +www: kyleb.rbind.io +email: "william.belanger@knights.ucf.edu" +github: mmmmtoasty19 +date: "`r format(Sys.time(), '%B %Y')`" +output: + vitae::moderncv: + theme: classic +--- + +```{r setup, include=FALSE} +knitr::opts_chunk$set(echo = FALSE, warning = FALSE, message = FALSE) +library(vitae) +library(tidyverse) +library(here) +library(lubridate) +library(tibble) + +``` + +```{r jobs, include=FALSE} +jobs.raw <- read.csv(here::here("data", "jobs.csv"),na.strings = "") +jobs <- jobs.raw %>% + fill(start,end,what,with,where,why) %>% + mutate( + start = mdy(start) + ,end = mdy(end) + ) %>% + mutate( when = case_when( + is.na(end) ~ glue::glue("{year(start)}--Present") %>% as.character(), + year(start) == year(end) ~ year(end) %>% as.character(), + TRUE ~ glue::glue("{year(start)}--{year(end)}") %>% as.character() + )) + + + +jobs %>% glimpse() +``` + +# About Me + I am a highly skilled Medical Technologist, with a passion for Data Science and Visualization. I bring with me 11 years of experience in the medical world, and understand what is needed for proper data analysis. I have manged employees in the past, and worked on both large and small project teams. I am focused on bridging the gap between medical personnel and information technologists. + +# Technical Skills + - Data Analysis + - Data Visualization + - Intermediate level in R + - Basic Understanding of Python and SQL + - Highly skilled in Microsoft Office + +# Education + +```{r} +readr::read_csv("../data/education.csv") %>% + brief_entries(Degree, Year, Institution) + +``` + +# Jobs + +```{r} +detailed_entries(jobs + ,what = what + ,when = when + ,with = with + ,where = where + ,why = why) +``` + +# Professional Licenses + +```{r} +tribble( + ~ Institution,~ Year, ~ With + ,"ASCP", "2010 - Present", "Medical Laboratory Scientist" +) %>% + brief_entries(Institution,Year,With) +``` + + + +# References + + Available on request \ No newline at end of file diff --git a/WKB/WKB.pdf b/WKB/WKB.pdf new file mode 100644 index 0000000000000000000000000000000000000000..4e5561f29676615de1d8a732ed19eb1a133b4577 GIT binary patch literal 205569 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

G% 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%0D88(k^&tV4}Zo$=EPorH>VGF}&D-J28YtT8k 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 M02UT0C27Ea0Sh(HIsgCw literal 0 HcmV?d00001 diff --git a/WKB/moderncv.cls b/WKB/moderncv.cls new file mode 100644 index 0000000..261b066 --- /dev/null +++ b/WKB/moderncv.cls @@ -0,0 +1,720 @@ +%% start of file `moderncv.cls'. +%% 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} +\ProvidesClass{moderncv}[2015/07/28 v2.0.0 modern curriculum vitae and letter document class] + + +%------------------------------------------------------------------------------- +% class options +% +% (need to be done before the external package loading, for example because +% we need \paperwidth, \paperheight and \@ptsize to be defined before loading +% geometry and fancyhdr) +%------------------------------------------------------------------------------- +% paper size option +\DeclareOption{a4paper}{ + \setlength\paperheight{297mm} + \setlength\paperwidth{210mm}} +\DeclareOption{a5paper}{ + \setlength\paperheight{210mm} + \setlength\paperwidth{148mm}} +\DeclareOption{b5paper}{ + \setlength\paperheight{250mm} + \setlength\paperwidth{176mm}} +\DeclareOption{letterpaper}{ + \setlength\paperheight{11in} + \setlength\paperwidth{8.5in}} +\DeclareOption{legalpaper}{ + \setlength\paperheight{14in} + \setlength\paperwidth{8.5in}} +\DeclareOption{executivepaper}{ + \setlength\paperheight{10.5in} + \setlength\paperwidth{7.25in}} +\DeclareOption{landscape}{ + \setlength\@tempdima{\paperheight} + \setlength\paperheight{\paperwidth} + \setlength\paperwidth{\@tempdima}} + +% font size options +\newcommand\@ptsize{} +\DeclareOption{10pt}{\renewcommand\@ptsize{0}} +\DeclareOption{11pt}{\renewcommand\@ptsize{1}} +\DeclareOption{12pt}{\renewcommand\@ptsize{2}} + +% font type options +\DeclareOption{sans}{\AtBeginDocument{\renewcommand{\familydefault}{\sfdefault}}} +\DeclareOption{roman}{\AtBeginDocument{\renewcommand{\familydefault}{\rmdefault}}} + +% draft/final option +\DeclareOption{draft}{\setlength\overfullrule{5pt}} +\DeclareOption{final}{\setlength\overfullrule{0pt}} + +% execute default options +\ExecuteOptions{a4paper,11pt,final} + +% process given options +\ProcessOptions\relax +\input{size1\@ptsize.clo} + + +%------------------------------------------------------------------------------- +% required packages +%------------------------------------------------------------------------------- +% \AtEndPreamble hook (loading etoolbox instead of defining the macro, as to avoid incompatibilities with etoolbox (and packages relying on it) defining the macro too) +\RequirePackage{etoolbox} +%\let\@endpreamblehook\@empty +%\def\AtEndPreamble{\g@addto@macro\@endpreamblehook} +%\let\document@original\document +%\def\document{\endgroup\@endpreamblehook\begingroup\document@original} + +% if... then... else... constructs +\RequirePackage{ifthen} +% TODO: move to xifthen and \isempty{} instead of \equal{}{} + +% color +\RequirePackage[table]{xcolor} + +% font loading +\RequirePackage{ifxetex,ifluatex} +\newif\ifxetexorluatex +\ifxetex + \xetexorluatextrue +\else + \ifluatex + \xetexorluatextrue + \else + \xetexorluatexfalse + \fi +\fi +% automatic loading of latin modern fonts +%\ifxetexorluatex +% \RequirePackage{fontspec} +% \defaultfontfeatures{Ligatures=TeX} +% \RequirePackage{unicode-math} +% \setmainfont{Latin Modern} +% \setsansfont{Latin Modern Sans} +% \setmathfont{Latin Modern Math} +%\else + \RequirePackage[T1]{fontenc} + \IfFileExists{lmodern.sty}% + {\RequirePackage{lmodern}}% + {} +%\fi + +% hyper links (hyperref is loaded at the end of the preamble to pass options required by loaded packages such as CJK) +\newcommand*\pdfpagemode{UseNone}% do not show thumbnails or bookmarks on opening (on supporting browsers); set \pdfpagemode to "UseOutlines" to show bookmarks +\RequirePackage{url} +\urlstyle{tt} +\AtEndPreamble{ + \pagenumbering{arabic}% has to be issued before loading hyperref, as to set \thepage and hence to avoid hyperref issuing a warning and setting pdfpagelabels=false + \RequirePackage[unicode]{hyperref}% unicode is required for unicode pdf metadata + \hypersetup{ + breaklinks, + baseurl = http://, + pdfborder = 0 0 0, + pdfpagemode = \pdfpagemode, + pdfstartpage = 1, + pdfcreator = {\LaTeX{} with 'moderncv' package}, +% pdfproducer = {\LaTeX{}},% will/should be set automatically to the correct TeX engine used + bookmarksopen = true, + bookmarksdepth= 2,% to show sections and subsections + pdfauthor = {\@firstname{}~\@lastname{}}, + pdftitle = {\@firstname{}~\@lastname{}\notblank{\@title}{ -- \@title}{}}, + pdfsubject = {Resum\'{e} of \@firstname{}~\@lastname{}}, + pdfkeywords = {\@firstname{}~\@lastname{}, curriculum vit\ae{}, resum\'{e}}}} + +% graphics +\RequirePackage{graphicx} + +% headers and footers +\RequirePackage{fancyhdr} +\fancypagestyle{plain}{ + \renewcommand{\headrulewidth}{0pt} + \renewcommand{\footrulewidth}{0pt} + \fancyhf{}} +% page numbers in footer if more than 1 page +\newif\if@displaypagenumbers\@displaypagenumberstrue +\newcommand*{\nopagenumbers}{\@displaypagenumbersfalse} +\AtEndPreamble{% + \AtBeginDocument{% + % fancyhdr length + \renewcommand{\headwidth}{\textwidth} + \if@displaypagenumbers% + \@ifundefined{r@lastpage}{}{% + \ifthenelse{\pageref{lastpage}>1}{% + \newlength{\pagenumberwidth}% + \settowidth{\pagenumberwidth}{\color{color2}\addressfont\itshape\strut\thepage/\pageref{lastpage}}% + \fancypagestyle{plain}{% + \fancyfoot[r]{\parbox[b]{\pagenumberwidth}{\color{color2}\pagenumberfont\strut\thepage/\pageref{lastpage}}}}% the parbox is required to ensure alignment with a possible center footer (e.g., as in the casual style) + \pagestyle{plain}}{}}\fi}% + \AtEndDocument{\label{lastpage}}} +\pagestyle{plain} + +% reduced list spacing +% package providing hooks into lists +% originally developped by Jakob Schiotz (see http://dcwww.camd.dtu.dk/~schiotz/comp/LatexTips/tweaklist.sty) +% modified and distributed with moderncv(not available otherwise on ctan) +\RequirePackage{tweaklist} +\renewcommand*{\itemhook}{% + \@minipagetrue% removes spacing before lists as they use \addvspace, which doesn't add vertical space inside minipages + \@noparlisttrue% removes spacing at end of lists, caused by \par + \setlength{\topsep}{0pt}% normally not required thanks to \@minipagetrue + \setlength{\partopsep}{0pt}% normally not required thanks to \@minipagetrue + \setlength{\parsep}{0pt}% not required when \itemsep and \parskip are set to 0pt (?) + \setlength{\parskip}{0pt}% + \setlength{\itemsep}{0pt}} +\renewcommand*{\enumhook}{\itemhook{}} +\renewcommand*{\deschook}{\itemhook{}} + +% lengths calculations +\RequirePackage{calc} + +% advanced command arguments (LaTeX 3) +\RequirePackage{xparse} +% TODO (?): replace all \newcommand by \NewDocumentCommand + +% micro-typography (e.g., character protrusion, font expansion, hyphenatable letterspacing) +\RequirePackage{microtype} + +% stack of key-value elements, used to save personal information +\RequirePackage{moderncvcollection} + +% compatibility package with older versions of moderncv +\RequirePackageWithOptions{moderncvcompatibility} + +%\RequirePackage{l3regex} +\RequirePackage{expl3} + +%------------------------------------------------------------------------------- +% class definition +%------------------------------------------------------------------------------- +% minimal base settings +\setlength\lineskip{1\p@} +\setlength\normallineskip{1\p@} +\renewcommand\baselinestretch{} +\setlength{\parindent}{0\p@} +\setlength{\parskip}{0\p@} +\setlength\columnsep{10\p@} +\setlength\columnseprule{0\p@} +\setlength\fboxsep{3\p@} +\setlength\fboxrule{.4\p@} +\setlength\arrayrulewidth{.4\p@} +\setlength\doublerulesep{2\p@} + +% not set on purpose +%\setlength\arraycolsep{5\p@} +%\setlength\tabcolsep{6\p@} +%\setlength\tabbingsep{\labelsep} + +\raggedbottom +\onecolumn + + +%------------------------------------------------------------------------------- +% overall design commands definitions +%------------------------------------------------------------------------------- +% elements +%--------- +% defines one's name +% usage: \name{}{} +\newcommand*{\name}[2]{\def\@firstname{#1}\def\@lastname{#2}} + +% defines one's title (optional) +% usage: \title{} +\renewcommand*{\title}[1]{\def\@title{#1}} + +% defines one's address (optional) +% usage: \address{<street>}{<city>}{<country>} +% where the <city> and <country> arguments can be omitted or provided empty +\NewDocumentCommand{\address}{mG{}G{}}{\def\@addressstreet{#1}\def\@addresscity{#2}\def\@addresscountry{#3}} + +% defines one's email (optional) +% usage: \email{<email adress>} +\newcommand*{\email}[1]{\def\@email{#1}} + +% defines one's home page (optional) +% usage: \homepage{<url>} +\newcommand*{\homepage}[1]{\def\@homepage{#1}} + +% adds a fixed/mobile/fax number to one's personal information (optional) +% usage: \phone[<optional type>]{<number>} +% where <optional type> should be either "fixed" (default), "mobile" or "fax +\collectionnew{phones} +\NewDocumentCommand{\phone}{O{fixed}m}{% + \ifthenelse{\equal{#1}{fax}}% + {\collectionadd[#1]{phones}{#2}} + {\collectionadd[#1]{phones}{\protect\tellink{#2}}} + } + + +% adds a social link to one's personal information (optional) +% usage: \social[<optional type>][<optional url>]{<account name>} +% where <optional type> should be either "linkedin", "xing", "twitter", "github", "gitlab" or "skype" +\collectionnew{socials} +\NewDocumentCommand{\social}{O{}O{}m}{% + \ifthenelse{\equal{#2}{}}% + {% + \ifthenelse{\equal{#1}{linkedin}}{\collectionadd[linkedin]{socials}{\protect\httplink[#3]{www.linkedin.com/in/#3}}} {}% + \ifthenelse{\equal{#1}{xing}} {\collectionadd[xing]{socials} {\protect\httplink[#3]{www.xing.com/profile/#3}}}{}% + \ifthenelse{\equal{#1}{twitter}} {\collectionadd[twitter]{socials} {\protect\httplink[#3]{www.twitter.com/#3}}} {}% + \ifthenelse{\equal{#1}{github}} {\collectionadd[github]{socials} {\protect\httplink[#3]{www.github.com/#3}}} {}% + \ifthenelse{\equal{#1}{gitlab}} {\collectionadd[gitlab]{socials} {\protect\httplink[#3]{www.gitlab.com/#3}}} {}% + \ifthenelse{\equal{#1}{skype}} {\collectionadd[skype]{socials} {#3}} {}% + } + {\collectionadd[#1]{socials}{\protect\httplink[#3]{#2}}}} + +% defines additional personal information (optional) +% usage: \extrainfo{<text>} +\newcommand*{\extrainfo}[1]{\def\@extrainfo{#1}} + +% colors +%------- +\definecolor{color0}{rgb}{0,0,0}% main default color, normally left to black +\definecolor{color1}{rgb}{0,0,0}% primary scheme color +\definecolor{color2}{rgb}{0,0,0}% secondary scheme color +\definecolor{color3}{rgb}{0,0,0}% tertiary scheme color + +% symbols +%-------- +% itemize labels (the struts were added to correct inter-item spacing (works for single line items, until a solution is found for multi-line ones...) +\newcommand*{\labelitemi} {\strut\textcolor{color1}{\large\rmfamily\textbullet}}% the \rmfamily is required to force Latin Modern fonts when using sans serif, as OMS/lmss/m/n is not defined and gets substituted by OMS/cmsy/m/n +\newcommand*{\labelitemii} {\strut\textcolor{color1}{\large\bfseries-}} +\newcommand*{\labelitemiii} {\strut\textcolor{color1}{\rmfamily\textperiodcentered}}% alternative: \textasteriskcentered; the \rmfamily is required to force Latin Modern fonts when using sans serif, as OMS/lmss/m/n is not defined and gets substituted by OMS/cmsy/m/n +\newcommand*{\labelitemiv} {\labelitemiii} + +% enumerate labels +\renewcommand{\theenumi} {\@arabic\c@enumi} +\renewcommand{\theenumii} {\@alph\c@enumii} +\renewcommand{\theenumiii} {\@roman\c@enumiii} +\renewcommand{\theenumiv} {\@Alph\c@enumiv} + +% other symbols +\newcommand*{\listitemsymbol} {\labelitemi~} +\newcommand*{\addresssymbol} {} +\newcommand*{\mobilephonesymbol} {} +\newcommand*{\fixedphonesymbol} {} +\newcommand*{\faxphonesymbol} {} +\newcommand*{\emailsymbol} {} +\newcommand*{\homepagesymbol} {} +\newcommand*{\linkedinsocialsymbol}{} +\newcommand*{\xingsocialsymbol} {} +\newcommand*{\twittersocialsymbol} {} +\newcommand*{\githubsocialsymbol} {} +\newcommand*{\gitlabsocialsymbol} {} +\newcommand*{\skypesocialsymbol} {} + +% other +%------ +% fonts +\AtBeginDocument{\normalfont\color{color0}} + +% strings for internationalisation +\newcommand*{\refname}{Publications} +\newcommand*{\enclname}{Enclosure} + +% makes the footer (normally used both for the resume and the letter) +% usage: \makefooter +\newcommand*{\makefooter}{}% + +\newcommand*{\@loadmoderncvpackage}[3][]{% + \begingroup\edef\x{\endgroup% + \noexpand\RequirePackage[#1]{moderncv#2\ifcase#3\or i\or ii\or iii\or iv\or v\or vi\or vii\or viii\or ix\or x\fi}% + }\x} + +% loads a style variant (a combination of header, body and footer) +% usage: \moderncvstyle{<style variant name>} +\newcommand*{\moderncvstyle}[2][]{% + \RequirePackage[#1]{moderncvstyle#2}} + +% loads a header variant +% usage: \moderncvhead[<optional head option>]{<header variant number>} +\newcommand*{\moderncvhead}[2][]{% + \@loadmoderncvpackage[#1]{head}{#2}} + +% loads a body variant +% usage: \moderncvbody[<optional body option>]{<body variant number>} +\newcommand*{\moderncvbody}[2][]{% + \@loadmoderncvpackage[#1]{body}{#2}} + +% loads a footer variant +% usage: \moderncvfoot[<optional foot option>]{<foot variant number>} +\newcommand*{\moderncvfoot}[2][]{% + \@loadmoderncvpackage[#1]{foot}{#2}} + +% loads an icons set +% usage: \moderncvicons{<icon set name>} +\newcommand*{\moderncvicons}[1]{% + \RequirePackage{moderncvicons#1}} + +% recomputes all automatic lengths +\newcommand*{\recomputeheadlengths}{\recomputecvheadlengths} +\newcommand*{\recomputebodylengths}{\recomputecvbodylengths} +\newcommand*{\recomputefootlengths}{\recomputecvfootlengths} +\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 + \else% + \newlength{#1}\fi% + \setlength{#1}{0pt}} + +% creates a box if not yet defined +\newcommand*{\@initializebox}[1]{% + \ifdefined#1 + \savebox{#1}{}% + \else% + \newsavebox{#1}\fi} + +% creates an if switch if not yet defined +\newcommand*{\@initializeif}[1]{% +% \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 +\newcommand*{\@moderncvstrut}[2]{% + \rule[-#1]{0pt}{#2}} + + +%------------------------------------------------------------------------------- +% resume design commands definitions +%------------------------------------------------------------------------------- +% elements +% defines one's picture (optional) +% usage: photo[<picture width>][<picture frame thickness>]{<picture filename>} +\NewDocumentCommand{\photo}{O{64pt}O{0.4pt}m}{\def\@photowidth{#1}\def\@photoframewidth{#2}\def\@photo{#3}} +\newcommand*{\quote}[1]{\def\@quote{#1}} + +% fonts +\newcommand*{\namefont}{} +\newcommand*{\titlefont}{} +\newcommand*{\addressfont}{} +\newcommand*{\quotefont}{} +\newcommand*{\sectionfont}{} +\newcommand*{\subsectionfont}{} +\newcommand*{\hintfont}{} +\newcommand*{\pagenumberfont}{\addressfont\itshape} +% fake small caps - cfr http://tex.stackexchange.com/questions/55664/fake-small-caps-with-xetex-fontspec +%\def\fakesc{\bgroup\obeyspaces\fakescaux} +%\def\fakescaux#1{\fakescauxii #1\relax\relax\egroup} +%\def\fakescauxii#1{% +%\ifx\relax#1\else \ifcat#1\@sptoken{} \expandafter\expandafter\expandafter\fakescauxii\else +%\ifnum`#1=\uccode`#1 {\normalsize #1}\else {\footnotesize \uppercase{#1}}\fi \expandafter\expandafter\expandafter\fakescauxii\expandafter\fi\fi} + +% styles +\newcommand*{\namestyle}[1]{{\namefont#1}} +\newcommand*{\titlestyle}[1]{{\titlefont#1}} +\newcommand*{\addressstyle}[1]{{\addressfont#1}} +\newcommand*{\quotestyle}[1]{{\quotefont#1}} +\newcommand*{\sectionstyle}[1]{{\sectionfont#1}} +\newcommand*{\subsectionstyle}[1]{{\subsectionfont#1}} +\newcommand*{\hintstyle}[1]{{\hintfont#1}} +\newcommand*{\pagenumberstyle}[1]{{\pagenumberfont#1}} + +% recompute all resume lengths +\newcommand*{\recomputecvheadlengths}{} +\newcommand*{\recomputecvbodylengths}{} +\newcommand*{\recomputecvfootlengths}{} +\newcommand*{\recomputecvlengths}{% + \recomputecvheadlengths% + \recomputecvbodylengths% + \recomputecvfootlengths} + +% internal maketitle command to issue a new line only when required +\newif\if@firstdetailselement\@firstdetailselementtrue +\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% + \\[#1]\fi% + \@firstdetailselementfalse} + +% makes the resume title +% usage: \makecvtitle +\newcommand*{\makecvtitle}{% + \makecvhead% + \makecvfoot} +\newcommand*{\makecvhead}{} +\newcommand*{\makecvfoot}{} + +% makes a resume section +% usage: \section{<title>} +% identical starred and non-starred variants should be defined for compatibility with other packages (e.g. with natbib, that uses \section*{} for the bibliography header) +\NewDocumentCommand{\section}{sm}{} + +% makes a resume subsection +% usage: \subsection{title} +\NewDocumentCommand{\subsection}{sm}{} + +% makes a resume line with a header and a corresponding text +% usage: \cvitem[spacing]{header}{text} +\newcommand*{\cvitem}[3][.25em]{} + +% makes a resume line 2 headers and their corresponding text +% usage: \cvdoubleitem[spacing]{header1}{text1}{header2}{text2} +\newcommand*{\cvdoubleitem}[5][.25em]{} + +% makes a resume line with a list item +% usage: \cvlistitem[label]{item} +\newcommand*{\cvlistitem}[2][\listitemsymbol]{} + +% makes a resume line with 2 list items +% usage: \cvlistdoubleitem[label]{item1}{item2} +\newcommand*{\cvlistdoubleitem}[3][\listitemsymbol]{} + +% makes a typical resume job / education entry +% usage: \cventry[spacing]{years}{degree/job title}{institution/employer}{localization}{optionnal: grade/...}{optional: comment/job description} +\newcommand*{\cventry}[7][.25em]{} + +% makes a resume entry with a proficiency comment +% usage: \cvitemwithcomment[spacing]{header}{text}{comment} +\newcommand*{\cvitemwithcomment}[4][.25em]{} + +% makes a generic hyperlink +% usage: \link[optional text]{link} +\newcommand*{\link}[2][]{% + \ifthenelse{\equal{#1}{}}% + {\href{#2}{#2}}% + {\href{#2}{#1}}} + +% makes a http hyperlink +% usage: \httplink[optional text]{link} +\newcommand*{\httplink}[2][]{% + \ifthenelse{\equal{#1}{}}% + {\href{http://#2}{#2}}% + {\href{http://#2}{#1}}} + +% makes an email hyperlink +% usage: \emaillink[optional text]{link} +\newcommand*{\emaillink}[2][]{% + \ifthenelse{\equal{#1}{}}% + {\href{mailto:#2}{#2}}% + {\href{mailto:#2}{#1}}} + +% makes a tel hyperlink +% usage: \tellink[optional text]{link} +\newcommand*{\tellink}[2][]{% + \ifthenelse{\equal{#1}{}}% + {\expandafter\onlynumberslink\expandafter{#2}{#2}}% + {\expandafter\onlynumberslink\expandafter{#2}{#1}}} + +\ExplSyntaxOn +\tl_new:N \l_onlynumberslink_tl +\cs_new:Npn \onlynumberslink #1 #2 { + \tl_set:Nn \l_onlynumberslink_tl {#1} + \regex_replace_all:nnN {[^0-9+]} {} \l_onlynumberslink_tl + \href{ tel\token_to_str:N : \tl_use:N \l_onlynumberslink_tl}{ #2 } +} +\ExplSyntaxOff + +% cvcolumns environment, where every column is created through \cvcolumn +% usage: \begin{cvcolumns} +% \cvcolumn[width]{head}{content} +% \cvcolumn[width]{head}{content} +% ... +% \end{cvcolumns} +% where "width" is the width as a fraction of the line length (between 0 and 1), "head" is the column header and "content" its content +\newcounter{cvcolumnscounter}% counter for the number of columns +\newcounter{cvcolumnsautowidthcounter}% counter for the number of columns with no column width provided, and which will then be equally distributed +\newcounter{tmpiteratorcounter}% counter for any temporary purpose (e.g., iterating loops) +\newlength{\cvcolumnsdummywidth}\setlength{\cvcolumnsdummywidth}{1000pt}% dummy width for total width, in order to enable arithmetics (TeX has no float variables, only integer counters or lengths) +\newlength{\cvcolumnswidth}% total width available for head / content +\newlength{\cvcolumnsautowidth}% total width of columns with no explicit width provided +\newlength{\cvcolumnautowidth}% width of one of the columns with no explicit width provided (based on equal distribution of remaining space) +\newif\if@cvcolumns@head@empty% whether or not at least one of the columns has a header +\newenvironment*{cvcolumns}% + {% at environment opening: reset counters, lengths and ifs + \setcounter{cvcolumnscounter}{0}% + \setcounter{cvcolumnsautowidthcounter}{0}% + \setlength{\cvcolumnsautowidth}{\cvcolumnsdummywidth}% + \setlength{\cvcolumnautowidth}{0pt}% + \@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% + \setlength{\cvcolumnswidth}{\maincolumnwidth-\value{cvcolumnscounter}\separatorcolumnwidth+\separatorcolumnwidth}% + \setlength{\cvcolumnautowidth}{\cvcolumnswidth*\ratio{\cvcolumnsautowidth}{\cvcolumnsdummywidth}/\value{cvcolumnsautowidthcounter}}\fi% + % pre-aggregate the tabular definition, heading and content (required before creating the tabular, as the tabular environment doesn't like loops --- probably because "&" generates a \endgroup) + % - the tabular definition is the aggregation of the different "\cvcolumn<i>@def" (by default "p{\cvcolumnautowidth}"), separated by "@{\hspace*{\separatorcolumnwidth}}" + % - the tabular heading is the aggregation of the different "\cvcolumn<i>@head", separated by "&" + % - the tabular content is the aggregation of the different "\cvcolumn<i>@content", separated by "&" + % to aggregate the different elements, \protected@edef or \g@addto@macro is required to avoid that \cvcolumns@def, -@head and -@content get expanded in subsequent redefinitions, which would cause errors due to the expansions of \hspace, of \subsectionstyle and possibly of user content/argument such as font commands + \def\cvcolumns@def{}% + \def\cvcolumns@head{}% + \def\cvcolumns@content{}% + \setcounter{tmpiteratorcounter}{0}% + % loop based on \g@addto@macro + \loop\ifnum\thetmpiteratorcounter<\thecvcolumnscounter% + \ifnum\thetmpiteratorcounter=0\else% + \g@addto@macro\cvcolumns@def{@{\hspace*{\separatorcolumnwidth}}}% + \g@addto@macro\cvcolumns@head{&}% + \g@addto@macro\cvcolumns@content{&}\fi% +% \expandafter\g@addto@macro\expandafter\cvcolumns@def\expandafter{\csname cvcolumn\roman{tmpiteratorcounter}@def\endcsname}% % this creates issues with the colortbl" package (loaded by xcolor when passing the "table" option) as the column definitions passed to \begin{tabular} contains \cvcolumn<i>@def references that it doesn't understand; the next 2 lines expand \cvcolumn@def to the point it doesn't + \edef\tmpcvcolumn@def{\csname cvcolumn\roman{tmpiteratorcounter}@def\endcsname}% + \expandafter\g@addto@macro\expandafter\cvcolumns@def\expandafter{\tmpcvcolumn@def}% + \expandafter\g@addto@macro\expandafter\cvcolumns@head\expandafter{\csname cvcolumn\roman{tmpiteratorcounter}@head\endcsname}% + \expandafter\g@addto@macro\expandafter\cvcolumns@content\expandafter{\csname cvcolumn\roman{tmpiteratorcounter}@content\endcsname}% + \stepcounter{tmpiteratorcounter}% + \repeat% +% % same loop based on \protected@edef +% \loop\ifnum\thetmpiteratorcounter<\thecvcolumnscounter% +% \ifnum\thetmpiteratorcounter=0\else% +% \protected@edef\cvcolumns@def{\cvcolumns@def @{\hspace*{\separatorcolumnwidth}}}% +% \protected@edef\cvcolumns@head{\cvcolumns@head &}% +% \protected@edef\cvcolumns@content{\cvcolumns@content &}\fi% +% \expandafter\protected@edef\expandafter\cvcolumns@def\expandafter{\expandafter\cvcolumns@def\expandafter\protect\csname cvcolumn\roman{tmpiteratorcounter}@def\endcsname}% +% \expandafter\protected@edef\expandafter\cvcolumns@head\expandafter{\expandafter\cvcolumns@head\expandafter\protect\csname cvcolumn\roman{tmpiteratorcounter}@head\endcsname}% +% \expandafter\protected@edef\expandafter\cvcolumns@content\expandafter{\expandafter\cvcolumns@content\expandafter\protect\csname cvcolumn\roman{tmpiteratorcounter}@content\endcsname}% +% \stepcounter{tmpiteratorcounter}% +% \repeat% + % 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}[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]% +% {\color{color1}\rule{\maincolumnwidth}{.25pt}}% + \\\fi% + \cvcolumns@content% + \end{tabular}}} + +% cvcolumn command, to create a column inside a cvcolumns environment +% usage: \cvcolumn[width]{head}{content} +% where "width" is the width as a fraction of the line length (between 0 and 1), "head" is the column header and "content" its content ("head" and "content" can contain "\\", "\newline" or any other paragraph command such as "itemize") +\newcommand*{\cvcolumn}[3][\cvcolumnautowidth]{% +% \def\cvcolumn@width{}% + \ifthenelse{\equal{#1}{\cvcolumnautowidth}}% + {% if no width fraction is provided, count this column as auto-adjusted and set its width to \cvcolumnsautowidth + \stepcounter{cvcolumnsautowidthcounter}% + \expandafter\expandafter\expandafter\def\expandafter\csname cvcolumn\roman{cvcolumnscounter}@def\endcsname{p{\cvcolumnautowidth}}% + \expandafter\expandafter\expandafter\def\expandafter\csname cvcolumn\roman{cvcolumnscounter}@head\endcsname{\protect\parbox[b]{\cvcolumnautowidth}{\protect\subsectionstyle{#2}}}}% + {% if a width is provided, set the width of the column to it and decrease the available space for auto-adjusted columns + \addtolength{\cvcolumnsautowidth}{-#1\cvcolumnsdummywidth}% + \expandafter\expandafter\expandafter\def\expandafter\csname cvcolumn\roman{cvcolumnscounter}@def\endcsname{p{#1\cvcolumnswidth}}% + \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}% + \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 + % roughly restore \\ to its regular definition (outside of tabular) + \renewcommand*{\\}{\newline}% + % enclose the contents of the cell inside a vertical box, to allow paragraph commands + \protect\vtop{#1}}} + +% thebibliography environment, for use with BibTeX and possibly multibib +\newlength{\bibindent} +\setlength{\bibindent}{1.5em} +% bibliography item label +\newcommand*{\bibliographyitemlabel}{}% use \@biblabel{\arabic{enumiv}} for BibTeX labels +%\newif\if@multibibfirstbib\@multibibfirstbibfalse +% bibliography head (section, etc}, depending on whether multibib is used +\newcommand*{\bibliographyhead}[1]{\section{#1}} +\AtEndPreamble{\@ifpackageloaded{multibib}{\renewcommand*{\bibliographyhead}[1]{\subsection{#1}}}{}} +% thebibliography environment definition +\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} +\leftmargin\leftmargini +\setlength{\leftmarginii} {\leftmargini} +\setlength{\leftmarginiii} {\leftmargini} +\setlength{\leftmarginiv} {\leftmargini} +\setlength{\leftmarginv} {\leftmargini} +\setlength{\leftmarginvi} {\leftmargini} +\setlength{\labelsep} {.5em}% this is the distance between the label and the body, but it pushes the label to the left rather than pushing the body to the right (to do the latter, modify \leftmargin(i) +\setlength{\labelwidth} {\leftmargini}% unfortunately, \labelwidth is not defined by item level (i.e. no \labeliwidth, \labeliiwidth, etc) +\addtolength{\labelwidth} {-\labelsep} +\@beginparpenalty -\@lowpenalty +\@endparpenalty -\@lowpenalty +\@itempenalty -\@lowpenalty +\newcommand\labelenumi{\theenumi.} +\newcommand\labelenumii{(\theenumii)} +\newcommand\labelenumiii{\theenumiii.} +\newcommand\labelenumiv{\theenumiv.} +\renewcommand\p@enumii{\theenumi} +\renewcommand\p@enumiii{\p@enumii(\theenumii)} +\renewcommand\p@enumiv{\p@enumiii\theenumiii} +% description label +\newcommand*\descriptionlabel[1]{\hspace\labelsep\normalfont\bfseries#1} + +% classical \today definition +\def\today{\ifcase\month\or + January\or February\or March\or April\or May\or June\or + July\or August\or September\or October\or November\or December\fi + \space\number\day, \number\year} + +%\newcommand{\widthofautobox}[1]{% +% \widthof{\begin{tabular}{@{}l@{}}#1\end{tabular}}} + +%\newcommand{\autobox}[2][b]{% +% \parbox[#1]{\widthofautobox{#2}}{#2}} + + +%------------------------------------------------------------------------------- +% letter design commands definitions +%------------------------------------------------------------------------------- +% elements +\newcommand*{\recipient}[2]{\def\@recipientname{#1}\def\@recipientaddress{#2}} +\renewcommand*{\date}[1]{\def\@date{#1}}\date{\today} +\newcommand*{\opening}[1]{\def\@opening{#1}} +\newcommand*{\closing}[1]{\def\@closing{#1}} +\newcommand*{\enclosure}[2][]{% + % if an optional argument is provided, use it to redefine \enclname + \ifthenelse{\equal{#1}{}}{}{\renewcommand*{\enclname}{#1}}% + \def\@enclosure{#2}} + +% recompute all letter lengths +\newcommand*{\recomputeletterheadlengths}{} +\newcommand*{\recomputeletterbodylengths}{} +\newcommand*{\recomputeletterfootlengths}{} +\newcommand*{\recomputeletterlengths}{% + \recomputeletterheadlengths% + \recomputeletterbodylengths% + \recomputeletterfootlengths} + +% makes the letter title +% usage: \makelettertitle +\newcommand*{\makelettertitle}{% + \makeletterhead% + \makeletterfoot} +\newcommand*{\makeletterhead}{} +\newcommand*{\makeletterfoot}{} + +% makes the letter closing +% usage: \makeletterclosing +\newcommand*{\makeletterclosing}{} + + +\endinput + + +%% end of file `moderncv.cls'. diff --git a/WKB/moderncvbodyi.sty b/WKB/moderncvbodyi.sty new file mode 100644 index 0000000..a86bcf2 --- /dev/null +++ b/WKB/moderncvbodyi.sty @@ -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'. diff --git a/WKB/moderncvbodyiii.sty b/WKB/moderncvbodyiii.sty new file mode 100644 index 0000000..a2de047 --- /dev/null +++ b/WKB/moderncvbodyiii.sty @@ -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'. diff --git a/WKB/moderncvbodyiv.sty b/WKB/moderncvbodyiv.sty new file mode 100644 index 0000000..20af5e4 --- /dev/null +++ b/WKB/moderncvbodyiv.sty @@ -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'. diff --git a/WKB/moderncvbodyv.sty b/WKB/moderncvbodyv.sty new file mode 100644 index 0000000..8888fe5 --- /dev/null +++ b/WKB/moderncvbodyv.sty @@ -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'. diff --git a/WKB/moderncvcollection.sty b/WKB/moderncvcollection.sty new file mode 100644 index 0000000..909d234 --- /dev/null +++ b/WKB/moderncvcollection.sty @@ -0,0 +1,85 @@ +%% start of file `moderncvcollection.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{moderncvcollection}[2015/07/28 v2.0.0 moderncv collections] + + +%------------------------------------------------------------------------------- +% requirements +%------------------------------------------------------------------------------- + + +\RequirePackage{ifthen} + + +%------------------------------------------------------------------------------- +% code +%------------------------------------------------------------------------------- + +% creates a new collection +% usage: \collectionnew{<collection name>} +\newcommand*{\collectionnew}[1]{% + \newcounter{collection@#1@count}} + +% adds an item to a collection +% usage: \collectionadd[<optional key>]{<collection name>}{<item to add>} +\newcommand*{\collectionadd}[3][]{% + \expandafter\def\csname collection@#2@item\roman{collection@#2@count}\endcsname{#3}% + \if\relax\noexpand#1\relax% if #1 is empty + \else\expandafter\def\csname collection@#2@key\roman{collection@#2@count}\endcsname{#1}\fi% + \stepcounter{collection@#2@count}} + +% returns the number of items in a collection +% usage: \collectioncount{<collection name>} +\newcommand*{\collectioncount}[1]{% + \value{collection@#1@count}} + +% gets an item from a collection +% usage: \collectiongetitem{<collection name>}{<element id>} +% where <element id> is an integer between 0 and (collectioncount-1) +\newcommand*{\collectiongetitem}[2]{% + \csname collection@#1@item\romannumeral #2\endcsname} + +% gets a key from a collection +% usage: \collectiongetkey{<collection name>}{<element id>} +% where <element id> is an integer between 0 and (collectioncount-1) +\newcommand*{\collectiongetkey}[2]{% + \csname collection@#1@key\romannumeral #2\endcsname} + +% loops through a collection and perform the given operation on every element +% usage: \collectionloop{<collection name>}{<operation sequence>} +% where <operation sequence> is the code sequence to be evaluated for each collection item, +% code which can refer to \collectionloopid, \collectionloopkey, \collectionloopitem and +% \collectionloopbreak +\newcounter{collection@iterator} +\newcommand*{\collectionloopbreak}{\let\iterate\relax} +\newcommand*{\collectionloop}[2]{% + \setcounter{collection@iterator}{0}% + \loop\ifnum\value{collection@iterator}<\value{collection@#1@count}% + \def\collectionloopid{\arabic{collection@iterator}}% + \def\collectionloopitem{\collectiongetitem{#1}{\collectionloopid}}% + \def\collectionloopkey{\collectiongetkey{#1}{\collectionloopid}}% + #2% + \stepcounter{collection@iterator}% + \repeat} + +% loops through a collection and finds the (first) element matching the given key +% usage: \collectionfindbykey{<collection name>}{key>} +\newcommand*{\collectionfindbykey}[2]{% + \collectionloop{#1}{% + \ifthenelse{\equal{\collectionloopkey}{#2}}{\collectionloopitem\collectionloopbreak}{}}} + + +\endinput + + +%% end of file `moderncvcollection.cls'. diff --git a/WKB/moderncvfooti.sty b/WKB/moderncvfooti.sty new file mode 100644 index 0000000..1a66d0f --- /dev/null +++ b/WKB/moderncvfooti.sty @@ -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'. diff --git a/WKB/moderncvheadi.sty b/WKB/moderncvheadi.sty new file mode 100644 index 0000000..c9511ce --- /dev/null +++ b/WKB/moderncvheadi.sty @@ -0,0 +1,139 @@ +%% 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} +\@initializelength{\makecvheadnamewidth}% optional makecvheadname width to force a certain width (if set/remains to 0pt, the width is calculated automatically) +\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 + + +\endinput + + +%% end of file `moderncvheadi.sty'. diff --git a/WKB/moderncvheadii.sty b/WKB/moderncvheadii.sty new file mode 100644 index 0000000..2062e98 --- /dev/null +++ b/WKB/moderncvheadii.sty @@ -0,0 +1,203 @@ +%% 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} +\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'. diff --git a/WKB/moderncvheadiii.sty b/WKB/moderncvheadiii.sty new file mode 100644 index 0000000..54f86cb --- /dev/null +++ b/WKB/moderncvheadiii.sty @@ -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'. diff --git a/WKB/moderncvheadiv.sty b/WKB/moderncvheadiv.sty new file mode 100644 index 0000000..f3ceaf7 --- /dev/null +++ b/WKB/moderncvheadiv.sty @@ -0,0 +1,171 @@ +%% 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} +\@initializelength{\makecvheadnamewidth}% optional makecvheadname width to force a certain width (if set/remains to 0pt, the width is calculated automatically) +\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}}% + \ifthenelse{\lengthtest{\makecvheadnamewidth=0pt}}% check for dummy value (equivalent to \ifdim\makecvheadnamewidth=0pt) + {\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'. diff --git a/WKB/moderncvheadv.sty b/WKB/moderncvheadv.sty new file mode 100644 index 0000000..7a2c15b --- /dev/null +++ b/WKB/moderncvheadv.sty @@ -0,0 +1,168 @@ +%% 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} +\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'. diff --git a/WKB/moderncvstylebanking.sty b/WKB/moderncvstylebanking.sty new file mode 100644 index 0000000..783f960 --- /dev/null +++ b/WKB/moderncvstylebanking.sty @@ -0,0 +1,65 @@ +%% start of file `moderncvstylebanking.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{moderncvstylebanking}[2015/07/28 v2.0.0 modern curriculum vitae and letter style scheme: banking] + +% 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}} + +% 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 + + +%------------------------------------------------------------------------------- +% fonts & icons +%------------------------------------------------------------------------------- +% TeX Gyre Pagella font +%\ifxetexorluatex +% \setmainfont{Tex-Gyre Pagella} +% \setsansfont{Tex-Gyre Pagella} +% \setmathfont{Tex-Gyre Pagella} +% \setmathfont[range=\mathit,\mathsfit]{Tex-Gyre Pagella Italic} +% \setmathfont[range=\mathbfup,\mathbfsfup]{Tex-Gyre Pagella Bold} +% \setmathfont[range=\mathbfit,\mathbfsfit]{Tex-Gyre Pagella Bold Italic} +%\else + \IfFileExists{tgpagella.sty}% + {% + \RequirePackage{tgpagella}% + \renewcommand*{\familydefault}{\rmdefault}}% + {} +%\fi + +% symbols +\moderncvicons{awesome} + + +%------------------------------------------------------------------------------- +% header, body & footer +%------------------------------------------------------------------------------- +\moderncvhead{3} +\moderncvbody[\moderncvstylebodyoptions]{3} + + +\endinput + + +%% end of file `moderncvstylebanking.sty'. diff --git a/WKB/moderncvstylecasual.sty b/WKB/moderncvstylecasual.sty new file mode 100644 index 0000000..b50886f --- /dev/null +++ b/WKB/moderncvstylecasual.sty @@ -0,0 +1,53 @@ +%% start of file `moderncvstylecasual.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{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 + +%------------------------------------------------------------------------------- +% fonts & icons +%------------------------------------------------------------------------------- +% 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} + + +%------------------------------------------------------------------------------- +% header, body & footer +%------------------------------------------------------------------------------- +\moderncvhead[\moderncvstyleheadoptions]{2} +\moderncvbody{1} +\moderncvfoot{1} + + +\endinput + + +%% end of file `moderncvstylecasual.sty'. diff --git a/WKB/moderncvstyleclassic.sty b/WKB/moderncvstyleclassic.sty new file mode 100644 index 0000000..6ea060c --- /dev/null +++ b/WKB/moderncvstyleclassic.sty @@ -0,0 +1,52 @@ +%% start of file `moderncvstyleclassic.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{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 + +%------------------------------------------------------------------------------- +% fonts & icons +%------------------------------------------------------------------------------- +% 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} + + +%------------------------------------------------------------------------------- +% header, body & footer +%------------------------------------------------------------------------------- +\moderncvhead[\moderncvstyleheadoptions]{1} +\moderncvbody{1} + + +\endinput + + +%% end of file `moderncvstyleclassic.sty'. diff --git a/WKB/moderncvstylefancy.sty b/WKB/moderncvstylefancy.sty new file mode 100644 index 0000000..b44f378 --- /dev/null +++ b/WKB/moderncvstylefancy.sty @@ -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'. diff --git a/WKB/moderncvstyleoldstyle.sty b/WKB/moderncvstyleoldstyle.sty new file mode 100644 index 0000000..9046fda --- /dev/null +++ b/WKB/moderncvstyleoldstyle.sty @@ -0,0 +1,51 @@ +%% start of file `moderncvstyleoldstyle.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{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 + + +%------------------------------------------------------------------------------- +% fonts & icons +%------------------------------------------------------------------------------- +% 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} +% \setmathfont{Kurier Light} +% \setmathfont[range=\mathit,\mathsfit]{Kurier Light Italic} +% \setmathfont[range=\mathbfup,\mathbfsfup]{Kurier Bold} +% \setmathfont[range=\mathbfit,\mathbfsfit]{Kurier Bold Italic} +%\else + \IfFileExists{kurier.sty}% + {\RequirePackage[light,math]{kurier}}% + {} +%\fi + +% symbols +\moderncvicons{letters} + + +%------------------------------------------------------------------------------- +% header, body & footer +%------------------------------------------------------------------------------- +\moderncvhead{4} +\moderncvbody{4} + + +\endinput + + +%% end of file `moderncvstyleoldstyle.sty'. diff --git a/WKB/tweaklist.sty b/WKB/tweaklist.sty new file mode 100644 index 0000000..ff9c6a8 --- /dev/null +++ b/WKB/tweaklist.sty @@ -0,0 +1,56 @@ +%% start of file `tweaklist.sty'. +%% Original by Jakob Schiotz, downloaded from http://dcwww.camd.dtu.dk/~schiotz/comp/LatexTips/tweaklist.sty; not found on ctan. +%% Modified by Xavier Danaux (xdanaux@gmail.com). +% +% The tweaklist.sty package redefines the itemize, enumerate and description packages, so that all parameters can be adjusted. +% This was done by copying the original definitions, and adding "hook commands" that are executed when entering the environment. +% The hook commands are initially empty, but can be redefined with \renewcommand. +% +% 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/. + + +% hooks for the itemize environment +\def\itemhook{} +\def\itemhooki{} +\def\itemhookii{} +\def\itemhookiii{} +\def\itemhookiv{} +% hooks for the enumerate environment +\def\enumhook{} +\def\enumhooki{} +\def\enumhookii{} +\def\enumhookiii{} +\def\enumhookiv{} +% hook for the description environment +\def\deschook{} +% original environment definitions, with hooks added +\def\enumerate{% + \ifnum \@enumdepth >\thr@@\@toodeep\else + \advance\@enumdepth\@ne + \edef\@enumctr{enum\romannumeral\the\@enumdepth}% + \expandafter + \list + \csname label\@enumctr\endcsname + {% + \enumhook \csname enumhook\romannumeral\the\@enumdepth\endcsname% + \usecounter\@enumctr\def\makelabel##1{\hss\llap{##1}}% + }% + \fi} +\def\itemize{% + \ifnum \@itemdepth >\thr@@\@toodeep\else + \advance\@itemdepth\@ne + \edef\@itemitem{labelitem\romannumeral\the\@itemdepth}% + \expandafter + \list + \csname\@itemitem\endcsname + {% + \itemhook \csname itemhook\romannumeral\the\@itemdepth\endcsname% + \def\makelabel##1{\hss\llap{##1}}% + }% + \fi} +\newenvironment{description} + {\list{}{\deschook\labelwidth\z@ \itemindent-\leftmargin + \let\makelabel\descriptionlabel}} + {\endlist} diff --git a/data/education.csv b/data/education.csv new file mode 100644 index 0000000..481add9 --- /dev/null +++ b/data/education.csv @@ -0,0 +1,3 @@ +Degree,Year,Institution,Where,Why +M.S. in Healthcare Informatics,2020,University of Central Florida,NA,NA +B.S. in Clinical Laboratory Science,2009,Western Carolina University,NA,NA diff --git a/data/jobs.csv b/data/jobs.csv new file mode 100644 index 0000000..d556c39 --- /dev/null +++ b/data/jobs.csv @@ -0,0 +1,11 @@ +start,end,what,with,where,why +7/1/2012,,Field Application Specialist,Roche Diagnostics,North Carolina,Train customers in new technology +,,,,,Analyze instrument validation data +,,,,,Analyze validation data of new and updated assays +,,,,,Helped create training materials for new hires +,,,,,Support current customers with troubleshooting needs +7/1/2010,6/30/2012,Lead Medical Technologist,Cape Fear Valley Medical Center,"Fayetteville, North Carolina",Managed a small team of technologist +,,,,,Preformed new assay validations +,,,,,Assisted with new Laboratory Information System design +6/1/2009,6/30/2011,Medical Technologist,Cape Fear Valley Medical Center,"Fayetteville, North Carolina","Ensured test-result validity before recording/reporting results, earning a reputation for attention to detail." +,,,,,"Evaluated quality control within laboratory using standard laboratory test and measurement controls, and maintained compliance with CLIA, OSHA, safety and risk-management guidelines." diff --git a/resume.Rproj b/resume.Rproj new file mode 100644 index 0000000..8e3c2eb --- /dev/null +++ b/resume.Rproj @@ -0,0 +1,13 @@ +Version: 1.0 + +RestoreWorkspace: Default +SaveWorkspace: Default +AlwaysSaveHistory: Default + +EnableCodeIndexing: Yes +UseSpacesForTab: Yes +NumSpacesForTab: 2 +Encoding: UTF-8 + +RnwWeave: Sweave +LaTeX: pdfLaTeX