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:o:option_clash_for_package [2019/07/18 11:07] jejust2_programmation:erreurs:o:option_clash_for_package [2022/10/10 14:01] (Version actuelle) – Usage de ⟨...⟩ dbitouze
Ligne 1: Ligne 1:
-====== Que veut dire l'erreur: ''Option clash for package <//nom//>'' ? ======+====== Que signifie l'erreur: « Option clash for package nom⟩ »? ======
  
-L'extension ''<//nom//>'' a été chargée deux fois avec des ensembles d'options qui entrent en conflit. En appuyant sur ''H'' en réponse à cette erreur, <latex>\LaTeX{}</latex> montre les options en conflit. Comme <latex>\LaTeX{}</latex> ne charge une extension qu'une seule fois((La seule exception concerne l'extension [[ctanpkg>fontenc]], qui peut être chargée autant de fois que nécessaire avec différentes options. Voir section 7.5.3 page 369 du //LaTeX Companion// FIXME.)), la meilleure solution est de spécifier toutes les options à la première occurrence. Si cela n'est pas possible (parce que l'extension est déjà chargée par la classe ou une autre extension), on peut spécifier les options requises en tant qu'options globales au niveau du ''\documentclass''. En cas d'urgence, on peut aussi charger une extension avant le ''\documentclass'' avec ''\RequirePackage''. Voir section 2.1.1 du //LaTeX Companion// FIXME pour plus de détails.+  * **Message**: ''Option clash for package ⟨//nom//'' 
 +  * **Origine**: //LaTeX//.
  
 +L'extension ''⟨//nom//⟩'' a été chargée deux fois avec des ensembles d'options qui entrent en conflit.
  
------ +===== Les cas non problématiques =====
-//Source:// https://latex.developpez.com/faq/erreurs?page=O+
  
 +Plusieurs cas ne génèrent aucune erreur. Le simple est le suivant :
  
