gpt4 book ai didi

latex - 如何在 latex 中检查新章节是否从当前页面开始?

转载 作者:行者123 更新时间:2023-12-02 21:17:28 24 4
gpt4 key购买 nike

我正在使用everypage包裹。使用\AddEverypageHook 命令,我可以在文档的每一页的开头重复操作。现在我想做这样的事情:

\AddEverypageHook{
\if "New chapter starts at current page." - "Do stuff."
\else "Do other stuff."
\fi
}

如何在 Latex 中检查新的章节是否从当前页面开始?

最佳答案

在典型的文档中,\chapter 的问题命令后面跟着一个自动分页符。例如,查看 \chapter位于 report.cls :

\newcommand\chapter{\if@openright\cleardoublepage\else\clearpage\fi
\thispagestyle{plain}%
\global\@topnum\z@
\@afterindentfalse
\secdef\@chapter\@schapter}

它发出 \clearpage (或 \cleardoublepage ),刷新所有待处理的内容并在新页面上开始。

因此,根据您的设置,使用 afterpage package 可能就足够了的\afterpage{<stuff>}要执行的宏 <stuff> 在当前页面之后。例如,在您的序言中,您会

\let\oldchapter\chapter % Store \chapter
\renewcommand{\chapter}{% Redefine \chapter to...
\afterpage{\customcommand}% ...execute \customcommand after this page
\oldchapter}

当然,只有当您不在非章节页面上执行任何其他操作时,这才有意义,因为条件与 \chapter 相关。 。因此,在每个页面上做出文档范围的决策可能需要稍微不同的方法。

我仍然建议点击\chapter宏,但使用条件。这是一个例子(点击放大图片):

enter image description here

\documentclass{report}
\usepackage{lipsum,afterpage,everypage}

\newcounter{chapterpage}% For this example, a chapterpage counter
\newcounter{regularpage}% For this example, a regularpage counter
\newif\ifchapterpage% Conditional used for a \chapter page
% Just for this example, print page number using:
\renewcommand{\thepage}{\LARGE\thechapterpage--\theregularpage}

\AddEverypageHook{
\ifchapterpage % If on a \chapter page...
\stepcounter{chapterpage}% Increase chapterpage counter
\global\chapterpagefalse% Remove conditional
\else % ...otherwise
\stepcounter{regularpage}% Increase regularpage counter
\fi
}
\let\oldchapter\chapter % Store \chapter
\renewcommand{\chapter}{% Redefine \chapter to...
\afterpage{\global\chapterpagetrue}% ... set \ifchapterpage to TRUE _after_ this page
\oldchapter}

\begin{document}

\chapter{First chapter}\lipsum[1-50]
\chapter{Second chapter}\lipsum[1-50]
\chapter*{Third chapter}\lipsum[1-50]
\chapter{Final chapter}\lipsum[1-50]

\end{document}

上述方法的优点是对\chapter都有效。和\chapter*\chapter*不增加 chapter计数器,因此依赖基于这种比较的条件是不够的。

关于latex - 如何在 latex 中检查新章节是否从当前页面开始?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29719828/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com