LaTeX でヘッダーやフッターに柱やページノンブルを配置する。

概要

一般的な書籍では、各ページの上部や下部に章題などが記載されることがよくあります。 このような、ページの外縁部に記される章題などを「柱(はしら)」といい、柱が置かれる領域をヘッダーやフッターと呼びます。 上部がヘッダー(header)で下部がフッター(footer)となります。 ヘッダーやフッターには、柱のほかにページ番号も記載されます。 日本の印刷業界では、ページ番号のことをノンブル(nombre フランス語で数のこと)ということが多いです。 これらについては次のような慣習があります。

この、「ページ内に複数存在する節見出しから最初のものを拾う」という動作は、 次のように TeX の「マーク」と呼ばれる機構を利用して実現されます。 TeX には、組版する文章の任意の場所に印刷されない文字列を埋め込む機能があり、 埋め込まれた文字列はマークと呼ばれます。 各ページに埋め込まれたマークは、ページが組み上げられる毎に呼び出されるページ出力ルーチン中で参照できるので、 例えば章見出しの場所で \mark{第1章 はじめに} のように指定してマークとして章題を埋め込んでおき、 ページ出力ルーチン中でその章題を読みだして柱に配置したりできるわけです。 ただし、ページに複数のマークがあっても、参照できるのはそのページ中で最初に埋め込まれたマークと 最後に埋め込まれたマークおよび前のページの最後のマークだけです。 それぞれ、\firstmark,\botmark,\topmark によって参照できます。 LaTeX では、マークとして \mark{{第1章 はじめに}{第1節 はじめにのはじめ}} のように 章と節の情報をそれぞれブレイスで括ったものをふたつまとめて一つのマークとして埋め込むようになっています。 この方法により、1系統だけだった TeX のマーク機能の上で2系統のマークを扱えるようにしています。 そうして、ページ出力ルーチンで章柱を記載するときは \botmark のふたつのブレイスのひとつ目を取り出し、 節柱を記載するときは \firstmark のふたつのブレイスのふたつ目を取り出すようになっています。 これらに関係するユーザーマクロは次の通りです。

\markboth{A}{B}
「{A}{B}」という文字列をマークとして埋め込む。 多くの文書クラスでは、章見出しのところで \markboth{章題}{} として実行される。
\markright{C}
それまでに埋め込まれた最新のマークが「{A}{B}」だとすると{A}を引き継いで「{A}{C}」というマークを埋め込む。 多くの文書クラスでは、節見出しのところで \markright{節題} として実行される。
\leftmark
ページに「{A1}{B1}」「{A2}{B2}」「{A3}{B3}」の三つのマークが順に埋め込まれると、 ページ出力ルーチン中で \leftmark が A3 に置き換えられる。 多くの文書クラスでは、偶数ページのヘッダー内で呼び出される。
\rightmark
ページに「{A1}{B1}」「{A2}{B2}」「{A3}{B3}」の三つのマークが順に埋め込まれると、 ページ出力ルーチン中で \rightmark が B1 に置き換えられる。 多くの文書クラスでは、奇数ページのヘッダー内で呼び出される。

これらのマクロの名称に含まれる left および right は、上に挙げた横書き書籍の慣習に固定化された用法と思われます。 慣習通りに見開き左ページに章柱、右ページに節柱を置くような横書き書籍を作るのであれば、 節柱の内容を埋め込むことは「右へ印をつけよ=mark right」として \markright ですし、 埋め込まれた節見出しは「右の印=right-mark」として \rightmark で参照されます。 (なお、右ページの柱に記載するのは小構造の見出しなので、 \rightmark 自体にページ内最初のマークから取り出すという動作も組み込まれています。) 「慣習通りの横書き書籍」でない場合には、 これらのマクロの名称と見開きページの左右との関係が直感的ではなくなりますので、注意が必要です。

ヘッダーとフッター

ヘッダーやフッターはマクロとして定義されたものが使われます。

\@oddhead
奇数ページのヘッダー
\@oddfoot
奇数ページのフッター
\@evenhead
偶数ページのヘッダー
\@evenfoot
偶数ページのフッター

プリアンブルで直接定義し直すこともできるし、\pagestyle 命令で間接的に定義することもできます。 (直接定義する際は、必要に応じて \makeatletter, \makeatother などを使用します。 → 「TeX入門/マクロの作成#コントロールシークエンス名に“@”を織り交ぜたもの」)

例えば、\pagestyle{empty} とするとヘッダーやフッターは4つともマクロとして {} と同じように定義し直されるので、 ヘッダーやフッターに何も表示されなくなります。 また、例えば、

\makeatletter
\def\@oddhead{\rightmark\hfil\thepage}
\makeatother

とすると、奇数ページのヘッダーの左端(横書きの場合ノド側)に節題が記載され、 右端にノンブルが記載されます(一般的な文書クラスを使っている場合)。 ヘッダーやフッターは版面幅一杯に組まれます。 その中の配置の調整には、いくらでも広がる空白として \hfil が使えます。 また、ノンブルを表す \thepage もよく使われます。これら以外の通常の文字列なども使えます。

定義例

\makeatletter
\def\@oddfoot{\hfil- \thepage\ -\hfil}% 奇数ページのフッターの中央にハイフンで挟んだノンブルを記載
\def\@evenhead{\thepage\qquad\leftmark\hfil}% 偶数ページのヘッダーに「ノンブル+クワタ2つ分の空白+章柱」の全体を左に寄せて記載
\makeatother

ヘッダー、フッター内でよく使われる命令

\thepage
ノンブル(ページ番号を出力)
\hfil
横にいくらでも広がる空白
\leftmark
ページに含まれる最後のマーク({A}{B})のひとつ目(A)
\rightmark
ページに含まれる最初のマーク({A}{B})のふたつ目(B)
\underline{文字列}
文字列に下線を引く

Last-modified: 2019-02-26 (火) 23:06:24 (147d)