[Tex/LaTex] How to have a cvlisttripleitem in moderncv

itemizemoderncv

The moderncv package comes with a lot of builtin command. One I think is usefull is the \cvlistitem and \cvlistdoubelitem when items to list are smalls and fit on two columns. But what should I do when I have really tiny items that can fit on three columns? I tried to use minipages but I got 2 problems:

  • I have to guess the width of the available space as putting minipages' width to 0.3\textwidth result in the third minipage below the others
  • I have to force the vertical position of the content inside the minipage

Is there a simplest canonical way to have such a \cvlisttripleitem?

Here is a MWE (not so minimal actually):

\documentclass[10pt,a4paper]{moderncv}
\moderncvtheme[blue]{classic}

\firstname{First}
\lastname{Last}

\begin{document}
\maketitle

\section{Technical skills}
% itemize
\cvitem{group 1}{
\begin{itemize}
\item skill 1
\item skill 2
\item skill 3
\end{itemize}
}
\cvitem{group 2}{\begin{itemize} \item skill 4 \end{itemize}}

\section{Double itemize}
% double itemize
\cvlistdoubleitem{skill 1}{skill 4}
\cvlistdoubleitem{skill 2}{skill 5}
\cvlistdoubleitem{skill 3}{}

\section{Triple itemize}
%triple itemize
\cvitem{}{
\begin{minipage}[t]{0.25\textwidth}
\begin{itemize}
\item tiny item 1
\item tiny item 2
\end{itemize}
\end{minipage}
\begin{minipage}[t]{0.25\textwidth}
\begin{itemize}
\item tiny item 3
\item tiny item 4
\end{itemize}
\end{minipage}
\begin{minipage}[t]{0.25\textwidth}
\begin{itemize}
\item tiny item 5
\end{itemize}
\end{minipage}
}
%\cvlisttripleitem{1}{2}{3}

\section{Triple itemize}
% triple itemize
% does not work
\cvitem{}{
\begin{minipage}{0.3\textwidth}
\begin{itemize}
\item tiny item 1
\end{itemize}
\end{minipage}
\begin{minipage}{0.3\textwidth}
\begin{itemize}
\item tiny item 2
\end{itemize}
\end{minipage}
\begin{minipage}{0.3\textwidth}
\begin{itemize}
\item tiny item 3
\end{itemize}
\end{minipage}
}
% description
\section{Complicated entries}
\cvitem{}{\begin{description}
\item [Technical name] short description explaining the technical name
\item [Some buzz word] clarification and precision about this buzz word and my skills
\end{description}
}

% description
\section{Complicated entries (bis)}
\cvitem{Technical name}{short description explaining the technical name}
\cvitem{Some buzz word}{clarification and precision about this buzz word and my skills}

% enumerate
\section{No practical use}
\cvitem{}{
\begin{enumerate}
\item item 1
\begin{enumerate}
\item sub-item 1
\item sub-item 2
\end{enumerate}
\item item $n+1$
\end{enumerate}
}

\end{document}

Best Answer

Here is one option using multicols* from multicol package.

\usepackage{multicol}
.
.
.
\section{Triple itemize here again}
% triple itemize
% does not work
\hspace*{\dimexpr\hintscolumnwidth+\separatorcolumnwidth\relax}
\begin{minipage}{\maincolumnwidth}
\begin{multicols*}{3}
\begin{itemize}
\item tiny item 1
\item tiny item 2
\item tiny item 3
\item tiny item 4
\item tiny item 5
\end{itemize}
\end{multicols*}
\end{minipage}
% description
.
.
.

There are three length of concern. The left column is having a width of \hintscolumnwidth, the separator width is \separatorcolumnwidth and the main column is \maincolumnwidth wider.

\documentclass[10pt,a4paper]{moderncv}
\moderncvtheme[blue]{classic}

\firstname{First}
\lastname{Last}

\usepackage{multicol}
\begin{document}
\maketitle

\section{Technical skills}
% itemize
\cvitem{group 1}{
\begin{itemize}
\item skill 1
\item skill 2
\item skill 3
\end{itemize}
}
\cvitem{group 2}{\begin{itemize} \item skill 4 \end{itemize}}

\section{Double itemize}
% double itemize
\cvlistdoubleitem{skill 1}{skill 4}
\cvlistdoubleitem{skill 2}{skill 5}
\cvlistdoubleitem{skill 3}{}

\section{Triple itemize}
%triple itemize
\cvitem{}{
\begin{minipage}[t]{0.25\textwidth}
\begin{itemize}
\item tiny item 1
\item tiny item 2
\end{itemize}
\end{minipage}
\begin{minipage}[t]{0.25\textwidth}
\begin{itemize}
\item tiny item 3
\item tiny item 4
\end{itemize}
\end{minipage}
\begin{minipage}[t]{0.25\textwidth}
\begin{itemize}
\item tiny item 5
\end{itemize}
\end{minipage}
}
%\cvlisttripleitem{1}{2}{3}

\section{Triple itemize here again}
% triple itemize
% does not work
\hspace*{\dimexpr\hintscolumnwidth+\separatorcolumnwidth\relax}
\begin{minipage}{\maincolumnwidth}
\begin{multicols*}{3}
\begin{itemize}
\item tiny item 1
\item tiny item 2
\item tiny item 3
\item tiny item 4
\item tiny item 5
\end{itemize}
\end{multicols*}
\end{minipage}
% description
\section{Complicated entries}
\cvitem{}{\begin{description}
\item [Technical name] short description explaining the technical name
\item [Some buzz word] clarification and precision about this buzz word and my skills
\end{description}
}

% description
\section{Complicated entries (bis)}
\cvitem{Technical name}{short description explaining the technical name}
\cvitem{Some buzz word}{clarification and precision about this buzz word and my skills}

% enumerate
\section{No practical use}
\cvitem{}{
\begin{enumerate}
\item item 1
\begin{enumerate}
\item sub-item 1
\item sub-item 2
\end{enumerate}
\item item $n+1$
\end{enumerate}
}

\end{document}

enter image description here

Another option is to use tasks package. I will add an example later.

Related Question