5

I write equations in eqnarrayuse Latex, but there are lines that exceed the right margin, how to fix it?

This is my code:

\begin{eqnarray}    
    k_1&=&hf(t_i, y_i)=hf_i \label{$k_1$ RK-4}\\
    k_2&=&hf(t_i+p_1h, y_i+q_11_k1)\nonumber\\
       &=&h(f_i+p_1hf_t+q_{11}k_1f_y)\nonumber\\
       &=&h(f_i+p_1hf_t+q_{11}hf_if_y)\\    
    k_3&=&hf(t_i+p_2h,y_i+q_21k_1+q_22k_2)\nonumber\\
       &=&h(f_i+p_2hf_t+q_21k_1f_y+q_22k_2f_y)\nonumber\\
       &=&h(f_i+p_2hf_t+q_{21}hf_if_y+q_{22} h(f_i+p_1hf_t+q_{11}hf_if_y)f_y)\nonumber\\
       &=&h(f_i+p_2hf_t+q_{21}hf_if_y+q_{22}hf_if_y +q_22h^2p_1f_tf_y+q_{11}q{22}h^2f_i(f_y)^2)\\
    k_4&=&hf(t_i+p_3h, y_i+q_31k_1+q_32k_2+q_33k_3)\nonumber\\
       &=&h(f_i+p_3hf_t+q_{31}k_1f_y+q_{32}k_2f_y+q_{33}k_3f_y)\nonumber\\
       &=&h(f_i+p_3hf_t+q_{31}hf_if_y+q_{32} h(f_i+p_1hf_t+q_{11}hf_if_y)f_y +q_{33}h(f_i+p_2hf_t+q_{21}hf_if_y+q_{22}hf_if_y+q_{22}h^2p_1f_tf_y+q_{21}q_{22}h^2f_i(f_y)^2)f_y)\nonumber\\
       &=&h(f_i+p_3hf_t+q_{31}hf_if_y+q_{32}hf_if_y +p_1q_{32}h^2f_tf_y +q_{11}q_{32}h^2f_i(f_y)^2+q_{33}hf_if_y+p_2q_{33}h^2f_tf_y+q_{21}q_{33}h^2f_i(f_y)^2+q_{22}q_{33}h^2f_i(f_y)^2+q_{22}q_{33}p_1h^3f_t(f_y)^2+q_{11}q_{22}q_{33}h^3f_i(f_y)^3)\\
\end{eqnarray}

and this is the result:

enter image description here

New contributor
liswyhy is a new contributor to this site. Take care in asking for clarification, commenting, and answering. Check out our Code of Conduct.
  • 3
    The equation is too wide because it is too wide. However, you already know how to introduce line breaks. Please note that most users have switched to align instead of eqnarray. (However, the latter does not solve the problem automatically, breqn does in principle but I personally would rather break the lines by hand than using breqn.) – marmot Mar 15 at 1:07
  • I got it, thank you. – liswyhy Mar 15 at 1:15
  • 1
    @liswyhy Just to remind you that the >s in your code block prevent your code from being compilable. Removing that is better. (and I did it for you.) – JouleV Mar 15 at 3:54
7

Besides the standard advice of not using eqnarray for whatsoever reason, see eqnarray vs align, I'd recommend using split for this, so to divide each block into a single unit.

With the tbtags option, we ensure that the number attached to a split equation is added at the bottom (when equation numbers are on the right) or at the top.

\documentclass{article}
\usepackage[tbtags]{amsmath} % for math

\begin{document}
\begin{align}    
k_1 &= hf(t_i, y_i)=hf_i \label{k1_RK_4}
\\
\begin{split}
k_2 &= hf(t_i+p_1h, y_i+q_{11}k_1) \\
    &= h(f_i+p_1hf_t+q_{11}k_1f_y) \\
    &= h(f_i+p_1hf_t+q_{11}hf_if_y)
\end{split}
\\
\begin{split}
k_3 &= hf(t_i+p_2h, y_i+q_{21}k_1+q_{22}k_2) \\
    &= h(f_i+p_2hf_t+q_{21}k_1f_y+q_{22}k_2f_y) \\
    &= h[f_i+p_2hf_t+q_{21}hf_if_y+q_{22}h(f_i+p_1hf_t+q_{11}hf_if_y)f_y] \\    
    &= h[f_i+p_2hf_t+q_{21}hf_if_y+q_{22}hf_if_y+q_{22}h^2p_1f_tf_y+
       q_{11}q_{22}h^2\!f_i(f_y)^2]
