La commande primitive `\prevgraf` fait exactement ça. Elle spécifie le nombre de lignes
dans le (sous) paragraphe récemment complété.
**Note** l'espace *interlignes* intervient aussi à la composition des pages et peut
donc affecter les sauts de page. Il est recommandé d'utiliser une valeur plus grande :
`\linespread{1.2}`
\documentclass[french]{article}
\usepackage{lmodern}
\usepackage[T1]{fontenc}
\usepackage{babel}
\usepackage{verbatim}
\newif\ifcorrige
%\corrigetrue % décommenter pour afficher les réponses
\newcounter{nbrlignes}
\newcounter{nbrpointilles}
\newcommand{\completerparpointilles}[1]{%
\loop
\ifnum\value{nbrlignes}<#1
\stepcounter{nbrlignes}%
\noindent\dotfill\par
\repeat}
\ifcorrige
\newenvironment{reponse}[1][1]
{%
\setcounter{nbrpointilles}{#1}%
\par\noindent
}
{%
\par\setcounter{nbrlignes}{\prevgraf}%
\completerparpointilles{\value{nbrpointilles}}%
}
\else
\newenvironment{reponse}[1][1]
{\par\setcounter{nbrlignes}{0}%
\completerparpointilles{#1}%
\comment}
{\endcomment
\par}
\fi
%\linespread{1.2}
\begin{document}
1 - Quelle était la population mondiale en 2013 ?
\begin{reponse}[1]
La population en 2013 était de 7.2 milliards d'habitants.
\end{reponse}
2 - Quelle était la population mondiale en 2013 ?
\begin{reponse}[5]
Afin d'éviter des sauts de page intempestifs et garder le même nombre de pages sur mon document, je souhaite que le nombre de lignes entre mes questions ne changent pas. En effet, il arrive qu'à une ligne près, une nouvelle page soit créée ; et c'est ce que je veux éviter.
\end{reponse}
3 - Quelle était la population mondiale en 2013 ?
\begin{reponse}[7]
Afin d'éviter des sauts de page intempestifs et garder le même nombre de pages sur mon document, je souhaite que le nombre de lignes entre mes questions ne changent pas. En effet, il arrive qu'à une ligne près, une nouvelle page soit créée ; et c'est ce que je veux éviter.
\end{reponse}
\end{document}
**Edit** La commande `\completerparpointilles` est redéfinie et une nouvelle commande `\houdotfill` est introduite.
\documentclass[french]{article}
\usepackage{lmodern}
\usepackage[T1]{fontenc}
\usepackage{babel}
\usepackage{verbatim}
\newif\ifcorrige
%\corrigetrue % décommenter pour afficher les réponses
\newcounter{nbrlignes}
\newcounter{nbrpointilles}
\newcommand{\completerparpointilles}[1]{%
\loop
\ifnum\value{nbrlignes}<#1
\stepcounter{nbrlignes}%
\noindent\houdotfill\par
\repeat}
\ifcorrige
\newcommand{\houdotfill}{\hfill}
\newenvironment{reponse}[1][1]
{%
\setcounter{nbrpointilles}{#1}%
\par\noindent
}
{%
\par\setcounter{nbrlignes}{\prevgraf}%
\completerparpointilles{\value{nbrpointilles}}%
}
\else
\newcommand{\houdotfill}{\dotfill}
\newenvironment{reponse}[1][1]
{\par\setcounter{nbrlignes}{0}%
\completerparpointilles{#1}%
\comment}
{\endcomment
\par}
\fi
%\linespread{1.2}
\begin{document}
1 - Quelle était la population mondiale en 2013 ?
\begin{reponse}[1]
La population en 2013 était de 7.2 milliards d'habitants.
\end{reponse}
2 - Quelle était la population mondiale en 2013 ?
\begin{reponse}[5]
Afin d'éviter des sauts de page intempestifs et garder le même nombre de pages sur mon document, je souhaite que le nombre de lignes entre mes questions ne changent pas. En effet, il arrive qu'à une ligne près, une nouvelle page soit créée ; et c'est ce que je veux éviter.
\end{reponse}
3 - Quelle était la population mondiale en 2013 ?
\begin{reponse}[7]
Afin d'éviter des sauts de page intempestifs et garder le même nombre de pages sur mon document, je souhaite que le nombre de lignes entre mes questions ne changent pas. En effet, il arrive qu'à une ligne près, une nouvelle page soit créée ; et c'est ce que je veux éviter.
\end{reponse}
oui
\end{document}