隐藏章节标题并在章节标题中包含章节名称

隐藏章节标题并在章节标题中包含章节名称

我希望章节名称不打印出来,而是出现在每个章节标题中。例如:

\chapter{Mychapter}
\section{}
\blinddocument
\section{}

会打印类似

Mychapter 1
Mychapter 2

我该如何实现呢?我尝试\chaptertitle使用titlesec \titleformat,例如:

\titleformat{\section}[display]
  {\normalfont\Large}
  {\chaptertitle\ \thesection}{10pt}
  {\normalfont}

\chaptertitle似乎仅在\sethead和内部定义\setfoot

为了正确隐藏章节和编号部分,我使用了:

\renewcommand{\thechapter}{}
\renewcommand{\thesection}{\arabic{section}}

但我确信一定有更好的东西......

答案1

尝试以下操作。它不适用于 的所有选项memoir,因为它有两个命令的可选参数\chapter

\documentclass{book}

\makeatletter
\let\oldchapter\chapter
\newcommand\chaphead{}

\renewcommand\chapter{%
    \@afterindentfalse
    \secdef\@mychapter\@schapter}

\def\@mychapter[#1]#2{%
    \addcontentsline{toc}{chapter}{#1}%
    \chaptermark{#1}%
    \addtocontents{lof}{\protect\addvspace{10\p@}}%
    \addtocontents{lot}{\protect\addvspace{10\p@}}%
    \renewcommand\chaphead{#2}}

\def\chaptermark#1{%
  \markboth {\MakeUppercase{#1}}{}}%

\def\sectionmark#1{%
  \markright{\MakeUppercase{%
    \ifnum \c@secnumdepth >\z@
      \arabic{section}. \ %
    \fi
    #1}}}

\renewcommand\thesection{\chaphead~\arabic{section}.}
\makeatother

\begin{document}
    \tableofcontents\clearpage
\chapter{First chapter}
\section{First section}
\section{Second section}
\end{document}

相关内容