Forum:  Textsatz mit LaTeX
Thema: \(\begingroup\) Matrixumgebung mit Brüchen sieht eklig aus\(\endgroup\)
Themen-Übersicht
Ehemaliges_Mitglied
Neu
Dabei seit: 00.00.0000
Mitteilungen: 0
Aus:
Themenstart: 2008-05-05 06:31
\(\begingroup\)
Hallo,

ich schreibe gerade einige Matrizen und habe nun eine Matrix mit vielen Brüchen, welche von der Zeilenhöhe sehr eng aneinander stehen und dadurch schwer zu lesen sind. Außerdem verschieben sich die Einträge sobald ich ein Vorzeichen einsetze. Hier ein Beispiel:
LaTeX
\[\ \begin{pmatrix}
     1 & \frac{4}{3} & \frac{5}{3} &|\frac{22}{3}\\
      0 & -\frac{8}{3} & \frac{2}{3} & |-\frac{14}{3}\\
      0 & \frac{2}{3} & \frac{4}{3} & |\frac{8}{3}\\
    \end{pmatrix}\]

Kann man das vielleicht irgendwie umdefinieren bzw. gibt's eine Umgebung, die das besser darstellt?

Grüße, Helex!
\(\endgroup\)
\(\endgroup\)

Kay_S
Senior
Dabei seit: 06.03.2007
Mitteilungen: 1292
Aus: Koblenz (früher: Berlin)
Beitrag No.1, eingetragen 2008-05-05 10:58
\(\begingroup\)
Hi,

Für "schöne" Brüche kann man das Package nicefrac benutzen. Den senkrechten Strich erhält man z. B. mit der Array-Umgebung, in der man auch gleich die Ausrichtung regeln kann.

Latex
\usepackage{nicefrac}
 
\[\
\left( \begin{array}{rrr|r}
     1 & \nicefrac{4}{3} & \nicefrac{5}{3} & \nicefrac{22}{3}\\
     0 & -\nicefrac{8}{3} & \nicefrac{2}{3} & -\nicefrac{14}{3}\\
     0 & \nicefrac{2}{3} & \nicefrac{4}{3} & \nicefrac{8}{3}\\
\end{array}\right)
\]

Kay
\(\endgroup\)
\(\endgroup\)

Stefan_K
Senior
Dabei seit: 13.07.2005
Mitteilungen: 4303
Aus: Hamburg
Beitrag No.2, eingetragen 2008-05-05 10:59

Hallo Helex!

Die Matrixeinträge sind ja spaltenweise zentriert ausgerichtet. Man könnte das rechtsbündig machen, wenn das Vorzeichen Dir die Ausrichtung stört. Hier einmal \env@matrix aus amsmath umprogrammiert, um das mit einem optionalen Parameter l, r oder c (default) zu regeln:
LaTeX
\makeatletter
\renewcommand*\env@matrix[1][c]{\hskip -\arraycolsep
  \let\@ifnextchar\new@ifnextchar
  \array{*\c@MaxMatrixCols #1}}
\makeatother
Nun kannst Du schreiben: \begin{pmatrix}[r] ... Die | Symbole sollen sicher auch übereinander stehen? Dafür kannst Du mit \hphantom den Raum der Vorzeichen schaffen oder eine eigene Matrixspalte für die | anlegen. Kann es sein, dass Dir eine durchgehende Linie lieber wäre? Das könnte man mit dem bigdelim-Paket machen oder \left( ... \right.\left| ... und matrix-Umgebungen (ohne p).

Viele Grüße,

StefanK

edit: noch wg. der Zeilenhöhe dafür ginge z.B.: \renewcommand*\arraystretch{1.4}



[Die Antwort wurde vor Beitrag No.1 begonnen.]
[ Nachricht wurde editiert von Stefan_K am 05.05.2008 11:01:48 ]


Ehemaliges_Mitglied
Neu
Dabei seit: 00.00.0000
Mitteilungen: 0
Aus:
Beitrag No.3, vom Themenstarter, eingetragen 2008-05-05 14:41

@ Kay und Stefan_K,

vielen dank, beides hat funktioniert, aber die schickenb Brüche von Kay find ich einfach nur bombig und werd sie in Zukunft öfters verwenden. Eine Frage an dich Stefan_K: mit diesen \phantom Befehl kann man sich Leerraum schaffen, ja? Aber hast du mal ein Beispiel parat, wo sich das als nützlich erweisen kann, bei meine array Umgebung kann ich diesen Leeraum ja auch einfach durch eine leere Zeile ergänzen.

Vielen dank, Helexsche Grüße


Stefan_K
Senior
Dabei seit: 13.07.2005
Mitteilungen: 4303
Aus: Hamburg
Beitrag No.4, eingetragen 2008-05-06 15:25

Hallo Helex!

Ab und zu kann man einen Leerraum gebrauchen, der sich exakt an einem Text oder an einem Symbol orientiert. Etwa für:
  • Anpassung eines subscripts oder superscripts an bestimmte Zeichengröße statt am voranstehenden Zeichen orientiert, damit es über eine Gesamtformel in der Höhe gleichmäßig aussieht (\vphantom),
  • wenn man \left( ... \right) in zwei Klammerungen aufspalten muss mit \right. und \left., weil sich eine lange Formel über mehrere Zeilen erstreckt, können sich die Klammerhöhen dann unterscheiden, das kann man mit \vphantom korrigieren,
  • Linien oder Vektorpfeile, die sich am unterstehenden Symbol orientieren, stehen ggf. in unterschiedlicher Höhe, denn z.B. ist b höher als a. Das kann man mit \vphantom{b} korrigieren.
  • wenn Text horizontal an anderem Text ausgerichtet werden soll, ohne Tabelle o.ä. kann man das schnell mit \hphantom erreichen.

Das fiel mir auf die Schnelle ein. Es kann eben mal passieren, dass man eine Ausrichtung braucht, die an einem Text oder einem gewissen Symbol in bestimmter Größe (etwa dem größten auftretenden unter mehreren) orientert ist, und so kann man das korrigieren.

Siehe auch plain TeX im Forum bei unserer LaTeX-AG, da gibts Links auf Erklärung und Beispiele.

Viele Grüße,

StefanK





Dieses Forumbeitrag kommt von Matroids Matheplanet
http://http://matheplanet.com

Die URL für dieses Forum-Thema ist:
http://http://matheplanet.com/default3.html?topic=102403=409
Druckdatum: 2018-01-16 20:39