From f3a9342230094bc0798719632e59c8c07345fb7a Mon Sep 17 00:00:00 2001 From: Xavier Danaux Date: Thu, 17 Nov 2011 19:17:16 +0100 Subject: [PATCH] Adds support for CJK, and removes the need to manuall call \recomputelengths --- CHANGELOG | 11 +++++-- KNOWN_BUGS | 4 +-- examples/template.pdf | Bin 167313 -> 167307 bytes examples/template.tex | 22 +++++++------- examples/template_casual_orange.pdf | Bin 167318 -> 167309 bytes examples/template_classic_green.pdf | Bin 239378 -> 239371 bytes examples/template_multibib.pdf | Bin 167639 -> 167632 bytes moderncv.cls | 26 ++++++++--------- moderncvthemecasual.sty | 43 ++++++++++++++-------------- moderncvthemeclassic.sty | 17 +++++++---- 10 files changed, 67 insertions(+), 56 deletions(-) diff --git a/CHANGELOG b/CHANGELOG index dc798b3..802f913 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -1,13 +1,18 @@ +version 0.14 (xx November 2011) + - adds support for CJK, thanks to the help of P. D'Apice. + - the use of \recomputelengths after modifying any length in the preamble is now + unnecessary; \recomputelength is automatically called at the start of the document. + version 0.13.1 (11 November 2011) - correct a bug introduced by v0.13 in the classic style when no \photo is used, as reported by S. Gislais (launchpad bug #888702). version 0.13 (06 November 2011) - added a "black" color option to render the resume in black & white, as suggested - by F. Bicarri. + by F. Bicarri. - removed the pdflatex option when loading hyperref to enable other engines - (e.g., dvips, xetex), leftover from the v 0.11 cleanup, as reported by - K. Amaterasu and P. Mavrogiorgos (launchpad bugs #754693 and #859834). + (e.g., dvips, xetex), leftover from the v 0.11 cleanup, as reported by + K. Amaterasu and P. Mavrogiorgos (launchpad bugs #754693 and #859834). - added a "purple" color option, as proposed by B. Ravel. - added a 3rd optional argument to the \photo command to control the thickness of the framebox. Setting it to 0pt will disable the frame around the photo, as diff --git a/KNOWN_BUGS b/KNOWN_BUGS index bc1a208..92a6f36 100644 --- a/KNOWN_BUGS +++ b/KNOWN_BUGS @@ -1,5 +1,5 @@ -- The \cvsection command seems to be unable to handle a Chinese argument, using - CJK. +- When using CJK, the last \clearpage required for fancyhdr to work properly kills + the "lastpage" counter, hence also the page numbering. - Moderncv produces an error ("lonely \item--perhaps a missing list environment") when used with bibentry, through the output is actually correct. Amongst other, this causes compilation by LyX to stop. diff --git a/examples/template.pdf b/examples/template.pdf index 58e8277deeac342e273cdb92f9c7840389e5ed06..c4ac53ddfeabdbac19224f51985a304cc6bb197f 100644 GIT binary patch delta 5292 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 diff --git a/examples/template.tex b/examples/template.tex index 6154fb1..aca9242 100644 --- a/examples/template.tex +++ b/examples/template.tex @@ -10,16 +10,16 @@ % moderncv themes \moderncvtheme[blue]{casual} % optional argument are 'blue' (default), 'orange', 'green', 'red', 'purple', 'grey' and 'roman' (for roman fonts, instead of sans serif fonts) -%\moderncvtheme[green]{classic} % idem +%\moderncvtheme[green]{classic} % idem % character encoding \usepackage[utf8]{inputenc} % replace by the encoding you are using +%\usepackage{CJKutf8} % if you need to use CJK to typeset your resume in Chinese, Japanese or Korean % adjust the page margins \usepackage[scale=0.8]{geometry} -%\setlength{\hintscolumnwidth}{3cm} % if you want to change the width of the column with the dates -%\AtBeginDocument{\setlength{\maketitlenamewidth}{6cm}} % only for the classic theme, if you want to change the width of your name placeholder (to leave more space for your address details -%\AtBeginDocument{\recomputelengths} % required when changes are made to page layout lengths +%\setlength{\hintscolumnwidth}{3cm} % if you want to change the width of the column with the dates +%\setlength{\maketitlenamewidth}{10cm}} % only for the classic theme, if you want to change the width of your name placeholder (to leave more space for your address details % personal data \firstname{John} @@ -32,7 +32,7 @@ \email{email (optional)} % optional, remove the line if not wanted \homepage{homepage (optional)} % optional, remove the line if not wanted \extrainfo{additional information (optional)} % optional, remove the line if not wanted -\photo[64pt][0.4pt]{picture} % '64pt' is the height the picture must be resized to, 0.4pt is the thickness of the frame around it (put it to 0pt for no frame) and 'picture' is the name of the picture file; optional, remove the line if not wanted +\photo[64pt][0.4pt]{picture} % '64pt' is the height the picture must be resized to, 0.4pt is the thickness of the frame around it (put it to 0pt for no frame) and 'picture' is the name of the picture file; optional, remove the line if not wanted \quote{Some quote (optional)} % optional, remove the line if not wanted % to show numerical labels in the bibliography; only useful if you make citations in your resume @@ -49,6 +49,7 @@ % content %---------------------------------------------------------------------------------- \begin{document} +%\begin{CJK*}{UTF8}{gbsn} % to typeset your resume in Chinese using CJK \maketitle \section{Education} @@ -101,9 +102,9 @@ Detailed achievements:% \section{Extra 1} \cvlistitem{Item 1} \cvlistitem{Item 2} -\cvlistitem[+]{Item 3} % optional other symbol +\cvlistitem[+]{Item 3} % optional other symbol -\renewcommand{\listitemsymbol}{-} % change the symbol for lists +\renewcommand{\listitemsymbol}{-} % change the symbol for lists \section{Extra 2} \cvlistdoubleitem{Item 1}{Item 4} @@ -113,17 +114,18 @@ Detailed achievements:% % Publications from a BibTeX file without multibib\renewcommand*{\bibliographyitemlabel}{\@biblabel{\arabic{enumiv}}}% for BibTeX numerical labels \nocite{*} \bibliographystyle{plain} -\bibliography{publications} % 'publications' is the name of a BibTeX file +\bibliography{publications} % 'publications' is the name of a BibTeX file % Publications from a BibTeX file using the multibib package %\section{Publications} %\nocitebook{book1,book2} %\bibliographystylebook{plain} -%\bibliographybook{publications} % 'publications' is the name of a BibTeX file +%\bibliographybook{publications} % 'publications' is the name of a BibTeX file %\nocitemisc{misc1,misc2,misc3} %\bibliographystylemisc{plain} -%\bibliographymisc{publications} % 'publications' is the name of a BibTeX file +%\bibliographymisc{publications} % 'publications' is the name of a BibTeX file +%\clearpage\end{CJK*} % if you are typesetting your resume in Chinese using CJK; the \clearpage is required for fancyhdr to work correctly with CJK, though it kills the page numbering by making \lastpage undefined \end{document} diff --git a/examples/template_casual_orange.pdf b/examples/template_casual_orange.pdf index fac47eeb7d037ff5eafc11d1ac17d14fc23e6910..afd577d8d41d6e510901d96010ea68c8656d7353 100644 GIT binary patch delta 5256 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 O3O6}33MC~)Peuylcj?jq delta 5311 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 C*FW(9 delta 6828 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 UWOJ9SjshDAGcXDzB}Gq03Y~VW&Hw-a diff --git a/moderncv.cls b/moderncv.cls index 2f47dcb..2a16cff 100644 --- a/moderncv.cls +++ b/moderncv.cls @@ -125,7 +125,7 @@ % load hyperred at the end of the preamble to pass options required by loaded packages (like CJK) \AtEndPreamble{ \@ifpackageloaded{CJK} - {\RequirePackage[CJKbookmarks]{hyperref}} + {\RequirePackage[unicode]{hyperref}} {\RequirePackage{hyperref}} \AtBeginDocument{ \hypersetup{ @@ -170,8 +170,8 @@ \setlength\lineskip{1\p@} \setlength\normallineskip{1\p@} \renewcommand\baselinestretch{} -\setlength{\parindent}{0pt} -\setlength{\parskip}{0pt} +\setlength{\parindent}{0\p@} +\setlength{\parskip}{0\p@} \setlength\columnsep{10\p@} \setlength\columnseprule{0\p@} \setlength\fboxsep{3\p@} @@ -232,12 +232,16 @@ \providecommand*{\subsectionstyle}[1]{{\subsectionfont\color{subsectioncolor}#1}} \providecommand*{\hintstyle}[1]{{\hintfont\color{hintcolor}#1}} -% themes: casual (default), classic, ... +% makes the cv title +\newcommand*{\maketitle}{}% +\title{}% to avoid LaTeX complaining that \maketitle is a called without first a call to \title + +% makes the cv footer +\newcommand*{\makefooter} + +% loads a style \newcommand*{\moderncvtheme}[2][]{ - \def\@moderncvtheme{#2} - \def\@moderncvthemeoptions{#1}} -\moderncvtheme{casual}% default theme -\AtEndPreamble{\RequirePackage[\@moderncvthemeoptions]{moderncvtheme\@moderncvtheme}} + \RequirePackage[#1]{moderncvtheme#2}} %------------------------------------------------------------------------------- @@ -296,11 +300,7 @@ \renewcommand{\headwidth}{\textwidth}% \recomputethemelengths} \setlength{\hintscolumnwidth}{0.15\textwidth} -\recomputelengths - -% makes the cv title -%\newcommand*{\maketitle}{}% -\title{}% to avoid LaTeX complaining that \maketitle is a called without first a call to \title +\AtBeginDocument{\recomputelengths} % draws a colored rectangle % usage: \colorrule[optional height]{width} diff --git a/moderncvthemecasual.sty b/moderncvthemecasual.sty index ec27846..f9b2a18 100644 --- a/moderncvthemecasual.sty +++ b/moderncvthemecasual.sty @@ -123,26 +123,6 @@ % styles -% maketitle -\renewcommand*{\maketitle}{% - {% - \ifthenelse{\isundefined{\@photo}}% - {}% - {% - \setlength\fboxrule{\@photoframewidth}% - \ifdim\@photoframewidth=0pt% - \setlength{\fboxsep}{0pt}\fi% - {\color{firstnamecolor}\framebox{\includegraphics[width=\@photowidth]{\@photo}}}}% - \hfill% -% \raggedleft{\firstnamestyle{\MakeLowercase{\@firstname}}\familynamestyle{\MakeLowercase{\@familyname}}}\\[-.35em]}% - \raggedleft{\firstnamestyle{\@firstname}~\familynamestyle{\@familyname}}\\[-.35em]}% - {\color{firstnamecolor}\rule{\textwidth}{.25ex}\\[2.5em]}% -% optional quote - \ifthenelse{\isundefined{\@quote}}% - {}% - {{\centering{}\begin{minipage}{\quotewidth}\centering\quotestyle{\@quote}\end{minipage}\\[2.5em]}}% - \par}% to avoid weird spacing bug at the first section if no blank line is left after \maketitle - % cv footer \newif\if@firstfooterelement\@firstfooterelementtrue \providecommand*{\footersymbol}{} @@ -150,7 +130,6 @@ \if@firstfooterelement% \else% { ~~\color{footersymbolcolor}\textbullet~~~}\fi} -\providecommand*{\makefooter}{} \renewcommand*{\makefooter}{% \fancypagestyle{plain}{% \fancyfoot[c]{% @@ -169,7 +148,27 @@ \ifthenelse{\isundefined{\@extrainfo}}{}{\footersymbol\@extrainfo\@firstfooterelementfalse}}}% }% \pagestyle{plain}} -\AtBeginDocument{\makefooter} + +% maketitle +\renewcommand*{\maketitle}{% + \makefooter{}% + {% + \ifthenelse{\isundefined{\@photo}}% + {}% + {% + \setlength\fboxrule{\@photoframewidth}% + \ifdim\@photoframewidth=0pt% + \setlength{\fboxsep}{0pt}\fi% + {\color{firstnamecolor}\framebox{\includegraphics[width=\@photowidth]{\@photo}}}}% + \hfill% +% \raggedleft{\firstnamestyle{\MakeLowercase{\@firstname}}\familynamestyle{\MakeLowercase{\@familyname}}}\\[-.35em]}% + \raggedleft{\firstnamestyle{\@firstname}~\familynamestyle{\@familyname}}\\[-.35em]}% + {\color{firstnamecolor}\rule{\textwidth}{.25ex}\\[2.5em]}% +% optional quote + \ifthenelse{\isundefined{\@quote}}% + {}% + {{\centering{}\begin{minipage}{\quotewidth}\centering\quotestyle{\@quote}\end{minipage}\\[2.5em]}}% + \par}% to avoid weird spacing bug at the first section if no blank line is left after \maketitle \endinput diff --git a/moderncvthemeclassic.sty b/moderncvthemeclassic.sty index ab29e20..8d277b1 100644 --- a/moderncvthemeclassic.sty +++ b/moderncvthemeclassic.sty @@ -123,14 +123,11 @@ % styles % maketitle -% setmaketitlenamemaxwidth to the full name length, capped by \maketitlenamemaxwidth +% set \maketitlenamewidth to the desired length, or leave it up to moderncv to try to optimize it \newlength{\maketitlenamemaxwidth} \setlength{\maketitlenamemaxwidth}{.525\textwidth} -\newlength{\maketitlenamefullwidth} -\settowidth{\maketitlenamefullwidth}{\firstnamestyle{\@firstname~}\familynamestyle{\@familyname}} \newlength{\maketitlenamewidth} -\ifnum\maketitlenamemaxwidth<\maketitlenamefullwidth\setlength{\maketitlenamewidth}{\maketitlenamemaxwidth}\else\setlength{\maketitlenamewidth}{\maketitlenamefullwidth}\fi -% other lengths +\setlength{\maketitlenamewidth}{0pt} \newlength{\maketitlepicturewidth} \newlength{\maketitledetailswidth} % recompute theme-specific lengths, called by class to recompute all lengths @@ -142,7 +139,6 @@ {\setlength{\maketitlepicturewidth}{\@photowidth} \addtolength{\maketitledetailswidth}{-\separatorcolumnwidth}% \addtolength{\maketitledetailswidth}{-\maketitlepicturewidth}}} -\recomputethemelengths \newif\if@firstdetailselement\@firstdetailselementtrue \newcommand*{\maketitledetailsnewline}{ \if@firstdetailselement% @@ -150,6 +146,15 @@ \else% \\[.2em]\fi} \renewcommand*{\maketitle}{% + % recompute lengths (necessary to delay the computation of \maketitlenamefullwidth until \maketitle because of potential CJK requirement in \@firstname and \@familyname) + \ifdim\maketitlenamewidth=0pt% + \newlength{\maketitlenamefullwidth}% + \settowidth{\maketitlenamefullwidth}{\firstnamestyle{\@firstname~}\familynamestyle{\@familyname}}% + \ifnum\maketitlenamemaxwidth<\maketitlenamefullwidth% + \setlength{\maketitlenamewidth}{\maketitlenamemaxwidth}% + \else% + \setlength{\maketitlenamewidth}{\maketitlenamefullwidth}\fi\fi + \recomputethemelengths{}% % name and title \begin{minipage}[b]{\maketitlenamewidth}% \firstnamestyle{\@firstname~}\familynamestyle{\@familyname}%