Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentes Révision précédente
Prochaine révision
Révision précédente
3_composition:texte:listes:interrompre_une_liste_numerotee [2018/12/04 08:38]
jejust Correction des liens internes. Mots-clefs OpenGraph.
3_composition:texte:listes:interrompre_une_liste_numerotee [2021/01/28 17:47] (Version actuelle)
dbitouze Correction de lien interne
Ligne 1: Ligne 1:
-====== ​Interrupting enumerated lists ======+====== ​Comment interrompre temporairement une liste numérotée? ​======
  
 +Il est souvent pratique d'​avoir un texte de commentaire,​ « en dehors » de la liste, entre les entrées successives d'une liste. La situation est ici fonction du type d'​environnement utilisé :
 +  * avec l'​environnement ''​itemize'',​ ce n'est pas un problème, car rien ne distingue les éléments successifs ;
 +  * avec l'​environnement ''​description'',​ les étiquettes des éléments sont sous le contrôle de l'​utilisateur et il n'y a donc pas de problème de continuité ;
 +  * avec l'​environnement ''​enumerate'',​ la numérotation de la liste est générée automatiquement et est sensible au contexte. Il faut donc ici conserver l'​état du compteur d'​énumération pour poursuivre la liste après l'​avoir interrompu. C'est ce cas qui est développé ici.
  
-It's often convenient to have commentary text, "​outside"​ the list, +===== Avec les commandes de base =====
-between successive entries of a list.  In the case of +
-''​itemize''​ lists this is no problem, since there'​s never +
-anything to distinguish successive items, while in the case of +
-''​description''​ lists, the item labels are under the user'​s +
-control so there'​s no automatic issue of continuity.+
  
-For ''​enumerate'' ​liststhe labels are generated automatically,​ +L'approche consiste ici à conserver l'état de l'énumération dans un compteur créé pour l'occasionpuis à le restaurer lors de la reprise de l'​énumération ​:
-and are context-sensitive,​ so the context (in this case, the state +
-of the enumeration counter) needs to be preserved. +
- +
-The belt-and-braces approach is to remember the state of the +
-enumeration in your own counter variable, and then restore it when +
-restarting enumerate:+
  
 <code latex> <code latex>
 +\documentclass{article}
 \newcounter{saveenum} \newcounter{saveenum}
- ...+ 
 +\begin{document} 
 +Cette liste est :
 \begin{enumerate} \begin{enumerate}
-  ​...+  ​\item claire ; 
 +  \item précise ;
   \setcounter{saveenum}{\value{enumi}}   \setcounter{saveenum}{\value{enumi}}
 \end{enumerate} \end{enumerate}
-<​Commentary text>+Cela n'​était pas bien compliqué.
 \begin{enumerate} \begin{enumerate}
   \setcounter{enumi}{\value{saveenum}}   \setcounter{enumi}{\value{saveenum}}
-  ​...+  ​\item et complète.
 \end{enumerate} \end{enumerate}
 +\end{document}
 </​code>​ </​code>​
  
-This is reasonable, in small doses... Problems (apart from sheer +<​latexdoc>​ 
-verbosity) are getting the level right +\documentclass{article} 
-("​should I use counter ''​enumi'', ''​enumii'', ​...") and remembering not to +\newcounter{saveenum} 
-nest the interruptions (i.e., not to have a separate list, that is +\pagestyle{empty} 
-itself interrupted) in the "​commentary text").+\begin{document} 
 +Cette liste est : 
 +\begin{enumerate} 
 +  \item claire ; 
 +  \item précise ; 
 +  \setcounter{saveenum}{\value{enumi}} 
 +\end{enumerate} 
 +Cela n'était pas bien compliqué
 +\begin{enumerate} 
 +  ​\setcounter{enumi}{\value{saveenum}} 
 +  \item et complète. 
 +\end{enumerate} 
 +\end{document} 
 +</​latexdoc>​
  
