Estoy usando la clase de libro. Quiero suprimir los estilos de página (número de página, encabezado, pie de página) en la primera página de cada capítulo de mi tema principal, peronoen \frontmatter
: donde quiero tener números romanos en el pie de página (esquina derecha).
Puedo suprimir el estilo de página en la primera página de cada capítulo en todo el documento con:
\renewcommand\chapter{\if@openright\cleardoublepage\else\clearpage\fi
\thispagestyle{empty}% original style: plain
\global\@topnum\z@
\@afterindentfalse
\secdef\@chapter\@schapter}
\makeatother
pero esto también impone un \pagestyle{empty}
en la primera página de cada "capítulo" del texto inicial, de modo que las páginas del TOC no estén numeradas. Quiero que las páginas TOC estén numeradas, pero no sé cómo hacerlo.
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}
Respuesta1
memoir
proporciona la condición \if@mainmatter
que puede utilizar para condicionar si se encuentra o no en la \mainmatter
sección de su 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}
Si bien he usado empty
y plain
como estilos de página de capítulo en mainmatter y frontmatter respectivamente, puedes actualizar esto a lo que quieras, o incluso crear otros nuevos.
También tenga en cuenta que memoir
proporciona funcionalidad para crear encabezados/pies de página, por lo que no necesitafancyhdr
para esto.
Respuesta2
Eltitlesec
El paquete proporciona el \assignpagestyle{\chapter}{<style>}
comando, que se puede usar igual \pagestyle
pero cambia solo la primera página de cada capítulo. Es lo mismo que estás haciendo con \thispagestyle{}
, pero sin renovar explícitamente \chapter
.