Ciao a tutti,
mi sto divertendo a creare una classe personalizzata a partire dalla classe book.
Il problema delle testatine dopo un \chapter*{…} è ben noto ed è ben nota anche la soluzione: \markboth{…}{…}
Ho provato, senza successo, a ridefinire \chapter* per far sì che il \markboth venga dato in automatico. Ecco un esempio (ovviamente non funzionante…) per dare l’idea di ciò che sto cercando di fare:
`
\newcommand{\origchapter}[2][]{}
\let\origchapter\@chapter
\newcommand{\newchapter}[2][]{\origchapter{#1}{#2} \markboth{#2}{#2}}
\let\@chapter\newchapter
`Credo che questo problema ricada nel caso più generale di ridefinire un comando con parametri usando la definizione precedente del comando stesso.
Spero possiate aiutarmi.
Il comando \chapter per prima cosa controlla se è seguito dall’asterisco:
`\newcommand\chapter{…
\secdef\@chapter\@schapter}`
Il comando che viene eseguito se c’è l’asterisco è \@schapter, che ha un solo argomento. Direi che la cosa da fare è
`\let\orig@schapter\@schapter
\def\@schapter#1{\orig@schapter{#1}\markboth{#1}{#1}}`
Nel tuo codice ci sono vari errori, ma temo che sarebbe troppo lungo analizzarli tutti. La prima riga, in ogni caso, è perfettamente inutile. E \@chapter non ha due parametri come li immagini tu.
Ciao
Enrico