修改章节命令(和 KOMA-script addchap)

修改章节命令(和 KOMA-script addchap)

是否有类似的东西etoolbox\appto也适用于\chapter\addchap

编辑:我打算用它在每章的第一页之后重新启用页码编号(可以使用或不使用禁用\renewcommand\thepage{}),但如果已经启用了页码编号,则该章的第一页也应该被编号。

编辑 2:我正在尝试创建一个命令,禁用页码直到下一章,包括下一章的第一页。我打算\renewcommand\thepage{}首先使用并添加一些代码来\chapter检查页码是否已被禁用(使用切换),如果已禁用,则将章节第一页的样式设置为plain并重新启用页码。

答案1

\appto仅适用于没有任何参数的宏。请尝试使用\apptocmd(或\pretocmd或)。有关这些命令的语法和其他详细信息,\patchcmd请参阅文档第 3.4 节。etoolbox

\clearpage编辑:这是一个从定义中删除的 MWE \chapter

\documentclass{report}

\usepackage{etoolbox}
\patchcmd{\chapter}{\clearpage}{}{}{}

\begin{document}

Some text.

\chapter{foo}

Some text.

\end{document}

编辑 2:回应您的第二次编辑:这是一个有点奇怪的要求,但我们开始吧:

\documentclass{book}

\usepackage[english]{babel}
\usepackage{blindtext}

\usepackage{etoolbox}
\newbool{emptystyle}
\newcommand*{\emptystyleuntilnextchapter}{%
  \pagestyle{empty}%
  \booltrue{emptystyle}%
}
\patchcmd{\chapter}{%
  \thispagestyle{plain}%
}{%
  \thispagestyle{plain}%
  \ifbool{emptystyle}{%
    \thispagestyle{empty}%
    \pagestyle{headings}%
    \boolfalse{emptystyle}%
  }{%
  }%
}{}{}

\begin{document}

\chapter{foo}

\blindtext[12]

\emptystyleuntilnextchapter

\blindtext[6]

\chapter{bar}

\blindtext[6]

\end{document}

相关内容