数式の各上下スペースを『大学への数学』風にする

数式の各上下スペースを『大学への数学』風にする

- 北川 直樹 の投稿
返信数: 1

お世話になります。北川です。

最近、別行立て数式の前後について考えており、参考書のように調整したいと思いました。『大学への数学』(東京書籍)をみると、数式の上下のスペースは、通常のテキストの行間と等しいことが分かりました。ここで、「行間」とは\baselineskipのことではなく、ある行とその次の行に和文字の隙間(\baselineskip-1\zhに相当?)のことです。

また、alignの上下やalign中の各数式の上下のスペースも同様でした。

テキスト中の数式に分数やインテグラルを用いた場合は、「行間」が挿入されていることが分かりました。

そこで、各パラメータを次のように設定しました。

\setlength{\lineskip}{\baselineskip-1\zw}
\setlength{\lineskiplimit}{3pt}
\AtBeginDocument{
  \abovedisplayskip=0\abovedisplayskip
  \abovedisplayshortskip=0\abovedisplayshortskip
  \belowdisplayskip=0\belowdisplayskip
  \belowdisplayshortskip=0\belowdisplayshortskip
  \setlength{\jot}{0pt}
}
これは、別行立ての数式の上下を0ptにして、ほぼ強制的にlineskipを入れることを意図したものです。
 
しかし、alignの前後及び各数式の上下のスペースは想定よりも大きくなりました。
 
そこで、先の目的を達成するためには、どのように各パラメータを調整すればよいか、ご教授いただければ幸いです。
 
LuaLaTeX + jlreqで組んでいます。
 
よろしくお願いいたします。
北川 直樹 への返信

Re: 数式の各上下スペースを『大学への数学』風にする

- ut の投稿
# 飽くまでご参考までですが…。

私は LuaTeX を使ったこともありませんし、数式に無縁の私立文系で、
「大学への数学」というものも、アマゾンで東京出版の雑誌の「サン
プルを読む」の部分をチラッと覗いてみただけですので、以下では
まったく的外れなことをしている可能性が大です(すいません)。

※「大学への数学」が雑誌なのか、単行本なのか、東京書籍なのか、
  東京出版なのか、門外漢の私にはどれか分かりませんでした…。

\...display...skip の類いは、\AtBeginDocument で設定しても、
フォントサイズを変更するとそのサイズによる設定になるっぽいので、
設定をするなら \normalsize や \small などを再定義してその中で
再設定したほうがいいのかも知れません。
(下の setspace.sty では \everydisplay に仕込んでいるようです)

【参考】from: jsize10.clo

  \renewcommand{\normalsize}{%
     \@setfontsize\normalsize\@xpt{15}%
   \abovedisplayskip 10\p@ \@plus2\p@ \@minus5\p@
   \abovedisplayshortskip \z@ \@plus3\p@
   \belowdisplayshortskip 6\p@ \@plus3\p@ \@minus3\p@
     \belowdisplayskip \abovedisplayskip
     \let\@listi\@listI}

  \DeclareRobustCommand{\small}{%
   \@setfontsize\small\@ixpt{11}%
   \abovedisplayskip 8.5\p@ \@plus3\p@ \@minus4\p@
   \abovedisplayshortskip \z@ \@plus2\p@
   \belowdisplayshortskip 4\p@ \@plus2\p@ \@minus2\p@
   \def\@listi{\leftmargin\leftmargini
               \topsep 4\p@ \@plus2\p@ \@minus2\p@
               \parsep 2\p@ \@plus\p@ \@minus\p@
               \itemsep \parsep}%
   \belowdisplayskip \abovedisplayskip}

setspace パッケージを使うとどうなるのかを、少しだけ試してみま
した(platex です)。何かしら参考になるでしょうか。

※ 例文が創世記なのは、TLC 3rd のマネをしてみただけで、他意は
  ありません。

\documentclass{jarticle}
\usepackage{amsmath}
\usepackage{setspace}

\newcommand{\dummydisplay}{%
  \stepcounter{enumi}%
  \<(\theenumi)
  元始に神天地を創造たまへり 地は定形なく曠空くして黒暗淵の面にあり 
  神の靈水の面を覆たりき 神光あれと言たまひければ光ありき
  \begin{align}
    (a + b)^3  &= (a + b) (a + b)^2        \\
              &= (a + b)(a^2 + 2ab + b^2) \\
              &= a^3 + 3a^2b + 3ab^2 + b^3
  \end{align}
  元始に神天地を創造たまへり 地は定形なく曠空くして黒暗淵の面にあり 
  神の靈水の面を覆たりき 神光あれと言たまひければ光ありき\par
}
% cf. TLC 3rd: 3-1-13.ltx, 3-1-14.ltx; 11-2-12.ltx
% In the beginning God created the heaven
% and the earth. Now the earth was unformed
% and void, and darkness was upon the face
% of the deep; and the spirit of God
% hovered over the face of the waters.

\begin{document}

%(1)
\dummydisplay

\vspace{\stretch{1}}

%(2)
{\setstretch{0.5}
\dummydisplay}

\vspace{\stretch{1}}

%(3)
\begin{spacing}{1}
\setdisplayskipstretch{0.3}
\dummydisplay
\end{spacing}

\vspace{\stretch{1}}

%(4)
\begin{spacing}{1}
\setdisplayskipstretch{0}
\dummydisplay
\end{spacing}

\vspace{\stretch{7}}

\end{document}

添付 3966.jpg