+ \begin{figure}[t]
+ \noindent\centering
+ \begin{minipage}[b]{18\zw}
+ \ltjenableadjust[profile=false, linestep=false]
+ ……だから,①より$\dfrac{a^2}{b} = \dfrac{1+\sqrt{5}}2$.\\
+ よって$b=\dfrac{1-\sqrt{5}}2$である.\\
+ これを②式に代入すると……
+ \par\vskip\abovecaptionskip
+ \ltjenableadjust[profile=false, linestep=false]
+ \par\centering\leavevmode{\small (a)}
+ \end{minipage}%
+ \kern2\zw
+ \begin{minipage}[b]{18\zw}
+ \ltjenableadjust[profile]
+ ……だから,①より$\dfrac{a^2}{b} = \dfrac{1+\sqrt{5}}2$.\\
+ よって$b=\dfrac{1-\sqrt{5}}2$である.\\
+ これを②式に代入すると……
+ \par\vskip\abovecaptionskip
+ \ltjenableadjust[profile=false, linestep=false]
+ \par\centering\leavevmode{\small (b)}
+ \end{minipage}\par
+ \caption{高い行が連続したときの状況}\label{fig:linegap1}
+ \end{figure}
+
+ ここで,\TeX は行送りの決定で「高さ・深さを取っているものが
+ 行のどの水平位置にあるか」は一切考慮しないことに注意してほしい.そのため,
+ \autoref{fig:linegap1}~(a)のように「必要以上に行間が空いて見える」状況が起こることがある.
+
+ \Pkg{luatexja-adjust}パッケージでは,「通常に組んだときの行間」$d$を
+ 各行の中身の文字・グルー・ボックスの寸法を勘案して計算するという方法を
+ 利用できるようにした.この機能を使うと,\autoref{fig:linegap1}~(b)のように
+ 行間の空きが必要以上に大きくなることを避けることができる.
+ \begin{itemize}
+ \item 段落中の隣り合った二行だけでなく,行間の空きは
+ 新たに水平ボックス$h$を(内部・外部問わず)垂直モードで追加した時にも自動で挿入される.
+ その場合には,前段落で述べた「中身までみる」処理は
+ \begin{itemize}
+ \item 現在のリストにおける最後のノード
+ \footnote{最後のノードが\cs{parskip}によるグルーであった場合のみ
+ さらに一つ前のノードを参照する}が水平ボックス$h'$であり,かつ
+ \item \cs{prevdepth}の値とその$h'$の深さの値が一致している
+ \end{itemize}
+ 場合にのみ発動するようにしている.
+ \item 行の中身に水平ボックス$h''$が入ってくることもあるが,その場合は$h''$の中身までは参照しない.
+ 参照するようにしてしまうと,\cs{smash}など手動で行った高さ・深さ調整の意味がなくなってしまうからである.
+ \end{itemize}
+
+ \begin{figure}[t]
+ \noindent\centering
+ \begin{minipage}[b]{16\zw}
+ \ltjenableadjust[profile]
+ ……だから,①より$\dfrac{a^2}{b}= \dfrac{1+\sqrt{5}}2$.\\
+ よって$b=\dfrac{1-\sqrt{5}}2$である.\\
+ これを②式に代入すると……
+ \par\vskip\abovecaptionskip
+ \ltjenableadjust[profile=false, linestep=false]
+ \par\centering\leavevmode{\small (a): 無効}
+ \end{minipage}%
+ \kern2\zw
+ \begin{minipage}[b]{16\zw}
+ \ltjsetparameter{linestep_factor=0.25}
+ \ltjenableadjust[profile, linestep]
+ ……だから,①より$\dfrac{a^2}{b} = \dfrac{1+\sqrt{5}}2$.\\
+ よって$b=\dfrac{1-\sqrt{5}}2$である.\\
+ これを②式に代入すると……
+ \par\vskip\abovecaptionskip
+ \ltjenableadjust[profile=false, linestep=false]
+ \par\centering\leavevmode{\small (b): $0.25$\cs{baselineskip}刻み}
+ \end{minipage}\par\medskip
+ \begin{minipage}[b]{16\zw}
+ \ltjsetparameter{linestep_factor=0.5}
+ \ltjenableadjust[profile, linestep]
+ ……だから,①より$\dfrac{a^2}{b} = \dfrac{1+\sqrt{5}}2$.\\
+ よって$b=\dfrac{1-\sqrt{5}}2$である.\\
+ これを②式に代入すると……
+ \par\vskip\abovecaptionskip
+ \ltjenableadjust[profile=false, linestep=false]
+ \par\centering\leavevmode{\small (c): 0.5\cs{baselineskip}刻み}
+ \end{minipage}%
+ \kern2\zw
+ \begin{minipage}[b]{16\zw}
+ \ltjsetparameter{linestep_factor=1}
+ \ltjenableadjust[profile, linestep]
+ ……だから,①より$\dfrac{a^2}{b} = \dfrac{1+\sqrt{5}}2$.\\
+ よって$b=\dfrac{1-\sqrt{5}}2$である.\\
+ これを②式に代入すると……
+ \par\vskip\abovecaptionskip
+ \ltjenableadjust[profile=false, linestep=false]
+ \par\centering\leavevmode{\small (d): \cs{baselineskip}刻み}
+ \end{minipage}\par
+ \caption{段階的な行送り増加}\label{fig:linegap2}
+ \end{figure}
+
+ \item[段階的な行送り調整]
+ 既に述べたように,
+ 「通常に組んだときの行間」$d$が\cs{lineskiplimit}より小さい場合,\TeX 標準では
+ 行間は\cs{lineskip}となるのだった.
+ このとき行送りは「前の行の深さ」,「次の行の高さ」,\cs{lineskip}の3つの和になるわけだが,
+ 場合によっては行送りを「\cs{baselineskip}の整数倍」などと切りのいい値に揃えたいという状況が
+ 考えられなくもない.
+
+ \Pkg{luatexja-adjust}パッケージでは,{\catcode`\<=12$d<\cs{lineskiplimit}$}のときに
+ 行送りを\cs{baselineskip}の\Param{linestep\_factor}倍ずつ増減させて
+ \begin{quote}
+ 行間が\cs{lineskip}以上となるような,
+ 最小の$(1+k\cdot \Param{linestep\_factor})\cs{baselineskip}$($k$は整数)の値
+ \end{quote}
+ とする機能を利用できるようにした.
+ \autoref{fig:linegap2}の(a)がこの機能を無効にした状況で,(b),~(c),~(d)が
+ それぞれ\Param{linestep\_factor}を0.25,~0.5,~1とした状況である.
+
+ なお,この機能は表組時(\cs{halign},~\cs{valign})には無効である.
+ \LaTeX における表組環境(tabular, arrayなど)では,\cs{baselineskip},~\cs{lineskip}はどちらも0に設定されているので
+ (代わりに各行に\cs{@arstrut}という支柱が入る)ために意味がないことと,
+ 数式を内部で表組を使って組むalign環境などではかえって行間が不揃いになってしまうからである.