fancyhdr 中第一页的页脚标尺与 `book` 有关,但不在 `\part` 部分

fancyhdr 中第一页的页脚标尺与 `book` 有关,但不在 `\part` 部分

在问题中fancyhdr 中带有“book”的第一页页脚标尺我询问是否可以在章节的第一页添加页脚标尺。答案https://tex.stackexchange.com/a/566047/44119给出了该问题所需的结果。

我现在遇到了类似的问题,我想在章节的第一页上有页脚标尺和页脚文本,但是我不part希望在该页面上有页脚标尺和页脚文本。

@Bernard 在评论中的建议https://tex.stackexchange.com/a/566047/44119是使用\thispagestyle{empty},但这不起作用,所以我想使用一个,\newenvironment但这也不起作用(我的尝试目前被注释掉了。我的 MWE:

\documentclass[twoside]{book}
\usepackage{lipsum}
\usepackage{fancyhdr}
\pagestyle{fancyplain}
\renewcommand{\footrulewidth}{0.4pt}
%
\fancypagestyle{fancyplain}{
\fancyhf{}
\fancyhead[LE, RO]{\bfseries\thepage}
\fancyhead[LO]{\bfseries\rightmark}
\fancyhead[RE]{\bfseries\leftmark}
\fancyfoot[LE, RO]{\bfseries\thepage}
\fancyfoot[LO, RE]{\bfseries\scriptsize Generated}
}
%
\fancypagestyle{plain}{
\fancyhf{}
\fancyfoot[LE, RO]{\textbf{\thepage}}
\fancyfoot[LO, RE]{\bfseries\scriptsize Generated}
\renewcommand{\headrulewidth}{0pt}}

\pagestyle{fancyplain}

\newenvironment{MyPart}{
  \fancyfoot[LO, RE]{}
  \renewcommand{\footrulewidth}{0.0pt}
}{
  \fancyfoot[LO, RE]{\bfseries\scriptsize Generated }
}

\begin{document}

%% test based on suggestion by @Bernard in comment on https://tex.stackexchange.com/a/566047/44119:
\part{Manual}
\thispagestyle{empty}

%% my own idea:
\begin{MyPart}
\part{Manual}
\end{MyPart}

\chapter{My Chapter}
\lipsum[1]
\newpage
\lipsum[1]
\newpage
\lipsum[1]

\end{document}

答案1

问题是,它还\part使用了plain页面样式,而您已重新定义了该样式以满足您的需要。更糟糕的是,它确实\part发出了\newpage以强制一个空的背面页面;您的手册\thispagestyle{empty}来得太晚了。

我认为这里唯一的方法是修补 的定义\part。要么从你的序言中复制/粘贴原始定义,然后book.cls使用合适的替换

\renewcommand\part{%    <-- use \renewcommand here
  \if@openright
    \cleardoublepage
  \else
    \clearpage
  \fi
  \thispagestyle{empty}%   <-- empty instead of plain
  \if@twocolumn
    \onecolumn
    \@tempswatrue
  \else
    \@tempswafalse
  \fi
  \null\vfil
  \secdef\@part\@spart}

或者你让 egxpatch为你做这项工作

\usepackage{xpatch}
\xpatchcmd{\part}{plain}{empty}{}{}

基于您的代码的第二个解决方案的 MWE 是

\documentclass[twoside]{book}

\usepackage{lipsum}
\usepackage{fancyhdr}

\renewcommand{\footrulewidth}{0.4pt}

\fancypagestyle{fancyplain}{
\fancyhf{}
\fancyhead[LE, RO]{\bfseries\thepage}
\fancyhead[LO]{\bfseries\rightmark}
\fancyhead[RE]{\bfseries\leftmark}
\fancyfoot[LE, RO]{\bfseries\thepage}
\fancyfoot[LO, RE]{\bfseries\scriptsize Generated}
}

\fancypagestyle{plain}{
\fancyhf{}
\fancyfoot[LE, RO]{\textbf{\thepage}}
\fancyfoot[LO, RE]{\bfseries\scriptsize Generated}
\renewcommand{\headrulewidth}{0pt}}

\pagestyle{fancyplain}

\usepackage{xpatch}
\xpatchcmd{\part}{plain}{empty}{}{}

\begin{document}

\part{Manual}

\chapter{My Chapter}
\lipsum[1]
\newpage
\lipsum[1]
\newpage
\lipsum[1]

\end{document}

在此处输入图片描述

答案2

使用方式xpatch 不同:

\usepackage{ xpatch} 
\makeatletter
\xpatchcmd{\@part}{#2}{#2\thispagestyle{empty}}{}{}
\makeatother

在此处输入图片描述

相关内容