是否有类似的东西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}