Enrico, ti ringrazio della risposta, davvero interessante! Resta però ancora irrisolto questo dubbio:
Più importante, perché se lascio vuoto il secondo argomento opzionale, ottengo un errore in compilazione?
`\lstnewenvironment{pascalx}[1]%[] se elimino questo ottengo un errore
{\lstset{language=pascal,numbers=left,numberstyle=\tiny,float,#1}}
{}`
😈 E quale errore, se magari volessi menzionarlo? Ma non è necessario che tu lo faccia in un altro messaggio, visto che dovrebbe essere ovvio che con
`\lstnewenvironment{pascalx}[1]
{\lstset{language=pascal,numbers=left,numberstyle=\tiny,float,#1}}
{}`
stai chiedendo che l’ambiente pascalx abbia un argomento OBBLIGATORIO. Se poi scrivi
`\begin{pascalx}
program …
\end{pascalx}`
listings cerca l’argomento sulla stessa riga (è così e non ci si può fare niente) e va nei pasticci.
Ovviamente, con quella definizione,
`\begin{pascalx}{}
program …
\end{pascalx}`
non dà alcun problema.
Ciao
Enrico