二段組のベースラインが揃わない。

二段組のベースラインが揃わない。

- アオヌマ ジュン の投稿
返信数: 9
本文を二段組で設定した場合、section等の見出しが入ったとき、左右の段組のベースラインが揃わないことがあります。
私が調べた限りにおいてはそれを制御するコマンドが見当たりません。
組版上、左右のベースラインが揃わないのは好ましくないのですが、何かしらの解決策はあるのでしょうか。ファイルを添付いたしました。ご教示頂ければと思っています。
アオヌマ ジュン への返信

Re: 二段組のベースラインが揃わない。

- 北見 けん の投稿
http://abenori.blogspot.com/2017/12/gyodori.html
を読むと、jlreq.cls では見出しが一行の整数倍になるようなことが書いてあります。
これなら2段組みでも揃いそうですね。
行どり用のマクロについても書いてあるので、クラスファイルが変えられない場合は
そちらで対応できそうです。
北見 けん への返信

Re: 二段組のベースラインが揃わない。

- 和田 勇 の投稿
  • section の占める高さを通常行の整数倍に

    • 同じく整数倍になるよう vspace で調整しようと画策していましたが...
    • 挫折中寄り道として動きを知るために
      • jarticle の section を固定値で再定義を試みた所
      • 数値の根拠はありませんが、たまたまなんとなく要望に添いそうな値が得られました
        • ただし最後のページの最終行が合わなくなってしまった :-<
  • 制限事項

    • subsection など利用するものは再定義が必要
    • 文中に部分的に大きな文字を出したり、raise で持ち上げたりしない
    • 通常行の高さ以上の箱関連コマンドを使用しない
    • ...
  • たまたま見た目がいい感じになった時の差分

--- nidangumi.tex.orig  2020-07-14 21:54:49.728448154 +0900
+++ nidangumi.tex   2020-07-14 22:49:03.960611381 +0900
@@ -2,6 +2,32 @@
 \usepackage{calc}
 \usepackage[balance]{nidanfloat}
 \usepackage[hmargin=1.8cm,vmargin=1.6cm]{geometry}
+%%http://www.math.kobe-u.ac.jp/HOME/saji/math/tex.html
+%%\makeatletter
+%%\renewcommand{\section}{%
+%%  \@startsection{section}%
+%%   {1}%
+%%   {\z@}%
+%%   {-3.5ex \@plus -1ex \@minus -.2ex}%
+%%   {2.3ex \@plus.2ex}%
+%%   {\normalfont\normalsize\bfseries}%
+%%}%
+%%\makeatother
+%% https://qiita.com/izumin5210/items/7c9035d8a77b9dbac1d1
+%% section前後の余白を詰める
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%% jarticle の定義
+%%% \newcommand{\section}{\@startsection{section}{1}{\z@}%
+%%%    {1.5\Cvs \@plus.5\Cvs \@minus.2\Cvs}%
+%%%    {.5\Cvs \@plus.3\Cvs}%
+%%%    {\normalfont\Large\bfseries}}
+\makeatletter
+\renewcommand{\section}{\@startsection{section}{1}{\z@}%
+   {1.0\Cvs \@plus.6\Cvs \@minus.2\Cvs}%上の余白を調整
+   {0.8\Cvs \@plus.3\Cvs \@minus.1\Cvs}%下の余白を調整
+   {\normalfont\Large\bfseries}}
+\makeatother
+
 \begin{document}
 \fontsize{9.36}{16}\selectfont
 \setlength{\textwidth}{53zw}
和田 勇 への返信

Re: 二段組のベースラインが揃わない。

- アオヌマ ジュン の投稿
ありがとうございます。sectionを再定義して整数倍にして、行ずれを回避することができました。御礼申し上げます。
もう一つの方法として、section等の定義を変更することなく、ベースラインそのものを固定することはできないでしょうか。添付いたしましたPDFデータの図版を配置すると当然行ずれをおこしますが、ここでベースラインを固定したままその分生じたアキ量を図版と本文のアキに割り振るということです。DTPソフトにはよくあるベースライングリッドの固定のようなものなのですが。当然、ここではsection等の絶対値は無視されることになりますが。本文のベースラインを優先して固定し、その分の生じた数値をsection等で調整するということです。
甚だご無理な質問ですがご検討のほどよろしくお願いします。
和田 勇 への返信

