将 ChapterHead 格式重新用于 Chapter*

将 ChapterHead 格式重新用于 Chapter*

我已经为 Head Chapter 定义了一个特定的格式

\def\@makechapterhead#1{
{\parindent \z@ \centering
    \normalfont
    \ifnum \c@secnumdepth >\m@ne
    \if@mainmatter
    \Large\bfseries \@chapapp\space \thechapter
    \par\nobreak
    %\vskip 20\p@
    \fi
    \fi
    \interlinepenalty\@M
    \Large \bfseries #1\par\nobreak
    \vskip 40\p@
    \thispagestyle{empty}
}}

但是当我使用 chapter*{} 命令时,它不起作用。如何避免这种情况?

答案1

\chapter的标题/标题设置为 ,\@makechapterhead\chapter*的标题/标题设置为\@makeschapterhead。因此,为了保持您定义的内容的相同风格,请复制定义并删除有关设置标签的部分Chapter X

在此处输入图片描述

\documentclass{book}

\makeatletter
\def\@makechapterhead#1{
{\parindent \z@ \centering
    \normalfont
    \ifnum \c@secnumdepth >\m@ne
    \if@mainmatter
    \Large\bfseries \@chapapp\space \thechapter
    \par\nobreak
    %\vskip 20\p@
    \fi
    \fi
    \interlinepenalty\@M
    \Large \bfseries #1\par\nobreak
    \vskip 40\p@
    \thispagestyle{empty}
}}

\def\@makeschapterhead#1{
{\parindent \z@ \centering
    \normalfont
    %\ifnum \c@secnumdepth >\m@ne
    %\if@mainmatter
    %\Large\bfseries \@chapapp\space \thechapter
    %\par\nobreak
    %%\vskip 20\p@
    %\fi
    %\fi
    %\interlinepenalty\@M
    \Large \bfseries #1\par\nobreak
    \vskip 40\p@
    \thispagestyle{empty}
}}
\makeatother

\begin{document}

\chapter{A chapter}

\chapter*{Another chapter}

\end{document}

相关内容