otfパッケージのぶら下げ組をちょっと改良する
緒言
本稿は、otfパッケージによるぶら下げ組を改良するための方法を記すものである。
本論
otfパッケージにはburasageオプションがあり、これを利用するとぶら下げ組ができる。
\usepackage[burasage]{otf}
しかし、このぶら下げ組にはひとつ問題がある。句読点が行末に来たとき、必ずぶら下げ処理がおこなわれてしまうのである1。
むろん、これはこれでひとつの立派な組版方針である。だが、行長が短いときに強制的にぶら下げ処理がおこなわれてしまうと、字間が開いてしまい、間延びした印象の組みかたになってしまう。よって、われわれとしては、ぶら下げ処理を少し抑制するように修正してみたい。これは、商業出版の本によく見られる組みかたでもある。
そこで、プリアンブルなどに以下のように記述し、\。
と\、
というマクロを作る。
\if@burasage
\def\、{%
\@ifnextchar\par{、}{、\hbox{}}%
}%
\def\。{%
\@ifnextchar\par{。}{。\hbox{}}%
}%
\else
\def\、{\nobreak\makebox[1zw][l]{、}}%
\def\。{\nobreak\makebox[1zw][l]{。}}%
\fi
あとは、文章中の句読点すべてを\。
および\、
で置き換えればよい。すると、burasageオプション時には適度にぶら下げが抑制された組みかたとなる。また、burasageオプションを外したときには、追い出し組となる。
細かい調整
ただし、このままでは句読点と括弧類とが並んだとき、空きが広くなりすぎてしまう。たとえば、\。「
のように、句読点の直後に始め括弧が来た場合、\。\<「
とする(つまり\<
を追加する)ことが必要となる。
句点と鉤括弧の場合だけ考えると、結局、以下のような置換が必要である。
\。「
→\。\<「
\。」
→。」
」\。
→」\<\。
このような置換を、すべての括弧類と句読点との組み合わせを考えて、おこなえばよい。置換作業は手作業だと面倒きわまりないので、PythonなりRubyなりで置換スクリプトを組んで置換するのがよいであろう。
結言
LaTeXのデフォルトは追い込み組であるが、これは商業出版にはあまり見られない。そこで上のような設定をし、ぶら下げ組にするか、追い出し組にするとよいのである。そうすれば、いっそう商業出版に近い組みかたが実現でき、嬉しい気分に浸れることであろう。
-
ただし段落末尾はそのかぎりではない。 ↩︎