매크로 - renewcommand 관련 문제

매크로 - renewcommand 관련 문제

나는 책 클래스를 사용하고 있으며 기존 명령인 \@makechapterhead를 갱신하고 싶습니다. 원래 명령은 p.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의 수직 공간을 얻게 되었습니다.

관련 정보