\end{split}
\\
\begin{split}
k_4 &= hf(t_i+p_3h, y_i+q_{31}k_1+q_{32}k_2+q_{33}k_3) \\
    &= h(f_i+p_3hf_t+q_{31}k_1f_y+q_{32}k_2f_y+q_{33}k_3f_y) \\
    &= h\{f_i+p_3hf_t+q_{31}hf_if_y+q_{32}h(f_i+p_1hf_t+q_{11}hf_if_y)f_y \\
    &\qquad +q_{33}h[f_i+p_2hf_t+q_{21}hf_if_y+q_{22}hf_if_y+q_{22}h^2p_1f_tf_y \\
    &\qquad +q_{21}q_{22}h^2\!f_i(f_y)^2]f_y\} \\
    &= h\{f_i+p_3hf_t+q_{31}hf_if_y+q_{32}hf_if_y+p_1q_{32}h^2\!f_tf_y+
       q_{11}q_{32}h^2\!f_i(f_y)^2 \\
    &\qquad +q_{33}hf_if_y+p_2q_{33}h^2\!f_tf_y+q_{21}q_{33}h^2\!f_i(f_y)^2+
     q_{22}q_{33}h^2\!f_i(f_y)^2 \\
    &\qquad+q_{22}q_{33}p_1h^3\!f_t(f_y)^2+q_{11}q_{22}q_{33}h^3\!f_i(f_y)^3\}
\end{split}
\end{align}

\end{document}

enter image description here

  • Can multline be another solution? P.S. Nice answer! – manooooh Mar 15 at 8:29
  • 2
    +1. You may want to point out explicitly the role that setting the option tbtags plays here. :-) – Mico Mar 15 at 8:31
8

In addition to inserting some line breaks by hand in the final two rows, you also need to fix some of the notation by adding curly braces as needed in the terms q_11, q_21, q_22, etc. (And _k1 should be k_1, right?) When the parenthetic structures are nested, it helps readers if square brackets and curly braces are used in addition to round parentheses, to help detect the orders of the parentheses.

And you most definitely should not be using the badly deprecated eqnarray environment. Use the align environment, which is provided by the amsmath package, instead.

enter image description here

\documentclass{article}
\usepackage{amsmath} % for 'align' environment and '\notag' macro

\begin{document}
\begin{align}    
    k_1 &= hf(t_i, y_i)=hf_i \label{k1_RK_4}\\
    k_2 &= hf(t_i+p_1h, y_i+q_{11}k_1) \notag\\
     &= h(f_i+p_1hf_t+q_{11}k_1f_y) \notag\\
     &= h(f_i+p_1hf_t+q_{11}hf_if_y)\\   
    k_3 &= hf(t_i+p_2h, y_i+q_{21}k_1+q_{22}k_2)  \notag\\
     &= h(f_i+p_2hf_t+q_{21}k_1f_y+q_{22}k_2f_y) \notag\\
     &= h[f_i+p_2hf_t+q_{21}hf_if_y+q_{22}h(f_i+p_1hf_t+q_{11}hf_if_y)f_y] \notag\\    
     &= h[f_i+p_2hf_t+q_{21}hf_if_y+q_{22}hf_if_y+q_{22}h^2p_1f_tf_y+q_{11}q_{22}h^2\!f_i(f_y)^2]\\
    k_4 &= hf(t_i+p_3h, y_i+q_{31}k_1+q_{32}k_2+q_{33}k_3) \notag\\
     &= h(f_i+p_3hf_t+q_{31}k_1f_y+q_{32}k_2f_y+q_{33}k_3f_y) \notag\\
     &= h\{f_i+p_3hf_t+q_{31}hf_if_y+q_{32}h(f_i+p_1hf_t+q_{11}hf_if_y)f_y \notag\\
     &\qquad +q_{33}h[f_i+p_2hf_t+q_{21}hf_if_y+q_{22}hf_if_y+q_{22}h^2p_1f_tf_y \notag\\
     &\qquad +q_{21}q_{22}h^2\!f_i(f_y)^2]f_y\} \notag\\   
     &= h\{f_i+p_3hf_t+q_{31}hf_if_y+q_{32}hf_if_y+p_1q_{32}h^2\!f_tf_y+q_{11}q_{32}h^2\!f_i(f_y)^2 \notag\\
     &\qquad +q_{33}hf_if_y+p_2q_{33}h^2\!f_tf_y+q_{21}q_{33}h^2\!f_i(f_y)^2+q_{22}q_{33}h^2\!f_i(f_y)^2 \notag\\
     &\qquad+q_{22}q_{33}p_1h^3\!f_t(f_y)^2+q_{11}q_{22}q_{33}h^3\!f_i(f_y)^3\}
\end{align}
\end{document}
  • I forgot to mention another adjustment I made: I inserted negative thinspace (\!) in all instances of either h^2 or h^3 being followed by f. This avoids creating "visual holes" in the formulas. – Mico Mar 15 at 8:35

Your Answer

liswyhy is a new contributor. Be nice, and check out our Code of Conduct.

By clicking "Post Your Answer", you acknowledge that you have read our updated terms of service, privacy policy and cookie policy, and that your continued use of the website is subject to these policies.

Not the answer you're looking for? Browse other questions tagged or ask your own question.