結論
\fancypagestyle{plainhead}{}
\fancypagestyle{plainfoot}{}
ことはじめ
一般的に,LaTeX でヘッダ・フッタをカスタマイズしたいときには fancyhdr
パッケージを使う.章扉についても同様であり,公式ドキュメントでは
To customize even such pages you must redefine the plain page style.
(Texdoc 3.2.1 における fancyhdr.pdf の P.11 より引用)
とある.訳すと,「そのようなページ(章扉など)をカスタマイズしたい場合には,plain
スタイルを再定義しなければならない」ということだ.具体的には,
\fancypagestyle{plain}{
\fancyhead[L]{左のヘッダ}
\fancyfoot[C]{中央のフッタ}
}
とすれば,plain
スタイルが上書きされる.あるいは,
\fancypagestyle{plain}{}
とすれば,ドキュメント全体に適用されているページスタイルを踏襲することになる.すなわち,文書全体でヘッダ・フッタのスタイルを統一できる.
問題
LaTeX で日本語の文書を作る場合,奥村先生の jsclasses
を使わない人は殆どいないだろう.そこで,jsclasses
でも plain
スタイルを再定義すべく,上記コマンドを打ち込み,組版してみる.
すると,期待とは裏腹に,章扉のスタイルは全く変化しない.なぜだろうか?
原因
jsclasses
の公式ドキュメントを覗いてみよう.すると,
章の最初のページスタイルは,全体が empty でなければ plain にします。
(中略)
\plainifnotempty
と書かれている.さらにこの \plainifnotempty
を追ってみると
\def\plainifnotempty{%
\ifx \@oddhead \@empty
\ifx \@oddfoot \@empty
\else
\thispagestyle{plainfoot}%
\fi
\else
\thispagestyle{plainhead}%
\fi}
と定義されている.ここで \thispagestyle{plain****}
の部分に注目しよう.このページのスタイルは plainfoot
もしくは plainhead
になるというのである.すなわち,jsclasses
の章扉は,plain
スタイルではなく,plainfoot
もしくは plainhead
というスタイルになるのだ.
したがって,いくら plain
スタイルを再定義しても暖簾に腕押しなのである.
解決
原因がわかれば解決も簡単で,plainfoot
や plainhead
を再定義してやればよい.
\fancypagestyle{plainhead}{}
\fancypagestyle{plainfoot}{}
余談
\plainifnotempty
は jsclasses
独自のコマンドである.従来の \chapter
コマンドでは同コマンドの代わりに
\thispagestyle{plain}
を用いている.なぜ独自のコマンドが必要になったのかは公式ドキュメントに記載されている.
従来の標準クラスでは,文書全体のページスタイルを empty にしても表題のあるペー ジだけ plain になってしまうことがありました。これは \maketitle の定義中に \thispagestyle{plain} が入っているためです。この問題を解決するために,「全体の ページスタイルが empty でないならこのページのスタイルを plain にする」という次の命令を作ることにします。
(Texdoc 3.2.1 における jsclasses.pdf の P.42 より引用)