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
generalites:erreurs:n:not_in_outer_par_mode [2020/10/24 23:46] – Changement de titre. jejust2_programmation:erreurs:n:not_in_outer_par_mode [2021/04/10 17:08] (Version actuelle) – Fusion avec "2_programmation/erreurs/not_in_outer_par_mode". jejust
Ligne 1: Ligne 1:
-====== Que signifie l'erreur: « Not in outer par mode » ? ======+====== Que signifie l'erreur: « Not in outer par mode »? ======
  
   * **Message**: ''Not in outer par mode''   * **Message**: ''Not in outer par mode''
   * **Origine**: //LaTeX//.   * **Origine**: //LaTeX//.
  
-On obtient cette erreur lorsqu'un environnement ''\marginpar'' ou un environnement flottant,+On obtient cette erreur lorsqu'un environnement ''\marginpar'' ou un environnement de flottant,
 tel que ''table'' ou ''figure'', se trouve à l'intérieur d'une commande ou d'un environnement tel que ''table'' ou ''figure'', se trouve à l'intérieur d'une commande ou d'un environnement
 produisant une boîte. Par exemple, on ne peut pas utiliser un ''\marginpar'' dans une note de bas de page, produisant une boîte. Par exemple, on ne peut pas utiliser un ''\marginpar'' dans une note de bas de page,
 un flottant, un ''tabular'', ou tout autre emplacement analogue (puisqu'ils produisent tous des boîtes). un flottant, un ''tabular'', ou tout autre emplacement analogue (puisqu'ils produisent tous des boîtes).
 On doit déplacer l'objet fautif dans le texte principal. On doit déplacer l'objet fautif dans le texte principal.
 +
 +===== Plus précisément =====
 +
 +Vous avez le message d'erreur:
 +<code>
 +*\mbox{\marginpar{foo}}
 +
 +! LaTeX Error: Not in outer par mode.
 +</code>
 +Ce problème survient lorsque vous essayez mettre un élément mobile à l'intérieur
 +d'une boîte. Les éléments mobiles, dans ce contexte, sont les environnements de flottants
 +(''figure'' ou ''table'', par exemple) et les commandes ''\marginpar'' (notes marginales).
 +LaTeX ne dispose tout simplement pas des mécanismes permettant à un flottant de flotter hors d'une boîte.
 +En fait, les environnements de flottants et les ''\marginpar'' sont eux-mêmes définis à partir de boîtes,
 +de sorte qu'ils ne peuvent pas être imbriqués.
 +
 +Si votre erreur provient de ''\marginpar'', cherchez simplement un autre moyen
 +de placer la commande; il n'y a pas de solution générale, mais on arrive
 +à se débrouiller au cas par cas.
 +
 +Si un environnement de flottant est le coupable, il est sans doute possible
 +d'utiliser l'option de placement ''H'', fournie (par exemple) par le paquetage [[ctanpkg>float]]:
 +<code latex>
 +\parbox{14cm}{%
 +  \begin{figure}[H]
 +  ...
 +  \caption{Apparemment flottant...}
 +  \end{figure}%
 +}
 +</code>
 +
 +Cet exemple n'a pas beaucoup de sens en l'état ; cependant,
 +il est concevable de trouver des utilisations réelles (par exemple,
 +en utilisant un paquetage tel que [[ctanpkg>algorithm2e]] pour placer
 +deux algorithmes côte à côte).
 +
 +Un autre cas fréquent est celui où l'utilisateur veut insérer une figure quelque part
 +dans un tableau: 
 +<code latex>
 +\begin{tabular}{|l|}
 +  \hline
 +  \begin{figure}
 +  \includegraphics{mon_image}
 +  \end{figure}
 +  \hline
 +\end{tabular}
 +</code>
 +une construction qui était censée dessiner un cadre autour de l'image,
 +mais qui ne fonctionne pas. Pas plus que ça, d'ailleurs:
 +<code latex>
 +\framebox{\begin{figure}
 +  \includegraphics{foo}
 +  \end{figure}%
 +}
 +</code>
 +
 +Le problème est que l'environnement ''tabular'' et la commande ''\framebox'' empêchent
 +l'environnement ''figure'' de jouer son rôle normal, qui est de flotter dans le document.
 +
 +La solution consiste simplement à ne pas utiliser l'environnement ''figure'' ici : 
 +<code latex>
 +\begin{tabular}{|l|}
 +  \hline
 +  \includegraphics{mon_image}
 +  \hline
 +\end{tabular}
 +</code>
 +
 +À quoi servait l'environnemnt de flottant? Tel qu'il était utilisé
 +dans les deux premiers exemples, il ne servait à rien.
 +Mais peut-être vouliez-vous en fait encadrer l'image et sa légende, dans un flottant?
 +
 +Il est facile d'y parvenir, il suffit d'inverser l'ordre des environnements
 +(ou de l'environnement ''figure'' et de la commande) : 
 +<code latex>
 +\begin{figure}
 +  \begin{tabular}{|l|}
 +    \hline
 +    \includegraphics{mon_image}
 +    \caption{Une image}
 +    \hline
 +  \end{tabular}
 +\end{figure}
 +</code>
 +
 +Il en va de même pour les environnements ''table'' (ou tout autre environnement que vous auriez défini vous-même)
 +à l'intérieur des commandes de tableaux ou de boîtes; vous devez //faire sortir l'environnement de flottant// de ces commades,
 +d'une façon ou d'une autre.
 +
  
 ----- -----
 //Sources:// //Sources://
   * [[https://latex.developpez.com/faq/erreurs?page=N]],   * [[https://latex.developpez.com/faq/erreurs?page=N]],
-  * [[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.+  * [[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-parmoderr|Not in outer par mode]], 
 +  * [[https://tex.stackexchange.com/questions/124346/latex-error-not-in-outer-par-mode|LaTeX Error: Not in outer par mode]].
  
 {{htmlmetatags>metatag-keywords=(messages d'erreur de LaTeX,note marginale,flottant dans une note) {{htmlmetatags>metatag-keywords=(messages d'erreur de LaTeX,note marginale,flottant dans une note)
2_programmation/erreurs/n/not_in_outer_par_mode.1603583163.txt.gz · Dernière modification : 2020/10/24 23:46 de jejust
CC Attribution-Share Alike 4.0 International
Driven by DokuWiki Recent changes RSS feed Valid CSS Valid XHTML 1.0