diff options
author | Karl Berry <karl@freefriends.org> | 2021-12-01 21:09:22 +0000 |
---|---|---|
committer | Karl Berry <karl@freefriends.org> | 2021-12-01 21:09:22 +0000 |
commit | 6772b29c795ab21ab01360e0f9c68349a2091371 (patch) | |
tree | cdf43fb4547d742d8339add05a84376c5e8c8429 /Master | |
parent | feba7386a435fd5953f843e5f6b1091c02efe9fb (diff) |
limecv (1dec21)
git-svn-id: svn://tug.org/texlive/trunk@61199 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master')
-rw-r--r-- | Master/texmf-dist/doc/latex/limecv/examples/mwe-latex.pdf | bin | 138929 -> 141896 bytes | |||
-rw-r--r-- | Master/texmf-dist/doc/latex/limecv/examples/mwe-latex.tex | 3 | ||||
-rw-r--r-- | Master/texmf-dist/doc/latex/limecv/examples/mwe-lualatex.pdf | bin | 42544 -> 42898 bytes | |||
-rw-r--r-- | Master/texmf-dist/doc/latex/limecv/examples/mwe-lualatex.tex | 3 | ||||
-rw-r--r-- | Master/texmf-dist/doc/latex/limecv/examples/mwe-xelatex.pdf | bin | 43259 -> 45233 bytes | |||
-rw-r--r-- | Master/texmf-dist/doc/latex/limecv/examples/mwe-xelatex.tex | 48 | ||||
-rw-r--r-- | Master/texmf-dist/doc/latex/limecv/limecv.pdf | bin | 207251 -> 203811 bytes | |||
-rw-r--r-- | Master/texmf-dist/source/latex/limecv/limecv.dtx | 232 | ||||
-rw-r--r-- | Master/texmf-dist/source/latex/limecv/limecv.ins | 10 | ||||
-rw-r--r-- | Master/texmf-dist/tex/latex/limecv/limecv.cls | 159 |
10 files changed, 321 insertions, 134 deletions
diff --git a/Master/texmf-dist/doc/latex/limecv/examples/mwe-latex.pdf b/Master/texmf-dist/doc/latex/limecv/examples/mwe-latex.pdf Binary files differindex d23fb38b778..5b5bb097d71 100644 --- a/Master/texmf-dist/doc/latex/limecv/examples/mwe-latex.pdf +++ b/Master/texmf-dist/doc/latex/limecv/examples/mwe-latex.pdf diff --git a/Master/texmf-dist/doc/latex/limecv/examples/mwe-latex.tex b/Master/texmf-dist/doc/latex/limecv/examples/mwe-latex.tex index 6f2b24734fd..9d55ab39868 100644 --- a/Master/texmf-dist/doc/latex/limecv/examples/mwe-latex.tex +++ b/Master/texmf-dist/doc/latex/limecv/examples/mwe-latex.tex @@ -115,7 +115,8 @@ position=Job title, address line 1=Street lane 2, address line 2=B-1150 Brussels, - mobile phone=+1 781 555 1212}% + mobile phone=+1 781 555 1212, + email=john\_doe@company.com}% \end{cvReferences} \end{cvMainContent} diff --git a/Master/texmf-dist/doc/latex/limecv/examples/mwe-lualatex.pdf b/Master/texmf-dist/doc/latex/limecv/examples/mwe-lualatex.pdf Binary files differindex a5d151f860c..c70383b458d 100644 --- a/Master/texmf-dist/doc/latex/limecv/examples/mwe-lualatex.pdf +++ b/Master/texmf-dist/doc/latex/limecv/examples/mwe-lualatex.pdf diff --git a/Master/texmf-dist/doc/latex/limecv/examples/mwe-lualatex.tex b/Master/texmf-dist/doc/latex/limecv/examples/mwe-lualatex.tex index 8c585ca6070..9b0165e9c5c 100644 --- a/Master/texmf-dist/doc/latex/limecv/examples/mwe-lualatex.tex +++ b/Master/texmf-dist/doc/latex/limecv/examples/mwe-lualatex.tex @@ -115,7 +115,8 @@ position=Job title, address line 1=Street lane 2, address line 2=B-1150 Brussels, - mobile phone=+1 781 555 1212}% <<-- important! + mobile phone=+1 781 555 1212, + email=john\_doe@company.com}% <<-- important! \end{cvReferences} \end{cvMainContent} diff --git a/Master/texmf-dist/doc/latex/limecv/examples/mwe-xelatex.pdf b/Master/texmf-dist/doc/latex/limecv/examples/mwe-xelatex.pdf Binary files differindex cfe03916755..2ba90b9b521 100644 --- a/Master/texmf-dist/doc/latex/limecv/examples/mwe-xelatex.pdf +++ b/Master/texmf-dist/doc/latex/limecv/examples/mwe-xelatex.pdf diff --git a/Master/texmf-dist/doc/latex/limecv/examples/mwe-xelatex.tex b/Master/texmf-dist/doc/latex/limecv/examples/mwe-xelatex.tex index fcc52ec7662..82a36626a91 100644 --- a/Master/texmf-dist/doc/latex/limecv/examples/mwe-xelatex.tex +++ b/Master/texmf-dist/doc/latex/limecv/examples/mwe-xelatex.tex @@ -55,11 +55,14 @@ \end{cvContact} \begin{cvLanguages} - \cvLanguage{English (native)}{5} \cvLanguage{German (B2)}{3} \cvLanguage{Spanish}{3} \end{cvLanguages} + \begin{cvLanguages}[norating] + \cvLanguage{English (native)} + \end{cvLanguages} + \begin{cvInterests}[short] \cvInterestsPersonal \cvInterest{\faTrain}{model trains} @@ -117,13 +120,54 @@ position=Job title, address line 1=Street lane 2, address line 2=B-1150 Brussels, - mobile phone=+1 781 555 1212}% <<-- important! + mobile phone=+1 781 555 1212, + email=john\_doe@company.com}% <<-- important! \end{cvReferences} \end{cvMainContent} \clearpage +\begin{cvMainContent*} + \begin{cvEducation} + \cvItem{Evening class: Chinese\\ + Some School, City. September 2015 -- June 2016\\ + Achieved A2 language skill in Chinese (Mandarin).} + \cvItem{Bachelor of Science in Biochemistry and Biotechnology\\ + University, City. September 2009 -- June 2012\\ + General training in the basic sciences and the molecular life science.} + \cvItem{Master of Science in Biochemistry and Biotechnology\\ + University, City. September 2012 -- June 2015\\ + Acquisition of insight into and knowledge of possibilities for application in the area of biochemistry and biotechnology, specific with applications in biomedical application and due problem-solving reasoning skills.} + \end{cvEducation} + + \begin{cvSkills} + \cvSkillTwo{5}{MATLAB}{5}{\LaTeX} + \cvSkillTwo{4}{Python}{4}{VHDL} + \cvSkillTwo{4}{Microsoft Office}{4}{macOS} + \cvSkillTwo{3}{C, C++}{1}{Javascript} + \cvSkillTwo{3}{HTML5/CSS}{3}{Bash} + \end{cvSkills} + +\end{cvMainContent*} + +\begin{cvSidebar*} +Lorem ipsum dolor sit amet, consectetur adipiscing elit. Morbi dictum cursus sapien, id eleifend mi pellentesque id. Etiam lobortis eu odio a sodales. Phasellus ut dolor feugiat, lacinia lectus in, blandit metus. Fusce lacinia dolor et metus gravida pulvinar sit amet et ex. Suspendisse vestibulum, leo malesuada molestie maximus, sem risus ornare elit, vitae sodales felis elit in ipsum. + + \begin{cvInterests}[short] + \cvInterestsPersonal + \cvInterest{\faTrain}{model trains} + \cvInterest{\faGamepad}{gaming} + \cvInterest{\faSuitcase}{travelling} + \cvInterestsProfessional + \cvInterest{\faFilm}{film} + \cvInterest{\faCamera}{photography} + \end{cvInterests} +\end{cvSidebar*} + + +\clearpage + \begin{cvCoverLetter} \cvBeneficiary{% diff --git a/Master/texmf-dist/doc/latex/limecv/limecv.pdf b/Master/texmf-dist/doc/latex/limecv/limecv.pdf Binary files differindex c88b31ac720..5a5e9ce1d45 100644 --- a/Master/texmf-dist/doc/latex/limecv/limecv.pdf +++ b/Master/texmf-dist/doc/latex/limecv/limecv.pdf diff --git a/Master/texmf-dist/source/latex/limecv/limecv.dtx b/Master/texmf-dist/source/latex/limecv/limecv.dtx index 99600b830cd..2230f498ac0 100644 --- a/Master/texmf-dist/source/latex/limecv/limecv.dtx +++ b/Master/texmf-dist/source/latex/limecv/limecv.dtx @@ -1,14 +1,14 @@ % \iffalse meta-comment % -% Copyright (C) 2017 - 2020 by Olivier Pieters +% Copyright (C) 2017 - 2021 by Olivier Pieters % -------------------------------------------------------------------------- % This work may be distributed and/or modified under the % conditions of the LaTeX Project Public License, either version 1.3 % of this license or (at your option) any later version. % The latest version of this license is in % http://www.latex-project.org/lppl.txt -% and version 1.3 or later is part of all distributions of LaTeX -% version 2005/12/01 or later. +% and version 1.3c or later is part of all distributions of LaTeX +% version 2008-05-04 or later. % % This work has the LPPL maintenance status `maintained'. % @@ -26,7 +26,7 @@ %<class>\NeedsTeXFormat{LaTeX2e}[1999/12/01] %<class>\ProvidesClass{limecv} %<*class> - [2020/03/15 v0.1.8 limecv Document class for CVs.] + [2021/12/01 v0.1.12 limecv Document class for CVs.] %</class> % %<*driver> @@ -69,7 +69,7 @@ %</driver> % \fi % -% \CheckSum{1632} +% \CheckSum{1697} % % \CharacterTable % {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z @@ -98,13 +98,20 @@ % \changes{v0.1.6}{2018/06/17}{Added support for French.} % \changes{v0.1.7}{2020/02/08}{Added support for Italian.} % \changes{v0.1.8}{2020/03/15}{Upgrade to Font Awesome 5.} +% \changes{v0.1.9}{2021/01/21}{Added support for Spanish.} +% \changes{v0.1.10}{2021/12/01}{Bug fix in cover letter design for long names. % +% Fixes issue when counter environments were used multiple times.} +% \changes{v0.1.11}{2021/12/01}{Implement option to add email key to % +% references.} +% \changes{v0.1.12}{2021/12/01}{Fix alignment issue for cvMainContent* and % +% cvSidebar*.} % % \DoNotIndex{\NewDocumentCommand,\NewDocumentEnvironment} % % \providecommand*{\url}{\texttt} % -% \def\fileversion{v0.1.8} -% \def\filedate{2020/03/15} +% \def\fileversion{v0.1.12} +% \def\filedate{2021/12/01} % % \GetFileInfo{limecv.dtx} % \title{The \textsf{limecv} document class\thanks{This document corresponds % @@ -173,7 +180,8 @@ % % \DescribeMacro{\cvSetLanguage} The default language is English and can % be modified using the |\cvSetLanguage| macro. Possible arguments are: -% |chinese|, |dutch|, |english|, |french|, |german|, |italian|. +% |chinese|, |dutch|, |english|, |french|, |german|, |italian|, and +% |spanish|. % If your language is not supported or you want to override a word in any % supported language, you can modify the keys that hold the different % section titles. These can be in the source code. The following snippet @@ -606,6 +614,24 @@ % \iffalse %</example> % \fi +% +% \DescribeMacro{cvList} +% If the above sections do not fit your needs, you can define a new section +% using +% |cvList{|\meta{environment name}|}{|\meta{storage key}|}{|\meta{icon}|}|. +% It is also used internally for |cvExperience| and |cvEducation|, e.g.: +% +% \iffalse +%<*example> +% \fi +\begin{lstlisting}[% + caption={\lstinline!cvList! code example.}, + label=cvList] + \cvList{cvEducation}{education}{\faGraduationCap} + \end{lstlisting} +% \iffalse +%</example> +% \fi % % \section{Cover Letter} % @@ -836,18 +862,18 @@ Dear Miss.\ Smith % % limecv.cls % -% Copyright 2017 Olivier Pieters +% Copyright 2017 - 2021 by Olivier Pieters % % A (Xe/Lua)LaTeX document class % % % This work may be distributed and/or modified under the -% conditions of the LaTeX Project Public License, either version 1.3 +% conditions of the LaTeX Project Public License, either version 1.3c % of this license or (at your option) any later version. % The latest version of this license is in % http://www.latex-project.org/lppl.txt -% and version 1.3 or later is part of all distributions of LaTeX -% version 2005/12/01 or later. +% and version 1.3c or later is part of all distributions of LaTeX +% version 2008-05-04 or later. % % This work has the LPPL maintenance status `maintained'. % @@ -1670,13 +1696,13 @@ Dear Miss.\ Smith \pgfkeys{/@cv/names/languages = Sprachen}% \pgfkeys{/@cv/names/interests = Interessen}% \pgfkeys{/@cv/names/professional = Beruflich}% - \pgfkeys{/@cv/names/personal = Persönlich}% + \pgfkeys{/@cv/names/personal = Pers\"{o}nlich}% \pgfkeys{/@cv/names/projects = Projekte}% \pgfkeys{/@cv/names/education = Ausbildung}% \pgfkeys{/@cv/names/experience = Berufliche Erfahrung}% \pgfkeys{/@cv/names/references = Referenzen}% \pgfkeys{/@cv/names/skills = Kenntnisse}% - \pgfkeys{/@cv/names/publications = Veröffentlichungen}% + \pgfkeys{/@cv/names/publications = Ver\"{o}ffentlichungen}% } % \end{macrocode} % @@ -1700,6 +1726,25 @@ Dear Miss.\ Smith % \end{macrocode} % % +% Set the title names to Spanish: +% \begin{macrocode} +\NewDocumentCommand{\cv@setSpanish}{}{ + \pgfkeys{/@cv/names/profile = Perfil}% + \pgfkeys{/@cv/names/contact = Contacto}% + \pgfkeys{/@cv/names/languages = Idiomas}% + \pgfkeys{/@cv/names/interests = Intereses}% + \pgfkeys{/@cv/names/professional = Profesionales}% + \pgfkeys{/@cv/names/personal = Personales}% + \pgfkeys{/@cv/names/projects = Proyectos}% + \pgfkeys{/@cv/names/education = Formación}% + \pgfkeys{/@cv/names/experience = Experiencia}% + \pgfkeys{/@cv/names/skills = Habilidades}% + \pgfkeys{/@cv/names/references = Referencias}% + \pgfkeys{/@cv/names/publications = Publicaciones}% +} +% \end{macrocode} +% +% % Set the actual language to English. This can be overwritten by the user in the % preamble % @@ -1714,14 +1759,15 @@ Dear Miss.\ Smith {french} {\cv@setFrench} {german} {\cv@setGerman} {italian} {\cv@setItalian} + {spanish} {\cv@setSpanish} {chinese} {% \usepackage[BoldFont,SlantFont]{xeCJK}% \cv@setChinese% } } {\ClassError{limecv}{Unknown option `#1' for cvLanguage % - macro.}{Only `english', `chinese`, `dutch`, `french`, `german` % - and `italian` are valid options for this macro.}} + macro.}{Only `english', `chinese`, `dutch`, `french`, `german`, % + `italian` and `spanish` are valid options for this macro.}} } \ExplSyntaxOff \cvSetLanguage{english} @@ -1774,6 +1820,11 @@ Dear Miss.\ Smith % % \begin{macrocode} \NewDocumentEnvironment{cvMainContent}{}{% + \stepcounter{cv@titlePrev} + \stepcounter{cv@titleNext} + \stepcounter{cv@itemPrev} + \stepcounter{cv@itemNext} + \stepcounter{cv@lastItem} \begin{tikzpicture}[% every node/.style={% inner sep=0pt, @@ -1786,8 +1837,11 @@ Dear Miss.\ Smith \end{tikzpicture} } \NewDocumentEnvironment{cvMainContent*}{}{% - \stepcounter{titlePrev} - \stepcounter{titleNext} + \stepcounter{cv@titlePrev} + \stepcounter{cv@titleNext} + \stepcounter{cv@itemPrev} + \stepcounter{cv@itemNext} + \stepcounter{cv@lastItem} \begin{tikzpicture}[% every node/.style={ inner sep=0pt, @@ -1802,11 +1856,14 @@ Dear Miss.\ Smith % \end{macrocode} %------------------------------------------------------ % -% cvEductation environment +% cvList environment: a general environment for +% grouped lists. This environment is used to +% generate e.g.\ |cvEducation|, |cvExperience| etc. % % \begin{macrocode} -\NewDocumentEnvironment{cvEducation}{}{% - \cv@Title{\pgfkeysvalueof{/@cv/names/education}}{\faGraduationCap} +\NewDocumentCommand{\cvList}{mmm} {% + \NewDocumentEnvironment{#1}{}{% + \cv@Title{\pgfkeysvalueof{/@cv/names/#2}}{#3} % \end{macrocode} % insures uniqueness % \begin{macrocode} @@ -1818,27 +1875,22 @@ Dear Miss.\ Smith \stepcounter{cv@lastItem} \draw (item \the\value{cv@itemPrev}.south west) node (cv@last item \the\value{cv@lastItem}) {}; + } } % \end{macrocode} %------------------------------------------------------ % -% cvExperience environment +% cvEductation environment % % \begin{macrocode} -\NewDocumentEnvironment{cvExperience}{}{% - \cv@Title{\pgfkeysvalueof{/@cv/names/experience}}{\faBriefcase} +\cvList{cvEducation}{education}{\faGraduationCap} % \end{macrocode} -% insures uniqueness +%------------------------------------------------------ +% +% cvExperience environment +% % \begin{macrocode} - \stepcounter{cv@itemPrev} - \stepcounter{cv@itemNext} - \cv@definecvItem -}{% - \cv@EndSectionDraw - \stepcounter{cv@lastItem} - \draw (item \the\value{cv@itemPrev}.south west) - node (cv@last item \the\value{cv@lastItem}) {}; -} +\cvList{cvExperience}{experience}{\faBriefcase} % \end{macrocode} %------------------------------------------------------ % @@ -1848,6 +1900,7 @@ Dear Miss.\ Smith \NewDocumentEnvironment{cvSkills}{}{% \cv@Title{\pgfkeysvalueof{/@cv/names/skills}}{\faStar} \global\cv@firstskilltrue + \RenewDocumentCommand{\cv@skillsTable}{}{} }{% \node[ below=\cvSectionSep of cv@title \the\value{cv@titlePrev}% @@ -1866,20 +1919,7 @@ Dear Miss.\ Smith % cvPublications environment % % \begin{macrocode} -\NewDocumentEnvironment{cvPublications}{}{% -\cv@Title{\pgfkeysvalueof{/@cv/names/publications}}{\faNewspaper} -% \end{macrocode} -% insures uniqueness -% \begin{macrocode} - \stepcounter{cv@itemPrev} - \stepcounter{cv@itemNext} - \cv@definecvItem -}{% - \cv@EndSectionDraw - \stepcounter{cv@lastItem} - \draw (item \the\value{cv@itemPrev}.south west) - node (cv@last item \the\value{cv@lastItem}) {}; -} +\cvList{cvPublications}{publications}{\faNewspaper} % \end{macrocode} %------------------------------------------------------ % @@ -1935,6 +1975,10 @@ Dear Miss.\ Smith \pgfkeys{/@cv/references/mobile phone/.is if=% cv@refMobilePhone} \pgfkeys{/@cv/references/mobile phone=false} +\newif\ifcv@refEmail +\pgfkeys{/@cv/references/email/.is if=% + cv@refEmail} +\pgfkeys{/@cv/references/email=false} \newif\ifcv@refStored \pgfkeys{/@cv/references/value stored/.is if=% cv@refStored} @@ -1997,6 +2041,11 @@ Dear Miss.\ Smith \@IfNoValueOrEmptyTF{#1}{}{\pgfkeys{/@cv/references/mobile phone = true}}} % \end{macrocode} % +% \begin{macrocode} +\define@key{cvAddReferenceA}{email}{% + \global\def\cv@refAEmail{#1}% + \@IfNoValueOrEmptyTF{#1}{}{\pgfkeys{/@cv/references/email = true}}} +% \end{macrocode} % % \begin{macrocode} \define@key{cvAddReferenceB}{name}{% @@ -2051,6 +2100,17 @@ Dear Miss.\ Smith \define@key{cvAddReferenceB}{mobile phone}{% \global\def\cv@refBMobilePhone{#1}% \@IfNoValueOrEmptyTF{#1}{}{\pgfkeys{/@cv/references/mobile phone = true}}} +% \end{macrocode} +% +% +% \begin{macrocode} +\define@key{cvAddReferenceB}{email}{% + \global\def\cv@refBEmail{#1}% + \@IfNoValueOrEmptyTF{#1}{}{\pgfkeys{/@cv/references/email = true}}} +% \end{macrocode} +% +% +% \begin{macrocode} \NewDocumentCommand{\cvAddReference}{sm}{% \IfBooleanTF{#1}{% \setkeys{cvAddReferenceA}{name=,company=, @@ -2074,6 +2134,7 @@ Dear Miss.\ Smith \ifcv@refAddressLineC \\ \cv@refAAddressLineC & \cv@refBAddressLineC \fi % \ifcv@refWorkPhone \\ \cv@refAPhoneWork & \cv@refBPhoneWork \fi % \ifcv@refMobilePhone \\ \cv@refAMobilePhone & \cv@refBMobilePhone \fi % + \ifcv@refEmail \\ \cv@refAEmail & \cv@refBEmail \fi % \end{tabular}% \pgfkeys{/@cv/references/value stored = false}% \else% @@ -2087,6 +2148,7 @@ Dear Miss.\ Smith \ifcv@refAddressLineC \\ \cv@refBAddressLineC \fi % \ifcv@refWorkPhone \\ \cv@refBPhoneWork \fi % \ifcv@refMobilePhone \\ \cv@refBMobilePhone \fi % + \ifcv@refEmail \\ \cv@refBEmail \fi % \end{tabular}% \fi% }% @@ -2113,13 +2175,14 @@ Dear Miss.\ Smith \end{minipage} \vspace*{\fill} } -\NewDocumentEnvironment{cvSidear*}{}{% +\NewDocumentEnvironment{cvSidebar*}{}{% \vspace*{\fill} \vspace*{-0.5\cvMargin} \begin{tikzpicture}[remember picture,overlay] \fill[cvGreenLight] (current page.north east) rectangle % ++(-\cvSideWidth-2\cvMargin,-\paperheight); \end{tikzpicture}% + \hspace*{\paperwidth-\cvSideWidth-2\cvMargin}% \begin{minipage}{\cvSideWidth} \begin{center} }{% @@ -2319,6 +2382,9 @@ Dear Miss.\ Smith for this environment.}} } + \stepcounter{cv@cvInterestCounter} + \stepcounter{cv@cvInterestCounterPrev} + \cv@definecv@interestSection % \end{macrocode} % define new commands @@ -2344,6 +2410,7 @@ Dear Miss.\ Smith \vspace{\cvSectionSBSep} }{% \cv@interestClose + \global\cv@interestContentfalse } \ExplSyntaxOff % \end{macrocode} @@ -2489,27 +2556,48 @@ Dear Miss.\ Smith \pgfkeys{/@cv/languages/.is family, /@cv/languages/.unknown/.style = {% \pgfkeyscurrentpath/\pgfkeyscurrentname/.initial = #1}} -\NewDocumentEnvironment{cvLanguages}{}{% - \NewDocumentCommand{\cvLanguage}{mm}{% - {\globaldefs=1\relax\pgfkeys{% - /@cv/languages/lang\the\value{cv@languages} = ##2}} - \node[cv@languageText]{##1}; \pgfmatrixnextcell % - \node[cv@progressArea] (cv@language \the\value{cv@languages}) {}; \\ - \stepcounter{cv@languages} - }% + +\newif\ifcv@languagerating +\cv@languageratingtrue +\NewDocumentEnvironment{cvLanguages}{ o }{% + \IfNoValueTF{#1}{ + \NewDocumentCommand{\cvLanguage}{mm}{% + {\globaldefs=1\relax\pgfkeys{% + /@cv/languages/lang\the\value{cv@languages} = ##2}} + \node[cv@languageText]{##1}; \pgfmatrixnextcell % + \node[cv@progressArea] (cv@language \the\value{cv@languages}) {}; \\ + \stepcounter{cv@languages} + }% + \cv@languageratingtrue + }{ + \NewDocumentCommand{\cvLanguage}{m}{% + \node[cv@languageText]{##1}; \\ + \stepcounter{cv@languages} + }% + \cv@languageratingfalse + } \vspace{\cvSectionSBSep} \ruleline{\pgfkeysvalueof{/@cv/names/languages}}% \vspace{\cvSectionSBSep} \begin{tikzpicture}[% every node/.style={text depth=0pt,inner sep=0pt,outer sep=0pt}] - \matrix [ + \ifcv@languagerating + \matrix [% column 1/.style={anchor=east}, column sep=1.5\cvSectionSBSep, row sep=1.5\cvSectionSBSep, column 2/.style={anchor=west,align=left} ] (contact) \bgroup + \else + \matrix [% + column sep=1.5\cvSectionSBSep, + row sep=1.5\cvSectionSBSep, + column 2/.style={anchor=west,align=left} + ] (contact) \bgroup + \fi }{% \\\egroup; + \ifcv@languagerating \newcounter{cv@languagelevel} \setcounter{cv@languagelevel}{1} \loop\ifnum\value{cv@languagelevel}<\value{cv@languages} @@ -2521,6 +2609,7 @@ Dear Miss.\ Smith {}; \stepcounter{cv@languagelevel} \repeat + \fi \end{tikzpicture} } % \end{macrocode} @@ -2654,25 +2743,28 @@ Dear Miss.\ Smith \draw (current page.north east) % ++(-0.5\paperwidth+0.5\cvCoverLetterWidth, -\cvCoverLetterHeight/2) node (cv@h7) {}; - \node[anchor=east] at (cv@h7) (cv cover letter name){% - \fontsize{50}{60}\selectfont + \node[% + anchor=east, + align=flush right, + text width=\textwidth] at (cv@h7) (cv cover letter name){% + \fontsize{50}{60}\selectfont % \end{macrocode} % trick to expand argument such that `kleft` sees an % alphabetic constant (i.e. a single letter) % \begin{macrocode} - \begingroup\edef\y{\endgroup% - \noexpand\kleft{\cv@FirstNameLetter}}% - \y - \StrGobbleLeft{\pgfkeysvalueof{/@cv/info/first name}}{1}\space - \StrGobbleRight{\pgfkeysvalueof{/@cv/info/last name}}{1} + \begingroup\edef\y{\endgroup% + \noexpand\kleft{\cv@FirstNameLetter}}% + \y + \StrGobbleLeft{\pgfkeysvalueof{/@cv/info/first name}}{1}\space + \StrGobbleRight{\pgfkeysvalueof{/@cv/info/last name}}{1} % \end{macrocode} % same trick % trick to expand argument such that `kleft` sees an % alphabetic constant (i.e. a single letter) % \begin{macrocode} - \begingroup\edef\y{\endgroup% - \noexpand\kright{\cv@LastNameLetter}}% - \y + \begingroup\edef\y{\endgroup% + \noexpand\kright{\cv@LastNameLetter}}% + \y }; \node[% align=right, @@ -2733,9 +2825,9 @@ Dear Miss.\ Smith } {\LARGE \vspace{\cvIDNameSep} - #1 + \color{cvAccent} #1 \vspace{\cvIDNameSep} - #2} + \color{cvAccent} #2} \vspace{\cvPositionSep} diff --git a/Master/texmf-dist/source/latex/limecv/limecv.ins b/Master/texmf-dist/source/latex/limecv/limecv.ins index d6f0f832636..aa3e54b1429 100644 --- a/Master/texmf-dist/source/latex/limecv/limecv.ins +++ b/Master/texmf-dist/source/latex/limecv/limecv.ins @@ -1,5 +1,5 @@ %% -%% Copyright (C) 2017 - 2018 by Olivier Pieters +%% Copyright (C) 2017 - 2020 by Olivier Pieters %% %% This file may be distributed and/or modified under the %% conditions of the LaTeX Project Public License, either @@ -8,8 +8,8 @@ %% %% http://www.latex-project.org/lppl.txt %% -%% and version 1.3 or later is part of all distributions of -%% LaTeX version 2005/12/01 or later. +%% and version 1.3c or later is part of all distributions of +%% LaTeX version 2008-05-04 or later. %% \input docstrip.tex @@ -28,8 +28,8 @@ version. The latest version of this license is in: http://www.latex-project.org/lppl.txt -and version 1.3 or later is part of all distributions of -LaTeX version 2005/12/01 or later. +and version 1.3c or later is part of all distributions of +LaTeX version 2008-05-04 or later. \endpreamble diff --git a/Master/texmf-dist/tex/latex/limecv/limecv.cls b/Master/texmf-dist/tex/latex/limecv/limecv.cls index 8d6fdc0323d..cc3630aae00 100644 --- a/Master/texmf-dist/tex/latex/limecv/limecv.cls +++ b/Master/texmf-dist/tex/latex/limecv/limecv.cls @@ -15,12 +15,12 @@ %% %% http://www.latex-project.org/lppl.txt %% -%% and version 1.3 or later is part of all distributions of -%% LaTeX version 2005/12/01 or later. +%% and version 1.3c or later is part of all distributions of +%% LaTeX version 2008-05-04 or later. %% \NeedsTeXFormat{LaTeX2e}[1999/12/01] \ProvidesClass{limecv} - [2020/03/15 v0.1.8 limecv Document class for CVs.] + [2021/12/01 v0.1.12 limecv Document class for CVs.] \RequirePackage{kvoptions} \DeclareBoolOption[false]{print} @@ -479,13 +479,13 @@ \pgfkeys{/@cv/names/languages = Sprachen}% \pgfkeys{/@cv/names/interests = Interessen}% \pgfkeys{/@cv/names/professional = Beruflich}% - \pgfkeys{/@cv/names/personal = Persönlich}% + \pgfkeys{/@cv/names/personal = Pers\"{o}nlich}% \pgfkeys{/@cv/names/projects = Projekte}% \pgfkeys{/@cv/names/education = Ausbildung}% \pgfkeys{/@cv/names/experience = Berufliche Erfahrung}% \pgfkeys{/@cv/names/references = Referenzen}% \pgfkeys{/@cv/names/skills = Kenntnisse}% - \pgfkeys{/@cv/names/publications = Veröffentlichungen}% + \pgfkeys{/@cv/names/publications = Ver\"{o}ffentlichungen}% } \NewDocumentCommand{\cv@setItalian}{}{ \pgfkeys{/@cv/names/profile = Profilo}% @@ -501,6 +501,20 @@ \pgfkeys{/@cv/names/skills = Competenze}% \pgfkeys{/@cv/names/publications = Pubblicazioni}% } +\NewDocumentCommand{\cv@setSpanish}{}{ + \pgfkeys{/@cv/names/profile = Perfil}% + \pgfkeys{/@cv/names/contact = Contacto}% + \pgfkeys{/@cv/names/languages = Idiomas}% + \pgfkeys{/@cv/names/interests = Intereses}% + \pgfkeys{/@cv/names/professional = Profesionales}% + \pgfkeys{/@cv/names/personal = Personales}% + \pgfkeys{/@cv/names/projects = Proyectos}% + \pgfkeys{/@cv/names/education = Formación}% + \pgfkeys{/@cv/names/experience = Experiencia}% + \pgfkeys{/@cv/names/skills = Habilidades}% + \pgfkeys{/@cv/names/references = Referencias}% + \pgfkeys{/@cv/names/publications = Publicaciones}% +} \ExplSyntaxOn \NewDocumentCommand{\cvSetLanguage}{m}{ \str_case:nnF {#1} @@ -510,14 +524,15 @@ {french} {\cv@setFrench} {german} {\cv@setGerman} {italian} {\cv@setItalian} + {spanish} {\cv@setSpanish} {chinese} {% \usepackage[BoldFont,SlantFont]{xeCJK}% \cv@setChinese% } } {\ClassError{limecv}{Unknown option `#1' for cvLanguage % - macro.}{Only `english', `chinese`, `dutch`, `french`, `german` % - and `italian` are valid options for this macro.}} + macro.}{Only `english', `chinese`, `dutch`, `french`, `german`, % + `italian` and `spanish` are valid options for this macro.}} } \ExplSyntaxOff \cvSetLanguage{english} @@ -542,6 +557,11 @@ \fi } \NewDocumentEnvironment{cvMainContent}{}{% + \stepcounter{cv@titlePrev} + \stepcounter{cv@titleNext} + \stepcounter{cv@itemPrev} + \stepcounter{cv@itemNext} + \stepcounter{cv@lastItem} \begin{tikzpicture}[% every node/.style={% inner sep=0pt, @@ -554,8 +574,11 @@ \end{tikzpicture} } \NewDocumentEnvironment{cvMainContent*}{}{% - \stepcounter{titlePrev} - \stepcounter{titleNext} + \stepcounter{cv@titlePrev} + \stepcounter{cv@titleNext} + \stepcounter{cv@itemPrev} + \stepcounter{cv@itemNext} + \stepcounter{cv@lastItem} \begin{tikzpicture}[% every node/.style={ inner sep=0pt, @@ -567,8 +590,9 @@ }{% \end{tikzpicture}% } -\NewDocumentEnvironment{cvEducation}{}{% - \cv@Title{\pgfkeysvalueof{/@cv/names/education}}{\faGraduationCap} +\NewDocumentCommand{\cvList}{mmm} {% + \NewDocumentEnvironment{#1}{}{% + \cv@Title{\pgfkeysvalueof{/@cv/names/#2}}{#3} \stepcounter{cv@itemPrev} \stepcounter{cv@itemNext} \cv@definecvItem @@ -577,21 +601,14 @@ \stepcounter{cv@lastItem} \draw (item \the\value{cv@itemPrev}.south west) node (cv@last item \the\value{cv@lastItem}) {}; + } } -\NewDocumentEnvironment{cvExperience}{}{% - \cv@Title{\pgfkeysvalueof{/@cv/names/experience}}{\faBriefcase} - \stepcounter{cv@itemPrev} - \stepcounter{cv@itemNext} - \cv@definecvItem -}{% - \cv@EndSectionDraw - \stepcounter{cv@lastItem} - \draw (item \the\value{cv@itemPrev}.south west) - node (cv@last item \the\value{cv@lastItem}) {}; -} +\cvList{cvEducation}{education}{\faGraduationCap} +\cvList{cvExperience}{experience}{\faBriefcase} \NewDocumentEnvironment{cvSkills}{}{% \cv@Title{\pgfkeysvalueof{/@cv/names/skills}}{\faStar} \global\cv@firstskilltrue + \RenewDocumentCommand{\cv@skillsTable}{}{} }{% \node[ below=\cvSectionSep of cv@title \the\value{cv@titlePrev}% @@ -604,17 +621,7 @@ \draw (skills.south west) node % (cv@last item \the\value{cv@lastItem}) {}; } -\NewDocumentEnvironment{cvPublications}{}{% -\cv@Title{\pgfkeysvalueof{/@cv/names/publications}}{\faNewspaper} - \stepcounter{cv@itemPrev} - \stepcounter{cv@itemNext} - \cv@definecvItem -}{% - \cv@EndSectionDraw - \stepcounter{cv@lastItem} - \draw (item \the\value{cv@itemPrev}.south west) - node (cv@last item \the\value{cv@lastItem}) {}; -} +\cvList{cvPublications}{publications}{\faNewspaper} \NewDocumentEnvironment{cvReferences}{}{% \cv@Title{\pgfkeysvalueof{/@cv/names/references}}{\faLink} \node[ @@ -661,6 +668,10 @@ \pgfkeys{/@cv/references/mobile phone/.is if=% cv@refMobilePhone} \pgfkeys{/@cv/references/mobile phone=false} +\newif\ifcv@refEmail +\pgfkeys{/@cv/references/email/.is if=% + cv@refEmail} +\pgfkeys{/@cv/references/email=false} \newif\ifcv@refStored \pgfkeys{/@cv/references/value stored/.is if=% cv@refStored} @@ -689,6 +700,9 @@ \define@key{cvAddReferenceA}{mobile phone}{% \global\def\cv@refAMobilePhone{#1}% \@IfNoValueOrEmptyTF{#1}{}{\pgfkeys{/@cv/references/mobile phone = true}}} +\define@key{cvAddReferenceA}{email}{% + \global\def\cv@refAEmail{#1}% + \@IfNoValueOrEmptyTF{#1}{}{\pgfkeys{/@cv/references/email = true}}} \define@key{cvAddReferenceB}{name}{% \global\def\cv@refBName{#1}% \@IfNoValueOrEmptyTF{#1}{}{\pgfkeys{/@cv/references/name = true}}} @@ -713,6 +727,9 @@ \define@key{cvAddReferenceB}{mobile phone}{% \global\def\cv@refBMobilePhone{#1}% \@IfNoValueOrEmptyTF{#1}{}{\pgfkeys{/@cv/references/mobile phone = true}}} +\define@key{cvAddReferenceB}{email}{% + \global\def\cv@refBEmail{#1}% + \@IfNoValueOrEmptyTF{#1}{}{\pgfkeys{/@cv/references/email = true}}} \NewDocumentCommand{\cvAddReference}{sm}{% \IfBooleanTF{#1}{% \setkeys{cvAddReferenceA}{name=,company=, @@ -736,6 +753,7 @@ \ifcv@refAddressLineC \\ \cv@refAAddressLineC & \cv@refBAddressLineC \fi % \ifcv@refWorkPhone \\ \cv@refAPhoneWork & \cv@refBPhoneWork \fi % \ifcv@refMobilePhone \\ \cv@refAMobilePhone & \cv@refBMobilePhone \fi % + \ifcv@refEmail \\ \cv@refAEmail & \cv@refBEmail \fi % \end{tabular}% \pgfkeys{/@cv/references/value stored = false}% \else% @@ -749,6 +767,7 @@ \ifcv@refAddressLineC \\ \cv@refBAddressLineC \fi % \ifcv@refWorkPhone \\ \cv@refBPhoneWork \fi % \ifcv@refMobilePhone \\ \cv@refBMobilePhone \fi % + \ifcv@refEmail \\ \cv@refBEmail \fi % \end{tabular}% \fi% }% @@ -767,13 +786,14 @@ \end{minipage} \vspace*{\fill} } -\NewDocumentEnvironment{cvSidear*}{}{% +\NewDocumentEnvironment{cvSidebar*}{}{% \vspace*{\fill} \vspace*{-0.5\cvMargin} \begin{tikzpicture}[remember picture,overlay] \fill[cvGreenLight] (current page.north east) rectangle % ++(-\cvSideWidth-2\cvMargin,-\paperheight); \end{tikzpicture}% + \hspace*{\paperwidth-\cvSideWidth-2\cvMargin}% \begin{minipage}{\cvSideWidth} \begin{center} }{% @@ -942,6 +962,9 @@ for this environment.}} } + \stepcounter{cv@cvInterestCounter} + \stepcounter{cv@cvInterestCounterPrev} + \cv@definecv@interestSection \NewDocumentCommand{\cvInterestsPersonal}{}{% \cv@interestSection{\faUser\ \emph{\pgfkeysvalueof{/@cv/names/personal}}}} @@ -960,6 +983,7 @@ \vspace{\cvSectionSBSep} }{% \cv@interestClose + \global\cv@interestContentfalse } \ExplSyntaxOff \newif\ifcv@projectImage @@ -1056,27 +1080,48 @@ \pgfkeys{/@cv/languages/.is family, /@cv/languages/.unknown/.style = {% \pgfkeyscurrentpath/\pgfkeyscurrentname/.initial = #1}} -\NewDocumentEnvironment{cvLanguages}{}{% - \NewDocumentCommand{\cvLanguage}{mm}{% - {\globaldefs=1\relax\pgfkeys{% - /@cv/languages/lang\the\value{cv@languages} = ##2}} - \node[cv@languageText]{##1}; \pgfmatrixnextcell % - \node[cv@progressArea] (cv@language \the\value{cv@languages}) {}; \\ - \stepcounter{cv@languages} - }% + +\newif\ifcv@languagerating +\cv@languageratingtrue +\NewDocumentEnvironment{cvLanguages}{ o }{% + \IfNoValueTF{#1}{ + \NewDocumentCommand{\cvLanguage}{mm}{% + {\globaldefs=1\relax\pgfkeys{% + /@cv/languages/lang\the\value{cv@languages} = ##2}} + \node[cv@languageText]{##1}; \pgfmatrixnextcell % + \node[cv@progressArea] (cv@language \the\value{cv@languages}) {}; \\ + \stepcounter{cv@languages} + }% + \cv@languageratingtrue + }{ + \NewDocumentCommand{\cvLanguage}{m}{% + \node[cv@languageText]{##1}; \\ + \stepcounter{cv@languages} + }% + \cv@languageratingfalse + } \vspace{\cvSectionSBSep} \ruleline{\pgfkeysvalueof{/@cv/names/languages}}% \vspace{\cvSectionSBSep} \begin{tikzpicture}[% every node/.style={text depth=0pt,inner sep=0pt,outer sep=0pt}] - \matrix [ + \ifcv@languagerating + \matrix [% column 1/.style={anchor=east}, column sep=1.5\cvSectionSBSep, row sep=1.5\cvSectionSBSep, column 2/.style={anchor=west,align=left} ] (contact) \bgroup + \else + \matrix [% + column sep=1.5\cvSectionSBSep, + row sep=1.5\cvSectionSBSep, + column 2/.style={anchor=west,align=left} + ] (contact) \bgroup + \fi }{% \\\egroup; + \ifcv@languagerating \newcounter{cv@languagelevel} \setcounter{cv@languagelevel}{1} \loop\ifnum\value{cv@languagelevel}<\value{cv@languages} @@ -1088,6 +1133,7 @@ {}; \stepcounter{cv@languagelevel} \repeat + \fi \end{tikzpicture} } \define@key{cvCoverLetter}{name}{% @@ -1150,16 +1196,19 @@ \draw (current page.north east) % ++(-0.5\paperwidth+0.5\cvCoverLetterWidth, -\cvCoverLetterHeight/2) node (cv@h7) {}; - \node[anchor=east] at (cv@h7) (cv cover letter name){% - \fontsize{50}{60}\selectfont - \begingroup\edef\y{\endgroup% - \noexpand\kleft{\cv@FirstNameLetter}}% - \y - \StrGobbleLeft{\pgfkeysvalueof{/@cv/info/first name}}{1}\space - \StrGobbleRight{\pgfkeysvalueof{/@cv/info/last name}}{1} - \begingroup\edef\y{\endgroup% - \noexpand\kright{\cv@LastNameLetter}}% - \y + \node[% + anchor=east, + align=flush right, + text width=\textwidth] at (cv@h7) (cv cover letter name){% + \fontsize{50}{60}\selectfont + \begingroup\edef\y{\endgroup% + \noexpand\kleft{\cv@FirstNameLetter}}% + \y + \StrGobbleLeft{\pgfkeysvalueof{/@cv/info/first name}}{1}\space + \StrGobbleRight{\pgfkeysvalueof{/@cv/info/last name}}{1} + \begingroup\edef\y{\endgroup% + \noexpand\kright{\cv@LastNameLetter}}% + \y }; \node[% align=right, @@ -1208,9 +1257,9 @@ } {\LARGE \vspace{\cvIDNameSep} - #1 + \color{cvAccent} #1 \vspace{\cvIDNameSep} - #2} + \color{cvAccent} #2} \vspace{\cvPositionSep} |