您将如何设置页眉,以便在左手边的页面上可以显示书籍的部分和章节,而在右手边的页面上可以显示任何现有的小节。
通过阅读回忆录手册和http://tug.org/pracjourn/2008-2/madsen/madsen.pdf看来您一次只能通过 \rightmark \leftmark 将一个项目放入标题中。
因此,为了清楚起见,我想要的是类似这样的东西:
页码 • 部分标题 • 章节标题 | 节标题 • 小节标题 • 页码
其中垂直线是页面边缘
答案1
看来您一次只能通过 \rightmark \leftmark 将一个项目放入标题中。
确实如此,但不是全部真相。您可以通过将多个数据项连接成一个标记,然后在打印标题时选择适当的项来解决此问题。
由于部分和章节不太可能少于 2 页,因此您可以记住普通宏定义中的标题,或者可以\leftmark
像将节和小节标题打包到\rightmark
这是解决方案的骨架,用于展示基本思想。将功能干净地添加到标准\part
、\chapter
等命令中是一个独立的子问题。
\documentclass{memoir}
\usepackage{xstring}
\makeatletter
% Define some commands so we can renew them later
\newcommand{\savepart}{}
\newcommand{\savechapter}{}
\newcommand{\savesection}{}
% This is intentionally over-simple code, but packaging the additions cleanly into
% \part, \section, etc doesn't add value to explainng what to do.
% Assuming that chapters will cover at least two pages, we can just save the
% part and chapter titles withouut using marks.
\newcommand{\mypart}[1]{\renewcommand{\savepart}{#1}\part{#1}}
\newcommand{\mychapter}[1]{\renewcommand{\savechapter}{#1}\chapter{#1}}
% We also need to save the section title, so we can use it when we start
% each subsection
\newcommand{\mysection}[1]{\renewcommand{\savesection}{#1}\section{#1}}
% In the subsection, pack the two titles into the mark, with a unique separator @@@
% Note: you probably want to add a \markright commmand to \mysection as well,
% in case you have a section with no subsections.
\newcommand{\mysubsection}[1]
{\subsection{#1}\markright{\savesection @@@#1}}
% Finally, define the headings, and extract the two substrings from the \rightmark
\makeevenhead{headings}%
{\thepage}{\savepart}{\savechapter}
\makeoddhead{headings}%
{\StrBefore{\rightmark}{@@@}}{\StrBehind{\rightmark}{@@@}}{\thepage}
\makeatother
\begin{document}
\mypart{Part A}
\mychapter{Chapter One}
\newpage
\mysection{Sec 11}
\mysubsection{SubSec aaa}
\newpage
\mysubsection{SubSec bbb}
\newpage
\mysubsection{SubSec ccc}
\newpage
\mypart{Part B}
\mychapter{Chapter Two}
\newpage
\mysection{Sec 22}
\mysubsection{SubSec ddd}
\newpage
\mysubsection{SubSec eee}
\newpage
\mysubsection{SubSec fff}
\end{document}