Sto cercando di capire esattamente cosa fa il codice da te proposto, ma non capisco una cosa: perché devo usare \string sul command sequence prescelto?
`\string\pippo`
non produce l’espansione di \pippo che mi deve contenere il testo del messaggio d’errore all’inizio?
Quanto al numero degli argomenti del comando, ti dico che la situazione varia: il comando ha una doppia sintassi; può essere seguito da un solo argomento oppure da un argomento delimitato:
`% primo caso
\fill{until=5,from=8}
$ secondo caso
\fill.until=5;
\fill.from=8;`
Comunque, mi è venuto in mente che posso anche cambiare strategia favorendo l’utente: invece di negargli il settaggio delle proprietà, si potrebbe metterle in stato di “attesa” se queste vengono date prima di \begin{document}, ed eseguite effettivamente solo a quel momento.
Saluti e Grazie mille.