Sì, ho sbagliato tutto… non sono stato capace di capire il file book.cls 😥
In effetti la prima riga è praticamente inutile però dovrebbe controllare se il comando \orig@schapter esiste già. (Lo consigli anche tu negli “Appunti di programmazione in LaTeX e TeX” a cavallo tra la pagina 15 e la pagina 16. Volevo fare il preciso!)
Credo che userò la seguente ridefinizione nella mia classe, a meno che ci sia un motivo particolare per usare \def al posto di \renewcommand.
`
\newcommand{\orig@schapter}[1]{}
\let\orig@schapter\@schapter
\renewcommand{\@schapter}[1]{\orig@schapter{#1}\markboth{#1}{#1}}
`
Non è certo sbagliato eseguire quel controllo, ma in quel modo è particolarmente inefficiente e basta \newcommand{\orig@schapter}{}; un comando con argomento opzionale ne definisce in realtà due (o forse tre).
L’uso di \def è per velocizzare la faccenda, quando si sa che il comando non è definito oppure ne stiamo scientemente ridefinendo uno.
Ciao
Enrico