首先fancyhdr
加载改变页码的字体。
以下命令用于将字体更改为sans serif
:
\fancyhead[LO]{ \sffamily \thepage }
\fancyhead[RE]{ \sffamily \thepage }
但在TOC、LOT、LOF和Chapter的第一页,字体依然是serif
。
此外,如何更改 TOC、LOT、LOF 中的页码字体(章节、部分、小节、图表和表格),包括前言的罗马/罗马数字样式?
是否有一个简单的命令可以更改整个文档(书籍,报告或文章)的字体?
梅威瑟:
\documentclass[12pt]{book}
\usepackage{kantlipsum}
\usepackage{libertine}
\usepackage[]{fancyhdr}
\pagestyle{fancy}
\fancyhf{} % remove everything
\fancyhead{} % clear all header fields
\makeatletter
\renewcommand{\sectionmark}[1]{\markright{\thesection~~~#1}}
\renewcommand{\chaptermark}[1]{\markboth{\if@mainmatter\chaptername\\
\thechapter~~~\fi#1}{}}
\makeatother
\newcommand{\vertline} {\smash{\rule[-.5ex]{1pt}{5in}}} % head line
\fancyhead[LO]{ \sffamily \thepage {} {} {} { \vertline {} {} \nouppercase \leftmark} }
\fancyhead[RE]{ \sffamily { { \nouppercase \rightmark {} {} \vertline {} {} {} }\thepage } } %
\renewcommand{\headrulewidth}{ 0.0 pt}
\newcommand{\myfig}{\begin{figure}\caption{A figure caption}\end{figure}}
\newcommand{\mytab}{\begin{table}\caption{A table caption}\end{table}}
\begin{document}
\tableofcontents
\listoffigures
\listoftables
\chapter{Coo1}
\kant[1]
\myfig\mytab\myfig\mytab\myfig\mytab
\section{Soo1}
\kant[2-5]
\section{Soo2}
\kant[6-9]
\chapter{Coo2}
\section{Soo3}
\kant[11-6]
\myfig\mytab\myfig\mytab\myfig\mytab
\section{Soo4}
\kant[22-25]
\end{document}
答案1
您可以使用\fancypagestyle
:
\usepackage{fancyhdr}
\pagestyle{fancy}
\fancyhf{} % remove everything
\fancyhead{} % clear all header fields
\makeatletter
\renewcommand{\sectionmark}[1]{\markright{\thesection\quad#1}}
\renewcommand{\chaptermark}[1]{\markboth{\if@mainmatter\chaptername\ \thechapter\quad\fi#1}{}}
\makeatother
\newcommand{\vertline}{\smash{\rule[-.5ex]{1pt}{5in}}} % head line
\fancyhead[LO]{\sffamily\thepage\quad\vertline\quad\nouppercase\leftmark}
\fancyhead[RE]{\sffamily\nouppercase\rightmark\quad\vertline\quad\thepage}
\renewcommand{\headrulewidth}{0pt}
\setlength{\headheight}{14.5pt}
\fancypagestyle{plain}{
\fancyhf{}
\renewcommand{\headrulewidth}{0pt}
\fancyfoot[C]{\sffamily\thepage}
}
最好使用已知长度,而不是用眼睛计算的间距,例如\quad
。不要忘记设置\headheight
为正确的值,如日志文件中所建议的那样fancyhdr
答案2
你“发现”了
在 TOC、LOT、LOF 和 Chapter 的第一页中,字体仍为衬线
尽管fancy
页面样式已更改为使用无衬线字体来显示页码。这是因为章节(以及章节类实体,如 ToC、LoT 和 LoF)的前几页使用的是plain
页面样式,而不是样式fancy
。
要修改plain
页面样式以便使用无衬线字体显示页码,您可以在文档的序言中包含以下代码:
\usepackage{etoolbox}
\makeatletter
\patchcmd{\ps@plain}{\thepage}{\sffamily\thepage}{}{}
\makeatother
\pagestyle{plain} % execute this command to load the new settings
或者,由于您已经在使用该fancyhdr
包,您可以按照@egreg 的回答进行操作,并使用该包的\fancypagestyle{plain}{...}
宏来修改plain
页面样式。
答案3
根据 egreg 在 2013 年 2 月 29 日的回复,我认为这更简洁地回答了这个问题:
\usepackage{fancyhdr} % this goes in the preamble
% the next lines go in the body (i.e., between \begin{document} and \end{document}
\pagestyle{fancy}
\renewcommand{\headrule}{} % eliminate the default(?) ruled line in the header
\fancypagestyle{plain}{
\fancyhead{}
\fancyfoot[C]{\sffamily\thepage}
}