TeXで行列のブロック分割を表現する方法

TeXでブロック行列を出力する方法をまとめました。

 


$$\left[\begin{array}{cccc}1 & 4 & 0 & 0 \\ 2 & 3 & 0 & 0 \\ 0 & 0 & 1 & 2 \\ 0 & 0 & 7 & 1 \end{array}\right]$$という行列には零行列が含まれているので、$$\left[\begin{array}{cc} {\begin{array}{cc} 1 & 4 \\ 2 & 3 \end{array}} & O \\ O & {\begin{array}{cc} 1 & 2 \\ 7 & 3 \end{array}} \end{array}\right]$$という形に分割したいとします。このとき、分割されるブロック行列は実線もしくは点線で区切って表示すると見やすくなります。

例えば

\left[\begin{array}{cc|cc}1 & 4 & 0 & 0 \\ 2 & 3 & 0 & 0 \\ \hline 0 & 0 & 1 & 2 \\ 0 & 0 & 7 & 1 \end{array}\right]

とすると実線で分割できます。出力は以下のようになります。$$\left[\begin{array}{cc|cc}1 & 4 & 0 & 0 \\ 2 & 3 & 0 & 0 \\ \hline 0 & 0 & 1 & 2 \\ 0 & 0 & 7 & 1 \end{array}\right]$$

点線で分割したいときは

\left[\begin{array}{cc:cc}1 & 4 & 0 & 0 \\ 2 & 3 & 0 & 0 \\ \hdashline 0 & 0 & 1 & 2 \\ 0 & 0 & 7 & 1 \end{array}\right]

と書きます。出力は$$\left[\begin{array}{cc:cc}1 & 4 & 0 & 0 \\ 2 & 3 & 0 & 0 \\ \hdashline 0 & 0 & 1 & 2 \\ 0 & 0 & 7 & 1 \end{array}\right]$$のようになります。どちらを使うかは好みですね。

片側だけ分割したい人がいるか分かりませんが、arrayの要素を調節すれば以下のように分けられないこともありません。$$\left[\begin{array}{c:c}{\begin{array}{cc}1 & 4 \\ 2 & 3 \\ 0 & 0 \\ 0 & 0 \end{array}} &{\begin{array}{cc} 0 & 0 \\ 0 & 0 \\ \hdashline 1 & 2 \\ 7 & 1 \end{array}} \end{array}\right]$$

\left[\begin{array}{c:c}{\begin{array}{cc}1 & 4 \\ 2 & 3 \\ 0 & 0 \\ 0 & 0 \end{array}} &{\begin{array}{cc} 0 & 0 \\ 0 & 0 \\ \hdashline 1 & 2 \\ 7 & 1 \end{array}} \end{array}\right]

とすると片側だけ分割できますが、何となく微妙な感じですね・・・。良い方法をご存知の方はご教示頂けると幸いです。


階段的に分割することもできなくはないですが、行列の成分を細かく調整する必要があるのでかなり面倒です。

 

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です