38

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?

6 Answers6

33

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

Stefan Pinnow
  • 29,535
Bamzi
  • 343
27

$$...$$ 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

user202729
  • 7,143
Stefan Kottwitz
  • 231,401
  • thank you, is $ also obsolete? – David LeBauer Aug 15 '11 at 21:04
  • 3
    @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 05:05
  • @StefanKottwitz, what could I do if I need numbered equations? – Sigur Apr 03 '13 at 20:08
  • @Sigur Use an equation environment. – Stefan Kottwitz Apr 03 '13 at 20:37
  • @StefanKottwitz, thanks. I noticed this problem when I tried to use the stared version of equation. So with equation both lines above and below are numbered except the line with the equation contents which has its equation number in parenthesis. If I use equation* to remove the equation number, then the line above the equation has no number and the line below has. – Sigur Apr 03 '13 at 21:51
24

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}.

Stefan Pinnow
  • 29,535
R.M
  • 341
  • 2
  • 3
3

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}
Andrew Swann
  • 95,762
bers
  • 5,404
2

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

Denis
  • 5,267
2

The answer from Stefan Pinnow fixed the equation command. Use this to fix the align command in the same style:

\let\oldalign\align
\let\oldendalign\endalign

\renewenvironment{align} {\linenomathNonumbers\oldalign} {\oldendalign\endlinenomath}

user267006
  • 21
  • 1