Per non dover ridefinire i vari comandi di altri documenti ho pensato di ridefinire il comando section in modo che, oltre a svolgere il suo compito, si occupi di scrivere il testo in un file appropriato esterno.
Il comando l’ho ridefinito nel seguente modo considerando le due versioni * e non
`
\def\oldesection{\relax}
\let\oldsection=\section
\def\seziones##1{\oldsection*{##1}}
\def\sezione##1{\oldsection{##1}
\relax
\immediate\write \csname tf@a\thearticle\endcsname{\hskip 7pt \thesection. ##1\if@puntini \dotfill\else\hfill\fi \thepage\mbox{\quad}\par
}}\def\section{\@ifstar\seziones\sezione}
`
Il codice funziona perfettamente se l’argomento di section non contiene altri comandi altrimenti mi da un errore che non riesco a interpretare.
scrivendo \section{Ambiente \envname{Articolo}}
con \envname definito come
`
\newcommand*\envname[1]{\textsf{#1}}
`
ottengo il seguente errore:
{psfonts.map}] [2]
Runaway argument?
{\s@font }{articolo}\ifx \reserved@a \@empty \let \check@icl \@empty \ETC.
! Paragraph ended before \@sect was complete.
\par
l.90 \section{Ambiente \envname{articolo}}
Qualcuno ha qualche idea su cosa può essere?Senza la ridefinizione del comando funziona tutto
Perché quei doppi #?
E, già che ci sono, ti ricordo di togliere \immediate.
Ciao
Enrico