我正在使用书籍类。我想在我的主要内容中的每一章的第一页中隐藏页面样式(页码、页眉、页脚),但是不是在\frontmatter
- 我希望在页脚(右上角)有罗马数字。
我可以使用以下方法抑制整个文档中每章第一页的页面样式:
\renewcommand\chapter{\if@openright\cleardoublepage\else\clearpage\fi
\thispagestyle{empty}% original style: plain
\global\@topnum\z@
\@afterindentfalse
\secdef\@chapter\@schapter}
\makeatother
但是这\pagestyle{empty}
也会在每个“章节”的第一页上强加一个,因此目录页没有编号。我希望目录页有编号,但我不知道该怎么做。
梅威瑟:
\documentclass[a4paper,11pt,titlepage,oneside,openany]{book}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage{kantlipsum}
% empty style for the first page of every chapter
\makeatletter
\renewcommand\chapter{\if@openright\cleardoublepage\else\clearpage\fi
\thispagestyle{empty}% original style: plain
\global\@topnum\z@
\@afterindentfalse
\secdef\@chapter\@schapter}
\makeatother
\usepackage{makeidx}
\usepackage[titles]{tocloft}
\usepackage{fancyhdr}
\fancyhead{} % clear default layout
\fancyfoot{} % clear default layout
\fancypagestyle{mainmatter}{%
\fancyhead[L]{\sffamily \small \color{darkgray}\MakeUppercase{\bfseries \leftmark}}
\fancyhead[R]{\nouppercase \scshape \small \thepage}
}
\fancypagestyle{frontmatter}{%
\fancyhead[L]{}
\fancyhead[R]{}
\fancyfoot[R]{\thepage}
}
\begin{document}
\frontmatter
\pagestyle{frontmatter}% frontmatter page style
\clearpage
\tableofcontents
\clearpage % with tocloft we need this
\listoffigures
\clearpage % with tocloft we need this
\listoftables
\clearpage
\mainmatter
\pagestyle{mainmatter}
\chapter{A}
\kant
\chapter{B}
\kant
\chapter{C}
\kant
\end{document}
答案1
memoir
\if@mainmatter
提供您可以用来判断您是否位于\mainmatter
文档的相应部分中的条件:
\documentclass[a4paper,11pt,titlepage,oneside,openany]{book}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage{kantlipsum}
% empty style for the first page of every chapter, except in \frontmatter
\makeatletter
\renewcommand\chapter{\if@openright\cleardoublepage\else\clearpage\fi
\if@mainmatter
\thispagestyle{empty}% plain page style in mainmatter
\else
\thispagestyle{plain}% empty page style outside of mainmatter
\fi%
\global\@topnum\z@
\@afterindentfalse
\secdef\@chapter\@schapter}
\makeatother
\usepackage{makeidx}
\usepackage[titles]{tocloft}
\usepackage{fancyhdr}
\fancyhead{} % clear default layout
\fancyfoot{} % clear default layout
\fancypagestyle{mainmatter}{%
\fancyhead[L]{\sffamily \small \color{darkgray}\MakeUppercase{\bfseries \leftmark}}
\fancyhead[R]{\nouppercase \scshape \small \thepage}
}
\fancypagestyle{frontmatter}{%
\fancyhead[L]{}
\fancyhead[R]{}
\fancyfoot[R]{\thepage}
}
\begin{document}
\frontmatter
\pagestyle{frontmatter}% frontmatter page style
\clearpage
\tableofcontents
\clearpage % with tocloft we need this
\listoffigures
\clearpage % with tocloft we need this
\listoftables
\clearpage
\mainmatter
\pagestyle{mainmatter}
\chapter{A}
\kant
\chapter{B}
\kant
\chapter{C}
\kant
\end{document}
虽然我分别在主内容和前言中使用empty
和plain
作为章节页面样式,但您可以将其更新为您想要的任何样式,甚至可以创建自己的新样式。
另请注意,memoir
提供了创建页眉/页脚的功能,因此您不需要fancyhdr
为了这。
答案2
这titlesec
软件包提供了\assignpagestyle{\chapter}{<style>}
命令,其用法与 类似\pagestyle
,但只更改每章的第一页。它与 的操作相同\thispagestyle{}
,但无需明确更新\chapter
。