Re: Realizzazione classe con opzione «binaria»

#32767
Up
0
Down
::

Non occorre alcun \if

Molte grazie, ne prendo atto. Tengo comunque a mente anche la soluzione precedente, perché potrebbe sempre far comodo sapere gestire le condizioni.

La tecnica con \newif è utile in vari contesti, ma principalmente se la condizione deve essere verificata più volte. L’esempio tipico è l’opzione twoside: ci sono parecchi posti nella classe article dove occorre scegliere codice per il caso oneside o per il caso twoside. Perciò nella classe trovi
`\newif\if@twoside
\DeclareOption{oneside}{\@twosidefalse}
\DeclareOption{twoside}{\@twosidetrue}

\ExecuteOptions{…,oneside,…}
\ProcessOptions\relax`
(come al solito, non è proprio questo che si trova, indico solo l’essenziale). Prima di \ProcessOptions vengono passate le opzioni di default.

Nel tuo caso non occorre definire l’opzione di default “lezione”, ma non è vietato:
`\DeclareOption{lezione}{\def\@tipologia{Lezione}}
\DeclareOption{esercitazione}{\def\@tipologia{Esercitazione}}

\ExecuteOptions{lezione}
\ProcessOptions\relax`
avrebbe avuto lo stesso effetto (puoi usare \newcommand invece di \def se preferisci), ma sarebbe uno spreco.

La strategia da adottare dipende da quello che fa l’opzione. La lettura di clsguide.pdf (LaTeX2e for class and package writers) è molto indicata.

Ciao
Enrico

Go to top