如何让 \frontmatter 到 \mainmatter 的所有页面的 pagestyle 为空

如何让 \frontmatter 到 \mainmatter 的所有页面的 pagestyle 为空

\frontmatter可能包括

  • 目录
  • 图片列表
  • 表格列表
  • 偏爱
  • 和其他部分

现在,我想设置页面样式页面范围从标签到\frontmatter标签\mainmatter清楚的。也就是说,所有 、 、\tableofcontents部分\listoffigures都不应包含页码、页眉、页脚。我不想用 逐一设置它们。所有的\listoftablespreference\thispagestyle\pagestyle页面应该\mainmatterpart想要

我想如果我能处理的话\frontmatter,我也可以应用该方法\mainmatter\backmatter

我对吗?

答案1

根据问题的修改版本,您(可能)想要:

\documentclass{book}                                                        
\usepackage{lipsum, fancyhdr}                                               

\begin{document}                                                            

\pagestyle{empty}                                                           
% pagestyle{plain}                                                          
\frontmatter                                                                

\lipsum[1]                                                                  

\mainmatter                                                                 
\pagestyle{fancy}                                                           

\chapter{1}                                                                 
\section{1}                                                                 
\lipsum                                                                     


\backmatter                                                                 
\pagestyle{empty}                                                           
%\pagestyle{plain}                                                          

\lipsum[1]                                                                  

\end{document} 

编辑:如果您想将这些更改包装到一个.sty文件中,您可以这样做:

\NeedsTeXFormat{LaTeX2e}[1994/06/01]                                        
\ProvidesPackage{myfile}                                                    
  [2012/05/02 v0.01 modifications to the *matter commands]                  


\RequirePackage{etoolbox}                                                   
\appto\frontmatter{\pagestyle{empty}}                                       
\appto\mainmatter{\pagestyle{fancy}}                                        
\appto\backmatter{\pagestyle{empty}}                                        


\endinput

命名此文件myfile.sty并将其加载到文档的前言中,使用通常的\usepackage{myfile}。请注意,此文件的名称是任意的,前三行以及最后一行并不是严格需要的。

然而,我并没有真正看到将这样的改变硬编码到命令中的优点\*matter,即使我同意将通用格式的改变放入.sty复杂文档的文件中通常会更好。

答案2

接下来将根据您的问题要求对文档进行更改。

\documentclass[twoside,openany]{book}
\usepackage{lipsum}
\usepackage{fancyhdr}

%%-define header and footer for main matter
\fancypagestyle{headings}{%
  \fancyhf{}   % Clear all headers and footers first
  %% Right headers on odd pages
  \fancyhead[RO,LE]{My right heading}%you can use \leftmark or right mark as per need.
  \fancyhead[LO,RE]{My left heading}%you can use \leftmark or right mark as per need.
  \fancyhead[C]{Center} 
  \fancyfoot[RO,LE]{\thepage}
  \fancyfoot[LO,RE]{Me}
  \renewcommand{\headrulewidth}{0pt}
  \renewcommand{\footrulewidth}{0pt}
}

%% -------define pagestyle {plain} to be {empty} (without using fancyhdr)
 \makeatletter
 \let\ps@plain\ps@empty
 \makeatother
%----------------------------------------------
\title{My title}
\author{Me}
%----------------------------------------------
\begin{document}
\maketitle
%----------------------------------------------
\pagestyle{empty} % declare all pages to have empty header and footer.
%----------------------------------------------
\frontmatter

\tableofcontents
\listoffigures
\listoftables

\cleardoublepage
%----------------------------------------------
\fancypagestyle{plain}{%
  %% Clear all headers and footers
  \fancyhf{}
  \fancyfoot[C]{\thepage}
  \renewcommand{\headrulewidth}{0pt}
  \renewcommand{\footrulewidth}{0pt}
}
%----------------------------------------------
\pagestyle{headings}

\mainmatter


\part{Hello World}
\clearpage
\chapter{Test one}
\lipsum[1-5]
\section{My section one}
\lipsum[1]
\part{Goodbye World}
\chapter{Test two}
\lipsum[1]
\section{My section two}
\lipsum[1]
%----------------------------------------------
\backmatter

%%---Redefine plain page style now using fancyhdr for a change
\fancypagestyle{plain}{%
  %% Clear all headers and footers
  \fancyhf{}
  \fancyfoot[C]{\thepage}
  \renewcommand{\headrulewidth}{0pt}
  \renewcommand{\footrulewidth}{0pt}
}
%  \makeatletter
%  \let\ps@plain\ps@empty
%  \makeatother
\pagestyle{empty}
%----------------------------------------------
\chapter{Test one}
\lipsum[1]
%----------------------------------------------
\end{document}

相关内容