- Questo topic ha 7 risposte, 4 partecipanti ed è stato aggiornato l'ultima volta 2 anni, 10 mesi fa da
Luciano Ribichini.
-
CreatoreTopic
-
26 Ottobre 2023 alle 15:10 #121814::
Ciao a tutti,1) il seguente mwe mi da’ errore (vedi titolo del topic).
2) Da quello che ho capito, si tratta della opzione x11names.Domande:
a) Da dove viene l’errore?
b) Come evitarlo?Saluti
Luciano`
\documentclass{beamer}
\usepackage[x11names]{xcolor}
\usepackage{efbox}
\begin{document}
hello
\end{document}
`
-
CreatoreTopic
-
AutoreRisposte
-
-
26 Ottobre 2023 alle 17:00 #121815::
Se carichi l’opzione [tt]x11names[/tt] tramite il comando [tt]\PassOptionsToPackage[/tt] l’esecuzione va a buon fine `
\PassOptionsToPackage{x11names}{xcolor}
\documentclass{beamer}
\usepackage{xcolor} % superfluo, perché già caricato dalla classe\begin{document}
hello
\end{document}`Matteo
-
26 Ottobre 2023 alle 17:22 #121816
-
27 Ottobre 2023 alle 7:26 #121817::
Il comando fa parte del nucleo di LaTeX e viene utilizzato nella creazione di pacchetti e classi per caricare le opzioni di altri pacchetti.Ma perché sei incappato in quell’errore? Cercherò di spiegarlo in base alla mia esperienza pratica, senza addentrarmi in aspetti teorici che ignoro…
In via di principio è possibile caricare lo stesso pacchetto più volte, ma le opzioni devono essere esplicitate alla prima occorrenza. Dunque, nel preambolo, è possibile inserire `
\usepackage[x11names]{xcolor}
\usepackage{xcolor}` ma non `
\usepackage{xcolor}
\usepackage[x11names]{xcolor}` altrimenti si incappa nell’errore `! LaTeX Error: Option clash for package xcolor`
Poiché la classe [tt]beamer[/tt] carica internamente il pacchetto [tt]xcolor[/tt], ricaricare una seconda volta lo stesso pacchetto assieme all’opzione (dunque in modalità Load-time Option) genera il medesimo errore. Per ovviare a ciò é possibile utilizzare il comando [tt]\PassOptionsToPackage[/tt] in modo da “indicare” le opzioni prima del caricamento del pacchetto. `
\PassOptionsToPackage{x11names}{xcolor}
\documentclass{beamer}\begin{document}
\textcolor{Gold4}{hello}
\end{document}
`
Infine, poiché [tt]x11names[/tt] è un’opzione specifica di [tt]xcolor[/tt] (cioè non è definita in altri pacchetti) è anche possibile “passare” l’opzione a livello globale (cioè a livello di classe) senza conseguenze particolari. In questo caso il preambolo si ridurrebbe a`\documentclass[x11names]{beamer}`Scritto così, però, sembrerebbe che [tt]x11names[/tt] sia un’opzione propria della classe e non di un pacchetto caricato internamente alla classe. Per questo motivo, potrebbe essere preferibile utilizzare il comando [tt]\PassOptionsToPackage[/tt]: da un punto di vista pratico non cambia nulla, ma forse migliora la leggibilità del codice (imho).Matteo
-
27 Ottobre 2023 alle 11:26 #121818::
Matteo la tua spegazione e perfetta; aggiungeri questa cos: il codice`\DeclareOptionBeamer{xcolor}{\PassOptionsToPackage{#1}{xcolor}}` si trova dentro al classe beamer, piò o meno verso la riga 266; la si trova aprendo beamer.cls con lo stesso editor con il quale si compongono i file sorgente dei nostri documenti Come vedi le opziooni che vengono capite da \xcolor, vengono tramessse direttamente dalla classe al pacchetto.Questo succede con tutte le classi, nel senso che i file di casse non controllano se l’opzione è per lei stessa, o è par altri, vuol dire che si tratta di on’opzione non e accettata da nessuno, vie emesso un worning nel file .log dove si dice che la tal opzione non è stata usata.
Mettere PassOptionToPackage prima della riga che seglie la classe è consentito, ma non mi sembra intuitivo, visto che dappertutto si scre=ive che prima di \documentclass non ci deve essere niente. Anche il pacchetto filecontents “anticamente” andava messo prima di i \documentclass, ma da alcuni anni va messo dopo ed ha diverse utili opzioni che non erano diponibili col vecchio filecontents.
Luciano, apri la documentazione di beamer a nella pagina 18 descrive come passare opzioni a xcolor.
-
28 Ottobre 2023 alle 2:07 #121819::
Ciao a tutti,1) grazie Claudio.
2) La soluzione con \PassOptionsToPackage funziona bene, grazie.
3) Per me il topic e’ chiuso.
4) Io imparo molto e scrivo molto sui miei quaderni.
5) Quando mi dicono che TeX e’
molto difficile mi trovo in difficolta’ su cosa rispondere !
6) Secondo me, a naso, per ogni utente che arriva su questo forum
con il suo carico di dolore, ne perdiamo una ventina per strada che usano,
per scrivere al computer, soluzioni alternative (orrore!)Saluti
Luciano
-
30 Ottobre 2023 alle 15:50 #121820::
Pagina 18 del manuale di beamer, che fa parte della descrizione dei pacchetti caricati automaticamente da beamer.Se si deve passare un’opzione non prevista dalla classe a uno di questi pacchetti, c’è l’apposito meccanismo:
`
\documentclass[xcolor=x11names]{beamer}\begin{document}
\begin{frame}
\textcolor{Burlywood1}{hello} % mostriamo che il colore definito in x11nam.def è compreso
\end{frame}
\end{document}
`
-
30 Ottobre 2023 alle 19:17 #121821
-
-
AutoreRisposte
- Devi essere connesso per rispondere a questo topic.