Suprimindo a numeração de páginas na primeira página do capítulo no assunto principal, mas *não* no frontmatter

Suprimindo a numeração de páginas na primeira página do capítulo no assunto principal, mas *não* no frontmatter

Estou usando a classe do livro. Quero suprimir estilos de página (número de página, cabeçalho, rodapé) na primeira página de cada capítulo do meu assunto principal, masnãoin \frontmatter- onde quero ter números romanos no rodapé (canto direito).

Posso suprimir o estilo da página na primeira página de cada capítulo em todo o documento com:

\renewcommand\chapter{\if@openright\cleardoublepage\else\clearpage\fi
                \thispagestyle{empty}% original style: plain
                \global\@topnum\z@
                \@afterindentfalse
                \secdef\@chapter\@schapter}
\makeatother

mas isso \pagestyle{empty}também impõe um na primeira página de cada "capítulo" no frontmatter, para que as páginas do sumário não sejam numeradas. Quero que as páginas do sumário sejam numeradas, mas não sei como fazer isso.

MWE:

\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}

Responder1

memoirfornece a condição \if@mainmatterque você pode usar para condicionar se você está ou não na \mainmatterseção do seu documento:

\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}

Embora eu tenha usado emptye plaincomo estilos de página de capítulo no mainmatter e frontmatter respectivamente, você pode atualizá-los para o que quiser ou até mesmo criar seus próprios novos.

Observe também que memoirfornece funcionalidade para criar cabeçalhos/rodapés, então você não precisafancyhdrpor esta.

Responder2

Otitlesecpackage fornece o \assignpagestyle{\chapter}{<style>}comando, que pode ser usado da mesma forma \pagestyle, mas altera apenas a primeira página de cada capítulo. É o mesmo que você está fazendo \thispagestyle{}, mas sem renovar explicitamente \chapter.

informação relacionada