From d40a26c699d6f0303ec54ea646d5eb96b4ab54bf Mon Sep 17 00:00:00 2001 From: Karl Berry Date: Sat, 8 Feb 2020 22:18:03 +0000 Subject: limecv (8feb20) git-svn-id: svn://tug.org/texlive/trunk@53720 c570f23f-e606-0410-a88d-b1316a301751 --- Master/texmf-dist/tex/latex/limecv/limecv.cls | 136 ++++++++++++++++++++++---- 1 file changed, 115 insertions(+), 21 deletions(-) (limited to 'Master/texmf-dist/tex/latex/limecv') diff --git a/Master/texmf-dist/tex/latex/limecv/limecv.cls b/Master/texmf-dist/tex/latex/limecv/limecv.cls index e0d547ecbc9..f162d523585 100644 --- a/Master/texmf-dist/tex/latex/limecv/limecv.cls +++ b/Master/texmf-dist/tex/latex/limecv/limecv.cls @@ -20,7 +20,7 @@ %% \NeedsTeXFormat{LaTeX2e}[1999/12/01] \ProvidesClass{limecv} - [2017/09/12 v0.1.3 limecv Document class for CVs.] + [2020/02/08 v0.1.7 limecv Document class for CVs.] \RequirePackage{kvoptions} \DeclareBoolOption[false]{print} @@ -74,6 +74,7 @@ } \AtBeginDocument{\globalcolor{cvDark}} \RequirePackage{tikz} + \RequirePackage{graphicx} \usetikzlibrary{% calc, @@ -98,8 +99,6 @@ progressBar/.style={}, sectionTitle/.style={}, sectionEduText/.style={% - eventdottext, - anchor=north west }, cv@interesticon/.style = {% minimum width=\cvHeaderIconWidth, @@ -303,7 +302,8 @@ \setcounter{cv@titleNext}{1} \NewDocumentCommand{\cv@Title}{mm}{% \ifnodedefined{cv@last item \the\value{cv@lastItem}}{% - \setlength\cvHeaderIconWidth{\maxof{\cvHeaderIconWidth}{\widthof{\Large #2}}}% + \setlength\cvHeaderIconWidth{% + \maxof{\cvHeaderIconWidth}{\widthof{\Large #2}}}% \protected@write\@auxout{}{\global\cvHeaderIconWidth=\the\cvHeaderIconWidth} \node[% below=\cvSectionSep of cv@last item % @@ -429,6 +429,7 @@ \pgfkeys{/@cv/names/experience = Experience}% \pgfkeys{/@cv/names/references = References}% \pgfkeys{/@cv/names/skills = Skills}% + \pgfkeys{/@cv/names/publications = Publications}% } \NewDocumentCommand{\cv@setDutch}{}{ \pgfkeys{/@cv/names/profile = Profiel}% @@ -442,6 +443,62 @@ \pgfkeys{/@cv/names/experience = Werkervaring}% \pgfkeys{/@cv/names/references = Referenties}% \pgfkeys{/@cv/names/skills = Vaardigheden}% + \pgfkeys{/@cv/names/publications = Publicaties}% +} +\NewDocumentCommand{\cv@setChinese}{}{ + \pgfkeys{/@cv/names/profile = 关于我}% + \pgfkeys{/@cv/names/contact = 联系我}% + \pgfkeys{/@cv/names/languages = 语言能力}% + \pgfkeys{/@cv/names/interests = 兴趣爱好}% + \pgfkeys{/@cv/names/professional = Professional}% + \pgfkeys{/@cv/names/personal = Personal}% + \pgfkeys{/@cv/names/projects = 我的项目}% + \pgfkeys{/@cv/names/education = 教育背景}% + \pgfkeys{/@cv/names/experience = 工作经验}% + \pgfkeys{/@cv/names/references = References}% + \pgfkeys{/@cv/names/skills = IT技能}% + \pgfkeys{/@cv/names/publications = 出版作品}% +} +\NewDocumentCommand{\cv@setFrench}{}{ + \pgfkeys{/@cv/names/profile = Profil}% + \pgfkeys{/@cv/names/contact = Contact}% + \pgfkeys{/@cv/names/languages = Langues}% + \pgfkeys{/@cv/names/interests = Centres d'int\'{e}r\^{e}t}% + \pgfkeys{/@cv/names/professional = Professionel}% + \pgfkeys{/@cv/names/personal = Personnel}% + \pgfkeys{/@cv/names/projects = Projets}% + \pgfkeys{/@cv/names/education = Education}% + \pgfkeys{/@cv/names/experience = Exp\'{e}riences}% + \pgfkeys{/@cv/names/references = R\'{e}f\'{e}rences}% + \pgfkeys{/@cv/names/skills = Comp\'{e}tences}% +} +\NewDocumentCommand{\cv@setGerman}{}{ + \pgfkeys{/@cv/names/profile = Profil}% + \pgfkeys{/@cv/names/contact = Kontakt}% + \pgfkeys{/@cv/names/languages = Sprachen}% + \pgfkeys{/@cv/names/interests = Interessen}% + \pgfkeys{/@cv/names/professional = Beruflich}% + \pgfkeys{/@cv/names/personal = Persö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}% +} +\NewDocumentCommand{\cv@setItalian}{}{ + \pgfkeys{/@cv/names/profile = Profilo}% + \pgfkeys{/@cv/names/contact = Contatti}% + \pgfkeys{/@cv/names/languages = Lingue}% + \pgfkeys{/@cv/names/interests = Interessi}% + \pgfkeys{/@cv/names/professional = Professionali}% + \pgfkeys{/@cv/names/personal = Personali}% + \pgfkeys{/@cv/names/projects = Progetti}% + \pgfkeys{/@cv/names/education = Formazione}% + \pgfkeys{/@cv/names/experience = Esperienze lavorative}% + \pgfkeys{/@cv/names/references = Referenze}% + \pgfkeys{/@cv/names/skills = Competenze}% + \pgfkeys{/@cv/names/publications = Pubblicazioni}% } \ExplSyntaxOn \NewDocumentCommand{\cvSetLanguage}{m}{ @@ -449,10 +506,17 @@ { {dutch} {\cv@setDutch} {english} {\cv@setEnglish} + {french} {\cv@setFrench} + {german} {\cv@setGerman} + {italian} {\cv@setItalian} + {chinese} {% + \usepackage[BoldFont,SlantFont]{xeCJK}% + \cv@setChinese% + } } {\ClassError{limecv}{Unknown option `#1' for cvLanguage % - macro.}{Only `english' and `dutch' are valid options % - for this macro.}} + macro.}{Only `english', `chinese`, `dutch`, `french`, `german` % + and `italian` are valid options for this macro.}} } \ExplSyntaxOff \cvSetLanguage{english} @@ -539,6 +603,17 @@ \draw (skills.south west) node % (cv@last item \the\value{cv@lastItem}) {}; } +\NewDocumentEnvironment{cvPublications}{}{% +\cv@Title{\pgfkeysvalueof{/@cv/names/publications}}{\faNewspaperO} + \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}) {}; +} \NewDocumentEnvironment{cvReferences}{}{% \cv@Title{\pgfkeysvalueof{/@cv/names/references}}{\faLink} \node[ @@ -652,14 +727,14 @@ -0.5\cvTableSepWidth}@{\hskip \cvTableSepWidth}% L{0.5\cvMainWidth-0.5\cvTimeDotSep% -0.5\cvTableSepWidth}@{}}% - \ifcv@refName \cv@refAName & \cv@refBName \fi % - \ifcv@refCompany \\ \cv@refACompany & \cv@refBCompany \fi % - \ifcv@refPosition \\ \cv@refAPosition & \cv@refBPosition \fi % - \ifcv@refAddressLineA \\ \cv@refAAddressLineA & \cv@refBAddressLineA \fi % - \ifcv@refAddressLineB \\ \cv@refAAddressLineB & \cv@refBAddressLineB \fi % - \ifcv@refAddressLineC \\ \cv@refAAddressLineC & \cv@refBAddressLineC \fi % - \ifcv@refWorkPhone \\ \cv@refAPhoneWork & \cv@refBPhoneWork \fi % - \ifcv@refMobilePhone \\ \cv@refAMobilePhone & \cv@refBMobilePhone \fi % + \ifcv@refName \cv@refAName & \cv@refBName \fi % + \ifcv@refCompany \\ \cv@refACompany & \cv@refBCompany \fi % + \ifcv@refPosition \\ \cv@refAPosition & \cv@refBPosition \fi % + \ifcv@refAddressLineA \\ \cv@refAAddressLineA & \cv@refBAddressLineA \fi % + \ifcv@refAddressLineB \\ \cv@refAAddressLineB & \cv@refBAddressLineB \fi % + \ifcv@refAddressLineC \\ \cv@refAAddressLineC & \cv@refBAddressLineC \fi % + \ifcv@refWorkPhone \\ \cv@refAPhoneWork & \cv@refBPhoneWork \fi % + \ifcv@refMobilePhone \\ \cv@refAMobilePhone & \cv@refBMobilePhone \fi % \end{tabular}% \pgfkeys{/@cv/references/value stored = false}% \else% @@ -725,6 +800,17 @@ \@IfNoValueOrEmptyTF{##1}{##2}{\href{##1}{##2}}}; } } +\NewDocumentCommand{\cvContactTemplate}{O{} mm}{ + \ifcv@contactfirst% + \\% + \else % + \global\cv@contactfirsttrue % + \fi % + \node[cv@contactIcon]{#2}; + \pgfmatrixnextcell \node[cv@contactText]{% + \@IfNoValueOrEmptyTF{#1}{#3}{\href{#1}{#3}}% + }; +} \newif\ifcv@contactfirst \NewDocumentEnvironment{cvContact}{}{% \vspace{\cvSectionSBSep} @@ -738,6 +824,7 @@ \cv@ContactTemplateLink{\cvContactEmail}{\faEnvelope} \cv@ContactTemplateLink{\cvContactWebsite}{\faGlobe} \cv@ContactTemplateLink{\cvContactGithub}{\faGithub} + \cv@ContactTemplateLink{\cvContactGitlab}{\faGitlab} \cv@ContactTemplateLink{\cvContactLinkedin}{\faLinkedinSquare} \cv@ContactTemplateLink{\cvContactTwitter}{\faTwitter} \cv@ContactTemplateLink{\cvContactKeybase}{\faKey} @@ -807,18 +894,22 @@ \NewDocumentCommand{\cvInterest}{mm}{% \ifcv@interestContent % \node[ - below=\cvItemSep of cv@interest text \the\value{cv@cvInterestCounterPrev}, + below=\cvItemSep of cv@interest text % + \the\value{cv@cvInterestCounterPrev}, cv@interesticon] (cv@interest icon \the\value{cv@cvInterestCounter}) {##1}; \node[ - below=\cvInterestDetailsSep of cv@interest icon \the\value{cv@cvInterestCounter}, + below=\cvInterestDetailsSep of cv@interest icon % + \the\value{cv@cvInterestCounter}, cv@interesttext] (cv@interest text \the\value{cv@cvInterestCounter}) {##2}; \else \cv@interestOpen - \node[cv@interesticon] (cv@interest icon \the\value{cv@cvInterestCounter}) {##1}; + \node[cv@interesticon] + (cv@interest icon \the\value{cv@cvInterestCounter}) {##1}; \node[ - below=\cvInterestDetailsSep of cv@interest icon \the\value{cv@cvInterestCounter}, + below=\cvInterestDetailsSep of cv@interest icon % + \the\value{cv@cvInterestCounter}, cv@interesttext] (cv@interest text \the\value{cv@cvInterestCounter}) {##2}; \fi @@ -852,9 +943,11 @@ \cv@definecv@interestSection \NewDocumentCommand{\cvInterestsPersonal}{}{% - \cv@interestSection{\faUser\ \emph{Personal}}} + \cv@interestSection{\faUser\ \emph{\pgfkeysvalueof{/@cv/names/personal}}}} \NewDocumentCommand{\cvInterestsProfessional}{}{% - \cv@interestSection{\faBriefcase\ \emph{Professional}}} + \cv@interestSection{\faBriefcase\ \emph{% + \pgfkeysvalueof{/@cv/names/professional}}% + }} \ifcv@interestLong \cv@definecvInterestLong \else @@ -925,7 +1018,8 @@ \node[% text width=\cvSideWidth, align=center, - below=\cvProjectDetailsSep of project \the\value{cv@projectCurrent} image] + below=\cvProjectDetailsSep of project \the\value{cv@projectCurrent} % + image] (project \the\value{cv@projectCurrent} title) {% \ifcv@projectLink \href{\cv@projectLink}{##2} \else ##2 \fi }; \else -- cgit v1.2.3