默认plain
页面样式会生成一个空的页眉和页脚(底部页码除外)。我试图修改页眉中的某些文本(因为这plain
是默认设置,所以这应该会影响所有页面)。
因此,我深入研究了这个fancyhdr
包。它文档(第 8 页,顶部)给出了重新定义页面样式的示例代码:
[...] fancyhdr 为您提供了一种更简单的方法 [使用命令重新定义纯文本页面样式]
\fancypagestyle
。此命令可用于重新定义现有页面样式(如纯文本)或定义新页面样式,例如 如果文档的一部分使用不同的页面样式该命令有两个参数:一个是要定义的页面样式的名称,第二个由更改页眉和/或页脚的命令组成,即 fancyhead 等。
\fancypagestyle{plain}{%
\fancyhf{} % clear all header and footer fields
\fancyfoot[C]{\textbf{\thepage}} % except the center
\renewcommand{\headrulewidth}{0pt}
\renewcommand{\footrulewidth}{0pt}}
我强调的是大胆的引用中的“ ” 正是我的目标。我希望在文档的某一部分(即特定范围的页面)的页眉中显示特定的单词。
但我就是无法让它工作 - 甚至他们给出的示例代码也不行。这是一个干净的示例代码(ShareLatex 的现场演示):
\documentclass[11pt,a4paper]{article}
\usepackage[utf8]{inputenc}
\usepackage{fancyhdr}
\usepackage{lipsum}
\fancypagestyle{plain}{%
\fancyhf{} % clear all header and footer fields
\fancyfoot[C]{\textbf{\thepage}} % except the center
\fancyhead[C]{test text} % added text in header
\renewcommand{\headrulewidth}{0pt}
\renewcommand{\footrulewidth}{0pt}}
\begin{document}
\lipsum
\lipsum
\lipsum
\end{document}
此代码块没有变化。我复制粘贴了文档代码示例,只添加了以下行:\fancyhead[C]{test text}
。无论有没有我添加的额外行,它都不起作用。没有变化。
我在文档中找不到我读错的地方。解释似乎很简单。有人能指出错误吗?
答案1
最后要做的事情之一article.cls
是发出
\pagestyle{plain}
这会将页面样式设置为当前的版本plain
。plain
因此,在序言中重新定义是不够的,你需要\pagestyle
再次调用
\fancypagestyle{plain}{%
% WHATEVER
}
\pagestyle{plain}
文档中没有提到这一点,fancyhdr
因为(我猜)该示例是关于重新定义splain
的\chapter
,无论如何它都会调用\thispagestyle{empty}
。
关于的警告\headheight
与此无关,但正如 Christian 在他的评论中指出的那样,你可以通过使用
\usepackage[headheight=14pt]{geometry}
答案2
作为一个附加组件,我提到fancyhdr
它并不是唯一一个用于(重新)定义页面样式的软件包。你还可以使用titleps
,它随 一起提供titlesec
,但可以独立加载,并且使用起来更简单(它隐藏了机制mark
)。如果你加载titlesec
,你只需设置选项[pagestyles]
。
具体如下:
\documentclass[11pt,a4paper]{article}
\usepackage[utf8]{inputenc}
\usepackage{titleps}
\usepackage{lipsum}
\renewpagestyle{plain}{%
\sethead{}{Test text}{}
\setfoot{}{\thepage}{}
}%
\pagestyle{plain}
\begin{document}
\lipsum
\lipsum
\lipsum
\end{document}