Ciao robitex,
Vorrei ottenere questo comportamento:
dando l’opzione “localmente” al comando il parametro agisce solo per questa volta (il parametro tornerà a quello di default al termine dell’esecuzione del comando).
dando invece l’opzione “globalmente” con un comando apposito tipo \setup, ottengo che tutti i successivi oggetti saranno costruiti con il nuovo valore.
`
\buid{my data} % il parametro assume il valore di default
\build[param=value]{my data} % il nuovo valore agisce localmente
\build{my data} % ottengo quindi lo stesso oggetto di partenza
\setup{param=value}
\build{my data} % ora il valore di default è quello nuovo
`
Così al volo non ti so dare la soluzione, ma dovrebbe essere semplicissimo: ti consiglio di dare un’occhiata alla documentazione del pacchetto, che tutto sommato è ben fatta, anche se non semplice da leggere per un debuttante; da quanto hai scritto più in basso vedo che comunque tu te la cavi già piuttosto bene. A naso direi che basta un \newcommand{\build} e poi mettere come comando di xkeyval un \renewcommand quando la coppia chiave-valore dà vero.
In ogni caso tutto ciò è OT: al momento mi interessa definire tutte le problematiche e proporre delle soluzioni per ciò che concerne unicamente le opzioni di classe e di pacchetto.
Ciao!