Tuesday, July 12, 2011

LaTeX技巧557:如何输入带有行列编号的矩阵

备份一下。

 
 

Sent to you by tony via Google Reader:

 
 

via LaTeX-学习园地 by LaTeX_Fun on 7/9/11

第一行的每一个数字都要和下面的每一列对齐。请问应该怎么输入:

image

【解决方案】

第一种方法:使用bordermatrix命令,mathmode中又增强了其定制功能,参看mathmode的相关内容。该命令有带星号和不带星号命令之分,若是带星号右和下为编号位置,若是不带星号位置相反,上面的例子我们可以用下面的代码输入:

$\bordermatrix{%
& 0 & 1 & 2 \cr
0 & A & B & C \cr
1 & d & e & f \cr
2 & 1 & 2 & 3 \cr
}$

附赠:

$\bordermatrix{%
& 1 & 2 \cr
1 & x1 & x2 \cr
2 & x3 & x4 \cr
3 & x5 & x6
}$

$\bordermatrix*[{[]}]{%
x1 & x2 & 1 \cr
x3 & x4 & 2 \cr
x5 & x6 & 3 \cr
1 & 2
}$


$\bordermatrix*[\{\}]{%
x1 & x2 & 1 \cr
x3 & x4 & 2 \cr
x5 & x6 & 3 \cr
1& 2
}$

 

 

第二种方法:使用blkarray宏包,这个宏包扩展了很多array的功能,灵活定制如上这类公式。

如上样式的实现代码如下:

\begin{blockarray}{cccc}
1&2&3&4\\
\begin{block}{(cccc)}
4& 5 & 6& 7\\
8& 9 & 10 & 11\\
1&2&3&4\\
\end{block}
\end{blockarray}

 

 

第三种方法是:使用multirow的扩展包bigdelim。注意需要同时加载这两个包。

如:

\begin{align*}
  \begin{matrix}
&u_1 & u_2 \\
u_1\ldelim[{2}{0.1cm}&1&0&\rdelim]{2}{0.1cm}\\
u_2 &0&1\\
\end{matrix}
& \qquad \qquad
\begin{matrix}  & T_1 & T_2 \\
u_1\ldelim[{2}{0.1cm}&1&0&\rdelim]{2}{0.1cm}\\
u_2&1&0 \\
\end{matrix}
\end{align*}

可显示为:

image

实际上,我们自己思考也可用array来实现,只是要相对罗嗦一点,比如:

$P=\begin{array}{@{}r@{}c@{}c@{}c@{}c@{}l@{}}
    & ss & sc & cs & cc  \\
    \left.\begin{array}
    {c} ss \\sc \\cs \\cc \end{array}\right(
                    & \begin{array}{c} 0.95 \\ 0 \\ 0.7\\ 0 \end{array}
                    & \begin{array}{c} 0.05 \\ 0 \\ 0.3 \\ 0 \end{array}
                         & \begin{array}{c} 0 \\ 0.4 \\ 0\\ 0.2 \end{array}
                         & \begin{array}{c} 0 \\ 0.6 \\ 0 \\ 0.8 \end{array}
                          & \left)\begin{array}{c} \\ \\ \\  \\ \end{array}\right.
  \end{array}$

可显示为:

image

 

可见,LaTeX的扩展性太强大了,望您多多细心发现,会有意外惊喜哦!

 

比如还有些作者写了kbordermatrix包,也可实现类似功能。简单列代码如下:

\kbordermatrix{\mbox{indices}&1&2&3&4\\
1&M_{1,1}&M_{1,2}&M_{1,3}&M_{1,4}\\
2&M_{2,1}&M_{2,2}&M_{2,3}&M_{2,4}
}

参看:http://www.hss.caltech.edu/~kcb/TeX/kbordermatrix.pdf


 
 

Things you can do from here:

 
 

No comments:

Post a Comment