Titlesec は章の奇数ページと偶数ページの書式を無視します

Titlesec は章の奇数ページと偶数ページの書式を無視します

章が偶数ページに表示されるか奇数ページに表示されるかに応じて、章の外観をフォーマットしようとしています。 titlesec のドキュメントによると、オプション と で機能するはずですpage=evenpage=oddこれはセクションでは機能しますが、章では機能しません。 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} 

\chaptertitlesec コマンドの両方を に置き換えると\section動作します。

それに何か理由があるのでしょうか?\titleformat奇数ページと偶数ページで異なるコマンドを使用するにはどうすればいいでしょうか?

答え1

デフォルトでは、 はtitlesec章のタイトルをタイプセットするための標準的な方法にあまり従いません。つまり、 に依存し続けます\@makechapterhead

タイトル クラスを再宣言する必要があります。

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

ここに画像の説明を入力してください

答え2

pageはい、オプションは には適用されないようです\chapter

次のように宣言することでこれを回避できます:

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

\ifthenelseパッケージの助けを借りてifthen

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} 

出力 (少なくとも 2 回のコンパイルが必要です)

ここに画像の説明を入力してください

関連情報