macro: problemas con el comando de renovación

macro: problemas con el comando de renovación

Estoy usando la clase libro y quiero renovar su comando existente \@makechapterhead. El comando original se muestra en la página 32 deeste documento. En particular, quiero cambiar el espaciado en la línea 811 de 50 a 30, así que hice lo siguiente

\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@
    }}
}

Pero recibí un error que decía un número de parámetro ilegal en la definición de \@makechapterhead. ¿Cómo puedo solucionar esto?

Gracias.

Respuesta1

Puede agregar en el preámbulo de su documento:

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

La definición original de \@makechapterheadestá respaldada en \@makechapterhead@ori. A continuación, se agrega una vertical negativa de 20 puntos y luego \@makechapterheadse aplica el original. Como resultado, obtuviste un espacio vertical de 50-20 = 30 puntos, como deseabas.

información relacionada