Ho riscontrato un problemino nella soluzione di Enrico data qui sopra,
nel caso in cui l’opzione da cancellare dalla \XKV@classoptionslist sia l’ultima (o l’unica) passata alla classe:
Questo esempio produce infatti un errore:
`\documentclass[style=FSPLa]{suftesi}
\usepackage{mdframed}
\begin{document}
\chapter{Titolo}
\begin{mdframed}
ciao
\end{mdframed}
\end{document}`
Aggiungendo una virgola dopo l’opzione:
`\documentclass[style=FSPLa,]{suftesi}
`
funziona correttamente, ma è poco elegante.
In pratica lo si illude che ci sia un’altra opzione e poi non la si dichiara.
Ho provato a modificare il codice sopra:
`\regex_replace_all:nnN { style \s* = [^,]*? , } { , } \XKV@classoptionslist`
nel seguente, togliendo la seconda occorrenza della virgola:
`\regex_replace_all:nnN { style \s* = [^,]*? } { , } \XKV@classoptionslist`
e in questo modo l’esempio minimale in alto non produce errori.
Da quello che ho capito, il primo codice sostituisce la stringa “style=
Quindi se c’è una sola opzione non trova la stringa, in quanto manca la virgola finale.
E questo spiega anche il fatto che aggiungendo la virgola non si hanno errori.
La mia perplessità è questa? La virgola che ho eliminato serve a qualcosa che ignoro?
Ciao
Ivan