allora, vediamo se riesco a fare il giochino di indovinare il significato dei comandi…
Ok, ma niente premio 
`
\@ifundefined{KV@#1@\CurrentOption}%
`
qui tiro un po’ a indovinare:
Taglio un po’ per non annoiare gli altri utenti: hai sostanzialmente afferrato il significato di \@ifundefined e la modalità di “reperimento” delle macro che keyval associa ad ogni opzione.
`
{}{\edef\@tempa{\@tempa,\CurrentOption,}}}%
`
qui mi perdo, se \@tempa è vuoto definiamo \@tempa come “,opzione corrente,”.
se al ciclo precedente eravamo passati dentro l’if allora lo definiamo come
“,opzione precendente,opzione corrente,” ??? se invece non siamo passati nell’if \@tempa contiene la definizione specificata sotto, che è la cosa che capisco meno…
No. Per ogni opzione valida per keyval si aggiunge quell’opzione alla lista che stiamo costruendo in \@tempa; per ogni opzione non valida, cioè quelle che danno luogo ad alcuna macro \KV@fam@key, non si esegue alcuna operazione (la coppia di parentesi graffe vuota) e si passa ad esaminare l’elemento seguente di \@classoptionslist.
`
\edef\@tempa{%
\noexpand\setkeys{#1}{\@tempa\@ptionlist{\@currname.\@currext}}}%
\@tempa
`
adesso si definisce \@tempa come:
\noexpand???
e si utilizza la macro \setkeys, dando appunto come primo argomento il nome della famiglia e come argomento \@tempa e \@optionlist (ho aggiunto una o di option, ho fatto male?) e poi mi perdo.
Per \edef e \noexpand dai un’occhiata al TeXbook (il capitolo sulle macro, se non ricordo male). Dopo l’esecuzione di quell’\edef in \@tempa avrai:`\setkey{