You can reserve space for the title block with skipabove
and topinnermargin
. Additionally it turns out that you should hide the size of this title box by setting a bounding box of zero size. This improves breaking across columns:
\documentclass[a4paper,10pt,twocolumn]{book}
\usepackage[english]{babel}
\newcommand{\mytext}{uutien gaaaetlmsl t n.tu aii s liwmuarpulfoaf ealiesnPui sutuacttcuMitai ibioErertix}
\usepackage[framemethod=tikz]{mdframed}
\tikzstyle{titregris}=[draw=gray, thick, fill=white,
text=black, rectangle, minimum height=0.7cm]
\mdfdefinestyle{Argumentstyle}{}
\begin{document}
\vspace*{18cm}
\begin{mdframed}[style=Argumentstyle,
skipabove={1.2\baselineskip},
innertopmargin={1.2\baselineskip},
firstextra={\useasboundingbox (P) rectangle (P); \node[titregris,xshift=5mm] at (P-|O) {puttetuiroe};},
singleextra={\useasboundingbox (P) rectangle (P); \node[titregris,xshift=5mm] at (P-|O) {puttetuiroe};}]
\begin {enumerate}
\item \mytext \mytext
\item \mytext \mytext
\item \mytext \mytext
\item \mytext \mytext
\item \mytext \mytext
\end {enumerate}
\end{mdframed}
\mytext
\begin{mdframed}[style=Argumentstyle,
skipabove={1.2\baselineskip},
innertopmargin={1.2\baselineskip},
firstextra={\useasboundingbox (P) rectangle (P); \node[titregris,xshift=5mm] at (P-|O) {puttetuiroe};},
singleextra={\useasboundingbox (P) rectangle (P); \node[titregris,xshift=5mm] at (P-|O) {puttetuiroe};}]
\begin {enumerate}
\item \mytext \mytext
\item \mytext \mytext
\item \mytext \mytext
\item \mytext \mytext
\item \mytext \mytext
\end {enumerate}
\end{mdframed}
\end{document}
Incidentally, note the use of \vspace*
rather than ${}$ \vspace
. The star *
means that the space is not to be discarded at page boundaries etc.
With \vspace*{20cm}
the output is:
A way to do this is to use a \phantom
command with the list \cvitem
and so have the correct alignement:
\cvitem{caption}{item1}
\cvitem{\phantom{caption}}{item2}
\cvitem{\phantom{caption}}{item3}
Of course you can define a new command to write less character:
\newcommand{\foo}{\phantom{caption}}
\cvitem{caption}{item1}
\cvitem{\foo}{item2}
\cvitem{\foo}{item3}
Best Answer
Trying to reproduce your problem (you should have given a MWE), I start with:
which produces:
Adding a
\pagebreak
before the positions' section gives:Indeed the first page is ragged at the bottom. The reason is that the
moderncv
class chooses not to introduce vertical stretching lengths, neither between paragraphs (implicitly introduced by the\lipsum
command here) nor at section headers and list items. Of course, you can introduce them yourself wherever you like:and then you get something closer to what you want:
To do this automatically (i.e., to properly introduce stretching lengths between paragraphs, list items, section headers, etc.), I'm afraid you need to tweak the
moderncv
class quite a lot. Unless I'm missing something, it was clearly the author's intention to leave the pages ragged at the bottom. I suggest that you leave it like this, or you choose a different CV class that better suits your taste.