summaryrefslogtreecommitdiff
path: root/macros/latex/contrib/cv4tw
diff options
context:
space:
mode:
authorNorbert Preining <norbert@preining.info>2019-09-02 13:46:59 +0900
committerNorbert Preining <norbert@preining.info>2019-09-02 13:46:59 +0900
commite0c6872cf40896c7be36b11dcc744620f10adf1d (patch)
tree60335e10d2f4354b0674ec22d7b53f0f8abee672 /macros/latex/contrib/cv4tw
Initial commit
Diffstat (limited to 'macros/latex/contrib/cv4tw')
-rw-r--r--macros/latex/contrib/cv4tw/CUSTOMIZE.md158
-rw-r--r--macros/latex/contrib/cv4tw/LICENSE20
l---------macros/latex/contrib/cv4tw/README1
-rw-r--r--macros/latex/contrib/cv4tw/README.md78
-rw-r--r--macros/latex/contrib/cv4tw/cv4tw-scheme.sty169
-rw-r--r--macros/latex/contrib/cv4tw/cv4tw-theme-compact.sty78
-rw-r--r--macros/latex/contrib/cv4tw/cv4tw-theme-core.sty168
-rw-r--r--macros/latex/contrib/cv4tw/cv4tw-theme-sharp.sty66
-rw-r--r--macros/latex/contrib/cv4tw/cv4tw-theme-simple.sty58
-rw-r--r--macros/latex/contrib/cv4tw/cv4tw.cls138
-rw-r--r--macros/latex/contrib/cv4tw/examples/sample-empty.tex58
-rw-r--r--macros/latex/contrib/cv4tw/examples/sample-jules-verne-compact.pdfbin0 -> 41818 bytes
-rw-r--r--macros/latex/contrib/cv4tw/examples/sample-jules-verne-compact.tex90
-rw-r--r--macros/latex/contrib/cv4tw/examples/sample-jules-verne-sharp.pdfbin0 -> 42459 bytes
-rw-r--r--macros/latex/contrib/cv4tw/examples/sample-jules-verne-sharp.tex90
-rw-r--r--macros/latex/contrib/cv4tw/examples/sample-jules-verne-simple.pdfbin0 -> 40528 bytes
-rw-r--r--macros/latex/contrib/cv4tw/examples/sample-jules-verne-simple.tex81
-rw-r--r--macros/latex/contrib/cv4tw/examples/samplepic.jpgbin0 -> 7333 bytes
18 files changed, 1253 insertions, 0 deletions
diff --git a/macros/latex/contrib/cv4tw/CUSTOMIZE.md b/macros/latex/contrib/cv4tw/CUSTOMIZE.md
new file mode 100644
index 0000000000..ccfa04c013
--- /dev/null
+++ b/macros/latex/contrib/cv4tw/CUSTOMIZE.md
@@ -0,0 +1,158 @@
+Choose a theme and a scheme
+===========================
+
+To help you choose between themes and schemes, use the [Themes matrix](http://cv4tw.6kt.eu/themes-matrix.html).
+
+Once choosen, use the following line to setup your theme:
+```tex
+\usetheme[<scheme>]{<theme>}
+```
+e.g.:
+```tex
+\usetheme[celadon]{sharp}
+```
+
+
+Create a custom scheme
+======================
+If you are not happy with the given schemes, feel free to create yours !
+
+To do so, add the following lines, right before a `\usetheme` statment:
+```tex
+\definecolorifnotdef{contrastmain}{RGB}{219,255,242} % Main theme color in contrast mode
+\definecolorifnotdef{main}{RGB}{60,76,70} % Main theme color
+\definecolorifnotdef{soft}{RGB}{50,64,58} % Soft color, for title
+```
+
+RGB value are decimal.
+
+
+Setup your custom styles
+========================
+
+CV4TW is designed to be highly customizable. To change a style, add this line after `\usetheme` statment:
+```tex
+\setmystyle[<style>]{<content>}
+```
+e.g.:
+```tex
+\setmystyle[quote]{\Huge} % write your quote bigger
+\setmystyle[missionbullet]{\mystyle[icons] +} % use plus as a bullet for missions
+```
+
+
+General styles
+-----------
+ * `default`: How default text looks like
+ * `title`: Resume title (i.e. your future job)
+ * `name`: Your full name
+ * `sectiontitle`: Section title
+ * `subsectiontitle`: Sub-section title
+ * `icons`: The default style for icons/bullets
+ * `footnote`: Footnote style
+
+Header styles
+-------------
+ * `quote`: Quote field style
+ * `asset`: Asset field style
+
+
+Story styles
+------------
+ * `cvstorytitle`: Story title
+ * `cvstorydatelocation`: Story date and location
+ * `cvstoryshort`: Story short description
+ * `cvstorydescription`: Story longer description
+ * `cvstoryquicknotes`: Story quick notes (on left column)
+ * `mission`: Missions in story
+
+Skill styles
+------------
+ * `field`: Field with x stars rate
+ * `fieldrateempty`: The icon for an empty "star"
+ * `fieldratefull`: The icon for a full "star"
+ * `cvskillname`: Skill name (inherited from subsection)
+ * `cvskilldescription`: Skill description
+
+
+
+Contact field styles
+--------------------
+ * `homepage`: URL for HTTP site field
+ * `homepagessl`: URL for HTTPS site field
+ * `customhomepage`: URL for custom protocol field
+ * `address`: Home/contact address field
+ * `spokenlanguages`: Spoken languages field
+ * `cvcontact`: the main style, used by all the styles below
+ * `email`: email address field
+ * `facebook`: Facebook username field
+ * `twitter`: Twitter username field
+ * `github`: Github username field
+ * `googleplus`: Google+ username field
+ * `linkedin`: LinkedIn username field
+ * `vk`: VK username field
+ * `pinterest`: Pinterest username field
+ * `skype`: Skype username field
+ * `phone`: Phone number field
+ * `cellphone`: Cellphone number field
+ * `fax`: Fax number field
+ * `age`: Age or day of birth field
+ * `custom0`: custom field, number 0
+ * ... repeat ...
+ * `custom9`: custom field, number 9
+
+
+Bullet styles
+-------------
+All bullets should contain a character or string. If you are not happy with one of those, just redefine it.
+ * `custom0bullet`
+ * ... repeat ...
+ * `custom9bullet`
+ * `githubbullet`
+ * `linkedinbullet`
+ * `twitterbullet`
+ * `vkbullet`
+ * `facebookbullet`
+ * `pinterestbullet`
+ * `googleplusbullet`
+ * `emailbullet`
+ * `cellphonebullet`
+ * `phonebullet`
+ * `faxbullet`
+ * `homepagebullet`
+ * `homepagesslbullet`
+ * `customhomepagebullet`
+ * `addressbullet`
+ * `agebullet`
+ * `spokenlanguagesbullet`
+ * `fieldbullet`
+ * `assetbullet`
+ * `missionbullet`
+
+Reorder contacts
+================
+
+If you want to reorder the contacts zones, you will have to use the following lines, just before `\begin{document}` line :
+
+```tex
+\setcvcontactszone[main]{% Finishing this line with a % is important to avoid a bad align of icons
+\rendercontactifdefined{cellphone}
+\rendercontactifdefined{email}
+\rendercontactifdefined{twitter}
+}
+\setcvcontactszone[main]{%
+\rendercontactifdefined{custom0}
+\rendercontactifdefined{linkedin}
+}
+\setcvcontactszone[extra]{%
+\rendercontactifdefined{age}
+\rendercontactifdefined{fax}
+\rendercontactifdefined{homepage}
+}
+```
+
+Here is the list of zones you can redefine this way :
+ * `main`: contains e-mail address, phone numbers, ...
+ * `social`: contains social networks contacts
+ * `extra`: contains fields like age, home address
+
diff --git a/macros/latex/contrib/cv4tw/LICENSE b/macros/latex/contrib/cv4tw/LICENSE
new file mode 100644
index 0000000000..8001322e38
--- /dev/null
+++ b/macros/latex/contrib/cv4tw/LICENSE
@@ -0,0 +1,20 @@
+The MIT License (MIT)
+
+Copyright (c) 2014 Geoffrey Gouez
+
+Permission is hereby granted, free of charge, to any person obtaining a copy of
+this software and associated documentation files (the "Software"), to deal in
+the Software without restriction, including without limitation the rights to
+use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
+the Software, and to permit persons to whom the Software is furnished to do so,
+subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
+FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
+COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
+IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
+CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
diff --git a/macros/latex/contrib/cv4tw/README b/macros/latex/contrib/cv4tw/README
new file mode 120000
index 0000000000..42061c01a1
--- /dev/null
+++ b/macros/latex/contrib/cv4tw/README
@@ -0,0 +1 @@
+README.md \ No newline at end of file
diff --git a/macros/latex/contrib/cv4tw/README.md b/macros/latex/contrib/cv4tw/README.md
new file mode 100644
index 0000000000..ffef0201b0
--- /dev/null
+++ b/macros/latex/contrib/cv4tw/README.md
@@ -0,0 +1,78 @@
+cv4tw
+=====
+
+LaTeX CV class, with assets, social networks, and customizable styles.
+
+Official site is on GitHub: https://github.com/Cicatrice/cv4tw
+
+
+Available themes
+----------------
+* [`sharp`](examples/sample-jules-verne-sharp.pdf): Elegant header, to introduce a long resume
+* [`simple`](examples/sample-jules-verne-simple.pdf): A classic format, perfect for resume with short contacts details
+* [`compact`](examples/sample-jules-verne-compact.pdf): design for short CV (1 page), with a left column showing your picture and contact details
+
+[Have a look to the themes matrix !](http://cv4tw.6kt.eu/themes-matrix.html)
+
+Available schemes
+-----------------
+* `celadon`
+* `tan`
+* `gray`
+* `purple`
+* `teal`
+* `minuit`
+* Default theme is red
+* If you want a custom scheme, add the following lines right before `\usetheme` statement
+```tex
+\definecolorifnotdef{contrastmain}{RGB}{219,255,242} % Main theme color in contrast mode
+\definecolorifnotdef{main}{RGB}{60,76,70} % Main theme color
+\definecolorifnotdef{soft}{RGB}{50,64,58} % Soft color, for title
+```
+
+Quick install guide
+===================
+
+on Fedora
+---------
+* Run the following command
+```bash
+sudo yum install texlive texlive-xetex texlive-newenviron texlive-xetex-def texlive-xstring texlive-lastpage texlive-libertine texlive-euenc texlive-pbox texlive-needspace texlive-fontawesome fontawesome-fonts texlive-realboxes
+```
+
+on Debian-based
+---------------
+* Run the following command
+```bash
+sudo apt-get install texlive-latex-extra texlive-xetex texlive-fonts-extra fonts-linuxlibertine
+```
+
+on Windows
+----------
+* Install MikTeX
+* All depedencies might be installed automatically on LaTeX processing
+
+Compile example
+===============
+* go in [`examples`](examples) folder
+* on Windows, edit Makefile, and replace `TEXINPUTS=.:..:` with `TEXINPUTS=..`
+* run:
+```bash
+make clean all
+```
+* default theme is [`sharp`](examples/sample-jules-verne-sharp.pdf). To use another exemple, run the following command:
+```bash
+CVTHEME=compact make clean all
+```
+
+Go further with customization
+=============================
+If you need some changes in themes, you can have a look to [this guide](CUSTOMIZE.md).
+
+Change logs
+===========
+* 2014-05-25: even more documentation
+* 2014-05-21: quick install guide, custom fields added
+* 2014-01-19: working version, lack a bit of documentation
+* 2014-01-08: alpha version, almost working
+
diff --git a/macros/latex/contrib/cv4tw/cv4tw-scheme.sty b/macros/latex/contrib/cv4tw/cv4tw-scheme.sty
new file mode 100644
index 0000000000..5d66f3a1d5
--- /dev/null
+++ b/macros/latex/contrib/cv4tw/cv4tw-scheme.sty
@@ -0,0 +1,169 @@
+%
+% Celadon scheme
+%
+\DeclareOption{celadon}{
+ \definecolorifnotdef{main}{RGB}{60,76,70}
+ \definecolorifnotdef{contrastmain}{RGB}{219,255,242}
+ \definecolorifnotdef{soft}{RGB}{50,64,58}
+}
+%
+% Tan scheme
+%
+\DeclareOption{tan}{
+ \definecolorifnotdef{main}{RGB}{76,38,23}
+ \definecolorifnotdef{contrastmain}{RGB}{255,206,186}
+ \definecolorifnotdef{soft}{RGB}{51,25,15}
+}
+%
+% Gray scheme
+%
+\DeclareOption{gray}{
+ \definecolorifnotdef{main}{RGB}{76,73,73}
+ \definecolorifnotdef{contrastmain}{RGB}{216,208,208}
+ \definecolorifnotdef{soft}{RGB}{51,49,49}
+}
+%
+% Purple scheme
+%
+\DeclareOption{purple}{
+ \definecolorifnotdef{main}{RGB}{66,49,76}
+ \definecolorifnotdef{contrastmain}{RGB}{244,222,255}
+ \definecolorifnotdef{soft}{RGB}{44,33,51}
+}
+%
+% Teal scheme
+%
+\DeclareOption{teal}{
+ \definecolorifnotdef{main}{RGB}{31,117,96}
+ \definecolorifnotdef{contrastmain}{RGB}{186,255,236}
+ \definecolorifnotdef{soft}{RGB}{42,79,70}
+}
+%
+% Blue scheme
+%
+\DeclareOption{minuit}{
+ \definecolorifnotdef{main}{RGB}{0,51,102}
+ \definecolorifnotdef{contrastmain}{RGB}{156,205,255}
+ \definecolorifnotdef{soft}{RGB}{0,17,34}
+}
+\ProcessOptions
+
+\definecolorifnotdef{default}{rgb}{0,0,0}
+\definecolorifnotdef{contrast}{rgb}{1,1,1}
+\definecolorifnotdef{contrastmain}{RGB}{255,189,184}
+\definecolorifnotdef{main}{RGB}{127,47,40}
+\definecolorifnotdef{soft}{RGB}{64,23,20}
+\definecolorifnotdef{light}{rgb}{.5,.5,.5}
+
+% Color for main title
+\colorletifnotdef{title} {soft}
+% Color for person name
+\colorletifnotdef{name}{main}
+% Section title is used at each new section/skill subsection
+\colorletifnotdef{sectiontitle} {soft}
+% Subsection title is used at each job/education/skill entry
+\colorletifnotdef{subsectiontitle} {soft}
+% Section rule
+\colorletifnotdef{sectionrule} {soft}
+% Asset bullet (e.g. star)
+\colorletifnotdef{assetbullet} {soft}
+% Mission bullet (e.g. chevron)
+\colorletifnotdef{missionbullet} {soft}
+% Icons color (e.g. contacts icons)
+\colorletifnotdef{icons} {soft}
+% Footnote
+\colorletifnotdef{footnote} {light}
+
+% General style
+\setmystyle[title] {\scshape\sffamily\color{title}\Huge\sloppy}
+\setmystyle[name] {\sffamily\color{name}\Huge}
+\setmystyle[sectiontitle] {\sffamily\color{sectiontitle}\Large}
+\setmystyle[subsectiontitle] {\bfseries\sffamily\color{subsectiontitle}\large}
+\setmystyle[default] {\color{default}\sffamily}
+\setmystyle[quote] {\color{light}}
+\setmystyle[section] {\sffamily}
+\setmystyle[icons] {\sffamily\color{icons}\small}
+\setmystyle[footnote] {\mystyle[default]\color{footnote}\scshape\footnotesize}
+\setmystyle[asset] {\mystyle[default]\sloppy}
+\setmystyle[assetbullet] {\mystyle[icons]{\faStar}}
+
+% Jobs items style
+\setmystyle[cvstorytitle] {\sffamily\color{main}\bfseries}
+\setmystyle[cvstorydatelocation] {\itshape\sffamily}
+\setmystyle[cvstoryshort] {\sffamily}
+\setmystyle[cvstorydescription] {\sffamily}
+\setmystyle[cvstoryquicknotes] {\small\scshape\sffamily}
+\setmystyle[missionbullet] {\color{missionbullet}$\rhd$}
+\setmystyle[mission] {\mystyle[default]}
+
+% Field items style
+\setmystyle[field] {\mystyle[default]\color{main}}
+\setmystyle[fieldrateempty] {\mystyle[icons]\faStarEmpty}
+\setmystyle[fieldratefull] {\mystyle[icons]\faStar}
+
+% Skills items style
+\setmystyle[cvskillname] {\mystyle[default]\color{main}}
+\setmystyle[cvskilldescription] {\mystyle[default]}
+
+%Contact items style
+\setmystyle[cvcontact]{\small\sffamily}
+\setmystyle[email]{\mystyle[cvcontact]}
+\setmystyle[facebook]{\mystyle[cvcontact]}
+\setmystyle[twitter]{\mystyle[cvcontact]}
+\setmystyle[github]{\mystyle[cvcontact]}
+\setmystyle[googleplus]{\mystyle[cvcontact]}
+\setmystyle[linkedin]{\mystyle[cvcontact]}
+\setmystyle[skype]{\mystyle[cvcontact]}
+\setmystyle[phone]{\mystyle[cvcontact]}
+\setmystyle[cellphone]{\mystyle[cvcontact]}
+\setmystyle[fax]{\mystyle[cvcontact]}
+\setmystyle[age]{\mystyle[cvcontact]}
+\setmystyle[vk]{\mystyle[cvcontact]}
+\setmystyle[custom0]{\mystyle[cvcontact]}
+\setmystyle[custom1]{\mystyle[cvcontact]}
+\setmystyle[custom2]{\mystyle[cvcontact]}
+\setmystyle[custom3]{\mystyle[cvcontact]}
+\setmystyle[custom4]{\mystyle[cvcontact]}
+\setmystyle[custom5]{\mystyle[cvcontact]}
+\setmystyle[custom6]{\mystyle[cvcontact]}
+\setmystyle[custom7]{\mystyle[cvcontact]}
+\setmystyle[custom8]{\mystyle[cvcontact]}
+\setmystyle[custom9]{\mystyle[cvcontact]}
+\setmystyle[pinterest]{\mystyle[cvcontact]}
+\setmystyle[homepage]{\mystyle[cvcontact]}
+\setmystyle[homepagessl]{\mystyle[cvcontact]}
+\setmystyle[customhomepage]{\mystyle[cvcontact]}
+\setmystyle[address]{\mystyle[cvcontact]\scshape}
+\setmystyle[spokenlanguages]{\mystyle[cvcontact]\scshape}
+%Contact bullets
+\setmystyle[custom0bullet]{{\mystyle[icons]-}}
+\setmystyle[custom1bullet]{{\mystyle[icons]-}}
+\setmystyle[custom2bullet]{{\mystyle[icons]-}}
+\setmystyle[custom3bullet]{{\mystyle[icons]-}}
+\setmystyle[custom4bullet]{{\mystyle[icons]-}}
+\setmystyle[custom5bullet]{{\mystyle[icons]-}}
+\setmystyle[custom6bullet]{{\mystyle[icons]-}}
+\setmystyle[custom7bullet]{{\mystyle[icons]-}}
+\setmystyle[custom8bullet]{{\mystyle[icons]-}}
+\setmystyle[custom9bullet]{{\mystyle[icons]-}}
+\setmystyle[githubbullet]{{\mystyle[icons]\faGithub}}
+\setmystyle[linkedinbullet]{{\mystyle[icons]\faLinkedin}}
+\setmystyle[twitterbullet]{{\mystyle[icons]\faTwitter}}
+\setmystyle[vkbullet]{{\mystyle[icons]\faVK}}
+\setmystyle[facebookbullet]{{\mystyle[icons]\faFacebook}}
+%\setmystyle[skypebullet]{{\mystyle[icons]\faSkype}} %% Not yet support by fontawesome
+\setmystyle[pinterestbullet]{{\mystyle[icons]\faPinterest}}
+\setmystyle[googleplusbullet]{{\mystyle[icons]\faGooglePlus}}
+\setmystyle[emailbullet]{{\mystyle[icons]\faEnvelope}}
+\setmystyle[cellphonebullet]{{\mystyle[icons]\faMobilePhone}}
+\setmystyle[phonebullet]{{\mystyle[icons]\faPhone}}
+\setmystyle[faxbullet]{{\mystyle[icons]\faPrint}}
+\setmystyle[homepagebullet]{{\mystyle[icons]\faLaptop}}
+\setmystyle[homepagesslbullet]{{\mystyle[icons]\faLaptop}}
+\setmystyle[customhomepagebullet]{{\mystyle[icons]\faLaptop}}
+\setmystyle[addressbullet]{{\mystyle[icons]\faHome}}
+\setmystyle[agebullet]{{\mystyle[icons]\faCalendar}}
+\setmystyle[spokenlanguagesbullet]{{\mystyle[icons]\faComments}}
+\setmystyle[fieldbullet]{{\mystyle[icons]\faComments}}
+
+\endinput
diff --git a/macros/latex/contrib/cv4tw/cv4tw-theme-compact.sty b/macros/latex/contrib/cv4tw/cv4tw-theme-compact.sty
new file mode 100644
index 0000000000..2d38f9d310
--- /dev/null
+++ b/macros/latex/contrib/cv4tw/cv4tw-theme-compact.sty
@@ -0,0 +1,78 @@
+\RequirePackage{boxedminipage}
+%\RequirePackage{wrapfig}
+%\RequirePackage{picinpar}
+\newgeometry{left=1cm,top=1cm,bottom=1cm,right=1cm}
+%Useful lengths
+\newlength{\cvpicturewidth}\setlength{\cvpicturewidth}{3.2cm}
+\setlength{\cvleftwidth}{4cm}
+\setlength{\cvrightwidth}{8cm}
+\setlength{\sectionrule}{13cm}
+\newlength{\cvtitlecolumnwidth}\setlength{\cvtitlecolumnwidth}{5.5cm}
+\newlength{\cvmaincolumnwidth}\setlength{\cvmaincolumnwidth}{13cm}
+\newlength{\cvtitlewidth}\setlength{\cvtitlewidth}{10cm}
+\newlength{\cvnamewidth}\setlength{\cvnamewidth}{8cm}
+\newlength{\cvassetspanelwidth}\setlength{\cvassetspanelwidth}{12cm}
+\newlength{\cvassetitemsep}\setlength{\cvassetitemsep}{0em}
+\newlength{\cvassetspanelleftmargin}\setlength{\cvassetspanelleftmargin}{0cm}
+\newlength{\cvcontactpanelwidth}\setlength{\cvcontactpanelwidth}{7cm}
+
+% Set \emph command with "em" color
+\DeclareTextFontCommand{\emph}{\color{main}}
+
+\fancypagestyle{cvcompact}{
+ \renewcommand{\headrulewidth}{0pt}
+ \renewcommand{\footrulewidth}{0pt}
+ \fancyhf{}
+% \lfoot{\mystyle[footnote]\@cvfirstname~\@cvlastname}
+% \cfoot{\mystyle[footnote]\@ifundefined{@cvtitle}{}{\@cvtitle}}
+% \rfoot{\mystyle[footnote]\thepage/\pageref{LastPage}}
+}
+\pagestyle{cvcompact}
+
+\AtBeginDocument{\AtBeginShipoutNext{\AtBeginShipoutDiscard}}
+
+\renewcommand*{\maketitle}{
+ \noindent
+ \begin{minipage}[t]{\cvtitlecolumnwidth}
+ {\mystyle[name]\@cvfirstname~\@cvlastname}\\
+ \@ifundefined{@cvpicture}{}{\centering\begin{minipage}[m]{\cvpicturewidth}\fboxsep=1mm\fboxrule=0.05pt\fcolorbox{black}{white}{\includegraphics[keepaspectratio=true,width=\cvpicturewidth]{\@cvpicture}}\end{minipage}\\}
+ \@ifundefined{@cvtitle}{}{{\mystyle[title]\@cvtitle}\\[0.5em]}
+ \@ifundefined{@cvquote}{}{{\mystyle[quote]\@cvquote}\\[0.5em]}
+\begin{tabular}{@{}c@{}l@{}}\\
+\renderassetifdefined{0}
+\renderassetifdefined{1}
+\renderassetifdefined{2}
+\renderassetifdefined{3}
+\renderassetifdefined{4}
+\renderassetifdefined{5}
+\renderassetifdefined{6}
+\renderassetifdefined{7}
+\renderassetifdefined{8}
+\renderassetifdefined{9}\\
+\cvcontactszone[main]
+\cvcontactszone[social]
+\cvcontactszone[extra]
+\end{tabular}
+ \end{minipage}
+ \hfill
+ \noindent
+\begin{minipage}[t]{\cvmaincolumnwidth}
+}
+
+\AtEndDocument{ %\end{minipage}}
+ \end{minipage}
+}
+
+\renewcommand*{\renderasset}[1]{ \mystyle[assetbullet]&\begin{tabular}[t]{>{\mystyle[asset]}l}\cvasset[#1]\end{tabular}\\[0.3em]}
+
+\renewcommand*{\renderassetifdefined}[1]{\ifcvasset[#1]{\renderasset{#1}}{\ignorespaces}}
+
+\renewcommand*{\rendercontact}[1]{
+\mystyle[#1bullet]&\begin{tabular}[t]{>{\mystyle[#1]}l}
+\cvcontactlink{#1}
+\end{tabular}\\[0.3em]
+}
+
+\renewcommand*{\rendercontactifdefined}[1]{\ifcvcontact[#1]{\rendercontact{#1}}{\ignorespaces}}
+
+\endinput
diff --git a/macros/latex/contrib/cv4tw/cv4tw-theme-core.sty b/macros/latex/contrib/cv4tw/cv4tw-theme-core.sty
new file mode 100644
index 0000000000..24011b0345
--- /dev/null
+++ b/macros/latex/contrib/cv4tw/cv4tw-theme-core.sty
@@ -0,0 +1,168 @@
+\RequirePackage[left=1cm,right=1cm,top=1cm,bottom=1.8cm]{geometry}
+\RequirePackage{libertine}
+\RequirePackage{multicol}
+\RequirePackage{pifont}
+\RequirePackage{pbox}
+\RequirePackage{needspace}
+\RequirePackage{amssymb}
+\RequirePackage{fontspec}
+\RequirePackage{fontawesome}
+\RequirePackage{realboxes}
+\RequirePackage{array}
+\RequirePackage{forloop}
+
+\setcvcontactszone[main]{%
+\rendercontactifdefined{custom0}%
+\rendercontactifdefined{custom1}%
+\rendercontactifdefined{custom2}%
+\rendercontactifdefined{email}%
+\rendercontactifdefined{homepage}%
+\rendercontactifdefined{homepagessl}%
+\rendercontactifdefined{customhomepage}%
+\rendercontactifdefined{cellphone}%
+\rendercontactifdefined{phone}%
+\rendercontactifdefined{fax}%
+}%
+
+\setcvcontactszone[social]{%
+\rendercontactifdefined{custom3}%
+\rendercontactifdefined{custom4}%
+\rendercontactifdefined{custom5}%
+\rendercontactifdefined{github}%
+\rendercontactifdefined{linkedin}%
+\rendercontactifdefined{twitter}%
+\rendercontactifdefined{googleplus}%
+\rendercontactifdefined{facebook}%
+\rendercontactifdefined{vk}%
+\rendercontactifdefined{pinterest}%
+}%
+\setcvcontactszone[extra]{%
+\rendercontactifdefined{custom6}%
+\rendercontactifdefined{custom7}%
+\rendercontactifdefined{custom8}%
+\rendercontactifdefined{custom9}%
+\rendercontactifdefined{age}%
+\rendercontactifdefined{spokenlanguages}%
+\rendercontactifdefined{address}%
+}%
+
+\AtBeginDocument{\maketitle}
+
+% Set \emph command with "em" color
+\DeclareTextFontCommand{\emph}{\color{main}}
+
+% Default header & footer
+\fancypagestyle{cvsimple}{
+ \renewcommand{\headrulewidth}{0pt}
+ \renewcommand{\footrulewidth}{0pt}
+ \fancyhf{}
+ \lfoot{\mystyle[footnote]\@cvfirstname~\@cvlastname}
+ \cfoot{\mystyle[footnote]\@ifundefined{@cvtitle}{}{\@cvtitle}}
+ \rfoot{\mystyle[footnote]\thepage/\pageref{LastPage}}
+}
+\pagestyle{cvsimple}
+
+
+%Useful lengths
+\newlength{\cvleftwidth}\setlength{\cvleftwidth}{4.5cm}
+\newlength{\cvrightwidth}\setlength{\cvrightwidth}{14cm}
+\newlength{\cvfielditemparskip}\setlength{\cvfielditemparskip}{0.5em}
+\newlength{\cvskillitemparskip}\setlength{\cvskillitemparskip}{-0.8em}
+\newlength{\cvmissionsitemsep}\setlength{\cvmissionsitemsep}{0em}
+\newlength{\cvfieldsep}\setlength{\cvfieldsep}{0em}
+\newlength{\sectionrule}\setlength{\sectionrule}{\textwidth}
+\setlength{\parindent}{0cm}
+
+\newcounter{currentrate}
+\newcounter{fieldsbyrow}
+\newcounter{maxrate}
+\newcounter{fieldscurrentcolumn}
+% Set \emph command with "em" color
+\DeclareTextFontCommand{\emph}{\color{main}}
+
+% Section title
+\renewcommand*{\section}[1]{
+\needspace{4\baselineskip}
+\begin{center}
+ {\mystyle[sectiontitle] #1}\\[-0.8em]
+ {\color{sectionrule}\rule{\sectionrule}{0.05pt}}
+\end{center}
+}
+
+% Write a story relevant about you (job, education, journey, ...)
+\renewcommand*{\story}[5]{
+ \begin{flushleft}
+ \begin{minipage}[t]{\cvleftwidth}
+ {\mystyle[cvstorydatelocation] #3}
+ \if\relax\detokenize{#4}\relax
+ \relax
+ \else
+ \\[1em]
+ {\mystyle[cvstoryquicknotes] #4}
+ \fi
+ \end{minipage}
+ \begin{minipage}[t]{\cvrightwidth}
+ \vspace*{-0.7em}
+ {\mystyle[cvstorytitle] #1}{\mystyle[cvstoryshort],~#2}
+ \if\relax\detokenize{#5}\relax
+ \relax
+ \else
+ \\[0.8em]
+ {\mystyle[cvstorydescription] #5}
+ \fi
+ \end{minipage}
+ \end{flushleft}
+}
+
+% Rate fields related to a profile
+\renewenvironment*{fields}[3]{
+ \setcounter{fieldsbyrow}{#2}
+ \addtocounter{fieldsbyrow}{-1}
+ \setcounter{maxrate}{#3}
+ \addtocounter{maxrate}{-1}
+ \setcounter{fieldscurrentcolumn}{0}
+ \newcommand{\formatfieldcell}[2]{
+ \makeatletter
+ \ifnum\value{fieldscurrentcolumn}=\value{fieldsbyrow}
+ \setcounter{fieldscurrentcolumn}{0}
+ \expandafter\@firstoftwo
+ \else
+ \stepcounter{fieldscurrentcolumn}
+ \expandafter\@secondoftwo
+ \fi
+ {{\mystyle[field] ##1} & ##2 \\[\cvfielditemparskip] }
+ {{\mystyle[field] ##1} & ##2 & }
+
+ \makeatother
+ }
+
+ \newcommand*{\field}[2]{
+ \formatfieldcell{##1}{
+ \forloop{currentrate}{0}{\value{currentrate} < #3}{
+ \ifnum##2>\value{currentrate}\mystyle[fieldratefull]\else\mystyle[fieldrateempty]\fi
+ }
+ }
+ }
+ \begin{minipage}[t]{\textwidth}
+ {\hspace*{\cvleftwidth}\mystyle[subsectiontitle] #1}\\[1.5em]
+ \begin{tabular}[t]{*{#2}{rl}}
+}{
+ \end{tabular}\\[2em]
+ \end{minipage}
+}
+
+% Describe missions related to a job
+\renewenvironment*{missions}{
+ \begin{list}{\mystyle[missionbullet]}{ \setlength{\itemsep}{\cvmissionsitemsep} \setlength{\leftmargin}{2em}\mystyle[mission] }
+}{
+ \end{list}
+}
+
+% Skills environment (use \skill command to add items)
+\renewenvironment*{skills}[1]{
+ \newcommand*{\skill}[2][]{ ##1\hspace*{2ex} & ##2 \\[\cvskillitemparskip] }
+ \begin{minipage}[t]{\textwidth}
+ {\hspace*{\cvleftwidth}\mystyle[subsectiontitle] #1}\\[-0.4em]
+ \begin{tabular}[t]{@{}>{\mystyle[cvskillname]\hfill}p{\cvleftwidth}@{}>{\mystyle[cvskilldescription]}p{\cvrightwidth}@{}} }
+ { \end{tabular}\\[2em] \end{minipage} }
+\endinput
diff --git a/macros/latex/contrib/cv4tw/cv4tw-theme-sharp.sty b/macros/latex/contrib/cv4tw/cv4tw-theme-sharp.sty
new file mode 100644
index 0000000000..d65974a3be
--- /dev/null
+++ b/macros/latex/contrib/cv4tw/cv4tw-theme-sharp.sty
@@ -0,0 +1,66 @@
+%Useful lengths
+\newlength{\cvtitlewidth}\setlength{\cvtitlewidth}{8cm}
+\newlength{\cvnamewidth}\setlength{\cvnamewidth}{6cm}
+\newlength{\cvpicturewidth}\setlength{\cvpicturewidth}{2.4cm}
+\newlength{\cvassetspanelwidth}\setlength{\cvassetspanelwidth}{12cm}
+\newlength{\cvassetitemsep}\setlength{\cvassetitemsep}{0.4em}
+\newlength{\cvassetspanelleftmargin}\setlength{\cvassetspanelleftmargin}{1cm}
+\newlength{\cvcontactpanelwidth}\setlength{\cvcontactpanelwidth}{7cm}
+
+\DeclareTextFontCommand{\emph}{\color{main}}
+
+\renewcommand*{\maketitle}{
+ \DeclareTextFontCommand{\emph}{\color{contrastmain}}
+ \colorlet{iconstemp}{icons}
+ \colorlet{icons}{contrast}
+ \hspace*{-1\marginparwidth}\colorbox{title}{\hspace*{\marginparwidth}\begin{minipage}{\paperwidth}
+ \@ifundefined{@cvpicture}{}{\begin{minipage}[m]{\cvpicturewidth}\fboxsep=1mm\fboxrule=0.05pt\fcolorbox{black}{white}{\includegraphics[keepaspectratio=true,width=\cvpicturewidth]{\@cvpicture}}\end{minipage}\hspace{2ex}}
+ \begin{minipage}[m]{\cvtitlewidth}
+ \mystyle[name]\color{contrast}{\@ifundefined{@cvacademictitle}{}{\small\@cvacademictitle~}}\@cvfirstname~\@cvlastname
+ \@ifundefined{@cvtitle}{}{{\\\mystyle[title]\color{contrast}\@cvtitle}}
+ \end{minipage}\hfill
+ \begin{minipage}[m]{\cvassetspanelwidth}
+ \ifcvasset[0]{\begin{list}{\mystyle[assetbullet]}{\setlength{\leftmargin}{\cvassetspanelleftmargin}}
+\setlength{\itemsep}{\cvassetitemsep}
+\renderassetifdefined{0}
+\renderassetifdefined{1}
+\renderassetifdefined{2}
+\renderassetifdefined{3}
+\renderassetifdefined{4}
+\renderassetifdefined{5}
+\renderassetifdefined{6}
+\renderassetifdefined{7}
+\renderassetifdefined{8}
+\renderassetifdefined{9}
+\end{list}}{}
+ \end{minipage}
+ \end{minipage}}\\[3ex]
+ \colorlet{icons}{iconstemp}
+ \@ifundefined{@cvquote}{}{{\centering\mystyle[quote]\@cvquote\\[2ex]}}
+ \begin{minipage}[t]{0.3\textwidth} \begin{tabular}[t]{@{}c@{}l@{}}
+\cvcontactszone[main]
+\end{tabular}
+ \end{minipage}
+\hfill
+ \begin{minipage}[t]{0.3\textwidth} \begin{tabular}[t]{@{}c@{}l@{}}
+\cvcontactszone[social]
+\end{tabular}
+ \end{minipage}
+\hfill
+ \begin{minipage}[t]{0.3\textwidth} \begin{tabular}[t]{@{}c@{}l@{}}
+\cvcontactszone[extra]
+\end{tabular}
+ \end{minipage}\\
+\\[1em]
+}
+
+\renewcommand*{\renderasset}[1]{\item{\mystyle[asset]\color{contrast} \cvasset[#1]}}
+
+\renewcommand*{\renderassetifdefined}[1]{\ifcvasset[#1]{\renderasset{#1}}{\ignorespaces}}
+
+\renewcommand*{\rendercontact}[1]{\mystyle[#1bullet] & \begin{tabular}[t]{>{\mystyle[#1]}l}\cvcontactlink{#1}\end{tabular} \\[0.3em]}
+
+\renewcommand*{\rendercontactifdefined}[1]{\ifcvcontact[#1]{\rendercontact{#1}}{\ignorespaces}}
+
+
+\endinput
diff --git a/macros/latex/contrib/cv4tw/cv4tw-theme-simple.sty b/macros/latex/contrib/cv4tw/cv4tw-theme-simple.sty
new file mode 100644
index 0000000000..129b00eb90
--- /dev/null
+++ b/macros/latex/contrib/cv4tw/cv4tw-theme-simple.sty
@@ -0,0 +1,58 @@
+
+\newlength{\cvtitlewidth}\setlength{\cvtitlewidth}{8cm}
+\newlength{\cvnamewidth}\setlength{\cvnamewidth}{6cm}
+\newlength{\cvpicturewidth}\setlength{\cvpicturewidth}{2.4cm}
+\newlength{\cvassetspanelwidth}\setlength{\cvassetspanelwidth}{12cm}
+\newlength{\cvassetitemsep}\setlength{\cvassetitemsep}{2em}
+\newlength{\cvassetspanelleftmargin}\setlength{\cvassetspanelleftmargin}{1cm}
+\newlength{\cvcontactpanelwidth}\setlength{\cvcontactpanelwidth}{7cm}
+
+\renewcommand*{\maketitle}{
+ \@ifundefined{@cvpicture}{}{ \begin{minipage}[m]{\cvpicturewidth} \fboxsep=1mm\fboxrule=0.05pt \fcolorbox{black}{white}{ \includegraphics[keepaspectratio=true,width=\cvpicturewidth]{\@cvpicture} }\end{minipage}\hspace{5ex}}
+ \begin{minipage}[m]{\cvtitlewidth}
+ \@ifundefined{@cvtitle}{~}{\mystyle[title]\@cvtitle}
+ \end{minipage}\hfill
+ \begin{minipage}[m]{\cvnamewidth}
+ \begin{flushright}
+ \mystyle[name]\@cvfirstname\\[0em]\@cvlastname
+ \end{flushright}
+ \end{minipage}
+ \begin{minipage}[!t]{\cvassetspanelwidth}
+ \begin{multicols}{2}
+ \ifcvasset[0]{\begin{list}{\mystyle[assetbullet]}{\setlength{\leftmargin}{\cvassetspanelleftmargin}}
+\setlength{\itemsep}{\cvassetitemsep}
+\renderassetifdefined{0}
+\renderassetifdefined{1}
+\renderassetifdefined{2}
+\renderassetifdefined{3}
+\renderassetifdefined{4}
+\renderassetifdefined{5}
+\renderassetifdefined{6}
+\renderassetifdefined{7}
+\renderassetifdefined{8}
+\renderassetifdefined{9}
+\end{list}}{}
+ \end{multicols}
+ \@ifundefined{@cvquote}{}{\mystyle[quote]\@cvquote}
+ \end{minipage}\hfill
+\begin{minipage}[!t]{\cvcontactpanelwidth}
+\begin{flushright}
+\begin{tabular}{@{}c@{}l@{}}
+ \cvcontactszone[main]
+ \cvcontactszone[social]
+ \cvcontactszone[extra]
+\end{tabular}
+\end{flushright}
+ \end{minipage}
+\\[1em]
+}
+
+\renewcommand*{\renderasset}[1]{\item{\mystyle[asset] \cvasset[#1]}}
+
+\renewcommand*{\renderassetifdefined}[1]{\ifcvasset[#1]{\renderasset{#1}}{\ignorespaces}}
+
+\renewcommand*{\rendercontact}[1]{\mystyle[#1bullet] & \begin{tabular}[t]{>{\mystyle[#1]}l}\cvcontactlink{#1}\end{tabular} \\[0.3em]}
+
+\renewcommand*{\rendercontactifdefined}[1]{\ifcvcontact[#1]{\rendercontact{#1}}{\ignorespaces}}
+
+\endinput
diff --git a/macros/latex/contrib/cv4tw/cv4tw.cls b/macros/latex/contrib/cv4tw/cv4tw.cls
new file mode 100644
index 0000000000..e0fb3c4a56
--- /dev/null
+++ b/macros/latex/contrib/cv4tw/cv4tw.cls
@@ -0,0 +1,138 @@
+%%
+
+\NeedsTeXFormat{LaTeX2e}
+\LoadClassWithOptions{article}
+\ProvidesClass{cv4tw}[2014/05/27 v0.2 LaTeX CV class, with assets, social networks, and customizable styles]
+\RequirePackage{newenviron}
+\RequirePackage{etoolbox}
+\RequirePackage{xcolor}
+%\RequirePackage{navigator}
+\RequirePackage{graphicx}
+\RequirePackage{xstring}
+\RequirePackage{fancyhdr}
+\RequirePackage{lastpage}
+\RequirePackage[hidelinks]{hyperref}
+%\RequirePackage{refcount}
+
+%
+% Quick and Dirty key values commands
+%
+\newcommand*{\qdprefix}{qd=}
+\newcommand*{\qdsetlength}[3]{
+ \expandafter\let\csname \qdprefix#2#1length\endcsname=\relax
+ \expandafter\def\csname \qdprefix#2#1length\endcsname{#3}
+}
+
+\newcommand*{\qdapplylength}[2]{
+ \ifcsname \qdprefix#2#1length\endcsname
+ \expandafter\setlength{\csname #2\endcsname}{\csname \qdprefix#2#1length\endcsname}
+ \else
+ \errmessage Warning : #1 not found
+ \fi
+}
+
+\newcommand*{\qdgetlength}[2]{
+ \ifcsname \qdprefix#2#1length\endcsname
+ \expandafter\csname \qdprefix#2#1length\endcsname
+ \else
+ \errmessage Warning : #1 not found
+ \fi
+}
+
+\newcommand*{\qdset}[2]{
+ \expandafter\let\csname \qdprefix#1\endcsname=\relax
+ \expandafter\def\csname \qdprefix#1\endcsname{#2}
+}
+\newcommand*{\qdif}[3]{\expandafter\ifcsname \qdprefix#1\endcsname#2\else#3\fi}
+\newcommand*{\qdget}[1]{\ifcsname \qdprefix#1\endcsname\expandafter\csname \qdprefix#1\endcsname\else\errmessage Warning : #1 not found\fi}
+\newcommand*{\qdgetunsafe}[1]{\expandafter\csname \qdprefix#1\endcsname}
+\newcommand*{\qdlink}[3]{\protect\href{#1\csname \qdprefix#2\endcsname#3}{\csname \qdprefix#2\endcsname}}
+
+%\title{}
+\newcommand*{\cvpicture}[1]{
+ \def\@cvpicture{#1}
+}
+\newcommand*{\academictitle}[1]{
+ \def\@cvacademictitle{#1}
+}
+\renewcommand*{\title}[1]{
+ \def\@cvtitle{#1}
+}
+\renewcommand*{\quote}[1]{
+ \def\@cvquote{#1}
+}
+\newcommand*{\firstname}[1]{
+ \def\@cvfirstname{#1}
+}
+\newcommand*{\lastname}[1]{
+ \def\@cvlastname{#1}
+}
+\newcommand*{\usetheme}[2][]{
+ %Load scheme if asked
+ \RequirePackage[#1]{cv4tw-scheme}
+ %Apply theme
+ \RequirePackage[]{cv4tw-theme-core}
+ \RequirePackage[]{cv4tw-theme-#2}
+}
+
+\newcommand*{\setmystyle}[2][]{\expandafter\qdset{mystyle#1}{#2}}
+\newcommand*{\mystyle}[1][]{\ignorespaces\qdget{mystyle#1}}
+\newcommand*{\setmylength}[3][]{\expandafter\qdsetlength{#1}{#2}{#3}}
+%\newcommand*{\getmylength}[2][]{\expandafter\qdgetlength{#1}{#2}}
+%\newcommand*{\applymylength}[2][]{\ignorespaces\qdapplylength{#1}{#2}}
+\raggedbottom
+\onecolumn
+\pagestyle{empty}
+
+\newcommand*{\setcvasset}[2][]{\expandafter\qdset{cvasset#1}{#2}}
+\newcommand*{\cvasset}[1][]{\qdget{cvasset#1}}
+\newcommand*{\ifcvasset}[3][]{\qdif{cvasset#1}{#2}{#3}}
+\newcommand*{\setcvcontactszone}[2][]{\expandafter\qdset{cvcontactszone#1}{#2}}
+\newcommand*{\cvcontactszone}[1][]{\qdget{cvcontactszone#1}}
+\newcommand*{\setcvcontact}[2][]{\expandafter\qdset{cvcontact#1}{#2}}
+\newcommand*{\cvcontact}[1][]{\qdget{cvcontact#1}}
+\newcommand*{\cvcontactlink}[1]{
+\IfEqCase{#1}{
+{email}{ \qdlink{mailto:}{cvcontact#1}{}}%
+{homepage}{ \qdlink{http://}{cvcontact#1}{}}%
+{homepagessl}{ \qdlink{https://}{cvcontact#1}{}}%
+{customhomepage}{ \qdlink{}{cvcontact#1}{}}%
+{vk}{ \qdlink{http://www.vk.com/}{cvcontact#1}{}}%
+{pinterest}{ \qdlink{http://www.pinterest.com/}{cvcontact#1}{}}%
+{linkedin}{ \qdlink{https://www.linkedin.com/in/}{cvcontact#1}{}}%
+{twitter}{ \qdlink{https://www.twitter.com/}{cvcontact#1}{}}%
+{github}{ \qdlink{https://www.github.com/}{cvcontact#1}{}}%
+{facebook}{ \qdlink{https://www.facebook.com/}{cvcontact#1}{}}%
+{googleplus}{ \qdlink{https://plus.google.com/}{cvcontact#1}{}}%
+}[{\qdget{cvcontact#1}}]
+}
+\newcommand*{\ifcvcontact}[3][]{\qdif{cvcontact#1}{#2}{#3}}
+
+\newcounter{assets}
+\setcounter{assets}{1}
+
+% Abstract commands, to be renew in theme package
+%
+\renewcommand*{\maketitle}[1]{ }
+\renewcommand*{\section}[1]{ }
+\renewcommand*{\subsection}[1]{ }
+\newcommand*{\story}[5]{ }
+\newcommand*{\renderasset}{ }
+\newcommand*{\renderassetifdefined}{ }
+\newcommand*{\rendercontact}{ }
+\newcommand*{\rendercontactifdefined}{ }
+
+\newenvironment{fields}[3]{ }{ }
+\newenvironment{missions}{ }{ }
+\newenvironment{skills}[1]{ }{ }
+
+\makeatletter
+\newcommand{\colorletifnotdef}[2]{%
+ \@ifundefined{\string\color@#1}{\colorlet{#1}{#2}}{}}
+\newcommand{\definecolorifnotdef}[3]{%
+ \@ifundefined{\string\color@#1}{\definecolor{#1}{#2}{#3}}{}}
+\makeatother
+
+
+
+\endinput
diff --git a/macros/latex/contrib/cv4tw/examples/sample-empty.tex b/macros/latex/contrib/cv4tw/examples/sample-empty.tex
new file mode 100644
index 0000000000..b1c2c73e0d
--- /dev/null
+++ b/macros/latex/contrib/cv4tw/examples/sample-empty.tex
@@ -0,0 +1,58 @@
+\documentclass[a4paper,11pt]{cv4tw}% options are inherited from article class, and automatically given to this class
+% Available theme : simple, compact, sharp
+% Available scheme : celadon, tan, gray, purple, teal, minuit
+%\usetheme[optional scheme]{theme}
+\usetheme[teal]{sharp}
+%\usetheme[celadon]{simple}
+%\usetheme{compact}
+% Not happy with the default style, or bullet ? Define yours !
+%\setmystyle[missionbullet]{\color{soft}$>$~~}
+%\setmystyle[assetbullet]{\color{icons}\faBolt}
+\usepackage[utf8]{inputenc}
+%\academictitle{}
+\firstname{}
+\lastname{}
+%\quote{}
+\cvpicture{./samplepic.jpg}
+% Add up to 10 assets (0 to 9)
+\setcvasset[0]{}
+\setcvasset[1]{}
+\setcvasset[2]{}
+\setcvasset[3]{}
+%
+\setcvcontact[email]{}
+\setcvcontact[homepage]{}
+\setcvcontact[cellphone]{}
+%\setcvcontact[phone]{}
+%\setcvcontact[fax]{}
+%\setcvcontact[skype]{} not yet available
+%\setcvcontact[vk]{}
+%\setcvcontact[pinterest]{}
+%\setcvcontact[facebook]{}
+%\setcvcontact[googleplus]{}
+%\setcvcontact[linkedin]{}
+%\setcvcontact[twitter]{}
+%\setcvcontact[github]{}
+%\setcvcontact[spokenlanguages]{}
+%\setcvcontact[age]{}
+%\setcvcontact[address]{}
+\title{Dream job}
+\begin{document}
+\section{Experience}
+\cvjob{Job}{Employer}{dates\\location}
+{Buzz\\words}
+ { Job description
+ \begin{cvmissions}
+ \item Mission 1
+ \item Mission 2
+ \item ...
+ \end{cvmissions}
+}
+\section{Education}
+\cveducation{Diploma}{School}{dates\\location}{Buzz\\words}{education description}
+\section{Skills}
+\begin{cvskills} {Language}
+\cvskill{French}{ Mother tongue}
+\cvskill{English}{ Fluent}
+\end{cvskills}
+\end{document}
diff --git a/macros/latex/contrib/cv4tw/examples/sample-jules-verne-compact.pdf b/macros/latex/contrib/cv4tw/examples/sample-jules-verne-compact.pdf
new file mode 100644
index 0000000000..bda8855d1b
--- /dev/null
+++ b/macros/latex/contrib/cv4tw/examples/sample-jules-verne-compact.pdf
Binary files differ
diff --git a/macros/latex/contrib/cv4tw/examples/sample-jules-verne-compact.tex b/macros/latex/contrib/cv4tw/examples/sample-jules-verne-compact.tex
new file mode 100644
index 0000000000..05e59a7826
--- /dev/null
+++ b/macros/latex/contrib/cv4tw/examples/sample-jules-verne-compact.tex
@@ -0,0 +1,90 @@
+\documentclass[a4paper,11pt]{cv4tw}% options are inherited from article class, and automatically given to this class
+%\usetheme[optional scheme]{theme}
+\usetheme{compact}
+% Not happy with the default style, or bullet ? Define yours !
+\setmystyle[missionbullet]{\color{soft}$>$~~}
+\setmystyle[assetbullet]{\color{icons}\faBook}
+\setmystyle[fieldratefull]{\color{icons}\faCircle}
+\setmystyle[fieldrateempty]{\color{icons}\faCircleBlank}
+% If you need a custom contact, you can define a bullet here :
+\setmystyle[custom0bullet]{\color{icons}\faBolt}
+\usepackage[utf8]{inputenc}
+%\academictitle{PhD}
+\firstname{Jules}
+\lastname{Verne}
+\quote{\itshape ``En France, on exhibe des farceurs \'{e}trangers, et \`{a} l'\'{e}tranger, des farceurs fran\c cais~!''}
+
+\cvpicture{./samplepic.jpg}
+% Add up to 10 assets (0 to 9)
+\setcvasset[0]{More than \emph{50 novels} written}
+\setcvasset[1]{\emph{SciFi} pioneer}
+\setcvasset[2]{Designed \emph{Space travels}}
+\setcvasset[3]{\emph{TOP5} most-translated author}
+%
+\setcvcontact[custom0]{In progress\ldots}
+\setcvcontact[email]{jules.verne@voyages.ext}
+\setcvcontact[homepagessl]{www.julesverne.ext}
+\setcvcontact[cellphone]{+33 9 08 02 18 28}
+\setcvcontact[phone]{+33 9 48 23 48 76}
+\setcvcontact[fax]{+33 9 08 02 18 88}
+%\setcvcontact[skype]{} not yet available
+%\setcvcontact[vk]{}
+%\setcvcontact[pinterest]{}
+%\setcvcontact[facebook]{}
+\setcvcontact[googleplus]{+JulesVerne}
+\setcvcontact[linkedin]{JulesVerne}
+\setcvcontact[twitter]{@JulesVerne}
+\setcvcontact[github]{JulesVerne}
+\setcvcontact[spokenlanguages]{fr,en,eo}
+\setcvcontact[age]{February 8th 1828}
+\setcvcontact[address]{44, boulevard Longueville\\80000 Amiens\\France}
+\title{Novelist}
+\begin{document}
+\section{Experience}
+\story{Town councilor}{Mairie d'Amiens}{1888-1905\\Amiens, France}
+{Law\\Education}
+ { Championed several improvements and served for fifteen years
+ \begin{missions}
+ \item Voting critical decree for the town
+ \item Opening of Amiens circus
+ \item Initiative of Amiens museum
+ \end{missions}
+}
+\story{Novelist}{\'{E}dition Hertzel}{since 1862\\Paris, France}
+ {Science Fiction\\Adventure\\Journey\\Voyages Extraordinaires}
+ {Here is a summary of my main realisations :
+ \begin{missions}
+ \item Journey to the Center of the Earth
+ \item From the Earth to the Moon
+ \item Twenty Thousand Leagues Under the Sea
+ \item Around the World in Eighty Days
+ \item The Mysterious Island
+ \end{missions}
+}
+\section{Education}
+\story{Law License}{Universit\'{e} de Paris}{1848--1851\\Paris, France}{}{}
+\section{Skills}
+\begin{skills} {Language}
+\skill[French]{ Mother tongue}
+\skill[English]{ Fluent}
+\skill[Esperanto]{ Fluent}
+\skill[Dutch]{ Notions}
+\skill[German]{ Notions}
+\end{skills}
+\begin{skills}{Management}
+\skill[Museum]{in Amiens}
+\end{skills}
+\begin{skills}{Writing}
+\skill[Novels]{more than 60, mainly in Adventure and Science Fiction genres}
+\skill[Songs and Poems]{more than 180 in various genres}
+\end{skills}
+% Argument for fields env. are title, cols count and max rate
+\begin{fields}{Literary genre}{2}{5}
+\field{Science-Fiction}{5}
+\field{Adventure}{5}
+\field{Essay}{3}
+\field{Suspense}{3}
+\field{Thriller}{2}
+\field{Romance}{0}
+\end{fields}
+\end{document}
diff --git a/macros/latex/contrib/cv4tw/examples/sample-jules-verne-sharp.pdf b/macros/latex/contrib/cv4tw/examples/sample-jules-verne-sharp.pdf
new file mode 100644
index 0000000000..c90bab67f3
--- /dev/null
+++ b/macros/latex/contrib/cv4tw/examples/sample-jules-verne-sharp.pdf
Binary files differ
diff --git a/macros/latex/contrib/cv4tw/examples/sample-jules-verne-sharp.tex b/macros/latex/contrib/cv4tw/examples/sample-jules-verne-sharp.tex
new file mode 100644
index 0000000000..4bbc457113
--- /dev/null
+++ b/macros/latex/contrib/cv4tw/examples/sample-jules-verne-sharp.tex
@@ -0,0 +1,90 @@
+\documentclass[a4paper,11pt]{cv4tw}% options are inherited from article class, and automatically given to this class
+%\usetheme[optional scheme]{theme}
+\usetheme[minuit]{sharp}
+% Not happy with the default style, or bullet ? Define yours !
+\setmystyle[missionbullet]{\color{soft}$>$~~}
+\setmystyle[assetbullet]{\color{icons}\faBook}
+\setmystyle[fieldratefull]{\color{icons}\faCircle}
+\setmystyle[fieldrateempty]{\color{icons}\faCircleBlank}
+% If you need a custom contact, you can define a bullet here :
+\setmystyle[custom0bullet]{\color{icons}\faBolt}
+\usepackage[utf8]{inputenc}
+%\academictitle{PhD}
+\firstname{Jules}
+\lastname{Verne}
+\quote{\itshape ``En France, on exhibe des farceurs \'{e}trangers, et \`{a} l'\'{e}tranger, des farceurs fran\c cais~!''}
+
+\cvpicture{./samplepic.jpg}
+% Add up to 10 assets (0 to 9)
+\setcvasset[0]{More than \emph{50 novels} written}
+\setcvasset[1]{\emph{SciFi} pioneer}
+\setcvasset[2]{Designed \emph{Space travels}}
+\setcvasset[3]{\emph{TOP5} most-translated author}
+%
+\setcvcontact[custom0]{In progress\ldots}
+\setcvcontact[email]{jules.verne@voyages.ext}
+\setcvcontact[homepagessl]{www.julesverne.ext}
+\setcvcontact[cellphone]{+33 9 08 02 18 28}
+\setcvcontact[phone]{+33 9 48 23 48 76}
+\setcvcontact[fax]{+33 9 08 02 18 88}
+%\setcvcontact[skype]{} not yet available
+%\setcvcontact[vk]{}
+%\setcvcontact[pinterest]{}
+%\setcvcontact[facebook]{}
+\setcvcontact[googleplus]{+JulesVerne}
+\setcvcontact[linkedin]{JulesVerne}
+\setcvcontact[twitter]{@JulesVerne}
+\setcvcontact[github]{JulesVerne}
+\setcvcontact[spokenlanguages]{fr,en,eo}
+\setcvcontact[age]{February 8th 1828}
+\setcvcontact[address]{44, boulevard Longueville\\80000 Amiens\\France}
+\title{Novelist}
+\begin{document}
+\section{Experience}
+\story{Town councilor}{Mairie d'Amiens}{1888-1905\\Amiens, France}
+{Law\\Education}
+ { Championed several improvements and served for fifteen years
+ \begin{missions}
+ \item Voting critical decree for the town
+ \item Opening of Amiens circus
+ \item Initiative of Amiens museum
+ \end{missions}
+}
+\story{Novelist}{\'{E}dition Hertzel}{since 1862\\Paris, France}
+ {Science Fiction\\Adventure\\Journey\\Voyages Extraordinaires}
+ {Here is a summary of my main realisations :
+ \begin{missions}
+ \item Journey to the Center of the Earth
+ \item From the Earth to the Moon
+ \item Twenty Thousand Leagues Under the Sea
+ \item Around the World in Eighty Days
+ \item The Mysterious Island
+ \end{missions}
+}
+\section{Education}
+\story{Law License}{Universit\'{e} de Paris}{1848--1851\\Paris, France}{}{}
+\section{Skills}
+\begin{skills} {Language}
+\skill[French]{ Mother tongue}
+\skill[English]{ Fluent}
+\skill[Esperanto]{ Fluent}
+\skill[Dutch]{ Notions}
+\skill[German]{ Notions}
+\end{skills}
+\begin{skills}{Management}
+\skill[Museum]{in Amiens}
+\end{skills}
+\begin{skills}{Writing}
+\skill[Novels]{more than 60, mainly in Adventure and Science Fiction genres}
+\skill[Songs and Poems]{more than 180 in various genres}
+\end{skills}
+% Argument for fields env. are title, cols count and max rate
+\begin{fields}{Literary genre}{3}{5}
+\field{Science-Fiction}{5}
+\field{Adventure}{5}
+\field{Essay}{3}
+\field{Suspense}{3}
+\field{Thriller}{2}
+\field{Romance}{0}
+\end{fields}
+\end{document}
diff --git a/macros/latex/contrib/cv4tw/examples/sample-jules-verne-simple.pdf b/macros/latex/contrib/cv4tw/examples/sample-jules-verne-simple.pdf
new file mode 100644
index 0000000000..dbc3a70676
--- /dev/null
+++ b/macros/latex/contrib/cv4tw/examples/sample-jules-verne-simple.pdf
Binary files differ
diff --git a/macros/latex/contrib/cv4tw/examples/sample-jules-verne-simple.tex b/macros/latex/contrib/cv4tw/examples/sample-jules-verne-simple.tex
new file mode 100644
index 0000000000..3a46704488
--- /dev/null
+++ b/macros/latex/contrib/cv4tw/examples/sample-jules-verne-simple.tex
@@ -0,0 +1,81 @@
+\documentclass[a4paper,11pt]{cv4tw}% options are inherited from article class, and automatically given to this class
+%\usetheme[optional scheme]{theme}
+\usetheme[teal]{simple}
+% Not happy with the default style, or bullet ? Define yours !
+\setmystyle[missionbullet]{\color{soft}$>$~~}
+% If you need a custom contact, you can define a bullet here :
+\setmystyle[custom0bullet]{\color{icons}\faBolt}
+\usepackage[utf8]{inputenc}
+%\academictitle{PhD}
+\firstname{Jules}
+\lastname{Verne}
+\quote{\itshape ``En France, on exhibe des farceurs \'{e}trangers, et \`{a} l'\'{e}tranger, des farceurs fran\c cais~!''}
+
+\cvpicture{./samplepic.jpg}
+% Add up to 10 assets (0 to 9)
+\setcvasset[0]{More than \emph{50 novels} written}
+\setcvasset[1]{\emph{SciFi} pioneer}
+\setcvasset[2]{Designed \emph{Space travels}}
+\setcvasset[3]{\emph{TOP5} most-translated author}
+%
+\setcvcontact[custom0]{In progress\ldots}
+\setcvcontact[email]{jules.verne@voyages.ext}
+\setcvcontact[homepagessl]{www.julesverne.ext}
+\setcvcontact[cellphone]{+33 9 08 02 18 28}
+\setcvcontact[phone]{+33 9 48 23 48 76}
+%\setcvcontact[skype]{} not yet available
+%\setcvcontact[vk]{}
+%\setcvcontact[pinterest]{}
+%\setcvcontact[facebook]{}
+\setcvcontact[linkedin]{JulesVerne}
+\setcvcontact[github]{JulesVerne}
+\title{Novelist}
+\begin{document}
+\section{Experience}
+\story{Town councilor}{Mairie d'Amiens}{1888-1905\\Amiens, France}
+{Law\\Education}
+ { Championed several improvements and served for fifteen years
+ \begin{missions}
+ \item Voting critical decree for the town
+ \item Opening of Amiens circus
+ \item Initiative of Amiens museum
+ \end{missions}
+}
+\story{Novelist}{\'{E}dition Hertzel}{since 1862\\Paris, France}
+ {Science Fiction\\Adventure\\Journey\\Voyages Extraordinaires}
+ {Here is a summary of my main realisations :
+ \begin{missions}
+ \item Journey to the Center of the Earth
+ \item From the Earth to the Moon
+ \item Twenty Thousand Leagues Under the Sea
+ \item Around the World in Eighty Days
+ \item The Mysterious Island
+ \end{missions}
+}
+\section{Education}
+\story{Law License}{Universit\'{e} de Paris}{1848--1851\\Paris, France}{}{}
+\section{Skills}
+\begin{skills} {Language}
+\skill[French]{ Mother tongue}
+\skill[English]{ Fluent}
+\skill[Esperanto]{ Fluent}
+\skill[Dutch]{ Notions}
+\skill[German]{ Notions}
+\end{skills}
+\begin{skills}{Management}
+\skill[Museum]{in Amiens}
+\end{skills}
+\begin{skills}{Writing}
+\skill[Novels]{more than 60, mainly in Adventure and Science Fiction genres}
+\skill[Songs and Poems]{more than 180 in various genres}
+\end{skills}
+% Argument for fields env. are title, cols count and max rate
+\begin{fields}{Literary genre}{3}{5}
+\field{Science-Fiction}{5}
+\field{Adventure}{5}
+\field{Essay}{3}
+\field{Suspense}{3}
+\field{Thriller}{2}
+\field{Romance}{0}
+\end{fields}
+\end{document}
diff --git a/macros/latex/contrib/cv4tw/examples/samplepic.jpg b/macros/latex/contrib/cv4tw/examples/samplepic.jpg
new file mode 100644
index 0000000000..e438caf008
--- /dev/null
+++ b/macros/latex/contrib/cv4tw/examples/samplepic.jpg
Binary files differ