我在浮动页面中遇到了页眉问题:页眉全部变为大写,页码从页脚移至页眉,并且应显示节/子节的一侧也发生了变化。页眉规则也消失了。在浮动页面之后,页眉恢复正常。
我的序言中有以下内容,但似乎不起作用:
\usepackage{fancyhdr}
\pagestyle{fancy}
\fancyhf{}
\fancyfoot[LE,RO]{\thepage}
\fancyhead[LE]{\nouppercase\leftmark}
\fancyhead[RO]{\nouppercase\rightmark}
\fancyhead[LE]{\iffloatpage{}{\nouppercase\leftmark}}
\fancyhead[RO]{\iffloatpage{}{\nouppercase\rightmark}}
注意 - 我无法决定文档中哪些页面是仅浮动页面,这取决于浮动的大小以及页面中是否能容纳更多文本。因此,单浮动方法并不理想。
任何帮助都感激不尽。
这是 MWE。我已将我使用的大多数软件包添加到我的文档中。
\documentclass[12pt,twoside] {report}
\usepackage{natbib, amsmath, amssymb, lmodern, upgreek, txfonts, graphicx, mwe, microtype, textcomp, authblk, hyperref, booktabs, mathtools}
\usepackage{floatpag}
\usepackage{blindtext}
\usepackage{fancyhdr} %%%
\pagestyle{fancy}
\let\Sectionmark\sectionmark
\def\sectionmark#1{\def\Sectionname{#1}\Sectionmark{#1}}
\let\Subsectionmark\subsectionmark
\def\subsectionmark#1{\def\Subsectionname{#1}\Subsectionmark{#1}}
\let\Subsubsectionmark\subsubsectionmark
\def\subsubsectionmark#1{\def\Subsubsectionname{#1}\Subsubsectionmark{#1}}
\fancyhf{}
\fancyfoot[LE,RO]{\thepage}
\fancyhead[LE]{\nouppercase\leftmark}
\fancyhead[RO]{\nouppercase\rightmark}
\fancyhead[LE]{\iffloatpage{}{\nouppercase\leftmark}}
\fancyhead[RO]{\iffloatpage{}{\nouppercase\rightmark}}
\renewcommand{\headrulewidth}{2pt}
\renewcommand{\headrulewidth}{\iffloatpage{0pt}{2pt}}
\begin{document}
\blinddocument
\begin{figure}[h]
\centering
\includegraphics[width=\textwidth]{example-image-a}
\caption{\blindtext}
\end{figure}
\blinddocument
\end{document}
问题似乎出在\usepackage{floatpag}
。没有它,浮动页面的底角会有数字(这解决了页脚问题),但我也丢失了该页面的页眉,我想保留它。
答案1
问题出在
\fancyhead[LE]{\iffloatpage{}{\nouppercase\leftmark}}
\fancyhead[RO]{\iffloatpage{}{\nouppercase\rightmark}}
我在空括号内添加了相同的属性,如下所示:
\fancyhead[LE]{\iffloatpage{\nouppercase\leftmark}{\nouppercase\leftmark}}
\fancyhead[RO]{\iffloatpage{\nouppercase\rightmark}{\nouppercase\rightmark}}
现在它运行得很好。也不需要
\renewcommand{\headrulewidth}{\iffloatpage{0pt}{2pt}}