You can modify \makecvtitle
(however unwieldy):
\documentclass[11pt,a4paper,sans]{moderncv}
\moderncvstyle{classic}
\moderncvcolor{grey}
\renewcommand*{\namefont}{\fontsize{25}{36}\mdseries\upshape}
\usepackage[scale=0.75]{geometry}
\makeatletter
\renewcommand*{\makecvtitle}{%
% recompute lengths (in case we are switching from letter to resume, or vice versa)
\recomputecvlengths%
% optional detailed information (pre-rendering)
\def\phonesdetails{}%
\collectionloop{phones}{% the key holds the phone type (=symbol command prefix), the item holds the number
\protected@edef\phonesdetails{\phonesdetails\protect\makenewline\csname\collectionloopkey phonesymbol\endcsname\collectionloopitem}}%
\def\socialsdetails{}%
\collectionloop{socials}{% the key holds the social type (=symbol command prefix), the item holds the link
\protected@edef\socialsdetails{\socialsdetails\protect\makenewline\csname\collectionloopkey socialsymbol\endcsname\collectionloopitem}}%
% optional photo (pre-rendering)
\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}}}}%
\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 and addresscountry will always be defined but could be empty
\ifthenelse{\equal{\@addresscountry}{}}{}{\makenewline\@addresscountry}}%
\phonesdetails% needs to be pre-rendered as loops and tabulars seem to conflict
\ifthenelse{\isundefined{\@email}}{}{\makenewline\emailsymbol\emaillink{\@email}}%
\ifthenelse{\isundefined{\@homepage}}{}{\makenewline\homepagesymbol\httplink{\@homepage}}%
\socialsdetails% needs to be pre-rendered as loops and tabulars seem to conflict
\ifthenelse{\isundefined{\@extrainfo}}{}{\makenewline\@extrainfo}%
\end{tabular}
}%
% 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][\ht\makecvtitlepicturebox][t]{\makecvtitlenamewidth}%
\namestyle{\@firstname\ \@lastname}%
\ifthenelse{\equal{\@title}{}}{}{\\[1.25em]\titlestyle{\@title}}%
\end{minipage}%
\hfill%
% optional detailed information (rendering)
\llap{\usebox{\makecvtitledetailsbox}}% \llap is used to suppress the width of the box, allowing overlap if the value of makecvtitlenamewidth is forced
% optional photo (rendering)
\usebox{\makecvtitlepicturebox}\\[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 \makecvtitle
\makeatother
% personal data
\firstname{Dr. Marcus}
\familyname{\rlap{Surname that is long}}
\title{Biochemist}
\address{Street abc}{D-80331 Munich}
\mobile{+49 xxx / xx xx xx xx}
\email{marcus.surname@dummy.com}
\photo[90pt][0.4pt]{example-image-golden-upright}
\begin{document}
\makecvtitle
\end{document}
It's all about adjusting the boxes that make up the header. It's easiest to still supply your \familyname
with an additional \rlap
. The adjustment for the name uses some detail about minipage
- specifically specifying a fixed height.
Instead of fighting with the sorting procedures there is---in my opinion---an easier way.
You can use a bibliography style which does not sort the entries in the bib files, for example style unsortdin
.
Then you can write your bib files and sort the entries by your own: the first paper is the lowest, the next paper you write above etc. Same for Theses or other works.
For example see this changed bib file of you:
@ARTICLE{xxd3,
author = {A and B and C},
title = {Article title April 2014},
journal = {Journal name},
year = {2014},
volume = {3},
pages = {1-5},
number = {2},
month = {April}
}
@ARTICLE{xxd2,
author = {A and B and C},
title = {Article title October 2013},
journal = {Journal name 2},
year = {2013},
volume = {1},
pages = {1-10},
number = {1},
month = {October}
}
@ARTICLE{xxd1,
author = {A and B and C and D},
title = {Article title March 2013},
journal = {Journal name 3},
year = {2013},
volume = {2},
pages = {2-5},
number = {2},
month = {March}
}
I added by using package filecontents
both changed bib files into the following MWE.
At last this sorting in the BiB files is mutch more easier than to write an own .bst
file or change an existing one.
No you have only to change the BiB style in the MWE to unsortdin
to get the result you want (See marks <=======
in the MWE).
MWE:
\RequirePackage{filecontents}
\begin{filecontents*}{209082-journal.bib}
@ARTICLE{xxd3,
author = {A and B and C},
title = {Article title April 2014},
journal = {Journal name},
year = {2014},
volume = {3},
pages = {1-5},
number = {2},
month = {April}
}
@ARTICLE{xxd2,
author = {A and B and C},
title = {Article title October 2013},
journal = {Journal name 2},
year = {2013},
volume = {1},
pages = {1-10},
number = {1},
month = {October}
}
@ARTICLE{xxd1,
author = {A and B and C and D},
title = {Article title March 2013},
journal = {Journal name 3},
year = {2013},
volume = {2},
pages = {2-5},
number = {2},
month = {March}
}
\end{filecontents*}
\begin{filecontents*}{209082-conf.bib}
@INPROCEEDINGS{xxdc3,
author = {LastnameC, firstnameC},
title = {Title (2012)},
booktitle = {Conference 1},
year = {2012},
pages = {1-5}
}
@INPROCEEDINGS{xxdc2,
author = {LastnameB, firstnameB},
title = {Title (2011)},
booktitle = {Conference 3},
year = {2011},
pages = {30-35}
}
@INPROCEEDINGS{xxdc1,
author = {LastnameA, firstnameA},
title = {Title (2010)},
booktitle = {Conference 2},
year = {2010},
pages = {9-10}
}
\end{filecontents*}
\documentclass[10pt,legalpaper,roman]{moderncv}
\moderncvstyle{banking}
\moderncvcolor{red}
\renewcommand{\familydefault}{\rmdefault}
\usepackage[scale=0.75]{geometry}
\name{John}{Doe}
\title{Resum\'{e}}
\makeatletter
\renewcommand*{\bibliographyitemlabel}{[\arabic{enumiv}]}
\makeatother
\usepackage{multibib}
\newcites{jrnl}{Journal papers} % ================ needs bibtex jrnl.aux
\begin{document}
\makecvtitle
\section{Selected publications}
\nocitejrnl{*}
\bibliographystylejrnl{unsrtdin}% plainyrrev <==========================
\bibliographyjrnl{209082-journal}
\renewcommand{\refname}{Conference papers}
\nocite{*}
\bibliographystyle{unsrtdin}% plainyrrev <==============================
\bibliography{209082-conf}
\end{document}
and the result:
Best Answer
I've tried the solution that you linked. Using the new
\dates[]
command as the first argument to the\cventry
command gives the output you're looking for, I think.You can also use the
\yearabove
command to simply display two texts (like month and date) above each other. If the text is too long and creates a linebreak, it might be necessary to increase\hintscolumnwidth
, the width of the date column (see the example).You can also skip using the
\dates
command altogether and display German month names only using the\yearabove
command (see the second\cventry
).Using the
\dates
command with arguments other than numbers (in the format#1.#2-#3.#4
, where#1
,#3
are numbers) will result in errors, as the command expects numbers to convert them to the name of the month, i.e.1
toJanuary
.