見出し画像

『数式組版』を組む技術:柱とノンブル

本稿において,“本書”とは木枝祐介著『数式組版』ラムダノート(2018)のことである.
>>> https://www.lambdanote.com/collections/mathtypo
また,本書はLuaLaTeXを用いて組まれた.したがって本稿ではLuaLaTeXの使用を前提としている.
本書が組まれた当時はTeX Live 2017が用いられたが,多くのコードはそれより後のTeX Live 2019まで共通して使用可能である.
本稿では,バージョンに強く依存する場合を除いて,各バージョンは明記されないことがある.

柱とノンブル

とは,一般に各ページに表われる現在の章や節を表示するのものの総称である.
また,ノンブルとは,各ページに表われる現在のページ数を表すものである.
それらは,一般に判型領域内に存在するが版面領域内には存在しない.
柱やノンブルは,ページの奇数と偶数との差を除いて判型領域内の版面領域の補領域の一定の基準位置に配置される.

判型領域上端から版面領域上端までの間の領域に置かれる領域をヘッダーとよび,判型領域下端から版面領域下端のまでの間の領域に置かれる領域をフッターとよぶ.

本書ではヘッダーおよびフッターの概要は次のようになっている.

▶ ヘッダー
  ▷ 奇数ページ:右に,当該ページの属する最終節番号およびそのタイトル,ノンブル
  ▷ 偶数ページ:左に,ノンブル,当該ページの属する章番号およびそのタイトル
  ▷ 章トビラページ:なし
  ▷ 白ページ:なし
▶ フッター
  ▷ 奇数ページ:なし
  ▷ 偶数ページ:なし
  ▷ 章トビラページ:ノンブル
  ▷ 白ページ:なし

◆書体の設定
柱およびノンブルに使用する欧文書体は次のものである.

▶ Gentium Basic

\def\number@typeface{%
  \fontspec[Scale=1.05,BoldFont=GentiumBasic-Bold]{GentiumBasic}}
\def\head@number@typeface{%
  \fontspec[Scale=1.19,BoldFont=GentiumBasic-Bold]{GentiumBasic}}

ここでは和欧文バランスの調整もおこなっている.
ノンブルは若干小さくするため,`Scale`によって調整したものを用意した.
なお,便宜上ボールドも設定している.

`latex.ltx`で定義されている`\leftmark`と`\rightmark`とを次のように変更する.
これで目的の章タイトル名および節タイトル名を取得する.

\def\leftmark{\expandafter\@leftmark\firstmark\@empty\@empty}
\def\rightmark{\expandafter\@rightmark\botmark\@empty\@empty}

◆柱およびノンブルの出力位置設定
◇通常ページ
通常用いる柱およびノンブルのため,`\ps@plain`という名で定義を行う.

\def\ps@plain{%
 \let\@oddfoot\@empty\let\@evenfoot\@empty
 \def\@evenhead{%
   \numbersize{\number@typeface\thepage}\hskip2em{\leftmark}\hfill}%
 \def\@oddhead{%
   \numbersize\hfill{\rightmark}\hskip2em{\number@typeface\thepage}}%
 \let\@mkboth\markboth
 \def\chaptermark##1{\markboth{%
     \ifnum \c@secnumdepth >\m@ne
       \if@mainmatter
         \@chapapp{\head@number@typeface\thechapter}\@chappos\hskip1em
       \fi
     \fi
     ##1}{}}%
 \def\sectionmark##1{\markright{%
     \ifnum \c@secnumdepth >\z@ 
       {\head@number@typeface\thesection}\hskip1em\fi
     ##1}}%
}

`\numbersize`はノンブルを表示する書体のフォントサイズの指定である.

def\numbersize{\@setfontsize\codesize{\@headersize}{\z@}}

この`\ps@plain`を通常適用するように,クラスファイルの最終盤で次のようにするわけである.

\pagestyle{plain}

章タイトルおよび節タイトルのフォントサイズは`\chaptermark`および`\sectionmark`の中で指定されていることに注意せよ.
結局,`\ps@plain`の定義で`\numbersize`はノンブルにのみ効果をおよぼしている.

◇章トビラページ
章トビラページは次のように定義する.

\def\ps@chapter{%
  \let\@mkboth\@gobbletwo
  \let\@oddhead\@empty
  \def\@oddfoot{%
    \reset@font\numbersize\hfil{\number@typeface\thepage}\hfil}%
  \let\@evenhead\@empty
  \let\@evenfoot\@oddfoot}

奇数ページ起しであるので`\@oddfoot`のみを出力させるのである.
この`\ps@chapter`を章トビラページで適用するには,次のように`\chapter`内で特別に適用されるようにする.

\newcommand{\chapter}{%
 ...
 \thispagestyle{chapter}
 ...
 }

いいなと思ったら応援しよう!