-The [[ctanpkg>​mdwlist]] ​package defines commands ​''​\suspend'' ​and +Cette méthode est raisonnable à petites doses... Les problèmes, en dehors de la lisibilité,​ sont d'​obtenir le bon niveau (faut-il utiliser le compteur ''​enumi'',​ ''​enumii''​...) et d'​éviter d'​avoir des listes interrompues dans le commentaire lui-même. 
-''​\resume'' ​that simplify the process:+ 
 +Par ailleurs, si vous suspendez une [[3_composition:​texte:​listes:​modifier_le_style_des_listes_numerotees |liste avec un style de numérotation modifié]], vous devez fournir à nouveau les paramètres optionnels requis par l'​extension ​[[ctanpkg>​enumerate|enumerate]] lors de la reprise la liste. 
 + 
 +===== Avec l'​extension mdwlist ===== 
 + 
 +L'​extension [[ctanpkg>​mdwlist|mdwlist]] ​définit les commandes ​''​\suspend'' ​et ''​\resume'' ​pour simplifier ce processus:
  
 <code latex> <code latex>
 +\documentclass{article}
 +\usepackage{mdwlist}
 +
 +\begin{document}
 +Cette liste est :
 \begin{enumerate} \begin{enumerate}
-  ​...+  ​\item claire ; 
 +  \item précise ;
 \suspend{enumerate} \suspend{enumerate}
-<​Commentary text>+Cela n'​était pas bien compliqué.
 \resume{enumerate} \resume{enumerate}
-  ​...+  ​\item et complète.
 \end{enumerate} \end{enumerate}
 +\end{document}
 </​code>​ </​code>​
-The package allows an optional name (as in ''​\suspend[id]{enumerate}''​) 
-to allow you to identify a particular suspension, and hence provide 
-a handle for manipulating nested suspensions. 
  
