jlreqをアップデートした.ページスタイルで「二番目の柱」を指定できるようにしたという,あまり使われることがなさそうな拡張.ページスタイルを定義する\DeclarePageStyle
もほぼ一から書き直した.もともと読みにくいと思っていたので書き直したかったのだが,書き直してもあまり変わってねーな…….
で,この\DeclarePageStyle
に関して質問があがっていた.この命令自身が少しわかりにくいのかもしれないのでもう少し詳しく書いてみる.以下では,新しくページスタイルを定義する版である\NewPageStyle
を使う.
\NewPageStyle
はLaTeXでのページスタイル(\pagestyle
の引数に入るもの)を定義する.つまり,次のように使うことができる.
\NewPageStyle{mystyle}{<設定>}% ページスタイル「mystyle」を定義
\pagestyle{mystyle}% それを適用.
<設定>
はkeyval型式で行われる.
柱とノンブル
LaTeXのページスタイルは,ヘッダとフッタを出力する.jlreqでは,ここに「柱」と「ノンブル」を出力する.各々の意味はJLReqの用語集にある通り.柱がそのときの見出し(\section
の中身など)で,ノンブルがページ数である.\DeclarePageStyle
では,柱とノンブルの中身と,出力する場所を規定する.
場所
縦書きと横書き
ページスタイルには縦組と横組がある.縦組はJLReq 図2.48の(e)のような配置である.ドキュメント自身が縦組であるかとは基本的に無縁である*1.デフォルトは横組であり,縦組を指定する時はtate
を指定する.
\NewPageStyle{mystyle}{tate,...}
より詳細な場所指定は,nombre_position
とrunning_head_position
で指定をする.指定方法は縦組か横組かで大きく異なる.
場所指定:横組の場合
横組の場合,指定できる場所は次の2×3=6通りである.
- 本文の上(top)か下(bottom)かで2通り.
- 左(left),中央(center),右(right)で3通り.
例えばノンブルを本文上の左側に出力する場合はnombre_position=top-left
とする.top
とleft
を逆にしてnombre_position=left-top
でもよい.ノンブルを左上,柱を左下におく場合は次のようになる.
\NewPageStyle{mystyle}{nombre_position=top-left,running_head_position=bottom-left}
なお,ドキュメントクラスへのオプションとしてtwoside
が指定されている場合,偶数ページの柱とノンブルの位置はここで指定した場所の左右が反転した位置になる.
場所指定:縦組の場合
縦組の場合,柱とノンブルの上下位置を指定することになる.原則として,柱は上の方,ノンブルは下の方に配置される(JLReq 2.6.1.d).従って,柱が本文上端からどの程度下がっているか,ノンブルが本文下端からどの程度上がっているかを指定する.
横組同様nombre_position
とrunning_head_position
で指定をする.ただし指定方法は大きく異なり,nombre_position
はノンブル下端と本文下端との距離,running_head_position
には柱上端と本文上端との距離を,TeXが認識できる寸法で指定する.例えば柱は本文上端に合わせて出力し,ノンブルは本文下端から5文字分上げて出力する*2場合は次のようになる.
\NewPageStyle{mystyle}{tate,nombre_position=5\zw,running_head_position=0pt}
ノンブルの中身
ノンブルをどのような型式で出力するかは,nombre
で指定できる.ページ数はpage
カウンタ(LaTeXの意味でのカウンタ)に入っているので,これを参照することになるだろう.デフォルトはnombre=\thepage
である.例えばこれを(\thepage
を再定義することなく*3)小文字ローマ数字で出力することにするならば,
\NewPageStyle{mystyle}{nombre={\roman{page}}
とする.更に括弧でくくりたければ
\NewPageStyle{mystyle}{nombre={(\roman{page})}}
のようにすればよい.ちなみにページ数と全く関係ない値を指定することもできて,例えば
\NewPageStyle{mystyle}{nombre={のんぶる!}}
とするとノンブルの位置に常に「のんぶる!」と出力される.
柱の中身
柱の中身はodd_running_head
およびeven_running_head
で指定する.それぞれ,奇数ページおよび偶数ページの柱を指定する.ただしeven_running_head
はドキュメントクラスへのオプションとしてtwoside
が与えられているときのみ有効で,そうでない時は常にodd_running_head
が参照される.どちらも同様であるので,以下はodd_running_head
のみ解説する.
固定されたものを出力するならば,そのまま指定すればよい.例えば
\NewPageStyle{mystyle}{odd_running_head={はしら!}}
とすると常に「はしら!」と出る.なお,実装の都合上ここで指定される値は頑強である必要がある.ただ,実際にはこういう使い方ではなく,以下で説明する見出しの中身を出力することが多いと思うが.
柱に見出しの中身を出力する
例えば
\section{はじめに}
とした時に,「はじめに」と柱に出てほしい,ということである.このときは
odd_running_head=_section
と_<見出し命令名>
と指定する*4.指定できる見出しは,標準で定義されている\part
,\chapter
,\section
,\subsection
,\subsubsection
,\paragraph
,\subparagraph
,\subsubparagraph
の他,\NewBlockHeading
などで独自に定義した命令も可能である.
\NewBlockHeading{myheading}{0}{...}% 新しい見出し命令「\myheading」を定義
\NewPageStyle{odd_running_head=_myheading}% \myheadingの引数を柱に出す
柱出力のカスタマイズ
見出しの中身をどのような形で出力するかは,mark_format
で指定する.各見出し命令ごとに設定をすることができる.例えば\section{はじめに}
に対して「(はじめに)」と括弧でくくって出てほしければ
mark_format={_section={(#1)}}
とする*5.#1
が\section
の引数に変わる.更に節番号も出力したければ,
mark_format={_section={(\thesection\quad #1)}}
とsection
カウンタを使えば良い.例えば
\NewPageStyle{mystyle}{
odd_running_head=_subsection,
even_running_head=_section,
mark_format={_section={(節\thesection: #1)},_subsection={[#1]}}
}
\pagestyle{mystyle}
\section{はじめに}
\subsection{これまでの研究}
とすると,偶数ページの柱に「(節1: はじめに)」と出て,奇数ページの柱に「[これまでの研究]」と出る.なお,mark_format
のkeyにはodd
とeven
も指定でき*6,それぞれ奇数ページと偶数ページの柱内容の指定になる.例えば上記の指定は次と等価である.
\NewPageStyle{mystyle}{
odd_running_head=_subsection,
even_running_head=_section,
mark_format={even={(節\thesection: #1)},odd={[#1]}}
}
なお,2018-08-08版では以下のよう改行を挟むと指定が効かないようである.これはバグであり,近いうちに修正される.(2018-08-15で修正済み.)
\NewPageStyle{mystyle}{
odd_running_head=_subsection,
even_running_head=_section,
mark_format={
_section={(節\thesection: #1)},
_subsection={[#1]}
}
}
その他
次の指定ができる.
font={\small\bfseries}
とすると,柱およびノンブルがやや小さい文字で太字で出力される.gap
は「横組」「ノンブルと柱が同じ場所に指定されている」時にのみ有効な値である.この場合ノンブルと柱が並んで出力されるが,この間の距離を指定する.例えばgap=1\zw
とすると間に全角一文字分の空きができる.
二つ目の柱とノンブル
柱とノンブルは二つ指定することができる.指定方法は一つ目と全く同じで,nombre_ii
,nombre_ii_position
,odd_running_head_ii
,even_running_head_ii
,odd_running_head_ii_position
,odd_running_head_ii
even_running_head_ii_position
を使って指定する.mark_format
も同様に参照されるが,odd
キーとeven
キーは(現在のところ)参照されない.ちなみに更に_iii
も指定できたりする.
\ModifyHeading
既存のページスタイルからの改変を行うには\ModifyHeading
が便利である.例えば
\ModifyHeading{mystyle}{odd_running_head=_paragraph}
とするとmystyle
スタイルの奇数ページ柱が\paragraph
の中身となる.なお,
\NewHeading{mystyle}{mark_format={_section={節\thesection: #1},_subsection={(#1)}}}
\ModifyHeading{mystyle}{mark_format={_section={(#1)}}}
とすると\subsection
に対する柱中身の指定が失われることに注意.(mark_format
全体の指定を上書きしてしまうため.)また,\ModifyHeading
で更新したページスタイルは,改めて\pagestyle
で指定し直すことで初めて有効になる.
\pagestyle{mystyle}
\ModifyHeading{mystyle}{...}% ページスタイル「mystyle」を改変.ただし,この段階では古いmystyleがまだ有効である.
\pagestyle{mystyle}% これで初めて\ModifyHeadingによる改変が有効になる
0 件のコメント:
コメントを投稿
コメントの追加にはサードパーティーCookieの許可が必要です