Titlesec ignora el formato de página par e impar de los capítulos

Titlesec ignora el formato de página par e impar de los capítulos

Estoy intentando formatear la apariencia de los capítulos dependiendo si aparecen en página par o impar. Según la documentación de titlesec debería funcionar con la opción page=eveny page=odd. Esto funciona para secciones pero no para capítulos. Aquí hay un MWE:

\documentclass[11pt,twoside]{report}
\usepackage[a4paper]{geometry}
\geometry{a4paper, top=22mm, left=45mm, right=25mm, bottom=30mm}
\usepackage{lipsum}
\usepackage[rigidchapters,explicit]{titlesec}
\titleformat{name=\section,page=odd}{}{ODD:}{.5em}{}
\titleformat{name=\section,page=even}{}{EVEN:}{.5em}{}
\begin{document}
\chapter{ChapterA}
\section{Section a} \lipsum[1-2]
\section{Section b} \lipsum[1-2]
\section{Section c} \lipsum[1-2]
\chapter{ChapterB}
\section{Section a} \lipsum[1-2]
\section{Section b} \lipsum[1-2]
\section{Section c} \lipsum[1-2]
\chapter{ChapterC}
\section{Section a} \lipsum[1-2]
\section{Section b} \lipsum[1-2]
\section{Section c} \lipsum[1-2]
\end{document} 

Si reemplaza ambos \chapteren el comando titlesec, \sectionfunciona.

¿Hay alguna razón para eso? ¿Cómo puedo usar un \titleformatcomando diferente para páginas pares e impares?

Respuesta1

De forma predeterminada, titlesecno actúa mucho sobre la forma estándar para componer títulos de capítulos, es decir, todavía depende de \@makechapterhead.

Tienes que volver a declarar la clase de título:

\documentclass[11pt,twoside]{report}
\usepackage[a4paper]{geometry}
\geometry{a4paper, top=22mm, left=45mm, right=25mm, bottom=30mm}

\usepackage[rigidchapters]{titlesec}
\usepackage{lipsum}

\titleclass{\chapter}{top}
\titleformat{name=\chapter,page=odd}{}{ODD:}{.5em}{}
\titleformat{name=\chapter,page=even}{}{EVEN:}{.5em}{}

\begin{document}

\chapter{ChapterA}
\section{Section a} \lipsum[1-2]

\chapter{ChapterB}
\section{Section a} \lipsum[1-2]

\end{document}

ingrese la descripción de la imagen aquí

Respuesta2

Sí, parece que la pageopción no tiene efecto para \chapter.

Puedes solucionar esto declarando algo como:

\titleformat{name=\chapter}{\Huge}{\ifthenelse{\isodd{\thepage}}{ODD:}{EVEN:}}{.5em}{}

con la ayuda \ifthenelsedel ifthenpaquete.

MWE:

\documentclass[11pt,twoside]{report}
\usepackage[a4paper]{geometry}
\geometry{a4paper, top=22mm, left=45mm, right=25mm, bottom=30mm}
\usepackage{lipsum}
\usepackage[rigidchapters,explicit]{titlesec}
\usepackage{ifthen}
\titleformat{name=\section,page=odd}{}{ODD:}{.5em}{}
\titleformat{name=\section,page=even}{}{EVEN:}{.5em}{}
\titleformat{name=\chapter}{\Huge}{\ifthenelse{\isodd{\thepage}}{ODD:}{EVEN:}}{.5em}{}

\begin{document}
\chapter{ChapterA}
\section{Section A} \lipsum[1-2]
\chapter{ChapterB}
\section{Section B} \lipsum[1-2]
\chapter{ChapterC}
\section{Section C} \lipsum[1-2]
\end{document} 

Salida (¡necesita dos compilaciones, al menos!)

ingrese la descripción de la imagen aquí

información relacionada