我希望将章节和部分标题放在页面的中心。目前它们位于左侧。请在不使用任何包的情况下给我一些建议。
答案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}
由于要求不使用附加包,因此我将重新定义作为首选方案。