作者chiefyue (brightmoon)
看板LaTeX
标题Re: [问题] 怎麽打出矩阵外层标示?
时间Sat Mar 22 18:10:20 2008
※ 引述《erotic (Erotic)》之铭言:
: ※ 引述《chiefyue (brightmoon)》之铭言:
: : 就是我想要在一个正常的矩阵的上方和左方
: : 各再多加一列和一行
: : 像是
: : 1 2 3
: : ┌ ┐
: : 1│* * *│
: : 2│* * *│
: : 3│* * *│
: : └ ┘
: 我找到的范例,请酌参。
: http://i218.photobucket.com/albums/cc34/wdgao/Matrix_Example.jpg
: \[ D = \begin{array}{*{20}c} {\begin{array}{*{20}c} ~~~~~~&~~~~ x_1 ~&~
: x_2 ~&~ x_3 ~& \cdots ~& x_m \,~~ \\ \end{array}} \\
: {\begin{array}{*{20}c} {\begin{array}{*{20}c} A_1 \\ A_2 \\
: A_3 \\ \vdots \\ A_m \\ \end{array}} & {\left[
: {\begin{array}{*{20}c} x_{11} & x_{12} & x_{13} & \cdots & x_{1m} \\
: x_{21} & x_{22} & x_{23}& \cdots & x_{2m} \\ x_{31} & x_{32} & x_{33}
: & \cdots & x_{3m} \\ \vdots & \vdots & \vdots & {} & \vdots
: \\ x_{m1}& x_{m2} & x_{m3} & \cdots & x_{mm} \\ \end{array}} \right]}
: \\ \end{array}} \\ \end{array} \]
结果我自己找到克服的方法了.....
就是在preamble区中写入以下文字:
\makeatletter
\newif \if@borderstar
\def\bordermatrix {\@ifnextchar *{%
\@borderstartrue \@bordermatrix@i }{\@borderstarfalse \@bordermatrix@i
*}%
}
\def\@bordermatrix@i *{\@ifnextchar [{\@bordermatrix@ii }{\@bordermatrix@ii [() ]}}
\def\@bordermatrix@ii [#1]#2{ %
\begingroup
\m@th \@tempdima 8.75\p@\setbox \z@\vbox {%
\def\cr {\crcr \noalign {\kern 2\p@\global \let\cr\endline }}%
\ialign {$##$\hfil \kern 2\p@\kern \@tempdima & \thinspace %
\hfil $##$\hfil && \quad \hfil $##$\hfil \crcr \omit \strut %
\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 {%
$\kern \wd\@ne\kern -\@tempdima \left \@firstoftwo #1%
\if@borderstar \kern 2pt\else \kern -\wd\@ne\fi%
\global \setbox \@ne\vbox {\box \@ne\if@borderstar \else \kern 2\p@\fi}%
\vcenter {\if@borderstar \else \kern -\ht\@ne\fi%
\unvbox \z@\kern -\if@borderstar 2\fi\baselineskip }%
\if@borderstar \kern -2\@tempdima \kern 2\p@\else \,\fi\right \@secondoftwo #1 $%
}\null \;\vbox {\kern \ht\@ne\box\tw@ }%
\endgroup
}
\makeatother
接着就可以在\bordermatrix指令之後加入控制指令
像是[\{\}]或[{[]}]等等以改变分界符号
不过我又有新问题了...
就是要怎麽使矩阵左边多出来的那一行置中对齐呢?
它定义的好像是靠左对齐
我看了以上的定义码还是看不懂可以修改哪里...
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 122.126.24.146
1F:推 jsb:其实这些问题只要安装 kbordermatrix 就行了。 03/22 21:51