Re: estrarre le opzioni delle classi standard

#1639
Up
0
Down
::


Secondo me c’hai piantato un erroretto:
`
\def\controllo#1,#2\fine{%
  \def\temp@a{#2}%
  \ifx\temp@a\@empty
    \let\next\relax
  \else
\def\temp@b{#1}%
\def\temp@c{12pt}%
\ifx\temp@b\temp@c
  % Abbiamo beccato l'opzione 12pt
\else
  \def\temp@c[11pt}%
  \ifx \temp@b\temp@c
    % Abbiamo beccato l'opzione 11pt
  \fi
\fi
    \def\next{\controllo#2\fine}%
  \fi
  opzione: #1\newline
  \next}
`

Secondo la tua definizione \controllo come prima cosa guarda se il secondo argoemnto è nullo e in tal caso esce dal ciclo.
così facendo non viene fatto nessun controllo sul primo elemento.
secondo me si può partire dall’assunto che la lista è non vuota (le classi hanno sempre almeno un opzione no?) e invertire l’ordine dei controlli, ovvero prima si controlla se il primo elemento corriponde all’opzione taldeitali, poi in caso non ci siano più elementi si esce.

che ne pensi?
(ho già scritto il comando che mi salva le opzioni oneside,twoside,10pt,11pt,12pt,a4paper, che funziona da dio ma solo se l’opzione non è la prima della lista. credo manchi solo questo dettaglio e poi posto il codice completo).

piccolo dettaglio tecnico: c’è un modo di usare l’if ma con il falso? \ifx\temp@a\temp@b in C sarebbe equivalente a \if{a==b}, come si fa invece a fare \if{a!=b}?

grazie infinite
f

Go to top