Re: Appunti di programmazione – Problema con \printlogtable

#28174
Up
0
Down
::

Ciao a tutti,
sto modificando leggermente una classe in modo da poter “appendere” delle revisioni del testo man mano che queste vengono effettuate.
Per far questo mi sono basata sull’impagabile testo di Enrico: “Appunti di programmazione in latex e tex”, ma ho incontrato qualche difficoltà!
Ho copiato la macro \addlogentry e il codice del comando \printlogtable, fin qui tutto a posto, il codice viene compilato.
Il problema è sorto quando mi sono ritrovata a dover stampare la lista con il comando \printlogtable.
Ora i domandoni:
1. I codici di \addlogentry e \printlogtable vanno inseriti nella classe, corretto?
2. Dove devo richiamare la funzione \printlogtable? Le ho provate tutte ma non c’è verso…!

Grazie mille a chiunque mi possa aiutare!

Il tuo documento deve essere del tipo seguente:
`\documentclass[a4paper]{article}
\usepackage{booktabs}
\makeatletter
\newtoks\rt@toks
\newcommand{\addlogentry}[5]{%
\rt@toks=\expandafter{\the\rt@toks
\rt@entry\rt@date{#1}\rt@ver{#2}\rt@status{#3}
\rt@comment{#4}\rt@author{#5}\rt@endentry}
}
\def\printlogtable{%
\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}{ll}
\toprule
\multicolumn{2}{c}{Elenco delle modifiche}\\
\the\rt@toks
\bottomrule
\end{tabular}%
\endgroup}
\newcommand\printlogtablex[1][lllll]{%
\def\rt@logtablepreamble{#1}\rt@printlogtablex}
\def\rt@printlogtablex#1#2#3#4#5{%
\begingroup
\let\rt@entry\relax
\def\rt@date##1{\gdef\rt@idate{##1}}%
\def\rt@ver##1{\gdef\rt@iver{##1}}%
\def\rt@status##1{\gdef\rt@istatus{##1}}%
\def\rt@comment##1{\gdef\rt@icomment{##1}}%
\def\rt@author##1{\gdef\rt@iauthor{##1}}%
\let\rt@i\@gobble
\def\rt@endentry{%
\csname rt@i#1\endcsname&
\csname rt@i#2\endcsname&
\csname rt@i#3\endcsname&
\csname rt@i#4\endcsname&
\csname rt@i#5\endcsname&
\\}
\begin{tabular}{\rt@logtablepreamble @{}l}
\the\rt@toks
\end{tabular}%
\endgroup}
\makeatother

\begin{document}

\addlogentry{30/06/2006}{0.1}{pre}{C1}{A. U. Tore}
\addlogentry{30/01/2006}{0.2}{pre}{C2}{S. C. Rittore}
\addlogentry{30/03/2006}{0.3}{pre}{C3}{B. Irra}
\addlogentry{30/04/2006}{0.3beta}{beta}{C4}{V. Ino}

\printlogtable

\printlogtablex{author}{date}{ver}{comment}{status}
\printlogtablex[crl]{author}{ver}{date}{}{}

\end{document}`
Mi sono accorto che c’erano due errori di stampa (\logentrytoks invece di \rt@toks).
Corretti anche nel sorgente, arriveranno nel pdf.

Ciao
Enrico

Go to top