Re: Problema TeXnico: parsing di righe

#55782
Up
0
Down
::


Piccola variante.
Un esempio realistico di come si possa gestire una lista dei destinatari multipli in una comunicazione formale.
`\documentclass[a4paper]{article}
\usepackage[latin1]{inputenc}
\usepackage[T1]{fontenc}

\newcommand{\myToMark}{%
\makebox[0pt][r]{A: }%
}
\newcommand{\myCcMark}{%
\makebox[0pt][r]{E, p.c.: }%
}

\makeatletter

\newcount\r@wcounti
\newcount\r@wcount
\def\pp@sentinel{\hfuzz}
\def\pprows{\begingroup\parindent=\z@\endlinechar=\m@ne\ppr@ws}
\def\ppr@ws#1{%
\r@wcounti=\z@\r@wcount=\z@\ppr@w#1\\\hfuzz\\}
\def\ppr@w#1\\{%
% incremento contatore esterno
\advance\r@wcounti\@ne
% controlliamo se siamo alla fine
\def\pp@temp{#1}%
\ifx\pp@temp\pp@sentinel
\expandafter\endgroup
\else
\processr@w{#1}\expandafter\ppr@w
\fi}

\def\pppr@fix{%
\ifcase\r@wcounti\or
\myToMark{}\or % 1
\or %2
\or %3
\or %4
\myCcMark{}\or %5
% …
\fi}

\def\processr@w#1{\advance\r@wcount\@ne
\ifx\pp@temp\@empty
\r@wcount=\z@ \strut\par
\else
\pppr@fix
\ifcase\r@wcount\or
\textbf{#1}\par\or
\textit{#1}\par\else
#1\par
\fi
\fi}
\makeatother

\begin{document}

\pprows{%
Assessorato alle politiche sociali\\
Respons. Quart. Vicaria, dott.ssa Rosa Russo\\
P.zza Vicario, 31bis\\
\\
Comando VV. UU.\\
Com. Luigi Fariello\\
\\
Ufficio Stampa\\
\\
Comando VV. FF.\\
Com. ing. Tiberio Sauro\\
Sede
}

\end{document}
`
Da notare le macro \myToMark e \myCcMark che appongono le diciture “A: ” e “E p. c.: “, rispettivamente, al primo e al secondo destinatario.

Ciao,
Agostino

Go to top