ivan” post=63056Supponiamodi dover creare un ambiente che funzioni in questo modo (è un esempio semplificato di quello che devo fare):
\begin{scheda}{Luogo}{Anno}
\descrizione
\end{scheda}Ci sono due argomenti, e fin qui niente di difficile. Ma come si fa a definire dei comandi in modo che nella definizione dell’ambiente venga richiamato l’argomento del comando dato nel corpo del documento? L’idea è: dentro all’ambiente “schede” uso il comando \descrizione e quello che segue deve essere stampato al posto di \d@escrizione nel punto dove voglio io nella definizione dell’ambiente. Naturalmente se \descrizione lo metto fuori dall’ambiente funziona, ma vorrei che fosse locale all’ambiente e che si “azzerasse” alla fine di ogni ambiente.
Così non funziona 🙁 :`\newcommand{\descrizione}{\def\d@scrizione{#1}}
\newenvironment{scheda}[2]{%
#1, #2\\[3ex]
\d@scrizione
}`Spero di essermi spiegato.
Credo che sia una situazione molto simile all’ambiente “frontespizio”, ma non riesco a venirne a capo.
La situazione di “frontespizio” è piuttosto diversa. Là \begin{frontespizio} serve principalmente per attivare la scrittura sul file “frn” oltre che per tenere i vari comandi al posto giusto, visto che altrove non servirebbero a nulla. I vari comandi hanno in effetti tre definizioni diverse: una per quando è attiva la scrittura; una per quando non è attiva la scrittura e siamo nel file principale; la terza quando siamo nel file “frn” (e, in particolare, la scrittura non è attiva).
Esempio delle definizioni nei tre casi descritti:
1. \newcommand{\Titolo}[1]{\front@write{\Titolo{#1}}} (scriviamo nel file “frn” la stessa cosa)
2. \newcommand{\Titolo}[1]{} (non facciamo niente, perché non ci interessa produrre il “frn” né stamparlo)
3. \newcommand{\Titolo}[1]{\def\front@title{#1}} (vogliamo produrre il frontespizio)
Naturalmente le tre definizioni non coesistono: in ciascuna delle tre situazioni la definizione è una sola, quella che serve al momento.
Con \end{frontespizio} si chiude la scrittura (se attiva) e nel file “frn” viene scritto anche \begin{document}\preparefrontpage\end{document}.
Il tuo caso di una scheda non richiede questo, così a occhio.
Ciao
Enrico