我尝试使用报告文档类编写文档。我曾经fancypagestyle
重新定义纯页面样式以使用自定义页眉和页脚。
\chapter
现在我尝试使用、\section
和填充文档内容\subsection
。我看到的和我没有预料到的效果是,当我有足够的文本时,以 开头的页面会溢出\chapter
到下一页,页面样式会更改为没有页眉和页脚的样式。对我来说,似乎plain
又使用了原始页面样式(我可以在页面底部看到页码)。
我可以解决这个问题,通过\thispagestyle{plain}
在\section
或之后添加\subsection
。
是否有某种机制可以切换到不同的页面样式?还有什么可以导致页面样式发生这种变化?
编辑:这是一份非常简化的文档,显示了问题。第一页使用的是plain
页面样式,但在第二页和后续页面上,似乎使用了其他页面样式(我认为那可能是旧plain
样式)。
\documentclass[a4paper]{report}
\usepackage{titling}
\title{Test}
\author{Me}
\date{\today}
\let\documenttitle\thetitle
\usepackage[T1]{fontenc}
\usepackage{fontspec}
\usepackage{titlesec}
\usepackage{fancyhdr}
\usepackage{blindtext}
\setlength{\voffset}{-2.540cm}
\setlength{\hoffset}{-2.540cm}
\setlength{\topmargin}{2.0cm}
\setlength{\headsep}{1cm}
\setlength{\headheight}{0.5cm}
\setlength{\oddsidemargin}{2.5cm}
\setlength{\footskip}{2.9cm}
\setlength{\textheight}{23.5cm}
\setlength{\textwidth}{16.0cm}
\setlength{\marginparwidth}{0cm}
\setlength{\marginparpush}{0cm}
\setlength{\marginparsep}{0cm}
\fancypagestyle{plain}{%
\fancyhf{}%
\rhead{\fontsize{8.5pt}{11.5pt}\fontseries{m}\selectfont\thepage/X}%
\lhead{\fontsize{8.5pt}{11.5pt}\fontseries{m}\selectfont\MakeUppercase{%
\documenttitle%
}}%
}
\begin{document}
\blinddocument
\end{document}
这是我用来生成 pdf 文件的命令行:
% xelatex --shell-escape rep.tex && open rep.pdf
答案1
我认为有两个误解导致了你的困惑。
为什么有多个页面时页面样式会改变?
一个常见的印刷惯例是在章节开始的页面上不使用页眉。这样一来,章节标题就成为页面上的第一件事,而无需在其顶部加上页眉(页眉通常只包含章节标题)。
为了适应这种情况,LaTeX 有一个命令\thispagestyle
可以改变页面样式仅适用于此页面,即在下一页之前它将重置为默认值(而不是\pagestyle
全局更改页面样式)。默认情况下,当您使用时\chapter
,代码中的某个地方会有一个\thispagestyle{plain}
将章节开始的页面的页面样式设置为plain
。
默认情况下,plain
样式会在页脚中显示页码,而不会在页眉中显示任何内容(这也是整个文档的默认页面样式)。您使用 更改了该样式,fancyhdr
这就是您在章节标题页上看到自定义样式的原因。
那么,为什么我的页面样式在文档的其余部分不起作用?我更改了默认设置,不是吗?
这是第二个误解。它\pagestyle{plain}
实际上并没有告诉 LaTeX“从现在开始使用页面样式plain
”。相反,它说“从现在开始,将页码放在页脚中,而页眉中什么也不放”。也就是说,它根据设置样式plain
,这些设置的来源事实plain
会立即被遗忘。
因此,即使您之前使用 激活了页面样式,更改页面样式的定义也不会在您的文档中生效。只有再次激活它时才会生效。在您的示例中,这是通过(使用)\pagestyle
对第一页进行的,但对其他任何页面均无效。这就是为什么默认定义对这些页面仍然有效的原因。\chapter
\thispagestyle{plain}
这一切意味着,为了得到你期望的结果,你只需要说
\pagestyle{plain}
定义后\fancypagestyle
。这将激活您刚刚定义的设置,并使其成为文档默认设置。
答案2
第一个问题:页眉和页脚在下一页上消失。
页脚已经存在,只是从页面上掉了下来。可以通过将顶部边距从 2cm 更改为 1cm 来纠正:\setlength{\topmargin}{1.0cm}
(用于\usepackage{showframe}
显示边距)
前
使用\setlength{\topmargin}{1.0cm}
标题
该课程report
提供三种风格empty
,plain
和headings
。
plain
在本章的第一页使用,并且也作为其他页面的默认样式如果headings
没有被调用。
\pagestyle{headings}
在前言部分使用 来调用后者。否则,该plain
样式将应用于后续页面。
章节第一页没有页眉是一种印刷惯例对于书籍。我在报告的每一页上使用带有机构徽标和地址的页眉。
使用 fancyhdr
你定义\fancypagestyle{plain}
在章节的第一页使用,那么你需要(A)定义\fancypagestyle{fancy}
替换默认样式headings
并(二)fancy
调用样式\pagestyle{fancy}
(或用来\pagestyle{plain}
重现章节第一页的样式)。
这是最终的代码。
% !TeX TS-program = xelatex
\documentclass[a4paper]{report}
\usepackage{titling}
\title{Test}
\author{Me}
\date{\today}
\let\documenttitle\thetitle
\usepackage[T1]{fontenc}
\usepackage{titlesec}
\usepackage{fancyhdr}
\usepackage{blindtext}
\setlength{\voffset}{-2.540cm}
\setlength{\hoffset}{-2.540cm}
\setlength{\topmargin}{1.0cm}% changed <<<<<<<<<<<<<<<<<
\setlength{\headsep}{1cm}
\setlength{\headheight}{0.5cm}
\setlength{\oddsidemargin}{2.5cm}
\setlength{\footskip}{2.9cm}
\setlength{\textheight}{23.5cm}
\setlength{\textwidth}{16.0cm}
\setlength{\marginparwidth}{0cm}
\setlength{\marginparpush}{0cm}
\setlength{\marginparsep}{0cm}
\fancypagestyle{plain}{%
\fancyhf{}%
\rhead{\fontsize{8.5pt}{11.5pt}\fontseries{m}\selectfont\thepage/X}%
\lhead{\fontsize{8.5pt}{11.5pt}\fontseries{m}\selectfont\MakeUppercase{%
\documenttitle%
}}%
}
\fancypagestyle{fancy}{% added <<<<<<<<<<
\fancyhf{}%
\rhead{\fontsize{8.5pt}{11.5pt}\fontseries{m}\selectfont\thepage/X}%
\lhead{\fontsize{8.5pt}{11.5pt}\fontseries{m}\selectfont\MakeUppercase{%
\documenttitle~~\rightmark% % changed <<<<<<<<<<<<<<<<
}}%
}
\pagestyle{fancy}% added <<<<<<<<<<
\begin{document}
\blinddocument
\end{document}