自动切换回默认纯色页面样式

自动切换回默认纯色页面样式

我尝试使用报告文档类编写文档。我曾经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}显示边距)

A

使用\setlength{\topmargin}{1.0cm}

b

标题

该课程report提供三种风格emptyplainheadings

plain在本章的第一页使用,并且也作为其他页面的默认样式如果headings没有被调用。

\pagestyle{headings}在前言部分使用 来调用后者。否则,该plain样式将应用于后续页面。

章节第一页没有页眉是一种印刷惯例对于书籍。我在报告的每一页上使用带有机构徽标和地址的页眉。

X

使用 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}

相关内容