PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : "schoene" Darstellung von Matrizen



dongle
01-05-2007, 20:18
Hallo,
Ich versuche hier gerade, ein paar in Klammern eingefasste Matrizen untereinander darzustellen, so dass die Breite der Spalten (und somit die Breite der ganzen Matrizen) jeweils gleich ist.

Ausserdem brauche ich vor der letzten Spalte einen Trennstrich - Ich habe keinen Weg gefunden, den mit pmatrix etc aus amsmath zu erstellen, darum arbeite ich mit array's.

Einen Weg, um die gleiche Breite zu erzeugen, habe ich mit dem array-package gefunden, das ganze sieht dann so aus:

\newcolumntype{x}{m{24px}}
\left(\begin{array}{*{4}{x}|x}
25 &-20 &-5 &20 &-47 \\
10 & 4 & 5 &15 &-12 \\
15 &-20 &80 & 3 &11 \\
0 &200 &-270 &-45 &282 \\
\end{array}\right)
\\
Allerdings sind die einzelnen Eintraege nun nicht mehr zentriert, wie es bei "c"(statt dem selbstdefinieren "x") der Fall waere, wodurch das Ganze, vor allem bei negativen Zahlen, nicht mehr so schoen aussieht.

Ausserdem bin ich mit der statischen Breite nicht ganz zufrieden, das sollte automatisch gehen (So wie es bei einem einzelnen Array ohne explizite Breitenangabe funktioniert) - das ist vor allem nervig, da das ganze Dokument automatisch von meinem Programm generiert wird, und ich nicht bei allen Eingangsdaten rumprobieren will, was denn nun passt.

Habt ihr irgendwelche Ideen, wie man das vernuenftig machen kann?

Danke schonmal im Voraus,
Dongle

voss
01-05-2007, 23:33
Hallo,
Ich versuche hier gerade, ein paar in Klammern eingefasste Matrizen untereinander darzustellen, so dass die Breite der Spalten (und somit die Breite der ganzen Matrizen) jeweils gleich ist.

Ausserdem brauche ich vor der letzten Spalte einen Trennstrich - Ich habe keinen Weg gefunden, den mit pmatrix etc aus amsmath zu erstellen, darum arbeite ich mit array's.

Einen Weg, um die gleiche Breite zu erzeugen, habe ich mit dem array-package gefunden, das ganze sieht dann so aus:

\newcolumntype{x}{m{24px}}
\left(\begin{array}{*{4}{x}|x}
25 &-20 &-5 &20 &-47 \\
10 & 4 & 5 &15 &-12 \\
15 &-20 &80 & 3 &11 \\
0 &200 &-270 &-45 &282 \\
\end{array}\right)
\\
Allerdings sind die einzelnen Eintraege nun nicht mehr zentriert, wie es bei "c"(statt dem selbstdefinieren "x") der Fall waere, wodurch das Ganze, vor allem bei negativen Zahlen, nicht mehr so schoen aussieht.

Ausserdem bin ich mit der statischen Breite nicht ganz zufrieden, das sollte automatisch gehen (So wie es bei einem einzelnen Array ohne explizite Breitenangabe funktioniert) - das ist vor allem nervig, da das ganze Dokument automatisch von meinem Programm generiert wird, und ich nicht bei allen Eingangsdaten rumprobieren will, was denn nun passt.

Habt ihr irgendwelche Ideen, wie man das vernuenftig machen kann?




\makeatletter
\def\env@matrix{\hskip -\arraycolsep
\let\@ifnextchar\new@ifnextchar
\array{*\c@MaxMatrixCols r}}
\makeatother

$\begin{pmatrix}
25 &-20 &-5 & 20 &\vline& -47 \\
10 & 4 & 5 & 15 &\vline& -12 \\
15 &-20 & 80 & 3 &\vline& 11 \\
0 &200 &-270 &-45 &\vline& 282
\end{pmatrix}$


Herbert