如何手动设置页眉?在下面的示例中,所有页眉都与 的最后一个实例相同\rhead{7}
。有没有办法将页眉更新为该\rhead{#}
特定页面上 的第一个实例?
举个例子,假设我排版了一本圣经,编译后,某一页恰好包含《创世纪》第 1 章的一些溢出内容、《创世纪》第 2 章的全部内容以及《创世纪》第 3 章的第一部分,并且假设我分别调用了\rhead{Genesis 1}
、,\rhead{Genesis 2}
并且\rhead{Genesis 3}
在源文件中的章节定义之后,我希望页面的标题为Genesis 1
。
作为奖励,如果页眉包含页面上章节的累积,那么页眉就是,那就更好了Genesis 1, 2, 3
,但我不确定这是否容易实现。
这个过程也不必完全自动化;我的文档是 Python 脚本的输出,我可以按照自己的心意在文档的任何位置迭代注入复杂的 Latex 代码。
\documentclass[afrikaans, english, oneside,openany,a4paper]{book}
\usepackage{parcolumns}
\setlength{\parindent}{0.0em}
\setlength{\parskip}{0.0em}
\usepackage{xunicode}
\usepackage[T1]{fontenc}
\usepackage[margin=1.0in]{geometry}
\usepackage{fancyhdr}
\pagestyle{fancy}
\begin{document}
0
\\ \\
\vspace{100 mm}
\\ \\
\vspace{100 mm}
\\ \\
\vspace{100 mm}
\\ \\
1\rhead{1}
\vspace{100 mm}
\\ \\
2\rhead{2}
\\ \\
3\rhead{3}
\\ \\
4\rhead{4}
\\ \\
\vspace{100 mm}
\\ \\
\vspace{100 mm}
\\ \\
\vspace{100 mm}
\\ \\
\vspace{100 mm}
\\ \\
5\rhead{5}
\\ \\
\vspace{100 mm}
\\ \\
\vspace{100 mm}
\\ \\
\vspace{100 mm}
\\ \\
\vspace{100 mm}
\\ \\
6\rhead{6}
\\ \\
7\rhead{7}
\end{document}
答案1
一种可能的解决方案是使用scrlayer-scrpage
。
\documentclass[a5paper]{article}
\usepackage[automark,markcase=noupper]{scrlayer-scrpage}
\clearpairofpagestyles
\ihead{\rightfirstmark}
\ohead{\rightbotmark}
\cfoot{\pagemark}
\usepackage{blindtext}
\usepackage{geometry}
\begin{document}
\setcounter{secnumdepth}{-1}
\section{Genesis 1}
\blindtext
\section{Genesis 2}
\blindtext
\section{Genesis 3}
\blindtext
\clearpage
\section{Wombat 1}
\blindtext
\section{Wombat 2}
\blindtext[2]
\section{Wombat 3}
\blindtext
\end{document}