Wie kann ich Zeilenumbrüche in meinen langen LaTeX-Gleichungen haben?


135

Meine Gleichung ist sehr lang. Wie kann ich es schaffen, in der nächsten Zeile fortzufahren, anstatt die Seite zu verlassen?


Ich würde fragen, ob Sie das wirklich wollen. Mehrzeilige Gleichungen sind sehr schwer zu lesen. Ist es möglich, Ihre Gleichung in mehrere (kürzere) Gleichungen aufzuteilen?
pkaeding

Antworten:


135

Wenn Ihre Gleichung nicht in eine einzelne Zeile passt, ist die multlineUmgebung wahrscheinlich genau das, was Sie brauchen:

\begin{multline}
    first part of the equation \\
    = second part of the equation
\end{multline}

Wenn Sie auch eine Ausrichtung zum ersten Teil benötigen, können Sie Folgendes verwenden split:

\begin{equation}
    \begin{split}
        first part &= second part #1 \\
        &= second part #2
    \end{split}
\end{equation}

Beide Umgebungen erfordern das amsmathPaket.

Siehe auch alignedwie in einer Antwort unten ausgeführt .


Nach meiner Erfahrung kann es in Umgebungen mit
mehreren

10

Ohne Ihre mathematische Umgebung so zu konfigurieren, dass sie abgeschnitten wird, können Sie eine neue Zeile mit zwei umgekehrten Schrägstrichen in einer Sequenz wie der folgenden erzwingen:

Bla Bla \\ Bla Bla in another line

Das Problem dabei ist, dass Sie bestimmen müssen, wo eine Linie wahrscheinlich enden wird, und erzwingen müssen, dass dort immer ein Zeilenumbruch auftritt. Bei Gleichungen anstelle von Text bevorzuge ich diesen manuellen Weg.

Sie können auch \\*verhindern, dass eine neue Seite gestartet wird.


5

Es gibt verschiedene Möglichkeiten, wie Sie damit umgehen können. Erstens und vielleicht am besten ist es, Ihre Gleichung so zu überarbeiten, dass sie nicht so lang ist. es ist wahrscheinlich unlesbar, wenn es so lange dauert.

Wenn dies der Fall sein muss, lesen Sie im AMS Short Math Guide nach, wie Sie damit umgehen können. (auf der zweiten Seite)

Persönlich würde ich eine Ausrichtungsumgebung verwenden, damit das Brechen und Ausrichten präzise gesteuert werden kann. z.B

\begin{align*}
   x&+y+\dots+\dots+x_100000000\\
   &+x_100000001+\dots+\dots
\end{align*}

Das würde die ersten Pluszeichen jeder Zeile ausrichten ... aber natürlich können Sie die Ausrichtungen festlegen, wo immer Sie möchten.


Wofür ist die Align * -Umgebung in Bezug auf die Align-Umgebung gut (mit oder ohne Sternchen)?
Johannes Lemonde

1
Das Sternchen weist ihn an, Zahlen für die Gleichungslinien wegzulassen.
TJ Ellis

5

Hier noch nicht erwähnt, ist eine andere Wahl die Umgebung aligned, wieder aus dem Paket amsmath:

\documentclass{article}
\usepackage{amsmath}

\begin{document}

\begin{equation}
  \begin{aligned}
    A & = B + C\\
      & = D + E + F\\
      & = G
  \end{aligned}
\end{equation}

\end{document}

4

Ich glaube, ich habe normalerweise Eqnarray oder so benutzt. Es lässt dich sagen

\begin{eqnarray*}
    x &=& blah blah blah \\ 
      & & more blah blah blah \\
      & & even more blah blah
\end{eqnarray*}

und es wird durch das & & ausgerichtet ... Wie bereits erwähnt, ist es schwer zu lesen, aber wenn Sie eine so lange Gleichung haben, wird es schwer zu lesen sein, egal was ... (Das * macht es keine Gleichungsnummer haben, IIRC)


3
Zu Ihrer Information empfiehlt das AMS, keine Eqnarray-Umgebungen zu verwenden, da diese "einen inkonsistenten Abstand der Gleichheitszeichen erzeugen und keinen Versuch unternehmen, ein Überdrucken des Gleichungskörpers und der Gleichungsnummer zu verhindern". - hier nicht wirklich anwendbar, aber gut zu wissen; Eine gute alte Ausrichtungsumgebung kann sich um die meisten dieser Umstände kümmern.
TJ Ellis

Gibt es eine Möglichkeit, diese eine Zahl auch zur Gleichung zu machen? Wenn ich ein Etikett einfüge, kann ich es anhand der Nummer referenzieren, aber es wird nicht auf der rechten Seite der Gleichung gedruckt.
Henrikstroem

3

Ich habe das benutzt \begin{matrix}

\begin{equation}
\begin{matrix}
    line_1 \\ 
    line_2 \\ 
    line_3
\end{matrix}
\end{equation}

3

multlineist am besten zu verwenden. Stattdessen können Sie verwenden dmath, splitauch.

Hier ist ein Beispiel:

\begin{multline}
  {\text {\bf \emph {T(u)}}} ={  \alpha *}{\frac{\sum_{i=1}^{\text{\bf \emph {I(u)}}}{{\text{\bf \emph {S(u,i)}}}* {\text {\bf \emph {Cr(P(u,i))}}} * {\text {\bf \emph {TF(u,i)}}}}}{\text {\bf \emph {I(u)}}}}  \\
   +{  \beta *}{\frac{\sum_{i=1}^{\text{\bf \emph {$I_h$(u)}}}{{\text{\bf \emph {S(u,i)}}}* {\text {\bf \emph {Cr(P(u,i))}}} * {\text {\bf \emph {TF(u,i)}}}}}{\text {\bf \emph {$I_h$(u)}}}}
\end{multline}

2

Verwenden Sie eqnarrayund\nonumber

Beispiel:

\begin{eqnarray}
    sample = R(s,\pi(s),s') + \gamma V^{\pi} (s') \nonumber \\
    \label{eq:temporal-difference}
     V^{\pi}_{k+1}(s) = (1-\alpha)V^{\pi}(s) - \alpha[sample]
\end{eqnarray}

2

Dies funktionierte bei mir während der Verwendung des mathtoolsPakets.

\documentclass{article}
\usepackage{mathtools}
\begin{document}
    \begin{equation}
        \begin{multlined}
            first term \\
            second term                 
        \end{multlined}
    \end{equation}
\end{document}

1

EINFACHE ANTWORT HIER

\begin{equation}
\begin{split}

equation \\
here

\end{split}
\end{equation}

Das hat bei mir am besten funktioniert. Die {split} Funktion war der Schlüssel.
Heather Claxton

0

Um dieses Problem zu lösen, habe ich die Array-Umgebung in der Gleichungsumgebung wie folgt verwendet:

\begin{equation}
    \begin{array}{r c l}
       first Term&=&Second Term\\
                 &=&Third Term
    \end{array}
\end{equation}
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.