是否有任何钩子可以像\AtBeginDocument
章节、节等一样工作?类似的东西\AtBeginChapter
?我想要以下代码:
\AtBeginChapter{%
\setcounter{mycounter}{2}%
. . .
}
是的——我知道我可以创建我的计数器,这样每当新的章节开始时它就会重置,
\newcounter{mycounter}[chapter]
但我希望对新章节、新部分等开始时发生的情况有更多的控制权。
答案1
您可以\chapter
在调用原始宏之前重新定义以执行指定的任务\chapter
:
\documentclass{memoir}% http://ctan.org/pkg/memoir
\let\oldchapter\chapter% Store \chapter in \oldchapter
\newcounter{mycounter}
\renewcommand{\chapter}{%
\setcounter{mycounter}{2}% Insert "your content" here
\oldchapter%
}
\begin{document}
\chapter{A chapter}
\themycounter
\end{document}
这是有效的,因为\chapter
宏不会立即吞噬其参数(避免选择\LetLtxMacro
使用letltxmacro
,虽然这不会造成伤害)。它以*
第一的,允许人们先插入您的要求。请注意,原文\chapter
在设置标题之前会发出分页符(如果“您的内容”应该受此影响)。
\chapter
以上内容也适用于常规定义文档类(report
和book
)。
章节稍微容易一些,因为它们提供了一个“钩子”memoir
:将在 之前\setsechook{<stuff>}
执行。它还提供了s和s 。<stuff>
\section
\setsubsechook
\subsection
\setsubsubsechook
\subsubsection