From a7b8fe1003c960fbd27086146bb341a6ddae788a Mon Sep 17 00:00:00 2001 From: Karl Berry Date: Mon, 21 May 2012 23:58:58 +0000 Subject: mycv (21may12) git-svn-id: svn://tug.org/texlive/trunk@26558 c570f23f-e606-0410-a88d-b1316a301751 --- Master/texmf-dist/doc/latex/mycv/CHANGELOG | 19 +- .../doc/latex/mycv/Doc/Chapters/Fundamentals.tex | 180 --- .../doc/latex/mycv/Doc/Chapters/Usage.tex | 525 -------- .../latex/mycv/Doc/FrontBackMatter/Contents.tex | 8 - .../Doc/FrontBackMatter/Titlepage+Abstract.tex | 63 - Master/texmf-dist/doc/latex/mycv/Doc/mycv-decs.def | 110 -- .../texmf-dist/doc/latex/mycv/Doc/mycv-macros.sty | 301 ----- Master/texmf-dist/doc/latex/mycv/Doc/mycv.tex | 1056 ++++++++++++++++- .../mycv/Examples/Contents/contents_partA.tex | 4 - .../mycv/Examples/Contents/contents_partB.tex | 4 - .../mycv/Examples/Contents/contents_partC.tex | 9 - .../latex/mycv/Examples/Contents/footer_sign.tex | 4 - .../mycv/Examples/Contents/header_contacts.tex | 26 - .../latex/mycv/Examples/Contents/header_title.tex | 5 - .../latex/mycv/Examples/Models/model-common.tex | 15 - .../latex/mycv/Examples/Models/model-layouts.tex | 77 -- .../texmf-dist/doc/latex/mycv/Examples/Notes.txt | 29 +- .../latex/mycv/Examples/mycv-example-common.tex | 31 - .../doc/latex/mycv/Examples/mycv-example-dpl.pdf | Bin 83722 -> 83550 bytes .../doc/latex/mycv/Examples/mycv-example-dpl2.pdf | Bin 83925 -> 83749 bytes .../doc/latex/mycv/Examples/mycv-example-main.tex | 9 - .../doc/latex/mycv/Examples/mycv-example-spl.pdf | Bin 83505 -> 83326 bytes .../doc/latex/mycv/Examples/mycv-example-spl2.pdf | Bin 43736 -> 43560 bytes .../doc/latex/mycv/Examples/mycv-examples.dtx | 324 +++++ Master/texmf-dist/doc/latex/mycv/README | 61 +- Master/texmf-dist/doc/latex/mycv/checksum.pl | 78 ++ Master/texmf-dist/doc/latex/mycv/mycv.pdf | Bin 313081 -> 313070 bytes .../doc/latex/mycv/mycv_split_contents.pl | 12 +- Master/texmf-dist/source/latex/mycv/mycv.dtx | 1247 ++++++++++++++++++++ Master/texmf-dist/source/latex/mycv/mycv.ins | 90 ++ Master/texmf-dist/tex/latex/mycv/mycv.cls | 91 +- Master/texmf-dist/tex/latex/mycv/mycv_base.def | 114 +- Master/texmf-dist/tex/latex/mycv/mycv_dec.sty | 111 +- Master/texmf-dist/tex/latex/mycv/mycv_misc.def | 69 +- Master/texmf-dist/tex/latex/mycv/mycv_style.sty | 128 +- Master/texmf-dist/tex/latex/mycv/mycv_version.def | 26 +- 36 files changed, 3149 insertions(+), 1677 deletions(-) delete mode 100644 Master/texmf-dist/doc/latex/mycv/Doc/Chapters/Fundamentals.tex delete mode 100644 Master/texmf-dist/doc/latex/mycv/Doc/Chapters/Usage.tex delete mode 100644 Master/texmf-dist/doc/latex/mycv/Doc/FrontBackMatter/Contents.tex delete mode 100644 Master/texmf-dist/doc/latex/mycv/Doc/FrontBackMatter/Titlepage+Abstract.tex delete mode 100644 Master/texmf-dist/doc/latex/mycv/Doc/mycv-decs.def delete mode 100644 Master/texmf-dist/doc/latex/mycv/Doc/mycv-macros.sty delete mode 100644 Master/texmf-dist/doc/latex/mycv/Examples/Contents/contents_partA.tex delete mode 100644 Master/texmf-dist/doc/latex/mycv/Examples/Contents/contents_partB.tex delete mode 100644 Master/texmf-dist/doc/latex/mycv/Examples/Contents/contents_partC.tex delete mode 100644 Master/texmf-dist/doc/latex/mycv/Examples/Contents/footer_sign.tex delete mode 100644 Master/texmf-dist/doc/latex/mycv/Examples/Contents/header_contacts.tex delete mode 100644 Master/texmf-dist/doc/latex/mycv/Examples/Contents/header_title.tex delete mode 100644 Master/texmf-dist/doc/latex/mycv/Examples/Models/model-common.tex delete mode 100644 Master/texmf-dist/doc/latex/mycv/Examples/Models/model-layouts.tex delete mode 100644 Master/texmf-dist/doc/latex/mycv/Examples/mycv-example-common.tex delete mode 100644 Master/texmf-dist/doc/latex/mycv/Examples/mycv-example-main.tex create mode 100644 Master/texmf-dist/doc/latex/mycv/Examples/mycv-examples.dtx create mode 100644 Master/texmf-dist/doc/latex/mycv/checksum.pl create mode 100644 Master/texmf-dist/source/latex/mycv/mycv.dtx create mode 100644 Master/texmf-dist/source/latex/mycv/mycv.ins (limited to 'Master/texmf-dist') diff --git a/Master/texmf-dist/doc/latex/mycv/CHANGELOG b/Master/texmf-dist/doc/latex/mycv/CHANGELOG index 104a3221c90..f24e42e0fe5 100644 --- a/Master/texmf-dist/doc/latex/mycv/CHANGELOG +++ b/Master/texmf-dist/doc/latex/mycv/CHANGELOG @@ -59,4 +59,21 @@ Sun May 13 18:53:30 CEST 2012 -- Version <1.5.5> fix its english (as far as I can do that). - [c] Other minor changes. \ No newline at end of file + [c] Other minor changes. + +================================================ +Sun May 20 21:32:11 CEST 2012 -- Version <1.5.6> +================================================ + + [c] Changed the way of distribution of the + package. Now it comes out with two dtx + files (created automatically) for the + class's sources and examples. + + [c] Merged all the files of the doc into + one single file (done automatically). + In the file 'mycv.dtx' is explained + why a dtx was not used for the doc. + + [+] Added a Perl script (checksum.pl) to + check the integrity of the main files. \ No newline at end of file diff --git a/Master/texmf-dist/doc/latex/mycv/Doc/Chapters/Fundamentals.tex b/Master/texmf-dist/doc/latex/mycv/Doc/Chapters/Fundamentals.tex deleted file mode 100644 index 13e080268ea..00000000000 --- a/Master/texmf-dist/doc/latex/mycv/Doc/Chapters/Fundamentals.tex +++ /dev/null @@ -1,180 +0,0 @@ -%********************************************************* -\chapter{Fundamentals} -\quotes[1973]{ - ``Computer programming is an art, because it applies - accumulated knowledge to the world, because it - requires skill and ingenuity, and especially because - it produces objects of beauty'' -}{Knuth} -%********************************************************* -\ifparchment\begin{parchment}\fi -\section{Introduction} - -The main goal of this class (\classname) is to give support for creating \textit{curriculum -vit\ae{}} (\CV) with different layouts, allowing easy switching among them. -%That is primarily the goal this class focus on. -The class also provides basic support for using the \textit{TikZ} decorations and defines a bunch -of commands for managing the contents of a \CV, though that is not its primary goal. -%\classname, in fact, mainly focus on switching from different curriculum layouts, -%rather than handling the curriculum contents. -On \keyword{CTAN} archives, there are available various \CV packages more -\textit{contents-oriented}, as it were, and they may be used together with this class. -%providing missing contents functionality. -Before starting to describe the class more in details, it goes without saying that any advice or -constructive criticism is greatly appreciated. - -\section{Class files} -The class \classname is composed by six files. A short brief of each one is given here: -\squishlist - \item \ctext{mycv.cls} - \begin{myindent} - it is the main file and, basically, handles the class options~\myref{sec:class-options} as - well as the inclusion of all other files, except for \textit{mycv\_version.def}; - \end{myindent} - \item \ctext{mycv\_base.def} - \begin{myindent} - it contains all the commands and definitions dealing with the layout components of a - \CV~\myref{sec:layout-components}: it is the core file; - \end{myindent} - \item \ctext{mycv\_style.sty} - \begin{myindent} - it contains the default style commands~\myref{sub:style-commands} provided by the class: if - the default style is not used, %~\myref{sec:class-options} - this file will not be included by \textit{mycv.cls}; - \end{myindent} - \item \ctext{mycv\_dec.sty} - \begin{myindent} - it contains the decoration commands~\myref{sub:decoration-commands} provided by the class: if - decorations are not enabled% - %~\myref{sec:class-options} - , this file will not be included by \textit{mycv.cls}; - \end{myindent} - \item \ctext{mycv\_misc.def}\hspace{5pt}and\hspace{5pt}\ctext{mycv\_version.def} - \begin{myindent} - they respectively contain some miscellaneous commands and the version string. - \end{myindent} -\squishend - -\section {Layout components} -\label{sec:layout-components} - -This class considers a \textit{curriculum vit\ae{}} as logically divided into three main components: -\textit{header}, \textit{body} and \textit{footer}. -To each of these ones, a list, that basically contains some sub-components, is associated; files -with the \CV contents are also considered sub-components. -For these reasons, we can actually say that \classname uses a sort of \textit{list-driven} approach. - -\subsection{Main components} - -\classname recognizes the following three lists that, for all intends and purposes, are a concrete -representation of the main logical components: - -\bigskip -\begin{myindent} -\textbf{headerlayoutlist},\hspace{5pt}\textbf{bodylayoutlist},\hspace{5pt}\textbf{footerlayoutlist}. -\end{myindent} - -\bigskip -It is mandatory, for the correct behavior of the class, to not change the above list's names. In -the case a component is not required, the relative list may be omitted: for example, if a \CV does -not have a footer component, the list \textit{footerlayoutlist} is not strictly necessary.\\ -What follows is an example of a list definition:\codeskip -\begin{latexcode}[numbers=none] -\def\headerlayoutlist{sub-component1,sub-component2,[...]} -\end{latexcode} - -\subsection{Sub-components} - -We previously said that \classname is based on three main components (\textit{header}, -\textit{body} and \textit{footer}) and that each of these ones are represented by a list. A list -(therefore a main component), in turn, may have one or more sub-component, separated by -a comma, which are identified as follows: - -\squishlist[0pt] - \item \texttt{\ctext{Main}[Header|Body|Footer]\ctext{PageBegin}}; - \item \texttt{\ctext{Main}[Header|Body|Footer]\ctext{PageEnd}}; - \item \texttt{\ctext[blue]{Sub}[Header|Body|Footer]\ctext[blue]{PageBegin}}; - \item \texttt{\ctext[blue]{Sub}[Header|Body|Footer]\ctext[blue]{PageEnd}}; - \item \texttt{\ctext[orange]{filename}} with the (partial) \CV contents. -\squishend\sep - -Both ``\verb|Main[...]PageBegin|'' and ``\verb|Sub[...]PageBegin|'' are \textit{minipages}; the -difference is that the former have a default width of $100\%$ of the \textit{textwidth} -macro, while that value is $44\text{-}45\%$ for the latter (it depends on the components type). -% (for these notes does not really matter which is which). - -A \textit{filename} sub-component may either be the name of a file or a macro with it: -depending on the case, the syntax slightly changes.%~\myreftwo{subsub:component-options}. - -\subsubsection{Sub-components options} -\label{subsub:component-options} - -Each sub-component, \textit{filename} included, may have associated options, with colons -as separators, so that the syntax is something like:\codeskip -\begin{latexcode}[numbers=none] - $sub-component$:option1:option2:[...] -\end{latexcode} - -If truth be told, each option already has its own separator, so colons are not strictly necessary -and, as a separator, any other symbol may be used. If wanted, it is also possible to not have any -separator at all, but this is not recommended if only for a matter of clarity. - -\medskip % in modo che si inizi nella pagina successiva -Options for a sub-component are of different types, as listed below: - -\def\tmpcolor{gray} -\squishlist - \item <\optname{[pre\textbar post]cmd}\verb|:command1:command2:[...]|>\optdsep - a sequence of commands is executed \textit{before}/\textit{after} the - beginning or ending of a sub-component (\textit{filename} included). - A command may have a sequence of arguments, separated by ``='', - each of which can either be \textit{optional} or \textit{mandatory}. - In total, the class recognizes four types of arguments: - %, as it is possible to have $3$ different kinds of optional ones: - \squishlist[0pt] - \item \ctext[blue]{arg} (mandatory argument equivalent to \{arg\}); - \item \ctext[blue]{@arg} (optional argument equivalent to [arg]); - \item \ctext[blue]{!arg} (optional argument equivalent to ); - \item \ctext[blue]{*} (optional argument equivalent to *). - \squishend - \item /\optname{m[l\textbar r]}\verb||/\hfill\opthsep{\small($1$)}\optvsep - /\optname{endm[l\textbar r]}/\hfill\opthsep{\small($2$)}\optdsep - changes the \textit{left}/\textit{right} margin of a text portion of a document, between - option {\small($1$)} and option {\small($2$)}; in a typical usage, these options are - associated with different sub-components, such as \verb|*PageBegin| and \verb|*PageEnd|. - Each time the option {\small($1$)} is used, the option {\small($2$)} is also required - for ending the margin modification, except for the \textit{filename} - sub-component that automatically does that. Example (it moves the left margin to the - right of $0.2$in): - \begin{myindent} - \texttt{% - \ctext[\tmpcolor]{% - % \% moves the left margin to the right of $0.2$in\\ - SubBodyPageBegin:\\ - \omissis\\ - SubBodyPageEnd:}% - }. - \end{myindent} - \item \verb||\optdsep - sets the width of a sub-component in terms of \textit{textwidth} percentage. - This option only exists for ``\verb|*PageBegin|`` sub-components. Example: - \ctext[\tmpcolor]{\texttt{SubBodyPageBegin:<0.48>}}. - \item /\optname{pagesize}\verb||/\optdsep - sets the width of a sub-component, as the option above, but in terms of absolute reference - (instead of \textit{textwidth} percentage). Also this option only exists for - ``\verb|*PageBegin|`` sub-components. Example: - \ctext[\tmpcolor]{\texttt{SubBodyPageBegin:/pagesize5.5in/}}. - \item /\optname{pagebreak}/\optdsep - permits to break two contiguous sub-components, aligning them one above the other, instead - of side by side (that is the default behavior). This option only exists for - ``\verb|*PageEnd|'' sub-components. - Example: \ctext[\tmpcolor]{\texttt{SubBodyPageEnd:/pagebreak/}}. - \item \optname{*}macroname\optvsep - filename\optname{@}\optdsep - \argname{macroname} is a macro expanding to the name of a file (with the \CV contents), - while \argname{filename} is directly the name itself (the only \textit{non-alphanumeric} - characters allowed there are ``\_'' and ``-''). - Example: \ctext[\tmpcolor]{\texttt{*headerfile}}, where the macro \textit{headerfile} - is somewhere defined. -\squishend -\ifparchment\end{parchment}\fi \ No newline at end of file diff --git a/Master/texmf-dist/doc/latex/mycv/Doc/Chapters/Usage.tex b/Master/texmf-dist/doc/latex/mycv/Doc/Chapters/Usage.tex deleted file mode 100644 index 027ae60948b..00000000000 --- a/Master/texmf-dist/doc/latex/mycv/Doc/Chapters/Usage.tex +++ /dev/null @@ -1,525 +0,0 @@ -% ***************************************************************************** -\chapter{Usage} -\quotes{% - “There are two ways to write error-free programs; only the third one works”% -}{Alan J. Perlis} -% ***************************************************************************** -\ifparchment\begin{parchment}\fi -\section{Requirements} -When \textit{decorations} are not enabled and the \textit{default style} is not used, \classname -has %, in addiction to \ctLaTeXe{} obviously, -the following requirements:\codeskip -\begin{latexcode}[numbers=none] -\RequirePackage{kvoptions} % for class options with key-value format -\RequirePackage{etextools} % for lists and other useful tools -\RequirePackage{ifthen} % for the \ifthenelse command -\RequirePackage{xstring} % for string utilities -\RequirePackage{svn-prov} % for file info extracted from SVN -\RequirePackage{hyperref} % for hypertext links and other stuff -\end{latexcode} - -If the default style is used, by means of the class option -``\textit{style}''~\myref{sec:class-options}, this class requires (in addiction to -\textit{hyperref} and \textit{svn-prov}):\codeskip -\begin{latexcode}[numbers=none] -\RequirePackage{xparse} % for commands with multiple default arguments -\RequirePackage{pifont} % for the 'ding' style (itemize environment) -\RequirePackage{titlesec} % for title format and spacing -\RequirePackage{fancyhdr} % for custom headers and footers -\RequirePackage{xcolor} % for colors -\RequirePackage{calligra} % for the calligra font -\RequirePackage{times} % for the times font -\RequirePackage{marvosym} % symbols - phone -\RequirePackage{amssymb} % symbols - email -\end{latexcode} - -Finally, if decorations are enabled, by using the class -option ``\textit{withDec}``~\myref{sec:class-options}, this class also requires (in addiction -to \textit{svn-prov}, \textit{xparse} and \textit{xstring}):\codeskip -\begin{latexcode}[firstnumber=1,numbers=none] -\RequirePackage{tikz} % for graphics -\end{latexcode} - -\section{Class options} -\label{sec:class-options} - -\classname can use any option supported by the \textit{article} class, on which is based. In -addiction, it provides the following options: -\def\tmpcolor{brown} -\squishlist -\item {\color{red}language=<\argname[\tmpcolor]{string}>} - \begin{myindent} - string language to pass to the \textit{babel} package for the document (\CV) language; - \end{myindent} -\item {\color{red}cntdir=<\argname[\tmpcolor]{dirname}>} - \begin{myindent} - sets the directory name where \classname will search for files with the \CV contents.\\ - The default one is ``Contents''; - \end{myindent} -\item {\color{red}style=<\argname[\tmpcolor]{filemane}>} - \begin{myindent} - specifies the file name (with or without the extension ``.sty'') containing the style commands. - By default, the file \textit{mycv\_style.sty}, provided by the class itself, is that used. - It is also possible to not use any style file by specifying the value ``none'' as file name; - \end{myindent} -\item {\color{red}mdlname=<\argname[\tmpcolor]{name}>} - \begin{myindent} - registers a name for the layout (model) intended to be used: in this way is possible, for - example, to select the appropriate layout configuration file or a layout-specific portion of - code; - \end{myindent} -\item {\color{red}withDec} - \begin{myindent} - enables support for decorations (provided by the \textit{TikZ} package). - \end{myindent} -\squishend - -\section{Class commands} - -Here follows the complete list of the commands provided by \classname. The style commands -%~\myref{sub:style-commands} -are only available if the class option ``\textit{style}'' was used; %~\myref{sec:class-options}. -the same goes for the decoration commands, -%~\myref{sub:decoration-commands} -which need the class option ``\textit{withDec}''.\\ -In the following text of this section, when present, the form {\color{blue}\omissis} (or -{\color{blue}<...>}) indicates the default choice for an optional argument of a command. - -\subsection{Conditionals} - -\squishlist -\item \cmdname{ifoption} - \marg{option}\arghsep - \marg{true}\arghsep\marg{false}\argvsep - \cmdname{ifmodel} - \marg{mdlname}\arghsep - \marg{true}\arghsep\marg{false}\cmddsep - \textit{ifoption} checks whether \argname{option} was used, - while \textit{ifmodel} checks whether \argname{mdlname} was registered in the class; then both - commands use the appropriate \argname{true} or \argname{false} block of code. -\squishend - -\subsection{Default style} -\label{sub:style-commands} - -\squishlist -\item \cmdname{mysectionTitleFormat} - \begin{myindent} - \dargone{titlerule-color-above}{myheadingscolor}\argvsep - \dargone{titlerule-color-below}{myheadingscolor} - \end{myindent}\cmddsep - \argname{titlerule-color-above} is the color for the rule above a section name, while - \argname{titlerule-color-below} is for the one below. \textit{myheadingscolor} is the default - color. -\item \cmdname{mysectionTitleSpacing} - \begin{myindent} - \dargone{left}{$0\text{pt}$}\arghsep - \dargone{beforesep}{$0\text{pt}$}\arghsep - \dargone{aftersep}{$5\text{pt}$} - \end{myindent}\cmddsep - this command is just an alias for - \textit{\textbackslash{titlespacing}\{\textbackslash{section}\}\{\argname{left}\}% - \{\argname{beforesep}\}\{\argname{aftersep}\}}. See the \textit{titlesec} package for further - information. -\item \cmdname{mycfoot} - \marg{text}\cmddsep - adds \argname{text} to the page footer. It may be useful, for example, to show information - about the last update of the document. -\item \cmdname{myitemize} - \cmddsep - a list environment that uses the \textit{ding} style. -\squishend - -\subsection{Decorations} -\label{sub:decoration-commands} - -\classname provides some commands for \textit{TikZ} decorations. The support -provided is not complete at all (on the other hand \textit{TikZ} has a huge amount of -functionality), but it is enough for this class purposes. The only \textit{TikZ} path supported is -\textit{rectangle}. - -\squishlist -\item \cmdname{mydecorationsPathmorphing}[*] - \begin{myindent} - \dargone{show-decoration}{$1$}\argvsep - \marg{decoration-type}\argvsep - \dargone{decoration-color}{gray}\argvsep - \dargtwo{shading-type}{radial}\argvsep - \dargtwo{background-color}{white}% - \end{myindent}\cmddsep - \argname{show-decoration}, if equals $1$, shows the decoration \argname{decoration-type}, - while if $0$ does not. - The \textit{starred} version of the command uses the shading technique and the last argument is - the background shading color.\\ - The \textit{not starred} version does not consider the argument \argname{shading-type} - (just for a matter of clarity, a ``none'' value may be used) and the last argument is simply the - background color.\\ - \argname{decoration-type} was tested with the following values: ``shape'', ``straight'', - ``zigzag``, ``random steps``, ``saw``, ``bent``, ``bumps``, ``coil``, ``snake'' and - ``Koch snowflake``.\\ - \argname{shading-type} was tested with ``radial'' and ``ball'' shadings. -\item \cmdname{mydecorationsShape} - \begin{myindent} - \dargone{show-decoration}{$1$}\arghsep - \marg{decoration-type}\arghsep - \dargone{decoration-color}{gray} - \end{myindent}\cmddsep - \argname{show-decoration}, if equals $1$, shows the decoration \argname{decoration-type}, - while if $0$ does not.\\ - \argname{decoration-type} was tested with the following decorations: ``dart'', ``diamond'', - ``rectangle'' and ``star''. -\item \cmdname{mydecorationsFading} - \begin{myindent} - \dargone{path-fading}{north}\argvsep - \marg{primary-color}\argvsep - \dargone{color-gradient}{$80$}\argvsep - \dargone{secondary-color}{black}\argvsep - \dargtwo{opacity}{$1.0$}% - \end{myindent}\cmddsep - the resulting fill color is given by \argname{primary-color}, \argname{color-gradient} - and \argname{secondary-color}, which are composed as follows: - \argname{primary-color}!\argname{color-gradient}!\argname{secondary-color}. -\item \cmdname{mydecorationsSetPos[XTL|YTL|XBR|YBR]} - \begin{myindent} - \dargone{coordinate-value}{$1\text{cm}\mid-1\text{cm}\mid-1\text{cm}\mid1\text{cm}$} - \end{myindent}\cmddsep - sets the position for the decoration in use. Since the decoration path is \textit{rectangle}, it - is sufficient to have the $(x,y)$ coordinates of two points: the top-left and bottom-right. - \textit{XTL} stands for ``\texttt{X-Top-Left}'', \textit{XBR} for ``\texttt{X-Bottom-Right}'' - and so on. -\item - \cmdname{mydecorationsSetLineWidth}[*] - \dargone{line-width}{tikz value}\cmdvsep - \cmdname{mydecorationsSetSegmentAmplitude}[*] - \dargone{segment-amplitude}{tikz value}\cmdvsep - \cmdname{mydecorationsSetSegmentLength}[*] - \dargone{segment-length}{tikz value}\cmddsep - these commands may respectively be used for modifying the properties \argname{line-width}, - \argname{segment-amplitude} and \argname{segment-length} for the decoration in use. - \textit{Starred} versions do not require any argument and reinitialize the properties to their - default values. -\squishend - -\subsection{Miscellaneous} - -\squishlist -\item - \cmdname{mypdfauthor} - \marg{author}\cmdvsep - \cmdname{mypdftitle} - \marg{title}\cmdvsep - \cmdname{mypdfsubject} - \marg{subject}\cmddsep - these commands do nothing but register \argname{author}, \argname{title} and \argname{subject} - information in the document properties of the pdf is being produced. - -\item \cmdname{mylang} - \marg{text}\arghsep - \dargone{language}{english}\cmddsep - temporarily changes the language in use (\textit{babel} package) to \argname{language} for - \argname{text}. - -\item \cmdname{mychangemargin} - \marg{left-margin}\arghsep - \marg{right-margin}\cmddsep - \textit{mychangemargin} environment changes the left and right margin of a portion of - text. The environments \textit{mychangemarginLeft} and \textit{mychangemarginRight}, whose - meaning is straight forward, are also available. - -\item \cmdname{myrenderlayout} - \dargone{component}{a}\cmddsep - processes and draws the layout component(s). The option value ``h'' is for the header component, - ``b'' and ``f'', respectively, for the body and footer ones, while ``a'' is for all components. -\squishend - -\section{Some examples} - -This section gives some \textit{minimal} examples and does some considerations about the use of -\classname (the class permits to do much better with a little patience). This is done by creating -two \textit{curriculum vit\ae{}} with the same contents, but different layouts: one \CV will use a -double page layout (abbreviated \DPL from here forward), while the other will use a single page -layout (\SPL). - -The sample code presented here can be found in the ``Examples'' directory shipped with the -\textit{mycv} bundle, which this document is part of, and that also contains files with the \CV -contents: these files are not listed in the present document, as they do not contain anything worth -being mentioned for the purpose of these notes. - -First and foremost, to keep the code organized, we need a file containing the layout components -for the \DPL and \SPL (\textit{model-layouts.tex}). We opt to share the \textit{header} and -\textit{footer} components, so we also create a second file named \textit{model-common.tex}, -such as in listing~\ref{lst:model-common}. -\begin{latexcode}[firstnumber=1,caption=model-common.tex,label=lst:model-common] -% ---------------------- -% the shared header list -% ---------------------- -\def\headerlayoutlist{% - &MainHeaderPageBegin&:, - % --------------------------------- left header - |SubHeaderPageBegin|:, - % header file (1) - $header_title@$, - |SubHeaderPageEnd|:, - % --------------------------------- right header - |SubHeaderPageBegin|, - % header file (2) - $header_contacts@$, - |SubHeaderPageEnd|, - &MainHeaderPageEnd&% -} - -% ---------------------- -% the shared footer list -% ---------------------- -\def\footerlayoutlist{footer_sign@} -\end{latexcode} - -\subsection{Double page layout} - -Here we deal with the layout components specific for the \DPL, as showed in -listing~\ref{lst:dplmodel}. -%\lstinputlisting[firstnumber=1,caption=model-dpl.tex,label=lst:dplmodel]{ -%../Examples/Models/model-dpl.tex} -\begin{latexcode}[firstnumber=1,caption=DPL model (part of 'model-layouts.tex'),label=lst:dplmodel] -\def\bodylayoutlist{% the DPL's body list - % --------------------------------------------------------- - % moves the right margin to the left (text and title rules) - % --------------------------------------------------------- - &MainBodyPageBegin&:<0.96>, - % --------------------------------------------------------- - % the 2 directives below are just used as a trick to do the - % same thing for the left margin (it is moved to the right) - % --------------------------------------------------------- - |SubBodyPageBegin|, - |SubBodyPageEnd|, - % ----------------------------------------- - % left page (0.48 of textwidth) - % ----------------------------------------- - |SubBodyPageBegin|:<0.48>, - $contents_partA@$:, - $contents_partB@$:, - $contents_partC@$:, - |SubBodyPageEnd|:, - % ----------------------------------------- - % right page (0.48 of textwidth) - % ----------------------------------------- - |SubBodyPageBegin|:<0.48>, - $contents_partA@$:, - $contents_partB@$:, - |SubBodyPageEnd|, - % ----------------------------------------- - &MainBodyPageEnd&% -} -\end{latexcode} - -\subsection{Single page layout} - -As far as the \SPL, we do not need to use the \verb|*PageBegin| components, but it is sufficient to -directly include the files with the contents. The resulting code is showed -in listing~\ref{lst:splmodel}. -\begin{latexcode}[firstnumber=1,caption=SPL model (part of -'model-layouts.tex'),label=lst:splmodel] -\def\bodylayoutlist{% the SPL's body list - % --------------------------------------------------- - $contents_partA@$:, - $contents_partB@$:, - $contents_partC@$:, - $contents_partA@$:, - $contents_partB@$: - % --------------------------------------------------- -} -\end{latexcode} - -\subsection{Main file} - -Since we both have the components for the double and single page layouts, we can proceed writing the -main file (\textit{mycv-example-main.tex}) that picks and use them.\\ -We start by setting up some options for the %\classname -class, such as those related to the decorations and language support, as well as the name of the -model (layout) we mean to register. -Besides, we opt to store the \CV contents files in the directory ``Contents'' (that is the default -one where the class searches for the contents files), so there is not need to specify its path with -the option ``\textit{cntdir}''. %~\myref{sec:class-options}. -% (see the listings~~\ref{lst:dplmodel} or~\ref{lst:splmodel}). - -In listing~\ref{lst:mycv-example-main} we take the \DPL as an example, but switching to the -\SPL would just be a matter of changing the ``\textit{mdlname}'' option from \keyword{verDPL} to -\keyword{verSPL}. -\begin{latexcode}[firstnumber=1,label=lst:mycv-example-main,caption=mycv-example-main.tex] -\documentclass[10pt,mdlname=verDPL,withDec,language=english]{mycv} -\input{mycv-example-common} -\begin{document} -\cvdec\myrenderlayout\mycfoot{Last update: \today} -\end{document} -\end{latexcode} - -The file \textit{mycv-example-common[.tex]}, showed in listing~\ref{lst:example-common}, -selects the appropriate layout components (listings~\ref{lst:dplmodel} or \ref{lst:splmodel}) to be -included and, subsequently, processed by \textit{\textbackslash{}myrenderlayout}. -%(to be more exact, those components are selected inside the file \textit{model-layouts[.tex]}).\\ -%by using -%the conditional command \textit{\textbackslash{}ifmodel}.\\ -In addiction, the file \textit{mycv-example-common.tex} contains some decoration commands, which -need to be used only if the option ``\textit{withDec}' was given to the class; this is the -reason of the conditional command \textit{\textbackslash{}ifoption}. -\begin{latexcode}[firstnumber=1,caption=mcv-example-common.tex,label=lst:example-common] -[...] -\ifoption{withDec}{% - \newcommand{\cvdec}{ - \mydecorationsSetLineWidth[0.3mm]% - \mydecorationsPathmorphing*{coil} - } - [...] -}{\newcommand{\cvdec}{}} - -% include layouts components -\input{Models/model-layouts} -[...] -\end{latexcode} -%\lstinputlisting[firstnumber=1,caption=mcv-example-common.tex,label=lst:example]{ -%../Examples/mycv-example-common.tex} - -\subsection{Layout notes} - -When a double layout page is used, it may occur, for example, that a section is too long for a -page: this would not be a problem with a single page layout, since \LaTeX{} would automatically -break the section contents. Unfortunately, with a double page layout the behavior is substantially -different: this is because the class uses a \textit{minipage-based mechanism} and a minipage is by -itself not breakable. Thus, what happens is that part of the section contents comes out from the -page margins. %, without being displayed. - -When a problem such as this occurs, a possible workaround is to manually break the section contents. -This can be done by using a counter that keeps track of the number of times a same file is included: -when the counter is equal $1$, a part of the section contents is included in the left page, -otherwise is the remaining one to be included in the right page. -Listing~\ref{lst:split-contents-example} shows a practical example of what just discussed. -\begin{latexcode}[firstnumber=1,label=lst:split-contents-example, -caption=workaround example] -% --------------------------------------------------------- -% file with the section contents: i.e. -% --------------------------------------------------------- -% increases the counter 'cnt': it's defined outside this file -\stepcounter{cnt} - -% selects the appropriate part of the file contents -\newcommand{\condblock}[2]{\ifthenelse{\value{cnt}<2}{#1}{#2}} - -\condblock{skills section contents part A}% - {skills section contents part B (the remaining part)} - -% ------------------------------------------------------ -% file with the DPL components: i.e. -% ------------------------------------------------------ -\def\bodylayoutlist{% - |SubBodyPageBegin|:<0.48>, % left page - % include part A in the left page - $section_skills@$, - [...] - |SubBodyPageEnd|, - |SubBodyPageBegin|:<0.48>, % right page - % include part B in the right page - $section_skills@$, - [...] - |SubBodyPageEnd| -} -\end{latexcode} - -Of course the proposed workaround is not the best we could wish for, since it requires manual -operations. % (any advice about that is greatly appreciated).\\ -As an alternative, it is possible to not use the \verb|*PageBegin| and \verb|*PageEnd| mechanism, -delegating the double page layout to an external package (i.e. \textit{multicols}). -This kind of approach is showed in listings~\ref{lst:model-dpl2}. -\begin{latexcode}[firstnumber=1,caption=DPL$2$ model (part of -'model-layouts.tex'),label=lst:model-dpl2] -\newcommand{\mcbegin}{\begin{multicols}{2}} -\newcommand{\mcend}{\end{multicols}} - -\def\bodylayoutlist{% - $contents_partA@$:,% - [...] - $contents_partB@$::,% -} -\end{latexcode} - -Notice the usage of the commands \textit{\textbackslash{mcbegin}} and -\textit{\textbackslash{mcend}}, which act as a wrapper for the \textit{multicols} environment. - -\section{Split file contents} - -This class uses a file based approach as far as the contents of a \CV, that is to say it needs that -the contents be into separated file/s (at least one) with respect to the main file. - -As the class works, having the contents in just one single file is not as good as would be with -multiple files (ideally a file for each section of the document), since multiple files allow to -more easily customize the \CV layout without directly acting on the contents. -On the other hand, a multiple file approach may compel to use several files and not be -convenient.\\ -For these reasons, this class provides a \keyword{PERL} script named -\textit{mycv\_split\_contents.pl} (for a list of all the options provided, type -\textit{mycv\_split\_contents.pl -h} inside a shell environment) -% or take a look at the file itself(function \textit{usage})), -that can process a file and, according to what specified by the -directives in the file itself, split its contents into several files (which will be those -effectively used by the class). In this way is possible to directly manage one single file for the -contents. - -If requested, the script can also create a basic model file with the layout components: -it has to be considered just as a skeleton and probably needs to be edited by hand afterward. - -The directives that may be used inside a contents file have the following form:\codeskip -\begin{latexcode}[numbers=none] -###::|filename|:$component$:&commands& -\end{latexcode} - -{\color{orange}\textit{filemane}} is the name of the file to create, -{\color{brown}\textit{component}} is the main component (\textit{header}, \textit{body} or -\textit{footer}) that the file represents, while {\color{red}\textit{commands}} are the relative -commands associated to the component. -Both \textit{component} and \textit{commands} are not mandatory, but may be useful, especially -\textit{component}, when is requested to generate a basic model file.\\ -The script \textit{mycv\_split\_contents.pl} may be called inside the main file as showed in -listing~\ref{lst:mycv-example-main2}. - -\begin{latexcode}[firstnumber=1,caption=mycv-example-main.tex,label=lst:mycv-example-main2] -% ------------------------------------------------------------------- -% To compile this file is necessary to use the option '-shell-escape' -% to enable the 'write18' construct. -% ------------------------------------------------------------------- -\documentclass[10pt,mdlname=verSPL,withDec,language=english]{mycv} -\immediate\write18{/mycv_split_contents.pl -i cv-contents.tex} -[...] -\end{latexcode} - -When the file \textit{cv-contents.tex} (listing~\ref{lst:cv-contents}) is processed by the script, -the files \textit{*.tex} are created in the directory ''Contents`` (the default one). -\begin{latexcode}[firstnumber=1,caption=cv-contents.tex,label=lst:cv-contents] -% ----------------------------- -% ###::header_title.tex::header -% ----------------------------- -[...] -% ------------------------------------------------------------------- -% ###::contents_partA.tex::body:: -% ------------------------------------------------------------------- -[...] -% ------------------------------------------------------------------- -% ###::contents_partB.tex::body:: -% ------------------------------------------------------------------- -[...] -% ---------------------------- -% ###::footer_sign.tex::footer -% ---------------------------- -[...] -\end{latexcode} - -%To make the example works, is necessary to compile the main file using the option -%\textit{-shell-escape} to enable the \textit{\textbackslash{write18}} construct. -%as follows:\codeskip -%\begin{latexcode}[numbers=none] -%||pdflatex|| -&shell-escape& mycv-example-spl.tex -%\end{latexcode} - -\bigskip -\fbox{That's all, {\color{brown}happy \LaTeX{}ing!}} -\hfill\Large\calligra{AndreaGhersi} -\ifparchment\end{parchment}\fi -%\todo[color=lightgray!10,noline]{That's all, {\color{brown}happy \LaTeX{}ing!}} diff --git a/Master/texmf-dist/doc/latex/mycv/Doc/FrontBackMatter/Contents.tex b/Master/texmf-dist/doc/latex/mycv/Doc/FrontBackMatter/Contents.tex deleted file mode 100644 index 61c9aa38750..00000000000 --- a/Master/texmf-dist/doc/latex/mycv/Doc/FrontBackMatter/Contents.tex +++ /dev/null @@ -1,8 +0,0 @@ - -%******************************************************* -% Contents -%******************************************************* - -\pdfbookmark{\contentsname}{tableofcontents} -\setcounter{tocdepth}{2} -\tableofcontents \ No newline at end of file diff --git a/Master/texmf-dist/doc/latex/mycv/Doc/FrontBackMatter/Titlepage+Abstract.tex b/Master/texmf-dist/doc/latex/mycv/Doc/FrontBackMatter/Titlepage+Abstract.tex deleted file mode 100644 index f02c81481e5..00000000000 --- a/Master/texmf-dist/doc/latex/mycv/Doc/FrontBackMatter/Titlepage+Abstract.tex +++ /dev/null @@ -1,63 +0,0 @@ - -\begin{titlepage} -\begin{center} - -% =========== -% Definitions -% =========== - -% this sets the counter to symbols (*, dagger, and so on) -\renewcommand{\thefootnote}{\fnsymbol{footnote}} -\newcommand{\HRule}{\rule{\linewidth}{0.5mm}} - -\def\versionMsg{This file has version number \version{} \texttt{---} % - documentation dated April 13, 2012 \texttt{---} % - last revised \today} - -% ======================= -% Upper part of the page -% ======================= - -% Date -\textsc{\large\color{gray}\today}\\[0.5cm] - -% Title -\HRule\\[0.4cm]% -{\huge\medskip\bfseries\myTitle\footnote{\versionMsg}}\\[0.4cm]% -\HRule\\[1.5cm] - -% Author -\large\emph{Author:}\\ -\href{mailto:\myMail}{\textsc{\myName}} - -\vspace{20pt} -\includegraphics[width=0.30\textwidth]{Images/logo-1.png}\\[1cm] - -\vspace{10pt} -\textbf{\textit{Abstract}}\normalsize\par\bigskip -\begin{minipage}{0.75\textwidth} -\noindent -This \LaTeX{} class provides a set of functionality for writing \textit{curriculum vit\ae{}} -with different layouts. To achieve this goal, it adopts a different approach with respect -to the other c.v. classes or packages. - -Basically, the idea is that a user can write some custom configuration directives, by means of which -is possible both to produce different c.v. layouts and quickly switch among them. - -In order to process such directives, this class uses a set of lists, provided by the package -\textit{etextools}. A basic support for \textit{TikZ} decorations is also provided. - -\end{minipage} - -% ================== -% Bottom of the page -% ================== - -% -------------------------------------------- -% this resets the numbering back to arabic and -% makes sure that the footnote is numbered 1 -% -------------------------------------------- -\renewcommand{\thefootnote}{\arabic{footnote}}\setcounter{footnote}{0} - -\end{center} -\end{titlepage} \ No newline at end of file diff --git a/Master/texmf-dist/doc/latex/mycv/Doc/mycv-decs.def b/Master/texmf-dist/doc/latex/mycv/Doc/mycv-decs.def deleted file mode 100644 index 390ef395e0c..00000000000 --- a/Master/texmf-dist/doc/latex/mycv/Doc/mycv-decs.def +++ /dev/null @@ -1,110 +0,0 @@ -%%%%%%%%%%%%% -% % -% Parchment % -% % -%%%%%%%%%%%%% - -% ================================================================== -% Code taken from http://www.texample.net/tikz/examples/framed-tikz/ -% (just a couple of changes made) -% ================================================================== - -\usepackage{framed} -\usetikzlibrary{decorations.pathmorphing,decorations.shapes,calc} -\pgfmathsetseed{1} % To have predictable results -% Define a background layer, in which the parchment shape is drawn -\pgfdeclarelayer{background} -\pgfsetlayers{background,main} - -% ------------------------------------------------------- -% define styles for the normal border and the torn border -% ------------------------------------------------------- -\tikzset{ - normal border/.style={lightgray!12, % or: orange!20!black!10, brown!10 - decorate, decoration={shape, segment length=0.5cm, amplitude=.7mm}}, - torn border/.style={orange!30!black!5, decorate, - decoration={random steps, segment length=.5cm, amplitude=1.7mm}}} - -% ---------------------------------------------------------------------- -% Macro to draw the shape behind the text, when it fits completly in the -% page -% ---------------------------------------------------------------------- -\def\parchmentframe#1{ -\tikz{ - \node[inner sep=2em] (A) {#1}; % Draw the text of the node - \begin{pgfonlayer}{background} % Draw the shape behind - \fill[normal border] - (A.south east) -- (A.south west) -- - (A.north west) -- (A.north east) -- cycle; - \end{pgfonlayer}}} - -% ----------------------------------------------------------------- -% Macro to draw the shape, when the text will continue in next page -% ----------------------------------------------------------------- -\def\parchmentframetop#1{ -\tikz{ - \node[inner sep=2em] (A) {#1}; % Draw the text of the node - % (inner sep=2em is for the - % inner space of all borders - % (left,right,top and bottom) - % inner ysep=0pt for the top - % and bottom borders) - \begin{pgfonlayer}{background} - \fill[normal border] % Draw the ``complete shape'' behind - (A.south east) -- (A.south west) -- - (A.north west) -- (A.north east) -- cycle; - \fill[torn border] % Add the torn lower border - ($(A.south east)-(0,.2)$) -- ($(A.south west)-(0,.2)$) -- - ($(A.south west)+(0,.2)$) -- ($(A.south east)+(0,.2)$) -- cycle; - \end{pgfonlayer}}} - -% ------------------------------------------------------------------- -% Macro to draw the shape, when the text continues from previous page -% ------------------------------------------------------------------- -\def\parchmentframebottom#1{ -\tikz{ - \node[inner sep=2em] (A) {#1}; % Draw the text of the node - \begin{pgfonlayer}{background} - \fill[normal border] % Draw the ``complete shape'' behind - (A.south east) -- (A.south west) -- - (A.north west) -- (A.north east) -- cycle; - \fill[torn border] % Add the torn upper border - ($(A.north east)-(0,.2)$) -- ($(A.north west)-(0,.2)$) -- - ($(A.north west)+(0,.2)$) -- ($(A.north east)+(0,.2)$) -- cycle; - \end{pgfonlayer}}} - -% ------------------------------------------------------------------------ -% Macro to draw the shape, when both the text continues from previous page -% and it will continue in next page -% ------------------------------------------------------------------------ -\def\parchmentframemiddle#1{ -\tikz{ - \node[inner sep=2em] (A) {#1}; % Draw the text of the node - \begin{pgfonlayer}{background} - \fill[normal border] % Draw the ``complete shape'' behind - (A.south east) -- (A.south west) -- - (A.north west) -- (A.north east) -- cycle; - \fill[torn border] % Add the torn lower border - ($(A.south east)-(0,.2)$) -- ($(A.south west)-(0,.2)$) -- - ($(A.south west)+(0,.2)$) -- ($(A.south east)+(0,.2)$) -- cycle; - \fill[torn border] % Add the torn upper border - ($(A.north east)-(0,.2)$) -- ($(A.north west)-(0,.2)$) -- - ($(A.north west)+(0,.2)$) -- ($(A.north east)+(0,.2)$) -- cycle; - \end{pgfonlayer}}} - -% ------------------------------------------------------------------------ -% Define the environment which puts the frame -% In this case, the environment also accepts an argument with an optional -% title (which defaults to ``Example'', which is typeset in a box overlaid -% on the top border -% ------------------------------------------------------------------------ -\newenvironment{parchment}{%[1][Example]{% - \def\FrameCommand{\parchmentframe}% - \def\FirstFrameCommand{\parchmentframetop}% - \def\LastFrameCommand{\parchmentframebottom}% - \def\MidFrameCommand{\parchmentframemiddle}% - \vskip\baselineskip - \MakeFramed {\FrameRestore}} - %\noindent\tikz\node[inner sep=1ex, draw=black!20,fill=white, - % anchor=west, overlay] at (0em, 2em) {\sffamily#1};\par}% -{\endMakeFramed} \ No newline at end of file diff --git a/Master/texmf-dist/doc/latex/mycv/Doc/mycv-macros.sty b/Master/texmf-dist/doc/latex/mycv/Doc/mycv-macros.sty deleted file mode 100644 index 9c07fd40cae..00000000000 --- a/Master/texmf-dist/doc/latex/mycv/Doc/mycv-macros.sty +++ /dev/null @@ -1,301 +0,0 @@ -%@ ------------------------------------------------------- -%@ Copyright 2012 Ghersi Andrea (ghanhawk@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'. -%@ ------------------------------------------------------- - -\RequirePackage{svn-prov} -\ProvidesPackageSVN - {$Id: mycv-macros.sty 85 2012-05-12 17:07:42Z ghangenit $} - [v\version][A package providing some useful commands for writing this doc] - -\ifdraft - % --------------------------------- - % rende visibili (in nero) i badbox - % --------------------------------- - \overfullrule=5pt -\fi - - -%%%%%%%%%%%% -% % -% Hyperref % -% % -%%%%%%%%%%%% - -\hypersetup{citecolor=webgreen} -\hypersetup{pdfstartpage=1} - -\hypersetup{% - pdfstartpage = 1, - pdfauthor = Andrea Ghersi, - pdftitle = MyCV, - pdfsubject = MyCV class documentation, - pdfproducer = \LaTeX{}, - pdfkeywords = {}, - pdfcreator = \LaTeX{} with 'arsclassica' -} - - -%%%%%%%%% -% % -% Alias % -% % -%%%%%%%%% - -%\newcommand{\mySubTitle}{a list driven cv\xspace} -\newcommand{\myTitle}{MyCV\xspace} -\newcommand{\myName}{Andrea Ghersi\xspace} -\newcommand{\myMail}{ghanhawk@gmail.com} - - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% % -% Formato pagina, sezioni, capitoli,... % -% % -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -% modifica la larghezza della pagine. Formato: -\areaset{412pt}{749pt} - -% --------------------------------------------------- -% modifica formato section e subsection (sovrascrive -% le impostazioni definite dallo stile 'arsclassica') -% --------------------------------------------------- - -% sections -\titleformat{\section}% - {\color{red}\normalfont\Large\bfseries\bf}% - {\color{red}\MakeTextLowercase{\thesection}}{1em}{\spacedlowsmallcaps} - -% subsections -\titleformat{\subsection}% - {\color{orange}\normalfont\bfseries\bf} - {\textsc{\MakeTextLowercase{\thesubsection}}}{1em}{\normalsize} - -% subsubsections -\titleformat{\subsubsection}% - {\color{cyan}\normalfont\bfseries\bf} - {\textsc{\MakeTextLowercase{\thesubsection}}}{1em}{\small} - -% ------------------------------------------------- -% cambia il colore dei capitoli/sezioni nell'indice -% ------------------------------------------------- - -\renewcommand*\cftchapfont{\color{red}\bfseries} -\renewcommand*\cftsecfont{\color{gray}\bfseries} - -% ----------------------------------------------------------- -% words 'chapter', 'section' and 'subsection' not capitalized -% inside a ref -% ----------------------------------------------------------- - -\def\chapterautorefname{chapter} %default: Chapter -\def\sectionautorefname{section} %default: Section -\def\subsectionautorefname{subsection} %default: Subsection - - -%%%%%%%%%%%%%%%%%%%%%%%% -% % -% Liste personalizzate % -% % -%%%%%%%%%%%%%%%%%%%%%%%% - -% ---------------------------------------------- -%\circ — An open circle -%\cdot — A centered dot -%\star — A five-pointed star -%\ast — A centered asterisk -%\rightarrow — A short right-pointing arrow -%\diamondsuit — An open diamond -%\triangleright -% ---------------------------------------------- - -% separazione tra item -\def\myitemsep{5pt} - -\newcommand{\squishlist}[1][\myitemsep]{% - \begin{list}{$\triangleright$}% - { % separazione tra paragrafi: OGNI nuova - % lista equivale ad un NUOVO paragrafo - \setlength{\parskip}{5pt}% - % separazione tra item - \setlength{\itemsep}{#1}% - \setlength{\parsep}{5pt}% - % separazione del primo item - si aggiunge - % all'eventuale separazione tra paragrafi - \setlength{\topsep}{5pt}% - \setlength{\partopsep}{0pt}% - \setlength{\leftmargin}{2.5em}% - \setlength{\labelwidth}{1em}% - \setlength{\labelsep}{0.5em}% - }} - -\newcommand{\squishend}{% - \end{list}} - - -%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% % -% Citazioni personalizzate % -% % -%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\newcommand{\quotes}[3][0]{% - % ---------------------------------------------------------- - % definisce il colore dell'autore e dell'anno (verde chiaro) - % rosso RGB {255, 0, 0} - % ---------------------------------------------------------- - \definecolor{authorcolor}{RGB}{51, 153, 51} - \definecolor{datecolor} {RGB}{51, 153, 51} - % - \noindent\makebox[0.90\textwidth]{% - \begin{minipage}[t]{0.50\textwidth}% - \hfill% - \end{minipage}% - \begin{minipage}[t]{0.50\textwidth}% - {\small\ignorespaces\slshape #2}\\[0.5em]% - \medskip% - \hfill\texttt{---} {{\color{authorcolor}{#3}}}% - \ifnum#1>0% - \xspace[{\color{datecolor}{#1}}]% - \fi% - \end{minipage}% - }} - - -%%%%%%%%%%%%%%%%%%%%%%%% -% % -% Riferimenti a pagine % -% % -%%%%%%%%%%%%%%%%%%%%%%%% - -% page references -\newcommand{\myref}[1]{{\color{blue}(\autoref{#1})}\xspace} -\newcommand{\myreftwo}[1]{{\color{blue}(see~\autoref{#1})}\xspace} - - -%%%%%%%%%%%%%%%% -% % -% Comandi vari % -% % -%%%%%%%%%%%%%%%% - -% pensato per parole maiuscole (es CV, DPL,...) -\newcommand{\keyword}[1]{{\footnotesize\textbf{#1}}\xspace} - -\newcommand{\argvsep}{\\[5pt]} % vertical sep between args list -\newcommand{\arghsep}{\;\;} % horizontal sep between args list -\newcommand{\cmdvsep}{\\[5pt]} % vertical sep between cmds list -\newcommand{\cmdhsep}{\;\;} % horizontal sep between cmds list -\newcommand{\cmddsep}{\par\medskip} % vertical sep between cmd and its description -\newcommand{\optvsep}{\\[5pt]} % vertical sep between opts list -\newcommand{\opthsep}{\;\;} % horizontal sep between opts list -\newcommand{\optdsep}{\par} % vertical sep between opt and its description -\newcommand{\sep}{\medskip} % generic sep -\newcommand{\argname}[2][black]{{\color{#1}{$\langle$\textit{#2}$\rangle$}}} -\newcommand{\cmdname}[2][brown]{{\color{#1}{\textbf{\textbackslash#2}}}} -\newcommand{\optname}[2][brown]{{\color{#1}{\textbf{#2}}}} -\newcommand{\classname}{{\color{blue}{\textit{MyCV}}}\xspace} -\newcommand{\codeskip}{\medskip} -\newcommand{\DPL}{\keyword{DPL}} % se si usa \color bisogna anche mettere un \xspace -\newcommand{\SPL}{\keyword{SPL}} % idem -\newcommand{\CV}{\keyword{CV}} % idem - -% format '{...}' arguments: #1 is an argument -\newcommand{\marg}[1]{% - \fbox{% - {\color{red}\textbf{\{}}$\langle$% - \textit{#1}% - $\rangle${\color{red}\textbf{\}}}}% - } - -% format '[...]' arguments: #1 is an argument, #2 is the default value -\newcommand{\dargone}[2]{% - \fbox{% - {\color{cyan}\textbf{[}}$\langle$% - \textit{#1}% - $\rangle${\color{cyan}\textbf{]}}% - }\;$\longrightarrow$\;{\color{blue}\textbf{[}\textit{#2}\textbf{]}}} - -% format '<...>' arguments: #1 is an argument, #2 is the default value -\newcommand{\dargtwo}[2]{% - \fbox{% - {\color{cyan}\textbf{<}}$\langle$% - \textit{#1}% - $\rangle${\color{cyan}\textbf{>}}% - }\;$\longrightarrow$\;{\color{blue}\textbf{<}\textit{#2}\textbf{>}}} - -% indentazione -\newenvironment{myindent}[1][0.2in]% - { \begin{list}{}{% - \setlength{\topsep}{0pt}% - \setlength{\leftmargin}{#1}% - \setlength{\partopsep}{0pt}% - \setlength{\parsep}{\parskip}}\item[]% - } - {\end{list}} - -% colored text -\newcommand{\ctext}[2][red]{{\color{#1}{#2}}} - -% omissis, nella forma: [...] -\newcommand{\omissis}{[\dots\negthinspace]} - - -%%%%%%%%%%%% -% % -% Listings % -% % -%%%%%%%%%%%% - -% for backgroundcolor color -\definecolor{lightergray}{gray}{0.99} - -\lstnewenvironment{latexcode}[1][]{% - \small - \lstset{language=[LaTeX]Tex, - keywordstyle=\color{RoyalBlue}, - basicstyle=\normalfont\ttfamily, - commentstyle=\color{Emerald}\ttfamily, - stringstyle=\rmfamily, - numbers=none,%left,% where to put the line-numbers ('none' if no numbers are wanted) - % to decomment for having numbers inside the listing box instead outside - %xleftmargin=2em,frame=single,framexleftmargin=1.5em, - numberstyle=\scriptsize\color{gray},% the style that is used for the line-numbers - stepnumber=1, % the step between two line-numbers. If it's 1, each line will be numbered - numbersep=8pt,% how far the line-numbers are from the code - showstringspaces=false, - breaklines=true, - frameround=ftff, - frame=lines, - moredelim=[is][\color{orange}]{|}{|}, - moredelim=[is][\color{brown}]{$}{$}, - moredelim=[is][\color{red}]{&}{&}, - moredelim=[is][\textbf]{||}{||}, - backgroundcolor=\color{lightergray}, - #1 % option that may be passed - } - \lstset{ - morekeywords=% - {% - RequirePackage,newboolean,DeclareOption,setboolean,% - ProcessOptions,PackageError,ifthenelse,boolean,% - MakeTextLowercase,@ifpackageloaded,undefined,% - DeclareRobustCommand,MakeTextUppercase,conditionalblock,% - color,titlerule,titlespacing,ifmodel,ifoption,mypdftitle,% - labelitemi,hypersetup,setlength,mydecorationsSetLineWidth, - mydecorationsPathmorphing,mycfoot,myrenderlayout,cvdec,% - definecolor,includegraphics,ifdefined,mcbegin,mcend,% - ProvidesPackage,PackageInfo,PackageWarningNoLine,% - @ifclassloaded,ExecuteOptions,PackageWarning,textcolor% - },% - commentstyle=\color{Emerald}\ttfamily,% - frame=lines% - } -}{\codeskip} - -% include le macro per la pergamena se richiesto -\ifparchment\input{mycv-decs.def}\fi \ No newline at end of file diff --git a/Master/texmf-dist/doc/latex/mycv/Doc/mycv.tex b/Master/texmf-dist/doc/latex/mycv/Doc/mycv.tex index 214e3db7e55..d5359426f18 100644 --- a/Master/texmf-dist/doc/latex/mycv/Doc/mycv.tex +++ b/Master/texmf-dist/doc/latex/mycv/Doc/mycv.tex @@ -1,95 +1,1047 @@ -\def\version{1.5.5} +% ---------------------------------------------------------- +% ** This file was automatically generated by +% ** with option(s) 'ctan'. +% ** Date: Sun May 20 21:31:48 CEST 2012::1337542308 +% ---------------------------------------------------------- +% ------------------------------------------------------- +% Copyright 2012 Ghersi Andrea (ghanhawk@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'. +% ------------------------------------------------------- +\def\version{1.5.6} \newif\ifdraft -%\drafttrue % se decommentato utilizza formato bozza \newif\ifparchment -% se commentato non utilizza la pergamena \parchmenttrue \documentclass[ - 10pt, % corpo del font principale - a4paper,oneside,openany, % carta A4, pagina singola - titlepage, % frontespzio - fleqn, % equazioni allineate a sinistra - headinclude,footinclude, % testatina e pie' di pagina - BCOR5mm, % rilegatura di 5 mm - numbers=noenddot, % niente punto dopo il numero delle sezioni - cleardoublepage=empty, % pagine vuote senza testatina e pie' di pagina - captions=tableheading % didascalie in cima alle tabelle + 10pt, + a4paper,oneside,openany, + titlepage, + fleqn, + headinclude,footinclude, + BCOR5mm, + numbers=noenddot, + cleardoublepage=empty, + captions=tableheading \ifdraft - ,draft % bozza del documento - \else % nessuna bozza + ,draft + \else \fi -]{scrreprt} % classe report di KOMA-Script +]{scrreprt} -% carica molti pacchetti utili a ClassicThesis \usepackage[backref]{classicthesis-ldpkg} \usepackage[ - eulerchapternumbers, % numeri dei capitoli in Euler - subfig, % compatibilita' con subfig - beramono, % Bera Mono come font a spaziatura fissa - eulermath, % AMS Euler come font per la matematica - pdfspacing, % migliora il riempimento di riga con PDFLaTeX - dottedtoc % allinea a destra i riferimenti alle pagine nell'indice -]{classicthesis} % lo stile ClassicThesis - -% modifica alcuni aspetti di ClassicThesis + eulerchapternumbers, + subfig, + beramono, + eulermath, + pdfspacing, + dottedtoc +]{classicthesis} + \usepackage[english]{arsclassica} -% per codifica caratteri \usepackage[utf8x]{inputenc} -% spelling \usepackage[english]{babel} -% per usare vari simboli, quali '-->',... \usepackage{textcomp} -% provides a visual markup extension to amsmath \usepackage{empheq} -% calligra font \usepackage{calligra} -% todo notes \usepackage{todonotes} -% nessuna identazione \setlength{\parindent}{0pt} -% per l'environment comment \usepackage{comment} -% codice \usepackage{listings} -% macro di supporto -\usepackage{mycv-macros} +\ifdraft + \overfullrule=5pt +\fi + +\hypersetup{citecolor=webgreen} +\hypersetup{pdfstartpage=1} + +\hypersetup{% + pdfstartpage = 1, + pdfauthor = Andrea Ghersi, + pdftitle = MyCV, + pdfsubject = MyCV class documentation, + pdfproducer = \LaTeX{}, + pdfkeywords = {}, + pdfcreator = \LaTeX{} with 'arsclassica' +} + +\newcommand{\myTitle}{MyCV\xspace} +\newcommand{\myName}{Andrea Ghersi\xspace} +\newcommand{\myMail}{ghanhawk@gmail.com} + +\areaset{412pt}{749pt} + +\titleformat{\section}% + {\color{red}\normalfont\Large\bfseries\bf}% + {\color{red}\MakeTextLowercase{\thesection}}{1em}{\spacedlowsmallcaps} + +\titleformat{\subsection}% + {\color{orange}\normalfont\bfseries\bf} + {\textsc{\MakeTextLowercase{\thesubsection}}}{1em}{\normalsize} + +\titleformat{\subsubsection}% + {\color{cyan}\normalfont\bfseries\bf} + {\textsc{\MakeTextLowercase{\thesubsection}}}{1em}{\small} + +\renewcommand*\cftchapfont{\color{red}\bfseries} +\renewcommand*\cftsecfont{\color{gray}\bfseries} + +\def\chapterautorefname{chapter} +\def\sectionautorefname{section} +\def\subsectionautorefname{subsection} + +\def\myitemsep{5pt} + +\newcommand{\squishlist}[1][\myitemsep]{% + \begin{list}{$\triangleright$}% + { + \setlength{\parskip}{5pt}% + \setlength{\itemsep}{#1}% + \setlength{\parsep}{5pt}% + \setlength{\topsep}{5pt}% + \setlength{\partopsep}{0pt}% + \setlength{\leftmargin}{2.5em}% + \setlength{\labelwidth}{1em}% + \setlength{\labelsep}{0.5em}% + }} + +\newcommand{\squishend}{% + \end{list}} + +\newcommand{\quotes}[3][0]{% + \definecolor{authorcolor}{RGB}{51, 153, 51} + \definecolor{datecolor} {RGB}{51, 153, 51} + % + \noindent\makebox[0.90\textwidth]{% + \begin{minipage}[t]{0.50\textwidth}% + \hfill% + \end{minipage}% + \begin{minipage}[t]{0.50\textwidth}% + {\small\ignorespaces\slshape #2}\\[0.5em]% + \medskip% + \hfill\texttt{---} {{\color{authorcolor}{#3}}}% + \ifnum#1>0% + \xspace[{\color{datecolor}{#1}}]% + \fi% + \end{minipage}% + }} + +\newcommand{\myref}[1]{{\color{blue}(\autoref{#1})}\xspace} +\newcommand{\myreftwo}[1]{{\color{blue}(see~\autoref{#1})}\xspace} + +\newcommand{\keyword}[1]{{\footnotesize\textbf{#1}}\xspace} + +\newcommand{\argvsep}{\\[5pt]} +\newcommand{\arghsep}{\;\;} +\newcommand{\cmdvsep}{\\[5pt]} +\newcommand{\cmdhsep}{\;\;} +\newcommand{\cmddsep}{\par\medskip} +\newcommand{\optvsep}{\\[5pt]} +\newcommand{\opthsep}{\;\;} +\newcommand{\optdsep}{\par} +\newcommand{\sep}{\medskip} +\newcommand{\argname}[2][black]{{\color{#1}{$\langle$\textit{#2}$\rangle$}}} +\newcommand{\cmdname}[2][brown]{{\color{#1}{\textbf{\textbackslash#2}}}} +\newcommand{\optname}[2][brown]{{\color{#1}{\textbf{#2}}}} +\newcommand{\classname}{{\color{blue}{\textit{MyCV}}}\xspace} +\newcommand{\codeskip}{\medskip} +\newcommand{\DPL}{\keyword{DPL}} +\newcommand{\SPL}{\keyword{SPL}} +\newcommand{\CV}{\keyword{CV}} + +\newcommand{\marg}[1]{% + \fbox{% + {\color{red}\textbf{\{}}$\langle$% + \textit{#1}% + $\rangle${\color{red}\textbf{\}}}}% + } + +\newcommand{\dargone}[2]{% + \fbox{% + {\color{cyan}\textbf{[}}$\langle$% + \textit{#1}% + $\rangle${\color{cyan}\textbf{]}}% + }\;$\longrightarrow$\;{\color{blue}\textbf{[}\textit{#2}\textbf{]}}} + +\newcommand{\dargtwo}[2]{% + \fbox{% + {\color{cyan}\textbf{<}}$\langle$% + \textit{#1}% + $\rangle${\color{cyan}\textbf{>}}% + }\;$\longrightarrow$\;{\color{blue}\textbf{<}\textit{#2}\textbf{>}}} + +\newenvironment{myindent}[1][0.2in]% + { \begin{list}{}{% + \setlength{\topsep}{0pt}% + \setlength{\leftmargin}{#1}% + \setlength{\partopsep}{0pt}% + \setlength{\parsep}{\parskip}}\item[]% + } + {\end{list}} + +\newcommand{\ctext}[2][red]{{\color{#1}{#2}}} + +\newcommand{\omissis}{[\dots\negthinspace]} + +\definecolor{lightergray}{gray}{0.99} + +\lstnewenvironment{latexcode}[1][]{% + \small + \lstset{language=[LaTeX]Tex, + keywordstyle=\color{RoyalBlue}, + basicstyle=\normalfont\ttfamily, + commentstyle=\color{Emerald}\ttfamily, + stringstyle=\rmfamily, + numbers=none, + numberstyle=\scriptsize\color{gray}, + stepnumber=1, + numbersep=8pt, + showstringspaces=false, + breaklines=true, + frameround=ftff, + frame=lines, + moredelim=[is][\color{orange}]{|}{|}, + moredelim=[is][\color{brown}]{$}{$}, + moredelim=[is][\color{red}]{&}{&}, + moredelim=[is][\textbf]{||}{||}, + backgroundcolor=\color{lightergray}, + #1 + } + \lstset{ + morekeywords=% + {% + RequirePackage,newboolean,DeclareOption,setboolean,% + ProcessOptions,PackageError,ifthenelse,boolean,% + MakeTextLowercase,@ifpackageloaded,undefined,% + DeclareRobustCommand,MakeTextUppercase,conditionalblock,% + color,titlerule,titlespacing,ifmodel,ifoption,mypdftitle,% + labelitemi,hypersetup,setlength,mydecorationsSetLineWidth, + mydecorationsPathmorphing,mycfoot,myrenderlayout,cvdec,% + definecolor,includegraphics,ifdefined,mcbegin,mcend,% + ProvidesPackage,PackageInfo,PackageWarningNoLine,% + @ifclassloaded,ExecuteOptions,PackageWarning,textcolor% + },% + commentstyle=\color{Emerald}\ttfamily,% + frame=lines% + } +}{\codeskip} + +\ifparchment + +\usepackage{framed} +\usetikzlibrary{decorations.pathmorphing,decorations.shapes,calc} +\pgfmathsetseed{1} +\pgfdeclarelayer{background} +\pgfsetlayers{background,main} + +\tikzset{ + normal border/.style={lightgray!12, + decorate, decoration={shape, segment length=0.5cm, amplitude=.7mm}}, + torn border/.style={orange!30!black!5, decorate, + decoration={random steps, segment length=.5cm, amplitude=1.7mm}}} + +\def\parchmentframe#1{ +\tikz{ + \node[inner sep=2em] (A) {#1}; + \begin{pgfonlayer}{background} + \fill[normal border] + (A.south east) -- (A.south west) -- + (A.north west) -- (A.north east) -- cycle; + \end{pgfonlayer}}} + +\def\parchmentframetop#1{ +\tikz{ + \node[inner sep=2em] (A) {#1}; + \begin{pgfonlayer}{background} + \fill[normal border] + (A.south east) -- (A.south west) -- + (A.north west) -- (A.north east) -- cycle; + \fill[torn border] + ($(A.south east)-(0,.2)$) -- ($(A.south west)-(0,.2)$) -- + ($(A.south west)+(0,.2)$) -- ($(A.south east)+(0,.2)$) -- cycle; + \end{pgfonlayer}}} + +\def\parchmentframebottom#1{ +\tikz{ + \node[inner sep=2em] (A) {#1}; + \begin{pgfonlayer}{background} + \fill[normal border] + (A.south east) -- (A.south west) -- + (A.north west) -- (A.north east) -- cycle; + \fill[torn border] + ($(A.north east)-(0,.2)$) -- ($(A.north west)-(0,.2)$) -- + ($(A.north west)+(0,.2)$) -- ($(A.north east)+(0,.2)$) -- cycle; + \end{pgfonlayer}}} + +\def\parchmentframemiddle#1{ +\tikz{ + \node[inner sep=2em] (A) {#1}; + \begin{pgfonlayer}{background} + \fill[normal border] + (A.south east) -- (A.south west) -- + (A.north west) -- (A.north east) -- cycle; + \fill[torn border] + ($(A.south east)-(0,.2)$) -- ($(A.south west)-(0,.2)$) -- + ($(A.south west)+(0,.2)$) -- ($(A.south east)+(0,.2)$) -- cycle; + \fill[torn border] + ($(A.north east)-(0,.2)$) -- ($(A.north west)-(0,.2)$) -- + ($(A.north west)+(0,.2)$) -- ($(A.north east)+(0,.2)$) -- cycle; + \end{pgfonlayer}}} + +\newenvironment{parchment}{%[1][Example]{% + \def\FrameCommand{\parchmentframe}% + \def\FirstFrameCommand{\parchmentframetop}% + \def\LastFrameCommand{\parchmentframebottom}% + \def\MidFrameCommand{\parchmentframemiddle}% + \vskip\baselineskip + \MakeFramed {\FrameRestore}} +{\endMakeFramed} +\fi \begin{document} -% ---------------------------------- -% il numero di pagina viene messo in -% alto a destra invece che in fondo -% ---------------------------------- \pagestyle{useheadings} \pagestyle{plain} -%****************************************************************** -% Frontmatter -%****************************************************************** - \pagenumbering{roman} -\input{FrontBackMatter/Titlepage+Abstract} + +\begin{titlepage} +\begin{center} + +\renewcommand{\thefootnote}{\fnsymbol{footnote}} +\newcommand{\HRule}{\rule{\linewidth}{0.5mm}} + +\def\versionMsg{This file has version number \version{} \texttt{---} % + documentation dated April 13, 2012 \texttt{---} % + last revised \today} + +\textsc{\large\color{gray}\today}\\[0.5cm] + +\HRule\\[0.4cm]% +{\huge\medskip\bfseries\myTitle\footnote{\versionMsg}}\\[0.4cm]% +\HRule\\[1.5cm] + +\large\emph{Author:}\\ +\href{mailto:\myMail}{\textsc{\myName}} + +\vspace{20pt} +\includegraphics[width=0.30\textwidth]{Images/logo-1.png}\\[1cm] + +\vspace{10pt} +\textbf{\textit{Abstract}}\normalsize\par\bigskip +\begin{minipage}{0.75\textwidth} +\noindent +This \LaTeX{} class provides a set of functionality for writing \textit{curriculum vit\ae{}} +with different layouts. To achieve this goal, it adopts a different approach with respect +to the other c.v. classes or packages. + +Basically, the idea is that a user can write some custom configuration directives, by means of which +is possible both to produce different c.v. layouts and quickly switch among them. + +In order to process such directives, this class uses a set of lists, provided by the package +\textit{etextools}. A basic support for \textit{TikZ} decorations is also provided. + +\end{minipage} + +\renewcommand{\thefootnote}{\arabic{footnote}}\setcounter{footnote}{0} + +\end{center} +\end{titlepage} \pagestyle{scrheadings} -\input{FrontBackMatter/Contents} -\cleardoublepage -%****************************************************************** -% Mainmatter -%****************************************************************** +\pdfbookmark{\contentsname}{tableofcontents} +\setcounter{tocdepth}{2} +\tableofcontents +\cleardoublepage \pagenumbering{arabic} -\input{Chapters/Fundamentals} -\input{Chapters/Usage} +\chapter{Fundamentals} +\quotes[1973]{ + ``Computer programming is an art, because it applies + accumulated knowledge to the world, because it + requires skill and ingenuity, and especially because + it produces objects of beauty'' +}{Knuth} +\ifparchment\begin{parchment}\fi +\section{Introduction} + +The main goal of this class (\classname) is to give support for creating \textit{curriculum +vit\ae{}} (\CV) with different layouts, allowing easy switching among them. +The class also provides basic support for using the \textit{TikZ} decorations and defines a bunch +of commands for managing the contents of a \CV, though that is not its primary goal. +On \keyword{CTAN} archives, there are available various \CV packages more +\textit{contents-oriented}, as it were, and they may be used together with this class. +Before starting to describe the class more in details, it goes without saying that any advice or +constructive criticism is greatly appreciated. + +\section{Class files} +The class \classname is composed by six files. A short brief of each one is given here: +\squishlist + \item \ctext{mycv.cls} + \begin{myindent} + it is the main file and, basically, handles the class options~\myref{sec:class-options} as + well as the inclusion of all other files, except for \textit{mycv\_version.def}; + \end{myindent} + \item \ctext{mycv\_base.def} + \begin{myindent} + it contains all the commands and definitions dealing with the layout components of a + \CV~\myref{sec:layout-components}: it is the core file; + \end{myindent} + \item \ctext{mycv\_style.sty} + \begin{myindent} + it contains the default style commands~\myref{sub:style-commands} provided by the class: if + the default style is not used, + this file will not be included by \textit{mycv.cls}; + \end{myindent} + \item \ctext{mycv\_dec.sty} + \begin{myindent} + it contains the decoration commands~\myref{sub:decoration-commands} provided by the class: if + decorations are not enabled% + , this file will not be included by \textit{mycv.cls}; + \end{myindent} + \item \ctext{mycv\_misc.def}\hspace{5pt}and\hspace{5pt}\ctext{mycv\_version.def} + \begin{myindent} + they respectively contain some miscellaneous commands and the version string. + \end{myindent} +\squishend + +\section {Layout components} +\label{sec:layout-components} + +This class considers a \textit{curriculum vit\ae{}} as logically divided into three main components: +\textit{header}, \textit{body} and \textit{footer}. +To each of these ones, a list, that basically contains some sub-components, is associated; files +with the \CV contents are also considered sub-components. +For these reasons, we can actually say that \classname uses a sort of \textit{list-driven} approach. + +\subsection{Main components} + +\classname recognizes the following three lists that, for all intends and purposes, are a concrete +representation of the main logical components: + +\bigskip +\begin{myindent} +\textbf{headerlayoutlist},\hspace{5pt}\textbf{bodylayoutlist},\hspace{5pt}\textbf{footerlayoutlist}. +\end{myindent} + +\bigskip +It is mandatory, for the correct behavior of the class, to not change the above list's names. In +the case a component is not required, the relative list may be omitted: for example, if a \CV does +not have a footer component, the list \textit{footerlayoutlist} is not strictly necessary.\\ +What follows is an example of a list definition:\codeskip +\begin{latexcode}[numbers=none] +\def\headerlayoutlist{sub-component1,sub-component2,[...]} +\end{latexcode} + +\subsection{Sub-components} + +We previously said that \classname is based on three main components (\textit{header}, +\textit{body} and \textit{footer}) and that each of these ones are represented by a list. A list +(therefore a main component), in turn, may have one or more sub-component, separated by +a comma, which are identified as follows: + +\squishlist[0pt] + \item \texttt{\ctext{Main}[Header|Body|Footer]\ctext{PageBegin}}; + \item \texttt{\ctext{Main}[Header|Body|Footer]\ctext{PageEnd}}; + \item \texttt{\ctext[blue]{Sub}[Header|Body|Footer]\ctext[blue]{PageBegin}}; + \item \texttt{\ctext[blue]{Sub}[Header|Body|Footer]\ctext[blue]{PageEnd}}; + \item \texttt{\ctext[orange]{filename}} with the (partial) \CV contents. +\squishend\sep + +Both ``\verb|Main[...]PageBegin|'' and ``\verb|Sub[...]PageBegin|'' are \textit{minipages}; the +difference is that the former have a default width of $100\%$ of the \textit{textwidth} +macro, while that value is $44\text{-}45\%$ for the latter (it depends on the components type). + +A \textit{filename} sub-component may either be the name of a file or a macro with it: +depending on the case, the syntax slightly changes.%~\myreftwo{subsub:component-options}. + +\subsubsection{Sub-components options} +\label{subsub:component-options} + +Each sub-component, \textit{filename} included, may have associated options, with colons +as separators, so that the syntax is something like:\codeskip +\begin{latexcode}[numbers=none] + $sub-component$:option1:option2:[...] +\end{latexcode} + +If truth be told, each option already has its own separator, so colons are not strictly necessary +and, as a separator, any other symbol may be used. If wanted, it is also possible to not have any +separator at all, but this is not recommended if only for a matter of clarity. + +\medskip +Options for a sub-component are of different types, as listed below: + +\def\tmpcolor{gray} +\squishlist + \item <\optname{[pre\textbar post]cmd}\verb|:command1:command2:[...]|>\optdsep + a sequence of commands is executed \textit{before}/\textit{after} the + beginning or ending of a sub-component (\textit{filename} included). + A command may have a sequence of arguments, separated by ``='', + each of which can either be \textit{optional} or \textit{mandatory}. + In total, the class recognizes four types of arguments: + \squishlist[0pt] + \item \ctext[blue]{arg} (mandatory argument equivalent to \{arg\}); + \item \ctext[blue]{@arg} (optional argument equivalent to [arg]); + \item \ctext[blue]{!arg} (optional argument equivalent to ); + \item \ctext[blue]{*} (optional argument equivalent to *). + \squishend + \item /\optname{m[l\textbar r]}\verb||/\hfill\opthsep{\small($1$)}\optvsep + /\optname{endm[l\textbar r]}/\hfill\opthsep{\small($2$)}\optdsep + changes the \textit{left}/\textit{right} margin of a text portion of a document, between + option {\small($1$)} and option {\small($2$)}; in a typical usage, these options are + associated with different sub-components, such as \verb|*PageBegin| and \verb|*PageEnd|. + Each time the option {\small($1$)} is used, the option {\small($2$)} is also required + for ending the margin modification, except for the \textit{filename} + sub-component that automatically does that. Example (it moves the left margin to the + right of $0.2$in): + \begin{myindent} + \texttt{% + \ctext[\tmpcolor]{% + SubBodyPageBegin:\\ + \omissis\\ + SubBodyPageEnd:}% + }. + \end{myindent} + \item \verb||\optdsep + sets the width of a sub-component in terms of \textit{textwidth} percentage. + This option only exists for ``\verb|*PageBegin|`` sub-components. Example: + \ctext[\tmpcolor]{\texttt{SubBodyPageBegin:<0.48>}}. + \item /\optname{pagesize}\verb||/\optdsep + sets the width of a sub-component, as the option above, but in terms of absolute reference + (instead of \textit{textwidth} percentage). Also this option only exists for + ``\verb|*PageBegin|`` sub-components. Example: + \ctext[\tmpcolor]{\texttt{SubBodyPageBegin:/pagesize5.5in/}}. + \item /\optname{pagebreak}/\optdsep + permits to break two contiguous sub-components, aligning them one above the other, instead + of side by side (that is the default behavior). This option only exists for + ``\verb|*PageEnd|'' sub-components. + Example: \ctext[\tmpcolor]{\texttt{SubBodyPageEnd:/pagebreak/}}. + \item \optname{*}macroname\optvsep + filename\optname{@}\optdsep + \argname{macroname} is a macro expanding to the name of a file (with the \CV contents), + while \argname{filename} is directly the name itself (the only \textit{non-alphanumeric} + characters allowed there are ``\_'' and ``-''). + Example: \ctext[\tmpcolor]{\texttt{*headerfile}}, where the macro \textit{headerfile} + is somewhere defined. +\squishend +\ifparchment\end{parchment}\fi +\chapter{Usage} +\quotes{% + “There are two ways to write error-free programs; only the third one works”% +}{Alan J. Perlis} +\ifparchment\begin{parchment}\fi +\section{Requirements} +When \textit{decorations} are not enabled and the \textit{default style} is not used, \classname +has +the following requirements:\codeskip +\begin{latexcode}[numbers=none] +\RequirePackage{kvoptions} % for class options with key-value format +\RequirePackage{etextools} % for lists and other useful tools +\RequirePackage{ifthen} % for the \ifthenelse command +\RequirePackage{xstring} % for string utilities +\RequirePackage{svn-prov} % for file info extracted from SVN +\RequirePackage{hyperref} % for hypertext links and other stuff +\end{latexcode} + +If the default style is used, by means of the class option +``\textit{style}''~\myref{sec:class-options}, this class requires (in addiction to +\textit{hyperref} and \textit{svn-prov}):\codeskip +\begin{latexcode}[numbers=none] +\RequirePackage{xparse} % for commands with multiple default arguments +\RequirePackage{pifont} % for the 'ding' style (itemize environment) +\RequirePackage{titlesec} % for title format and spacing +\RequirePackage{fancyhdr} % for custom headers and footers +\RequirePackage{xcolor} % for colors +\RequirePackage{calligra} % for the calligra font +\RequirePackage{times} % for the times font +\RequirePackage{marvosym} % symbols - phone +\RequirePackage{amssymb} % symbols - email +\end{latexcode} + +Finally, if decorations are enabled, by using the class +option ``\textit{withDec}``~\myref{sec:class-options}, this class also requires (in addiction +to \textit{svn-prov}, \textit{xparse} and \textit{xstring}):\codeskip +\begin{latexcode}[firstnumber=1,numbers=none] +\RequirePackage{tikz} % for graphics +\end{latexcode} + +\section{Class options} +\label{sec:class-options} + +\classname can use any option supported by the \textit{article} class, on which is based. In +addiction, it provides the following options: +\def\tmpcolor{brown} +\squishlist +\item {\color{red}language=<\argname[\tmpcolor]{string}>} + \begin{myindent} + string language to pass to the \textit{babel} package for the document (\CV) language; + \end{myindent} +\item {\color{red}cntdir=<\argname[\tmpcolor]{dirname}>} + \begin{myindent} + sets the directory name where \classname will search for files with the \CV contents.\\ + The default one is ``Contents''; + \end{myindent} +\item {\color{red}style=<\argname[\tmpcolor]{filemane}>} + \begin{myindent} + specifies the file name (with or without the extension ``.sty'') containing the style commands. + By default, the file \textit{mycv\_style.sty}, provided by the class itself, is that used. + It is also possible to not use any style file by specifying the value ``none'' as file name; + \end{myindent} +\item {\color{red}mdlname=<\argname[\tmpcolor]{name}>} + \begin{myindent} + registers a name for the layout (model) intended to be used: in this way is possible, for + example, to select the appropriate layout configuration file or a layout-specific portion of + code; + \end{myindent} +\item {\color{red}withDec} + \begin{myindent} + enables support for decorations (provided by the \textit{TikZ} package). + \end{myindent} +\squishend + +\section{Class commands} + +Here follows the complete list of the commands provided by \classname. The style commands +are only available if the class option ``\textit{style}'' was used; +the same goes for the decoration commands, +which need the class option ``\textit{withDec}''.\\ +In the following text of this section, when present, the form {\color{blue}\omissis} (or +{\color{blue}<...>}) indicates the default choice for an optional argument of a command. + +\subsection{Conditionals} + +\squishlist +\item \cmdname{ifoption} + \marg{option}\arghsep + \marg{true}\arghsep\marg{false}\argvsep + \cmdname{ifmodel} + \marg{mdlname}\arghsep + \marg{true}\arghsep\marg{false}\cmddsep + \textit{ifoption} checks whether \argname{option} was used, + while \textit{ifmodel} checks whether \argname{mdlname} was registered in the class; then both + commands use the appropriate \argname{true} or \argname{false} block of code. +\squishend + +\subsection{Default style} +\label{sub:style-commands} + +\squishlist +\item \cmdname{mysectionTitleFormat} + \begin{myindent} + \dargone{titlerule-color-above}{myheadingscolor}\argvsep + \dargone{titlerule-color-below}{myheadingscolor} + \end{myindent}\cmddsep + \argname{titlerule-color-above} is the color for the rule above a section name, while + \argname{titlerule-color-below} is for the one below. \textit{myheadingscolor} is the default + color. +\item \cmdname{mysectionTitleSpacing} + \begin{myindent} + \dargone{left}{$0\text{pt}$}\arghsep + \dargone{beforesep}{$0\text{pt}$}\arghsep + \dargone{aftersep}{$5\text{pt}$} + \end{myindent}\cmddsep + this command is just an alias for + \textit{\textbackslash{titlespacing}\{\textbackslash{section}\}\{\argname{left}\}% + \{\argname{beforesep}\}\{\argname{aftersep}\}}. See the \textit{titlesec} package for further + information. +\item \cmdname{mycfoot} + \marg{text}\cmddsep + adds \argname{text} to the page footer. It may be useful, for example, to show information + about the last update of the document. +\item \cmdname{myitemize} + \cmddsep + a list environment that uses the \textit{ding} style. +\squishend + +\subsection{Decorations} +\label{sub:decoration-commands} + +\classname provides some commands for \textit{TikZ} decorations. The support +provided is not complete at all (on the other hand \textit{TikZ} has a huge amount of +functionality), but it is enough for this class purposes. The only \textit{TikZ} path supported is +\textit{rectangle}. + +\squishlist +\item \cmdname{mydecorationsPathmorphing}[*] + \begin{myindent} + \dargone{show-decoration}{$1$}\argvsep + \marg{decoration-type}\argvsep + \dargone{decoration-color}{gray}\argvsep + \dargtwo{shading-type}{radial}\argvsep + \dargtwo{background-color}{white}% + \end{myindent}\cmddsep + \argname{show-decoration}, if equals $1$, shows the decoration \argname{decoration-type}, + while if $0$ does not. + The \textit{starred} version of the command uses the shading technique and the last argument is + the background shading color.\\ + The \textit{not starred} version does not consider the argument \argname{shading-type} + (just for a matter of clarity, a ``none'' value may be used) and the last argument is simply the + background color.\\ + \argname{decoration-type} was tested with the following values: ``shape'', ``straight'', + ``zigzag``, ``random steps``, ``saw``, ``bent``, ``bumps``, ``coil``, ``snake'' and + ``Koch snowflake``.\\ + \argname{shading-type} was tested with ``radial'' and ``ball'' shadings. +\item \cmdname{mydecorationsShape} + \begin{myindent} + \dargone{show-decoration}{$1$}\arghsep + \marg{decoration-type}\arghsep + \dargone{decoration-color}{gray} + \end{myindent}\cmddsep + \argname{show-decoration}, if equals $1$, shows the decoration \argname{decoration-type}, + while if $0$ does not.\\ + \argname{decoration-type} was tested with the following decorations: ``dart'', ``diamond'', + ``rectangle'' and ``star''. +\item \cmdname{mydecorationsFading} + \begin{myindent} + \dargone{path-fading}{north}\argvsep + \marg{primary-color}\argvsep + \dargone{color-gradient}{$80$}\argvsep + \dargone{secondary-color}{black}\argvsep + \dargtwo{opacity}{$1.0$}% + \end{myindent}\cmddsep + the resulting fill color is given by \argname{primary-color}, \argname{color-gradient} + and \argname{secondary-color}, which are composed as follows: + \argname{primary-color}!\argname{color-gradient}!\argname{secondary-color}. +\item \cmdname{mydecorationsSetPos[XTL|YTL|XBR|YBR]} + \begin{myindent} + \dargone{coordinate-value}{$1\text{cm}\mid-1\text{cm}\mid-1\text{cm}\mid1\text{cm}$} + \end{myindent}\cmddsep + sets the position for the decoration in use. Since the decoration path is \textit{rectangle}, it + is sufficient to have the $(x,y)$ coordinates of two points: the top-left and bottom-right. + \textit{XTL} stands for ``\texttt{X-Top-Left}'', \textit{XBR} for ``\texttt{X-Bottom-Right}'' + and so on. +\item + \cmdname{mydecorationsSetLineWidth}[*] + \dargone{line-width}{tikz value}\cmdvsep + \cmdname{mydecorationsSetSegmentAmplitude}[*] + \dargone{segment-amplitude}{tikz value}\cmdvsep + \cmdname{mydecorationsSetSegmentLength}[*] + \dargone{segment-length}{tikz value}\cmddsep + these commands may respectively be used for modifying the properties \argname{line-width}, + \argname{segment-amplitude} and \argname{segment-length} for the decoration in use. + \textit{Starred} versions do not require any argument and reinitialize the properties to their + default values. +\squishend + +\subsection{Miscellaneous} + +\squishlist +\item + \cmdname{mypdfauthor} + \marg{author}\cmdvsep + \cmdname{mypdftitle} + \marg{title}\cmdvsep + \cmdname{mypdfsubject} + \marg{subject}\cmddsep + these commands do nothing but register \argname{author}, \argname{title} and \argname{subject} + information in the document properties of the pdf is being produced. + +\item \cmdname{mylang} + \marg{text}\arghsep + \dargone{language}{english}\cmddsep + temporarily changes the language in use (\textit{babel} package) to \argname{language} for + \argname{text}. + +\item \cmdname{mychangemargin} + \marg{left-margin}\arghsep + \marg{right-margin}\cmddsep + \textit{mychangemargin} environment changes the left and right margin of a portion of + text. The environments \textit{mychangemarginLeft} and \textit{mychangemarginRight}, whose + meaning is straight forward, are also available. + +\item \cmdname{myrenderlayout} + \dargone{component}{a}\cmddsep + processes and draws the layout component(s). The option value ``h'' is for the header component, + ``b'' and ``f'', respectively, for the body and footer ones, while ``a'' is for all components. +\squishend + +\section{Some examples} + +This section gives some \textit{minimal} examples and does some considerations about the use of +\classname (the class permits to do much better with a little patience). This is done by creating +two \textit{curriculum vit\ae{}} with the same contents, but different layouts: one \CV will use a +double page layout (abbreviated \DPL from here forward), while the other will use a single page +layout (\SPL). + +The sample code presented here can be found in the ``Examples'' directory shipped with the +\textit{mycv} bundle, which this document is part of, and that also contains files with the \CV +contents: these files are not listed in the present document, as they do not contain anything worth +being mentioned for the purpose of these notes. + +First and foremost, to keep the code organized, we need a file containing the layout components +for the \DPL and \SPL (\textit{model-layouts.tex}). We opt to share the \textit{header} and +\textit{footer} components, so we also create a second file named \textit{model-common.tex}, +such as in listing~\ref{lst:model-common}. +\begin{latexcode}[firstnumber=1,caption=model-common.tex,label=lst:model-common] +% ---------------------- +% the shared header list +% ---------------------- +\def\headerlayoutlist{% + &MainHeaderPageBegin&:, + % --------------------------------- left header + |SubHeaderPageBegin|:, + % header file (1) + $header_title@$, + |SubHeaderPageEnd|:, + % --------------------------------- right header + |SubHeaderPageBegin|, + % header file (2) + $header_contacts@$, + |SubHeaderPageEnd|, + &MainHeaderPageEnd&% +} + +% ---------------------- +% the shared footer list +% ---------------------- +\def\footerlayoutlist{footer_sign@} +\end{latexcode} + +\subsection{Double page layout} + +Here we deal with the layout components specific for the \DPL, as showed in +listing~\ref{lst:dplmodel}. +\begin{latexcode}[firstnumber=1,caption=DPL model (part of 'model-layouts.tex'),label=lst:dplmodel] +\def\bodylayoutlist{% the DPL's body list + % --------------------------------------------------------- + % moves the right margin to the left (text and title rules) + % --------------------------------------------------------- + &MainBodyPageBegin&:<0.96>, + % --------------------------------------------------------- + % the 2 directives below are just used as a trick to do the + % same thing for the left margin (it is moved to the right) + % --------------------------------------------------------- + |SubBodyPageBegin|, + |SubBodyPageEnd|, + % ----------------------------------------- + % left page (0.48 of textwidth) + % ----------------------------------------- + |SubBodyPageBegin|:<0.48>, + $contents_partA@$:, + $contents_partB@$:, + $contents_partC@$:, + |SubBodyPageEnd|:, + % ----------------------------------------- + % right page (0.48 of textwidth) + % ----------------------------------------- + |SubBodyPageBegin|:<0.48>, + $contents_partA@$:, + $contents_partB@$:, + |SubBodyPageEnd|, + % ----------------------------------------- + &MainBodyPageEnd&% +} +\end{latexcode} + +\subsection{Single page layout} + +As far as the \SPL, we do not need to use the \verb|*PageBegin| components, but it is sufficient to +directly include the files with the contents. The resulting code is showed +in listing~\ref{lst:splmodel}. +\begin{latexcode}[firstnumber=1,caption=SPL model (part of +'model-layouts.tex'),label=lst:splmodel] +\def\bodylayoutlist{% the SPL's body list + % --------------------------------------------------- + $contents_partA@$:, + $contents_partB@$:, + $contents_partC@$:, + $contents_partA@$:, + $contents_partB@$: + % --------------------------------------------------- +} +\end{latexcode} + +\subsection{Main file} + +Since we both have the components for the double and single page layouts, we can proceed writing the +main file (\textit{mycv-example-main.tex}) that picks and use them.\\ +We start by setting up some options for the +class, such as those related to the decorations and language support, as well as the name of the +model (layout) we mean to register. +Besides, we opt to store the \CV contents files in the current directory (that is not the default one +where the class searches for the contents files), so there is need to specify its path with +the option ``\textit{cntdir}''. + +In listing~\ref{lst:mycv-example-main} we take the \DPL as an example, but switching to the +\SPL would just be a matter of changing the ``\textit{mdlname}'' option from \keyword{verDPL} to +\keyword{verSPL}. +\begin{latexcode}[firstnumber=1,label=lst:mycv-example-main,caption=mycv-example-main.tex] +\documentclass[10pt,mdlname=verDPL,withDec,cntdir=.,language=english]{mycv} +\input{mycv-example-common} +\begin{document} +\cvdec\myrenderlayout\mycfoot{Last update: \today} +\end{document} +\end{latexcode} + +The file \textit{mycv-example-common[.tex]}, showed in listing~\ref{lst:example-common}, +selects the appropriate layout components (listings~\ref{lst:dplmodel} or \ref{lst:splmodel}) to be +included and, subsequently, processed by \textit{\textbackslash{}myrenderlayout}. +In addiction, the file \textit{mycv-example-common.tex} contains some decoration commands, which +need to be used only if the option ``\textit{withDec}' was given to the class; this is the +reason of the conditional command \textit{\textbackslash{}ifoption}. +\begin{latexcode}[firstnumber=1,caption=mcv-example-common.tex,label=lst:example-common] +[...] +\ifoption{withDec}{% + \newcommand{\cvdec}{ + \mydecorationsSetLineWidth[0.3mm]% + \mydecorationsPathmorphing*{coil} + } + [...] +}{\newcommand{\cvdec}{}} + +% include layouts components +\input{model-layouts} +[...] +\end{latexcode} + +\subsection{Layout notes} + +When a double layout page is used, it may occur, for example, that a section is too long for a +page: this would not be a problem with a single page layout, since \LaTeX{} would automatically +break the section contents. Unfortunately, with a double page layout the behavior is substantially +different: this is because the class uses a \textit{minipage-based mechanism} and a minipage is by +itself not breakable. Thus, what happens is that part of the section contents comes out from the +page margins. + +When a problem such as this occurs, a possible workaround is to manually break the section contents. +This can be done by using a counter that keeps track of the number of times a same file is included: +when the counter is equal $1$, a part of the section contents is included in the left page, +otherwise is the remaining one to be included in the right page. +Listing~\ref{lst:split-contents-example} shows a practical example of what just discussed. +\begin{latexcode}[firstnumber=1,label=lst:split-contents-example, +caption=workaround example] +% --------------------------------------------------------- +% file with the section contents: i.e. +% --------------------------------------------------------- +% increases the counter 'cnt': it's defined outside this file +\stepcounter{cnt} + +% selects the appropriate part of the file contents +\newcommand{\condblock}[2]{\ifthenelse{\value{cnt}<2}{#1}{#2}} + +\condblock{skills section contents part A}% + {skills section contents part B (the remaining part)} + +% ------------------------------------------------------ +% file with the DPL components: i.e. +% ------------------------------------------------------ +\def\bodylayoutlist{% + |SubBodyPageBegin|:<0.48>, % left page + % include part A in the left page + $section_skills@$, + [...] + |SubBodyPageEnd|, + |SubBodyPageBegin|:<0.48>, % right page + % include part B in the right page + $section_skills@$, + [...] + |SubBodyPageEnd| +} +\end{latexcode} + +Of course the proposed workaround is not the best we could wish for, since it requires manual +operations. +As an alternative, it is possible to not use the \verb|*PageBegin| and \verb|*PageEnd| mechanism, +delegating the double page layout to an external package (i.e. \textit{multicols}). +This kind of approach is showed in listings~\ref{lst:model-dpl2}. +\begin{latexcode}[firstnumber=1,caption=DPL$2$ model (part of +'model-layouts.tex'),label=lst:model-dpl2] +\newcommand{\mcbegin}{\begin{multicols}{2}} +\newcommand{\mcend}{\end{multicols}} + +\def\bodylayoutlist{% + $contents_partA@$:,% + [...] + $contents_partB@$::,% +} +\end{latexcode} + +Notice the usage of the commands \textit{\textbackslash{mcbegin}} and +\textit{\textbackslash{mcend}}, which act as a wrapper for the \textit{multicols} environment. + +\section{Split file contents} + +This class uses a file based approach as far as the contents of a \CV, that is to say it needs that +the contents be into separated file/s (at least one) with respect to the main file. + +As the class works, having the contents in just one single file is not as good as would be with +multiple files (ideally a file for each section of the document), since multiple files allow to +more easily customize the \CV layout without directly acting on the contents. +On the other hand, a multiple file approach may compel to use several files and not be +convenient.\\ +For these reasons, this class provides a \keyword{PERL} script named +\textit{mycv\_split\_contents.pl} (for a list of all the options provided, type +\textit{mycv\_split\_contents.pl -h} inside a shell environment) +that can process a file and, according to what specified by the +directives in the file itself, split its contents into several files (which will be those +effectively used by the class). In this way is possible to directly manage one single file for the +contents. + +If requested, the script can also create a basic model file with the layout components: +it has to be considered just as a skeleton and probably needs to be edited by hand afterward. + +The directives that may be used inside a contents file have the following form:\codeskip +\begin{latexcode}[numbers=none] +###::|filename|:$component$:&commands& +\end{latexcode} + +{\color{orange}\textit{filemane}} is the name of the file to create, +{\color{brown}\textit{component}} is the main component (\textit{header}, \textit{body} or +\textit{footer}) that the file represents, while {\color{red}\textit{commands}} are the relative +commands associated to the component. +Both \textit{component} and \textit{commands} are not mandatory, but may be useful, especially +\textit{component}, when is requested to generate a basic model file.\\ +The script \textit{mycv\_split\_contents.pl} may be called inside the main file as showed in +listing~\ref{lst:mycv-example-main2}. + +\begin{latexcode}[firstnumber=1,caption=Split contents example,label=lst:mycv-example-main2] +% ------------------------------------------------------------------- +% To compile this file is necessary to use the option '-shell-escape' +% to enable the 'write18' construct. +% ------------------------------------------------------------------- +\documentclass[10pt,mdlname=verSPL,withDec,language=english]{mycv} +\immediate\write18{/mycv_split_contents.pl -i cv-contents.tex} +[...] +\end{latexcode} + +When the file \textit{cv-contents.tex} (listing~\ref{lst:cv-contents}) is processed by the script, +the files \textit{*.tex} are created in the directory ''Contents`` (the default one). +\begin{latexcode}[firstnumber=1,caption=cv-contents.tex,label=lst:cv-contents] +% ----------------------------- +% ###::header_title.tex::header +% ----------------------------- +[...] +% ------------------------------------------------------------------- +% ###::contents_partA.tex::body:: +% ------------------------------------------------------------------- +[...] +% ------------------------------------------------------------------- +% ###::contents_partB.tex::body:: +% ------------------------------------------------------------------- +[...] +% ---------------------------- +% ###::footer_sign.tex::footer +% ---------------------------- +[...] +\end{latexcode} + +\bigskip +\fbox{That's all, {\color{brown}happy \LaTeX{}ing!}} +\hfill\Large\calligra{AndreaGhersi} +\ifparchment\end{parchment}\fi + \end{document} \ No newline at end of file diff --git a/Master/texmf-dist/doc/latex/mycv/Examples/Contents/contents_partA.tex b/Master/texmf-dist/doc/latex/mycv/Examples/Contents/contents_partA.tex deleted file mode 100644 index a5ba9e0d58c..00000000000 --- a/Master/texmf-dist/doc/latex/mycv/Examples/Contents/contents_partA.tex +++ /dev/null @@ -1,4 +0,0 @@ - -\begin{mychangemargin}{0.1in}{0.1in} - \lipsum[73] -\end{mychangemargin} \ No newline at end of file diff --git a/Master/texmf-dist/doc/latex/mycv/Examples/Contents/contents_partB.tex b/Master/texmf-dist/doc/latex/mycv/Examples/Contents/contents_partB.tex deleted file mode 100644 index d67ed1614b6..00000000000 --- a/Master/texmf-dist/doc/latex/mycv/Examples/Contents/contents_partB.tex +++ /dev/null @@ -1,4 +0,0 @@ - -\begin{mychangemargin}{0.1in}{0.1in} - \lipsum[74] -\end{mychangemargin} \ No newline at end of file diff --git a/Master/texmf-dist/doc/latex/mycv/Examples/Contents/contents_partC.tex b/Master/texmf-dist/doc/latex/mycv/Examples/Contents/contents_partC.tex deleted file mode 100644 index 175ff82cbf0..00000000000 --- a/Master/texmf-dist/doc/latex/mycv/Examples/Contents/contents_partC.tex +++ /dev/null @@ -1,9 +0,0 @@ - -\begin{mychangemargin}{0.1in}{0.1in} - A list: - \begin{myitemize} - \item this is item 1; - \item this is item 2; - \item ..... - \end{myitemize} -\end{mychangemargin} \ No newline at end of file diff --git a/Master/texmf-dist/doc/latex/mycv/Examples/Contents/footer_sign.tex b/Master/texmf-dist/doc/latex/mycv/Examples/Contents/footer_sign.tex deleted file mode 100644 index 60307f9f051..00000000000 --- a/Master/texmf-dist/doc/latex/mycv/Examples/Contents/footer_sign.tex +++ /dev/null @@ -1,4 +0,0 @@ - -\bigskip\bigskip -\ifmodel{verSPL}{\flushleft}{\relax} -{\Large\calligra{Adam Smith}} \ No newline at end of file diff --git a/Master/texmf-dist/doc/latex/mycv/Examples/Contents/header_contacts.tex b/Master/texmf-dist/doc/latex/mycv/Examples/Contents/header_contacts.tex deleted file mode 100644 index 4e11e9d96a7..00000000000 --- a/Master/texmf-dist/doc/latex/mycv/Examples/Contents/header_contacts.tex +++ /dev/null @@ -1,26 +0,0 @@ -\def\cvcontactsep{\\} -\vspace{0pt} %trick for alignment - -\tikzstyle{mybox} = [% - draw=red, fill=blue!20, very thick, - rectangle, rounded corners, - inner sep=10pt, inner ysep=20pt] - -\tikzstyle{fancytitle} = [ - fill=red, text=white] - -\begin{tikzpicture} - \node (box)[fill=myshadecolor,rounded corners=10pt, minimum size= 2.5cm]{% - {\color{black} - \begin{tabular*}{6cm}{l|l} - &Unknown address XYZXYZXYZ\cvcontactsep - \raisebox{-3pt}{\Mobilefone} &+39\,0123\,456789\cvcontactsep - \raisebox{-3pt}{\Telefon} &Telephone\cvcontactsep - \raisebox{-3pt}{\Email} &\href{mailto:unknown@gmail.com} - {unknown@gmail.com}\cvcontactsep - \end{tabular*} - }}; - \node[fancytitle, text width=0.5423\textwidth, text centered, - rounded corners] at (box.north){Contacts}; -\end{tikzpicture} -\bigskip \ No newline at end of file diff --git a/Master/texmf-dist/doc/latex/mycv/Examples/Contents/header_title.tex b/Master/texmf-dist/doc/latex/mycv/Examples/Contents/header_title.tex deleted file mode 100644 index 7b06ae8f0af..00000000000 --- a/Master/texmf-dist/doc/latex/mycv/Examples/Contents/header_title.tex +++ /dev/null @@ -1,5 +0,0 @@ -\bigskip -{\sffamily\Huge{}Dr. Adam Smith}\\[3pt]% -\ifmodel{verSPL2} - {{\color{red}\huge\calligra{CurriculumVitae}\\[25pt]}} - {{\color{myheadingscolor}\huge\calligra{CurriculumVitae}\\[25pt]}} \ No newline at end of file diff --git a/Master/texmf-dist/doc/latex/mycv/Examples/Models/model-common.tex b/Master/texmf-dist/doc/latex/mycv/Examples/Models/model-common.tex deleted file mode 100644 index ef32a3098a0..00000000000 --- a/Master/texmf-dist/doc/latex/mycv/Examples/Models/model-common.tex +++ /dev/null @@ -1,15 +0,0 @@ -\def\headerlayoutlist{% - MainHeaderPageBegin:, - % ---------------------------------------- left header - SubHeaderPageBegin:, - header_title@, % header file one - SubHeaderPageEnd:, - % ---------------------------------------- right header - SubHeaderPageBegin, - header_contacts@, % header file two - SubHeaderPageEnd, - % ------------------------------------------- - MainHeaderPageEnd% -} - -\def\footerlayoutlist{footer_sign@} % footer file \ No newline at end of file diff --git a/Master/texmf-dist/doc/latex/mycv/Examples/Models/model-layouts.tex b/Master/texmf-dist/doc/latex/mycv/Examples/Models/model-layouts.tex deleted file mode 100644 index f3297affee5..00000000000 --- a/Master/texmf-dist/doc/latex/mycv/Examples/Models/model-layouts.tex +++ /dev/null @@ -1,77 +0,0 @@ -\input{Models/model-common} - -\ifmodel{verSPL}{% - \def\bodylayoutlist{% - % --------------------------------------------------- - contents_partA@:, - contents_partB@:, - contents_partC@:, - contents_partA@:, - contents_partB@: - % --------------------------------------------------- - }% -}{\relax} - -\ifmodel{verSPL2}{% - % changes color of text and sections - \mysectionTitleFormat[red][red] - \color{white} - - \def\bodylayoutlist{% - contents_partA@:,% - contents_partB@:,% - contents_partA@:,% - contents_partC@:,% - contents_partA@:,% - contents_partB@: - }% -}{\relax} - -\ifmodel{verDPL}{% - \def\bodylayoutlist{% - % --------------------------------------------------------- - % moves the right margin to the left (text and title rules) - % --------------------------------------------------------- - MainBodyPageBegin:<0.96>, - % --------------------------------------------------------- - % the 2 directives below are just used as a trick to do the - % same thing for the left margin (it is moved to the right) - % --------------------------------------------------------- - SubBodyPageBegin, - SubBodyPageEnd, - % ----------------------------------------- - % left page (0.48 of textwidth) - % ----------------------------------------- - SubBodyPageBegin:<0.48>, - contents_partA@:, - contents_partB@:, - contents_partC@:, - SubBodyPageEnd:, - % ----------------------------------------- - % right page (0.48 of textwidth) - % ----------------------------------------- - SubBodyPageBegin:<0.48>, - contents_partA@:, - contents_partB@:, - SubBodyPageEnd, - % ----------------------------------------- - MainBodyPageEnd% - }% -}{\relax} - -\ifmodel{verDPL2}{% - \usepackage{multicol} - \setlength{\columnsep}{2.0pc} - \setlength\columnseprule{.4pt} - \newcommand{\mcbegin}{\begin{multicols}{2}} - \newcommand{\mcend}{\end{multicols}} - - \def\bodylayoutlist{% - contents_partA@:,% - contents_partB@:,% - contents_partA@:,% - contents_partC@:,% - contents_partA@:,% - contents_partB@::% - }% -}{\relax} \ No newline at end of file diff --git a/Master/texmf-dist/doc/latex/mycv/Examples/Notes.txt b/Master/texmf-dist/doc/latex/mycv/Examples/Notes.txt index e373e7d8676..07b75f588c2 100644 --- a/Master/texmf-dist/doc/latex/mycv/Examples/Notes.txt +++ b/Master/texmf-dist/doc/latex/mycv/Examples/Notes.txt @@ -1,17 +1,22 @@ +=========================================================================================== +To produce the pdf files with examples, follow these steps: -========================================================================================= -To produce the pdf files with examples, set the local environment variable 'TEXINPUTS' to -the directory where you unzipped the 'mycv' bundle. As an example, on Linux: + 1) extract the content of the file 'mycv-examples.dtx' by typing: - export TEXINPUTS=".:$TEXINPUTS:/mycv:" + (pdf)latex mycv-examples.dtx -Then run the commands (it may be necessary to run each command twice): + 2) set the local environment variable 'TEXINPUTS' to the directory where you unzipped + the 'mycv' bundle (*). As an example, on Linux: - pdflatex -jobname mycv-example-dpl "\def\model{verDPL}\input{mycv-example-main}" - pdflatex -jobname mycv-example-dpl2 "\def\model{verDPL2}\input{mycv-example-main}" - pdflatex -jobname mycv-example-spl "\def\model{verSPL}\input{mycv-example-main}" - pdflatex -jobname mycv-example-spl2 "\def\model{verSPL2}\input{mycv-example-main}" + export TEXINPUTS=".:/mycv:$TEXINPUTS:" -If the class has been installed in the system (see the README file), you simply need to -run the commands above (without setting the environment variable 'TEXINPUTS'). -========================================================================================= \ No newline at end of file + 3) run the following commands (it may be necessary to run each command twice): + + pdflatex -jobname mycv-example-dpl "\def\model{verDPL}\input{mycv-example-main}" + pdflatex -jobname mycv-example-dpl2 "\def\model{verDPL2}\input{mycv-example-main}" + pdflatex -jobname mycv-example-spl "\def\model{verSPL}\input{mycv-example-main}" + pdflatex -jobname mycv-example-spl2 "\def\model{verSPL2}\input{mycv-example-main}" + +(*) if the class has been installed in the system (see the 'README' file), the step (2) can + be skipped. +=========================================================================================== \ No newline at end of file diff --git a/Master/texmf-dist/doc/latex/mycv/Examples/mycv-example-common.tex b/Master/texmf-dist/doc/latex/mycv/Examples/mycv-example-common.tex deleted file mode 100644 index 81d57655353..00000000000 --- a/Master/texmf-dist/doc/latex/mycv/Examples/mycv-example-common.tex +++ /dev/null @@ -1,31 +0,0 @@ -\usepackage[utf8]{inputenc} -\usepackage[T1]{fontenc} -\usepackage{lipsum} -\usepackage{tikz} - -\ifoption{withDec}{% - \newcommand{\cvdec}{ - \mydecorationsSetLineWidth[0.3mm]% - \mydecorationsPathmorphing*{coil} - }% - \ifmodel{verSPL2}{ - \renewcommand{\cvdec}{ - \mydecorationsSetPosXTL[-4cm] - \mydecorationsSetPosYTL[1.5cm] - \mydecorationsSetPosYBR[-2cm] - \mydecorationsSetPosXBR[4cm] - \mydecorationsPathmorphing*[0]{shape}[black] - }% - } -}{\newcommand{\cvdec}{}} - -% include layouts components -\input{Models/model-layouts} - -\ifmodel{verSPL} {\mypdftitle{Simple CV example: SPL}} {\relax} -\ifmodel{verSPL2}{\mypdftitle{Simple CV example: SPL2}}{\relax} -\ifmodel{verDPL} {\mypdftitle{Simple CV example: DPL}} {\relax} -\ifmodel{verDPL2}{\mypdftitle{Simple CV example: DPL2}}{\relax} - -\newcommand{\sectionnumber}[1]{\section{Section #1}} -\mypdfauthor{Andrea Ghersi} \ No newline at end of file diff --git a/Master/texmf-dist/doc/latex/mycv/Examples/mycv-example-dpl.pdf b/Master/texmf-dist/doc/latex/mycv/Examples/mycv-example-dpl.pdf index dfa87f5bb84..ffd6518b6c7 100644 Binary files a/Master/texmf-dist/doc/latex/mycv/Examples/mycv-example-dpl.pdf and b/Master/texmf-dist/doc/latex/mycv/Examples/mycv-example-dpl.pdf differ diff --git a/Master/texmf-dist/doc/latex/mycv/Examples/mycv-example-dpl2.pdf b/Master/texmf-dist/doc/latex/mycv/Examples/mycv-example-dpl2.pdf index a88ec273e27..988eca42f38 100644 Binary files a/Master/texmf-dist/doc/latex/mycv/Examples/mycv-example-dpl2.pdf and b/Master/texmf-dist/doc/latex/mycv/Examples/mycv-example-dpl2.pdf differ diff --git a/Master/texmf-dist/doc/latex/mycv/Examples/mycv-example-main.tex b/Master/texmf-dist/doc/latex/mycv/Examples/mycv-example-main.tex deleted file mode 100644 index 2514e4b20ce..00000000000 --- a/Master/texmf-dist/doc/latex/mycv/Examples/mycv-example-main.tex +++ /dev/null @@ -1,9 +0,0 @@ -\def\cvmodel{verDPL} % default model -\ifdefined\model\def\cvmodel{\model}\fi - -\documentclass[10pt,mdlname=\cvmodel,withDec,language=english]{mycv} -\input{mycv-example-common} - -\begin{document} -\cvdec\myrenderlayout\mycfoot{Last update: \today} -\end{document} \ No newline at end of file diff --git a/Master/texmf-dist/doc/latex/mycv/Examples/mycv-example-spl.pdf b/Master/texmf-dist/doc/latex/mycv/Examples/mycv-example-spl.pdf index f18af8cf950..86e69000075 100644 Binary files a/Master/texmf-dist/doc/latex/mycv/Examples/mycv-example-spl.pdf and b/Master/texmf-dist/doc/latex/mycv/Examples/mycv-example-spl.pdf differ diff --git a/Master/texmf-dist/doc/latex/mycv/Examples/mycv-example-spl2.pdf b/Master/texmf-dist/doc/latex/mycv/Examples/mycv-example-spl2.pdf index 7d8a0da04c8..081cd54710b 100644 Binary files a/Master/texmf-dist/doc/latex/mycv/Examples/mycv-example-spl2.pdf and b/Master/texmf-dist/doc/latex/mycv/Examples/mycv-example-spl2.pdf differ diff --git a/Master/texmf-dist/doc/latex/mycv/Examples/mycv-examples.dtx b/Master/texmf-dist/doc/latex/mycv/Examples/mycv-examples.dtx new file mode 100644 index 00000000000..ee9d4046493 --- /dev/null +++ b/Master/texmf-dist/doc/latex/mycv/Examples/mycv-examples.dtx @@ -0,0 +1,324 @@ +% \iffalse meta-comment +% mycv-examples : some examples about the usage of the class +% 'mycv' (a curriculum vitae class allowing TikZ decorations). +% +% 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'. +% +% The examples consist of the main source file 'mycv-examples.dtx' +% and the derived files: +% +% mycv-examples.ins, +% contents_part[A|B|C].tex, +% header_[contacts|title].tex, +% model-[common|layouts].tex, +% mycv-example-[common|main].tex, +% footer_sign.tex, +% mycv-example[dpl|dl2].pdf, +% mycv-example[spl|sl2].pdf +% +% Unpacking the examples: +% +% (pdf)latex mycv-examples.dtx +% +% Producing the examples: +% +% see the file 'Examples/Notes.txt'. +% +% ---------------------------------------------------------- +% ** This file was automatically generated by +% ** with option(s) 'ctan'. +% ** Date: Sun May 20 21:31:37 CEST 2012::1337542297 +% ---------------------------------------------------------- +% \fi +%<*install> +\input docstrip.tex + +\preamble +----------------------------------------------------------- + Author: Andrea Ghersi + Copyright 2012 Ghersi Andrea (ghanhawk@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'. +----------------------------------------------------------- +\endpreamble + +\keepsilent +\askforoverwritefalse +\usedir{tex/latex/mycv/examples} + +\generate{% + \file{mycv-examples.ins}{\nopreamble\nopostamble\from{mycv-examples.dtx}{install}}% + \file{mycv-example-common.tex}{\nopreamble\nopostamble\from{mycv-examples.dtx}{mycv-example-common.tex}}% + \file{mycv-example-main.tex}{\nopreamble\nopostamble\from{mycv-examples.dtx}{mycv-example-main.tex}}% + \file{contents_partA.tex}{\nopreamble\nopostamble\from{mycv-examples.dtx}{contents-partA.tex}}% + \file{contents_partB.tex}{\nopreamble\nopostamble\from{mycv-examples.dtx}{contents-partB.tex}}% + \file{contents_partC.tex}{\nopreamble\nopostamble\from{mycv-examples.dtx}{contents-partC.tex}}% + \file{footer_sign.tex}{\nopreamble\nopostamble\from{mycv-examples.dtx}{footer-sign.tex}}% + \file{header_contacts.tex}{\nopreamble\nopostamble\from{mycv-examples.dtx}{header-contacts.tex}}% + \file{header_title.tex}{\nopreamble\nopostamble\from{mycv-examples.dtx}{header-title.tex}}% + \file{model-common.tex}{\nopreamble\nopostamble\from{mycv-examples.dtx}{model-common.tex}}% + \file{model-layouts.tex}{\nopreamble\nopostamble\from{mycv-examples.dtx}{model-layouts.tex}}% +} + +\obeyspaces +\Msg{**************************************************************} +\Msg{* *} +\Msg{* See the file 'Notes.txt' for information on how to produce *} +\Msg{* pdf files with examples. *} +\Msg{* *} +\Msg{* Happy (La)TeXing! *} +\Msg{* *} +\Msg{**************************************************************} + +\endbatchfile +% +% +% +% \iffalse +%<*mycv-example-common.tex> +% \fi +\usepackage[utf8]{inputenc} +\usepackage[T1]{fontenc} +\usepackage{lipsum} +\usepackage{tikz} + +\ifoption{withDec}{% + \newcommand{\cvdec}{ + \mydecorationsSetLineWidth[0.3mm]% + \mydecorationsPathmorphing*{coil} + }% + \ifmodel{verSPL2}{ + \renewcommand{\cvdec}{ + \mydecorationsSetPosXTL[-4cm] + \mydecorationsSetPosYTL[1.5cm] + \mydecorationsSetPosYBR[-2cm] + \mydecorationsSetPosXBR[4cm] + \mydecorationsPathmorphing*[0]{shape}[black] + }% + } +}{\newcommand{\cvdec}{}} + +\input{model-layouts} + +\ifmodel{verSPL} {\mypdftitle{Simple CV example: SPL}} {\relax} +\ifmodel{verSPL2}{\mypdftitle{Simple CV example: SPL2}}{\relax} +\ifmodel{verDPL} {\mypdftitle{Simple CV example: DPL}} {\relax} +\ifmodel{verDPL2}{\mypdftitle{Simple CV example: DPL2}}{\relax} + +\newcommand{\sectionnumber}[1]{\section{Section #1}} +\mypdfauthor{Andrea Ghersi} +% \iffalse +% +% \fi +% +% +% \iffalse +%<*mycv-example-main.tex> +% \fi +\def\cvmodel{verDPL} % default model +\ifdefined\model\def\cvmodel{\model}\fi + +\documentclass[10pt,mdlname=\cvmodel,cntdir=.,withDec,language=english]{mycv} +\input{mycv-example-common} + +\begin{document} +\cvdec\myrenderlayout\mycfoot{Last update: \today} +\end{document} +% \iffalse +% +% \fi +% +% +% \iffalse +%<*contents-partA.tex> +% \fi + +\begin{mychangemargin}{0.1in}{0.1in} + \lipsum[73] +\end{mychangemargin} +% \iffalse +% +% \fi +% +% +% \iffalse +%<*contents-partB.tex> +% \fi + +\begin{mychangemargin}{0.1in}{0.1in} + \lipsum[74] +\end{mychangemargin} +% \iffalse +% +% \fi +% +% +% \iffalse +%<*contents-partC.tex> +% \fi + +\begin{mychangemargin}{0.1in}{0.1in} + A list: + \begin{myitemize} + \item this is item 1; + \item this is item 2; + \item ..... + \end{myitemize} +\end{mychangemargin} +% \iffalse +% +% \fi +% +% +% \iffalse +%<*footer-sign.tex> +% \fi + +\bigskip\bigskip +\ifmodel{verSPL}{\flushleft}{\relax} +{\Large\calligra{Adam Smith}} +% \iffalse +% +% \fi +% +% +% \iffalse +%<*header-contacts.tex> +% \fi +\def\cvcontactsep{\\} +\vspace{0pt} %trick for alignment + +\tikzstyle{mybox} = [% + draw=red, fill=blue!20, very thick, + rectangle, rounded corners, + inner sep=10pt, inner ysep=20pt] + +\tikzstyle{fancytitle} = [ + fill=red, text=white] + +\begin{tikzpicture} + \node (box)[fill=myshadecolor,rounded corners=10pt, minimum size= 2.5cm]{% + {\color{black} + \begin{tabular*}{6cm}{l|l} + &Unknown address XYZXYZXYZ\cvcontactsep + \raisebox{-3pt}{\Mobilefone} &+39\,0123\,456789\cvcontactsep + \raisebox{-3pt}{\Telefon} &Telephone\cvcontactsep + \raisebox{-3pt}{\Email} &\href{mailto:unknown@gmail.com} + {unknown@gmail.com}\cvcontactsep + \end{tabular*} + }}; + \node[fancytitle, text width=0.5423\textwidth, text centered, + rounded corners] at (box.north){Contacts}; +\end{tikzpicture} +\bigskip +% \iffalse +% +% \fi +% +% +% \iffalse +%<*header-title.tex> +% \fi +\bigskip +{\sffamily\Huge{}Dr. Adam Smith}\\[3pt]% +\ifmodel{verSPL2} + {{\color{red}\huge\calligra{CurriculumVitae}\\[25pt]}} + {{\color{myheadingscolor}\huge\calligra{CurriculumVitae}\\[25pt]}} +% \iffalse +% +% \fi +% +% +% \iffalse +%<*model-common.tex> +% \fi +\def\headerlayoutlist{% + MainHeaderPageBegin:, + SubHeaderPageBegin:, + header_title@, % header file one + SubHeaderPageEnd:, + SubHeaderPageBegin, + header_contacts@, % header file two + SubHeaderPageEnd, + MainHeaderPageEnd% +} + +\def\footerlayoutlist{footer_sign@} % footer file +% \iffalse +% +% \fi +% +% +% \iffalse +%<*model-layouts.tex> +% \fi +\input{model-common} + +\ifmodel{verSPL}{% + \def\bodylayoutlist{% + contents_partA@:, + contents_partB@:, + contents_partC@:, + contents_partA@:, + contents_partB@: + }% +}{\relax} + +\ifmodel{verSPL2}{% + \mysectionTitleFormat[red][red] + \color{white} + + \def\bodylayoutlist{% + contents_partA@:,% + contents_partB@:,% + contents_partA@:,% + contents_partC@:,% + contents_partA@:,% + contents_partB@: + }% +}{\relax} + +\ifmodel{verDPL}{% + \def\bodylayoutlist{% + MainBodyPageBegin:<0.96>, + SubBodyPageBegin, + SubBodyPageEnd, + SubBodyPageBegin:<0.48>, + contents_partA@:, + contents_partB@:, + contents_partC@:, + SubBodyPageEnd:, + SubBodyPageBegin:<0.48>, + contents_partA@:, + contents_partB@:, + SubBodyPageEnd, + MainBodyPageEnd% + }% +}{\relax} + +\ifmodel{verDPL2}{% + \usepackage{multicol} + \setlength{\columnsep}{2.0pc} + \setlength\columnseprule{.4pt} + \newcommand{\mcbegin}{\begin{multicols}{2}} + \newcommand{\mcend}{\end{multicols}} + + \def\bodylayoutlist{% + contents_partA@:,% + contents_partB@:,% + contents_partA@:,% + contents_partC@:,% + contents_partA@:,% + contents_partB@::% + }% +}{\relax} +% \iffalse +% +% \fi +% +% \Finale +\endinput diff --git a/Master/texmf-dist/doc/latex/mycv/README b/Master/texmf-dist/doc/latex/mycv/README index 35b74c9b8d7..329f150219e 100644 --- a/Master/texmf-dist/doc/latex/mycv/README +++ b/Master/texmf-dist/doc/latex/mycv/README @@ -1,7 +1,7 @@ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % % -% MyCV class (v1.5.5) % -% 2012-05-13 % +% MyCV class (v1.5.6) % +% 2012-05-20 % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% @@ -41,39 +41,62 @@ A basic support for TikZ decorations is also provided. --------------------------------------------------------- The base directory of this bundle has the following files -and sub-directories: +and sub-directories --------------------------------------------------------- -'README' -- this file -'CHANGELOG -- the revision history -'mycv.cls' -- the main class file -'mycv_*.def' -- files to support the main - class implementation -'mycv_*.sty' -- class extensions -'mycv.pdf' -- the documentation file -'mycv_*.pl' -- a Perl script (see the doc. file) - -- directory with some examples - -- contains the documentation sources +'README' -- this file +'CHANGELOG -- the revision history +'mycv.dtx' -- the main source file +'checksum.pl' -- verify the integrity of the main files +'mycv.pdf' -- the documentation file + -- directory with some examples + -- contains the documentation sources + +The following files are also created when extracting +the 'mycv.dtx' contents (see 'Class installation' below). + + ** the main class file + 'mycv.cls' + + ** support for the main class implementation + 'mycv_[base|misc|version].def' + + ** class extensions + 'mycv_[style|dec].sty' + + ** split the contents of a file (see the doc.) + 'mycv_split_contents.pl' ------------------ Class installation ------------------ -*) In order to install this class, move all files with - extensions '.def', '.sty' and '.cls' into a folder - searched by LaTeX; the update of the LaTeX database - might be necessary to complete the installation. +*) Extracts the content of the file 'mycv.dtx'. It is + done by typing the command: + + (pdf)latex mycv.dtx + +*) Moves all files with extensions '.def', '.sty' and + '.cls' into a folder searched by LaTeX; the update + of the LaTeX db might be necessary to complete the + installation. *) Optionally, the Perl script 'mycv_split_contents.pl' may be copied to a folder in the 'PATH' environment - variable. + variable; on Unix-like systems, it's also necessary + to make the script executable. + +*) To check the integrity of the main files, the script + 'checksum.pl' (it does not provide any argument) may + be executed, provided that it's executable (only for + Unix-like systems). ------------- Documentation ------------- To create the documentation, move to the folder -and run 'mycv.tex' twice through pdfLaTeX. Due to the +and run 'mycv.tex' twice through pdflatex. Due to the use of some TikZ decorations, it may take awhile. -------- diff --git a/Master/texmf-dist/doc/latex/mycv/checksum.pl b/Master/texmf-dist/doc/latex/mycv/checksum.pl new file mode 100644 index 00000000000..ffd87e310e6 --- /dev/null +++ b/Master/texmf-dist/doc/latex/mycv/checksum.pl @@ -0,0 +1,78 @@ +#!/usr/bin/perl + +# $Id: checksum.pl 91 2012-05-20 19:28:13Z ghangenit $ + +use Term::ANSIColor; +use warnings; +use strict; + +## +## Variables +## + +my $checksumregex = "[a-fA-F0-9]{32}"; +my %checksums = ( + SRCCHECKSUM => "mycv.dtx 8AACA8304D7F1F21480FDD12D7F53EC1", + EXPCHECKSUM => "Examples/mycv-examples.dtx A745EADAE2358B66C6BFC3F55F3EA793", + DOCCHECKSUM => "Doc/mycv.tex 83ECEA99562FE163FDF735FFC582AE3B" +); + +my @externalcmds = ( 'pdftex', 'latexmk' ); + +## +## Functions +## + +sub exitWithError($$) +{ + my $stasus=shift; + my $cmd=shift; + + printf STDERR ("Error: command <%s> exited with value %d.\n", $cmd, $stasus >> 8); + exit $stasus; +} + +sub checksum() +{ + # 'keys' returns the list of keys in an apparently random order + for my $key ( keys %checksums ) + { + my ($filename, $expectedmd5) = split " ", $checksums{$key}; + + print "\n------------------------------------------------------------\n"; + print "<$filename>:\n<$expectedmd5> is the expected checksum.\n"; + + # gets some info among which the checksum of the file '$filename' + my @result = `$externalcmds[0] "\\message{\\pdfmdfivesum file{$filename}}\\end"`; + exitWithError( $?, $externalcmds[0] ) if ( $? != 0 ); + + foreach my $info (@result) + { + if ( $info =~ /($checksumregex)/ ) # the checksum info + { + chomp($info); + print "<$info> is the found checksum."; + if ( $info eq $expectedmd5 ) + { + print color 'bold green'; + print "\n[OK, they match!]\n"; print color 'reset'; + } + else + { + print color 'bold red'; + print "\n[OOPS, they do not match!]\n"; print color 'reset'; + } + } + } + print "------------------------------------------------------------\n"; + } + + `$externalcmds[1] -c texput.log 2>&1`; # removes the log file produced by 'pdftex' + exitWithError( $?, $externalcmds[1] ) if ( $? != 0 ); +} + +## +## Main +## + +checksum(); \ No newline at end of file diff --git a/Master/texmf-dist/doc/latex/mycv/mycv.pdf b/Master/texmf-dist/doc/latex/mycv/mycv.pdf index 8d2b766e9da..5a73e6ebaf0 100644 Binary files a/Master/texmf-dist/doc/latex/mycv/mycv.pdf and b/Master/texmf-dist/doc/latex/mycv/mycv.pdf differ diff --git a/Master/texmf-dist/doc/latex/mycv/mycv_split_contents.pl b/Master/texmf-dist/doc/latex/mycv/mycv_split_contents.pl index 58f335043a9..1fc172764dc 100644 --- a/Master/texmf-dist/doc/latex/mycv/mycv_split_contents.pl +++ b/Master/texmf-dist/doc/latex/mycv/mycv_split_contents.pl @@ -1,4 +1,4 @@ -#!/usr/bin/perl -w +#!/usr/bin/perl # ------------------------------------------------------- # Copyright 2012 Ghersi Andrea (ghanhawk@gmail.com). @@ -8,7 +8,7 @@ # 1.3c, available at 'http://www.latex-project.org/lppl'. # ------------------------------------------------------- -# $Id: mycv_split_contents.pl 83 2012-05-10 17:21:40Z ghangenit $ +# $Id: mycv_split_contents.pl 89 2012-05-19 18:23:03Z ghangenit $ use Getopt::Long; use File::Path; @@ -36,7 +36,6 @@ my $infile = 'cv_contents.tex'; # default input file my $cwd = getcwd(); # current directory my %opt = (); # hash for options - ### ### @@ -80,13 +79,11 @@ EOF exit 0; } - ### ### sub mcdie { printf STDERR @_, $!; exit 1; } - ### ### @@ -105,7 +102,6 @@ sub processCommandLine() return \%opt; } - ### ### @@ -122,7 +118,6 @@ sub _dealWithInOutFiles $opt{infile} = $infile; } - ### ### @@ -207,9 +202,8 @@ sub fileprocess ($) } } - ## ## MAIN ## -fileprocess( processCommandLine() ); \ No newline at end of file +fileprocess( processCommandLine() ); diff --git a/Master/texmf-dist/source/latex/mycv/mycv.dtx b/Master/texmf-dist/source/latex/mycv/mycv.dtx new file mode 100644 index 00000000000..129304a5a10 --- /dev/null +++ b/Master/texmf-dist/source/latex/mycv/mycv.dtx @@ -0,0 +1,1247 @@ +% \iffalse meta-comment +% mycv : a curriculum vitae class allowing TikZ decorations +% (v1.5.6 - Sun May 20 21:31:37 CEST 2012) +% +% 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'. +% +% This work consists of the main source file 'mycv.dtx' +% and the derived files: +% +% mycv.ins, +% mycv.cls, +% mycv_base.def, mycv_misc.def, mycv_version.def +% mycv_style.sty, mycv_dec.sty, +% mycv_split_contents.pl +% mycv.pdf +% +% Moreover, it also consists of the files 'README', +% 'CHANGELOG', 'checksum.pl' and folders +% and . +% +% Unpacking the class files: +% +% (pdf)latex mycv.dtx +% +% Generating the documentation: +% +% the documentation has to be produced separately as it +% uses the package 'arsclassica', that seems to be not +% fully compatible with the 'doc' package (that should +% be used in the driver file for producing the document). +% To produce the documentation, move to the folder 'Doc' +% and type: +% +% pdflatex mycv.tex +% +% Generating the examples: +% +% see the file 'Exampes/Notes.txt'. +% +% ---------------------------------------------------------- +% ** This file was automatically generated by +% ** with option(s) 'ctan'. +% ** Date: Sun May 20 21:31:37 CEST 2012::1337542297 +% ---------------------------------------------------------- +% \fi +%<*install> +\input docstrip.tex + +\preamble +-------------------------------------------------------- + Author: Andrea Ghersi + Copyright 2012 Ghersi Andrea (ghanhawk@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'. + + This work has the LPPL maintenance status "maintained". + The Current Maintainer of this work is Andrea Ghersi. + + This work consists of the files listed in the README + file. +-------------------------------------------------------- +\endpreamble + +\keepsilent +\askforoverwritefalse +\usedir{tex/latex/mycv} + +\generate{% + \file{mycv.ins}{\from{mycv.dtx}{install}}% + \file{mycv.cls}{\from{mycv.dtx}{mycv.cls}}% + \file{mycv_base.def}{\from{mycv.dtx}{mycv-base.def}}% + \file{mycv_misc.def}{\from{mycv.dtx}{mycv-misc.def}}% + \file{mycv_dec.sty}{\from{mycv.dtx}{mycv-dec.sty}}% + \file{mycv_style.sty}{\from{mycv.dtx}{mycv-style.sty}}% + \file{mycv_version.def}{\from{mycv.dtx}{mycv-version.def}}% +} + +\generate{% + \file{mycv_split_contents.pl}% + {\nopreamble\nopostamble\from{mycv.dtx}{mycv-split-contents.pl}}% +} + +\obeyspaces +\Msg{**************************************************************} +\Msg{* *} +\Msg{* To finish the installation you have to move the following *} +\Msg{* files into a directory searched by (La)TeX: *} +\Msg{* *} +\Msg{* mycv.cls, mycv*.def, mycv*.sty *} +\Msg{* *} +\Msg{* and copy the script 'mycv-split-contents.pl' into a folder *} +\Msg{* that is in your PATH environment variable. *} +\Msg{* On Unix-like operating systems, make the script executable *} +\Msg{* (i.e. chmod +x mycv-split-contents.pl). *} +\Msg{* *} +\Msg{* To produce the documentation, move to the folder and *} +\Msg{* run the file 'mycv.tex' twice through LaTeX. *} +\Msg{* *} +\Msg{* See the file 'Exampes/Notes.txt' for information on how to *} +\Msg{* produce pdf files with examples. *} +\Msg{* *} +\Msg{* If you want to verify the integrity of the main files, you *} +\Msg{* can run the script 'checksum.pl' (on Unix-like operating *} +\Msg{* systems, make it executable -- i.e. chmod +x checksum.pl). *} +\Msg{* *} +\Msg{* Happy (La)TeXing! *} +\Msg{* *} +\Msg{**************************************************************} + +\endbatchfile +% +% \StopEventually{} +% +% +% \iffalse +%<*mycv-base.def> +% \fi + +\ProvidesFileSVN + {$Id: mycv_base.def 87 2012-05-17 00:40:11Z ghangenit $} + [v\@versionstr][Base system core] + +%% for lists and other useful tools +\RequirePackage{etextools} + +%%%%%%%%%%%%%%%%%%% +%% % +%% Default values % +%% % +%%%%%%%%%%%%%%%%%%% + +\def\@mainbodypagesize{1.00} +\def\@subbodypagesize{0.45} + +\def\@mainheaderpagesize{1.00} +\def\@subheaderpagesize{0.44} + +\def\@mainfooterpagesize{1.00} +\def\@subfooterpagesize{0.44} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%% % +%% Layout components (parser) % +%% % +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\def\@cmdsListSep{:} +\def\@argsListSep{=} + +\expandaftercmds{\DeclareCmdListParser\MyParserCmds}{\@cmdsListSep} +\expandaftercmds{\DeclareCmdListParser\MyParserArgs}{\@argsListSep} + +%% ----------------------------------- +%% setup file components: header pages +%% ----------------------------------- + +\def\@MainHeaderPageBegin{MainHeaderPageBegin} +\def\@SubHeaderPageBegin{SubHeaderPageBegin} +\def\@MainHeaderPageEnd{MainHeaderPageEnd} +\def\@SubHeaderPageEnd{SubHeaderPageEnd} + +%% --------------------------------- +%% setup file components: body pages +%% --------------------------------- + +\def\@MainBodyPageBegin{MainBodyPageBegin} +\def\@MainBodyPageEnd{MainBodyPageEnd} +\def\@SubBodyPageBegin{SubBodyPageBegin} +\def\@SubBodyPageEnd{SubBodyPageEnd} + +\def\@MainFooterPageBegin{MainFooterPageBegin} +\def\@SubFooterPageBegin{SubFooterPageBegin} +\def\@MainFooterPageEnd{MainFooterPageEnd} +\def\@SubFooterPageEnd{SubFooterPageEnd} + +%% ------------------- +%% regular expressions +%% ------------------- + +\def\@regexPreCmd{} +\def\@regexPostCmd{} +\def\@regexArgsList{\@argsListSep([-!*@.0-9A-Za-z \@argsListSep]+)} + +\def\@regexMarginLB{/ml([0-9.-]+.{2})} +\def\@regexMarginRB{/mr([0-9.-]+.{2})} +\def\@regexPageSizeAbs{/pagesize([0-9.]+.{2})/} +\def\@regexPagebreak{/pagebreak/} +\def\@regexPageSize{<([0-9.]+)>} +\def\@regexMarginLE{/endml/} +\def\@regexMarginRE{/endmr/} +\def\@regexFileName{^([_\-a-zA-Z0-9]+)@} +\def\@regexCmdName{([a-zA-Z]+)} +\def\@regexFileVar{^.{1}([A-Za-z]+)} +\def\@regexParamTypeA{^[@]} +\def\@regexParamTypeB{^[!]} +\def\@regexParamTypeC{^[*]} + +%% ================== +%% Auxiliary commands +%% ================== + +\newcommand{\@concatCommandArg}[1]{% + \ifnum\pdfmatch{\@regexParamTypeA}{#1}=1 + \StrGobbleLeft{#1}{1}[\arg] + \expandafter\g@addto@macro\expandafter\args% + \expandafter{\expandafter[\arg]} + \else + \ifnum\pdfmatch{\@regexParamTypeB}{#1}=1 + \StrGobbleLeft{#1}{1}[\arg] + \expandafter\g@addto@macro\expandafter\args% + \expandafter{\expandafter<\arg>} + \else + \ifnum\pdfmatch{\@regexParamTypeC}{#1}=1 + \g@addto@macro\args{*} + \else + \g@addto@macro\args{{#1}} + \fi + \fi + \fi% +} + +\newcommand{\@execCommand}[1]{% + \let\args\@empty + \ifnum\pdfmatch{\@regexArgsList}{#1}=1 + \@getRegexResult{\argslist} + \ifnum\pdfmatch{\@regexCmdName}{#1}=1 + \@getRegexResult{\cmd} + \fi + \MyParserArgs[\@concatCommandArg]\argslist + \expandaftercmds{\csuse\cmd}{\args} + \else + \csuse{#1} + \fi% +} + +\newcommand{\@getRegexResult}[1]{% + \StrPosition{\pdflastmatch 1}{>}[\n] + \StrGobbleLeft{\pdflastmatch 1}{\n}[#1]% +} + +\newcommand{\@executeCommandList}[2]{% + \ifnum\pdfmatch{#2}{#1}=1% + \StrPosition{\pdflastmatch 1}{>}[\n] + \StrGobbleLeft{\pdflastmatch 1}{\n}[\cmdlist] + \MyParserCmds[\@execCommand]\cmdlist + \fi% +} + +\newcommand{\@parsePageBegin}[2]{% + \let\pagewidth#2 + \ifnum\pdfmatch{\@regexPageSize}{#1}=1 + \@getRegexResult{\pagewidth} + \fi + \@executeCommandList{#1}{\@regexPreCmd} + \ifnum\pdfmatch{\@regexPageSizeAbs}{#1}=1 + \@getRegexResult{\pagewidth} + \noindent\begin{minipage}[t]{\pagewidth} + \else + \noindent\begin{minipage}[t]{\pagewidth\textwidth} + \fi + \@executeCommandList{#1}{\@regexPostCmd} + \ifnum\pdfmatch{\@regexMarginLB}{#1}=1 + \@getRegexResult{\marginsize} + \begin{mychangemarginLeft}{\marginsize} + \fi + \ifnum\pdfmatch{\@regexMarginRB}{#1}=1 + \@getRegexResult{\marginsize} + \begin{mychangemarginRight}{\marginsize} + \fi% +} + +\newcommand{\@parsePageEnd}[1]{% + \ifnum\pdfmatch{\@regexMarginRE}{#1}=1 + \end{mychangemarginRight} + \fi + \ifnum\pdfmatch{\@regexMarginLE}{#1}=1 + \end{mychangemarginLeft} + \fi + \@executeCommandList{#1}{\@regexPreCmd} + \ifnum\pdfmatch{\@regexPagebreak}{#1}=1 + \end{minipage} + + \else + \end{minipage} + \fi + \@executeCommandList{#1}{\@regexPostCmd} +} + +\newcommand{\@parseFileName}[1]{% + \let\marginsizeleft\relax + \let\marginsizeright\relax + \@executeCommandList{#1}{\@regexPreCmd} + \ifnum\pdfmatch{\@regexMarginLB}{#1}=1 + \@getRegexResult{\marginsizeleft} + \begin{mychangemarginLeft}{\marginsizeleft} + \fi + \ifnum\pdfmatch{\@regexMarginRB}{#1}=1 + \@getRegexResult{\marginsizeright} + \begin{mychangemarginRight}{\marginsizeright} + \fi + \IfBeginWith{#1}{*}{% + \ifnum\pdfmatch{\@regexFileVar}{\noexpand#1}=1 + \@getRegexResult{\filename} + \fi + \input\cvcontentsdir/\csuse{\filename} + }% + {% + \ifnum\pdfmatch{\@regexFileName}{#1}=1 + \@getRegexResult{\filename} + \fi + \input\cvcontentsdir/\filename + } + \@executeCommandList{#1}{\@regexPostCmd} + \ifx\marginsizeright\relax + \relax + \else + \end{mychangemarginRight} + \fi + \ifx\marginsizeleft\relax + \relax + \else + \end{mychangemarginLeft} + \fi +} + +%% ============= +%% Main commands +%% ============= + +\newcommand{\@bodylayoutlistentry}[1]{% + \ifstrmatch{\@SubBodyPageBegin}{#1}{% + \@parsePageBegin{#1}{\@subbodypagesize}% + }% + {% + \ifstrmatch{\@SubBodyPageEnd}{#1}{% + \@parsePageEnd{#1}% + }% + {%else + \ifstrmatch{\@MainBodyPageBegin}{#1}{% + \@parsePageBegin{#1}{\@mainbodypagesize}% + }% + {%else + \ifstrmatch{\@MainBodyPageEnd}{#1}{% + \@parsePageEnd{#1}% + }% + {%else + \@parseFileName{#1}% + }% + }% + }% + }% +} + +\newcommand{\@headerlayoutlistentry}[1]{% + \ifstrmatch{\@MainHeaderPageBegin}{#1}{% + \@parsePageBegin{#1}{\@mainheaderpagesize}% + }% + {%else + \ifstrmatch{\@SubHeaderPageBegin}{#1}{% + \@parsePageBegin{#1}{\@subheaderpagesize}% + }% + {%else + \ifstrmatch{\@MainHeaderPageEnd}{#1}% + {\@parsePageEnd{#1}}% + {%else + \ifstrmatch{\@SubHeaderPageEnd}{#1}{% + \@parsePageEnd{#1}% + }% + {%else + \@parseFileName{#1}% + }% + }% + }% + }% +} + +\newcommand{\@footerlayoutlistentry}[1]{% + \ifstrmatch{\@MainFooterPageBegin}{#1}{% + \@parsePageBegin{#1}{\@mainfooterpagesize}% + }% + {%else + \ifstrmatch{\@SubFooterPageBegin}{#1}{% + \@parsePageBegin{#1}{\@subfooterpagesize}% + }% + {%else + \ifstrmatch{\@MainFooterPageEnd}{#1}% + { \@parsePageEnd{#1}% + }% + {%else + \ifstrmatch{\@SubFooterPageEnd}{#1}{% + \@parsePageEnd{#1}% + }% + {%else + \@parseFileName{#1}% + }% + }% + }% + }% +} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%% % +%% Layout components (render) % +%% % +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\newcommand{\@raisewarning}[1]{% + \ClassWarning{mycv}{% + WARNING! The list <#1> used by 'mycv' class is undefined. % + Please, define it before using '\myrenderlayout' command. % + }% +} + +\DeclareRobustCommand{\myrenderlayout}[1][a]{% + \begingroup + \ifsinglechar{b}{#1}{% + \@ifundefined{bodylayoutlist}% + {\@raisewarning{bodylayoutlist}}% else + {\csvloop[\@bodylayoutlistentry]{\bodylayoutlist}}% + }% + {%else + \ifsinglechar{h}{#1}{% + %% -------- + %% HEADINGS + %% -------- + \@ifundefined{headerlayoutlist}% + {\@raisewarning{headerlayoutlist}}% else + {\csvloop[\@headerlayoutlistentry]\headerlayoutlist}% + }% + {%else + %% ------------------------------------------------ + %% FOOTINGS: sign and treatment of personal details + %% ------------------------------------------------ + \ifsinglechar{f}{#1}{% + \@ifundefined{footerlayoutlist}% + {\@raisewarning{footerlayoutlist}}% else + {\csvloop[\@footerlayoutlistentry]\footerlayoutlist}% + }% + {%\else + %% -------------- + %% ALL COMPONENTS + %% -------------- + \@ifundefined{headerlayoutlist}% + {\@raisewarning{headerlayoutlist}}% else + {\csvloop[\@headerlayoutlistentry]\headerlayoutlist}% + \@ifundefined{bodylayoutlist}% + {\@raisewarning{bodylayoutlist}}% else + {\csvloop[\@bodylayoutlistentry]\bodylayoutlist} + \@ifundefined{footerlayoutlist}% + {\@raisewarning{footerlayoutlist}}% else + {\csvloop[\@footerlayoutlistentry]\footerlayoutlist}% + }% + }% + }% + \endgroup +} +% \iffalse +% +% \fi +% +% +% \iffalse +%<*mycv-misc.def> +% \fi +%% ------------------------------------------------------- +%% Copyright 2012 Ghersi Andrea (ghanhawk@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'. +%% ------------------------------------------------------- + +\ProvidesFileSVN + {$Id: mycv_misc.def 66 2012-04-28 14:38:41Z ghangenit $} + [v\@versionstr][Miscellaneous commands] + +\RequirePackage{hyperref} + +%% ----------------------------------------------------- +%% partial hyperref setup: the rest is set in style file +%% ----------------------------------------------------- + +\hypersetup{% + pdfstartpage = 1, + pdfauthor = \@pdfauthor, + pdftitle = \@pdftitle, + pdfsubject = \@pdfsubject, + pdfproducer = \LaTeX{}, + pdfkeywords = cv curriculum vit\ae{}, + pdfcreator = \LaTeX{} with 'mycv' (v\@versionstr) +} + +%%%%%%%%%%%% +%% % +%% Margins % +%% % +%%%%%%%%%%%% + +\newenvironment{mychangemargin}[2] + {\begin{list}{}{% + \setlength{\topsep}{0pt}% + \setlength{\leftmargin}{#1}% + \setlength{\rightmargin}{#2}% + \setlength{\partopsep}{0pt}% + \setlength{\parsep}{\parskip}}\item[]% + }% + {\end{list}} + +\newenvironment{mychangemarginLeft}[1] + {\begin{list}{}{% + \setlength{\topsep}{0pt}% + \setlength{\leftmargin}{#1}% + \setlength{\partopsep}{0pt}% + \setlength{\parsep}{\parskip}}\item[]% + }% + {\end{list}} + +\newenvironment{mychangemarginRight}[1] + {\begin{list}{}{% + \setlength{\topsep}{0pt}% + \setlength{\rightmargin}{#1}% + \setlength{\partopsep}{0pt}% + \setlength{\parsep}{\parskip}}\item[]% + }% + {\end{list}} + +%%%%%%%%%%%%%%%% +%% % +%% Other stuff % +%% % +%%%%%%%%%%%%%%%% + +\DeclareRobustCommand{\mylang}[2][english]{% + \foreignlanguage{#1}{{z#2}}} %{\color{blue}{#2}}} + +%% ------------ +%% pdf metadata +%% ------------ + +\DeclareRobustCommand{\mypdfsubject}[1]{\def\@pdfsubject{#1}} +\DeclareRobustCommand{\mypdfauthor}[1]{\def\@pdfauthor{#1}} +\DeclareRobustCommand{\mypdftitle}[1]{\def\@pdftitle{#1}} + + +% \iffalse +% +% \fi +% +% +% \iffalse +%<*mycv-version.def> +% \fi +\def\@versionstr{1.5.6} +% \iffalse +% +% \fi +% +% +% \iffalse +%<*mycv.cls> +% \fi + +\NeedsTeXFormat{LaTeX2e} + +\RequirePackage{svn-prov} +\input{mycv_version.def} + +\ProvidesClassSVN + {$Id: mycv.cls 87 2012-05-17 00:40:11Z ghangenit $} + [v\@versionstr][My Curriculum Vitae class] + +%% ======== +%% Packages +%% ======== + +\RequirePackage{kvoptions} % for class options with key-value format +\RequirePackage{xstring} % for string utilities +\RequirePackage{ifthen} % for the <\ifthenelse> command + +%% ============= +%% Class Options +%% ============= + +\DeclareBoolOption{withDec} + +\DeclareDefaultOption{% + \PassOptionsToClass{\CurrentOption}{article}} + +\DeclareStringOption[english]{language} +\DeclareStringOption[Contents]{cntdir} +\DeclareStringOption[mycv_style]{style} +\DeclareStringOption[]{mdlname} +\ProcessKeyvalOptions* + +%% ----------------------------------------------------------- +%% The value of an option declared with <\DeclareStringOption> +%% is stored in the macro \@