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.