Comment puis-je avoir des sauts de ligne dans mes longues équations LaTeX?


136

Mon équation est très longue. Comment puis-je le faire continuer sur la ligne suivante plutôt que de quitter la page?


Je vous demanderais si vous voulez vraiment faire cela. Les équations multilignes seront très difficiles à lire. Est-il possible de diviser votre équation en plusieurs équations (plus courtes)?
pkaeding

Réponses:


135

Si votre équation ne tient pas sur une seule ligne, l' multlineenvironnement est probablement ce dont vous avez besoin:

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

Si vous avez également besoin d'un alignement par rapport à la première pièce, vous pouvez utiliser split:

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

Les deux environnements nécessitent le amsmathpackage.

Voir également alignedcomme indiqué dans une réponse ci-dessous .


D'après mon expérience, il ne peut pas y avoir de nouvelle ligne dans les environnements
multi-

10

Sans configurer votre environnement mathématique pour découper, vous pouvez forcer une nouvelle ligne avec deux contre-obliques dans une séquence comme celle-ci:

Bla Bla \\ Bla Bla in another line

Le problème avec cela est que vous devrez déterminer où une ligne est susceptible de se terminer et forcer à toujours y avoir un saut de ligne. Avec des équations, plutôt que du texte, je préfère cette méthode manuelle.

Vous pouvez également utiliser \\*pour empêcher le démarrage d'une nouvelle page.


5

Il y a plusieurs façons de gérer cela. Tout d'abord, et peut-être mieux, est de retravailler votre équation afin qu'elle ne soit pas si longue; il est probablement illisible s'il est aussi long.

Si tel doit être le cas, consultez le guide mathématique AMS abrégé pour découvrir comment le gérer. (sur la deuxième page)

Personnellement, j'utiliserais un environnement d'alignement, de sorte que la rupture et l'alignement puissent être contrôlés avec précision. par exemple

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

qui alignerait les premiers signes positifs de chaque ligne ... mais évidemment, vous pouvez définir les alignements où vous le souhaitez.


À quoi sert l'environnement align *, par rapport à l'environnement align (avec versus sans astérisque)?
Johannes Lemonde

1
l'astérisque lui dit d'omettre les nombres pour les lignes d'équation.
TJ Ellis

5

Pas encore mentionné ici, un autre choix est l'environnement aligned, toujours à partir du package 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

Je pense que j'utilisais généralement eqnarray ou quelque chose comme ça. Ça te laisse dire

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

et il sera aligné par le & & ... Comme pkaeding l'a mentionné, c'est difficile à lire, mais quand vous avez une équation aussi longue, ça va être difficile à lire quoi qu'il arrive ... (Le * le rend pas de numéro d'équation, IIRC)


3
Pour info, l'AMS recommande de ne pas utiliser d'environnements eqnarray car ils «produisent un espacement incohérent des signes égaux et ne tentent pas d'empêcher la surimpression du corps de l'équation et du numéro de l'équation». - pas vraiment applicable ici, mais bon à savoir; un bon vieux environnement d'alignement peut prendre en charge la plupart de ces circonstances.
TJ Ellis

Y a-t-il un moyen de faire de ce nombre une équation également? Si j'insère une étiquette, je peux la référencer par un numéro, mais elle n'est pas imprimée sur le côté droit de l'équation.
henrikstroem

3

J'ai utilisé le \begin{matrix}

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

3

multlineest préférable d'utiliser. Au lieu de cela, vous pouvez utiliser dmath, splitaussi bien.

Voici un exemple:

\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

Utiliser eqnarrayet\nonumber

exemple:

\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

Cela a fonctionné pour moi lors de l'utilisation de mathtoolspackage.

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

1

RÉPONSE SIMPLE ICI

\begin{equation}
\begin{split}

equation \\
here

\end{split}
\end{equation}

C'est ce qui a fonctionné le mieux pour moi. La fonction {split} était la clé.
Heather Claxton le

0

Pour résoudre ce problème, j'ai utilisé l'environnement de tableau dans l'environnement d'équation comme ceci:

\begin{equation}
    \begin{array}{r c l}
       first Term&=&Second Term\\
                 &=&Third Term
    \end{array}
\end{equation}
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.