谢谢,Werner,你的建议很有效。我在这里提供了一个可行的简单示例
在书籍课程中,我定义了标题并有一个序言:
\documentclass[12pt,twoside,openright]{book}
\usepackage[utf8]{inputenc} %
\usepackage[T1]{fontenc} %
\usepackage{lipsum,layout,fancyhdr}
\let\oldchaptermark\chaptermark% Store \chaptermark % added to cut
\pagestyle{fancy} % read package doc.
\let\chaptermark\oldchaptermark% Restore \chaptermark % added to restore
\fancyfoot{}
\fancyhead[LO]{\slshape\nouppercase{\leftmark}}
\fancyhead[RE]{\textit{<Historical Materialism>}} %
\fancyhead[RO]{\thepage} %
\fancyhead[LE]{\thepage} %
\begin{document} %
\frontmatter \chapter{Preface}
\lipsum
\mainmatter
\chapter*{Chapter}
\backmatter
\end{document}
现在 Preface 标题只是“Preface”
答案1
fancyhdr
的fancy
页面样式重新定义\chaptermark
——负责存储页面标记中的内容的宏。
\chaptermark
这是仅加载book
不带 * 的类时的原始定义fancyhdr
:
\def\chaptermark#1{%
\markboth {\MakeUppercase{%
\ifnum \c@secnumdepth >\m@ne
\if@mainmatter
\@chapapp\ \thechapter. \ %
\fi
\fi
#1}}{}}%
注意它如何取决于你是否在\mainmatter
- \ifmainmatter
... 。这是加载和执行\fi
时的定义:fancyhdr
\pagestyle{fancy}
\def\chaptermark#1{%
\markboth {\MakeUppercase{%
\ifnum \c@secnumdepth > \m@ne
\@chapapp\ \thechapter. \ %
\fi
#1}}{}}%
对 的存在没有任何条件\mainmatter
。
\chaptermark
一种解决方案是先存储\pagestyle{fancy}
,然后恢复:
\let\oldchaptermark\chaptermark% Store \chaptermark
\pagestyle{fancy}
\let\chaptermark\oldchaptermark% Restore \chaptermark