Ciao a tutti,
avrei due domande in merito alla gestione delle opzioni all’interno di un file di classe personalizzato.Sto scrivendo una classe che consente di realizzare la dispensa di una lezione. Siccome una generica lezione alla quale faccio riferimento è solitamente abbastanza breve, la mia classe si basa fortemente su article.cls, alla quale aggiunge alcune piccole modifiche.
In realtà, vorrei che questa mia classe potesse servirmi anche per tenere traccia delle esercitazioni. Dal momento che un’esercitazione presenta la stessa struttura di una lezione di teoria (cambia solo il contenuto), la classe in questione può essere usata indifferentemente sia per una normale lezione, sia per un’esercitazione. L’unica differenza tra le due situazioni consiste nella ridefinizione di un comando interno, il cui valore viene modificato da «Lezione» a «Esercitazione».Il primo caso è quello che consente di scrivere una lezione; il file di classe:…
Non occorre alcun \if:
`\NeedsTeXFormat{LaTeX2e}[1995/12/01]
\ProvidesClass{lezione}
\newcommand{\@tipologia}{Lezione}
\DeclareOption{esercitazione}{\renewcommand{\@tipologia}{Esercitazione}}
\DeclareOption*{\PassOptionsToClass{\CurrentOption}{article}}
\ProcessOptions\relax
\LoadClass{article}
\renewcommand{\@maketitle}{%
\newpage
\null
\vskip 2em%
\begin{center}%
\let \footnote \thanks
{\LARGE \@title \par}%
\vskip 1.5em%
{\large
\lineskip .5em%
\begin{tabular}[t]{c}%
\@author
\end{tabular}\par}%
\vskip 1em%
{\large Tipologia: \@tipologia} % <--- Viene stampata la tipologia di dispensa corrente.
\end{center}%
\par
\vskip 1.5em}
\endinput`
Le tue ipotesi su \DeclareOption*{\PassOptionsToClass{\CurrentOption}{article}} sono più o meno corrette: ogni opzione alla classe che non sia stata dichiarata esplicitamente con \DeclareOption viene passata alla classe article. Prima o dopo \DeclareOption* è irrilevante, ma tradizionalmente questa istruzione si mette per ultima.
Il problema che poni su
`\documentclass[11pt,a4paper,italian,esercitazione]{lezione}`
non esiste: l’opzione esercitazione non viene passata a article, perché è stata dichiarata nella classe.
Ciao
Enrico