タイトル通りなのですが,jlreq.clsではpmatrixやcases環境等の括弧が,その中身と比べて不釣り合いな大きいものとなってしまいます.
これは以下のようなコードで容易に再現できるはずです.
\documentclass{jlreq}
\usepackage{luatexja}
\usepackage{amsmath}
\begin{document}
\begin{equation}
\begin{pmatrix}
x \\ y
\end{pmatrix}
\end{equation}
や
\begin{equation}
\begin{cases}
x \\ y
\end{cases}
\end{equation}
\end{document}
baselineskipの問題なようにも思えるのですが(的外れでしたら申し訳ありません),LaTeXに疎く,どう対処すべきなのか皆目見当もつかない状況です.
適切な大きさの括弧が選択されるように修正するにはどうすれば良いのでしょうか.
是非知恵をお貸しください.
なお,普段はLuaLaTeXで処理していますが,本件はpLaTeXやupLaTeXでも発生します.
よろしくお願いいたします.
いくつか方法があるようですが。
以前このフォーラムで質問があったものでは以下のようなものがありましたが
equnarry環境の上下のアキの調整について
https://okumuralab.org/tex/mod/forum/discuss.php?d=3174&parent=19035
これだと pmatrix はやや制御できるものの caces にはあまり効果がないので
以下のではどうでしょうか
行間の調整
http://ideas.paunix.org/latex/latex_6_bodytext.htm
以上のケース他をテストしたサンプルを添付しておきます。
以前このフォーラムで質問があったものでは以下のようなものがありましたが
equnarry環境の上下のアキの調整について
https://okumuralab.org/tex/mod/forum/discuss.php?d=3174&parent=19035
これだと pmatrix はやや制御できるものの caces にはあまり効果がないので
以下のではどうでしょうか
行間の調整
http://ideas.paunix.org/latex/latex_6_bodytext.htm
以上のケース他をテストしたサンプルを添付しておきます。
そうですよね。jlreq に限らず、article や jarticle でも、
行列内の行送りは地の本文の行送りと同じになっていて、
js* だけは本文に比べて行列内で狭くしてあるということですね。
ただ、article だけ他のものよりデフォルトの行送りが狭いので
それに合わせて行列のほうも狭くなっていますね。
結果、article と js* は行列がコンパクトに見えて、
jlreq や jarticle は行列が大きく見えることになっていますね。
別枝の投稿にも書きましたが、
行列内だけ変えたいとき、LaTeX では \arraystretch を使えるようになっています。
https://okumuralab.org/tex/mod/forum/discuss.php?d=3465#p21122
js* で行列内を狭くするときにLaTeXで用意されているこの仕組みを使わずに
行列内部で行送り自体を狭くしてしまうようにしたのには、
どんな理由があるのでしょうか?
行列内の行送りは地の本文の行送りと同じになっていて、
js* だけは本文に比べて行列内で狭くしてあるということですね。
ただ、article だけ他のものよりデフォルトの行送りが狭いので
それに合わせて行列のほうも狭くなっていますね。
結果、article と js* は行列がコンパクトに見えて、
jlreq や jarticle は行列が大きく見えることになっていますね。
別枝の投稿にも書きましたが、
行列内だけ変えたいとき、LaTeX では \arraystretch を使えるようになっています。
https://okumuralab.org/tex/mod/forum/discuss.php?d=3465#p21122
js* で行列内を狭くするときにLaTeXで用意されているこの仕組みを使わずに
行列内部で行送り自体を狭くしてしまうようにしたのには、
どんな理由があるのでしょうか?
そうですね。\arraystretch は行列系環境のパラメータマクロです。
一般に、LaTeXの表組環境では \baselineskip の代わりに \strutbox を支柱として使いますが、
数式の行列系環境では \strutbox の高さ深さにさらに arraystretch を掛けたものを使うようになっています。
\strutbox の高さ深さは、
行送りの大きさを LaTeX の標準的な方法で設定していれば、
更新されていることが期待できます。
あと、cases 環境については、
環境定義の中に \arraystretch を 1.2 にして行間を広げる設定が組み込まれているので、
環境自体を再定義するなど、もうひと手間必要になるかもしれません。
一般に、LaTeXの表組環境では \baselineskip の代わりに \strutbox を支柱として使いますが、
数式の行列系環境では \strutbox の高さ深さにさらに arraystretch を掛けたものを使うようになっています。
\strutbox の高さ深さは、
行送りの大きさを LaTeX の標準的な方法で設定していれば、
更新されていることが期待できます。
あと、cases 環境については、
環境定義の中に \arraystretch を 1.2 にして行間を広げる設定が組み込まれているので、
環境自体を再定義するなど、もうひと手間必要になるかもしれません。
pmatrixには有効ですが,casesには無効でした.
これはamsmath.styの\env@casesの定義内で
\def\env@cases{%
. . .(略)
\def\arraystretch{1.2}%
. . .(略)
}
とされているためかと思います.ここも変えるようにすれば調整可能ですが,mathtools.styのdcasesなど,括弧が大きくなりすぎてしまうものは他にも多くあるので,やはりbaselineskipの調整をしなければならないのではないかと思い,質問させていただきました.
しかしながら,私はjlreq.styで使われているexpl3?(間違っていたら申し訳ありません)という言語は読めないので,どうすればよいか見当がつかない状態でして,そこで知恵をお借りできればと思い,質問させていただいた次第です.
これはamsmath.styの\env@casesの定義内で
\def\env@cases{%
. . .(略)
\def\arraystretch{1.2}%
. . .(略)
}
とされているためかと思います.ここも変えるようにすれば調整可能ですが,mathtools.styのdcasesなど,括弧が大きくなりすぎてしまうものは他にも多くあるので,やはりbaselineskipの調整をしなければならないのではないかと思い,質問させていただきました.
しかしながら,私はjlreq.styで使われているexpl3?(間違っていたら申し訳ありません)という言語は読めないので,どうすればよいか見当がつかない状態でして,そこで知恵をお借りできればと思い,質問させていただいた次第です.