Re: 二段組のベースラインが揃わない。

- アオヌマ ジュン の投稿
和田様
大変失礼いたしました。図版と本文のアキで調整するということは和田様がご指摘されていたのですね。失念して見落としておりました。調整して両段のベースラインを揃えた結果のデータを添付いたしまた。厚かましいようですが、この手動で調整して入力した数値をマクロにできないでしょうか。行ずれを起こした部分の数値を、図版と本文のアキに自動的に配分するいうことができればいいのですが。少なくとも私の凡庸な頭では無理ですが、お知恵をお貸しいただければ幸いです。
アオヌマ ジュン への返信

Re: 二段組のベースラインが揃わない。

- 和田 勇 の投稿

懸念していることとかを書き綴ってみました。参考になれば。

■ 444.pdf とJUN.pdf を見て

  • 1バイト長の )  があるとちょっとずれますね
  • 詳しく見ないとわからないのですが baselineskip とかの調整が必要かな

■図版と本文のアキ

こんな時間だから実験出来ないけど figure を再定義するのかと思います。

  • プラン1

    \begin{figure} から \end{figure} までをいったん savebox で作成し、 その高さを求めて、行の整数倍との差を図の上下に配分して savebox の内容を書き出す。 (図はフローティングなのでページや段を跨がない前提なので)

    懸念するのは右下に図が配置された直後にsection が来るとか、 他の自動調整が発生する箇所でどう折り合うか。 オーファン・ウィドウ問題をどうするかとかとか

  • プラン2 section の再定義のように上下に自動調整パラメータで調整する プラン1と同じ問題もあるし、試行錯誤との闘いかな

  • その他の懸念

    • 二段打ち抜きというか段幅以上の図をどうするか
    • figure だけでなくtable や数式はどうするかとかとか

■手動で調整して入力した数値をマクロかできないか

section の再定義では、エイやと章の上の空きの半分を下側の半分とかにしたので、 この程度であれば .5\定義値 てな具合で実現できますが...それほどでもなかったので上下に並べ、桁数を合わせておいたのですが...

なお \定義値は newcounter か newlength あたりで定義して計算できるようにしておく必要があります。

和田 勇 への返信

Re: 二段組のベースラインが揃わない。

- アオヌマ ジュン の投稿
和田様

ご提言ありがとうございます。

いろいろ実験してみました。概ね理解できたのですが、

saveboxの作成の方法と newcounter とnewlengthの定義の方法が今一つ理解できません。
そこら辺のところを詳しく教えていただければ有難いのですが。

いろいろご面倒おかけしますがどうぞよろしくお願いいたします。
アオヌマ ジュン への返信

Re: 二段組のベースラインが揃わない。

- 北見 けん の投稿
LaTeXでの変数の使い方について、
「TeX Wiki」にちょっと書いてみました。

https://texwiki.texjp.org/?LaTeX%E5%85%A5%E9%96%80%2FLaTeX%E3%83%9E%E3%82%AF%E3%83%AD%E3%81%AE%E4%BD%9C%E6%88%90#tfab8d58
北見 けん への返信

Re: 二段組のベースラインが揃わない。

- 和田 勇 の投稿

