我想使用 fancyhdr 来获得像这样的偶数页标题(左边是页码,右边是部分名称): 和像这样的奇数页标题(左侧是节号 $\blacklozenge$ 节名,右侧是页码。): 我的代码如下:
\pagenumbering{arabic}
\setcounter{page}{1}
\pagestyle{fancy}
\let\Oldpart\part
\newcommand{\parttitle}{}
\renewcommand{\part}[1]{\Oldpart{#1}\renewcommand{\parttitle}{#1}}
\renewcommand{\sectionmark}[1]{\markright{#1}}
\renewcommand{\headrulewidth}{0.4pt}
\fancyhead[OR,EL]{\thepage}
\fancyhead[LO]{\fancyplain{}{\thesection\ $\blacklozenge$ \textsl{\textsc{\rightmark}}}}
\fancyhead[RE]{\fancyplain{}{\textsl{\textsc{\parttitle}}}}
\fancyfoot[C]{}
\setlength{\headheight}{14.5pt}
我遇到的问题是,偶尔奇数页标题上的章节编号与旁边的章节名称不匹配。 如您所见,这是页面上第 2.3 节的内容,节名称是 2.3,但节编号增加到了 2.4,而实际上它不应该增加到第 65 页(即使在这里增加,标题中的节名称也应该反映这一点。)。
预先感谢您的帮助!
我的最小例子是:
\documentclass[11pt, letterpaper,twoside,openright]{report}
\usepackage[sc]{mathpazo}
\linespread{1.05}
\usepackage[T1]{fontenc}
\usepackage{fancyhdr}
\usepackage[margin=1.54in]{geometry}
\usepackage{amssymb}
\usepackage{lipsum}
\pagenumbering{arabic}
\setcounter{page}{1}
\pagestyle{fancy}
\let\Oldpart\part
\newcommand{\parttitle}{}
\renewcommand{\part}[1]{\Oldpart{#1}\renewcommand{\parttitle}{#1}}
\renewcommand{\sectionmark}[1]{\markright{#1}}
\renewcommand{\headrulewidth}{0.4pt}
\fancyhead[OR,EL]{\thepage}
\fancyhead[LO]{\fancyplain{}{\thesection\ $\blacklozenge$ \textsc{\rightmark}}}
\fancyhead[RE]{\fancyplain{}{\textsc{\parttitle}}}
\fancyfoot[C]{}
\setlength{\headheight}{14.5pt}
\begin{document}
\part{Part One}
\chapter{Ch01}
\section{One Point One}
\lipsum[1-5]
\section{One Point Two}
\lipsum[9-11] \vspace{3in} \lipsum[12-13]
\section{One Point Three}
\lipsum[18-20]
\end{document}
答案1
从您发布的代码片段和您提供的输出来看,我猜想您在靠近显示错误标题的页面处还有另一个部分。这是 LaTeX 中的一个常见问题。\thesection
因此,您不应该在标题中使用。
当下一节命令生效后 LaTeX 决定分页但继续下一页时,可能会发生这种情况。
为了避免这个问题,你应该\thesection
在\sectionmark
定义中加入:
\documentclass[11pt, letterpaper,twoside,openright]{report}
\usepackage[sc]{mathpazo}
\linespread{1.05}
\usepackage[T1]{fontenc}
\usepackage{fancyhdr}
\usepackage[margin=1.54in]{geometry}
\usepackage{amssymb}
\usepackage{lipsum}
\pagenumbering{arabic}
\setcounter{page}{1}
\pagestyle{fancy}
\let\Oldpart\part
\newcommand{\parttitle}{}
\renewcommand{\part}[1]{\Oldpart{#1}\renewcommand{\parttitle}{#1}}
\renewcommand{\sectionmark}[1]{%
\markright{\thesection\ $\blacklozenge$ \textsc{#1}}}
\renewcommand{\headrulewidth}{0.4pt}
\fancyhead[OR,EL]{\thepage}
\fancyhead[LO]{\fancyplain{}{\rightmark}}
\fancyhead[RE]{\fancyplain{}{\textsc{\parttitle}}}
\fancyfoot[C]{}
\setlength{\headheight}{14.5pt}
\begin{document}
\part{Part One}
\chapter{Ch01}
\section{One Point One}
\lipsum[1-5]
\section{One Point Two}
\lipsum[9-11] \vspace{3in} \lipsum[12-13]
\section{One Point Three}
\lipsum[18-20]
\end{document}