Makro - Probleme mit dem Erneuerungsbefehl

Makro - Probleme mit dem Erneuerungsbefehl

Ich verwende die Klasse „book“ und möchte den vorhandenen Befehl \@makechapterhead erneuern. Der ursprüngliche Befehl ist auf Seite 32 vondieses Dokument. Insbesondere möchte ich den Abstand in Zeile 811 von 50 auf 30 ändern, also habe ich Folgendes getan

\renewcommand{\@makechapterhead}{
     \def\@makechapterhead#1{%
        \vspace*{30\p@}%
        {\parindent \z@ \raggedright \normalfont
     \ifnum \c@secnumdepth >\m@ne
 ⟨book⟩     \if@mainmatter
         \huge\bfseries \@chapapp\space \thechapter
         \par\nobreak
         \vskip 20\p@
      \fi
⟨book⟩    \fi
    \interlinepenalty\@M
      \Huge \bfseries #1\par\nobreak
      \vskip 40\p@
    }}
}

Ich habe jedoch eine Fehlermeldung erhalten, die eine ungültige Parameternummer in der Definition von \@makechapterhead besagt. Wie behebe ich das?

Danke.

Antwort1

Sie können der Präambel Ihres Dokuments Folgendes hinzufügen:

\makeatletter
\let\@makechapterhead@ori\@makechapterhead
\renewcommand{\@makechapterhead}[1]{\vspace*{-20\p@}\@makechapterhead@ori{#1}}
\makeatother

Die ursprüngliche Definition von \@makechapterheadwird in gesichert \@makechapterhead@ori. Als nächstes wird eine negative Vertikale von 20pt hinzugefügt und dann das Original \@makechapterheadangewendet. Als Ergebnis erhalten Sie einen vertikalen Abstand von 50-20 = 30pt, wie gewünscht.

verwandte Informationen