Mi sono in parte risposto da solo.
Ho visto che ci sono dei comandi che corrispondono alle diverse entry del file toc e sono definite nel seguente modo:
`
\newcommand*\l@section[2]{%
\ifnum \c@tocdepth >\z@
\addpenalty\@secpenalty
\addvspace{0em \@plus\p@}%
\setlength\@tempdima{1.5em}%
\begingroup
\parindent \z@ \rightskip \@pnumwidth
\parfillskip -\@pnumwidth
\leavevmode \bfseries
\advance\leftskip\@tempdima
\hskip -\leftskip
#1\nobreak\hfil \nobreak\hb@xt@\@pnumwidth{\hss #2}\par
\endgroup
\fi}
`
e fin qui tutto ok. Pensavo dunque nel nuovo stile di procedere alla ridefinizione di questi comandi in modo che per il secondo toc mi utilizzi lo stile scelto.
Il problema nasce dal fatto che mi genera un errore che non capisco.
ho ridefinito il comando in questo modo all’interno del comando \tableofcontentsalternativa
`
\def\l@section#1#2{….}
`
ma compilando mi dà il seguente errore:! Illegal parameter number in definition of \tableofcontentsalternativa
il comando è definito adesos per semplicità:
`\def\l@section#1#2{}
\@starttoc{toc}\contentsname%`
`\def\l@section##1##2{…}%`
Quando scrivi una definizione all’interno di una definizione, i parametri vanno indicati raddoppiando i segni #; così è chiaro se ti riferisci ai parametri per quella macro o a quelli della macro “genitrice”.
Meglio però se dai un’occhiata al pacchetto tocloft. Attento a racchiudere tutta la faccenda in un gruppo, se vuoi mantenere poi i valori originali dei vari comandi che ridefinisci.
Ciao
Enrico