premetto che sono abbastanza scarso nell’uso di Latex (perdonatemi).
Avrei un quesito/necessità.In breve: dovrei creare delle macro per poter creare una tabella in modo iterativo ed in punti diversi del documento.
Mi spiego meglio. Vorrei creare una macro (od insieme di macro) che mi permetta di aggiungere delle righe alla tabella (che contiene informazioni tipo: data, versione, commento, …) in modo disgiunto dall’implementazione “tipografica”. Il codice di utilizzo dovrebbe essere:
`\addlogentry{30/06/2006}{1.0}{Prima releas ufficiale}
\addlogentry{1/07/2006}{1.1}{Correzione baco di sicurezza}
\addlogentry{2/08/2006}{1.0}{Aggiornamento libreria pincopallo}
…`
Poi, da qualche parte nel documento:
`\makelogtable`
che genera la tabella con i datti caricati.
[…]
Direi che qui ci vuole una “token list”, ma si va su cose non documentate in LaTeX e che trovi sul TeXbook.
`\makeatletter
\newtoks\logentrytoks
\newcommand{\addlogentry}[5]{%
\logentrytoks=\expandafter{\the\logentrytoks
\rt@entry
\rt@date{#1}\rt@ver{#2}\rt@status{#3}\rt@comment{#4}\rt@author{#5}%
\rt@endentry}
}
\def\makelogtable{%
\begingroup
\let\rt@entry\relax
\def\rt@date##1{##1&}%
\let\rt@ver\@gobble
\let\rt@status\@gobble
\let\rt@comment\@gobble
\def\rt@author##1{##1}%
\def\rt@endentry{\\}
\begin{tabular}{rl}
Data & autore\\
\hline
\the\logentrytoks
\hline
\end{tabular}%
\endgroup}
\makeatother`
A ogni chiamata di \addlogentry, alla token list viene aggiunta una nuova lista di token, ben strutturata in modo che poi si possano usare i dati come ci pare. Definisco allora \makelogtable dicendo che il comando \rt@entry non fa niente, i comandi \rt@ver, \rt@status e \rt@comment si mangiano il loro argomento, mentre usiamo solo i campi \rt@date e \rt@author.
Puoi ottenere tabelle che usano i dati come preferisci. Così solo nell’ordine in cui compaiono, ma si può ridefinire \rt@entry in modo che si possa anche modificare l’ordine. O anche che numeri automaticamente i vari elementi, eccetera.
Ciao
Enrico
PS: Ho spostato il topic nel forum più appropriato.