Seite 1 von 1

Zeilenabstand in array-Umgebung

Verfasst: Mi 23. Sep 2009, 16:57
von Bijick
Hallo,

in diesem Formel-Array sind die Zeilenabstände sehr klein, alles sieht so gedrängt aus.
\documentclass{article}
\usepackage{amsmath}
\usepackage[ngerman]{babel}

\begin{document}
$$\begin{array}{rcl}
\multicolumn{3}{l}{\frac{\text{d}}{\text{d}t} \;
q(X_{x_0}^\varepsilon(\hat\omega,t) + \varepsilon (B(\hat\omega,s)
-B(\hat\omega,t)))}\\
%
&=&\frac{1}{2} \frac{\text{d}}{\text{d}t}
\left(X_{x_0}^\varepsilon(\hat\omega,t) + \varepsilon
(B(\hat\omega,s) - B(\hat\omega,t))\right)^{\top}
\left(X_{x_0}^\varepsilon(\hat\omega,t) +
\varepsilon (B(\hat\omega,s) - B(\hat\omega,t))\right)\\
%
&=& \left(X_{x_0}^\varepsilon(\hat\omega,t)+\varepsilon
(B(\hat\omega,s) - B(\hat\omega,t))\right) ^\top \left(
\frac{\text{d}}{\text{d}t} (X_{x_0}^\varepsilon(\hat\omega,t) -
\varepsilon (B(\hat\omega,t) - B(\hat\omega,s)))\right)\\
\end{array}$$

\end{document}
Kann man die Zeilenabstände manuell vergrößern?

Danke, Bijick

P.S. Die Antwort bitte für Dummies formulieren. :)

Verfasst: Mi 23. Sep 2009, 20:02
von phi
Hallo,

die Array-Umgebung ist für Tabellen gedacht. Für Formeln ist sie unbrauchbar und umständlich. Benutze für solche Konstruktionen die Umgebungen aus amsmath und mathtools:
\documentclass{article} 
\usepackage{amsmath}
\usepackage{mathtools}
\usepackage[ngerman]{babel} 

\begin{document}

\begin{equation*}
  \begin{split}
    \MoveEqLeft \frac{\text{d}}{\text{d}t} \; q(X_{x_0}^\varepsilon(\hat\omega,t) + \varepsilon (B(\hat\omega,s) -B(\hat\omega,t))) \\
    &=\frac{1}{2} \frac{\text{d}}{\text{d}t} \left(X_{x_0}^\varepsilon(\hat\omega,t) + \varepsilon (B(\hat\omega,s) - B(\hat\omega,t))\right)^{\top} \left(X_{x_0}^\varepsilon(\hat\omega,t) + \varepsilon (B(\hat\omega,s) - B(\hat\omega,t))\right) \\
    &= \left(X_{x_0}^\varepsilon(\hat\omega,t)+\varepsilon (B(\hat\omega,s) - B(\hat\omega,t))\right) ^\top \left(\frac{\text{d}}{\text{d}t} (X_{x_0}^\varepsilon(\hat\omega,t) - \varepsilon (B(\hat\omega,t) - B(\hat\omega,s)))\right)\\ 
  \end{split}
\end{equation*}

\end{document}

Re: Zeilenabstand in array-Umgebung

Verfasst: Mi 23. Sep 2009, 20:31
von Stefan Kottwitz
Hallo Bijick,

ich unterstütze phi's Empfehlung.
Bijick hat geschrieben: Kann man die Zeilenabstände manuell vergrößern?
Mit seinem Beispiel kannst Du zusätzlich den Zeilenabstand durch Änderung der Länge \jot anpassen, z.B.:
\setlength{\jot}{20pt}
Stefan

Verfasst: Do 24. Sep 2009, 08:12
von Schweinebacke
In l2tabu kann man außerdem lesen, dass man $$...$$ u. a. wegen dann nicht funktionierender vertikaler Abstände meiden soll.

Ansonsten: Ich denke, array kann man schon verwenden, beispielsweise für eine Matrix. Für Gleichungssysteme sollte man aber wirklich den Vorschlägen folgen und amsldoc.pdf lesen.

Verfasst: Do 24. Sep 2009, 10:25
von Bijick
Hallo,

vielen Dank für die Antworten. Leider funktioniert der Beispiel-Code nicht. Ich bekomme die Fehlermeldung
! Undefined control sequence.
<argument> \split@tag \begin {split} \MoveEqLeft
\frac {\text {d}}{\text {d}...
l.13 \end{split}
Wenn ich den \MoveEqLeft-Befehl weglasse, läuft es durch, aber die zweite und dritte Zeile sind zu weit rechts.

Ich benutze als Software WinEdt und kompiliere einfach per Knopfdruck "Texify" oder "Latex". Muss ich noch etwas anderes machen, damit \MoveEqLeft funktioniert?

Grüße
Bijick

Verfasst: Do 24. Sep 2009, 10:53
von phi
Bijick hat geschrieben:Leider funktioniert der Beispiel-Code nicht.
Grundsätzlich funktioniert er problemlos. Hast du eventuell eine alte Version von mathtools, die den Befehl noch nicht enthält? Laut Dokumentation ist \MoveEqLeft „erst“ seit Juni 2008 enthalten.

Verfasst: Do 24. Sep 2009, 11:19
von Bijick
Hallo,

leider hat das Aktualisieren von mathtools auch nichts gebracht. \MoveEqLeft funktioniert immer noch nicht. Die Antwort auf meine Frage habe ich jetzt von einer Kollegin bekommen: [1ex] nach jeder Zeile. Manchmal kann es so einfach sein. :D
\documentclass{article}
\usepackage{amsmath}
\usepackage[ngerman]{babel}

\begin{document}
$$\begin{array}{rcl}
\multicolumn{3}{l}{\frac{\text{d}}{\text{d}t} \;
q(X_{x_0}^\varepsilon(\hat\omega,t) + \varepsilon (B(\hat\omega,s)
-B(\hat\omega,t)))}\\[1ex]
%
&=&\frac{1}{2} \frac{\text{d}}{\text{d}t}
\left(X_{x_0}^\varepsilon(\hat\omega,t) + \varepsilon
(B(\hat\omega,s) - B(\hat\omega,t))\right)^{\top}
\left(X_{x_0}^\varepsilon(\hat\omega,t) +
\varepsilon (B(\hat\omega,s) - B(\hat\omega,t))\right)\\[1ex]
%
&=& \left(X_{x_0}^\varepsilon(\hat\omega,t)+\varepsilon
(B(\hat\omega,s) - B(\hat\omega,t))\right) ^\top \left(
\frac{\text{d}}{\text{d}t} (X_{x_0}^\varepsilon(\hat\omega,t) -
\varepsilon (B(\hat\omega,t) - B(\hat\omega,s)))\right)\\
\end{array}$$

\end{document}
Danke trotzdem, vielleicht nützt es ja jemand anderem noch.

Grüße
Bijick

Zeilenabstände in arrays

Verfasst: Do 24. Sep 2009, 11:38
von Stefan Kottwitz
Bijick hat geschrieben:Die Antwort auf meine Frage habe ich jetzt von einer Kollegin bekommen: [1ex] nach jeder Zeile. Manchmal kann es so einfach sein. :D
Oder, statt diesen Abstand in jede Zeile zu schreiben, noch einfacher, nur einmalig
\renewcommand*\arraystretch{1.4}
Das würde generell array-Zeilenabstände strecken. Höhere Werte sind natürlich auch möglich. Vor allem kannst Du an dem Wert auch im Nachhinein noch einfach justieren.

Stefan