行列の括弧内と括弧外との高さが揃わない

行列の括弧内と括弧外との高さが揃わない

- EH D の投稿
返信数: 9
宜しくお願い致します。
画像のようにベクトル成分が1の箇所にj_1-th,j_2-th,j_{n-1}-thの高さを揃えようと,
改行\\を使ったり,\vspaceを使ったりしてしてますがなかなかうまく揃わずに苦慮しております。
行列の括弧内の成分と括弧外の文字との高さを連動させるにはどうすればいいでしょうか?
添付 pctr.JPG
EH D への返信

Re: 行列の括弧内と括弧外との高さが揃わない

- 本田 知亮 の投稿
bordermatrixを細工して使うのが素直かと

例えば,熊澤さんの有名なところ参照

http://www.biwako.shiga-u.ac.jp/sensei/kumazawa/tex/form008.html

使用目的にあわせて,
枠外の要素の扱いをもうちょっと考えると
より幸せになれるとは思います


\documentclass{jsarticle}


\makeatletter
\newif\if@borderstar
\def\bordermatrix{\@ifnextchar*{%<br /> \@borderstartrue\@bordermatrix@i}{\@borderstarfalse\@bordermatrix@i*}%
}
\def\@bordermatrix@i*{\@ifnextchar[{\@bordermatrix@ii}{\@bordermatrix@ii[()]}}
\def\@bordermatrix@ii[#1]#2{%<br /> \begingroup<br /> \m@th\@tempdima8.75\p@\setbox\z@\vbox{%<br /> \def\cr{\crcr\noalign{\kern 2\p@\global\let\cr\endline }}%
\ialign {$##$\hfil\kern 2\p@\kern\@tempdima & \thinspace %<br /> \hfil $##$\hfil && \quad\hfil $##$\hfil\crcr\omit\strut %<br /> \hfil\crcr\noalign{\kern -\baselineskip}#2\crcr\omit %
\strut\cr}}%
\setbox\tw@\vbox{\unvcopy\z@\global\setbox\@ne\lastbox}%
\setbox\tw@\hbox{\unhbox\@ne\unskip\global\setbox\@ne\lastbox}%
\setbox\tw@\hbox{%<br /> $\kern\wd\@ne\kern -\@tempdima\left\@firstoftwo#1%<br /> \if@borderstar\kern 2pt\else\kern -\wd\@ne\fi%<br /> \global\setbox\@ne\vbox{\box\@ne\if@borderstar\else\kern 2\p@\fi}%
\vcenter{\if@borderstar\else\kern -\ht\@ne\fi%<br /> \unvbox\z@\kern -\if@borderstar2\fi\baselineskip}%
\if@borderstar\kern-2\@tempdima\kern2\p@\else\,\fi\right\@secondoftwo#1 $%
}\null \;\vbox{\kern\ht\@ne\box\tw@}%
\endgroup
}
\makeatother


\begin{document}
BBBBBB
$$
\bordermatrix*[()]{<br /> 1 & 1\cr<br /> 0 & 2\cr<br /> \cr%%%ここがないとよくない<br /> }
$$

ああああああああああああああああ
ああああああああああああああああ
ああああああああああああああああ

\end{document}
本田 知亮 への返信

Re: 行列の括弧内と括弧外との高さが揃わない

- EH D の投稿
ご回答誠に有難うございます。

$\bordermatrix*[()]{
0 \cr
\vdots \cr 
0 \cr
1 & \longleftarrow \jmath_1{\rm -th} \cr
0 \cr
\vdots \cr 
0 \cr
1 & \longleftarrow \jmath_2{\rm -th} \cr
0 \cr
\vdots \cr 
0 \cr
1 & \longleftarrow \jmath_{n-\ii} {\rm -th}  \cr
0 \cr
\vdots \cr 
1
\cr%%%
}$

としてみましたら添付画像のようになってしまいました。何が原因でしょうか?
添付 pctr1.JPG
EH D への返信

Re: 行列の括弧内と括弧外との高さが揃わない

- 本田 知亮 の投稿
よく読んでください.

& の個数,\crの個数に注意です.



本田 知亮 への返信

Re: 行列の括弧内と括弧外との高さが揃わない

- 本田 知亮 の投稿
&と\crの問題もそうですが,
列数に長いものがあると,
そのようになるようです.

その場しのぎになりますが,
こんな感じでしょうか


\def\rownum#1{\hphantom{1}\rlap{$#1$}}
$$
\bordermatrix*[()]{<br /> 0 & \cr<br /> \vdots & \cr <br /> 0 & \cr<br /> 1 & \rownum{\longleftarrow \jmath_1{\rm -th}} \cr
0 & \cr
\vdots & \cr
0 & \cr
1 & \rownum{\longleftarrow j_2\text{-th}} \cr %%要 amsmath
0 & \cr
\vdots & \cr
0 & \cr
1 & \cr
0 & \cr
\vdots & \cr
1 & \cr
&\cr
}$$


amsmathの\textを使うと数式モードでも
数式中の非数式が楽です.


EH D への返信

Re: 行列の括弧内と括弧外との高さが揃わない

- KUMAZAWA yoshiki の投稿
blkarray.styの説明
http://www.biwako.shiga-u.ac.jp/sensei/kumazawa/tex/blkarray.html
の最下部に同じようなものがあります。
EH D への返信

Re: 行列の括弧内と括弧外との高さが揃わない

- 北見 けん の投稿
別解として、
行の注釈部分を、\rlap を使って該当行の要素のところに埋め込んでも
いいのじゃないかと思います。
注釈の分の幅が消えてしまうのは、行列のあとに \hphantom をおいてカバーします。

新しいパッケージの使い方を調べるのは時間が掛かるので、
私ならそうする、というだけです。