-If you're suspending a [[composition:texte:​listes:​modifier_le_style_des_listes_numerotees|fancy-enumeration list]], +<​latexdoc>​ 
-you need to re-supply the optional "item label layout"​ parameters required by +\documentclass{article} 
-the [[ctanpkg>​enumerate]] package when resuming the list, whether by the +\usepackage{mdwlist} 
-belt-and-braces approach, or by the [[ctanpkg>mdwlist]] +\pagestyle{empty} 
-''​\resume{enumerate}'' ​technique The task is a little tedious +\begin{document} 
-in the [[ctanpkg>​mdwlist]] case, since the optional ​argument ​has to be +Cette liste est 
-encapsulatedwholeinside an optional ​argument ​to ''​\resume''​+\begin{enumerate} 
-which requires use of extra braces:+  \item claire ; 
 +  \item précise ; 
 +\suspend{enumerate} 
 +Cela n'​était pas bien compliqué. 
 +\resume{enumerate} 
 +  \item et complète. 
 +\end{enumerate} 
 +\end{document} 
 +</​latexdoc
 + 
 +L'​extension permet de tenir compte d'un identifiant facultatif (sur le modèle ​''​\suspend[''//''​id''//''​]{enumerate}''​) pour vous permettre d'​identifier une suspension particulière,​ et donc de bien l'​isoler des autres pour gérer par exemple des suspensions imbriquées
 + 
 +Tout comme dans la méthode basique, si vous suspendez une [[3_composition:​texte:​listes:​modifier_le_style_des_listes_numerotees |liste avec un style de numérotation modifié]], vous devez fournir à nouveau les paramètres optionnels requis par l'​extension ​[[ctanpkg>​enumerate|enumerate]]. La tâche est ici un peu fastidieuse car l'argument ​optionnel doit être encapsuléen entierà l'​intérieur d'​un ​argument ​optionnel de ''​\resume'' ​et ceci nécessite l'​utilisation d'​accolades supplémentaires ​:
  
 <code latex> <code latex>
 +\documentclass{article}
 +\usepackage{mdwlist}
 +\usepackage{enumerate}
 +
 +\begin{document}
 +Cette liste est :
 \begin{enumerate}[\textbf{Item} i] \begin{enumerate}[\textbf{Item} i]
-  ​...+  ​\item claire ; 
 +  \item précise ;
 \suspend{enumerate} \suspend{enumerate}
-<​comment>​+Cela n'​était pas bien compliqué.
 \resume{enumerate}[{[\textbf{Item} i]}] \resume{enumerate}[{[\textbf{Item} i]}]
-...+  \item et complète.
 \end{enumerate} \end{enumerate}
 +\end{document}
 </​code>​ </​code>​
-The [[ctanpkg>​enumitem]] packagein its most recent + 
-release, will also allow you to resume lists:+<​latexdoc>​ 
 +\documentclass{article} 
 +\usepackage{mdwlist} 
 +\usepackage{enumerate} 
 +\pagestyle{empty} 
 +\begin{document} 
 +Cette liste est : 
 +\begin{enumerate}[\textbf{Item} i] 
 +  \item claire ; 
 +  \item précise ; 
 +\suspend{enumerate} 
 +Cela n'​était pas bien compliqué. 
 +\resume{enumerate}[{[\textbf{Item} i]}] 
 +  \item et complète. 
 +\end{enumerate} 
 +\end{document} 
 +</​latexdoc>​ 
 + 
 +===== Avec l'​extension expdlist ===== 
 + 
 +L'​extension ​[[ctanpkg>​expdlist|expdlist]] a une manière différente d'​aborder le problèmeavec sa commande ''​\listpart''​. L'​argument de la commande devient en effet un commentaire entre les éléments de la liste :
  
 <code latex> <code latex>
 +\documentclass{article}
 +\usepackage{expdlist}
 +
 +\begin{document}
 +Cette liste est :
 \begin{enumerate} \begin{enumerate}
-... +  \item claire ; 
-\end{enumerate} +  \item précise ; 
-<​comment>​ +  \listpart{Cela n'​était pas bien compliqué.
-\begin{enumerate}[resume] +  \item et complète.
-...+
 \end{enumerate} \end{enumerate}
 +\end{document}
 </​code>​ </​code>​
-which feels just as "​natural"​ as the [[ctanpkg>​mdwtools]] facility, 
-and has the advantage of playing well with the other excellent 
-facilities of [[ctanpkg>​enumitem]]. 
  
-[[ctanpkg>​expdlist|Expdlist]] has a neat way of providing for comments, with its +<​latexdoc> 
-''​\listpart'​' command.  ​The command's argument becomes ​comment +\documentclass{article} 
-between items of the list:+\usepackage{expdlist} 
 +\pagestyle{empty} 
 +\begin{document} 
 +Cette liste est : 
 +\begin{enumerate} 
 +  \item claire ; 
 +  \item précise ; 
 +  ​\listpart{Cela n'était pas bien compliqué.
 +  \item et complète. 
 +\end{enumerate} 
 +\end{document} 
 +</​latexdoc>​ 
 + 
 +Ceci signifie qu'il n'​a ​même pas à penser à suspendre ou à reprendre la liste, et bien sûr, cela fonctionne aussi bien dans n'​importe quel environnement de liste. 
 + 
 +===== Avec l'​extension enumitem ===== 
 + 
 +L'​extension [[ctanpkg>​enumitem|enumitem]],​ dans ses versions récentes, vous permettra également d'​interrompre et de reprendre des listes ​:
  
 <code latex> <code latex>
 +\documentclass{article}
 +\usepackage{enumitem}
 +
 +\begin{document}
 +Cette liste est :
 \begin{enumerate} \begin{enumerate}
-\item item 1 +  ​\item claire ; 
-\item item 2 +  \item précise ;
-  \listpart{interpolated comment} +
-\item item 3+
 \end{enumerate} \end{enumerate}
 +Cela n'​était pas bien compliqué.
 +\begin{enumerate}[resume]
 +  \item et complète.
 +\end{enumerate}
 +\end{document}
 </​code>​ </​code>​
-This, you will realise, means it doesn'​t even have to think about 
-suspending or resuming the list, and of course it works equally well 
-in any of the list environments (thought it's not actually 
-//​necessary//​ for any but ''​enumerate''​). 
  
-[[ctanpkg>​enumitem|Enumitem]] also allows multi-level suspension and resumption +<​latexdoc>​ 
-of lists:+\documentclass{article} 
 +\usepackage{enumitem} 
 +\pagestyle{empty} 
 +\begin{document} 
 +Cette liste est : 
 +\begin{enumerate} 
 +  \item claire ; 
 +  \item précise ; 
 +\end{enumerate} 
 +Cela n'​était pas bien compliqué. 
 +\begin{enumerate}[resume] 
 +  \item et complète. 
 +\end{enumerate} 
 +\end{document} 
 +</​latexdoc>​ 
 + 
 +Cette approche semble tout aussi naturelle que celle de [[ctanpkg>​mdwlist|mdwlist]] et a l'​avantage de bien s'​adapter aux autres fonctionnalités de l'​extension ​[[ctanpkg>​enumitem|enumitem]]. 
 + 
 +L'​extension [[ctanpkg>​enumitem|enumitem]] permet également la suspension à plusieurs niveaux et la reprise des listes ​:
  
 <code latex> <code latex>
 +\documentclass{article}
 +\usepackage{enumitem}
 +
 +\begin{document}
 +Cette liste est :
 \begin{enumerate} \begin{enumerate}
-\item outer item 1+\item claire ;
 \end{enumerate} \end{enumerate}
-<​comment>​+En tant qu'​exemple,​ elle se devait de l'​être.
 \begin{enumerate}[resume] \begin{enumerate}[resume]
-\item outer item 2 +\item précise ;
-% nested enumerate+
 \begin{enumerate} \begin{enumerate}
-\item inner item 1+\item par souci de formalisme, ​
 \end{enumerate} \end{enumerate}
-<nested comment>​ +Oui, oui, toujours parce qu'​elle est exemplaire.
-% resume nested enumerate+
 \begin{enumerate}[resume] \begin{enumerate}[resume]
-\item inner item 2+\item et par souci de concision ;
 \end{enumerate} \end{enumerate}
-\item outer item 3 +\item et complète
-% end outer enumerate+
 \end{enumerate} \end{enumerate}
 +\end{document}
 </​code>​ </​code>​
-However, the "​nested comment"​ interpolated in the nested enumeration 
-appears as if it were a second paragraph to "outer item 2", which is 
-hardly satisfactory. 
  
 +<​latexdoc>​
 +\documentclass{article}
 +\usepackage{enumitem}
 +\pagestyle{empty}
 +\begin{document}
 +Cette liste est :
 +\begin{enumerate}
 +\item claire ;
 +\end{enumerate}
 +En tant qu'​exemple,​ elle se devait de l'​être.
 +\begin{enumerate}[resume]
 +\item précise ;
 +\begin{enumerate}
 +\item par souci de formalisme, ​
 +\end{enumerate}
 +Oui, oui, toujours parce qu'​elle est exemplaire.
 +\begin{enumerate}[resume]
 +\item et par souci de concision ;
 +\end{enumerate}
 +\item et complète
 +\end{enumerate}
 +\end{document}
 +</​latexdoc>​
 +
 +Cependant, le commentaire présent dans l'​énumération imbriquée apparaît comme s'il s'​agissait d'un deuxième paragraphe au sein du deuxième élément de la liste principale, ce qui n'est guère satisfaisant.
  
 ----- -----
Ligne 136: Ligne 262:
  
 {{htmlmetatags>​metatag-keywords=(LaTeX,​listes et énumérations,​couper une liste,​interrompre une liste) {{htmlmetatags>​metatag-keywords=(LaTeX,​listes et énumérations,​couper une liste,​interrompre une liste)
-metatag-og:​title=(Interrupting enumerated lists)+metatag-og:​title=(Comment interrompre temporairement une liste numérotée)
 metatag-og:​site_name=(FAQ LaTeX francophone) metatag-og:​site_name=(FAQ LaTeX francophone)
 }} }}
  
3_composition/texte/listes/interrompre_une_liste_numerotee.1543909096.txt.gz · Dernière modification: 2018/12/04 08:38 par jejust
CC Attribution-Share Alike 4.0 International
Driven by DokuWiki Recent changes RSS feed Valid CSS Valid XHTML 1.0