Re: suftesi, mdframed e opzione “style”

#83473
Up
0
Down
::

egreg9″ post=83264

Purtroppo ho riscontrato un’altra incompatibilità, dovuta al fatto che
altri pacchetti definiscono le stesse opzioni di suftesi, magari con valori diversi,
usando xkeyval. Anche il pacchetto bookmark, per esempio, definisce l’opzione style=,
pertanto se si usa
`\documentclass[style=FSPLa]{suftesi}`
si ha un errore analogo, visto che bookmark non riconosce quel valore dell’opzione style.
Mi sorge quindi una questione.
Per quale motivo le opzioni di classe dovrebbero essere ereditate dai pacchetti?
Questo mi pare comporti soltanto dei problemi. Ma forse c’è un’utilità che non vedo.
C’è un modo per evitare tutto questo?

Chiaramente la possibilità che altri pacchetti definiscano le stesse opzioni di suftesi non è
altissima, ma rimane non trascurabile. Forse il nome “style” è infelice, perché troppo comune.

A questo punto, però, serve una soluzione generale.
Per evitare che ci siano incompatibilità con altri pacchetti,
tutte le opzioni definite dalla classe attraverso xkeyval
vanno eliminate da \XKV@classoptionslist.
L’ultima soluzione di Enrico è cristallina: una riga magica per opzione, e il gioco è fatto.
Mi viene il sospetto che sia però troppo semplice.
C’è qualche rischio che non riesco a vedere?
In caso contrario, mi appresto ad aggiungere le poche righe necessarie per
correggere questo bug nella prossima versione.

Non so se esista qualche trucco oberdiekiano per risolvere il problema in modo generale, provo a darci un’occhiata. La decisione di rendere globali, cioè passate a ogni pacchetto, le opzioni date alla classe è stata presa molto tempo fa, quando è stato scritto il nucleo di LaTeX2e e non ci si può fare più di tanto.

Purtroppo, come dici, [tt]style[/tt] è forse un po’ generico e magari [tt]sufstyle[/tt] sarebbe stato meglio.

In realtà il pacchetto xkeyval offre un modo per evitare il problema: pagina 19. Ma richiede che gli autori di pacchetti e pacchetti siano disciplinati e usino [tt][pkg]][/tt] [tt][cls][/tt] rispettivamente.

Ciao
Enrico

Avevo già provato ad usare il prefisso […] e la famiglia {…} nella definizione delle chiavi di suftesi, ma non funzionava.
Ora ho provato ad aggiungere il prefisso nella definizione della chiave in mdframed.sty e in effetti l’errore non si ha più.
Rivedrò anch’io tutte le chiavi, aggiungendo un prefisso opportuno. Non l’ho fatto a suo tempo
perché non immaginavo niente di simile.
Però è strano che aggiungendo i prefissi in suftesi non cambi nulla,
anche perché ogni chiave è del tipo \prefix@family@key e se family non è dichiarato
viene preso il nome del file di classe. Quindi, immaginavo che ogni chiave fosse unica,
essendo unico il file di classe. Ma evidentemente non è così.
Intanto aggiungo i tuoi codici magici, così sono tranquillo.

Per quanto riguarda il nome hai ragione: “sufstyle” è molto meglio.

Grazie!

Ciao
Ivan

Go to top