Distance fixe entre deux items dans une liste
dans LaTeX
Bonjour,
J'ai cherché sur la toile et sur des livres, mais sans succès, une façon simple d'avoir un espacement constant entre les items d'un environnement enumerate (ou autre), c'est-à-dire d'avoir exactement le même espace entre les différents appels à \item indépendamment de ce qui est affiché entre (une ou plusieurs lignes de texte, une image, etc.).
J'ai cherché sur la toile et sur des livres, mais sans succès, une façon simple d'avoir un espacement constant entre les items d'un environnement enumerate (ou autre), c'est-à-dire d'avoir exactement le même espace entre les différents appels à \item indépendamment de ce qui est affiché entre (une ou plusieurs lignes de texte, une image, etc.).
Connectez-vous ou Inscrivez-vous pour répondre.
Réponses
il faudrait que l'espace vertical entre les deux premiers,
soit calculé seulement après avoir déterminé l'espace entre les suivants ?
Je veux pouvoir définir moi-même la distance entre les marquages des items à l'avance. Un peu comme \itemsep, mais pas entre la fin de ce qui est écrit dans un item et le suivant (qui est égale à \itemsep + \parsep). C'est la distance entre les "débuts" de chaque item que je veux fixe.
Par exemple, que j'écrive : ou
il doit y avoir 5 cm entre Bob et Mary.
Veux-tu qu'il y ait plusieurs centimètres de blanc entre "premier" et "deuxième" ?
En fait, pour résumer, j'aimerais pouvoir écrire des choses entre deux items sans que cela n'influe sur la position de l'item suivant (que je choisis à l'avance en définissant \itemsep).
Un autre exemple :
Je veux qu'il y ait exactement le même espace entre les questions dans le sujet et la correction.
Quand on imprime les deux documents et qu'on les met côte à côte, les questions se trouvent exactement au même endroit.
Tu peux faire quelque chose comme ça :
La hauteur par défaut de la minipage à l'intérieur de chaque item est de 4cm ; tu peux la choisir lors de chaque utilisation de l'environnement en la passant comme argument optionnel : Attention, ce n'est pas la distance entre deux items (pour cela, il faut ajouter \parskip et \(base)lineskip, la parenthèse dépendant de \lineskiplimit et des dimensions en jeu, notamment la profondeur de la minipage et la hauteur de la ligne qui la suit).
Le choix d'utiliser \filbreak fait que si un item est trop gros pour rentrer dans la page courante, il passe en page suivante sans causer d'underfull \vbox while \output is active, mais la page ne sera pas bien remplie. On peut changer ça en enlevant \filbreak, mais il faudra alors se débrouiller pour que les pages soient bien remplies (à supposer que tu es en mode \flushbottom).
La façon de détecter la fin d'un item permet une syntaxe pas trop lourde[1], en revanche elle ne permet pas d'imbriquer les environnements myFixedHeightList. Si tu souhaites pouvoir les imbriquer, c'est faisable mais il faut accepter une syntaxe plus lourde où chaque item est défini comme ça :
P. S. : il ne faut pas que le contenu d'un item soit trop haut pour la hauteur de minipage choisie, sinon il sera en sur-impression sur ce qui suit.
[1] On peut même faire en sorte que \item suffise à la place de \myFixedHeightListItem, mais alors tu ne pourras pas utiliser d'environnement itemize, enumerate, etc. à l'intérieur de tes items.