我正在使用 article 类编写一篇科学文章。我通过“fancyhdr”和“extramarks”包定义的页面标题遇到了一些问题。我有 3 种页面样式:(1)“ttlpage”仅用于文档的第一页,(2)“simple”仅用于目录,(3)“main”用于文章文档的其余部分。请参阅下面的代码。
\documentclass[twoside]{article}
\usepackage{fancyhdr}
\usepackage{extramarks}
\setlength{\headheight}{14pt}
\fancypagestyle{ttlpage}{
\fancyhf{}
\fancyhead[L]{First page head}
}
\fancypagestyle{simple}{
\fancyhf{}
\fancyhead[LE, RO]{\thepage}
}
\fancypagestyle{main}{
\fancyhf{}
\fancyhead[LE, RO]{\thepage}
\fancyhead[LO]{\firstleftmark}
\fancyhead[RE]{\lastrightmark}
}
\begin{document}
\thispagestyle{ttlpage} % Causes problems.
%\pagestyle{ttlpage} % Works fine.
first page
\newpage
\pagestyle{empty} % With \thispagestyle above, causes missing \firstleftmark and \lastrightmark
%\pagestyle{simple} % With \thispagestyle above, causes "CONTENTS" to be printed instead of "INTRODUCTION",
\tableofcontents
\newpage
\pagestyle{main}
\section{Introduction}
\subsection{Foo}
\end{document}
如果我\thispagestyle{ttlpage}
在第一页使用 ,然后在第一节\pagestyle{simple}
之前\tableofcontents
和之前使用 ,那么和将在文档中后续页面的页眉中打印“目录”,这不是我想要的。如果我更改为,则不会打印任何内容。\pagestyle{main}
\firstleftmark
\lastrightmark
\pagestyle{simple}
\pagestyle{empty}
\fristleftmark
\lastrightmark
\thispagestyle{ttlpage}
我设法通过更改为解决了该问题\pagestyle{ttlpage}
。我不明白为什么这可以解决问题,我真的很想知道为什么会有差异。
答案1
正如 John Kormylo 的评论中所说,您需要\pagestyle
在 之前发出一些命令\begin{document}
。根据fancyhdr
文档,这将是\pagestyle{fancy}
,但您定义的任何其他样式也可以。
\pagestyle{fancy}
下面是在介绍页面上显示更正后的标题的插图。
\documentclass[twoside]{article}
\usepackage{fancyhdr}
\usepackage{extramarks}
\setlength{\headheight}{14pt}
\fancypagestyle{ttlpage}{
\fancyhf{}
\fancyhead[L]{First page head}
}
\fancypagestyle{simple}{
\fancyhf{}
\fancyhead[LE, RO]{\thepage}
}
\fancypagestyle{main}{
\fancyhf{}
\fancyhead[LE, RO]{\thepage}
\fancyhead[LO]{\firstleftmark}
\fancyhead[RE]{\lastrightmark}
}
\pagestyle{fancy}
\begin{document}
\thispagestyle{ttlpage}
first page
\newpage
\pagestyle{simple}
\tableofcontents
\newpage
\pagestyle{main}
\section{Introduction}
\subsection{Foo}
\end{document}