[Tex/LaTex] modern cv layout

cvheader-footermoderncv

I have a question concerning my CV.

The following is my header:

    \documentclass[11pt,a4paper,sans]{moderncv}

\usepackage[latin1]{inputenc}                   
\usepackage[ngerman]{babel}
\usepackage[T1]{fontenc}
\usepackage{lmodern}
\usepackage{tabularx}


\moderncvtheme[red]{classic}      

\usepackage[scale=0.8]{geometry}

\AtBeginDocument{\recomputelengths}                   

\makeatletter
\renewcommand*{\makecvtitle}{%
  % recompute lengths (in case we are switching from letter to resume, or vice versa)
  \recomputecvlengths%
  % optional detailed information box
  \newbox{\makecvtitledetailsbox}%
  \savebox{\makecvtitledetailsbox}{%
    \addressfont\color{color2}%
    \begin{tabular}[b]{@{}r@{}}%
      \ifthenelse{\isundefined{\@addressstreet}}{}{\makenewline\addresssymbol\@addressstreet%
      \ifthenelse{\equal{\@addresscity}{}}{}{\makenewline\@addresscity}}% if \addresstreet is defined, \addresscity will always be defined but could be empty
      \ifthenelse{\isundefined{\@mobile}}{}{\makenewline\mobilesymbol\@mobile}%
      \ifthenelse{\isundefined{\@phone}}{}{\makenewline\phonesymbol\@phone}%
      \ifthenelse{\isundefined{\@fax}}{}{\makenewline\faxsymbol\@fax}%
      \ifthenelse{\isundefined{\@email}}{}{\makenewline\emailsymbol\emaillink{\@email}}%
      \ifthenelse{\isundefined{\@homepage}}{}{\makenewline\homepagesymbol\httplink{\@homepage}}%
      \ifthenelse{\isundefined{\@extrainfo}}{}{\makenewline\@extrainfo}%
    \end{tabular}}%
  % optional picture box
  \newbox{\makecvtitlepicturebox}%
  \savebox{\makecvtitlepicturebox}{%
    \ifthenelse{\isundefined{\@photo}}%
    {}%
    {%
      \hspace*{\separatorcolumnwidth}%
      \color{color1}%
      \setlength{\fboxrule}{\@photoframewidth}%
      \ifdim\@photoframewidth=0pt%
        \setlength{\fboxsep}{0pt}\fi%
      \framebox{\includegraphics[width=\@photowidth]{\@photo}}}}%
  % name and title
  \newlength{\makecvtitledetailswidth}\settowidth{\makecvtitledetailswidth}{\usebox{\makecvtitledetailsbox}}%
  \newlength{\makecvtitlepicturewidth}\settowidth{\makecvtitlepicturewidth}{\usebox{\makecvtitlepicturebox}}%
  \ifthenelse{\lengthtest{\makecvtitlenamewidth=0pt}}% check for dummy value (equivalent to \ifdim\makecvtitlenamewidth=0pt)
    {\setlength{\makecvtitlenamewidth}{\textwidth-\makecvtitledetailswidth-\makecvtitlepicturewidth}}%
    {}%
  \begin{minipage}[b]{\makecvtitlenamewidth}%
    \namestyle{\@firstname\ \@familyname}%
    \ifthenelse{\equal{\@title}{}}{}{\\[1em]\titlestyle{\@title}}%
  \end{minipage}%
  \hfill%
  % detailed information
  \llap{\usebox{\makecvtitledetailsbox}}% \llap is used to suppress the width of the box, allowing overlap if the value of makecvtitlenamewidth is forced
  {\par\color{color2!50}\rule{\textwidth}{.25ex}\par}% <----- ADDED RULE
  % optional photo
  \usebox{\makecvtitlepicturebox}\\[1.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 \makecvtitle
\makeatother




\firstname{xy}
\familyname{z}
\title{\textcolor{red}{\textsc{Curriculum Vit\ae}}}            
\address{...}{...}    
\mobile{...}                   
\phone{...}                      
\email{...}                     

%\photo[96pt]{picture}                        
\quote{\hbox to 0pt{\hss  here comes the quote \hss}
\vspace{-2mm}\begin{flushright} -author-\end{flushright}} 

\nopagenumbers{}                            



\begin{document}

\makecvtitle

Now I have a nice header with a line dividing my personal data and the quote. So good so far.

But if I include a picture, this picture is included beneath the line, above the quote. This is not that pretty.

So: Can somebody help me with that? Maybe to rearrange the page, such that the quote is leftbounded, and to its right is the picture? I think that would look pretty.

Otherwise I think the picture would look good in the headline next to my personal data, but ABOVE the line!

I appreciate if someone helps, first layout with quote on the left and picture on the right would be much nicer!

Best Answer

All you need to do is move the line you added,

\par\color{color2!50}\rule{\textwidth}{.25ex}\par}% <----- ADDED RULE

right after the line that outputs the picture, i.e.

% optional photo
\usebox{\makecvtitlepicturebox}\\[1.5em]%
{\par\color{color2!50}\rule{\textwidth}{.25ex}\par}% <----- ADDED RULE

This will yield the following output, which is what I understand you are looking for:

raw output

You might then probably want to addjust the spacing, to reduce the space between the picture and the rule, and to increase the space between the rule and the quote. The following code, for example,

% optional photo
\usebox{\makecvtitlepicturebox}%
{\par\color{color2!50}\rule{\textwidth}{.25ex}\par\addvspace{1.5em}}% <----- ADDED RULE

would yield

improved output

Finally, note that in your code \usepackage[T1]{fontenc}, \usepackage{lmodern} and \AtBeginDocument{\recomputelengths} are unnecessary. moderncv already takes care of these.