每页的页眉和页脚相同

每页的页眉和页脚相同

我的页眉和页脚有问题。

如果我这么做:

\pagestyle{fancy}
\fancyhf{}
\fancyhead[R]{\includegraphics[width=8cm]{img/header.png}}
\fancyfoot[L]{ Name Firstname - v1.0 \\  Date}}
\fancyfoot[R]{\thepage\  / \pageref{LastPage}}

仅章节的第一页使用此页眉和页脚。

如果我这么做:

\fancypagestyle{plain}
{    
    \fancyhf{}
    \fancyhead[R]{\includegraphics[width=8cm]{img/header.png}}
    \fancyfoot[L]{ Name Firstname - v1.0 \\  Date}}
    \fancyfoot[R]{\thepage\  / \pageref{LastPage}}
}

章节中的其他页面使用此页眉和页脚,但不使用第一页。

我怎样才能将两者设置为相同?

显然,如果我将这两个代码放在一起,它是可以工作的,但我认为它很重而且不是最佳的......

编辑 :

我刚刚测试了这段代码(在我阅读了 Werner 的评论之后)

\pagestyle{fancyplain}
\fancyhf{}
\fancyhead[R]{\includegraphics[width=8cm]{img/header.png}}
\fancyfoot[L]{ Name Firstname - v1.0 \\  Date}}
\fancyfoot[R]{\thepage\  / \pageref{LastPage}}

每一章的每一页都适用,很好!

但现在我的目录有问题。

\tableofcontents{\thispagestyle{empty}}

此代码生成了一个带有我喜欢的页眉和页脚的目录。奇怪的是,我的目录的第二页是白色的页眉和页脚(就像我想要的整个表格一样)。

答案1

您需要plain使用以下方法重新定义页面样式后将其设置为fancyhdr命令\fancypagestyle{plain}{...}。这在fancyhdr文档(部分7 重新定义plain风格,第7-8页):

\usepackage{fancyhdr,graphicx,lastpage}% http://ctan.org/pkg/{fancyhdr,graphicx,lastpage}
\fancypagestyle{plain}{
  \fancyhf{}% Clear header/footer
  \fancyhead[R]{\includegraphics[width=\linewidth,height=5pt]{example-image-a}}% Right header
  \fancyfoot[L]{Name Firstname - v1.0 \\  Date}% Left footer
  \fancyfoot[R]{\thepage\  / \pageref{LastPage}}% Right footer
}
\pagestyle{plain}% Set page style to plain.

plain这应该将整个文档的页面样式设置为,包括\chapters 的第一页。

如果您希望某些章节具有不同的(empty例如)页面样式,则必须手动设置。不过\tableofcontents,这有点棘手,因为使用

\thispagestyle{empty}\tableofcontents

或者

\tableofcontents\thispagestyle{empty}

会将其设置为empty太早,或者太晚,具体取决于选择。这是因为命令的构造\tableofcontents(来自report.cls- 您的文档类别):

\newcommand\tableofcontents{%
    \if@twocolumn
      \@restonecoltrue\onecolumn
    \else
      \@restonecolfalse
    \fi
    \chapter*{\contentsname
        \@mkboth{%
           \MakeUppercase\contentsname}{\MakeUppercase\contentsname}}%
    \@starttoc{toc}%
    \if@restonecol\twocolumn\fi
    }

请注意,\tableofcontents执行\chapter*,它本身会通过\clearpage(或\cleardoublepage,取决于您的文档类选项,如openright)启动分页符。因此,必须在构建目录的位置附近插入页面样式……在本例中为\@starttoc{toc}。您可以使用 来执行此操作etoolbox补丁(还有其他方法):

\usepackage{etoolbox}% http://ctan.org/pkg/etoolbox
\makeatletter
\patchcmd{\tableofcontents}% <cmd>
  {\@starttoc}% <search>
  {\thispagestyle{empty}\@starttoc}
  {}{}% <success><failure>
\makeatother

考虑到所有这些因素,您可能会采取以下设置:

\documentclass[twoside,openright]{report}
\usepackage{fancyhdr,lipsum}% http://ctan.org/pkg/{fancyhdr,lipsum}
\usepackage{graphicx,lastpage}% http://ctan.org/pkg/{graphicx,lastpage}
\usepackage{etoolbox}% http://ctan.org/pkg/etoolbox
\fancypagestyle{plain}{
  \fancyhf{}% Clear header/footer
  \fancyhead[R]{\includegraphics[width=\linewidth,height=5pt]{example-image-a.pdf}}% Right header
  \fancyfoot[L]{Name Firstname - v1.0 \\  Date}% Left footer
  \fancyfoot[R]{\thepage\  / \pageref{LastPage}}% Right footer
}
\pagestyle{plain}
\makeatletter
\patchcmd{\tableofcontents}% <cmd>
  {\@starttoc}% <search>
  {\thispagestyle{empty}\@starttoc}
  {}{}% <success><failure>
\makeatother
\begin{document}
\tableofcontents
\chapter{A chapter}\lipsum[1-5]
\end{document}

当然,如果您没有标题,或者您的文档结构中有更多信息,那么这可能会改变(甚至改进)。

关于上述用法的一些参考资料:


其他需要考虑的事项:

  • \linewidth如果您希望标题图像跨越整个文本块的宽度(而不是),则使用8cm
  • 使用pageslts包裹它提供一个VeryLastPage标签,取决于您的报告末尾是否有未处理的浮点数。

相关内容