Mi sono appena reso conto che non funziona nemmeno con \let\old<...>=<...> e \renewcommand. ❗
`
\documentclass{article}
\usepackage{etoolbox}
\newenvironment{ambiente}[2][]{%
\hrule\textit{#1, #2}%
}{}
\let\oldambiente\ambiente
\renewcommand{\ambiente}[2][]{%
\textbf{#1, #2}%
\oldambiente[#1]{#2}
}
\begin{document}
\begin{ambiente}[primo]{secondo}
\end{ambiente}
\end{document}
`
Dà errore di TeX capacity exceeded. Questo mi spiazza non poco, ma posso ammetterlo per via del funzionamento interno di \renewcommand (che non ho capito).
L’unica soluzione è la seguente?
`
\documentclass{article}
\usepackage{etoolbox}
\newenvironment{ambiente}[2][]{%
\hrule\textit{#1, #2}%
}{}
\makeatletter
\let\oldambiente\ambiente
\def\ambiente{%
\@ifnextchar[{\ambiente@o}{\ambiente@o[]}%
}
\def\ambiente@o[#1]#2{%
\textbf{#1, #2}%
\oldambiente[#1]{#2}%
}
\makeatother
\begin{document}
\begin{ambiente}[primo]{secondo}
\end{ambiente}
\end{document}
`