仅删除一个章节的“章节”标题

仅删除一个章节的“章节”标题

我怎样才能仅删除一个章节的“章节”标题?

例如,如果我只想删除第 2 章的“章节”标题,则使用

\documentclass{report}

\begin{document}

\chapter{Hello}
\chapter{World}
\chapter{!}

\end{document}

我得到:

在此处输入图片描述

我希望获得:

在此处输入图片描述

答案1

章节标题设置为report.cls通过宏\@makechapterhead

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

我们可以创建它的“副本”,但只需删除创建即可Chapter X。我们将其称为副本\fake@makechapterhead

\def\fake@makechapterhead#1{%
  \vspace*{50\p@}%
  {\parindent \z@ \raggedright \normalfont
    \ifnum \c@secnumdepth >\m@ne
        \huge\bfseries \strut%\@chapapp\space \thechapter
        \par\nobreak
        \vskip 20\p@
    \fi
    \interlinepenalty\@M
    \Huge \bfseries #1\par\nobreak
    \vskip 40\p@
  }}

注释部分已被替换为\strut(为了正确设置适当的基线。

现在我们添加一些内部管理和用户界面宏,您可以使用它们\newchapterhead来创建“假”章节标题,并\restorechapterhead恢复原始设置:

\documentclass{report}

\makeatletter
\let\old@makechapterhead\@makechapterhead
% Taken from http://mirrors.ctan.org/macros/latex/unpacked/report.cls
\def\fake@makechapterhead#1{%
  \vspace*{50\p@}%
  {\parindent \z@ \raggedright \normalfont
    \ifnum \c@secnumdepth >\m@ne
        \huge\bfseries \strut%\@chapapp\space \thechapter
        \par\nobreak
        \vskip 20\p@
    \fi
    \interlinepenalty\@M
    \Huge \bfseries #1\par\nobreak
    \vskip 40\p@
  }}
\newcommand{\newchapterhead}{\let\@makechapterhead\fake@makechapterhead}
\newcommand{\restorechapterhead}{\let\@makechapterhead\old@makechapterhead}
\makeatother

\begin{document}

\chapter{Hello}

\newchapterhead
\chapter{World}

\restorechapterhead
\chapter{!}

\end{document}

Chapter X上述过程仅通过删除打印的短语来保持章节标题的垂直位置不变。


另一种方法可能是使用\chapter*章节设置。这不会在章节页面上为标题提供相同的垂直位置,但也可能正是您想要的:

\documentclass{report}
\begin{document}

\chapter{Hello}

\clearpage\refstepcounter{chapter}%
\chapter*{World}

\chapter{!}

\end{document}

发行\clearpage\refstepcounter{chapter}可以实现两件事:

  1. 步骤chapter计数器以确保章节中的子内容有正确的引用World

  2. 如果您使用hyperref用于放置内部文档超链接。

相关内容