回忆录标题中的多个部分划分

回忆录标题中的多个部分划分

您将如何设置页眉,以便在左手边的页面上可以显示书籍的部分和章节,而在右手边的页面上可以显示任何现有的小节。

通过阅读回忆录手册和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}

相关内容