Différences

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

Lien vers cette vue comparative

Prochaine révision
Révision précédente
generalites:erreurs:s:something_is_wrong--perhaps_a_missing_item [2017/10/15 20:54] – créée nikopol1_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 »? ======
  
-<a name="Something-s-wrong-perhaps-a-missing-item" href="#Something-s-wrong-perhaps-a-missing-item" title="Something's wrong--perhaps a missing \item" class="AQuestionFAQ">Something's wrong--perhaps a missing \item</a>+  * **Message**: ''Something's wrong--perhaps a missing \item'
 +  * **Origine**: //LaTeX//.
  
-<div class="DivQuestionContenuFAQ"><p>Ce message d'erreur est produit par une commande <span style="font-family: monospace; padding: 2px; background: #eee">\addvspace</span> rencontrée en mode horizontal. La supposition « <span style="font-family: monospace; padding: 2px; background: #eee">perhaps a missing \item</span> » est rarement la bonne. Par exemple, en oubliant de refermer une accolade d'un <span style="font-family: monospace; padding: 2px; background: #eee">\mbox</span>, comme dans <span style="font-family: monospace; padding: 2px; background: #eee">\mbox{...\section{..}...</span>, on va obtenir cette erreur puisque la commande <span style="font-family: monospace; padding: 2px; background: #eee">\section</span> qui exécute <span style="font-family: monospace; padding: 2px; background: #eee">\addvspace</span> en interne est maintenant utilisée en mode horizontal. Il convient d'identifier la commande qui appelle le <span style="font-family: monospace; padding: 2px; background: #eee">\addvspace</span> provoquant l'erreur, et de comprendre pourquoi elle est mal utilisée. On trouvera une présentation détaillée de la commande <span style="font-family: monospace; padding: 2px; background: #eee">\addvspace</span> à la page 873.</p></div>+===== Cas où il manque réellement une commande \item ====
 +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> 
-//Source:// https://latex.developpez.com/faq/erreurs?page=S+\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)
 +metatag-og:title=(Que signifie l'erreur: Something's wrong--perhaps a missing \item)
 +metatag-og:site_name=(FAQ LaTeX francophone)
 +}}
2_programmation/erreurs/s/something_is_wrong--perhaps_a_missing_item.1508100880.txt.gz · Dernière modification : 2017/10/15 20:54 de nikopol
CC Attribution-Share Alike 4.0 International
Driven by DokuWiki Recent changes RSS feed Valid CSS Valid XHTML 1.0