コメントします。
日本語の行長と行間とマージンとの関係は、以下のように図示できると思います。
[cid:image002.jpg@01DC32E0.0C7CF090]
日本語の場合には、領域内(ページを含む)の版面とマージンとの関係は、版面の行長が文字サイズの整数倍というグリッドに制約されているため、単純にマージンを決めれば、行長も決まるということにはなりません。
これが、日本語組版が全角のボディを基準としていることの特殊性であり、制約です。
そのため、字詰め方向のマージンの決定は、版面がとりうる段階的な行長に制約された範囲で決定する必要があります。
この場合でも、マージンの指定可能な値字体には元々、x, y両方向とも制約はありませんから、文字サイズの整数倍の行長をもつ版面に合わせたマージンの値を計算することで、その制約を満たすマージンを求めることができます。
行間には、そのような制約はありませんから、必要なら、あらかじめ設定されたマージンから、その領域が収容可能でしかも適切に組むことのできる、行数と行送り量を決めることは計算で可能です。ここには行長のときのような制約はありません。そのため版面の高さは連続的に可変です。
* ということで,さて,どうしましょう.1つは,箱組を第9章で取り上げて,
* “行送りの整数倍−行間1つ分”の計算の必要性
* または,指定されたアキに半端がでた場合,行送り方向の先頭及び末尾に均等に配布しろ,
* または,各行間に均等に割り振れ,
* または,複数の段落や図や表がある場合は,段落間,または図や表(回り込みにない場合)の前後の行間に均等に割り振れ,
* みたいなことを言うことはできる.
ページ内の定められた領域に、一定数の行数の行を詰め込むという場合には、上記のやり方が可能です。ただ、先頭行が見出しであるとか文字サイズが異なるような場合以外では、均等に行間の空き量を調整して指定されたマージンに収めるのが良いのではないでしょうか。
また、印刷物のページの場合には、行間の変化を避けることを優先する、また、オーファンやウィドウを避けることを優先する、場合には、行数を一定にするのではなく、それらの問題を避けるために、それが起こる前の行で次のページに改ページするか、(または、それが可能でありかつ望ましければ)その後の行で改ページする、という方法もとられると思います。
山本