Suivant: , Précédent: , Monter: Environments   [Table des matières][Index]


8.16 list

Synopsis :

\begin{list}{étiquetage}{espacement}
\item[étiquette optionnelle du premier article] texte du premier
  article
\item[étiquette optionnelle du deuxième article] texte du deuxième
  aticle
...
\end{list}

L’environnement list est un environnement générique qui est utilisé pour construire des listes plus spécialisées. On l’utilise la plupart du temps pour créer des listes via les environnements description, enumerate, et itemize (voir description, enumerate, et itemize). Par ailleurs, beaucoup d’environnements standards de LaTeX qui visuellement ne sont pas des listes sont construits en utilisant list, ceci comprend quotation, quote, center, verbatim, et bien d’autres (voir quotation & quote, voir center, voir flushright).

Ici, on décrit l’environnement list en définissant un nouvel environnement personnalisé.

\newcounter{compteurlistenommage}  % numérotes les articles
\newenvironment{nommage}
  {\begin{list}
     {Article~\Roman{compteurlistenommage}.} % argument d'étiquetage
     {\usecounter{compteurlistenommage}   % argument d'espacement
      \setlength{\leftmargin}{3.5em}} % ...suite argument d'espacement
  }
  {\end{list}}

\begin{nommage}
  \item Apparaît comme « Article~I. »
  \item[Étiquette spéciale.] Apparaît comme « Étiquette spéciale. »
  \item Apparaît comme « Article~II. »
\end{nommage}

L’argument obligatoire étiquetage, qui est le premier argument de l’environnement list, spécifie comment les articles doivent être étiquetés par défaut. Il peut contenir du texte et des commandes LaTeX, comme dans l’exemple précédent où il contient à la fois ‘Article’ et ‘\Roman{…}’. LaTeX forme l’étiquette en mettant l’argument étiquetage dans une boîte de largeur \labelwidth. Si l’étiquette est plus large que cela, la matière supplémentaire s’étend sur la droite. Lorsque vous fabriquez une instance de list vous pouvez l’emporter sur l’étiquetage par défaut en donnant à \item un argument optionnel avec des crochets et le texte, comme dans l’exemple précédent \item[Étiquette spéciale.] ; voir \item.

Le second argument obligatoire espacement prend une liste de commandes. L’une de celle qu’on y retrouve est \usecounter{nomcompteur} (voir \usecounter). Utilisez la pour dire à LaTeX de numéroter les articles en utilisant le compteur fourni. Ce compteur est remis à zéro chaque fois que LaTeX entre dans l’environnement, et le compteur est incrémenté par un chaque fois que LaTeX rencontre une commande \item.

