Jakym zpusobem vysazet matici?
Petr Sojka
sojka at informatics.muni.cz
Fri Feb 2 00:37:40 CET 2001
On Thu, Feb 01, 2001 at 10:13:31PM +0100, Suchanek Jaroslav wrote:
Preji dobry den,
> mam problem s jednou matici. Odpoved jsem jiz hledal i v TeXbook-u, ale
> nenasel jsem uspokojive reseni.
>
> Matice vypada asi takto:
>
> S a b c
> _ _
> S |1 0 1 0|
> [=] = a |1 0 0 0|
> b |0 0 0 0|
> c |0 0 0 0|
> - -
> Jako kdyby byla jedna matice, ktera je ohranicena hranatymi zavorkami,
> vnorena do jine. V TeX-u existuje prikaz \bordermatrix, ale ten generuje
> kulate zavorky, a mne se nepodarilo jej predefinovat.
> Text pisi v LaTeX-u, takze je mozne i jine reseni.
V TeXbooku reseni samozrejme je, mirnou modifikaci kodu plaintexu
na strane 361 a z prikladu na strane 177 ihned dostavame:
\documentclass{article}
\makeatletter
\newdimen\p at renwd
\font\tenex=cmex10 % math extension
\setbox0=\hbox{\tenex 2} \p at renwd=\wd0 % width of big upper left
\def\mojebordermatrix#1{\begingroup \m at th
\setbox\z@\vbox{\def\cr{\crcr\noalign{\kern2\p@\global\let\cr\endline}}%
\ialign{$##$\hfil\kern2\p@\kern\p at renwd&\thinspace\hfil$##$\hfil
&&\quad\hfil$##$\hfil\crcr
\omit\strut\hfil\crcr\noalign{\kern-\baselineskip}%
#1\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-\p at renwd\left[\kern-\wd\@ne
\global\setbox\@ne\vbox{\box\@ne\kern2\p@}%
\vcenter{\kern-\ht\@ne\unvbox\z@\kern-\baselineskip}\,\right]$}%
\null\;\vbox{\kern\ht\@ne\box\tw@}\endgroup}
\makeatother
\begin{document}
$$M=\mojebordermatrix{&S&a&b&c\cr
S &1&0&1&0\cr
a &1&0&0&0\cr
b &0&0&0&0\cr
c &0&0&0&0\cr}$$
\end{document}
> Predem dekuji za napady.
Neni zac.
S pozdravem,
Petr Sojka, [CS]TUG
More information about the csTeX
mailing list