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édentesRévision précédente
Prochaine révision
Révision précédente
generalites:erreurs:s:something_is_wrong--perhaps_a_missing_item [2019/07/13 09:03] jejust1_generalites:erreurs:s:something_is_wrong--perhaps_a_missing_item [2021/03/27 10:57] (Version actuelle) – Fusion de la page française et de la page anglaise. yannick.tanguy
Ligne 1: Ligne 1:
-====== Que veut dire l'erreur: ''Something's wrong--perhaps a missing \item'' ? ======+====== Que signifie l'erreur: « Something's wrong--perhaps a missing \item »? ======
  
-Ce message d'erreur est produit par une commande ''\addvspace'' rencontrée en mode horizontal. La supposition « ''perhaps a missing \item'' » est rarement la bonne. Par exemple, en oubliant de refermer une accolade d'un ''\mbox'', comme dans ''\mbox{...\section{..}...'', on va obtenir cette erreur puisque la commande ''\section'' qui exécute \addvspace en interne est maintenant utilisée en mode horizontal. Il convient d'identifier la commande qui appelle le ''\addvspace'' provoquant l'erreur, et de comprendre pourquoi elle est mal utilisée. On trouvera une présentation détaillée de la commande ''\addvspace'' à la page 873 du //LaTeX Companion// FIXME.+  * **Message**: ''Something's wrong--perhaps a missing \item'' 
 +  * **Origine**: //LaTeX//.
  
------ +===== Cas où il manque réellement une commande \item ===== 
-//Source:// https://latex.developpez.com/faq/erreurs?page=S+Parfois le message d'erreur indique bien l'erreur en cours il manque une commande ''\item''L'exemple suivant va évidemment générer cette erreur :
  
 +<code latex>
 +\begin{itemize}
 +Et hop !
 +\end{itemize}
 +</code>
 +
 +Vous pouvez également faire apparaître l'erreur alors tout semble correct à première vue : 
 +
 +<code latex>
 +\begin{tabular}{l}
 +  \begin{enumerate}
 +  \item et toc !\\
 +  \item et paf !
 +  \end{enumerate}
 +\end{tabular}
 +</code>
 +
 +L'erreur tombe au moment où la commande ''\\'' tente d'agir. Si vous souhaitez numéroter des cellules dans une table, il ne faut surtout pas agir ainsi. Vous devez le faire un peu plus manuellement :
 +
 +<code latex>
 +\newcounter{tablecell}
 +...
 +\begin{tabular}{l}
 +  \stepcounter{tablecell}
 +  \thetablecell. et toc !\\
 +  \stepcounter{tablecell}
 +  \thetablecell. et paf !
 +\end{tabular}
 +</code>
 +
 +Il y a ici moyen de mieux présenter ce code. Définissons ici une commande ''\numbercell'' :
 +
 +<code latex>
 +\newcounter{tablecell}
 +...
 +\newcommand*{\numbercell}{%
 +  \stepcounter{tablecell}%
 +  \thetablecell. % **
 +}
 +</code>
 +
 +ce qui donnera le code principal suivant :
 +
 +<code latex>
 +\setcounter{tablecell}{0}
 +\begin{tabular}{l}
 +  \numbercell foo\\
 +  \numbercell bar
 +\end{tabular}
 +</code>
 +
 +Notez l'introduction délibérée d'un espace dans le cadre de la commande, marqué par des astérisques.
 +
 +===== Cas où la commande \item n'est pas liée à l'erreur =====
 +
 +L'erreur apparaît également régulièrement lorsque vous n'auriez jamais pensé qu'une commande ''\item'' puisse être appropriée. 
 +
 +Le message d'erreur est produit par une commande ''\addvspace'' (qui ajoute un espace vertical) rencontrée en mode horizontal. Par exemple, en oubliant de refermer une accolade d'un ''\mbox'' :
 +
 +<code latex>
 +\mbox{Et voilà une \section{belle section} qui va tomber en erreur   
 +</code>
 +
 +Ici, la commande ''\section'' qui exécute ''\addvspace'' en interne est maintenant utilisée en mode horizontal. Il convient d'identifier la commande qui appelle le ''\addvspace'' provoquant l'erreur, et de comprendre pourquoi elle est mal utilisée.
 +
 +En voici un exemple :
 +
 +<code latex>
 +\fbox{%
 +  \begin{alltt}
 +    Et toc !
 +  \end{alltt}%
 +}
 +</code>
 +
 +L'erreur se produit aussi en remplaçant ''\fbox'' par ''\mbox'', ''\framebox'' ou ''\makebox''. En effet, l'environnement ''alltt'' utilise une liste « triviale », cachée dans sa définition (d'ailleurs, l'environnement ''itemize'' a également cette construction à l'intérieur de lui-même et ''\begin{itemize}'' ne fonctionnera pas non plus dans ''\fbox''). La construction de liste cherche à se faire entre les paragraphes et crée un nouveau paragraphe de son propre chef. Dans la commande ''\fbox'', cela ne fonctionne pas et les commandes suivantes supposent qu'il manque une commande ''\item''.
 +
 +Pour résoudre cette erreur plutôt cryptique, il faut mettre le ''alltt'' dans une boîte autorisant des paragraphes :
 +
 +<code latex>
 +\fbox{%
 +  \begin{minipage}{0.75\textwidth}
 +    \begin{alltt}
 +      Et toc !
 +    \end{alltt}
 +  \end{minipage}
 +}
 +</code>
 +
 +Le code ci-dessus produit une boîte beaucoup trop large pour le texte. On peut vouloir utiliser quelque chose qui autorise des [[3_composition:texte:paragraphes:ajuster_la_taille_d_une_minipage|boîtes de taille variable]] à la place de l'environnement ''minipage''.
 +
 +Curieusement, bien que l'environnement ''verbatim'' ne fonctionne pas dans un argument de commande ''\fbox'' (voir [[3_composition:texte:paragraphes:pourquoi_verbatim_ne_fonctionne_pas_toujours|verbatim dans les arguments de commande]]), vous obtenez une erreur qui se plaint de la commande ''\item'': la liste interne de l'environnement remonte l'anomalie avant même que '' verbatim '' n'ait eu la chance d'agir.
 +
 +Une autre utilisation (apparemment) évidente de ''\fbox'' génère aussi cette erreur : 
 +
 +<code latex>
 +\fbox{\section{Un titre encadré}}
 +</code>
 +
 +C'est un cas où vous devez simplement être plus subtil : vous devriez soit écrire vos propres commandes pour remplacer les commandes de sectionnement de <latex>\LaTeX</latex>, soit chercher une alternative dans les extensions évoquées dans la question « [[3_composition:texte:titres:modifier_le_style_des_titres|Comment modifier le style des titres de sectionnement ?]] ». 
 +
 +-----
 +//Sources://
 +  * [[https://latex.developpez.com/faq/erreurs?page=S]],
 +  * [[https://www.latex-project.org/help/books/#french|LaTeX Companion, 2e édition]], Frank Mittelbach, Michel Goossens, Johannes Braams, David Carlisle, Chris Rowley (Pearson, 2006) ; ISBN: 978-2-7440-7182-9. Annexe B, //Détecter et résoudre les problèmes//, reproduite avec l'aimable autorisation de l'éditeur,
 +  * [[faquk>FAQ-errmissitem|Perhaps a missing `\item`?]].
  
 {{htmlmetatags>metatag-keywords=(messages d'erreur de LaTeX,itemize,enumerate,listes) {{htmlmetatags>metatag-keywords=(messages d'erreur de LaTeX,itemize,enumerate,listes)
-metatag-og:title=(Que veut dire l'erreur: Something's wrong--perhaps a missing \item ?)+metatag-og:title=(Que signifie l'erreur: Something's wrong--perhaps a missing \item)
 metatag-og:site_name=(FAQ LaTeX francophone) metatag-og:site_name=(FAQ LaTeX francophone)
 }} }}
- 
2_programmation/erreurs/s/something_is_wrong--perhaps_a_missing_item.1563008630.txt.gz · Dernière modification : 2019/07/13 09:03 de jejust
CC Attribution-Share Alike 4.0 International
Driven by DokuWiki Recent changes RSS feed Valid CSS Valid XHTML 1.0