Re: 場合分けで,行の上下の中心がずれる

名前: 北見 けん
日時: 2012-05-11 11:44:54
IPアドレス: 211.128.71.*

>>56741 >> tfmのAXISHEIGHTが0.25でないフォントを使うと, この理解はどうも違うように思います。 場合分けのようなものは全体が \vcenter で組まれますから、 そのボックスの縦の中心が周囲の axis-height にそろえられます。 従って、場合わけが3行のときに 2行目が周囲の行とそろうように見えるのは、 \strutbox の中心の高さが周囲の行の axis-height と一致する場合です。 このときさらに、3行とも \strutbox から縦にはみ出す部分がないことも必要となります。 なので、そもそも2行目が周囲の行とそろうというのは、 結果として多くの場合にそうなっているというに過ぎません。 さらにいうと、実は \strutbox の高さは約8.4pt、深さは約3.6ptなので、 その中心は (8.4pt-3.6pt)/2 = 2.4pt となるので、axis-height が 2.5pt であっても 0.1pt ずれています。(amsmath 以外のパッケージをはずして確認してみてください。) 2行目の2.4ptの高さの位置が周囲の2.5ptの高さの位置にそろえられるので、 場合分けのほうが 0.1pt 高くなるはずです。 で、解決策として \strutbox のほうを作り直して、中心が axis-height に等しくなるようにしてみました。 \documentclass{jsarticle} \usepackage{amsmath} \begin{document} \begin{equation} \fontdimen22\textfont2=4pt% axis-heightを2.4ptでないものに。目立つように4ptにしてみた。 H(x)-\frac{f(x)}{g(x)}=% 分数線も高い位置にくる。 \left\{ \begin{matrix} 1,& x>0&{ }\\ a,&x=0,&\\% 2行目が周囲の行より1.6pt高いはず。 -1,& x<0&{ } \end{matrix} \right. \end{equation} \begin{equation} \setbox\strutbox=\hbox{$\vcenter{\copy\strutbox}$}% axis-height にあわせて\strutbox を作り直す。 H(x)-\frac{f(x)}{g(x)}=% 分数線は上の例と変わらず。 \left\{ \begin{matrix} 1,& x>0&{ }\\ a,&x=0,&\\% 2行目が周囲の行と同じに。 -1,& x<0&{ } \end{matrix} \right. \end{equation} \end{document}

この書き込みへの返事:

お名前
題名 
メッセージ(タグは <a href="...">...</a> だけ使えます。適宜改行を入れてください)