我想在分页符后自动重复章节标题。我天真的尝试是检查页数计数器,并在计数器增加时打印额外的文本:
\newcounter{pagecnt}
\setcounter{pagecnt}{\value{page}}
...
\ifnum \value{page} > \value{pagecnt}% are we on a new page?
\normalfont\Large\bfseries\sectionheadinghere% print heading again
\setcounter{pagecnt}{\value{page}}% reset counter
\fi%
但我不太确定什么应该“触发”此代码?是否可以或可取地在每次换行(或每个单词)后检查页面是否已翻转?
答案1
以下补丁(通过etoolbox
)将部分内容(编号、标题和字体)保存在宏中,该宏在页面输出时重新评估(由everyshi
)是否存在文本溢出。溢出是使用条件
\ifdim\pagetotal>\pagegoal
% <do something>
\fi
检查收集的页面内容(高度\pagetotal
)是否超出允许的总数(高度\pagegoal
)。
\documentclass{article}
\usepackage{lipsum}% http://ctan.org/pkg/lipsum
\usepackage{everyshi}% http://ctan.org/pkg/everyshi
\usepackage{etoolbox}% http://ctan.org/pkg/etoolbox
\makeatletter
\let\@section@title@\relax% Sectional heading storage
\patchcmd{\@sect}% <cmd>
{\@xsect}% <search>
{\gdef\@section@title@{% Store sectional heading
{\noindent#6\@svsec#8\normalfont\ \smash{(continued)}}\par\bigskip}\@xsect}% <replace>
{}{}% <success><failure>
\EveryShipout{%
\ifdim\pagetotal>\pagegoal% There is content overflow on this page
\aftergroup\@section@title@% Reprint/-insert sectional heading
\fi%
}
\makeatother
\begin{document}
\section{A section}\lipsum[1-6]
\subsection{A subsection}\lipsum[7-14]
\end{document}
捕获了分区内容\@section@title@
并包括使用的最新分区标题(从级别 1 =\section
到级别 5 = 的任何内容\paragraph
)。
定制包括仅使用具体的分段单元(例如\section
)。此外,在传统使用分段标题后复制空格,而不是发出\bigskip
。
上述内容在标准 LaTeX 文档类(如book
、article
和report
)的上下文中有效,如果在其他文档类中使用或与其他部分标题包结合使用,则可能需要进行额外的修改。
答案2
我认为您正在寻找页眉和页脚的定义。这可以通过以下软件包完成fancyhdr
或者scrpage2
1.但是大多数文档类都定义了一些预定义的样式,这些样式可供命令使用\pagestyle
。允许的参数包括:
empty
-- 不打印页眉或页脚plain
-- 仅打印页码headings
-- 取决于类别。例如scrartcl
将打印该部分。
1文档scrpage2
位于 KOMA 手册中
这里有一个小例子:
\documentclass{scrartcl}
\usepackage{kantlipsum}
\pagestyle{headings}
\begin{document}
\section{My section}
\kant
\end{document}