![每页的页眉和页脚相同](https://linux22.com/image/266845/%E6%AF%8F%E9%A1%B5%E7%9A%84%E9%A1%B5%E7%9C%89%E5%92%8C%E9%A1%B5%E8%84%9A%E7%9B%B8%E5%90%8C.png)
我的页眉和页脚有问题。
如果我这么做:
\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
这应该将整个文档的页面样式设置为,包括\chapter
s 的第一页。
如果您希望某些章节具有不同的(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}
当然,如果您没有标题,或者您的文档结构中有更多信息,那么这可能会改变(甚至改进)。
关于上述用法的一些参考资料:
- 做什么
\makeatletter
和\makeatother
做什么? etoolbox
文档关于通过命令修补\patchcmd
(部分3.4 修补,第 11 页)
其他需要考虑的事项:
\linewidth
如果您希望标题图像跨越整个文本块的宽度(而不是),则使用8cm
。- 使用
pageslts
包裹它提供一个VeryLastPage
标签,取决于您的报告末尾是否有未处理的浮点数。