fancyhdr.sty による特定のページへのヘッダー・フッター非表示指定

fancyhdr.sty による特定のページへのヘッダー・フッター非表示指定

- tandoo の投稿
返信数: 3
『日本語組版処理の要件』(http://www.w3.org/TR/jlreq/ja/)によりますと、「柱とノンブル」の節に柱やノンブルを表示しない・表示しなくてもよい条件がいくつか書いてあります。以下がその引用です。

柱を表示しないページ
・中扉及び半扉
・柱の配置領域が、図版などと重なったページ
・白ページ

柱を表示しなくてもよいページ
・柱の配置領域に隣接して図版、表などが配置されているページ
・改丁・改ページ等で始まる見出しが掲げられているページ

ノンブルを表示しないページ
・ノンブルの配置領域が、図版などと重なったページ
・白ページ

ノンブルを表示しなくてもよいページ
・中扉及び半扉
・横書きの書籍においてノンブルを横組にして天側の余白に配置した場合で,改丁・改ページなどで見出しが始まるページ(この場合、ノンブルを地の中央に移動して表示する方法もある)

この条件の中の「表示しなくてもよいページ」にしたがって組版を行いたいのですが、コードの書き方がわかりません。
ドキュメントクラスにはjsarticleを使用し、柱とノンブルの表示はfancyhdr.styに任せるつもりです。方針としては以下のようになるかと思います。

・\section のあるページにはヘッダーを表示しない
・図版(table環境やfigure環境の表示位置)が上部に来たときにはヘッダーを表示しない
・図版が下部に来たときにはフッターを表示しない
・白ページや扉にはヘッダーもフッターも表示しない

この中でも特に一番上の条件が実現できれば嬉しいのですが、どなたかご教授いただけないでしょうか。
よろしくお願いいたします。
tandoo への返信

Re: fancyhdr.sty による特定のページへのヘッダー・フッター非表示指定

- 匿 名 の投稿
fancyhdr.styのドキュメントに,ほとんど書いてあると思うのですが・・・.

なお,『日本語組版処理の要件』からの引用では「柱」と「ノンブル」となっているのに対して,「方針としては以下のようになるかと思います」では「ヘッダー」と「フッター」と書いてらっしゃるので,どのような体裁を指してらっしゃるのかが曖昧です.

とりわけ,

>・\section のあるページにはヘッダーを表示しない

というのがよく分かりません(“\chapter”の場合に“柱”を表示しない,なら分かりますが).

fancyhdr.styのドキュメントをお読みになり,book.cls, jbook.cls, jsbook.clsの\chapterの定義を見比べたりされれば,お望みの体裁をご自分で実現できるようになると思われます.
匿 名 への返信

Re: fancyhdr.sty による特定のページへのヘッダー・フッター非表示指定

- tandoo の投稿
早速のご回答ありがとうございます。

fancyhdrのドキュメントはもちろん読んだのですが、完全に見落としておりました。まさに実現したかった表示の方法が「15 Those blank pages」の章に載っていました。

\section の直前に
\clearpage{\thispagestyle{empty}\cleardoublepage}
と記述することで、(改丁直後の)\section のページにヘッダーを表示しないようにできました。同じように白ページや扉での表示抑制もできそうです。

また以下の2点については、
>・図版(table環境やfigure環境の表示位置)が上部に来たときにはヘッダーを表示しない
>・図版が下部に来たときにはフッターを表示しない
「14 Special page layout for float pages」に載っている内容から、
\iftopfloat , \ifbotfloat , \iffloatpage あたりを利用すればどうにかできるかもしれません。いろいろ試してみます。

てっきり自分でマクロを書かなければならないものと思い込んでおり、ドキュメントを熟読しておりませんでした…申し訳ありません。


また、「柱」と「ノンブル」を「ヘッダー」や「フッター」としたのは、ノンブルはヘッダーにもフッターにも配置されることがあるので、その混同を避けるためこのように表記しました。
確かに柱は常にヘッダーに表示されますが、ノンブルはそうとは限りませんので…

加えて、\chapter でなく \section であるのは、jsarticle を用いるためです。もちろん、章ごとに改ページ・改丁するほど長い文章を書くなら jsbook を使ったほうが良いとは思いますが、少々事情があったため jsarticle にしました。
ただ、book系clsの \chapter の定義を読むということは全く思いつきませんでした。ご指南ありがとうございます。読んでみたいと思います。
tandoo への返信

Re: fancyhdr.sty による特定のページへのヘッダー・フッター非表示指定

- tandoo の投稿
解決いたしました。

以下の内容を実現しています(最初に私が挙げた要望とは少し異なりますが、こちらの方がオーソドックスだと思いますので変更しました)。
・フッターにノンブル、ヘッダーに柱を表示
・\section のあるページは改丁し、ヘッダーを表示しない
・図版(table環境やfigure環境の表示位置)が上部に来たときにはヘッダーを表示しない
・白ページや扉にはヘッダーもフッターも表示しない


プリアンブルに以下の内容を記述し、\section の直前に \newsection を入れれば、そのページにはヘッダーが表示されません。jsarticle.clsを使用し、twosideにも対応しています。

\documentclass[a4j,10pt]{jsarticle}
\usepackage{fancyhdr}
\pagestyle{fancy}

\if@twoside
\fancyhead[RO]{\rightmark}
\fancyhead[LE]{\leftmark}
\fancyfoot[RO,LE]{\thepage}
\else
\rhead{\leftmark}
\rfoot{\thepage}
\fi

\newcommand\newsection{\cleardoublepage\thispagestyle{noheader}}

\fancypagestyle{noheader}{
\fancyhf{}
\if@twoside
 \fancyfoot[RO,LE]{\thepage}
\else
 \rfoot{\thepage}
\fi
}

\let\OldRightmark\rightmark
\renewcommand{\rightmark}{\iftopfloat{}{\OldRightmark}}
\let\Oldleftmark\leftmark
\renewcommand{\leftmark}{\iftopfloat{}{\Oldleftmark}}


何かわからないことがあればドキュメントやソースを読む、ということは常々心がけているのですが、今回はマクロを組まなければという意識が先走りしっかりドキュメントを読んでいませんでした。fancyhdrのドキュメントに必要なことのほとんどは書いてありました。

ご教授どうもありがとうございました。