fancyhdr 中的部分名称和编号不匹配

fancyhdr 中的部分名称和编号不匹配

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

相关内容