Jak mogę mieć podziały wierszy w moich długich równaniach LaTeX?


135

Moje równanie jest bardzo długie. Jak sprawić, by kontynuował w następnym wierszu zamiast opuszczać stronę?


Chciałbym zapytać, czy naprawdę chcesz to zrobić. Równania wieloliniowe będą bardzo trudne do odczytania. Czy można podzielić swoje równanie na wiele (krótszych) równań?
— spodziewany

Odpowiedzi:


135

Jeśli twoje równanie nie mieści się w jednej linii, multlineprawdopodobnie potrzebujesz środowiska:

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

Jeśli potrzebujesz również szacunku dla wyrównania pierwszej części, możesz użyć split:

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

Oba środowiska wymagają amsmathpakietu.

Zobacz także, alignedjak wskazano w odpowiedzi poniżej .


Z mojego doświadczenia wynika, że ​​w środowiskach wieloliniowych i równań nie może być nowej linii
— LEDfan,

10

Bez konfigurowania środowiska matematycznego do przycinania, możesz wymusić nowy wiersz z dwoma ukośnikami odwrotnymi w sekwencji takiej jak ta:

Bla Bla \\ Bla Bla in another line

Problem polega na tym, że będziesz musiał określić, gdzie linia prawdopodobnie się skończy i wymusić, aby zawsze mieć tam przerwanie linii. W przypadku równań zamiast tekstu wolę ten sposób ręczny.

Możesz również użyć, \\*aby zapobiec uruchomieniu nowej strony.


5

Można sobie z tym poradzić na kilka sposobów. Po pierwsze, i być może najlepiej, przerobić swoje równanie, aby nie trwało tak długo; jest prawdopodobnie nieczytelny, jeśli jest tak długi.

Jeśli tak jest, zapoznaj się z krótkim przewodnikiem po matematyce AMS , aby dowiedzieć się, jak sobie z tym poradzić. (na drugiej stronie)

Osobiście użyłbym środowiska wyrównywania, aby można było precyzyjnie kontrolować łamanie i wyrównanie. na przykład

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

które ustawiłyby pierwsze znaki plus w każdej linii ... ale oczywiście możesz ustawić wyrównanie w dowolnym miejscu.


Do czego służy środowisko align * w odniesieniu do środowiska align (z gwiazdką i bez gwiazdki)?
— Johannes Lemonde

1
gwiazdka mówi mu, aby pomijał liczby w liniach równania.
— TJ Ellis,

5

Jeszcze nie wspomniano tutaj, innym wyborem jest środowisko aligned, znowu z pakietu 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

Myślę, że zwykle używałem eqnarray lub czegoś podobnego. Pozwala ci powiedzieć

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

i będzie wyrównywane przez & & ... Jak już wspomniałem, jest trudne do odczytania, ale kiedy masz tak długie równanie, będzie trudne do odczytania bez względu na wszystko ... (* sprawia, że nie mają numeru równania, IIRC)


3
fyi AMS odradza używanie środowisk eqnarray, ponieważ „tworzą one niespójne odstępy między znakami równości i nie podejmują żadnych prób zapobiegania nadrukowaniu treści równania i numeru równania”. - tutaj nie ma zastosowania, ale dobrze wiedzieć; W większości takich sytuacji wystarczy stare, dobre środowisko.
— TJ Ellis

Czy istnieje sposób, aby tę jedną liczbę również uczynić równaniem? Jeśli wstawię etykietę, mogę odwołać się do niej po numerze, ale nie jest ona wydrukowana po prawej stronie równania.
— henrikstroem

3

Użyłem \begin{matrix}

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

3

multlinenajlepiej używać. Zamiast tego możesz użyć dmath,split jak również.

Oto przykład:

\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

Użyj eqnarrayi\nonumber

przykład:

\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

To zadziałało dla mnie podczas używania mathtoolspakietu.

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

1

PROSTA ODPOWIEDŹ TUTAJ

\begin{equation}
\begin{split}

equation \\
here

\end{split}
\end{equation}

To właśnie zadziałało dla mnie najlepiej. Kluczem była funkcja {split}.
— Heather Claxton

0

Aby rozwiązać ten problem, użyłem środowiska tablicy w środowisku równania w następujący sposób:

\begin{equation}
    \begin{array}{r c l}
       first Term&=&Second Term\\
                 &=&Third Term
    \end{array}
\end{equation}
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.