E’ il mio primo post su questa lista e vi faccio i complimenti per il forum! Ho esperienza di Latex ma quasi nessuna di Tex e vorrei creare una macro da poter richiamare all’interno del tabular environment per ripetere N volte un pattern composto di stringa + caratteri di controllo. Ho studiato un po’ di documentazione su Tex e ho scritto:
`\begin{tabular}{|ccccc|}}
\hline
\multicolumn{5}{|c|}{Titolo}\\
\hline
\duplicate{& str1 & str2}{2}\\ %^
\hline
\end{tabular}`
Quello che vorrei ottenere e’: & str1 & str2 & str1 & str2 \\La macro \duplicate che ho scritto e’:
`\newcommand{\duplicate}[2]
{
\count255 = #2
\loop
#1
\ifnum\count255 > 1
\advance\count255 by -1
\repeat
}`
Ma ovviamente (!) dà errore…
Si è parlato di un problema simile tempo fa qui sul forum. Il problema non è tanto nel catcode di &, quanto nel momento dell’espansione di \duplicate.
Puoi fare così:
`\newtoks\duptok
\newcommand{\duplica}[2]{%
\duptok={#1}%
\count255=#2%
\loop
\advance\count255 -1
\ifnum\count255 > 0
\duptok=\expandafter{\the\duptok & #1}%
\repeat}`
In questo modo basta fare così:
`\begin{tabular}{cccc}
a & b & c & d\\
\duplicate{aa&bb}
\end{tabular}
\begin{tabular}{cccccc}
a & b & \duplicate{cc&dd}{2}
\end{tabular}
`
Attento però che \duplicate deve stare subito dopo \\ o &. Se ci metti qualcosa prima non funzionerà.
Si scrive LaTeX e TeX, mi raccomando. 😀
Ciao
Enrico