En mode mathématique (entre deux dollars) `TeX` absorbe les espaces.
Ici `\test{18}{20}` est (en quelque sorte) équivalente à `18, $19, $20, $21, $22, $23, $24, $25, $26, $27, $28, $29, $30, $31, $32, $33, $34, $35, $36, $37, $`. Pour voir ça il suffit de remplacer `20`
par n'importe quel nombre impair (`\test{18}{21}` par exemple).
En effet, la commande `\listadd` est définie par
\newrobustcmd{\listadd}[2]{%
\ifblank{#2}{}{\appto#1{#2|}}}
avec `|` a pour code de catégorie le nombre 3, i.e. =`$`.
Voir [la note de bas de page 29](http://texdoc.net/texmf-dist/doc/latex/etoolbox/etoolbox.pdf#page29).29](http://texdoc.net/texmf-dist/doc/latex/etoolbox/etoolbox.pdf#page=29).