2013-03-17

[platex] 本文を overfull ではなく underfull させる

pLaTex を使って日本語・英語論文を書くときに、紙面を突き破る overfull ではなく、文字間を広げて誤魔化す underfull にして穏便に済ませるには TeX に対して以下のパラメータを設定します。

ハイフネーション (ハイフンで区切って次行に送る) を使わないで undefull を強制するには、

\pretolerance=10000
\emergencystretch=.9\hsize

ハイフネーションを許可するなら tolerance を緩和し pretolerance を設定せずデフォルト値を使ってみては?

\tolerance=10000
\emergencystretch=.9\hsize

もしくは tolerance に加えて hfuzz, vfuzz を緩和することも追加する動作をする sloppy で良いようです。

\sloppy
\emergencystretch=.9\hsize

行送り処理は三段階あって、ハイフネーションを許可しない pretolerance、ハイフネーションを許可する tolerance、文字間を広げて誤魔化す emergencystretch です。前二段階は試行錯誤の結果 Badness を設定した閾値以下に収めることができたときは成功とし残りの処理を行いません。

コンパイル時の警告の内、Badness が大きいものは個別に対処したほうがよいかもしれません。

参考
TeX/pretolerance
GNU Texinfo 5.1: Overfull hboxes
TeX Frequently Asked Questions -- question label "overfull"