texjporg / jsclasses

Classes tailored for use with Japanese.
BSD 2-Clause "Simplified" License
60 stars 14 forks source link

インライン数式での行送り #61

Open abenori opened 7 years ago

abenori commented 7 years ago

ディスプレイ数式中の行送りは文中より狭く設定されていますが,インライン数式中では文中と同様のようです.例えば次のようにpmatrixを比較することで確認できます.

\documentclass{jsarticle}
\usepackage{amsmath}
\begin{document}
$\begin{pmatrix}
a & b\\ c & d
\end{pmatrix}$
\[
\begin{pmatrix}
a & b\\ c & d
\end{pmatrix}
\]
\end{document}

ディスプレイ数式中の行送りの調整は

\everydisplay=\expandafter{\the\everydisplay \narrowbaselines}

のように行われています.インライン数式中でも同様の効果を得るために

\everymath=\expandafter{\the\everymath \narrowbaselines}

としても問題はないでしょうか?

abenori commented 7 years ago

参考: https://twitter.com/h_okumura/status/928184685032759296 https://twitter.com/h_okumura/status/928231613661507584

aminophen commented 7 years ago

インライン数式中でも同様の効果を得るために \everymath=\expandafter{\the\everymath \narrowbaselines} としても問題はないでしょうか?

問題ありだったからそうなっている、ということのようです:qa:9067, qa:9068 のようにインライン数式は minipage などあちこちで使われているのでおかしくなります。

https://oku.edu.mie-u.ac.jp/~okumura/jsclasses/ から \everymath で検索したら出ました。

以下、引用


[2002-06-29] [2002-05-30] の修正で不都合が生じることがあるようですので元に戻しました。 すみませんが本文中の行列の行送りを狭くしたい場合はプリアンブルに

\everymath=\expandafter{\the\everymath \narrowbaselines}

を入れておいてください (Thanks: matsuo さん [tex-qa:9067])。[2002-07-03追記] 本田さん [tex-qa:9205] が minipage 環境の下請けの \@iiiparbox を直す別解を出してくださいました。

[2002-05-30] [tex-qa:8429] のご指摘などがありましたので,本文中でも行列の行送りが狭くなるようにしました。


では、どうするのがよいのでしょうね…?「\everymath を使っておいて、本田さんの qa:9205 に従い \@iiiparbox だけリセットする」は一手ですが、ほかにも「内部処理としてはいったんインライン数式に入る」というのがよくあるので怪しいかもしれません。

zr-tex8r commented 6 years ago

では、どうするのがよいのでしょうね…?

結局、どうしても、
「ユーザが何も考えなくても全部うまくいく」
ようにはならないと思いますね…。特に、jsclassesの感覚では、
「他のパッケージの機能について先回りして対策しておく」
というのはやりたくないでしょう。だったら何もせずに
「必要だったらユーザが\narrowbaselinesしてください」
とするのが仕様として一番判りやすいと感じます。