Как я могу иметь разрывы строк в моих длинных уравнениях LaTeX?


136

Мое уравнение очень длинное. Как заставить его продолжить на следующей строке, а не уйти со страницы?


Я бы спросил, действительно ли ты хочешь это сделать. Многострочные уравнения будут очень трудно читать. Можно ли разбить ваше уравнение на несколько (более коротких) уравнений?
pkaeding

Ответы:


135

Если ваше уравнение не помещается в одну строку, то, multlineвероятно, вам нужна среда:

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

Если вам также необходимо некоторое отношение к первой части, вы можете использовать split:

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

Обе среды требуют amsmathпакета.

Смотрите также, alignedкак указано в ответе ниже .


По моему опыту, не может быть новой строки в средах с многострочным уравнением
LEDfan

10

Не настраивая свою математическую среду для обрезки, вы можете принудительно задать новую строку с двумя обратными слешами в такой последовательности:

Bla Bla \\ Bla Bla in another line

Проблема с этим заключается в том, что вам нужно будет определить, где линия может закончиться, и заставить ее всегда иметь разрыв строки. С уравнениями, а не с текстом, я предпочитаю этот ручной способ.

Вы также можете использовать, \\*чтобы предотвратить запуск новой страницы.


5

Есть несколько способов справиться с этим. Во-первых, и, возможно, лучше всего, переработать ваше уравнение, чтобы оно не было таким длинным; это вероятно нечитаемо, если это так долго.

Если это так, ознакомьтесь с кратким руководством по математике AMS, чтобы узнать, как справиться с этим. (на второй странице)

Лично я бы использовал среду выравнивания, чтобы можно было точно контролировать разрыв и выравнивание. например

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

который выстроит в линию первые плюсы каждой строки ... но, очевидно, вы можете установить выравнивания где угодно.


Для чего нужна среда align * относительно среды выравнивания (со звездочкой и без звездочки)?
Йоханнес Лемонде

1
звездочка говорит ему пропустить числа для линий уравнения.
Ти Джей Эллис

5

Еще не упомянутый здесь, другой выбор - среда aligned, опять же из пакета 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

Я думаю, что я обычно использовал eqnarray или что-то в этом роде. Это позволяет вам сказать

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

и он будет выровнен по & & ... Как упомянул pkaeding, трудно читать, но когда у вас будет такое длинное уравнение, его будет трудно читать, несмотря ни на что ... (* делает это не иметь номер уравнения, IIRC)


3
К вашему сведению, AMS рекомендует не использовать среды eqnarray, потому что они «создают непоследовательный интервал между знаками равенства и не пытаются предотвратить перепечатку тела уравнения и номера уравнения». - не совсем применимо здесь, но полезно знать; хорошая старая среда может позаботиться о большинстве таких обстоятельств.
Ти Джей Эллис

Есть ли способ сделать это одно число также уравнением? Если я вставлю метку, я смогу сослаться на нее по номеру, но она не будет напечатана в правой части уравнения.
хенрикстроем


3

multlineЛучше всего использовать. Вместо этого вы можете использовать dmath,split как хорошо.

Вот пример:

\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

использование eqnarray и\nonumber

пример:

\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

Это сработало для меня при использовании mathtoolsпакета.

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

1

ПРОСТО ОТВЕТ ЗДЕСЬ

\begin{equation}
\begin{split}

equation \\
here

\end{split}
\end{equation}

Это то, что сработало лучше для меня. Функция {split} была ключевой.
Хизер Клэкстон

0

Чтобы решить эту проблему, я использовал массив массивов в среде уравнений следующим образом:

\begin{equation}
    \begin{array}{r c l}
       first Term&=&Second Term\\
                 &=&Third Term
    \end{array}
\end{equation}
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.