Как изменить @makeschapterhead, чтобы расположить название главы по центру?

Как изменить @makeschapterhead, чтобы расположить название главы по центру?

Я переопределил, \@makechapterheadчтобы сократить пробелы после и перед названием главы, но не знаю, как его отцентрировать... Кто-нибудь может помочь?

\makeatletter
\def\@makechapterhead#1{%
  %%%%\vspace*{50\p@}% %%% removed!
  {\parindent \z@ \raggedright \normalfont
    \ifnum \c@secnumdepth >\m@ne
        \normalsize\bfseries \@chapapp\space \thechapter
        \par\nobreak
        \vskip 20\p@
    \fi
    \interlinepenalty\@M
    \normalsize \bfseries #1\par\nobreak
    \vskip 40\p@
  }}
\def\@makeschapterhead#1{%
  %%%%%\vspace*{50\p@}% %%% removed!
  {\parindent \z@ \raggedright
    \normalfont
    \interlinepenalty\@M
    \normalsize \bfseries  #1\par\nobreak
    \vskip 40\p@
  }}
\makeatother

решение1

Чтобы выровнять всю конструкцию заголовка главы по центру, просто замените \raggedright(текущий/типичный стиль выравнивания заголовков) на \centering:

введите описание изображения здесь

\documentclass{report}

\usepackage{lipsum}% Just for this example

\makeatletter
\def\@makechapterhead#1{%
  %%%%\vspace*{50\p@}% %%% removed!
  {\parindent \z@ \centering \normalfont
    \ifnum \c@secnumdepth >\m@ne
        \normalsize\bfseries \@chapapp\space \thechapter
        \par\nobreak
        \vskip 20\p@
    \fi
    \interlinepenalty\@M
    \normalsize \bfseries #1\par\nobreak
    \vskip 40\p@
  }}
\def\@makeschapterhead#1{%
  %%%%%\vspace*{50\p@}% %%% removed!
  {\parindent \z@ \centering
    \normalfont
    \interlinepenalty\@M
    \normalsize \bfseries  #1\par\nobreak
    \vskip 40\p@
  }}
\makeatother

\begin{document}

\chapter{A chapter}

\lipsum[1]

\end{document}

Связанный контент