针对问题提供的解决方案如何修改 Memoir 类的页眉/页脚而无需重新定义所有内容涉及 a) 重新定义回忆录标题和 b) 重新定义页面样式。后者似乎导致出现一个新问题:我现在在使用词汇表时有两个“词汇表”部分标题。这是 MWE:
\documentclass{memoir}
\usepackage{lipsum}
%-----------------------------
\copypagestyle{headingsnobook}{headings}
\makeevenhead{headings}%
{\slshape\leftmark}{}{\thepage}
\makeoddhead{headings}{\rightmark}{}{\thepage}
\makeevenfoot{headings}{}{}{}
\makeoddfoot{headings}{}{}{}
\copypagestyle{plainnotice}{plain}
\makeevenfoot{plainnotice}{}{}{\thepage}
\makeoddfoot{plainnotice}{}{}{\thepage}
\aliaspagestyle{chapter}{plainnotice}
\makeevenhead{headingsnobook}{\leftmark}{}{\thepage}
%-----------------------------
\usepackage{glossaries}
\makeglossaries
\newglossaryentry{test}{%
name={test},
description={A test}}
\begin{document}
% Backmatter
\backmatter
\pagestyle{headingsnobook}
\glsaddall
\printglossaries
\end{document}
注释掉虚线之间的代码以及\pagestyle{headingsnobook}
使重复的标题消失,但我需要此代码最终将第 XX 册和第 XX 部分添加到主要内容标题中,而不是添加到后记标题中,例如词汇表或索引中。是否可以定义“headingsnobook”页面样式以避免这种情况?
答案1
观察到的重复标题是由于memoir
与glossaries
描述的不兼容造成的\pagestyle{ruled} 在词汇表中添加多余的文字。对于这个问题,解决方案是发出\pagestyle
命令前正在加载glossaries
。但是,这对手头的问题没有帮助,因为您显然需要\pagestyle{headingsnobook}
在文档正文中(在后记的开头)从另一种页面样式切换到。解决方案:切换后,发布一些从中复制的兼容性代码glossaries.sty
。
\documentclass{memoir}
\usepackage{lipsum}
%-----------------------------
\copypagestyle{headingsnobook}{headings}
\makeevenhead{headings}%
{\slshape\leftmark}{}{\thepage}
\makeoddhead{headings}{\rightmark}{}{\thepage}
\makeevenfoot{headings}{}{}{}
\makeoddfoot{headings}{}{}{}
\copypagestyle{plainnotice}{plain}
\makeevenfoot{plainnotice}{}{}{\thepage}
\makeoddfoot{plainnotice}{}{}{\thepage}
\aliaspagestyle{chapter}{plainnotice}
\makeevenhead{headingsnobook}{\leftmark}{}{\thepage}
%-----------------------------
\usepackage{glossaries}
\makeglossaries
\newglossaryentry{test}{%
name={test},
description={A test}}
\begin{document}
\pagestyle{headings}
\chapter{foo}
Some stuff unrelated to the glossary.
% Backmatter
\backmatter
\pagestyle{headingsnobook}
\renewcommand{\glossarymark}[1]{%
\markboth{\memUChead{#1}}{\memUChead{#1}}%
}
\glsaddall
\printglossaries
\end{document}