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