One way to solve the problem, that class moderncv
has changed could be the following MWE. The part after \AtBeginDocument
rewrites the original definition in moderncv
.
Please keep in mind: if the class moderncv
is changed again, you may need to change your corrections again. Perhaps it would be a good idea to ask the author of moderncv
to integrate an option to change the position of name and picture.
The changed MWE:
\documentclass[11pt,a4paper]{moderncv}
\moderncvstyle{casual}
\moderncvcolor{blue}
\firstname{John}
\familyname{Doe}
\title{Resumé title}
\address{street and number}{postcode city}
\mobile{+1~(234)~567~890}
\phone{+2~(345)~678~901}
\fax{+3~(456)~789~012}
\email{john@doe.org}
\homepage{www.johndoe.com}
\extrainfo{additional information}
\photo[64pt][0.4pt]{picture}
\quote{Some quote}
\makeatletter
%\AtBeginDocument
%{
% reverse the name and photo
\renewcommand*{\makecvtitle}{%
\recomputecvlengths%
\makecvfooter%
% define optional picture
\newbox{\makecvtitlepicturebox}%
\savebox{\makecvtitlepicturebox}{%
\ifthenelse{\isundefined{\@photo}}%
{
\@initializelength{\makecvtitlepicturewidth}% Damit Länge bekannt bei Name
\settowidth{\makecvtitlepicturewidth}{0pt}%
}%
{%
\setlength\fboxrule{\@photoframewidth}%
\ifdim\@photoframewidth=0pt%
\setlength{\fboxsep}{0pt}\fi%
{\color{color1}\framebox{\includegraphics[width=\@photowidth]{\@photo}}}}
\@initializelength{\makecvtitlepicturewidth}% Damit Länge bekannt bei Name
\settowidth{\makecvtitlepicturewidth}{\usebox{\makecvtitlepicturebox}}%
}%
% end define optional picture
% name
% \parbox[b]{\textwidth-\makecvtitlepicturewidth}{%
{ \raggedright\namefont{\color{color2!50}\@firstname} {\color{color2}\@familyname}}%\lastname -> error
\hfill\usebox{\makecvtitlepicturebox}%
% \parbox[b]{\textwidth-\makecvtitlepicturewidth}{%
% \raggedleft\namefont{\color{color2!50}\@firstname} {\color{color2}\@lastname}}%\familyname
\\[-.35em]%
{\color{color2!50}\rule{\textwidth}{.25ex}}%
% optional title
\ifthenelse{\equal{\@title}{}}{}{\\[1.25em]\null\hfill\titlestyle{\@title}}\\[2.5em]%
% optional quote
\ifthenelse{\isundefined{\@quote}}%
{}%
{{\null\hfill\begin{minipage}{\quotewidth}\centering\quotestyle{\@quote}\end{minipage}\hfill\null\\[2.5em]}}%
\par}%
%}% AtBeginDocument ende
\makeatother
\begin{document}
\makecvtitle
\section{Education}
\cventry{year--year}{Degree}{Institution}{City}{ \textit{Grade} }{Description} % arguments 3 to 6 can be left empty
\cvitem{title}{ \emph{Title} }
\cvitemwithcomment{Language 1}{Skill level}{Comment}
\cvdoubleitem{category X}{XXX, YYY, ZZZ}{category Y}{XXX, YYY, ZZZ}
\cvlistitem{Item 1}
\cvlistdoubleitem{Item 2}{Item 3}
\end{document}
The result is:
Update to moderncv
2.0.0:
As already mentioned above class moderncv
has changed and therefore you need the following code using class version 2.0.0
.
With the current version moderncv 2015/07/28 v2.0.0 modern curriculum vitae and letter document class
you can define for style casual
with an additional option [left]
to get the name printed left, the image right in the title of the CV as wished in this question.
Please see that there are new commands available to define phone numbers etc. and to add new infos like linkedin
or github
...
Please see the following MWE (new code marked with <======
):
\documentclass[11pt,a4paper]{moderncv}
\moderncvstyle[left]{casual} % <========================================
\moderncvcolor{blue}
\name{John}{Doe} % <====================================================
\title{Resumé title}
\address{street and number}{postcode city}{country}
\phone[mobile]{+1~(234)~567~890} % <====================================
\phone[fixed]{+2~(345)~678~901} % <=====================================
\phone[fax]{+3~(456)~789~012} % <=======================================
\email{john@doe.org}
\homepage{www.johndoe.com}
\social[linkedin]{john.doe} % <=========================================
\social[twitter]{jdoe} % <==============================================
\social[github]{jdoe} % <===============================================
\extrainfo{additional information}
\photo[64pt][0.4pt]{picture}
\quote{Some quote}
\setlength{\footskip}{84pt} % <=========================================
\begin{document}
\makecvtitle
\section{Education}
\cventry{year--year}{Degree}{Institution}{City}{ \textit{Grade} }{Description} % arguments 3 to 6 can be left empty
\cvitem{title}{ \emph{Title} }
\cvitemwithcomment{Language 1}{Skill level}{Comment}
\cvdoubleitem{category X}{XXX, YYY, ZZZ}{category Y}{XXX, YYY, ZZZ}
\cvlistitem{Item 1}
\cvlistdoubleitem{Item 2}{Item 3}
\end{document}
Please see that line \setlength{\footskip}{84pt}
is only needed because I added more personal infos into the footer. For your CV please do not add this line, compile and check the *.log
file for a warning, that footskip is too small.
use the rounded value given in that warning for your CV ...
\homepage
only takes one argument. So, you should just write:
\homepage{www.gmail.com}
You may want to use the template from CTAN, which can be found here, as it is the most up to date template.
It seems that the template that you're opening from the LaTeX Templates website automatically opens all of the associated .sty
files in either of the online editors (i.e., sharelatex and writelatex), and it seems that that version of moderncv
is version 1.1. The most recent version on CTAN, however, is version 1.5.1.
It seems that at some point (in particular, in version 1.1), \homepage
actually could take two arguments, which is why this works on writelatex for you (i.e., because opening the moderncv
template via the LaTeX Templates website automatically opens and uses the version 1.1 .sty
files). However, this use seems to have been deprecated in (at least) version 1.5.1, which is the version you will have locally on your machine if your TeX distribution is up to date, since it is the most recent version on CTAN.
This change is not documented in the moderncv
changelog, however, so it's not clear in which version that use of \homepage
was deprecated.
Best Answer
Here is one option:
We do two things:
Patch
\makehead
to increase the width of the header from0.8\textwidth
to\linewidth
. In the very least, this will set it at\textwidth
. However, since\textwidth
is rigid (or fixed) we can......use
adjustwidth
(fromchangepage
) to increase the width temporarily just for the title.In the above example
X.....X
represents the width used for the title, andY.....Y
the width of the subsequent text block.