如何调整整个文档的页码字体?

如何调整整个文档的页码字体?

首先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}
}

相关内容