Une autre commande qu’on retrouve dans espacement est \makelabel, pour construire la boîte de l’étiquette. Par défaut elle positionne le contenu fer à droite. Elle prend un argument, l’étiquette. Elle compose son contenu en mode LR. Un exemple de changement de sa définition consiste dans l’exemple précédent nommage à ajouter avant la définition de l’environnement \newcommand{\namedmakelabel}[1]{\textsc{#1}}, et entre la commande \setlength et la parenthèse clôturant l’argument espacement à ajouter aussi \let\makelabel\namedmakelabel. Ceci composera les étiquettes en petites capitales. De même, en remplaçant cette seconde ligne de code par \let\makelabel\fbox on met les étiquettes dans une boîte encadrée. Ci-après voici un autre exemple de la commande \makelabel, dans la définition de l’environnement etiquetterouge.

De même on trouve souvent au sein de espacement des commandes pour redéfinir l’espacement de la liste. Ci dessous on listes les paramètres d’espacement et leur valeurs par défaut. (Il se peut que les valeurs par défaut pour les environnements dérivés tels que itemize soient différentes des valeurs exposées ici). Voir aussi la figure qui suit la liste. Chaque paramètre est une longueur (voir Lengths). Les espaces verticaux sont d’ordinaire des longueurs élastiques, avec une composante en plus ou en minus, pour donner à TeX de la flexibilité dans le réglage de la page. On change chaque paramètre avec une commande du genre de as \setlength{itemsep}{2pt plus1pt minus1pt}. Pour obtenir certains effets, ces longueurs doivent être mise à zéro, ou à une valeur négative.

\itemindent

Espace supplémentaire horizontal de renfoncement, ajouté à de leftmargin, de la première ligne de chaque article. Sa valeur par défaut est 0pt.

\itemsep

Espace vertical entre les articles, ajouté à \parsep. Les valeurs par défaut pour les trois premiers niveaux dans les classes de LaTeX ‘article’, ‘book’, et ‘report’ à la taille de 10 point sont : 4pt plus2pt minus1pt, \parsep (c.-à-d. 2pt plus1pt minus1pt), et \topsep (c.-à-d. 2pt plus1pt minus1pt). Les valeurs par défaut à 11 points sont : 4.5pt plus2pt minus1pt, \parsep (c.-à-d. 2pt plus1pt minus1pt), et \topsep (c.-à-d. 2pt plus1pt minus1pt). Les valeurs par défaut à 12 points sont : 5pt plus2.5pt minus1pt, \parsep (c.-à-d. 2.5pt plus1pt minus1pt), et \topsep (c.-à-d. 2.5pt plus1pt minus1pt).

\labelsep

Espace horizontal entre l’étiquette et le texte d’un article. La valeur par défaut pour les classes LaTeX ‘article’, ‘book’, et ‘report’ est de 0.5em.

\labelwidth

Largeur horizontale. La boîte contenant l’étiquette est nominalement de cette largeur. Si \makelabel renvoie un texte qui est plus large que cela, alors le renfoncement de la première ligne de l’article sera augmenté pour créer l’espace nécessaire à cette matière supplémentaire. Si \makelabel renvoie un texte de largeur inférieur ou égale à \labelwidth alors le comportement par défaut de LaTeX est que l’étiquette est composé fer à droite dans une boîte de cette largeur.

Le bord de gauche de la boîte de l’étiquette est à \leftmargin+\itemindent-\labelsep-\labelwidth de la marge de gauche de l’environnement enveloppant.

La valeur par défaut pour les classes LaTeX ‘article’, ‘book’, et ‘report’ pour les listes de premier niveau vaut \leftmargini-\labelsep, (c.-à-d. 2em en mode à une colonne et 1.5em en mode deux-colonnes). Au deuxième niveau, c’est \leftmarginii-\labelsep, et au troisième niveau \leftmarginiii-\labelsep. Ces définitions ont pour effet que le bord de gauche de l’étiquette coïncide avec la marge de gauche de l’environnement enveloppant.

\leftmargin

Espace horizontal entre la marge de gauche de l’environnement susjacent (ou la marge de gauche de la page pour une liste de premier niveau), et la marge de gauche de cette liste. Doit être positif ou nul.

Dans les classes de document LaTeX standardes, ce paramètre est réglé à la valeur \leftmargini pour une liste de premier niveau, alors que pour une liste de deuxième niveau, c’est à dire imbriquée dans une liste de premier niveau, il est réglé à \leftmarginii. Pour les listes aux niveaux d’imbrication suivants les valeurs de \leftmarginiii à \leftmarginvi sont utilisées. (Imbriquer des listes au delà de cinq niveaux produit le message d’erreur ‘Too deeply nested’).

Les valeurs par défaut des trois premiers niveaux dans les classes LaTeX ‘article’, ‘book’, et ‘report’ sont les suivantes : \leftmargini vaut 2.5em (ou 2em en mode deux-colonnes), \leftmarginii vaut 2.2em, et \leftmarginiii vaut 1.87em.

\listparindent

Espace horizontal de renfoncement supplémentaire, au delà de \leftmargin, pour le deuxième paragraphe et les suivants au sein d’un article de liste. Une valeur négative produit un débord, c.-à-d. un retrait sur la gauche. Sa valeur par défaut est 0pt.

\parsep

Espace vertical entre les paragraphes d’un article. Les valeurs par défaut pour les trois premiers niveaux dans les classes LaTeX ‘article’, ‘book’ et ‘report’ à la taille de 10 point sont : 4pt plus2pt minus1pt, 2pt plus1pt minus1pt, and 0pt. La valeurs par défaut à la taille de 11 point sont : 4.5pt plus2pt minus1pt, 2pt plus1pt minus1pt, et 0pt. La valeurs par défaut à la taille de 12 point sont : 5pt plus2.5pt minus1pt, 2.5pt plus1pt minus1pt, et 0pt.

\partopsep

Espace vertical ajouté, en plus de \topsep+\parskip, en haut et en bas de l’environnement tout entier lorsque la liste considérée est précédée d’une ligne à blanc. (Une ligne à blanc dans le source LaTeX avant la liste change l’espacement à la fois en haut et en bas de la liste ; que la ligne suivant la liste soit à blanc est sans importance).

Les valeurs par défaut pour les trois premiers niveaux dans les classes LaTeX ‘article’, ‘book’, et ‘report’ à la taille de point sont : 2pt plus1 minus1pt, 2pt plus1pt minus1pt, et 1pt plus0pt minus1pt. Les valeurs par défaut à la taille de 11 point sont : 3pt plus1pt minus1pt, 3pt plus1pt minus1pt, et 1pt plus0pt minus1pt). Les valeurs par défaut à la taille de 12 point sont : 3pt plus2pt minus3pt, 3pt plus2pt minus2pt, et 1pt plus0pt minus1pt.

\rightmargin

Espace horizontal entre la marge de droite de la liste et la marge de droite de l’environnement l’englobant. Vaut par défaut 0pt. Doit être positif ou nul.

\topsep

Espace vertical ajouté aussi bien au haut qu’au bas de la liste, en plus de \parskip (voir \parindent & \parskip). Les valeurs par défaut pour les trois premiers niveaux dans les classes LaTeX ‘book’, et ‘report’ à la taille de 10 point sont : 8pt plus2pt minus4pt, 4pt plus2pt minus1pt, and 2pt plus1pt minus1pt. Les valeurs par défaut à la taille de 11 point sont : 9pt plus3pt minus5pt, 4.5pt plus2pt minus1pt, and 2pt plus1pt minus1pt. Les valeurs par défaut à la taille de 12 point sont : 10pt plus4pt minus6pt, 5pt plus2.5pt minus1pt, et 2.5pt plus1pt minus1pt.

La figure suivante illustre les distances horizontales et verticales.

latex2e-figures/list

Les longueurs illustrées sont listées ci-dessous. La relation clef est que le bord droit du crochet pour h1 est à la même position horizontale que le bord droit du crochet pour h4, de sorte que le bord de gauche de la boîte de l’étiquette est à h3+h4-(h0+h1).

v0

vaut \topsep + \parskip si l’environnement list ne commence pas un nouveau paragraphe, et \topsep+\parskip+\partopsep sinon

v1

\parsep

v2

\itemsep+\parsep

v3

Même valeur que v0. (Cet espace est affecté selon qu’une ligne à blanc apparaît dans le source au dessus de l’environnement ; la présence d’une ligne à blanc au dessous de l’environnement est sans effet).

h0

\labelwidth

h1

\labelsep

h2

\listparindent

h3

\leftmargin

h4

\itemindent

h5

\rightmargin

Les marges de gauche et de droite de la liste, affichées ci-dessus comme h3 et h5, sont exprimées relativement à celles fournies par l’environnement englobant, ou par rapport aux marges de la page pour une liste au niveau le plus externe. La largeur de ligne utilisée pour la composition des articles de la liste est \linewidth (voir Page layout parameters). Par exemple, réglez la marge de gauche de la liste à un quart de la distance entre les marges de gauche et de droite de l’environnement englobant avec \setlength{\leftmargin}{0.25\linewidth}.

Les sauts de page au sein d’une structure de liste sont contrôlés par les paramètres ci-dessous. Pour chacun d’eux, la valeur par défaut de LaTeX est -\@lowpenalty, c.-à-d. -51. Comme c’est négatif, cela encourage d’une certaine façon un saut de page à tout endroit. On peut changer cela avec un réglage de, par ex., \@beginparpenalty=9999 ; une valeur de 10000 interdit une saut de page.

\@beginparpenalty

La pénalité de saut de page pour un saut avant la liste (par défaut -51).

\@itempenalty

La pénalité pour un saut de page avant un article de liste (par défaut -51).

\@endparpenalty

La pénalité pour un saut de page après une liste (par défaut -51).

Le paquetage enumitem est utile pour personnaliser les listes.

Dans l’exemple suivant les étiquettes sont en rouge. Elles sont numérotées, et le bord gauche des étiquettes est aligné avec le bord gauche du texte des articles. Voir \usecounter.

\usepackage{color}
\newcounter{cnt}
\newcommand{\makeredlabel}[1]{\textcolor{red}{#1.}}
\newenvironment{redlabel}
  {\begin{list}
    {\arabic{cnt}}
    {\usecounter{cnt}
     \setlength{\labelwidth}{0em}
     \setlength{\labelsep}{0.5em}
     \setlength{\leftmargin}{1.5em}
     \setlength{\itemindent}{0.5em} % vaut \labelwidth+\labelsep
     \let\makelabel=\makeredlabel
    }
  }
{\end{list}}

Suivant: , Précédent: , Monter: Environments   [Table des matières][Index]