Ecco, ci siamo di nuovo; bisogna leggere la documentazione; io suggerirei oltre all’Arte, anche il LaTeX Reference Manual Commentato e tradotto in italiano (sempre nella sezezione Guide tematiche dell Documentazione di questo sito); non è per farmi réclame, ci mancherebbe; È semplicemente una mia opinione che ogni utente di LaTeX dovrebbe poter metere le mani sulla documentazione che descriva TUTTI i comandi accessibili all’utente, almeno come li ha descritti il creatore di LaTeX Leslie Lamport (dal cui cognome nasce quel famoso La che trecede TeX). Alcuni di quei comandi descritti da Lamport si usano molto raramente oppure sono stati sostituiti di fatto dall’uso sistematico di certi pacchetti; tuttavia quel Manuale, secondo me, è fondamentale per ogni utente di LaTeX e spero che la mia traduzione e i miei commenti non lo snaturino rispetto all’originale in inglese che è e resta il riferimento primario per ogni utente.
Detto in parole povere: \newcommand, \renewcommand e \providecommand permettono di definire o ridefinire nuovi comandi: la sintassi è:
[tt]\newcommand[/tt]{comando}[ numero di argomenti ][ valore di default ]{definizione}
[tt]\renewcommand[/tt]{comando}[ numero di argomenti ][ valore di default ]{definizione}
[tt]\providecommand[/tt]{comando}[ numero di argomenti ][ valore di default ]{definizione}
Intanto \newcommand segnala un errore se si cerca di definire un comando che c’è già, mentre \renewcommand segnala un errore se si cerca di ridefinire un comando che non esiste ancora; infine \providecommand definisce un comando che non esiste ancora, ma non fa nulla se il comando esiste già.
Il numero di argomenti dice quanti sono gli argomenti su cui opera il comando
Il valore di default non è obbligatorio, ma se c’è dice che l’argomento numero 1 (quello che nella definzione è indicato con #1) è facoltativo e, se usato, va racchiuso fra parentesi quadre; se non usato riceve invece il valore di default.
La definizione invece è la sequenza di comandi che vengono eseguiti quando si usa il comando, e i vari argomenti su cui questo opera sono indicati con dei “segnaposto” #1, #2, eccetera fino ad un massimo di numero di argomenti che a sua volta non può essere maggiore di 9.
Nella tua prima definizione [tt]\newcommand*\puntini[1][c]{%[/tt] non si capisce affatto a cosa serva quel valore di default “c”; sei sicuro che volevi davvero scrivere una stringa di puntini pari alla larghezza della lettera “c”? Io ho il sospetto che tu non l’abbia mai proovato, perché avresti constatato che la stringa di puntini si ridurrebbe a niente o al massimo ad un solo puntino….!
Posso avere equivocato l’uso che ne vuoi fare, ma secondo me non ha senso un valore di default che abbia una larghezza cos`ʼpiccola, nessuna risposta da scrivere sui puntini sarebbe così corta; se anche il tuo studente dovesse scrivere una sola lettera come risposta, sarebbe meglio che la stringa di puntini ne contenesse almeno tre o quattro, altrimenti lo studente non si accorge nemmeno che lì c’è uno spazio per mettere la sua risposta.