-{{htmlmetatags>metatag-keywords=(messages d'erreur de LaTeX,options incompatibles,charger des extensions,charger des packages) +<code latex> 
-metatag-og:title=(Que veut dire l'erreur: Option clash for package <nom> ?)+\usepackage[a]{truc} 
 +... 
 +\usepackage{truc} 
 +</code> 
 + 
 +De la même manière, il ne dira rien pour le cas suivant (le second chargement ne faisant rien) : 
 + 
 +<code latex> 
 +\usepackage[a]{truc} 
 +... 
 +\usepackage[a]{truc} 
 +</code> 
 + 
 +Voici enfin le dernier cas où <latex>\LaTeX</latex> ne réagit pas : 
 + 
 +<code latex> 
 +\usepackage[a,b]{truc} 
 +... 
 +\usepackage[a]{truc} 
 +</code> 
 + 
 +De fait, la règle générale est la suivante : le premier chargement d'une extension définit un ensemble d'options ; si un autre ''\usepackage'' ou ''\RequirePackage'' appelle également l'extension, les options de cet appel peuvent ne pas étendre l'ensemble déclaré lors du premier chargement. 
 + 
 +Il existe ici un cas particulier : l'extension [[ctanpkg>fontenc]] peut être chargée autant de fois que nécessaire avec différentes options. Voir section 7.5.3 page 369 du //LaTeX Companion//). FIXME 
 + 
 +===== Les cas problématiques ===== 
 + 
 +==== Le cas simple ==== 
 + 
 +Le cas suivant génère le message d'erreur, même dans le cas où les options ''a'' et ''b'' sont des alias (<latex>\LaTeX</latex> ne poussant pas la vérification au-delà du simple nom) : 
 + 
 +<code latex> 
 +\usepackage[a]{truc} 
 +... 
 +\usepackage[b]{truc} 
 +</code> 
 + 
 +Heureusement, l'erreur (dans ce genre de cas) est facilement réparable une fois que vous avez examiné le préambule de votre document. 
 + 
 +==== Le cas de l'extension qui appelle une autre extension ==== 
 + 
 +Ce cas  donne du fil à retordre. Supposons que l'extension ''truc'' charge l'extension ''machin'' avec l'option ''b'' et que votre document indique (dans cet ordre ou l'ordre inverse) : 
 + 
 +<code latex> 
 +\usepackage{truc} 
 +... 
 +\usepackage[a]{machin} 
 +</code> 
 + 
 +Alors, l'erreur sera détectée, même si vous n'avez chargé explicitement ''machin'' qu'une seule fois. En appuyant sur ''H'' lorsque <latex>\LaTeX</latex> croise le problème lors de la compilation, les options en conflit sont affichées. Si cela ne marche pas, il faudra procéder à une analyse des fichiers journaux comme décrit dans la question « [[2_programmation:erreurs:interpreter_les_messages_d_erreur2|Comment traiter les erreurs ?]] ». Il faut ici savoir que le processus de chargement de chaque fichier est mis entre parenthèses dans le journal. Aussi, si l'extension ''truc'' charge [[ctanpkg>graphics]], le journal contiendra quelque chose comme : 
 + 
 +<code bash> 
 +(⟨path⟩/truc.sty ... 
 +... 
 +(⟨path⟩/graphics.sty ... 
 +...) 
 +... 
 +
 +</code> 
 + 
 +Si nous avons affaire à une extension ''truc'' qui charge l'extension ''machin'' sans les options qui vous intéresse, vous devez demander à <latex>\LaTeX</latex> de glisser des options lorsque ''truc'' le charge : 
 + 
 +<code latex> 
 +\PassOptionsToPackage{⟨option1⟩,⟨option2⟩}{machin} 
 +\usepackage{truc} 
 +</code> 
 + 
 +La commande ''\PassOptionsToPackage'' dit à <latex>\LaTeX</latex> de se comporter comme si la liste des options données étaient passées quand il charge enfin l'extension. 
 + 
 +==== Le cas de la classe qui appelle une autre extension ==== 
 + 
 +Dans ce cas, on peut tenter une des solutions suivantes : 
 +  * spécifier les options requises en tant qu'options globales au niveau de ''\documentclass''
 +  * charger une extension avant ''\documentclass'' avec la commande ''\RequirePackage''. Voir section 2.1.1 du //LaTeX Companion// FIXME pour plus de détails ; 
 +  * placer une commande ''\PassOptionsToPackage'' avant ''\documentclass''
 + 
 +==== Le cas des options incomptibles ==== 
 + 
 +Si l'extension ''truc'' ou la classe ''machin'' charge une extension avec une option qui entre en conflit avec ce dont vous avez besoin, vous êtes bloqué. Un exemple d'options opposées est celui de ''draft'' et ''final'' pour l'extension [[ctanpkg>graphics]]. Dans un tel cas, vous devez modifier l'extension ou la classe (sous réserve des termes de sa licence). Il peut s'avérer utile de contacter l'auteur : il peut avoir une alternative utile à suggérer. 
 + 
 +----- 
 +//Sources :// 
 +  * [[https://latex.developpez.com/faq/erreurs?page=O]], 
 +  * [[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-optionclash|Option clash for package]]. 
 + 
 +{{htmlmetatags>metatag-keywords=(LaTeX,TeX,messages d'erreur de LaTeX,options incompatibles,charger des extensions,charger des packages) 
 +metatag-og:title=(Que signifie l'erreur: « Option clash for package nom⟩ »)
 metatag-og:site_name=(FAQ LaTeX francophone) metatag-og:site_name=(FAQ LaTeX francophone)
 }} }}
- 
2_programmation/erreurs/o/option_clash_for_package.1563448039.txt.gz · Dernière modification : 2019/07/18 11:07 de jejust
CC Attribution-Share Alike 4.0 International
Driven by DokuWiki Recent changes RSS feed Valid CSS Valid XHTML 1.0