2

I'm trying to use multicol to get moderncv to put text in two columns, but it turns out that the columns don't get narrowed and both are mashed together.

\begin{multicols}{2}
\section{Experience}
\cventry{Sep 2000 - Aug 2002}{Chief Bottlewasher}{Yoyodyne Systems}{Bumpassville, NY}{}{Washed bottles.  Exorcised demons.  Wrangled cats.  Drilled for oil.  Hung wallpaper.  Neural surgeon.}
\columnbreak
\section{Education}
\cventry{Jun 2000}{Bachelor of Science in Viscosity}{Institute for Extreme Cleverness}{Bumpassville, NY}{}{}
\end{multicols}

I've seen assorted other questions involving multiple columns in moderncv, but they all focus on making multiple columns within a section. The closest I've seen is this one: moderncv two columns in a small part of the page but nobody answered when the original asker said that he wanted languages on the left and interests on the right.

1

This is difficult without rewrite a large part of the original code (it seems that the package not set for this)

Here is a solution (one need to increase textwidth)

\documentclass[11pt,a4paper]{moderncv}
\moderncvstyle{casual} 
\moderncvcolor{blue}
\usepackage{multicol}
\name{Me}{Myname}
\title{title} 
\quote{Bla bla}

\begin{document}
\makecvtitle
\setlength{\columnwidth}{\textwidth}
\addtolength{\columnwidth}{-\columnsep}
\setlength{\columnwidth}{.5\columnwidth}

\setlength{\hintscolumnwidth}{0.175\columnwidth}
\setlength{\separatorcolumnwidth}{0.025\columnwidth}
%
\renewcommand*{\recomputecvbodylengths}{%
  % body lengths
  \setlength{\maincolumnwidth}{\columnwidth-\leftskip-\rightskip-\separatorcolumnwidth-\hintscolumnwidth}%
  \setlength{\listitemcolumnwidth}{\maincolumnwidth-\listitemsymbolwidth}%
  \setlength{\doubleitemcolumnwidth}{\maincolumnwidth-\hintscolumnwidth-\separatorcolumnwidth-\separatorcolumnwidth}%
  \setlength{\doubleitemcolumnwidth}{0.5\doubleitemcolumnwidth}%
  \setlength{\listdoubleitemcolumnwidth}{\maincolumnwidth-\listitemsymbolwidth-\separatorcolumnwidth-\listitemsymbolwidth}%
  \setlength{\listdoubleitemcolumnwidth}{0.5\listdoubleitemcolumnwidth}%
  % regular lengths
  \setlength{\parskip}{0pt}}
\recomputecvbodylengths

\begin{multicols}{2}
\section{Experience}
\cventry{Sep 2000 - Aug 2002}{Chief Bottlewasher}{Yoyodyne Systems}{Bumpassville, NY}{}{Washed bottles.  Exorcised demons.  Wrangled cats.  Drilled for oil.  Hung wallpaper.  Neural surgeon.}
\columnbreak
\section{Education}
\cventry{Jun 2000}{Bachelor of Science in Viscosity}{Institute for Extreme Cleverness}{Bumpassville, NY}{}{}
\end{multicols}

\end{document}
  • ! LaTeX Error: \recomputecvbodylengths undefined. Using version 2014.20141024 of Texlive and friends. – Frotz Jan 16 '16 at 6:40
  • @Frotz I have moderncv 2015/07/28 v2.0.0 CTAN last version. – touhami Jan 16 '16 at 9:14
0

Unfortunately, \recomputecvbodylengths derives all document's dimensions from the \textwidth variable, not \linewidth. The difference between these commands is that the former keeps its value the same in multicolumn mode, while the latter changes appropriately.

So the following code should do the trick with minor boilerplate:

\begin{multicols}{2}
\setlength{\textwidth}{\linewidth}
\recomputecvbodylengths

\section{Experience}
...
...
\vfil
\columnbreak

\section{Education}
...
...
\end{multicols}

The modified \textwidth would be restored back to it's previous state by the multicols environment, so there is no need to manually rescue its value.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.