我想在每一页的页脚中获取“第 x 页,共 y 页”,我发现的方法是使用:
\usepackage{fancyhdr}
\usepackage{lastpage}
\pagestyle{fancy}
\cfoot{Page \thepage\ of \pageref{LastPage}}
这种方法可行,但会在每页顶部添加一条实线和一些页眉。如何获取“第 x 页,共 y 页”且没有任何页眉?
答案1
关于使用时的标题设置fancyhdr
:为了删除标题规则,您需要将其设置为0pt
使用
\renewcommand{\headrulewidth}{0pt}
虽然这是一个长度,它被用作命令在标题内。要清除整个标题,请使用
\fancyhead{}
清除所有内容(左,中,右,奇数页和偶数页)。
如果您想要平均页面(我假设您正在使用像或这样的\chapter
文档类),您可以使用手动设置该特定章节的页面样式book
report
\thispagestyle{fancy}
原因是\chapter
(和\chapter*
) 默认将页面样式设置为plain
(因为页面配置与其他页面不同,具有较大的开放“标题”)。下面是一个捕获上述内容的最小示例:
\documentclass{book}
\usepackage{lipsum}% http://ctan.org/pkg/lipsum
\usepackage{fancyhdr}% http://ctan.org/pkg/fancyhdr
\usepackage{lastpage}% http://ctan.org/pkg/lastpage
\pagestyle{fancy}% Set default page style to fancy
\renewcommand{\headrulewidth}{0pt}% Remove header rule
\fancyhead{}% Remove all header contents
\cfoot{Page \thepage\ of \pageref{LastPage}}% Page X of Y in the footer (centered)
\begin{document}
\chapter{A chapter}
\thispagestyle{fancy}% Revert 'plain' page style (from \chapter) to fancy
\lipsum[1-25]% dummy text
\end{document}
如果您希望页面样式fancy
不管(或者全球),因此想要避免fancy
每次都手动设置为\chapter
,您可以用以下plain
方式覆盖页面样式fancy
(或者完全创建一个新的plain
页面样式;这取决于您的使用情况/偏好):
\makeatletter
\let\ps@plain\ps@fancy% Let 'plain' be exactly the same as 'fancy'
\makeatother
添加以上内容后设置所有fancy
标题样式,或参阅部分7 重新定义plain
风格(第 7 页)fancyhdr
文档。请注意,lipsum
包裹没有必要;它只是用来创建虚拟文本,乱数风格。
答案2
我认为scrpage2
这是一个相当不错的软件包,可以做这些事情。下面创建您想要的内容,此外它还留下了很多选择。
\usepackage{scrpage2}
\pagestyle{scrheadings}
\clearscrheadfoot
\usepackage{lastpage} % enables \pageref{LastPage}
\ihead{}
\chead{}
\ohead{}
\ifoot{}
\cfoot{\pagemark of \pageref*{LastPage}}
\ofoot{}
\automark[subsection]{section}
例如,您可以使用然后例如轻松地将当前章节添加到页面顶部\ihead{\headmark}
。
答案3
我找到了一个有用的答案https://latex.org/forum/viewtopic.php?t=3436。
您可以使用\fancypagestyle{plain}{...}
重新定义普通风格,如fancyhdr 文档。
例如:
\fancypagestyle{plain}{%
\fancyhf{}% clear all header and footer fields
\renewcommand{\headrulewidth}{0pt}%
\fancyfoot[R]{Page \thepage \hspace{1pt} of \pageref{Lastpage}}
}