% Copyright 2021 Karl Wette
%
% This work may be distributed and/or modified under the
% conditions of the LaTeX Project Public License, either version 1.3
% of this license or (at your option) any later version.
% The latest version of this license is in
%   http://www.latex-project.org/lppl.txt
% and version 1.3 or later is part of all distributions of LaTeX
% version 2005/12/01 or later.
%
% This work has the LPPL maintenance status `maintained'.
%
% The Current Maintainer of this work is Karl Wette.

\ProvidesFile{linenoamsmathdemo.tex}
             [2021/09/30 Make amsmath work with lineno]

\documentclass{ltxdoc}

\ifdefined\AddToHook
  \newcommand{\loadorder}{\textsf{lineno} is loaded first, and then patches \textsf{amsmath} using \texttt{\textbackslash AddToHook}}
  \usepackage[mathlines,sep=11pt,width=11pt]{lineno}
  \usepackage[leqno]{amsmath}
\else
  \newcommand{\loadorder}{\textsf{amsmath} is loaded first, and then patched directly by \textsf{lineno}}
  \usepackage[leqno]{amsmath}
  \usepackage[mathlines,sep=11pt,width=11pt]{lineno}
\fi
\usepackage{lipsum}
\usepackage{hyperref}

\allowdisplaybreaks

\begin{document}

\title{Make \textsf{amsmath}\footnote{\url{https://ctan.org/pkg/amsmath}}~ work with \textsf{lineno}}
\author{Karl Wette}

\maketitle

This document demonstrates patches to the \textsf{amsmath} package to work with
the \textsf{lineno} package. The code I've used is largely based on the posts
here\footnote{\url{https://tex.stackexchange.com/a/461192}} and
here\footnote{\url{https://tex.stackexchange.com/a/443201}}; credit is due to
their author(s). In addition I've made a few refinements to handle some corner
cases.

\section*{Demonstration}

This section demonstrates that, with this package, line numbers are correctly
formatted when using \textsf{amsmath} math environments. \loadorder.

\newcounter{lipsumparagraph}
\newcommand{\nextlipsum}{\stepcounter{lipsumparagraph}\lipsum[\thelipsumparagraph][1-4]}
\newcommand{\crs}{\qquad\qquad\texttt{[\textbackslash\textbackslash{}*]}\\*}

\linenumbers

\subsection*{Normal text}

\nextlipsum

\subsection*{\texttt{equation}}

\subsection*{With line numbers in equations}
\nextlipsum
\begin{equation}
  E = m c^2 \,.
\end{equation}
\nextlipsum

\subsection*{Without line numbers in equations}
\nextlipsum
\begin{linenomath*}
\begin{equation}
  E = m c^2 \,.
\end{equation}
\end{linenomath*}
\nextlipsum

\subsection*{\texttt{equation*}}

\subsection*{With line numbers in equations}
\nextlipsum
\begin{equation*}
  E = m c^2 \,.
\end{equation*}
\nextlipsum

\subsection*{Without line numbers in equations}
\nextlipsum
\begin{linenomath*}
\begin{equation*}
  E = m c^2 \,.
\end{equation*}
\end{linenomath*}
\nextlipsum

\subsection*{\texttt{\textbackslash[\ldots\textbackslash]}}

\subsection*{With line numbers in equations}
\nextlipsum
\[
  E = m c^2 \,.
\]
\nextlipsum

\subsection*{Without line numbers in equations}
\nextlipsum
\begin{linenomath*}
\[
  E = m c^2 \,.
\]
\end{linenomath*}
\nextlipsum

\subsection*{\texttt{multline}}

\subsection*{With line numbers in equations}
\nextlipsum
\begin{multline}
  \frac{1}{1 + x} = 1 - x + x^{2} - x^{3} + x^{4} - x^{5} + x^{6} - x^{7} + x^{8} - x^{9} + \mathcal{O}(x^{10}) \,.
\end{multline}
\nextlipsum
\begin{multline}
  \frac{1}{1 + x} = 1 - x + x^{2} - x^{3} + x^{4} - x^{5} + x^{6} - x^{7} + x^{8} - x^{9} \\
  + x^{10} - x^{11} + x^{12} - x^{13} + x^{14} - x^{15} + x^{16} - x^{17} + x^{18} - x^{19} + \mathcal{O}(x^{20}) \,.
\end{multline}
\nextlipsum

\subsection*{Without line numbers in equations}
\nextlipsum
\begin{linenomath*}
\begin{multline}
  \frac{1}{1 + x} = 1 - x + x^{2} - x^{3} + x^{4} - x^{5} + x^{6} - x^{7} + x^{8} - x^{9} + \mathcal{O}(x^{10}) \,.
\end{multline}
\end{linenomath*}
\nextlipsum
\begin{linenomath*}
\begin{multline}
  \frac{1}{1 + x} = 1 - x + x^{2} - x^{3} + x^{4} - x^{5} + x^{6} - x^{7} + x^{8} - x^{9} \\
  + x^{10} - x^{11} + x^{12} - x^{13} + x^{14} - x^{15} + x^{16} - x^{17} + x^{18} - x^{19} + \mathcal{O}(x^{20}) \,.
\end{multline}
\end{linenomath*}
\nextlipsum

\subsection*{\texttt{multline*}}

\subsection*{With line numbers in equations}
\nextlipsum
\begin{multline*}
  \frac{1}{1 + x} = 1 - x + x^{2} - x^{3} + x^{4} - x^{5} + x^{6} - x^{7} + x^{8} - x^{9} + \mathcal{O}(x^{10}) \,.
\end{multline*}
\nextlipsum
\begin{multline*}
  \frac{1}{1 + x} = 1 - x + x^{2} - x^{3} + x^{4} - x^{5} + x^{6} - x^{7} + x^{8} - x^{9} \crs
  + x^{10} - x^{11} + x^{12} - x^{13} + x^{14} - x^{15} + x^{16} - x^{17} + x^{18} - x^{19} + \mathcal{O}(x^{20}) \,.
\end{multline*}
\nextlipsum

\subsection*{Without line numbers in equations}
\nextlipsum
\begin{linenomath*}
\begin{multline*}
  \frac{1}{1 + x} = 1 - x + x^{2} - x^{3} + x^{4} - x^{5} + x^{6} - x^{7} + x^{8} - x^{9} + \mathcal{O}(x^{10}) \,.
\end{multline*}
\end{linenomath*}
\nextlipsum
\begin{linenomath*}
\begin{multline*}
  \frac{1}{1 + x} = 1 - x + x^{2} - x^{3} + x^{4} - x^{5} + x^{6} - x^{7} + x^{8} - x^{9} \\
  + x^{10} - x^{11} + x^{12} - x^{13} + x^{14} - x^{15} + x^{16} - x^{17} + x^{18} - x^{19} + \mathcal{O}(x^{20}) \,.
\end{multline*}
\end{linenomath*}
\nextlipsum

\subsection*{\texttt{gather}}

\subsection*{With line numbers in equations}
\nextlipsum
\begin{gather}
  E = m c^2 \,.
\end{gather}
\nextlipsum
\begin{gather}
  E = m c^2 \,, \\
  E^2 = p^2 c^2 + m_0^2 c^4 \,.
\end{gather}
\nextlipsum

\subsection*{Without line numbers in equations}
\nextlipsum
\begin{linenomath*}
\begin{gather}
  E = m c^2 \,.
\end{gather}
\end{linenomath*}
\nextlipsum
\begin{linenomath*}
\begin{gather}
  E = m c^2 \,, \\
  E^2 = p^2 c^2 + m_0^2 c^4 \,.
\end{gather}
\end{linenomath*}
\nextlipsum

\subsection*{\texttt{gather*}}

\subsection*{With line numbers in equations}
\nextlipsum
\begin{gather*}
  E = m c^2 \,.
\end{gather*}
\nextlipsum
\begin{gather*}
  E = m c^2 \,, \crs
  E^2 = p^2 c^2 + m_0^2 c^4 \,.
\end{gather*}
\nextlipsum

\subsection*{Without line numbers in equations}
\nextlipsum
\begin{linenomath*}
\begin{gather*}
  E = m c^2 \,.
\end{gather*}
\end{linenomath*}
\nextlipsum
\begin{linenomath*}
\begin{gather*}
  E = m c^2 \,, \\
  E^2 = p^2 c^2 + m_0^2 c^4 \,.
\end{gather*}
\end{linenomath*}
\nextlipsum

\subsection*{\texttt{align}}

\subsection*{With line numbers in equations}
\nextlipsum
\begin{align}
  \nabla \cdot \vec E = 0 \,, &\quad \nabla \times \vec E = - \frac{\partial \vec B}{\partial t} \,.
\end{align}
\nextlipsum
\begin{align}
  \nabla \cdot \vec E = 0 \,, &\quad \nabla \times \vec E = - \frac{\partial \vec B}{\partial t} \,, \\
  \nabla \cdot \vec B = 0 \,, &\quad \nabla \times \vec B = \frac{1}{c^2} \frac{\partial \vec E}{\partial t} \,.
\end{align}
\nextlipsum

\subsection*{Without line numbers in equations}
\nextlipsum
\begin{linenomath*}
\begin{align}
  \nabla \cdot \vec E = 0 \,, &\quad \nabla \times \vec E = - \frac{\partial \vec B}{\partial t} \,.
\end{align}
\end{linenomath*}
\nextlipsum
\begin{linenomath*}
\begin{align}
  \nabla \cdot \vec E = 0 \,, &\quad \nabla \times \vec E = - \frac{\partial \vec B}{\partial t} \,, \\
  \nabla \cdot \vec B = 0 \,, &\quad \nabla \times \vec B = \frac{1}{c^2} \frac{\partial \vec E}{\partial t} \,.
\end{align}
\end{linenomath*}
\nextlipsum

\subsection*{\texttt{align*}}

\subsection*{With line numbers in equations}
\nextlipsum
\begin{align*}
  \nabla \cdot \vec E = 0 \,, &\quad \nabla \times \vec E = - \frac{\partial \vec B}{\partial t} \,.
\end{align*}
\nextlipsum
\begin{align*}
  \nabla \cdot \vec E = 0 \,, &\quad \nabla \times \vec E = - \frac{\partial \vec B}{\partial t} \,, \crs
  \nabla \cdot \vec B = 0 \,, &\quad \nabla \times \vec B = \frac{1}{c^2} \frac{\partial \vec E}{\partial t} \,.
\end{align*}
\nextlipsum

\subsection*{Without line numbers in equations}
\nextlipsum
\begin{linenomath*}
\begin{align*}
  \nabla \cdot \vec E = 0 \,, &\quad \nabla \times \vec E = - \frac{\partial \vec B}{\partial t} \,.
\end{align*}
\end{linenomath*}
\nextlipsum
\begin{linenomath*}
\begin{align*}
  \nabla \cdot \vec E = 0 \,, &\quad \nabla \times \vec E = - \frac{\partial \vec B}{\partial t} \,, \\
  \nabla \cdot \vec B = 0 \,, &\quad \nabla \times \vec B = \frac{1}{c^2} \frac{\partial \vec E}{\partial t} \,.
\end{align*}
\end{linenomath*}
\nextlipsum

\subsection*{\texttt{alignat}}

\subsection*{With line numbers in equations}
\nextlipsum
\begin{alignat}{2}
  \nabla \cdot \vec E = 0 \,, &\quad \nabla \times \vec E = - \frac{\partial \vec B}{\partial t} \,.
\end{alignat}
\nextlipsum
\begin{alignat}{2}
  \nabla \cdot \vec E = 0 \,, &\quad \nabla \times \vec E = - \frac{\partial \vec B}{\partial t} \,, \\
  \nabla \cdot \vec B = 0 \,, &\quad \nabla \times \vec B = \frac{1}{c^2} \frac{\partial \vec E}{\partial t} \,.
\end{alignat}
\nextlipsum

\subsection*{Without line numbers in equations}
\nextlipsum
\begin{linenomath*}
\begin{alignat}{2}
  \nabla \cdot \vec E = 0 \,, &\quad \nabla \times \vec E = - \frac{\partial \vec B}{\partial t} \,.
\end{alignat}
\end{linenomath*}
\nextlipsum
\begin{linenomath*}
\begin{alignat}{2}
  \nabla \cdot \vec E = 0 \,, &\quad \nabla \times \vec E = - \frac{\partial \vec B}{\partial t} \,, \\
  \nabla \cdot \vec B = 0 \,, &\quad \nabla \times \vec B = \frac{1}{c^2} \frac{\partial \vec E}{\partial t} \,.
\end{alignat}
\end{linenomath*}
\nextlipsum

\subsection*{\texttt{alignat*}}

\subsection*{With line numbers in equations}
\nextlipsum
\begin{alignat*}{2}
  \nabla \cdot \vec E = 0 \,, &\quad \nabla \times \vec E = - \frac{\partial \vec B}{\partial t} \,.
\end{alignat*}
\nextlipsum
\begin{alignat*}{2}
  \nabla \cdot \vec E = 0 \,, &\quad \nabla \times \vec E = - \frac{\partial \vec B}{\partial t} \,, \crs
  \nabla \cdot \vec B = 0 \,, &\quad \nabla \times \vec B = \frac{1}{c^2} \frac{\partial \vec E}{\partial t} \,.
\end{alignat*}
\nextlipsum

\subsection*{Without line numbers in equations}
\nextlipsum
\begin{linenomath*}
\begin{alignat*}{2}
  \nabla \cdot \vec E = 0 \,, &\quad \nabla \times \vec E = - \frac{\partial \vec B}{\partial t} \,.
\end{alignat*}
\end{linenomath*}
\nextlipsum
\begin{linenomath*}
\begin{alignat*}{2}
  \nabla \cdot \vec E = 0 \,, &\quad \nabla \times \vec E = - \frac{\partial \vec B}{\partial t} \,, \\
  \nabla \cdot \vec B = 0 \,, &\quad \nabla \times \vec B = \frac{1}{c^2} \frac{\partial \vec E}{\partial t} \,.
\end{alignat*}
\end{linenomath*}
\nextlipsum

\subsection*{\texttt{flalign}}

\subsection*{With line numbers in equations}
\nextlipsum
\begin{flalign}
  \nabla \cdot \vec E = 0 \,, &\quad \nabla \times \vec E = - \frac{\partial \vec B}{\partial t} \,.
\end{flalign}
\nextlipsum
\begin{flalign}
  \nabla \cdot \vec E = 0 \,, &\quad \nabla \times \vec E = - \frac{\partial \vec B}{\partial t} \,, \\
  \nabla \cdot \vec B = 0 \,, &\quad \nabla \times \vec B = \frac{1}{c^2} \frac{\partial \vec E}{\partial t} \,.
\end{flalign}
\nextlipsum

\subsection*{Without line numbers in equations}
\nextlipsum
\begin{linenomath*}
\begin{flalign}
  \nabla \cdot \vec E = 0 \,, &\quad \nabla \times \vec E = - \frac{\partial \vec B}{\partial t} \,.
\end{flalign}
\end{linenomath*}
\nextlipsum
\begin{linenomath*}
\begin{flalign}
  \nabla \cdot \vec E = 0 \,, &\quad \nabla \times \vec E = - \frac{\partial \vec B}{\partial t} \,, \\
  \nabla \cdot \vec B = 0 \,, &\quad \nabla \times \vec B = \frac{1}{c^2} \frac{\partial \vec E}{\partial t} \,.
\end{flalign}
\end{linenomath*}
\nextlipsum

\subsection*{\texttt{flalign*}}

\subsection*{With line numbers in equations}
\nextlipsum
\begin{flalign*}
  \nabla \cdot \vec E = 0 \,, &\quad \nabla \times \vec E = - \frac{\partial \vec B}{\partial t} \,.
\end{flalign*}
\nextlipsum
\begin{flalign*}
  \nabla \cdot \vec E = 0 \,, &\quad \nabla \times \vec E = - \frac{\partial \vec B}{\partial t} \,, \crs
  \nabla \cdot \vec B = 0 \,, &\quad \nabla \times \vec B = \frac{1}{c^2} \frac{\partial \vec E}{\partial t} \,.
\end{flalign*}
\nextlipsum

\subsection*{Without line numbers in equations}
\nextlipsum
\begin{linenomath*}
\begin{flalign*}
  \nabla \cdot \vec E = 0 \,, &\quad \nabla \times \vec E = - \frac{\partial \vec B}{\partial t} \,.
\end{flalign*}
\end{linenomath*}
\nextlipsum
\begin{linenomath*}
\begin{flalign*}
  \nabla \cdot \vec E = 0 \,, &\quad \nabla \times \vec E = - \frac{\partial \vec B}{\partial t} \,, \\
  \nabla \cdot \vec B = 0 \,, &\quad \nabla \times \vec B = \frac{1}{c^2} \frac{\partial \vec E}{\partial t} \,.
\end{flalign*}
\end{linenomath*}
\nextlipsum

\subsection*{Long equation with \textbackslash allowdisplaybreaks}

\nextlipsum
\begin{multline}
0, 1, 2, \\
3, \\
4, 5, \\
6, 7, \\
8, 9, 10, 11, \\
12, 13, \\
14, 15, 16, 17, \\
18, 19, \\
20, 21, 22, 23, \\
24, 25, 26, 27, 28, 29, \\
30, 31, \\
32, 33, 34, 35, 36, 37, \\
38, 39, 40, 41, \\
42, 43, \\
44, 45, 46, 47, \\
48, 49, 50, 51, 52, 53, \\
54, 55, 56, 57, 58, 59, \\
60, 61, \\
62, 63, 64, 65, 66, 67, \\
68, 69, 70, 71, \\
72, 73, \\
74, 75, 76, 77, 78, 79, \\
80, 81, 82, 83, \\
84, 85, 86, 87, 88, 89, \\
90, 91, 92, 93, 94, 95, 96, 97, \\
98, 99, 100, 101, \\
102, 103, \\
104, 105, 106, 107, \\
108, 109, \\
110, 111, 112, 113, \\
114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, \\
128, 129, 130, 131, \\
132, 133, 134, 135, 136, 137, \\
138, 139, \\
140, 141, 142, 143, 144, 145, 146, 147, 148, 149, \\
150, 151, \\
152, 153, 154, 155, 156, 157, \\
158, 159, 160, 161, 162, 163, \\
164, 165, 166, 167, \\
168, 169, 170, 171, 172, 173, \\
174, 175, 176, 177, 178, 179, \\
180, 181, \\
182, 183, 184, 185, 186, 187, 188, 189, 190, 191, \\
192, 193, \\
194, 195, 196, 197, \\
198, 199, \\
200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, \\
212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, \\
224, 225, 226, 227, \\
228, 229, \\
230, 231, 232, 233, \\
234, 235, 236, 237, 238, 239, \\
240, 241, \\
242, 243, 244, 245, 246, 247, 248, 249, 250, 251, \\
252, 253, 254, 255, 256, 257, \\
258, 259, 260, 261, 262, 263, \\
264, 265, 266, 267, 268, 269, \\
270, 271, \\
272, 273, 274, 275, 276, 277, \\
278, 279, 280, 281, \\
282, 283, \\
284, 285, 286, 287, 288, 289, 290, 291, 292, 293, \\
294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, \\
308, 309, 310, 311, \\
312, 313, \\
314, 315, 316, 317, \\
318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, \\
332, 333, 334, 335, 336, 337, \\
338, 339, 340, 341, 342, 343, 344, 345, 346, 347, \\
348, 349, \\
350, 351, 352, 353, \\
354, 355, 356, 357, 358, 359, \\
360, 361, 362, 363, 364, 365, 366, 367, \\
368, 369, 370, 371, 372, 373, \\
374, 375, 376, 377, 378, 379, \\
380, 381, 382, 383, \\
384, 385, 386, 387, 388, 389, \\
390, 391, 392, 393, 394, 395, 396, 397, \\
398, 399, 400, 401, \\
402, 403, 404, 405, 406, 407, 408, 409, \\
410, 411, 412, 413, 414, 415, 416, 417, 418, 419, \\
420, 421, \\
422, 423, 424, 425, 426, 427, 428, 429, 430, 431, \\
432, 433, \\
434, 435, 436, 437, 438, 439, \\
440, 441, 442, 443, \\
444, 445, 446, 447, 448, 449, \\
450, 451, 452, 453, 454, 455, 456, 457, \\
458, 459, 460, 461, \\
462, 463, \\
464, 465, 466, 467, \\
468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, \\
480, 481, 482, 483, 484, 485, 486, 487, \\
488, 489, 490, 491, \\
492, 493, 494, 495, 496, 497, 498, 499 \,.
\end{multline}
\nextlipsum

\nolinenumbers

\end{document}

% Local Variables:
% mode: doctex
% TeX-master: t
% End:
