2

I am writing in IEEEtran two-column environment and has a display formula like this \sqrt{\frac{1^{2}}{0.111222}(0.111222\times1.111163+0.066987^{2}\times0.111222)-1}=\sqrt{0.111222}=0.111222. Before the first equal sign is a long square root. This square root is just a little bit wider than the column. Is there a way I can squeeze the square root within the column as a first line and put the rest beginning with the "=" as a second line?

enter image description here

  • 3
    Can't you write 0.111222 \times (1.111163+0.066987^2) ? – Ulrike Fischer Dec 30 '18 at 19:42
  • I did not notice that, but those are meant to be random numbers, not necessarily the same. – nanjun Dec 30 '18 at 21:24
  • @nanjun A general solution doesn't exist, it would be better to have a “real world” example. – egreg Dec 30 '18 at 21:48
2

The answer is yes. Here's an illustration (followed by an explanation).

\documentclass{IEEEtran}

\usepackage{amsmath}

\newcommand*\squeezespaces[1]{% %% <- #1 is a number between 0 and 1
  \thickmuskip=\scalemuskip{\thickmuskip}{#1}%
  \medmuskip=\scalemuskip{\medmuskip}{#1}%
  \thinmuskip=\scalemuskip{\thinmuskip}{#1}%
  \nulldelimiterspace=#1\nulldelimiterspace
  \scriptspace=#1\scriptspace
}
\newcommand*\scalemuskip[2]{%
  \muexpr #1*\numexpr\dimexpr#2pt\relax\relax/65536\relax
} %% <- based on  https://tex.stackexchange.com/a/198966/156366

\begin{document}

This is a long equation This is a long equation This is a long equation
This is a long equation This is a long equation This is a long equation
\[ %% vv Unaltered vv
    \sqrt{\frac{1^{2}}{0.111222}
      (0.111222\times1.111163+0.066987^{2}\times0.111222)-1}
    = \sqrt{0.111222}=0.111222
\]
This is a long equation This is a long equation This is a long equation
This is a long equation This is a long equation This is a long equation
\[ %% vv Squeezed and split vv
    \begin{split}                  %% <- split up equation, &'s will be aligned
        \kern 4em & \kern-4em      %% <- move anchor right by 4em
        \mbox{$\squeezespaces{0.5} %% <- reduce whitespace, switch to \textstyle
          \sqrt{\frac{1^{2}}{0.111222}
          (0.111222\times1.111163+0.066987^{2}\times0.111222)-1}
        $}
        \\&
          = \sqrt{0.111222}
        \\&                        %% <- leave this out if you want
          = 0.111222
    \end{split}
\]
This is a long equation This is a long equation This is a long equation
This is a long equation This is a long equation This is a long equation

\end{document}

output

I've done the following:

  1. I've used the split environment from amsmath to split up the equation in three lines. You can reduce this to two lines by removing the second \\&.

  2. To place the anchor (&) at the right spot, I've inserted a horizontal space in front of it and a negative horizontal space of equal magnitude after it with \kern 4em & \kern-4em.

  3. The amount of whitespace inserted at several places in an equation is governed by the following paramters: \thickmuskip (\; and space around e.g. =), \medmuskip (\: and space around e.g. +), \thinmuskip (\, and space around e.g. \sum and \sin), \nulldelimiterspace (space around e.g. fractions) and \scriptspace (space after sub-/superscripts). I've halved each of these lengths using \squeezespaces{0.5} (which is defined in the preamble).

    Doing this affects an entire equation and it can't be done inside split, so I've put the square root inside an \mbox{$<…>$} and used \squeezespaces{0.5} in the inner math environment. You can replace 0.5 by another number between 0 and 1 if you want.

  4. A side-effect of putting the \sqrt in a box is that it is set in \textstyle, which also saves space because it makes e.g. fractions smaller. You could also have accomplished this by using \tfrac instead of \frac or by inserting \textstyle right before \sqrt (or at the beginning of its first argument).

    If you don't want text style fractions you should use \mbox{$\displaystyle<…>$}.

  • This looks great. I like how it could be fine-tuned. I have accepted it. Just a couple of questions. 1. Why the anchor has to be moved before the 1st line while it affects the alignment of the 2nd and 3rd lines? And why an equal amount of negative space is also necessary after the anchor? 2. What does the pair \[ and \] do? It seems the code does not work properly without them. – nanjun Dec 30 '18 at 22:24
  • 1
    1. The & in each line will be aligned, so if you placed the & directly in front of the \mbox the leftmost point of the = would line up with the leftmost point of the √. You can think of it like this: I'm first moving the cursor right by 4em, then inserting a & and then moving the cursor left by 4em, so it'll end up back where it started. The net effect is that the & is placed 4em to the right of the start of the √. Inserting \kern4em after the & on both the second and third line would have the same effect. – Circumscribe Dec 30 '18 at 22:35
  • 2. \[ is equivalent to \begin{equation*} and \] is equivalent to \end{equation*}. – Circumscribe Dec 30 '18 at 22:36
  • Just noticed that you changed in the preamble from \thickmuskip=#1\thickmuskip to \thickmuskip=\scalemuskip{\thickmuskip}{#1}, and defined a new command \scalemuskip. Can I know what is the additional benefit of this? – nanjun Jan 3 at 17:57
  • 1
    @nanjun: These skips have a base value and some maximum amount by which they can be stretched and shrunk if necessary (to improve the layout of a paragraph or equation). The old version of \squeezespaces effectively removed this stretch/shrink, but the updated one scales it along with the base value. In this case it made no difference because the spaces in a \sqrt can't be shrunk (nor can spaces within split or any of the other amsmath environments), but I felt I should do it right. – Circumscribe Jan 3 at 18:26
3

For the math expression you provided -- I have no idea how representative it is of the real material in your document -- it suffices to rearrange the position of the denominator in order to make the material before the = symbol fit in a column; then, use an align* environment to split the full expression across two lines.

enter image description here

\documentclass{IEEEtran}
\usepackage{amsmath} % for 'align*' env.

\begin{document}
\hrule % just to illustrate width of column
\begin{align*}
&\sqrt{\frac{1^{2}(0.111222\times1.111163
  +0.066987^{2}\times0.111222)}{0.111222}-1}\\
&\quad=\sqrt{0.111222}=0.111222 % place remaining material on 2nd line
\end{align*}
\end{document}
3
\documentclass{IEEEtran}
\usepackage{amsmath}
\begin{document}

\hrule

\begin{align*}
&\begin{aligned}[t]
\Bigl[\frac{1^2}{0.111222}(0.111222&\times1.111163 \\
     &+ 0.066987^{2}\times0.111222)-1\Bigr]^{\frac12}
\end{aligned}\\
&= \sqrt{0.111222} \\
&= 0.111222
\end{align*}

\hrule

\end{document}

enter image description here

Another option is to use 4 decimal-digits numbers (this is quite a standard in some software like MATLAB) unless these extra digits are very important.

\begin{align*}
&\sqrt{\frac{1^2}{0.1112}(0.1112\times1.1112 + 0.0670^2\times0.1112)-1} \\
&\quad = \sqrt{0.1112} \\
&\quad = 0.1112
\end{align*}

enter image description here

A third option would be to give variable names like x,y,z to these values:

\begin{align*}
&\sqrt{\frac{1^2}{x}(x\times y + z^2\times x)-1} \\
&\quad = \sqrt{0.115650} \\
&\quad = 0.340074 
\end{align*}
%
with $x=0.111222$, $y=1.111163$, and $z=0.066987$.

enter image description here

  • 1
    Thanks. Would prefer to still keep the "square root sign" instead of writing to the power of 1/2. – nanjun Dec 30 '18 at 21:46
  • 1
    Then, Mico's answer is the way to go, IMO. – AboAmmar Dec 30 '18 at 21:48
2

Try using split or multiline in the amsmath package. There are a couple of examples on page 2 of "Short Math Guide".

Try:

\documentclass{IEEEtran}
\usepackage{amsmath}

\begin{document}

\begin{equation}
\begin{split}
\sqrt{\frac{1^{2}}{0.111222}(0.111222\times1.111163}&\\
\overline{\rule{0pt}{5mm}{}+0.066987^{2}\times0.111222)-1}&\\    
=\sqrt{0.111222}=0.111222&
\end{split}
\end{equation}

\begin{multline}
\sqrt{\frac{1^{2}}{0.111222}(0.111222\times1.111163}\\
\overline{\rule{0pt}{5mm}{}+0.066987^{2}\times0.111222)-1}\\
=\sqrt{0.111222}=0.111222
\end{multline}

\end{document}

and adjust the 5mm in \rule to get the overline spacing to look right.

Some other options to adjust the overline spacing

  • 1
    Sorry, I don't have enough rep to comment on the post. I'm working on a more complete answer at the moment. – xerxes25 Dec 30 '18 at 20:27
  • It would be better if your code employed the IEEEtran document class, which is employed by the OP, in order to demonstrate that your solution meets the OP's objective of fitting everything inside the width of a column. – Mico Dec 30 '18 at 20:58
  • @Mico thanks, fixed it. I was using 'multicol' in my test doc but removed it for simplicity when I posted the answer. Your suggestion makes more sense. Still new to this and learning something new every day! – xerxes25 Dec 30 '18 at 21:04
  • @Circumscribe, fixed! Good to know about case sensitivity across platforms. – xerxes25 Dec 30 '18 at 21:27
1

Another solution: you can make it fit a single line with the splitfrac command from mathtools combined with \mfrac (medium-sized fractions) from nccmath:

\documentclass{IEEEtran}
\usepackage{mathtools, nccmath} 

\usepackage{lipsum}

\begin{document}

\lipsum[11]
\begin{equation*}
\sqrt{\mfrac{\splitfrac{1^{2}(0.111222\times1.111163}
  {+0.066987^{2}\times0.111222)}}{0.111222}-1}=\sqrt{0.111222}=0.111222 % place remaining material on 2nd line
\end{equation*}

\end{document} 

enter image description here

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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