2009-10-16 4 views
23

Ich versuche, eine Gleichung in einer neuen Zeile hinzuzufügen. Das Problem ist, dass die Gleichung für die Linie zu lang ist, und ich muss es manuell brechen. Ansonsten überlappt es nur die rechte Spalte oder die rechten Ränder (und sieht hässlich aus ...). Gibt es eine Möglichkeit LaTeX kann die Gleichung für mich bremsen, so scheint es nett?Wie breche ich eine lange Gleichung über Linien?

Ich füge meine Latex-Code:

\begin{align*} 
f(n)-f(0) &= A(n)-B(n)-C(n)-D(n)\cdot d-\left(A(0)-B(0)-C(0)-D(0)\cdot d\right) \\ 
      &= A(n)-0-X-D(n)\cdot d-\left(0-0-0-0\right) \\ 
      &= A(n)-X-D(n)\cdot d 
\end{align*} 

Die problematische Zeile ist die erste Zeile, die zu lang ist.

+0

Dies ist nicht was align * bedeutet: die Zeilen werden als separate Gleichungen behandelt, während es (IMO) eine Gleichung ist. Verwenden Sie stattdessen \ [\ begin {split} .... \ end {split} \]. Wenn Sie sich entscheiden, alles zu nummerieren, erhält der Block eine Nummer anstelle von drei. – Martijn

Antwort

13

Das breqn Paket wurde entwickelt, um lange Gleichungen automatisch aufzuteilen. Es funktioniert sehr gut in den meisten Situationen, aber es ist nicht so ausgereift wie das amsmath Paket. Hier ist, wie Sie Ihr Beispiel Gleichung schreiben würde:

 
\documentclass{article} 
\usepackage{breqn} 
\begin{document} 
\begin{dmath} 
f(n)-f(0) = A(n)-B(n)-C(n)-D(n)\cdot d-\left(A(0)-B(0)-C(0)-D(0)\cdot d\right) 
      = A(n)-0-X-D(n)\cdot d-\left(0-0-0-0\right) 
      = A(n)-X-D(n)\cdot d 
\end{dmath} 
\end{document} 

Hinweis gibt es keine Markup für die Ausrichtung oder Zeilenumbrüche, aber die Ausgabe sieht im Wesentlichen die gleiche wie wenn Sie align verwendet.

+0

Wow! Das funktioniert wirklich sehr gut! Dies passt zu der ganzen Idee von Latex, dass Sie sich keine Sorgen machen müssen, wenn Ihr Code in einem mehrspaltigen kleinen Schriftformat oder einem unisäulengroßen Schrifttyp vorliegt. Vielen Dank! – Anna

+0

Nachdem ich etwas mehr herumgespielt habe, sehe ich, dass es nicht das Allheilmittel ist, und ich werde manchmal auch die geteilte Umgebung benutzen müssen.Aber das ist trotzdem nett. – Anna

0

Soweit ich weiß, ist dies nicht möglich. Wenn Sie innerhalb eines Displays arbeiten, sind Sie für Zeilenumbrüche verantwortlich. Wie man Zeilenumbrüche macht und im Falle von Klammern mit der nächsten Zeile fortfährt, ist eine schwierige Frage für den Menschen (siehe zum Beispiel den entsprechenden Abschnitt in Grätzer, "Math in LaTeX"), geschweige denn für einen Computer.

Beispiel: Wenn Sie die erste Zeile nach \ left (, Sie brauchen a \ rechts. Am Ende, und \ links. Am Anfang der nächsten Zeile (sonst erhalten Sie einen Fehler) sehen Sie, würden Sie den Anfang der nächsten Zeile weiter rechts als die von \ left (

+0

Ich bin mir nicht sicher, ob ich dem zustimme. Latex gelingt es, Wörter und Sätze sehr gut in die Ränder zu setzen. +1 für die Anfangs- und Ende-Split-Spitze. – Anna

+0

breqn schafft es tatsächlich, das Problem recht gut zu lösen. Und wenn es schief geht, können Sie immer manuell zu Suite brechen. –

1

der Standardansatz hergestellt Klammer möchte ich in der Vergangenheit verwendet habe, ist ein eqnarray. B. this page.

+0

Eqnarray scheint nett. Ich bin mir nicht sicher, ob es besser ist als Split oder nicht, und warum. – Anna

+3

Verwenden Sie nicht 'eqnarray'! http://www.tug.org/pracjourn/2006-4/madsen –

+0

In der Tat, "align" und "align", die Familie von Umgebungen, die von der OP verwendet werden, sind der Weg zu gehen, wenn Sie etwas verwenden möchten wie 'eqnarray'. – njsg

10

Normalerweise bevorzuge ich das mit dem amsmath Paket und unter Verwendung der split Struktur.Es gibt eine Reihe von nützlichen Strukturen für die Aufteilung von Equatio ns über Leitungen, aber das ist normalerweise am einfachsten zu verwenden.

Viele TeX-Installationen haben bereits das Paket, aber Sie können es auch von the AMS website bekommen.

+0

Danke für den Link zur ams-Website. Es hat ein paar Jems drin. – Anna

Verwandte Themen