Re: Mischiare e invertire modo macro e modo ambiente

#74142
Up
0
Down
::

robitex” post=73032Ciao a tutti,
l’altro giorno mi serviva un modo per rendere una voce di computo metrico composta con una tabella. Ho cominciato a scrivere il codice tutto esplicitamente per poi assemblarlo con i primi comandi.
Ne è venuto fuori un codice in controtendenza, ovvero una sintassi che prevede di usare macro al posto di ambienti definite tramite ambienti.

L’apertura è basata su l’ambiente tabular:
\startvoce{descrizione}{unità di misura}

Poi ho una macro \voce che compone il testo in una cella della tabella come ambiente minipage
\voce{descrizione lunga quanto si vuole ma non troppo}

Poi ho alcune macro per inserire prezzi e misure:
\misure{descr misure}{numero}
\prezzo{importo}

La chiusura è:
\endvoce

ecco una traccia dell’implementazione:
`\def\startvoce#1#2{% l'ambiente tabular verrà chiuso più tardi da \endvoce
\begin{tabular}{clr}
\toprule
N. & #1 & \si{#2}\\% richiede siunitx
\midrule
}
\def\voce#1{\begin{minipage}{110mm}#1\end{minipage}}

\def\endvoce{\bottomrule\end{tabular}}
`
il fatto è che funziona a dimostrazione del fatto che la programmazione TeX è sempre ricca di sorprese.
`\startvoce{Travi in legno lamellare}{m^3}
\voce{
Travi di orditura principale di copertura realizzate in legno lamellare
GL24 di sezione rettangolare ecc ecc
}
\misura{Falda lato strada}{2.120}
\prezzo{500.00}
\endvoce`
Simpatico no?
R.

Dov’è la sorpresa? 🙂 E dov’è diverso questo da un modo “tradizionale”?
`\newenvironment{tabellona}[2]
{\begin{tabular}{clr}
\toprule
N. & #1 & \si{#2}\\% richiede siunitx
\midrule}
{\bottomrule\end{tabular}}`
E il tuo input sarebbe:
`\begin{tabellona}{Travi in legno lamellare}{m^3}
\voce{
Travi di orditura principale di copertura realizzate in legno lamellare
GL24 di sezione rettangolare ecc ecc
}
\misura{Falda lato strada}{2.120}
\prezzo{500.00}
\end{tabellona}`
Non capisco perché mischiare nomi che indicano cose nettamente diverse, mi riferisco a “voce”.

Ciao
Enrico

Go to top