
Я использую класс книги и хочу обновить его существующую команду \@makechapterhead. Исходная команда показана на стр.32этот документ. В частности, я хочу изменить интервал в строке 811 с 50 до 30, поэтому я сделал следующее
\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@
}}
}
Но я получил ошибку, говорящую о недопустимом номере параметра в определении \@makechapterhead. Как мне это исправить?
Спасибо.
решение1
Вы можете добавить в преамбулу вашего документа:
\makeatletter
\let\@makechapterhead@ori\@makechapterhead
\renewcommand{\@makechapterhead}[1]{\vspace*{-20\p@}\@makechapterhead@ori{#1}}
\makeatother
Исходное определение \@makechapterhead
резервируется в \@makechapterhead@ori
. Далее добавляется отрицательная вертикаль 20pt, а затем \@makechapterhead
применяется оригинал. В результате вы получили вертикальное пространство 50-20 = 30pt, как и требовалось.