章节和节标题位于中心,无包装

章节和节标题位于中心,无包装

我希望将章节和部分标题放在页面的中心。目前它们位于左侧。请在不使用任何包的情况下给我一些建议。

答案1

您需要重新定义\@makechapterhead(对于编号章节)和\@makeschapterhead(对于未编号章节)和\section(原始定义可在中找到report.cls):

\documentclass{report}
\usepackage{lipsum}% just for the example

\makeatletter
\def\@makechapterhead#1{%
  \vspace*{50\p@}%
  {\parindent \z@ \raggedright \normalfont
    \ifnum \c@secnumdepth >\m@ne
        \centering\huge\bfseries \@chapapp\space \thechapter
        \par\nobreak
        \vskip 20\p@
    \fi
    \interlinepenalty\@M
    \Huge \bfseries #1\par\nobreak
    \vskip 40\p@
  }}
\def\@makeschapterhead#1{%
  \vspace*{50\p@}%
  {\parindent \z@ \raggedright
    \normalfont
    \interlinepenalty\@M
    \centering\Huge \bfseries  #1\par\nobreak
    \vskip 40\p@
  }}
\renewcommand\section{\@startsection {section}{1}{\z@}%
  {-3.5ex \@plus -1ex \@minus -.2ex}%
  {2.3ex \@plus.2ex}%
  {\centering\normalfont\Large\bfseries}}
\makeatother

\begin{document}

\chapter{A test chapter title}
\section{A test section title}
\lipsum[4]

\end{document}

在此处输入图片描述

修补命令后,代码将明显变短:

\documentclass{report}
\usepackage{etoolbox}
\usepackage{lipsum}% just for the example

\makeatletter
\patchcmd{\@makechapterhead}
  {\huge}
  {\centering\huge}
  {}
  {}
\patchcmd{\@makechapterhead}
  {\huge}
  {\centering\huge}
  {}
  {}
\patchcmd{\section}
  {\normalfont}
  {\centering\normalfont}
  {}
  {}
\makeatother

\begin{document}

\chapter{A test chapter title}
\section{A test section title}
\lipsum[4]

\end{document}

由于要求不使用附加包,因此我将重新定义作为首选方案。

相关内容