隐藏主内容中章节第一页的页码,但不隐藏前言中的页码

隐藏主内容中章节第一页的页码,但不隐藏前言中的页码

我正在使用书籍类。我想在我的主要内容中的每一章的第一页中隐藏页面样式(页码、页眉、页脚),但是不是\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}

虽然我分别在主内容和前言中使用emptyplain作为章节页面样式,但您可以将其更新为您想要的任何样式,甚至可以创建自己的新样式。

另请注意,memoir提供了创建页眉/页脚的功能,因此您不需要fancyhdr为了这。

答案2

titlesec软件包提供了\assignpagestyle{\chapter}{<style>}命令,其用法与 类似\pagestyle,但只更改每章的第一页。它与 的操作相同\thispagestyle{},但无需明确更新\chapter

相关内容