接入页眉/页脚机制

接入页眉/页脚机制

我有一个开关,我想关闭页眉和页脚,但保持正文的打开状态。哪些命令实际上告诉 TeX 在设置正文后写入页眉和页脚,我如何在这些命令之前和之后添加开关(使用etoolbox或类似?)。

我正在寻找类似的东西\AtBeginPrintHeader。类似于\AtBeginDocument,或者everyhook允许您在每个段落开头执行某些操作的钩子,数学模式等。我知道有一些可以bophook在页面开头执行操作的东西,但我需要在编写的正文和编写的页眉和页脚之间执行某些操作。

\ohead\apptocmdfrom进行修补etoolbox显然行不通,因为\oheadTeX 尝试设置标题时调用的不是该宏。\ohead将相关的内部宏设置为它们应该设置的值,以便设置您想要的标题。所以我想我想知道的是设置标题时实际发生了什么:我应该使用什么命令\appto才能在设置标题之前发生一些事情?

有这样的机制吗?它与scrpage2和兼容吗fancyhdr

这是示例。我曾经everyhook为每个段落添加输入行号。尴尬的是,这包括页眉和页脚中的段落。

\documentclass{article}
\usepackage{everyhook,marginnote}
\newif\ifnotmarginhook
\notmarginhooktrue
\PushPostHook{par}{%
  \ifnotmarginhook%
  \notmarginhookfalse%
  {\marginnote{\small\ttfamily\the\inputlineno}}%
  \notmarginhooktrue%
  \fi%
}
\usepackage{scrpage2}
\pagestyle{scrheadings}
\newcounter{firstline}
\newcommand\nolineno[1]{\notmarginhookfalse #1\notmarginhooktrue}
\ohead{Problem $\to$}
\begin{document}
Some text
\end{document}

所以我想打开\notmarginhookfalse标题,然后在设置更多正文之前将其重新打开...使用\ohead{\notmarginhookfalse Text}似乎不起作用。

那么有没有办法挂接到标题或一些内部开关,以便我可以做类似的事情\ifheaders并以这种方式修改内容

答案1

如果您everyhook使用该[excludeor]选项加载包,您的解决方案应该会按预期工作。(我不明白您示例中的编号系统,但这与解决方案无关。)

\documentclass{article}
\usepackage[excludeor]{everyhook}
\usepackage{marginnote}
\newif\ifnotmarginhook
\notmarginhooktrue
\PushPostHook{par}{%
  \ifnotmarginhook%
  \notmarginhookfalse%
  {\marginnote{\small\ttfamily\the\inputlineno}}%
  \notmarginhooktrue%
  \fi%
}
\usepackage{fancyhdr}
\pagestyle{fancy}
\newcounter{firstline}
\newcommand\nolineno[1]{\notmarginhookfalse #1\notmarginhooktrue}
\rhead{\nolineno{Problem $\to$}}
\begin{document}
Some text

Some text
\end{document}

代码部分输出

相关内容