北見さん、追随フォローありがとうございます。

  • 回答するにあたって
    • コードの検証を実際には行って居ないので間違いがあるかもしれないのでご了承ください
    • 回答はい以前実際に経験・実施したことを下に書いて居ます *今回の問題になって関連する経験は「論文タイトルが一行に収まるまでフォントサイズを小さく指定す」というもの
  • savebox newcounter newlength などなのについて「figure で著される領域を バウンダリにする」に即して回答

    • 今回は  とキャプション含めて 一まとめ にして考えることだと思います
    • 一まとめするってことは、ブロックと言うか つまり box に押し込むことだとおもいます
    • LaTeX の面白いところはこの box を変更しない限りなどでも再利用出来るので PDF などの実サイズを小さく出来ると言う利点があるけど、ここでの話題にそぐわないのでこの点はここまで (xsavebox で検索してみて)
    • さて LaTeX と言うか TeX と言うかグーテンベルクの以来、組版の基本は 文字 と言う を横につなげて を生成し、それを繰り返し ページ を組み立てることだと私は理解しています。
    • 各文字には幅や高さ、ベースライン情報などが基本的は設定されていますので、ここでは割愛
    • が、図形、おそらく数式とか表などは、いろいろな要素(図であれば図自体とキャプション、図とキャプション間の余白など)があるので場合によってはいろいろ計算しないと、問題が解決できないことがあると思います
    • そこで利用できるのではと考えているのが box ですが、何もしなければ組版されてしまいます
    • 行バウンダリに補正するには、仮に組版したらどれくらいの大きさになるか(今回は高さ)を知る必要があります
    • そんな時に savebox を利用してみようと考えました
    • \savebox{cmd}[width][pos]{text} なので width を指定して text に とキャプションを放り込むと目的の高さが \settoheight で高さが求められるようになります

      \newsavebox{\Abox} \savebox{\Abox}{\begin{figure}...\end{figure}\caption{...}} \newlength{\myhh} \settoheight{\myhh}{\usebox{\Abox}} %% see as https://ipfs-sec.stackexchange.cloudflare-ipfs.com/tex/A/question/3166.html

    • この値 \myhh を利用すればバウンダリ調整は可能だと考えています

    • 前回の投稿以来考えていた時は、この図とキャプションの前後に半分ずつ割り付けタラと書いたつもりですが、図がページ替え・段替えに来た時、おそらく上部に配置した調整は無効扱いになり、結果としてズレが生じると思います
    • 下段に配置されるケースもあるとは思いすが通常は図はフローティングなので、下部に余分な空白は通常できないと思います
  • が、が、これほど苦労しても次から次と同じ問題は発生すると思います
    • 論文が主要なターゲットかもしれないけど、箇条書きなども一つの懸念
    • subsection ... appendix などは?
    • \smallsjip \bigskip とかは \huge とか
    • 一般的な図ではなく、せいぜい所謂行より大きな絵文字とか、表・数式 ....
    • ...
    • なのでそんな苦労するなら 北見 けん さんが低酸する jlreq.cls の利用を検討された方が良いと思います
  • これ以降は和田のつぶやきなのであまり反論しないでね
    • なぜ、多くの人たちは一行の文字数とか、一ページの行数にこだわるんだろう
    • 我々は、レーザプリンタなどビット(ピクセル・ドット)単位で調整可能なプリンタが使えるのに三十年くらいまで大いに使われていたラインプリンタの属性に何故囚われるの?
      • 今はどうか知らんけど、ワープロ検定を強要されそうになった時、一行何文字・一ページ何行という仕様がアホらしくて受験をやめた
    • 活版印刷とかじゃないんだから、言いたいことが紙幅をはみ出すなら、フォントサイズを小さくするなり、行間を狭めればいいんじゃない(見やすさは別にして)
    • 確かに、段組みした時全ての横の段で行が並んでいた方が美しいかもしれないけど、そんなことを気にするよりコンテンツを気にすべきだろうな。自分の意見を相手に伝える為に。
    • 我々 おじさん たちは、かつて経験した時の技術情報を下に若い人たちにそれを押し付けてはいないだろうか、これから日々自問自答せねば と大反省
和田 勇 への返信

Re: 二段組のベースラインが揃わない。

- アオヌマ ジュン の投稿
和田様 北見様

ご丁寧なご提言ありがとうございます。

何となく解決の糸口が見えてきたようです。
ただこのケースの場合、これで一発解決のような方法はないようですね。

まだまだ未熟ですので勉強に勤しんでいきたいと思っています。