Re: Problema TeXnico: parsing di righe

#55777
Up
0
Down
::

Risposte a tempo di record! 😀
Grazie!

Adesso mi chiedo: nel caso in cui si avesse una sequenza non regolare di gruppi di righe, come in questo esempio
`Questa è una prima riga\\
Seconda riga\\
Terza riga\\
\\
Quinta riga (quella precedente era vuota)\\
Sesta riga\\
\\
Ottava riga (quella precedente era vuota)\\
\\
Decima riga (quella precedente era vuota)\\
Undicesima riga\\
Dodicesima riga
`
Come si modificherebbe l’algoritmo di Enrico per poter applicare lo stesso schema di formattazione desiderato?
Chiarisco: la prima riga del gruppo in neretto, la seconda riga (se esiste) in corsivo, la terza riga (se esiste) inalterata.

Grazie,
Agostino

`\makeatletter
\newcount\r@wcount
\def\pp@sentinel{\hfuzz}
\def\pprows{\begingroup\parindent=\z@\endlinechar=\m@ne\ppr@ws}
\def\ppr@ws#1{%
\r@wcount=\z@\ppr@w#1\\\hfuzz\\}
\def\ppr@w#1\\{%
% 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\processr@w#1{\advance\r@wcount\@ne
\ifx\pp@temp\@empty
\r@wcount=\z@ \strut\par
\else
\ifcase\r@wcount\or
\textbf{#1}\par\or
\textit{#1}\par\else
#1\par
\fi
\fi}
\makeatother`
Controllo se la riga è vuota, in questo caso riazzero il contatore. Per righe non vuote oltre la seconda in ogni gruppo non applico alcun formato. Ho definito in maniera diversa \pp@sentinel, ma è solo per scrupolo. Siccome mi serve la macro prima chiamata \temp anche in un altro contesto, ne ho cambiato il nome in \pp@temp.

Ciao
Enrico

Go to top