\thispagestyle 和 \pagestyle 与 fancyhdr 和 extramarks 包一起使用会引起混淆

\thispagestyle 和 \pagestyle 与 fancyhdr 和 extramarks 包一起使用会引起混淆

我正在使用 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}

相关内容