26

While searching for the source of missing line numbers, I realized that paragraphs followed immediately by an equation have no line number, but this is fixed when a space is included,

e.g. the following document has no line numbers:

\documentclass[12pt]{article}
\usepackage{amsmath}
\usepackage{lineno}
\linenumbers
\begin{document}
Lorem ipsum dolor sit amet, consectetur adipiscing elit: 
$$1+1=2$$ 
\end{document}

But this one does:

\documentclass[12pt]{article}
\usepackage{amsmath}
\usepackage{lineno}
\linenumbers
\begin{document}
Lorem ipsum dolor sit amet, consectetur adipiscing elit: 

$$1+1=2$$ 
\end{document}

The only difference is the space above the equation.

  • Why is this the case (and is there a simple workaround)?

  • Is it incorrect to include an indented equation in a paragraph, or is this just a 'feature' of lineno?

18

$$...$$ is obsolete, see Why is [ … ] preferable to $$. If you use the correct LaTeX displayed math environment, the numbering works without the empty line:

\documentclass[12pt]{article}
\usepackage{amsmath}
\usepackage{lineno}
\linenumbers
\begin{document}
Lorem ipsum dolor sit amet, consectetur adipiscing elit: 
\[1+1=2\] 
\end{document}

enter image description here

  • thank you, is $ also obsolete? – David LeBauer Aug 15 '11 at 21:04
  • 2
    @David: that's true, see: Are \( and \) preferable to $. At least: \( ... \) is LaTeX syntax, so better supported in LaTeX. $...$ is plain TeX. However, usually both work well, many prefer $...$ because it's easier to write or just classic. – Stefan Kottwitz Aug 15 '11 at 21:09
  • 3
    @David: \( and \) are fragile by default. So, as Will Robertson said, don't use them unless you use fixltx2e package. And the default \( and \) have very few advantages compared with $. – Leo Liu Aug 16 '11 at 5:05
  • @StefanKottwitz, what could I do if I need numbered equations? – Sigur Apr 3 '13 at 20:08
  • @Sigur Use an equation environment. – Stefan Kottwitz Apr 3 '13 at 20:37
25

For line numbering to be done correctly the math environments has to be wrapped using the \begin{linenomath*} and \end{linenomath*} code:

\documentclass[12pt]{article}
\usepackage{amsmath}
\usepackage{lineno}
\linenumbers
\begin{document}
For line numbering to be done correctly the math environments has to be wrapped using the ''linenomath`` code as follows: 

\begin{linenomath*}
    \begin{equation}
        a^2=b^2+c^2
    \end{equation}
\end{linenomath*}
some text here some text here  some text here some text here some text here some text here some text here some text here some text here some text here some text here some text here some text here some text here some text heresome text here. 
\end{document}

enter image description here

  • 1
    This is particularly valuable, because it works for the AMS align environment, too! – AJK Nov 21 '15 at 0:41
8

Mathematics environments need to be wrapped by \begin{linenomath*} and \end{linenomath*} as mentioned in Bamzi's answer.

A quick way to change all your equations is to renew the equation environment by adding the code

\let\oldequation\equation
\let\oldendequation\endequation

\renewenvironment{equation}
  {\linenomathNonumbers\oldequation}
  {\oldendequation\endlinenomath}

before \begin{document}.

  • Welcome to TeX.SX! – Bobyandbob Dec 5 '17 at 15:18
  • 1
    I'd say this is the most convenient answer. Thanks! – Yo B. Oct 18 '18 at 10:36
  • This answer should be upvoted to top. Definitely. – WDC Nov 26 '18 at 3:19
1

Use the mathlines option for lineno and write:

\begin{linenomath}
\begin{align*}
z_{1}&=x_{1}+y_{1}\\
z_{2}&=x_{2}+y_{2}
\end{align*}
\end{linenomath}

to obtain

enter image description here

1

As @Denis has said, the mathlines option can be used in some cases (for article, but not for iopart, for example). If you do so, and you are also using the amsmath package, be sure to load lineno after amsmath. Sometimes other packages load amsmath, be aware of that; you can check the log file to see this. This MWE can be used to easily see the effect of that change:

\documentclass{article}
% \usepackage[mathlines]{lineno}
\usepackage{amsmath}
\usepackage[mathlines]{lineno}

\begin{document}
    \linenumbers

    Line number

    No line number if lineno is loaded before amsmath!
    \begin{equation}
        x = y
    \end{equation}

    Line number
\end{document}

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.