texlive[65204] Master: lineno (5dec22)
commits+karl at tug.org
commits+karl at tug.org
Mon Dec 5 22:23:49 CET 2022
Revision: 65204
http://tug.org/svn/texlive?view=revision&revision=65204
Author: karl
Date: 2022-12-05 22:23:48 +0100 (Mon, 05 Dec 2022)
Log Message:
-----------
lineno (5dec22)
Modified Paths:
--------------
trunk/Master/texmf-dist/doc/latex/lineno/CHANGEs.txt
trunk/Master/texmf-dist/doc/latex/lineno/COPYING.txt
trunk/Master/texmf-dist/doc/latex/lineno/SRCFILEs.txt
trunk/Master/texmf-dist/doc/latex/lineno/fnlineno.pdf
trunk/Master/texmf-dist/doc/latex/lineno/lineno.pdf
trunk/Master/texmf-dist/doc/latex/lineno/lnosuppl.pdf
trunk/Master/texmf-dist/doc/latex/lineno/ulineno.pdf
trunk/Master/texmf-dist/tex/latex/lineno/ednmath0.sty
trunk/Master/texmf-dist/tex/latex/lineno/edtable.sty
trunk/Master/texmf-dist/tex/latex/lineno/fnlineno.sty
trunk/Master/texmf-dist/tex/latex/lineno/lineno.sty
trunk/Master/texmf-dist/tex/latex/lineno/vplref.sty
trunk/Master/tlpkg/bin/tlpkg-ctan-check
trunk/Master/tlpkg/libexec/ctan2tds
trunk/Master/tlpkg/tlpsrc/collection-binextra.tlpsrc
Added Paths:
-----------
trunk/Master/texmf-dist/doc/latex/lineno/README.md
trunk/Master/texmf-dist/doc/latex/lineno/fnlineno.tex
trunk/Master/texmf-dist/doc/latex/lineno/lineno.tex
trunk/Master/texmf-dist/doc/latex/lineno/linenoamsmathdemo.pdf
trunk/Master/texmf-dist/doc/latex/lineno/linenoamsmathdemo.tex
trunk/Master/texmf-dist/doc/latex/lineno/lnosuppl.tex
trunk/Master/texmf-dist/doc/latex/lineno/ulineno.tex
Removed Paths:
-------------
trunk/Master/texmf-dist/doc/latex/lineno/README
trunk/Master/texmf-dist/doc/latex/lineno/README.txt
trunk/Master/texmf-dist/source/latex/lineno/
Modified: trunk/Master/texmf-dist/doc/latex/lineno/CHANGEs.txt
===================================================================
--- trunk/Master/texmf-dist/doc/latex/lineno/CHANGEs.txt 2022-12-05 10:28:48 UTC (rev 65203)
+++ trunk/Master/texmf-dist/doc/latex/lineno/CHANGEs.txt 2022-12-05 21:23:48 UTC (rev 65204)
@@ -1,165 +1,189 @@
+CHANGES for lineno pkg v5.0 2022/07/30:
-CHANGES for lineno bundle 2011/02/16:
+1. Merge in `linenoamsmath' patches.
-1. new fnlineno.sty for numbering footnote lines + \linelabel,
+
+CHANGES for lineno pkg 2011/02/16:
+
+1. new fnlineno.sty for numbering footnote lines + \linelabel,
described in fnlineno.pdf
2. new overview SRCFILEs.txt
+(From README.txt -- KW) numline obsolete, mirror.ctan.org, fnlineno,
+amsmath compatibility, CHANGEs.txt, lineno.tds.zip
-CHANGES for lineno.sty v4.41 2005/11/02:
-1. Loadable after amsmath.
+CHANGES for lineno.sty v4.41 2005/11/02:
-2. Removed some nonsense from documentation.
+1. Loadable after amsmath.
+2. Removed some nonsense from documentation.
-CHANGES for lineno.sty v4.4 2005/10/27
-[failed to be uploaded to CTAN, but distributed by mail]:
-1. Proper effective line depth at end of paragraphs.
- The spacing bug was quite obvious in two-column mode
- when a paragraph end was at a column bottom.
+CHANGES for lineno.sty v4.4 2005/10/27:
+[failed to be uploaded to CTAN, but distributed by mail]:
-2. Another bug concerning two-column mode that had been
- introduced in v4.22 has been removed again.
+1. Proper effective line depth at end of paragraphs.
+ The spacing bug was quite obvious in two-column mode
+ when a paragraph end was at a column bottom.
-3. Support for \addvspace introduced more and more bugs
- in versions of v4.32 and v4.33. The reasons seem to
- be clear now, and v4.4 should be stable.
+2. Another bug concerning two-column mode that had been
+ introduced in v4.22 has been removed again.
+3. Support for \addvspace introduced more and more bugs
+ in versions of v4.32 and v4.33. The reasons seem to
+ be clear now, and v4.4 should be stable.
-CHANGES for lineno.sty v4.32 2005/10/17:
-1. Support for \addvspace
- (a math display or a list meets a heading -- or a sub-heading
- follows a heading -- or the like)
+CHANGES for lineno.sty v4.32 2005/10/17:
-2. Clearly explained former option `displaymath' and its change
- to a default.
+1. Support for \addvspace
+ (a math display or a list meets a heading -- or a sub-heading
+ follows a heading -- or the like)
+2. Clearly explained former option `displaymath' and its change
+ to a default.
-CHANGES for lineno.sty v4.31 2005/10/01:
-1. \modulolinenumbers* and a package option `modulo*' for
- printing first line number after interrupting editor's
- text, regardless of the modulo.
+CHANGES for lineno.sty v4.31 2005/10/01:
-2. Improved explanation of \firstlinenumber and package
- options.
+1. \modulolinenumbers* and a package option `modulo*' for
+ printing first line number after interrupting editor's
+ text, regardless of the modulo.
+2. Improved explanation of \firstlinenumber and package
+ options.
-CHANGES for lineno.sty v4.3 2005/05/16:
-1. Option `displaymath' (proper numbering at paragraphs
- containing math displays) becomes default.
+CHANGES for lineno.sty v4.3 2005/05/16:
-2. Compatibility with hyperref now indeed (at least much more).
+1. Option `displaymath' (proper numbering at paragraphs
+ containing math displays) becomes default.
-3. Tidied up documentation: terrible confusion of \newcounter
- vs. \stepcounter; sections on the same matter written at
- different times; ...
+2. Compatibility with hyperref now indeed (at least much more).
-4. Additional internal improvements that perhaps hardly are
- observable (no more spurious linenumbers in math displays
- from vertical mode; some compatibity with packages that use
- \holdinginserts; \linelabel in headings etc.).
+3. Tidied up documentation: terrible confusion of \newcounter
+ vs. \stepcounter; sections on the same matter written at
+ different times; ...
+4. Additional internal improvements that perhaps hardly are
+ observable (no more spurious linenumbers in math displays
+ from vertical mode; some compatibity with packages that use
+ \holdinginserts; \linelabel in headings etc.).
-CHANGES for lineno.sty v4.22 2005/05/09:
-1. Restored "global" version of numbering lines of a \parbox or
- minipage or ... (I had missed and disabled this in taking
- over lineno.sty), explained in documentation (lineno.pdf/dvi
- subsec. 7.2).
+CHANGES for lineno.sty v4.22 2005/05/09:
-2. Enabled \flushbottom in two-column pagewise or switching
- mode.
+1. Restored "global" version of numbering lines of a \parbox or
+ minipage or ... (I had missed and disabled this in taking
+ over lineno.sty), explained in documentation (lineno.pdf/dvi
+ subsec. 7.2).
-3. Re-implemented modulo mode -- disabling certain users' tricks
- see lineno.pdf sec. 5.5, also for a still supported
- substituting trick.
+2. Enabled \flushbottom in two-column pagewise or switching
+ mode.
-4. Tidied up setting the next line number globally vs. locally
- (TeXbook p. 301).
+3. Re-implemented modulo mode -- disabling certain users' tricks
+ see lineno.pdf sec. 5.5, also for a still supported
+ substituting trick.
-5. Tidied up discussions (in documentation) of possible changes
- in implementation.
+4. Tidied up setting the next line number globally vs. locally
+ (TeXbook p. 301).
+5. Tidied up discussions (in documentation) of possible changes
+ in implementation.
-CHANGES for lineno.sty v4.21 2005/04/28:
-Removed serious flaws with math display, + something ...
+CHANGES for lineno.sty v4.21 2005/04/28:
+Removed serious flaws with math display, + something ...
-CHANGES for lineno.sty v4.2 2005/04/26:
-1. Re-enabled package option `displaymath' (needed rearrangement
- after sec. 5).
+CHANGES for lineno.sty v4.2 2005/04/26:
-2. New package option `addpageno' for adding page numbers to
- line number references -- see sec. 6.1 of lineno.pdf.
+1. Re-enabled package option `displaymath' (needed rearrangement
+ after sec. 5).
-3. Improved support for \includeonly (and improved sec. 5.3,
- p. 27).
+2. New package option `addpageno' for adding page numbers to
+ line number references -- see sec. 6.1 of lineno.pdf.
-4. Improved compatibility with other packages that change \output
- (tameflts.sty, e.g., for saving footnotes against \marginpar
- and floats), added advice on this matter -- sec. 2.3,
+3. Improved support for \includeonly (and improved sec. 5.3,
+ p. 27).
+
+4. Improved compatibility with other packages that change \output
+ (tameflts.sty, e.g., for saving footnotes against \marginpar
+ and floats), added advice on this matter -- sec. 2.3,
pp. 7, 14f.
-CHANGES for lineno.sty v4.11 2005/03/08:
+CHANGES for lineno.sty v4.11 2005/03/08:
-1. The `edtable' option now supports math environments like
-`array'. This requires updating edtable.sty to v1.3. (The claim
-in previous versions of edtable on this support simply was
-wrong, sorry.) For how to make use of this support, we urge you
-to read the usage instructions in edtable.sty (v1.3). These have
-been extended very much, structured more clearly, and supplied
-with examples.
+1. The `edtable' option now supports math environments like
+`array'. This requires updating edtable.sty to v1.3. (The claim
+in previous versions of edtable on this support simply was
+wrong, sorry.) For how to make use of this support, we urge you
+to read the usage instructions in edtable.sty (v1.3). These have
+been extended very much, structured more clearly, and supplied
+with examples.
-2. \linelabel now complains when appearing outside line
-numbering mode. This counters Stephan Boettcher's original
-intention, but I generalize from my own experience that it is
-helpful to be told when you have forgotten to switch into line
-numbering mode and (e.g.) wonder why all the line number
-references are 1 ... ednotes.sty users profit as well (at least
-I expect and hope that anybody profits, which, to be sure, does
-not mean that I hope that anybody forgets to switch ...).
+2. \linelabel now complains when appearing outside line
+numbering mode. This counters Stephan Boettcher's original
+intention, but I generalize from my own experience that it is
+helpful to be told when you have forgotten to switch into line
+numbering mode and (e.g.) wonder why all the line number
+references are 1 ... ednotes.sty users profit as well (at least
+I expect and hope that anybody profits, which, to be sure, does
+not mean that I hope that anybody forgets to switch ...).
-3. The subsection on `edtable' in lineno.sty/tex/pdf was not
-quite correct or complete -- corrected, improved.
+3. The subsection on `edtable' in lineno.sty/tex/pdf was not
+quite correct or complete -- corrected, improved.
-4. The final list of user commands in lineno.sty/tex/pdf has not
-been complete. This has not changed, but it is briefly explained
-what is missing and where it can be found.
+4. The final list of user commands in lineno.sty/tex/pdf has not
+been complete. This has not changed, but it is briefly explained
+what is missing and where it can be found.
-CHANGE 2005/01/20:
+CHANGE 2005/01/20:
-We have devised macros for indexing with line numbers,
-yet we don't take the time to release them officially.
-If you are interested, please ask via
+We have devised macros for indexing with line numbers,
+yet we don't take the time to release them officially.
+If you are interested, please ask via
- http://contact-ednotes.sty.de.vu
+ http://contact-ednotes.sty.de.vu
-CHANGES for lineno.sty v4.1 2004/10/19:
+CHANGES for lineno.sty v4.1 2004/10/19:
-Extension packages from the Ednotes bundle for enabling
-\linelabel in math mode and tabular environments are now
-handled through new package options `mathrefs', `edtable',
-`longtable', and `nolongtablepatch'. Two of these extension
-packages moved from the ednotes folder to the lineno folder.
-lineno.tex/pdf has been updated accordingly.
+Extension packages from the Ednotes bundle for enabling
+\linelabel in math mode and tabular environments are now
+handled through new package options `mathrefs', `edtable',
+`longtable', and `nolongtablepatch'. Two of these extension
+packages moved from the ednotes folder to the lineno folder.
+lineno.tex/pdf has been updated accordingly.
+(From README.txt -- KW) minor fixes (removed `supported/', e.g.);
+bracketed text; lines with `(UL)'; redistribution with README only.
+CHANGES for lineno.sty v4.00 2004/09/03:
-CHANGES for lineno.sty v4.00 2004/09/03:
+o incorporated earlier extension packages linenox0.sty,
+ linenox1.sty, lnopatch.sty (which belonged to the
+ Ednotes bundle before);
-o incorporated earlier extension packages linenox0.sty,
- linenox1.sty, lnopatch.sty (which belonged to the
- Ednotes bundle before);
+o adopted LaTeX Project Public License v1.3.
-o adopted LaTeX Project Public License v1.3.
+EARLIER CHANGES (From README.txt -- KW)
+
+- 2004-10-19 UL: package options for tabular and math
+- 2004-09-03 UL: merge Ednotes changes, taking over lineno.sty
+- 2002 .. 2003 FMi, UL, SiB: bug fixes
+- 2001-08-04 SiB: linenomath wrapping for \[ \]
+- 2001-07-30 SiB: [hyperref] option obsolete.
+- 2001-01-17 SiB: LaTeX class option [twocolumn] support
+- 2001-01-04 SiB: LaTeX class option [fleqn] support
+- 2000-12-18 SiB: longtable compatibility
+- 2000-07-01 SiB: extra \newlabel items, [hyperref] option
+- 2000-03-10 SiB: indirect call of \output, to work with multicol.
+- 1999-08-28 SiB: fixed the footnote problem using \holdinginserts
+- 1999-06-11 SiB: included the extensions into lineno.sty
+- 1999-03-02 SIB: Added LPPL License
Modified: trunk/Master/texmf-dist/doc/latex/lineno/COPYING.txt
===================================================================
--- trunk/Master/texmf-dist/doc/latex/lineno/COPYING.txt 2022-12-05 10:28:48 UTC (rev 65203)
+++ trunk/Master/texmf-dist/doc/latex/lineno/COPYING.txt 2022-12-05 21:23:48 UTC (rev 65204)
@@ -2,26 +2,24 @@
%
% The files in this directory are
%
-% Copyright 1995--2003 Stephan I. B"ottcher <boettcher at physik.uni-kiel.de>;
-% Copyright 2002--2005 Uwe L"uck, http://contact-ednotes.sty.de.vu,
-% for versions 4.x and code from former Ednotes
-% bundle--author-maintained.
-% Copyright 2011 Uwe L"uck, http://contact-ednotes.sty.de.vu,
-% for fnlineno.sty/tex/pdf
-%
-% The files can be redistributed and/or modified under
-% the terms of the LaTeX Project Public License; either
+% Copyright 1995--2003 Stephan I. Böttcher
+% Copyright 2002--2005 Uwe Lück for versions 4.x and code from former Ednotes
+% Copyright 2011 Uwe Lück for fnlineno.sty/tex/pdf
+% Copyright 2021--2022 Karl Wette for versions 5.x
+%
+% The files can be redistributed and/or modified under
+% the terms of the LaTeX Project Public License; either
% version 1.3a of the License, or any later version.
% The latest version of this license is in
% http://www.latex-project.org/lppl.txt
-% We did our best to help you, but there is NO WARRANTY.
+% We did our best to help you, but there is NO WARRANTY.
%
% ============================================================================
-<- (UL) End of official declaration.
+<- (UL) End of official declaration.
-History:
+History:
+Update for version 5.x 2022/12/05 kw
add. fnlineno 2011/02/16 ul
-This file -> The files 2004/10/12 ul
+This file -> The files 2004/10/12 ul
$Id: COPYING,v 3.0.2.1 2004/09/13 20:15:47 stephan Exp $
-LPPL v1.3a 2004/10/26
-
+LPPL v1.3a 2004/10/26
Deleted: trunk/Master/texmf-dist/doc/latex/lineno/README
===================================================================
--- trunk/Master/texmf-dist/doc/latex/lineno/README 2022-12-05 10:28:48 UTC (rev 65203)
+++ trunk/Master/texmf-dist/doc/latex/lineno/README 2022-12-05 21:23:48 UTC (rev 65204)
@@ -1,204 +0,0 @@
-README
- lineno.sty v4.41
- fnlineno.sty v0.55
-
- 2011-02-16
-
-The LaTeX package lineno.sty provides line numbers on paragraphs.
-After TeX has broken a paragraph into lines there will be line numbers
-attached to them, with the possibility to make references through the
-LaTeX \ref, \pageref cross reference mechanism.
-
-% Copyright 1995--2003 Stephan I. B"ottcher <boettcher at physik.uni-kiel.de>;
-% Copyright 2002--2005 Uwe L"uck, http://www.contact-ednotes.sty.de.vu,
-% for versions 4.x and code from former Ednotes
-% Copyright 2011 Uwe L"uck as above, for fnlineno.sty/tex/pdf
-% bundle--author-maintained.
-%
-% The files listed below can be redistributed and/or modified under
-% the terms of the LaTeX Project Public License; either
-% version 1.3a of the License, or any later version.
-% The latest version of this license is in
-% http://www.latex-project.org/lppl.txt
-% We did our best to help you, but there is NO WARRANTY.
-
-** [ UL: A few festive words on history and responsibility **
-** are next preceding hard facts as to (see lower) **
-** o `Files' and **
-** o `Installation and usage'. ] **
-
-2004-09-13 Uwe L"uck [(UL)] is new maintainer for lineno.sty.
-
-lineno.sty served the purpose for which I wrote it years ago. Uwe
-L"uck uses lineno.sty with his Ednotes package, which required quite a
-few changes and fixes. His package depends on lineno, therefore
-Uwe agreed to take over the maintenance of lineno.sty.
-
-lineno.sty v4.0 includes most of the well tested changes that Uwe
-needs for Ednotes. These changes blend well into the concepts of the
-package, so I am happy to let it go.
-
-From here on it is Uwe's, and he may proceed to mangle it as he likes.
-Expect some radical changes. You may find him to be quite a bit
-friendlier towards the poor souls who still use Windows :-).
-Currently, you need some kind of Unix environment to extract the
-source documentation from the sty file.
-
-If some version 3 users run into difficulties with Uwe's newer
-versions, but need a minor bug-fix in version 3, please do not
-hesitate to ask me for help. But all requests for new features or
-major changes shall go to Uwe.
-
-Cheers
-Stephan
-
-
-[ Thanks! And please let me know as well should
- compatibility problems arise! The announced radical
- changes are postponed again this time (v4.1).
- --Ednotes is in
- http://mirror.ctan.org/macros/latex/contrib/ednotes.
- Uwe ]
-
-
-Changes: see CHANGEs.txt; earlier:
-
- 2004-10-19 UL: package options for tabular and math
- 2004-09-03 UL: merge Ednotes changes, taking over lineno.sty
-
- 2002 .. 2003 FMi, UL, SiB: bug fixes
- 2001-08-04 SiB: linenomath wrapping for \[ \]
- 2001-07-30 SiB: [hyperref] option obsolete.
- 2001-01-17 SiB: LaTeX class option [twocolumn] support
- 2001-01-04 SiB: LaTeX class option [fleqn] support
- 2000-12-18 SiB: longtable compatibility
- 2000-07-01 SiB: extra \newlabel items, [hyperref] option
- 2000-03-10 SiB: indirect call of \output, to work with multicol.
- 1999-08-28 SiB: fixed the footnote problem using \holdinginserts
- 1999-06-11 SiB: included the extensions into lineno.sty
- 1999-03-02 SIB: Added LPPL License
-
-
-Files (cf. SRCFILEs.txt):
-
- README.txt This file. (v4.1: UL)
- CHANGEs.txt Differences to previous versions. (v4.1: UL)
- COPYING.txt The LPPL header.
- SCRFILEs.txt Source file infos (UL 2011)
- lineno.sty The package itself, ready to use.
- edtable.sty Module for tabular environments. (UL, v4.1)
- ednmath0.sty Module for \linelabel in math mode. (UL, v4.1)
- fnlineno.sty Add-on for footnote line numbers (UL, v0.55)
- lineno.tex The source for the documentation (generated)
- lineno.pdf PDF deriving from the former. (v4.1: UL)
- lnosuppl.pdf PDF listing of present non-PDF files
- ulineno.tex The pathetic attempt of a users' manual.
- [Describes v3.1 currently.] (UL, v4.1)
- ulineno.pdf PDF of former.
- vplref.sty Conditionally include page number in
- line number references (UL, v4.2)
-
- As of version v3.00, the extension packages for lineno have all been
- incorporated into lineno.sty itself. Except for itemrule.sty,
- which was removed.
-
-Home:
-
- http://mirror.ctan.org/macros/latex/contrib/lineno/
-
-TDS version:
-
- http://mirror.ctan.org/install/macros/latex/contrib/lineno.tds.zip
-
-Authors:
-
- Uwe L"uck <http://contact-ednotes.sty@web.de>
- Stephan I. B"ottcher <boettcher at physik.uni-kiel.de>
-
-Compatibility with other packages:
-
- wrapfig.sty works since v2.05
-
- multicol.sty works partly since 3.02.
- Do NOT use \linelabel. Do NOT put a multicol in
- internal vertical mode {table}, {figure}, etc.
-
- hyperref.sty \ref to a \linelabel works since v3.03.
-
- longtable.sty broke with lineno.sty loaded, but not enabled.
- This is fixed in v3.04.
-
- amsmath.sty loadable, but not fully supported, with v4.41
-
-Installation and usage (UL, v4.1):
-
- For being able to use ALL the new lineno.sty options, the
- following files must be "visible" to (La)TeX ("visible"
- explained below for beginners):
-
- lineno.sty, edtable.sty, ednmath0.sty, ltabptch.sty
-
- as above ("Home", note that clicking on "entire directory"
- suffices);
-
- longtable.sty -- from the standard LaTeX Tools bundle.
-
- Usage always starts with loading lineno.sty by \usepackage.
- The remaining .sty files are loaded automatically on the
- lineno.sty options (and we recommend not to load them through
- [the mandatory argument of] \usepackage).
-
- For details, see lineno.tex/pdf and the .sty files mentioned
- above--search especially for tabular and math mode.
- (+ `print' below here).
-
- "Visible to (LaTeX)": Some users don't understand this
- "visibility" for a while, and indeed it may be somewhat
- non-trivial. These users may find help in
-
- http://mirror.ctan.org/macros/latex/ednotes/visible.txt .
-
- E.g., former users of lineno.sty may just put all the .sty
- files into the folder (at their workplace) where they had
- placed lineno.sty before. (/UL, /v4.1)
-
-To print the documented source:
-
- Take the style-file `lineno.sty', and feed it to a Un*x shell.
- (Or download the extracted source documentation `lineno.tex'.)
-
- csh> source ./lineno.sty
- sh> . ./lineno.sty
-
- [ I.e., type `sh lineno.sty' (e.g.) as a UNIX command line.
- Problems with awk may arise. I therefore switched to nawk
- in lineno.sty v4.00, but this may trouble you as well. (UL) ]
-
- (Please ignore the error message at the beginning about the iffalse.)
-
-
-Please have a look at a similar work of Michal Jaegermann and James
-Fortune:
- http://mirror.ctan.org/obsolete/macros/latex/contrib/numline/
-
-
-
-
-
-==============================================================================
-<- End of official README.txt (UL)
-
-Changes Feb. 2011: numline obsolete, mirror.ctan.org, fnlineno,
-amsmath compatibility, CHANGEs.txt, lineno.tds.zip
-Changes for v4.1 (Oct. 2004): minor fixes (removed `supported/', e.g.);
-bracketed text; lines with `(UL)'; redistribution with README only.
-Formerly:
-
- lineno.sty v4.0
-
- $Id: README,v 3.6.2.1 2004/09/13 20:15:47 stephan Exp $
-
- CTAN:macros/latex/contrib/supported/lineno
- CTAN:macros/latex/contrib/supported/numline/
-
-
Added: trunk/Master/texmf-dist/doc/latex/lineno/README.md
===================================================================
--- trunk/Master/texmf-dist/doc/latex/lineno/README.md (rev 0)
+++ trunk/Master/texmf-dist/doc/latex/lineno/README.md 2022-12-05 21:23:48 UTC (rev 65204)
@@ -0,0 +1,146 @@
+# lineno.sty v5.0, fnlineno.sty v0.55
+
+2022-11-29
+
+The LaTeX package lineno.sty provides line numbers on paragraphs. After TeX has
+broken a paragraph into lines there will be line numbers attached to them, with
+the possibility to make references through the LaTeX \ref, \pageref cross
+reference mechanism.
+
+- Copyright 1995--2003 Stephan I. Böttcher
+- Copyright 2002--2005 Uwe Lück for versions 4.x and code from former Ednotes
+- Copyright 2011 Uwe Lück for fnlineno.sty/tex/pdf
+- Copyright 2021--2022 Karl Wette for versions 5.x
+
+The files can be redistributed and/or modified under
+the terms of the LaTeX Project Public License; either
+version 1.3a of the License, or any later version.
+The latest version of this license is in http://www.latex-project.org/lppl.txt.
+We did our best to help you, but there is NO WARRANTY.
+
+Home: http://mirror.ctan.org/macros/latex/contrib/lineno/
+
+Authors:
+
+- Stephan I. Böttcher
+- Uwe Lück
+- Karl Wette
+
+## Compatibility with other packages:
+
+- `wrapfig.sty`: works since v2.05
+
+- `multicol.sty`: works partly since 3.02. Do NOT use \linelabel. Do NOT put a
+ multicol in internal vertical mode {table}, {figure}, etc.
+
+- `hyperref.sty`: \ref to a \linelabel works since v3.03.
+
+- `longtable.sty`: broke with lineno.sty loaded, but not enabled. This is fixed
+ in v3.04.
+
+- `amsmath.sty`: loadable, but not fully supported, with v4.41. Fully supported
+ with v5.0.
+
+## Installation and usage (UL, v4.1):
+
+For being able to use ALL the new `lineno.sty` options, the following files must
+be "visible" to (La)TeX ("visible" explained below for beginners):
+
+```lineno.sty, edtable.sty, ednmath0.sty, ltabptch.sty```
+
+as above ("Home", note that clicking on "entire directory" suffices);
+
+`longtable.sty` -- from the standard LaTeX Tools bundle.
+
+Usage always starts with loading lineno.sty by `\usepackage`. The remaining
+`.sty` files are loaded automatically on the `lineno.sty` options (and we
+recommend not to load them through [the mandatory argument of] `\usepackage`).
+
+For details, see `lineno.tex/pdf` and the `.sty` files mentioned above--search
+especially for tabular and math mode. (+ `print' below here).
+
+"Visible to (LaTeX)": Some users don't understand this "visibility" for a while,
+and indeed it may be somewhat non-trivial. These users may find help in
+https://mirrors.ctan.org/macros/latex/contrib/ednotes/visible.txt . E.g., former users of
+lineno.sty may just put all the .sty files into the folder (at their workplace)
+where they had placed lineno.sty before. (/UL, /v4.1)
+
+To print the documented source: Take the style-file `lineno.sty`, and feed it to
+a Un*x shell. (Or download the extracted source documentation `lineno.tex'.)
+```
+csh> source ./lineno.sty
+sh> . ./lineno.sty
+```
+[ i.e., type `sh lineno.sty` (e.g.) as a UNIX command line. Problems with awk
+may arise. I therefore switched to nawk in lineno.sty v4.00, but this may
+trouble you as well. (UL) ] (Please ignore the error message at the beginning
+about the iffalse.)
+
+## Files
+
+(cf. `SRCFILEs.txt`):
+
+- `README.txt`: This file. (v4.1: UL)
+- `CHANGEs.txt`: Differences to previous versions. (v4.1: UL)
+- `COPYING.txt`: The LPPL header.
+- `SCRFILEs.txt`: Source file infos (UL 2011)
+- `lineno.sty`: The package itself, ready to use.
+- `edtable.sty`: Module for tabular environments. (UL, v4.1)
+- `ednmath0.sty`: Module for \linelabel in math mode. (UL, v4.1)
+- `fnlineno.sty`: Add-on for footnote line numbers (UL, v0.55)
+- `lineno.tex`: The source for the documentation (generated)
+- `lineno.pdf`: PDF deriving from the former. (v4.1: UL)
+- `lnosuppl.pdf`: PDF listing of present non-PDF files
+- `ulineno.tex`: The pathetic attempt of a users' manual. [Describes v3.1 currently.] (UL, v4.1)
+- `ulineno.pdf`: PDF of former.
+- `vplref.sty`: Conditionally include page number in line number references (UL, v4.2)
+- `linenoamsmathdemo.tex`: Demo of making amsmath work with lineno (KW, v5.0)
+
+As of version v3.00, the extension packages for lineno have all been
+incorporated into `lineno.sty` itself. Except for `itemrule.sty`, which was
+removed.
+
+## History
+
+(Prior to my taking over maintenance of the package -- KW)
+
+ ** [ UL: A few festive words on history and responsibility **
+ ** are next preceding hard facts as to (see lower) **
+ ** o `Files' and **
+ ** o `Installation and usage'. ] **
+
+ 2004-09-13 Uwe L"uck [(UL)] is new maintainer for lineno.sty.
+
+ lineno.sty served the purpose for which I wrote it years ago. Uwe
+ L"uck uses lineno.sty with his Ednotes package, which required quite a
+ few changes and fixes. His package depends on lineno, therefore
+ Uwe agreed to take over the maintenance of lineno.sty.
+
+ lineno.sty v4.0 includes most of the well tested changes that Uwe
+ needs for Ednotes. These changes blend well into the concepts of the
+ package, so I am happy to let it go.
+
+ From here on it is Uwe's, and he may proceed to mangle it as he likes.
+ Expect some radical changes. You may find him to be quite a bit
+ friendlier towards the poor souls who still use Windows :-).
+ Currently, you need some kind of Unix environment to extract the
+ source documentation from the sty file.
+
+ If some version 3 users run into difficulties with Uwe's newer
+ versions, but need a minor bug-fix in version 3, please do not
+ hesitate to ask me for help. But all requests for new features or
+ major changes shall go to Uwe.
+
+ Cheers
+ Stephan
+
+ [ Thanks! And please let me know as well should
+ compatibility problems arise! The announced radical
+ changes are postponed again this time (v4.1).
+ --Ednotes is in
+ http://mirror.ctan.org/macros/latex/contrib/ednotes.
+ Uwe ]
+
+ Please have a look at a similar work of Michal Jaegermann and James
+ Fortune:
+ http://mirror.ctan.org/obsolete/macros/latex/contrib/numline/
Property changes on: trunk/Master/texmf-dist/doc/latex/lineno/README.md
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Deleted: trunk/Master/texmf-dist/doc/latex/lineno/README.txt
===================================================================
--- trunk/Master/texmf-dist/doc/latex/lineno/README.txt 2022-12-05 10:28:48 UTC (rev 65203)
+++ trunk/Master/texmf-dist/doc/latex/lineno/README.txt 2022-12-05 21:23:48 UTC (rev 65204)
@@ -1,204 +0,0 @@
-README
- lineno.sty v4.41
- fnlineno.sty v0.55
-
- 2011-02-16
-
-The LaTeX package lineno.sty provides line numbers on paragraphs.
-After TeX has broken a paragraph into lines there will be line numbers
-attached to them, with the possibility to make references through the
-LaTeX \ref, \pageref cross reference mechanism.
-
-% Copyright 1995--2003 Stephan I. B"ottcher <boettcher at physik.uni-kiel.de>;
-% Copyright 2002--2005 Uwe L"uck, http://www.contact-ednotes.sty.de.vu,
-% for versions 4.x and code from former Ednotes
-% Copyright 2011 Uwe L"uck as above, for fnlineno.sty/tex/pdf
-% bundle--author-maintained.
-%
-% The files listed below can be redistributed and/or modified under
-% the terms of the LaTeX Project Public License; either
-% version 1.3a of the License, or any later version.
-% The latest version of this license is in
-% http://www.latex-project.org/lppl.txt
-% We did our best to help you, but there is NO WARRANTY.
-
-** [ UL: A few festive words on history and responsibility **
-** are next preceding hard facts as to (see lower) **
-** o `Files' and **
-** o `Installation and usage'. ] **
-
-2004-09-13 Uwe L"uck [(UL)] is new maintainer for lineno.sty.
-
-lineno.sty served the purpose for which I wrote it years ago. Uwe
-L"uck uses lineno.sty with his Ednotes package, which required quite a
-few changes and fixes. His package depends on lineno, therefore
-Uwe agreed to take over the maintenance of lineno.sty.
-
-lineno.sty v4.0 includes most of the well tested changes that Uwe
-needs for Ednotes. These changes blend well into the concepts of the
-package, so I am happy to let it go.
-
-From here on it is Uwe's, and he may proceed to mangle it as he likes.
-Expect some radical changes. You may find him to be quite a bit
-friendlier towards the poor souls who still use Windows :-).
-Currently, you need some kind of Unix environment to extract the
-source documentation from the sty file.
-
-If some version 3 users run into difficulties with Uwe's newer
-versions, but need a minor bug-fix in version 3, please do not
-hesitate to ask me for help. But all requests for new features or
-major changes shall go to Uwe.
-
-Cheers
-Stephan
-
-
-[ Thanks! And please let me know as well should
- compatibility problems arise! The announced radical
- changes are postponed again this time (v4.1).
- --Ednotes is in
- http://mirror.ctan.org/macros/latex/contrib/ednotes.
- Uwe ]
-
-
-Changes: see CHANGEs.txt; earlier:
-
- 2004-10-19 UL: package options for tabular and math
- 2004-09-03 UL: merge Ednotes changes, taking over lineno.sty
-
- 2002 .. 2003 FMi, UL, SiB: bug fixes
- 2001-08-04 SiB: linenomath wrapping for \[ \]
- 2001-07-30 SiB: [hyperref] option obsolete.
- 2001-01-17 SiB: LaTeX class option [twocolumn] support
- 2001-01-04 SiB: LaTeX class option [fleqn] support
- 2000-12-18 SiB: longtable compatibility
- 2000-07-01 SiB: extra \newlabel items, [hyperref] option
- 2000-03-10 SiB: indirect call of \output, to work with multicol.
- 1999-08-28 SiB: fixed the footnote problem using \holdinginserts
- 1999-06-11 SiB: included the extensions into lineno.sty
- 1999-03-02 SIB: Added LPPL License
-
-
-Files (cf. SRCFILEs.txt):
-
- README.txt This file. (v4.1: UL)
- CHANGEs.txt Differences to previous versions. (v4.1: UL)
- COPYING.txt The LPPL header.
- SCRFILEs.txt Source file infos (UL 2011)
- lineno.sty The package itself, ready to use.
- edtable.sty Module for tabular environments. (UL, v4.1)
- ednmath0.sty Module for \linelabel in math mode. (UL, v4.1)
- fnlineno.sty Add-on for footnote line numbers (UL, v0.55)
- lineno.tex The source for the documentation (generated)
- lineno.pdf PDF deriving from the former. (v4.1: UL)
- lnosuppl.pdf PDF listing of present non-PDF files
- ulineno.tex The pathetic attempt of a users' manual.
- [Describes v3.1 currently.] (UL, v4.1)
- ulineno.pdf PDF of former.
- vplref.sty Conditionally include page number in
- line number references (UL, v4.2)
-
- As of version v3.00, the extension packages for lineno have all been
- incorporated into lineno.sty itself. Except for itemrule.sty,
- which was removed.
-
-Home:
-
- http://mirror.ctan.org/macros/latex/contrib/lineno/
-
-TDS version:
-
- http://mirror.ctan.org/install/macros/latex/contrib/lineno.tds.zip
-
-Authors:
-
- Uwe L"uck <http://contact-ednotes.sty@web.de>
- Stephan I. B"ottcher <boettcher at physik.uni-kiel.de>
-
-Compatibility with other packages:
-
- wrapfig.sty works since v2.05
-
- multicol.sty works partly since 3.02.
- Do NOT use \linelabel. Do NOT put a multicol in
- internal vertical mode {table}, {figure}, etc.
-
- hyperref.sty \ref to a \linelabel works since v3.03.
-
- longtable.sty broke with lineno.sty loaded, but not enabled.
- This is fixed in v3.04.
-
- amsmath.sty loadable, but not fully supported, with v4.41
-
-Installation and usage (UL, v4.1):
-
- For being able to use ALL the new lineno.sty options, the
- following files must be "visible" to (La)TeX ("visible"
- explained below for beginners):
-
- lineno.sty, edtable.sty, ednmath0.sty, ltabptch.sty
-
- as above ("Home", note that clicking on "entire directory"
- suffices);
-
- longtable.sty -- from the standard LaTeX Tools bundle.
-
- Usage always starts with loading lineno.sty by \usepackage.
- The remaining .sty files are loaded automatically on the
- lineno.sty options (and we recommend not to load them through
- [the mandatory argument of] \usepackage).
-
- For details, see lineno.tex/pdf and the .sty files mentioned
- above--search especially for tabular and math mode.
- (+ `print' below here).
-
- "Visible to (LaTeX)": Some users don't understand this
- "visibility" for a while, and indeed it may be somewhat
- non-trivial. These users may find help in
-
- http://mirror.ctan.org/macros/latex/ednotes/visible.txt .
-
- E.g., former users of lineno.sty may just put all the .sty
- files into the folder (at their workplace) where they had
- placed lineno.sty before. (/UL, /v4.1)
-
-To print the documented source:
-
- Take the style-file `lineno.sty', and feed it to a Un*x shell.
- (Or download the extracted source documentation `lineno.tex'.)
-
- csh> source ./lineno.sty
- sh> . ./lineno.sty
-
- [ I.e., type `sh lineno.sty' (e.g.) as a UNIX command line.
- Problems with awk may arise. I therefore switched to nawk
- in lineno.sty v4.00, but this may trouble you as well. (UL) ]
-
- (Please ignore the error message at the beginning about the iffalse.)
-
-
-Please have a look at a similar work of Michal Jaegermann and James
-Fortune:
- http://mirror.ctan.org/obsolete/macros/latex/contrib/numline/
-
-
-
-
-
-==============================================================================
-<- End of official README.txt (UL)
-
-Changes Feb. 2011: numline obsolete, mirror.ctan.org, fnlineno,
-amsmath compatibility, CHANGEs.txt, lineno.tds.zip
-Changes for v4.1 (Oct. 2004): minor fixes (removed `supported/', e.g.);
-bracketed text; lines with `(UL)'; redistribution with README only.
-Formerly:
-
- lineno.sty v4.0
-
- $Id: README,v 3.6.2.1 2004/09/13 20:15:47 stephan Exp $
-
- CTAN:macros/latex/contrib/supported/lineno
- CTAN:macros/latex/contrib/supported/numline/
-
-
Modified: trunk/Master/texmf-dist/doc/latex/lineno/SRCFILEs.txt
===================================================================
--- trunk/Master/texmf-dist/doc/latex/lineno/SRCFILEs.txt 2022-12-05 10:28:48 UTC (rev 65203)
+++ trunk/Master/texmf-dist/doc/latex/lineno/SRCFILEs.txt 2022-12-05 21:23:48 UTC (rev 65204)
@@ -1,15 +1,10 @@
-
- *File List*
- edtable.sty 2005/10/03 v1.3c arrays with lineno + ednotes (ul)
-ednmath0.sty 2005/01/10 v0.2b math support for lineno/ednotes (ul)
-fnlineno.sty 2011/01/07 v0.55 numbers to footnote lines (UL)
- lineno.sty 2005/11/02 line numbers on paragraphs v4.41
- vplref.sty 2005/04/25 v0.2a page-line cross-refs
-fnlineno.tex 2011/02/14 documenting fnlineno.sty (UL)
-lnosuppl.tex 2011/02/16 documenting supplementary files
- ulineno.tex 2001/08/03 lineno.sty users manual
- ***********
-
- List made at 2011/02/16, 12:41
- from script file srcfiles.tex
-
+ednmath0.sty 2005/01/10 v0.2b math support for lineno/ednotes (ul)
+edtable.sty 2005/10/03 v1.3c arrays with lineno + ednotes (ul)
+fnlineno.sty 2011/01/07 v0.55 numbers to footnote lines (UL)
+lineno.sty 2022/07/30 line numbers on paragraphs v5.0
+vplref.sty 2005/04/25 v0.2a page-line cross-refs
+fnlineno.tex 2011/02/14 documenting fnlineno.sty (UL)
+lineno.tex 2022/07/30 line numbers on paragraphs v5.0
+lnosuppl.tex 2011/02/16 documenting supplementary files
+ulineno.tex 2001/08/03 lineno.sty users manual
+linenoamsmathdemo.tex 2021/09/30 Make amsmath work with lineno
Modified: trunk/Master/texmf-dist/doc/latex/lineno/fnlineno.pdf
===================================================================
(Binary files differ)
Added: trunk/Master/texmf-dist/doc/latex/lineno/fnlineno.tex
===================================================================
--- trunk/Master/texmf-dist/doc/latex/lineno/fnlineno.tex (rev 0)
+++ trunk/Master/texmf-dist/doc/latex/lineno/fnlineno.tex 2022-12-05 21:23:48 UTC (rev 65204)
@@ -0,0 +1,92 @@
+\ProvidesFile{fnlineno.tex}
+ [2011/02/14 documenting fnlineno.sty (UL)]
+\title{\textsf{fnlineno.sty}\\---\\Numbering Footnote Lines\thanks{This
+ document %%% manual %% 2010/12/28
+ describes version
+ \textcolor{blue}{\UseVersionOf{fnlineno.sty}}
+ of \textsf{fnlineno.sty} as of \UseDateOf{fnlineno.sty}.}}
+% \listfiles %% 2010/12/22
+{ \RequirePackage{makedoc}[2010/12/20] \ProcessLineMessage{}
+ \MakeJobDoc{19}{\SectionLevelThreeParseInput} %% 2010/12/16
+}
+\documentclass{article}%% TODO paper dimensions!?
+\input{makedoc.cfg} %% shared formatting settings
+%% 2022/07/30 \newcommand*{\lt}{<} \newcommand*{\gt}{>} %% 2010/12/22
+\providecommand*{\strong}{\textbf} %% 2010/12/15
+\ReadPackageInfos{fnlineno}
+\usepackage{color}
+% \hypersetup{bookmarksopen} %% rm. 2010/12/21, cf. .cfg
+%% 2010/12/21: %% 2010/12/26 not sure, splits code
+% \makeatletter \@beginparpenalty\@highpenalty \makeatother
+%% 2010/12/27:
+\makeatletter \@beginparpenalty\@lowpenalty \makeatother
+\sloppy
+\begin{document}
+\maketitle
+\begin{abstract}\noindent
+'fnlineno.sty' extends
+% Stephan~I. B\"ottcher's
+\CtanPkgRef{lineno}{lineno.sty}\urlpkgfoot{lineno}
+(created by Stephan~I. B\"ottcher)
+such that even
+`\footnote' %% `\' 2010/12/09
+lines are numbered and can be referred to
+using `\linelabel', `\ref', etc.
+%% rm. 2011/02/09:
+% Version v0.5 aims at working as a user expects
+% (just cf.~``Limitations"), otherwise please complain!
+
+Making the package was motivated as support for
+\emph{critical editions}
+% of scientific work from an age when footnotes
+% were a standard in publishing in print,
+%% <- 2011/02/09 ->
+of \emph{printed works with footnotes}
+as opposed to scholarly critical editions of \emph{manuscripts.}
+For this purpose, an extension 'edfnotes' of the \ctanpkgref{ednotes}
+package for critical editions, building on 'fnlineno', is provided
+by the \textit{ednotes} bundle.\urlfoot{CtanPkgRef}{ednotes}
+
+'lineno.sty' has also been used for the revision process
+of \emph{submissions.}
+With 'fnlineno.sty', reference to footnotes
+in the submitted work may become possible.
+
+%% rm. 2011/02/09:
+% Another standalone package 'finstrut' is described.
+As to \emph{implementation:} %% 2011/02/14
+1.~Some included tools for
+\emph{storing and restoring global settings}
+may be ``exported" as standalone packages later.
+2.~The method of typesetting footnotes on the main vertical list
+may later lead to applying the line numbering method to
+several \emph{parallel} texts (with footnotes) and to
+`inner' material such as table cells.
+%% <- 2011/02/14 ->
+% \dots
+
+%% new 2011/02/09:
+ \smallskip\noindent
+\strong{Keywords:}\quad line numbers; footnotes, pagewise,
+critical editions, revision
+\end{abstract}
+\tableofcontents
+
+% \newpage %% rm. 2011/02/09
+\section{Usage and Features}
+\subsection{Package File Header (Legalize)}
+\input{fnlineno.doc}
+\end{document}
+
+VERSION HISTORY
+
+2010/12/08 for v0.1 very first
+2010/12/09 for v0.2 moved much to .sty
+2010/12/15 for v0.4 \strong
+2010/12/16 \SectionLevelThree...
+2010/12/22ff. beginparpenalty varied
+2010/12/28 for v0.5 abstract extended
+2011/02/09 removing `finstrut'; mention `edfnotes'
+2011/02/10 using \urlpkgfoot etc.
+2011/02/14 abstract modified
+2022/07/30 comment out \lt, \gt commands
Property changes on: trunk/Master/texmf-dist/doc/latex/lineno/fnlineno.tex
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Modified: trunk/Master/texmf-dist/doc/latex/lineno/lineno.pdf
===================================================================
(Binary files differ)
Added: trunk/Master/texmf-dist/doc/latex/lineno/lineno.tex
===================================================================
--- trunk/Master/texmf-dist/doc/latex/lineno/lineno.tex (rev 0)
+++ trunk/Master/texmf-dist/doc/latex/lineno/lineno.tex 2022-12-05 21:23:48 UTC (rev 65204)
@@ -0,0 +1,3225 @@
+\def\fileversion{v5.0} \def\filedate{2022/07/30}
+
+\title{\texttt{\itshape
+lineno.sty \ \fileversion\ \filedate
+\unskip}\\\ \\
+A \LaTeX\ package to attach
+\\ line numbers to paragraphs
+\unskip}\author{%
+Stephan I. B\"ottcher
+\\ Uwe L\"uck
+\unskip}\date{%
+boettcher at physik.uni-kiel.de
+\\ http://contact-ednotes.sty.de.vu
+\\}
+
+\documentclass[a4paper,12pt]{article}%D
+\usepackage{lineno}%D
+\usepackage{hyperref}%D
+\catcode`\_\active\let_~
+\def~{\verb~}
+\let\lessthan<
+\catcode`\<\active
+\def<#1>{$\langle${\itshape#1}\/$\rangle$}
+\catcode`\|\active
+\def|#1{\ttfamily\string#1}
+\newenvironment{code}
+{\par\runninglinenumbers
+\modulolinenumbers[1]%
+\linenumbersep.3em
+\footnotesize
+\def\linenumberfont
+{\normalfont\tiny\itshape}}
+{}
+{\makeatletter \gdef\scs#1{\texttt
+{\protect\@backslashchar#1}}}
+\def\old{\par\footnotesize}
+{\catcode`\/\active
+\gdef\path{\begingroup\catcode`\/\active
+\let/\slash\dopath}
+\gdef\dopath#1{\slash\unpenalty#1\endgroup}}
+
+\begin{document}%D
+\pagewiselinenumbers
+\maketitle
+\pagestyle{headings}
+\tableofcontents
+\sloppy
+
+\section{%
+Introductions
+\unskip}
+
+(New v4.00) Parts of former first section
+have been rendered separate subsections for package
+version_v4.00. (/New v4.00)
+
+\subsection{%
+Introduction to versions $\textrm{v}\lessthan4$
+\unskip}
+
+This package provides line numbers on paragraphs.
+After \TeX\ has broken a paragraph into lines there will
+be line numbers attached to them, with the possibility to
+make references through the \LaTeX\ ~\ref~, ~\pageref~
+cross reference mechanism. This includes four issues:
+\begin{itemize}
+\item attach a line number on each line,
+\item create references to a line number,
+\item control line numbering mode,
+\item count the lines and print the numbers.
+\end{itemize}
+The first two points are implemented through patches to
+the output routine. The third by redefining ~\par~, ~\@par~
+and ~\@@par~. The counting is easy, as long as you want
+the line numbers run through the text. If they shall
+start over at the top of each page, the aux-file as well
+as \TeX s memory have to carry a load for each counted line.
+
+I wrote this package for my wife Petra, who needs it for
+transcriptions of interviews. This allows her to
+precisely refer to passages in the text. It works well
+together with ~\marginpar~s, but not too well with displaymath.
+~\footnote~s are a problem, especially when they
+are split, but we may get there.
+(New v4.00 UL) Version v4.00 overcomes the problem, I believe.
+(/UL /New v4.00)
+
+lineno.sty works
+surprisingly well with other packages, for
+example, ~wrapfig.sty~. So please try if it
+works with whatever you need, and if it does,
+please tell me, and if it does not, tell me as
+well, so I can try to fix it.
+
+\subsection{%
+Introduction to versions v4.00ff. (UL)
+\unskip}
+
+~lineno.sty~ has been maintained by Stephan until version_v3.14.
+From version_v4.00 onwards, maintenance is shifting towards
+Uwe L\"uck (UL), who is the author of v4\dots code and of v4\dots
+changes in documentation. This came about as follows.
+
+Since late 2002, Christian Tapp and Uwe L\"uck have employed
+~lineno.sty~ for their ~ednotes.sty~, a package supporting
+critical editions---cf.
+\[\mbox{\tt
+http://ednotes.sty.de.vu
+\unskip}\]
+---while you find ~ednotes.sty~ and surrounding files in
+CTAN folder \path{macros/latex/contrib/ednotes}.
+
+Soon, some weaknesses of ~lineno.sty~ showed up, mainly since
+Christian's critical editions (using ~ednotes.sty~) needed lots
+of ~\linelabel~s and footnotes. (These weaknesses are due to
+weaknesses of \LaTeX's ~\marginpar~ mechanism that Stephan
+used for ~\linelabel~.) So we changed some ~lineno.sty~
+definitions in some extra files, which moreover offered new
+features. We sent these files to Stephan, hoping he would take
+the changes into ~lineno.sty~. However, he was too short of time.
+
+Writing a TUGboat article on Ednotes in 2004, we hoped to
+reduce the number of files in the Ednotes bundle and so asked
+Stephan again. Now he generously offered maintenance to me, so
+I could execute the changes on my own.
+
+The improvements are as follows:
+\begin{itemize}\item
+[(i)] Footnotes placement approaches intentions better
+(footnotes formerly liked to pile up at late pages).
+\item
+[(ii)] The number of ~\linelabel~s in one paragraph is no longer
+limited to 18.
+\item
+[(iii)] ~\pagebreak~, ~\nopagebreak~, ~\vspace~, and the star
+and optional versions of ~\\~ work as one would expect
+(section_\ref{s:MVadj}). %% Added for v4.1
+\item
+[(iv)] A command is offered which chooses the first line number
+to be printed in the margin
+(subsection_\ref{ss:Mod}). %% Added for v4.1
+\item
+[(v)] (New v4.1) \LaTeX\ tabular environments (optionally)
+get line numbers as well, and you can refer to them in the
+usual automatic way. (It may be considered a shortcoming that,
+precisely, \emph{rows} are numbered, not lines.---See
+subsection_\ref{ss:Tab}.)
+\item
+[(vi)] We are moving towards referring to math items
+(subsection_\ref{ss:MathRef} and the hooks in
+subsection_\ref{ss:LL}).
+(/New v4.1)
+\end{itemize}
+(Thanks to Stephan for making this possible!)
+
+
+Ednotes moreover profits from Stephan's offer with regard
+to the documentation of our code which yielded these
+improvements formerly. This documentation now becomes
+printable, being part of the ~lineno.sty~ documentation.
+
+Of course, Stephan's previous ~lineno.sty~ versions were a great
+and ingenious work and exhibit greatest \TeX pertise. I never
+could have done this. I learnt a lot in studying the code when
+Christian pointed out strange output results and error
+messages, and there are still large portions of ~lineno.sty~
+which I don't understand (consider only pagewise numbering of
+lines). Fortunately, Stephan has offered future help if
+needed.---My code for attaching line numbers to \emph{tabular
+environments} (as mentioned above, now still in
+~edtable.sty~) %% %% TODO
+developed from macros which Stephan and Christian experimented
+with in December 2002. Stephan built the basics.
+(However, I then became too proud to follow his advice only to
+use and modify ~longtable.sty~.)
+
+There are some issues concerning use of counters on which I
+don't agree with Stephan and where I would like to change the
+code if ~lineno.sty~ is ``mine'' as Stephan offered. However,
+Stephan is afraid of compatibility problems from which, in
+particular, his wife could suffer in the near future. So he
+demanded that I change as little as possible for my first
+version. Instead of executing changes that I plan I just offer
+my opinions at the single occasions. I hope to get in touch
+this way with users who consider subtle features vital which I
+consider strange.
+
+On the other hand, the sections on improvements of the
+implementation have been blown up very much and may be tiring
+and litte understandable for mere \emph{users}. These users
+may profit from the present presentation just by jumping to
+sections_\ref{s:Opts} and_\ref{s:UserCmds}. There is a user's
+guide ulineno.tex which may be even more helpful, but it has
+not been updated for a while. %% TODO
+
+\subsection{%
+Availability
+\unskip}
+
+In case you have found the present file otherwise than from
+CTAN: A recent version and documentation of this package
+should be available from CTAN folder
+\path{macros/latex/contrib/lineno}.
+Or mail to one of the addresses at top of file.
+
+\subsection{%
+Introductory code
+\unskip}
+
+This style option is written for \LaTeXe, November 1994 or later,
+since we need the ~\protected at write~ macro.
+
+(New v4.00) And we use ~\newcommand*~ for
+controlling length of user macro arguments, which has been
+available since December 1994.
+\begin{code}\begin{verbatim}
+\NeedsTeXFormat{LaTeX2e}[1994/12/01]
+\ProvidesPackage{lineno}
+ [\filedate\space line numbers on paragraphs \fileversion]
+\end{verbatim}
+\end{code}
+(/New v4.00)
+
+
+\section{%
+Put the line numbers to the lines
+\unskip}
+
+(New v4.00) This section contained the most
+basic package code previously. For various purposes of
+version_4\dots, much of these basics have been to be modified.
+Much of my (UL's) reasoning on these modifications has been to
+be reported. Sorry, the present section has been blown up
+awfully thus and contains ramifications that may be difficult
+to trace. We add some ~\subsection~ commands in order to cope
+with the new situation. (/New v4.00)
+
+\subsection{%
+Basic code of \texttt{lineno.sty} \scs{output}
+\unskip}\label{ss:output}
+
+The line numbers have to be attached by the output
+routine. We simply set the ~\interlinepenalty~ to $-100000$.
+The output routine will be called after each line in the
+paragraph, except the last, where we trigger by ~\par~.
+The ~\linenopenalty~ is small enough to compensate a bunch of
+penalties (e.g., with ~\samepage~).
+
+(New v3.04) Longtable uses
+~\penalty~$-30000$. The lineno penalty range was
+shrunk to $-188000 \dots -32000$. (/New v3.04)
+(New v4.00) New values are listed below (11111f.). (/New v4.00)
+\begin{code}\begin{verbatim}
+\newcount\linenopenalty\linenopenalty=-100000
+\end{verbatim}
+\end{code}
+(UL) Hm. It is never needed below
+that this is a counter. ~\def\linenopenalty{-100000\relax}~
+would do. (I guess this consumes more memory, but it
+is more important to save counters than to save memory.)
+I was frightened by ~-\linenopenalty~ below, but indeed
+\TeX\ interprets the string ~--100000~ as 100000.
+Has any user or extension package writer ever called
+~\linenopenalty=xxx~, or could I really change this?---The
+counter is somewhat faster than the macro. Together with the
+compatibility question this seems to support keeping the
+counter. (???)
+(/UL)
+\begin{code}\begin{verbatim}
+\mathchardef\linenopenaltypar=32000
+\end{verbatim}
+\end{code}
+So let's make a hook to ~\output~, the direct way. The \LaTeX\
+macro ~\@reinserts~ puts the footnotes back on the page.
+
+(New v3.01) ~\@reinserts~ badly
+screws up split footnotes. The bottom part is
+still on the recent contributions list, and the
+top part will be put back there after the bottom
+part. Thus, since lineno.sty does not play well
+with ~\inserts~ anyway, we can safely experiment
+with ~\holdinginserts~, without making things
+much worse.
+
+Or that's what I thought, but: Just activating
+~\holdinginserts~ while doing the ~\par~ will
+not do the trick: The ~\output~ routine may be
+called for a real page break before all line
+numbers are done, and how can we get control
+over ~\holdinginserts~ at that point?
+
+Let's try this: When the ~\output~ routine is
+run with ~\holdinginserts=3~ for a real page
+break, then we reset ~\holdinginserts~ and
+restart ~\output~.
+
+Then, again, how do we keep the remaining
+~\inserts~ while doing further line numbers?
+
+If we find ~\holdinginserts~=$-3$ we activate it again
+after doing ~\output~. (/New v3.01)
+
+(New v3.02) To work with
+multicol.sty, the original output routine is now
+called indirectly, instead of being replaced.
+When multicol.sty changes ~\output~, it is a
+toks register, not the real thing. (/New v3.02)
+
+(New v4.00) Two further complications are added.
+\begin{itemize}\item
+[(i)] Problems with footnotes formerly resulted from
+\LaTeX's ~\@reinserts~ in ~\@specialoutput~ which Stephan's
+~\linelabel~ called via the ~\marginpar~ mechanism.
+\item
+[(ii)] \LaTeX\ commands using ~\vadjust~ formerly didn't work
+as one would have hoped. The problem is as follows:
+Printing the line number results from
+a box that the output routine inserts at the place of the
+~\interlinepenalty~. ~\vadjust~ items appear \emph{above} the
+~\interlinepenalty~ (\TeX book p._105). So ~\pagebreak~, e.g.,
+formerly sent the line number to the next page, while the
+penalty from ~\nopagebreak~ could not tie the following line,
+since it was screened off by the line number box.---Our trick
+is putting the ~\vadjust~ items into a list macro from which
+the output routine transfers them into the vertical list,
+below the line number box.
+\end{itemize}
+In this case_(ii), like in case_(i), footnotes would suffer
+if ~\holdinginserts~ were non-positive. Indeed, in both
+cases_(i) and_(ii) we tackle the footnote problem by extending
+that part of Stephan's output routine that is active when
+~\holdinginserts~ is positive. This extension writes the line
+number ~\newlabel~ to the .aux file (which was formerly done
+under $~\holdinginserts~=-3$) and handles the ~\vadjust~
+items.---To trigger ~\output~ and its ~\linelabel~ or, resp.,
+~\vadjust~ part, the list of signal penalties started
+immediately before is increased here (first for ~\linelabel~,
+second for postponed ~\vadjust~ items):
+\begin{code}\begin{verbatim}
+\mathchardef\@Mllbcodepen=11111
+\mathchardef\@Mppvacodepen=11112
+\end{verbatim}
+\end{code}
+(/New v4.00) (New v4.2) David Kastrup urges to use a private
+name instead of ~\the\output~ (LaTeX-L-list). Otherwise an
+~\output~ routine loaded later and using ~\newtoks\output~
+again may get lost entirely. So we change use of ~\@LN at output~,
+using it for the former purpose. Reference to what appeared
+with the name of ~\output~ here lasts for a few lines and then
+is given away.
+\begin{code}\begin{verbatim}
+\let\@tempa\output
+\newtoks\output
+\let\@LN at output\output
+\output=\expandafter{\the\@tempa}
+\end{verbatim}
+\end{code}
+Now we add two cases to Stephan's output routine. (New v4.00)
+\begin{code}\begin{verbatim}
+\@tempa={%
+\end{verbatim}
+\end{code}
+(/New 4.2)
+\begin{code}\begin{verbatim}
+ \LineNoTest
+ \if at tempswa
+\end{verbatim}
+\end{code}
+(New v4.00)
+We insert recognition of waiting ~\linelabel~ items---
+\begin{code}\begin{verbatim}
+ \ifnum\outputpenalty=-\@Mllbcodepen
+ \WriteLineNo
+\end{verbatim}
+\end{code}
+---and of waiting ~\vadjust~ items:
+\begin{code}\begin{verbatim}
+ \else
+ \ifnum\outputpenalty=-\@Mppvacodepen
+ \PassVadjustList
+ \else
+\end{verbatim}
+\end{code}
+(/New v4.00) (New v4.2) Outsource ``Standard'' output
+---which occurs so rarely---to subsection_\ref{ss:LLO}:
+\begin{code}\begin{verbatim}
+ \LineNoLaTeXOutput
+\end{verbatim}
+\end{code}
+(/New v4.2) (New v4.00)
+Two new ~\fi~s for the ~\linelabel~ and ~\vadjust~ tests---
+\begin{code}\begin{verbatim}
+ \fi
+ \fi
+\end{verbatim}
+\end{code}
+---and the remaining is
+Stephan's code again:
+(/New v4.00)
+\begin{code}\begin{verbatim}
+ \else
+ \MakeLineNo
+ \fi
+ }
+\end{verbatim}
+\end{code}
+(New v4.00) Our new macros
+~\WriteLineNo~ and ~\PassVadjustList~ will be dealt with in
+sections_\ref{s:LNref} and_\ref{ss:PVadj}. (/New v4.00)
+
+\subsection{%
+\scs{LineNoTest}
+\unskip}
+
+The float mechanism inserts ~\interlinepenalty~s during
+~\output~. So carefully reset it before going on. Else
+we get doubled line numbers on every float placed in
+horizontal mode, e.g, from ~\linelabel~.
+
+Sorry, neither a ~\linelabel~ nor a ~\marginpar~ should
+insert a penalty, else the following linenumber
+could go to the next page. Nor should any other
+float. So let us suppress the ~\interlinepenalty~
+altogether with the ~\@nobreak~ switch.
+
+Since (ltspace.dtx, v1.2p)[1996/07/26], the ~\@nobreaktrue~ does
+it's job globally. We need to do it locally here.
+\begin{code}\begin{verbatim}
+\def\LineNoTest{%
+ \let\@@par\@@@par
+ \ifnum\interlinepenalty<-\linenopenaltypar
+ \advance\interlinepenalty-\linenopenalty
+ \@LN at nobreaktrue
+ \fi
+ \@tempswatrue
+ \ifnum\outputpenalty>-\linenopenaltypar\else
+ \ifnum\outputpenalty>-188000\relax
+ \@tempswafalse
+ \fi
+ \fi
+ }
+
+\def\@LN at nobreaktrue{\let\if at nobreak\iftrue} % renamed v4.33
+\end{verbatim}
+\end{code}
+(UL) I thought here were
+another case of the save stack problem explained in \TeX book,
+p._301, namely through both local and global changing
+~\if at nobreak~. However, ~\@LN at nobreak~ is called during
+~\@LN at output~ only, while ~\@nobreaktrue~ is called by \LaTeX's
+~\@startsection~ only. The latter never happens during
+~\@LN at output~. So there is no local value of ~\if at nobreak~ on
+save stack when ~\@nobreaktrue~ acts, since ~\the\@LN at output~
+(where ~\@LN at output~ is a new name for the original ~\output~)
+is executed within a group (\TeX book p._21).
+(/UL)
+
+\subsection{%
+Other output routines (v4.2)
+\unskip}\label{ss:LLO}
+
+I had thought of dealing with bad interference of footnotes
+(and ~\enlargethispage~) with (real) ~\marginpar~s and floats
+\emph{here}. Yet this is done in
+\[
+~http://~\mbox{[CTAN]}
+~/macros/latex/contrib/tamefloats/tameflts.sty~
+\]
+now, and I prefer striving for compatibility with the latter.
+(See there for expanding on the problem.)
+This requires returning the special absolute value of
+~\holdinginserts~ that ~lineno.sty~ finds at the end of a newly
+typeset paragraph---now done in subsection_\ref{ss:calls}
+(~\linenumberpar~).
+The former ~\LineNoHoldInsertsTest~ has been filled into here.
+Note: when the following code is invoked, we have
+~\if at tempswa~_ =_~\iftrue~.
+WARNING: I am still not sure whether the present code is good
+for cooperating with other packages that use ~\holdinginserts~.
+\begin{code}\begin{verbatim}
+\def\LineNoLaTeXOutput{%
+ \ifnum \holdinginserts=\thr@@ % v4.33 without \@tempswafalse
+ \global\holdinginserts-\thr@@
+ \unvbox\@cclv
+ \ifnum \outputpenalty=\@M \else \penalty\outputpenalty \fi
+ \else
+ \if at twocolumn \let\@makecol\@LN at makecol \fi
+ \the\@LN at output % finally following David Kastrup's advice.
+ \ifnum \holdinginserts=-\thr@@
+ \global\holdinginserts\thr@@ \fi
+ \fi
+}
+\end{verbatim}
+\end{code}
+\textit{More on dealing with output routines from other
+packages:}
+Since ~lineno.sty~'s output routine is called at least once
+for each output line, I think it should be in \TeX's
+original ~\output~, while output routines dealing with
+building pages and with floats etc.\ should be filled into
+registers addressed by ~\output~ after ~\newtoks\output~.
+Therefore \begin{enumerate}
+\item
+~tameflts.sty~ should be loaded \emph{after} ~lineno.sty~;
+\item
+if a class changes ~\output~ (APS journal class revtex4,
+e.g.), ~lineno.sty~ should be loaded by ~\RequirePackage~
+[here presumably following some options in
+brackets]~{lineno}~ \emph{preceding} ~\documentclass~.
+\item
+If you actually maintain such a class, please consider
+loading ~lineno.sty~ on some draft option. The bunch of
+lineno's package options may be a problem, but perhaps the
+purpose of your class is offering only very few of lineno's
+options anyway, maybe just one.
+\end{enumerate}
+The latter may also be needed with classes that don't follow
+David Kastrup's rule on changing ~\output~.
+
+\subsection{%
+\scs{MakeLineNo}: Actually attach line number
+\unskip}\label{ss:MLN}
+
+We have to return all the page to the current page, and
+add a box with the line number, without adding
+breakpoints, glue or space. The depth of our line number
+should be equal to the previous depth of the page, in
+case the page breaks here, and the box has to be moved up
+by that depth.
+
+The ~\interlinepenalty~ comes after the ~\vadjust~ from a
+~\linelabel~, so we increment the line number \emph{after}
+printing it. The macro ~\makeLineNumber~ produces the
+text of the line number, see section \ref{appearance}.
+
+(UL) I needed a while to understand
+the sentence on incrementing. Correctly: writing the
+~\newlabel~ to the .aux file is triggered by the signal
+penalty that ~\end at float~ inserts via ~\vadjust~.
+However, this could be changed by our new ~\PostponeVadjust~.
+After ~\c at linenumber~ has been introduced as a \LaTeX\
+counter, it might be preferable that it behaved like standard
+\LaTeX\ counters which are incremented shortly before printing.
+But this may be of little practical relevance in this case,
+as ~\c at linenumber~ is driven in a very non-standard
+way.---However still, this behaviour of ~\c at linenumber~
+generates a problem with our ~edtable.sty~.
+(/UL).
+
+Finally we put in the natural ~\interlinepenalty~, except
+after the last line.
+
+(New v3.10) Frank Mittelbach points out that box255 may be
+less deep than the last box inside, so he proposes to
+measure the page depth with ~\boxmaxdepth=\maxdimen~.
+(/New v3.10)
+
+(UL, New v4.00) We also resume the matter of
+~\vadjust~ items that was started in section_\ref{ss:output}.
+
+\TeX\ puts only nonzero interline
+penalties into the vertical list (\TeX book p._105), while
+~lineno.sty~ formerly replaced the signal interline penalty by
+something closing with an explicit penalty of the value that
+the interline penalty would have without ~lineno.sty~.
+This is usually 0. Now, explicit vertical penalties can be
+very nasty with respect to ~\nopagebreak~, e.g., a low (even
+positive) ~\widowpenalty~ may force a widow where you
+explicitly tried to forbid it by ~\nopagebreak~
+(see explanation soon below).
+The ~\nopagebreak~ we create here would never work if all
+those zero penalties were present.---On
+the other hand, we cannot just omit Stephan's zero penalties,
+because \TeX\ puts a penalty of 10000 after what ~lineno.sty~
+inserts (\TeX book p._125). This penalty must be overridden
+to allow page breaks between ordinary lines. To revive
+~\nopagebreak~, we therefore replace those zero (or low)
+penalties by penalties that the user demanded by
+~\nopagebreak~.---This mechanism is not perfect and does not
+exactly restore the original \LaTeX\ working of ~\pagebreak~
+and ~\nopagebreak~. Viz., if there are several vertical
+penalties after a line which were produced by closely sitting
+~\[no]pagebreak~s, without ~lineno.sty~ the lowest penalty would
+be effective (cf._\TeX book exercise_14.10). Our mechanism, by
+contrast, chooses the \emph{last} user-set penalty of the line
+as the effective one. It would not be very difficult to come
+more close to the original mechanism, but until someone urges
+us we will cling to the present simple way. You may consider an
+advantage of the difference between our mechanism and the
+original one that the user here can actually override low
+penalties by ~\nopagebreak~, which may be what a lay \LaTeX\
+user would expect.
+(/UL, /New v4.00)
+\begin{code}\begin{verbatim}
+\def\MakeLineNo{%
+ \@LN at maybe@normalLineNumber % v4.31
+ \boxmaxdepth\maxdimen\setbox\z@\vbox{\unvbox\@cclv}%
+ \@tempdima\dp\z@ \unvbox\z@
+ \sbox\@tempboxa{\hb at xt@\z@{\makeLineNumber}}%
+\end{verbatim}
+\end{code}
+(New v4.00) Previously,
+\begin{old}\begin{verbatim}
+% \stepcounter{linenumber}%
+\end{verbatim}
+\end{old}
+followed. (Of course, there was no
+comment mark; I put it there to make
+reading the actual code easy.)
+
+(New v4.22: improved) Why not just
+\[~\global\advance\c at linenumber\@ne~?\]
+~\stepcounter~ additionally resets ``subordinate''
+counters, but which could these (usefully) be?
+Again, may be column counters with ~edtable.sty~!?
+
+But then, our ~edtable.sty~ and its ~longtable~ option
+should use it as well. So use a shorthand supporting
+uniformity. You can even use it as a hook for choosing
+~\global\advance\c at linenumber\@ne~ instead of our choice.
+(/New v4.22)
+\begin{code}\begin{verbatim}
+ \stepLineNumber
+\end{verbatim}
+\end{code}
+(New v4.4) Now
+\begin{code}\begin{verbatim}
+ \ht\@tempboxa\z@ \@LN at depthbox
+\end{verbatim}
+\end{code}
+appends the box containing the line number without changing
+~\prevdepth~---see end of section.
+Now is the time for inserting the $\dots$ (/New v4.4)
+~\vadjust~ items. We cannot do this much later, because
+their right place is above the artificial interline
+penalty which Stephan's code will soon insert
+(cf._\TeX book p._105). The next command is just ~\relax~
+if no ~\vadjust~ items have been accumulated for the
+current line. Otherwise it is a list macro inserting
+the ~\vadjust~ items and finally resetting itself.
+(This is made in section_\ref{ss:PVadj} below.)
+If the final item is a penalty, it is stored so it can
+compete with other things about page breaking.
+\begin{code}\begin{verbatim}
+ \@LN at do@vadjusts
+ \count@\lastpenalty
+\end{verbatim}
+\end{code}
+At this place,
+\begin{old}\begin{verbatim}
+% \ifnum\outputpenalty=-\linenopenaltypar\else
+\end{verbatim}
+\end{old}
+originally followed. We need something \emph{before} the
+~\else~:
+\begin{code}\begin{verbatim}
+ \ifnum\outputpenalty=-\linenopenaltypar
+ \ifnum\count@=\z@ \else
+\end{verbatim}
+\end{code}
+So final ~\pagebreak[0]~ or ~\nopagebreak[0]~ has no
+effect---but this will make a difference after headings only,
+where nobody should place such a thing anyway.
+\begin{code}\begin{verbatim}
+ \xdef\@LN at parpgbrk{%
+ \penalty\the\count@
+ \global\let\noexpand\@LN at parpgbrk
+ \noexpand\@LN at screenoff@pen}% v4.4
+\end{verbatim}
+\end{code}
+That penalty will replace former ~\kern\z@~ in
+~\linenumberpar~, see subsection_\ref{ss:calls}.---A
+few days earlier, I tried to send just a penalty value.
+However, the ~\kern\z@~ in ~\linenumberpar~ is crucial,
+as I then found out. See below.---The final penalty is
+repeated, but this does no harm. (It would not be very
+difficult to avoid the repeating, but it may even be
+less efficient.) It may be repeated due to the previous
+~\xdef~, but it may be repeated as well below in the
+present macro where artificial interline penalty is to
+be overridden.
+\begin{code}\begin{verbatim}
+ \fi
+ \else
+\end{verbatim}
+\end{code}
+(/New v4.00)
+\begin{code}\begin{verbatim}
+ \@tempcnta\outputpenalty
+ \advance\@tempcnta -\linenopenalty
+\end{verbatim}
+\end{code}
+(New v4.00)
+\begin{old}\begin{verbatim}
+% \penalty\@tempcnta
+\end{verbatim}
+\end{old}
+followed previously. To give ~\nopagebreak~ a chance,
+we do
+\begin{code}\begin{verbatim}
+ \penalty \ifnum\count@<\@tempcnta \@tempcnta \else \count@ \fi
+\end{verbatim}
+\end{code}
+instead.---In ~linenox0.sty~, the ~\else~ thing once was omitted.
+Sergei Mariev's complaint (thanks!) showed that it is vital
+(see comment before ~\MakeLineNo~).
+The remaining ~\fi~ from previous package version closes the
+~\ifnum\outputpenalty~\dots
+(/New v4.00)
+\begin{code}\begin{verbatim}
+ \fi
+ }
+\end{verbatim}
+\end{code}
+(New v4.00)
+\begin{code}\begin{verbatim}
+\newcommand\stepLineNumber{\stepcounter{linenumber}}
+\end{verbatim}
+\end{code}
+For reason, see use above. (/New v4.00)
+
+(New v4.4) The depth preserving trick is drawn here from
+~\MakeLineNo~ because it will be used again in
+section_\ref{ss:calls}.
+\begin{code}\begin{verbatim}
+\def\@LN at depthbox{%
+ \dp\@tempboxa=\@tempdima
+ \nointerlineskip \kern-\@tempdima \box\@tempboxa}
+\end{verbatim}
+\end{code}
+(/New v4.4)
+
+\section{%
+Control line numbering
+\unskip}
+\subsection{%
+Inserting \scs{output} calls %% own subsec. v4.4.
+\unskip}\label{ss:calls}
+The line numbering is controlled via ~\par~. \LaTeX\
+saved the \TeX-primitive ~\par~ in ~\@@par~. We push it
+one level further out, and redefine ~\@@par~ to insert
+the ~\interlinepenalty~ needed to trigger the
+line numbering. And we need to allow pagebreaks after a
+paragraph.
+
+New (2.05beta): the prevgraf test. A paragraph that ends with a
+displayed equation, a ~\noindent\par~ or ~wrapfig.sty~ produce empty
+paragraphs. These should not get a spurious line number via
+~\linenopenaltypar~.
+\begin{code}\begin{verbatim}
+\let\@@@par\@@par
+\newcount\linenoprevgraf
+\end{verbatim}
+\end{code}
+(UL) And needs ~\linenoprevgraf~
+to be a counter? Perhaps there may be a paragraph having
+thousands of lines, so ~\mathchardef~ doesn't suffice (really??).
+A macro ending on ~\relax~ might suffice, but would be
+somewhat slow. I think I will use ~\mathchardef~ next time.
+Or has any user used ~\linenoprevgraf~? (/UL)
+\begin{code}\begin{verbatim}
+\def\linenumberpar{%
+ \ifvmode \@@@par \else
+ \ifinner \@@@par \else
+ \xdef\@LN at outer@holdins{\the\holdinginserts}% v4.2
+ \advance \interlinepenalty \linenopenalty
+ \linenoprevgraf \prevgraf
+ \global \holdinginserts \thr@@
+ \@@@par
+ \ifnum\prevgraf>\linenoprevgraf
+ \penalty-\linenopenaltypar
+ \fi
+\end{verbatim}
+\end{code}
+(New v4.00)
+\begin{old}\begin{verbatim}
+% \kern\z@
+\end{verbatim}
+\end{old}
+was here previously. What for?
+According to \TeX book p._125, Stephan's
+interline penalty is changed into 10000. At the end of a
+paragraph, the ~\parskip~ would follow that penalty of 10000,
+so there could be a page break neither at the
+~\parskip~ nor at the ~\baselineskip~ (\TeX book p._110)---so
+there could never be a page break between two paragraphs.
+So something must screen off the 10000 penalty.
+Indeed, the ~\kern~ is a place to break.
+(Stephan once knew this: see `allow pagebreaks' above.)
+
+Formerly, I tried to replace ~\kern\z@~ by
+\begin{old}\begin{verbatim}
+% \penalty\@LN at parpgpen\relax
+\end{verbatim}
+\end{old}
+---but this allows a page break after heading. So:
+\begin{code}\begin{verbatim}
+ \@LN at parpgbrk
+\end{verbatim}
+\end{code}
+
+These and similar changes were formerly done by ~linenox1.sty~.
+(/New v4.00)
+
+(New v4.4)
+A ~\belowdisplayskip~ may precede the previous when the paragraph
+ends on a display-math; or there may be a ~\topsep~ from a list, etc.
+~\addvspace~ couldn't take account for it with ~\kern\z@~
+here. v4.32 therefore moved the space down -- with at least two
+bad consequences.
+Moreover, David Josef Dev observes that ~\kern\z@~ may
+inappropriately yield column depth 0pt.
+For these reasons, we introduce ~\@LN at screenoff@pen~ below.
+(/New v4.4)
+\begin{code}\begin{verbatim}
+ \global\holdinginserts\@LN at outer@holdins % v4.2
+ \advance\interlinepenalty -\linenopenalty
+ \fi % from \ifinner ... \else
+ \fi} % from \ifvmode ... \else
+\end{verbatim}
+\end{code}
+(New v4.00, v4.4) Initialize ~\@LN at parpgbrk~, accounting
+for earlier space and for appropriate columndepth.
+We use former ~\MakeLineNo~'s depth-preverving trick
+~\@LN at depthbox~ again:
+\begin{code}\begin{verbatim}
+\def\@LN at screenoff@pen{%
+ \ifdim\lastskip=\z@
+ \@tempdima\prevdepth \setbox\@tempboxa\null
+ \@LN at depthbox \fi}
+
+\global\let\@LN at parpgbrk\@LN at screenoff@pen
+\end{verbatim}
+\end{code}
+(/New v4.4, v4.00)
+\subsection{%
+Turning on/off %% own subsec. v4.4.
+\unskip}\label{ss:OnOff}
+The basic commands to enable and disable line numbers.
+~\@par~ and ~\par~ are only touched, when they are ~\let~
+to ~\@@@par~/~\linenumberpar~. The line number may be
+reset to 1 with the star-form, or set by an optional
+argument ~[~<number>~]~.
+
+(New v4.00) We add ~\ifLineNumbers~ etc.\ since
+a number of our new adjustments need to know whether
+linenumbering is active. This just provides a kind of
+shorthand for ~\ifx\@@par\linenumberpar~; moreover it is
+more stable: who knows what may happen to ~\@@par~?---A
+caveat: ~\ifLineNumbers~ may be wrong. E.g., it may be
+~\iffalse~ where it acts, while a ~\linenumbers~ a few
+lines below---in the same paragraph---brings about that
+the line where the ~\ifLineNumbers~ appears gets a
+marginal number.
+(New v4.3) Just noticed: Such tricks have been
+disallowed with v4.11, see subsections_\ref{ss:LL}
+and_\ref{ss:OnOff}.---Moreover, the switching between
+meanings of ~\linelabel~ for a possible error message
+as of v4.11 is removed. Speed is difficult to esteem
+and also depends on applications. Just use the most
+simple code you find. (/New v4.3)
+\begin{code}\begin{verbatim}
+\newif\ifLineNumbers \LineNumbersfalse
+\end{verbatim}
+\end{code}
+(/New v4.00)
+\begin{code}\begin{verbatim}
+\def\linenumbers{%
+ \LineNumberstrue % v4.00
+ \xdef\@LN at outer@holdins{\the\holdinginserts}% v4.3
+\end{verbatim}
+\end{code}
+(New v4.3) The previous line is for ~{linenomath}~
+in a first numbered paragraph. (/New v4.3)
+\begin{code}\begin{verbatim}
+ \let\@@par\linenumberpar
+ % \let\linelabel\@LN at linelabel % v4.11, removed v4.3
+ \ifx\@par\@@@par\let\@par\linenumberpar\fi
+ \ifx\par\@@@par\let\par\linenumberpar\fi
+ \@LN at maybe@moduloresume % v4.31
+ \@ifnextchar[{\resetlinenumber}%]
+ {\@ifstar{\resetlinenumber}{}}%
+ }
+
+\def\nolinenumbers{%
+ \LineNumbersfalse % v4.00
+ \let\@@par\@@@par
+ % \let\linelabel\@LN at LLerror % v4.11, removed v4.3
+ \ifx\@par\linenumberpar\let\@par\@@@par\fi
+ \ifx\par\linenumberpar\let\par\@@@par\fi
+ }
+\end{verbatim}
+\end{code}
+(New v4.00) Moreover, it is useful to switch to
+~\nolinenumbers~ in ~\@arrayparboxrestore~. We postpone this
+to section_\ref{ss:ReDef} where we'll have an appending macro
+for doing this. (/New v4.00)
+
+What happens with a display math? Since ~\par~ is not executed,
+when breaking the lines before a display, they will not get
+line numbers. Sorry, but I do not dare to change
+~\interlinepenalty~ globally, nor do I want to redefine
+the display math environments here.
+\begin{displaymath}
+display \ math
+\end{displaymath}
+See the subsection below, for a wrapper environment to make
+it work. But that requires to wrap each and every display
+in your \LaTeX\ source %%.
+(see option ~displaymath~ in subsections_\ref{ss:v3opts}
+and_\ref{ss:display} for some relief [UL]).
+
+The next two commands are provided to turn on line
+numbering in a specific mode. Please note the difference:
+for pagewise numbering, ~\linenumbers~ comes first to
+inhibit it from seeing optional arguments, since
+re-/presetting the counter is useless.
+\begin{code}\begin{verbatim}
+\def\pagewiselinenumbers{\linenumbers\setpagewiselinenumbers}
+\def\runninglinenumbers{\setrunninglinenumbers\linenumbers}
+\end{verbatim}
+\end{code}
+Finally, it is a \LaTeX\ style, so we provide for the use
+of environments, including the suppression of the
+following paragraph's indentation.
+
+(UL) I am drawing the following
+private thoughts of Stephan's to publicity so that others may
+think about them---or to remind myself of them in an efficient
+way. (/UL)
+\begin{old}\begin{verbatim}
+% TO DO: add \par to \linenumbers, if called from an environment.
+% To DO: add an \@endpe hack if \linenumbers are turned on
+% in horizontal mode. {\par\parskip\z@\noindent} or
+% something.
+\end{verbatim}
+\end{old}
+(UL) However, I rather think that ~\linenumbers~ and %% v4.31
+~\nolinenumbers~ should execute a ~\par~ already. (Then the
+~\par~s in the following definitions should be removed.) (/UL)
+\begin{code}\begin{verbatim}
+\@namedef{linenumbers*}{\par\linenumbers*}
+\@namedef{runninglinenumbers*}{\par\runninglinenumbers*}
+
+\def\endlinenumbers{\par\@endpetrue}
+\let\endrunninglinenumbers\endlinenumbers
+\let\endpagewiselinenumbers\endlinenumbers
+\expandafter\let\csname endlinenumbers*\endcsname\endlinenumbers
+\expandafter\let\csname endrunninglinenumbers*\endcsname\endlinenumbers
+\let\endnolinenumbers\endlinenumbers
+\end{verbatim}
+\end{code}
+
+\subsection{%
+Display math
+\unskip}\label{ss:DM}
+
+Now we tackle the problem to get display math working.
+There are different options.
+\begin{enumerate}\item[
+1.] Precede every display math with a ~\par~.
+Not too good.
+\item[
+2.] Change ~\interlinepenalty~ and associates globally.
+Unstable.
+\item[
+3.] Wrap each display math with a ~{linenomath}~
+environment.
+\end{enumerate}
+We'll go for option 3. See if it works:
+\begin{linenomath}
+\begin{equation}
+display \ math
+\end{equation}
+\end{linenomath}
+The star form ~{linenomath*}~ should also number the lines
+of the display itself,
+\begin{linenomath*}
+\begin{eqnarray}
+multi && line \\
+display && math \\
+&
+\begin{array}{c}
+with \\
+array
+\end{array}
+&
+\end{eqnarray}
+\end{linenomath*}
+including multline displays.
+
+First, here are two macros to turn
+on linenumbering on paragraphs preceeding displays, with
+numbering the lines of the display itself, or without.
+The ~\ifx..~ tests if line numbering is turned on. It
+does not harm to add these wrappers in sections that are
+not numbered. Nor does it harm to wrap a display
+twice, e.q, in case you have some ~{equation}~s wrapped
+explicitely, and later you redefine ~\equation~ to do it
+automatically.
+
+(New v4.3) To avoid the spurious line number above a
+display in vmode, I insert ~\ifhmode~. (/New v4.3)
+\begin{code}\begin{verbatim}
+\newcommand\linenomathNonumbers{%
+ \ifLineNumbers
+ \ifnum\interlinepenalty>-\linenopenaltypar
+ \global\holdinginserts\thr@@
+ \advance\interlinepenalty \linenopenalty
+ \ifhmode % v4.3
+ \advance\predisplaypenalty \linenopenalty
+ \fi
+ \fi
+ \fi
+ \ignorespaces
+ }
+
+\newcommand\linenomathWithnumbers{%
+ \ifLineNumbers
+ \ifnum\interlinepenalty>-\linenopenaltypar
+ \global\holdinginserts\thr@@
+ \advance\interlinepenalty \linenopenalty
+ \ifhmode % v4.3
+ \advance\predisplaypenalty \linenopenalty
+ \fi
+ \advance\postdisplaypenalty \linenopenalty
+ \advance\interdisplaylinepenalty \linenopenalty
+ \fi
+ \fi
+ \ignorespaces
+ }
+\end{verbatim}
+\end{code}
+The ~{linenomath}~ environment has two forms, with and
+without a star. The following two macros define the
+environment, where the stared/non-stared form does/doesn't number the
+lines of the display or vice versa.
+\begin{code}\begin{verbatim}
+\newcommand\linenumberdisplaymath{%
+ \def\linenomath{\linenomathWithnumbers}%
+ \@namedef{linenomath*}{\linenomathNonumbers}%
+ }
+
+\newcommand\nolinenumberdisplaymath{%
+ \def\linenomath{\linenomathNonumbers}%
+ \@namedef{linenomath*}{\linenomathWithnumbers}%
+ }
+
+\def\endlinenomath{%
+ \ifLineNumbers % v4.3
+ \global\holdinginserts\@LN at outer@holdins % v4.21
+ \fi
+ \global % v4.21 support for LaTeX2e earlier than 1996/07/26.
+ \@ignoretrue
+}
+\expandafter\let\csname endlinenomath*\endcsname\endlinenomath
+\end{verbatim}
+\end{code}
+The default is not to number the lines of a display. But
+the package option ~mathlines~ may be used to switch
+that behavior.
+\begin{code}\begin{verbatim}
+\nolinenumberdisplaymath
+\end{verbatim}
+\end{code}
+
+\section{%
+Line number references
+\unskip}\label{s:LNref}
+\subsection{%
+Internals %% New subsec. v4.3.
+\unskip}
+The only way to get a label to a line number in a
+paragraph is to ask the output routine to mark it.
+
+(New v4.00) The following two paragraphs don't hold any
+longer, see below. (/New v4.00)
+\begin{old}\begin{verbatim}
+% We use the marginpar mechanism to hook to ~\output~ for a
+% second time. Marginpars are floats with number $-1$, we
+% fake marginpars with No $-2$. Originally, every negative
+% numbered float was considered to be a marginpar.
+%
+% The float box number ~\@currbox~ is used to transfer the
+% label name in a macro called ~\@LNL@~<box-number>.
+\end{verbatim}
+\end{old}
+A ~\newlabel~ is written to the aux-file. The reference
+is to ~\theLineNumber~, \emph{not} ~\thelinenumber~.
+This allows to hook in, as done below for pagewise line
+numbering.
+
+(New v3.03) The ~\@LN at ExtraLabelItems~ are added for a hook
+to keep packages like ~{hyperref}~ happy. (/New v3.03)
+
+(New v4.00)
+We fire the ~\marginpar~ mechanism, so we leave \LaTeX's
+~\@addmarginpar~ untouched.
+\begin{old}\begin{verbatim}
+% \let\@LN at addmarginpar\@addmarginpar
+% \def\@addmarginpar{%
+% \ifnum\count\@currbox>-2\relax
+% \expandafter\@LN at addmarginpar
+% \else
+% \@cons\@freelist\@currbox
+% \protected at write\@auxout{}{%
+% \string\newlabel
+% {\csname @LNL@\the\@currbox\endcsname}%
+% {{\theLineNumber}{\thepage}\@LN at ExtraLabelItems}}%
+% \fi}
+\end{verbatim}
+\end{old}
+OK, we keep Stephan's ~\@LN at ExtraLabelItems~:
+(/New v4.00)
+\begin{code}\begin{verbatim}
+\let\@LN at ExtraLabelItems\@empty
+\end{verbatim}
+\end{code}
+(New v4.00)
+We imitate the ~\marginpar~ mechanism without using the
+~\@freelist~ boxes. ~\linelabel~ will indeed place a signal
+penalty (~\@Mllbcodepen~, new), and it will put a label into
+some list macro ~\@LN at labellist~. A new part of the output
+routine will take the labels from the list and will write
+~\newlabel~s to the .aux file.
+
+The following is a version of \LaTeX's ~\@xnext~.
+\begin{code}\begin{verbatim}
+\def\@LN at xnext#1\@lt#2\@@#3#4{\def#3{#1}\gdef#4{#2}}
+\end{verbatim}
+\end{code}
+This takes an item ~#1~ from a list ~#4~ into ~#3~;
+to be used as ~\expandafter\@LN at xnext#4\@@#3#4~.
+Our lists use ~\@lt~ after each item for separating.
+Indeed, there will be another list macro which can
+appear as argument ~#4~, this will be used for moving
+~\vadjust~ items (section_\ref{ss:PVadj}).
+The list for ~\linelabel~s is the following:
+\begin{code}\begin{verbatim}
+\global\let\@LN at labellist\@empty
+\end{verbatim}
+\end{code}
+The next is the new part of the output routine writing the
+~\newlabel~ to the .aux file. Since it is no real page output,
+the page is put back to top of the main vertical list.
+\begin{code}\begin{verbatim}
+\def\WriteLineNo{%
+ \unvbox\@cclv
+ \expandafter \@LN at xnext \@LN at labellist \@@
+ \@LN at label \@LN at labellist
+ \protected at write\@auxout{}{\string\newlabel{\@LN at label}%
+ {{\theLineNumber}{\thepage}\@LN at ExtraLabelItems}}%
+}
+\end{verbatim}
+\end{code}
+(/New v4.00)
+
+\subsection{%
+The \scs{linelabel} command
+\unskip}\label{ss:LL}
+To refer to a place in line ~\ref{~<foo>~}~ at page
+~\pageref{~<foo>~}~ you place a ~\linelabel{~<foo>~}~ at
+that place.
+
+\linelabel{demo}
+\marginpar{\tiny\raggedright
+See if it works: This paragraph
+starts on page \pageref{demo}, line
+\ref{demo}.
+\unskip}%
+(New v4.11)
+\begin{old}\begin{verbatim}
+% If you use this command outside a ~\linenumbers~
+% paragraph, you will get references to some bogus
+% line numbers, sorry. But we don't disable the command,
+% because only the ~\par~ at the end of a paragraph may
+% decide whether to print line numbers on this paragraph
+% or not. A ~\linelabel~ may legally appear earlier than
+% ~\linenumbers~.
+\end{verbatim}
+\end{old}
+This trick is better not allowed---see subsections_\ref{ss:LL}
+and_\ref{ss:OnOff}.
+(/New v4.11)
+
+~\linelabel~
+\begin{old}\begin{verbatim}
+%, via a fake float number $-2$, %% new mechanism v4.00
+\end{verbatim}
+\end{old}
+puts a
+~\penalty~ into a ~\vadjust~, which triggers the
+pagebuilder after putting the current line to the main
+vertical list. A ~\write~ is placed on the main vertical
+list, which prints a reference to the current value of
+~\thelinenumber~ and ~\thepage~ at the time of the
+~\shipout~.
+
+A ~\linelabel~ is allowed only in outer horizontal mode.
+In outer vertical mode we start a paragraph, and ignore
+trailing spaces (by fooling ~\@esphack~).
+
+(New v4.00) We aim at relaxing the previous condition.
+We insert a hook ~\@LN at mathhook~ and a shorthand
+~\@LN at postlabel~ to support the ~mathrefs~ option which
+allows ~\linelabel~ in math mode.
+
+The next paragraph is no longer valid.
+\begin{old}\begin{verbatim}
+% The argument of ~\linelabel~ is put into a macro with a
+% name derived from the number of the allocated float box.
+% Much of the rest is dummy float setup.
+\end{verbatim}
+\end{old}
+(/New v4.00)
+
+(New v4.11)
+\begin{old}\begin{verbatim}
+% \def\linelabel#1{%
+\end{verbatim}
+\end{old}
+I forgot ~\linenumbers~ today, costed me hours or so.
+\begin{code}\begin{verbatim}
+\def\@LN at LLerror{\PackageError{lineno}{%
+ \string\linelabel\space without \string\linenumbers}{%
+ Just see documentation. (New feature v4.11)}\@gobble}
+\end{verbatim}
+\end{code}
+(New v4.3) Here some things have changed for v4.3.
+The previous ~#1~ has been replaced by ~\@gobble~.
+Ensuing, the ~\linelabel~ error message is re-implemented.
+I find it difficult to compare efficiency of slight
+alternatives---so choose an easy one. Explicit switching
+in ~\linenumbers~ and ~\nolinenumbers~ is an additional
+command that may better be avoided.
+\begin{code}\begin{verbatim}
+\newcommand\linelabel{%
+ \ifLineNumbers \expandafter \@LN at linelabel
+ \else \expandafter \@LN at LLerror \fi}
+
+\gdef\@LN at linelabel#1{%
+\end{verbatim}
+\end{code}
+~\gdef~ for hyperref ``symbolically''. (/New v4.11)
+\begin{code}\begin{verbatim}
+ \ifx\protect\@typeset at protect
+\end{verbatim}
+\end{code}
+$\gets$ And a ~\linelabel~ should never be replicated in a
+mark or a TOC entry. (/New v4.3)
+\begin{code}\begin{verbatim}
+ \ifvmode
+ \ifinner \else
+ \leavevmode \@bsphack \@savsk\p@
+ \fi
+ \else
+ \@bsphack
+ \fi
+ \ifhmode
+ \ifinner
+ \@parmoderr
+ \else
+\end{verbatim}
+\end{code}
+(New v4.00)
+\begin{code}\begin{verbatim}
+ \@LN at postlabel{#1}%
+\end{verbatim}
+\end{code}
+\begin{old}\begin{verbatim}
+% \@floatpenalty -\@Mii
+% \@next\@currbox\@freelist
+% {\global\count\@currbox-2%
+% \expandafter\gdef\csname @LNL@\the\@currbox\endcsname{#1}}%
+% {\@floatpenalty\z@ \@fltovf \def\@currbox{\@tempboxa}}%
+% \begingroup
+% \setbox\@currbox \color at vbox \vbox \bgroup \end at float
+% \endgroup
+% \@ignorefalse \@esphack
+\end{verbatim}
+\end{old}
+(/New v4.00)
+\begin{code}\begin{verbatim}
+ \@esphack
+\end{verbatim}
+\end{code}
+(New v4.00)
+The ~\@ignorefalse~ was appropriate before because the
+~\@Esphack~ in ~\end at float~ set ~\@ignoretrue~. Cf._\LaTeX's
+~\@xympar~. (/New v4.00)
+\begin{code}\begin{verbatim}
+ \fi
+ \else
+\end{verbatim}
+\end{code}
+(New v4.00)
+\begin{code}\begin{verbatim}
+ \@LN at mathhook{#1}%
+\end{verbatim}
+\end{code}
+\begin{old}\begin{verbatim}
+% \@parmoderr
+\end{verbatim}
+\end{old}
+Instead of complaining, you may just do your job.
+(/New v4.00)
+\begin{code}\begin{verbatim}
+ \fi
+ \fi
+ }
+\end{verbatim}
+\end{code}
+(New v4.00) The shorthand just does what happened
+with ~linenox0.sty~ before ~ednmath0.sty~ (New v4.1:
+now ~mathrefs~ option) appeared, and
+the hook is initialized to serve the same purpose.
+So errors come just where Stephan had built them in,
+and this is just the \LaTeX\ ~\marginpar~ behaviour.
+\begin{code}\begin{verbatim}
+\def\@LN at postlabel#1{\g at addto@macro\@LN at labellist{#1\@lt}%
+ \vadjust{\penalty-\@Mllbcodepen}}
+\def\@LN at mathhook#1{\@parmoderr}
+\end{verbatim}
+\end{code}
+(/New v4.00)
+
+\modulolinenumbers[3]
+\firstlinenumber{1}
+\section{%
+The appearance of the line numbers
+\unskip}\label{appearance}
+\subsection{%
+Basic code %% own subsec. v4.2.
+\unskip}
+
+The line numbers are set as ~\tiny\sffamily\arabic{linenumber}~,
+$10pt$ left of the text. With options to place it
+right of the text, or . . .
+
+. . . here are the hooks:
+\begin{code}\begin{verbatim}
+\def\makeLineNumberLeft{%
+ \hss\linenumberfont\LineNumber\hskip\linenumbersep}
+
+\def\makeLineNumberRight{%
+ \linenumberfont\hskip\linenumbersep\hskip\columnwidth
+ \hb at xt@\linenumberwidth{\hss\LineNumber}\hss}
+
+\def\linenumberfont{\normalfont\tiny\sffamily}
+
+\newdimen\linenumbersep
+\newdimen\linenumberwidth
+
+\linenumberwidth=10pt
+\linenumbersep=10pt
+\end{verbatim}
+\end{code}
+Margin switching requires ~pagewise~ numbering mode, but
+choosing the left or right margin for the numbers always
+works.
+\begin{code}\begin{verbatim}
+\def\switchlinenumbers{\@ifstar
+ {\let\makeLineNumberOdd\makeLineNumberRight
+ \let\makeLineNumberEven\makeLineNumberLeft}%
+ {\let\makeLineNumberOdd\makeLineNumberLeft
+ \let\makeLineNumberEven\makeLineNumberRight}%
+ }
+
+\def\setmakelinenumbers#1{\@ifstar
+ {\let\makeLineNumberRunning#1%
+ \let\makeLineNumberOdd#1%
+ \let\makeLineNumberEven#1}%
+ {\ifx\c at linenumber\c at runninglinenumber
+ \let\makeLineNumberRunning#1%
+ \else
+ \let\makeLineNumberOdd#1%
+ \let\makeLineNumberEven#1%
+ \fi}%
+ }
+
+\def\leftlinenumbers{\setmakelinenumbers\makeLineNumberLeft}
+\def\rightlinenumbers{\setmakelinenumbers\makeLineNumberRight}
+
+\leftlinenumbers*
+\end{verbatim}
+\end{code}
+~\LineNumber~ is a hook which is used for the modulo stuff.
+It is the command to use for the line number, when you
+customize ~\makeLineNumber~. Use ~\thelinenumber~ to
+change the outfit of the digits.
+
+
+We will implement two modes of operation:
+\begin{itemize}
+\item numbers ~running~ through (parts of) the text
+\item ~pagewise~ numbers starting over with one on top of
+each page.
+\end{itemize}
+Both modes have their own count register, but only one is
+allocated as a \LaTeX\ counter, with the attached
+facilities serving both.
+\begin{code}\begin{verbatim}
+\newcounter{linenumber}
+\newcount\c at pagewiselinenumber
+\let\c at runninglinenumber\c at linenumber
+\end{verbatim}
+\end{code}
+Only the running mode counter may be reset, or preset,
+for individual paragraphs. The pagewise counter must
+give a unique anonymous number for each line.
+
+(New v4.3) ~\newcounter{linenumber}~
+was the only ~\newcounter~ in the whole package, and
+formerly I was near using ~\newcount~ instead. Yet
+~\newcounter~ may be quite useful for ~\includeonly~.
+It also supports resetting ``subcounters'', but what
+could these be? Well, ~edtable~ might introduce a
+subcounter for columns.
+(Note that \LaTeX's setting commands would work with
+~\newcount\c at linenumber~ already, apart from this.
+And perhaps sometimes ~\refstepcounter{linenumber}~
+wouldn't work---cf._my discussion of ~\stepcounter~ in
+subsection_\ref{ss:MLN}, similarly ~\refstep...~ would
+be quite useless.
+Even the usual redefinitions of ~\thelinenumber~ would
+work. It is nice, on the other hand, that
+~\thelinenumber~ is predefined here. \LaTeX's
+initialization of the value perhaps just serves making
+clear \LaTeX\ counters should always be changed
+globally.---Shortened and improved the discussion here.)
+(/New v4.3)
+
+(New v4.22)
+~\c at linenumber~ usually is---globally---incremented by
+~\stepcounter~ (at present), so resetting it locally would
+raise the save stack problem of \TeX book p._301, moreover
+it would be is useless, there is no hope of keeping the
+values local (but see subsection_\ref{ss:ILN}). So I insert
+~\global~: (/New v4.22)
+\begin{code}\begin{verbatim}
+\newcommand*\resetlinenumber[1][\@ne]{%
+ \global % v4.22
+ \c at runninglinenumber#1\relax}
+\end{verbatim}
+\end{code}
+(New v4.00)
+\begin{old}\begin{verbatim}
+% \newcommand\resetlinenumber[1][1]{\c at runninglinenumber#1}
+\end{verbatim}
+\end{old}
+Added ~\relax~, being quite sure that this does no harm
+and is quite important, as with ~\setcounter~ etc.
+I consider this a bug fix (although perhaps no user has
+ever had a problem with this). (/New v4.00)
+
+(v4.22: I had made much fuss about resetting subordinate
+counters here---removed, somewhat postponed.)
+
+
+\subsection{%
+Running line numbers
+\unskip}
+
+Running mode is easy, ~\LineNumber~ and ~\theLineNumber~
+produce ~\thelinenumber~, which defaults to
+~\arabic{linenumber}~, using the ~\c at runninglinenumber~
+counter. This is the default mode of operation.
+\begin{code}\begin{verbatim}
+\def\makeRunningLineNumber{\makeLineNumberRunning}
+
+\def\setrunninglinenumbers{%
+ \def\theLineNumber{\thelinenumber}%
+ \let\c at linenumber\c at runninglinenumber
+ \let\makeLineNumber\makeRunningLineNumber
+ }
+
+\setrunninglinenumbers\resetlinenumber
+\end{verbatim}
+\end{code}
+
+\subsection{%
+Pagewise line numbers
+\unskip}\label{ss:PW}
+
+Difficult, if you think about it. The number has to be
+printed when there is no means to know on which page it
+will end up, except through the aux-file. My solution
+is really expensive, but quite robust.
+
+With version ~v2.00~ the hashsize requirements are
+reduced, because we do not need one controlsequence for
+each line any more. But this costs some computation time
+to find out on which page we are.
+
+~\makeLineNumber~ gets a hook to log the line and page
+number to the aux-file. Another hook tries to find out
+what the page offset is, and subtracts it from the counter
+~\c at linenumber~. Additionally, the switch
+~\ifoddNumberedPage~ is set true for odd numbered pages,
+false otherwise.
+\begin{code}\begin{verbatim}
+\def\setpagewiselinenumbers{%
+ \let\theLineNumber\thePagewiseLineNumber
+ \let\c at linenumber\c at pagewiselinenumber
+ \let\makeLineNumber\makePagewiseLineNumber
+ }
+
+\def\makePagewiseLineNumber{\logtheLineNumber\getLineNumber
+ \ifoddNumberedPage
+ \makeLineNumberOdd
+ \else
+ \makeLineNumberEven
+ \fi
+ }
+\end{verbatim}
+\end{code}
+Each numbered line gives a line to the aux file
+\begin{verse}
+~\@LN{~<line>~}{~<page>~}~
+\end{verse}
+very similar to the ~\newlabel~ business, except that we need
+an arabic representation of the page number, not what
+there might else be in ~\thepage~.
+\begin{code}\begin{verbatim}
+\def\logtheLineNumber{\protected at write\@auxout{}{%
+\end{verbatim}
+\end{code}
+(New v4.00) (UL)
+As Daniel Doherty observed, the earlier line
+\begin{old}\begin{verbatim}
+% \string\@LN{\the\c at linenumber}{\noexpand\the\c at page}}}
+\end{verbatim}
+\end{old}
+here may lead into an infinite loop when the user resets
+the page number (think of ~\pagenumbering~, e.g.).
+Stephan and I brief\/ly discussed the matter and decided
+to introduce a ``physical''-page counter to which
+~\logtheLineNumber~ refers. It was Stephan's idea to use
+~\cl at page~ for reliably augmenting the ``physical''-page
+counter. However, this relies on the output routine once
+doing ~\stepcounter{page}~. Before Stephan's
+suggestion, I had thought of appending the stepping to
+\LaTeX's ~\@outputpage~.---So the macro definition ends
+as follows.
+\begin{code}\begin{verbatim}
+ \string\@LN{\the\c at linenumber}{%
+\end{verbatim}
+\end{code}
+(New v4.2)
+The `truepage' counter must start with ~\c@~ so it works
+with ~\include~, and the ~\@addtoreset~ below is needed
+for the same purpose.
+\begin{code}\begin{verbatim}
+ \noexpand\the\c at LN@truepage}}}
+
+\newcount\c at LN@truepage
+\g at addto@macro\cl at page{\global\advance\c at LN@truepage\@ne}
+\@addtoreset{LN at truepage}{@ckpt}
+\end{verbatim}
+\end{code}
+(/New v4.2) I had thought of offering more
+features of a \LaTeX\ counter. However, the user should
+better \emph{not} have access to this counter. ~\c at page~
+should suffice as a pagewise master counter.---To be sure,
+along the present lines the user \emph{can} manipulate
+~\c at LN@truepage~ by ~\stepcounter{page}~. E.g., she might
+do this in order to manually insert a photograph. Well,
+seems not to harm.
+
+The above usage of ~\g at addto@macro~ and ~\cl at page~ may be
+not as stable as Stephan intended. His proposal used
+~\xdef~ directly. But he used ~\cl at page~ as well, and who
+knows \dots{} And as to ~\g at addto@macro~, I have introduced
+it for list macros anyway.
+(/UL) (/New v4.00)
+
+From the aux-file we get one macro ~\LN at P~<page> for each
+page with line numbers on it. This macro calls four other
+macros with one argument each. These macros are
+dynamically defined to do tests and actions, to find out
+on which page the current line number is located.
+
+We need sort of a pointer to the first page with line
+numbers, initiallized to point to nothing:
+\begin{code}\begin{verbatim}
+\def\LastNumberedPage{first}
+\def\LN at Pfirst{\nextLN\relax}
+\end{verbatim}
+\end{code}
+The four dynamic macros are initiallized to reproduce
+themselves in an ~\xdef~
+\begin{code}\begin{verbatim}
+\let\lastLN\relax % compare to last line on this page
+\let\firstLN\relax % compare to first line on this page
+\let\pageLN\relax % get the page number, compute the linenumber
+\let\nextLN\relax % move to the next page
+\end{verbatim}
+\end{code}
+During the end-document run through the aux-files, we
+disable ~\@LN~. I may put in a check here later, to give
+a rerun recommendation.
+\begin{code}\begin{verbatim}
+\AtEndDocument{\let\@LN\@gobbletwo}
+\end{verbatim}
+\end{code}
+Now, this is the tricky part. First of all, the whole
+definition of ~\@LN~ is grouped, to avoid accumulation
+on the save stack. Somehow ~\csname~<cs>~\endcsname~ pushes
+an entry, which stays after an ~\xdef~ to that <cs>.
+
+If ~\LN at P~<page> is undefined, initialize it with the
+current page and line number, with the
+\emph{pointer-to-the-next-page} pointing to nothing. And
+the macro for the previous page will be redefined to point
+to the current one.
+
+If the macro for the current page already exists, just
+redefine the \emph{last-line-number} entry.
+
+Finally, save the current page number, to get the pointer to the
+following page later.
+\begin{code}\begin{verbatim}
+\def\@LN#1#2{{\expandafter\@@LN
+ \csname LN at P#2C\@LN at column\expandafter\endcsname
+ \csname LN at PO#2\endcsname
+ {#1}{#2}}}
+
+\def\@@LN#1#2#3#4{\ifx#1\relax
+ \ifx#2\relax\gdef#2{#3}\fi
+ \expandafter\@@@LN\csname LN at P\LastNumberedPage\endcsname#1%
+ \xdef#1{\lastLN{#3}\firstLN{#3}%
+ \pageLN{#4}{\@LN at column}{#2}\nextLN\relax}%
+ \else
+ \def\lastLN##1{\noexpand\lastLN{#3}}%
+ \xdef#1{#1}%
+ \fi
+ \xdef\LastNumberedPage{#4C\@LN at column}}
+\end{verbatim}
+\end{code}
+The previous page macro gets its pointer to the
+current one, replacing the ~\relax~ with the cs-token
+~\LN at P~<page>.
+\begin{code}\begin{verbatim}
+\def\@@@LN#1#2{{\def\nextLN##1{\noexpand\nextLN\noexpand#2}%
+ \xdef#1{#1}}}
+\end{verbatim}
+\end{code}
+Now, to print a line number, we need to find the page,
+where it resides. This will most probably be the page where
+the last one came from, or maybe the next page. However, it can
+be a completely different one. We maintain a cache,
+which is ~\let~ to the last page's macro. But for now
+it is initialized to expand ~\LN at first~, where the poiner
+to the first numbered page has been stored in.
+\begin{code}\begin{verbatim}
+\def\NumberedPageCache{\LN at Pfirst}
+\end{verbatim}
+\end{code}
+To find out on which page the current ~\c at linenumber~ is,
+we define the four dynamic macros to do something usefull
+and execute the current cache macro. ~\lastLN~ is run
+first, testing if the line number in question may be on a
+later page. If so, disable ~\firstLN~, and go on to the
+next page via ~\nextLN~.
+\begin{code}\begin{verbatim}
+\def\testLastNumberedPage#1{\ifnum#1<\c at linenumber
+ \let\firstLN\@gobble
+ \fi}
+\end{verbatim}
+\end{code}
+Else, if ~\firstLN~ finds out that we need an earlier
+page, we start over from the beginning. Else, ~\nextLN~
+will be disabled, and ~\pageLN~ will run
+~\gotNumberedPage~ with four arguments: the first line
+number on this column, the page number, the column
+number, and the first line on the page.
+\begin{code}\begin{verbatim}
+\def\testFirstNumberedPage#1{\ifnum#1>\c at linenumber
+ \def\nextLN##1{\testNextNumberedPage\LN at Pfirst}%
+ \else
+ \let\nextLN\@gobble
+ \def\pageLN{\gotNumberedPage{#1}}%
+ \fi}
+\end{verbatim}
+\end{code}
+We start with ~\pageLN~ disabled and ~\nextLN~ defined to
+continue the search with the next page.
+\begin{code}\begin{verbatim}
+\long\def \@gobblethree #1#2#3{}
+
+\def\testNumberedPage{%
+ \let\lastLN\testLastNumberedPage
+ \let\firstLN\testFirstNumberedPage
+ \let\pageLN\@gobblethree
+ \let\nextLN\testNextNumberedPage
+ \NumberedPageCache
+ }
+\end{verbatim}
+\end{code}
+When we switch to another page, we first have to make
+sure that it is there. If we are done with the last
+page, we probably need to run \TeX\ again, but for the
+rest of this run, the cache macro will just return four
+zeros. This saves a lot of time, for example if you have
+half of an aux-file from an aborted run, in the next run
+the whole page-list would be searched in vain again and
+again for the second half of the document.
+
+If there is another page, we iterate the search.
+\begin{code}\begin{verbatim}
+\def\testNextNumberedPage#1{\ifx#1\relax
+ \global\def\NumberedPageCache{\gotNumberedPage0000}%
+ \PackageWarningNoLine{lineno}%
+ {Linenumber reference failed,
+ \MessageBreak rerun to get it right}%
+ \else
+ \global\let\NumberedPageCache#1%
+ \fi
+ \testNumberedPage
+ }
+\end{verbatim}
+\end{code}
+\linelabel{demo2}
+\marginpar{\tiny\raggedright
+Let's see if it finds the label
+on page \pageref{demo},
+line \ref{demo}, and back here
+on page \pageref{demo2}, line
+\ref{demo2}.
+\unskip}%
+To separate the official hooks from the internals there is
+this equivalence, to hook in later for whatever purpose:
+\begin{code}\begin{verbatim}
+\let\getLineNumber\testNumberedPage
+\end{verbatim}
+\end{code}
+So, now we got the page where the number is on. We
+establish if we are on an odd or even page, and calculate
+the final line number to be printed.
+\begin{code}\begin{verbatim}
+\newif\ifoddNumberedPage
+\newif\ifcolumnwiselinenumbers
+\columnwiselinenumbersfalse
+
+\def\gotNumberedPage#1#2#3#4{\oddNumberedPagefalse
+ \ifodd \if at twocolumn #3\else #2\fi\relax\oddNumberedPagetrue\fi
+ \advance\c at linenumber\@ne
+ \ifcolumnwiselinenumbers
+ \subtractlinenumberoffset{#1}%
+ \else
+ \subtractlinenumberoffset{#4}%
+ \fi
+ }
+\end{verbatim}
+\end{code}
+You might want to run the pagewise mode with running line
+numbers, or you might not. It's your choice:
+\begin{code}\begin{verbatim}
+\def\runningpagewiselinenumbers{%
+ \let\subtractlinenumberoffset\@gobble
+ }
+
+\def\realpagewiselinenumbers{%
+ \def\subtractlinenumberoffset##1{\advance\c at linenumber-##1\relax}%
+ }
+
+\realpagewiselinenumbers
+\end{verbatim}
+\end{code}
+For line number references, we need a protected call to
+the whole procedure, with the requested line number stored
+in the ~\c at linenumber~ counter. This is what gets printed
+to the aux-file to make a label:
+\begin{code}\begin{verbatim}
+\def\thePagewiseLineNumber{\protect
+ \getpagewiselinenumber{\the\c at linenumber}}%
+\end{verbatim}
+\end{code}
+And here is what happens when the label is refered to:
+\begin{code}\begin{verbatim}
+\def\getpagewiselinenumber#1{{%
+ \c at linenumber #1\relax\testNumberedPage
+ \thelinenumber
+ }}
+\end{verbatim}
+\end{code}
+%
+A summary of all per line expenses:
+\begin{description}\item
+[CPU:] The ~\output~ routine is called for each line,
+and the page-search is done.
+\item
+[DISK:] One line of output to the aux-file for each
+numbered line
+\item
+[MEM:] One macro per page. Great improvement over v1.02,
+which had one control sequence per line in
+addition. It blew the hash table after some five
+thousand lines.
+\end{description}
+
+\subsection{%
+Twocolumn mode (New v3.06)
+\unskip}
+
+Twocolumn mode requires another patch to the ~\output~
+routine, in order to print a column tag to the .aux
+file.
+\begin{code}\begin{verbatim}
+\AtBeginDocument{% v4.2, revtex4.cls (e.g.).
+ % <- TODO v4.4+: Or better in \LineNoLaTeXOutput!?
+ \let\@LN at orig@makecol\@makecol}
+\def\@LN at makecol{%
+ \@LN at orig@makecol
+ \setbox\@outputbox \vbox{%
+ \boxmaxdepth \@maxdepth
+ \protected at write\@auxout{}{%
+ \string\@LN at col{\if at firstcolumn1\else2\fi}%
+ }%
+ \box\@outputbox
+ }% \vbox
+} %% TODO cf. revtexln.sty.
+
+\def\@LN at col{\def\@LN at column} % v4.22, removed #1.
+\@LN at col{1}
+\end{verbatim}
+\end{code}
+
+\subsection{%
+Numbering modulo $m$, starting at $f$
+\unskip}\label{ss:Mod}
+
+Most users want to have only one in five lines numbered.
+~\LineNumber~ is supposed to produce the outfit of the
+line number attached to the line, while ~\thelinenumber~
+is used also for references, which should appear even if
+they are not multiples of five.
+
+(New v4.00) Moreover, some users want to
+control which line number should be printed first. Support
+of this is now introduced here---see ~\firstlinenumber~
+below.---~numline.sty~ by Michael Jaegermann and
+James Fortune offers controlling which \emph{final}
+line numbers should not be printed. What is
+it good for? We ignore this here until some user demands
+it.---Peter Wilson's ~ledmac.sty~ offers much different
+choices of line numbers to be printed, due to Wayne Sullivan.
+(/New v4.00)
+
+(New v4.22) ~\c at linenumbermodulo~ is rendered a
+fake counter, as discussed since v4.00. So it can
+no longer be set by ~\setcounter~. ~\modulolinenumbers~
+serves this purpose. Well, does anybody want to do
+what worked with ~\addtocounter~? (Then please tell
+me.)---At least, ~\value~ still works. For the same
+purpose I rename the fake `firstlinenumber' counter
+~\n at ...~ to ~\c at ...~. (/New v4.22)
+\begin{old}\begin{verbatim}
+% \newcount\c at linenumbermodulo % removed for v4.22
+\end{verbatim}
+\end{old}
+
+
+(New v4.00) \par
+~\themodulolinenumber~ waits for being declared
+~\LineNumber~ by ~\modulolinenumbers~. (This has
+been so before, no change.) Here is how it
+looked before:
+\begin{old}\begin{verbatim}
+% \def\themodulolinenumber{{\@tempcnta\c at linenumber
+% \divide\@tempcnta\c at linenumbermodulo
+% \multiply\@tempcnta\c at linenumbermodulo
+% \ifnum\@tempcnta=\c at linenumber\thelinenumber\fi
+% }}
+\end{verbatim}
+\end{old}
+(UL) This was somewhat slow. This arithmetic
+happens at every line. This time I tend to declare an extra
+line counter (as opposed to my usual recommendations to use
+counters as rarely as possible) which is stepped every line.
+It could be incremented in the same way as ~\c at LN@truepage~
+is incremented via ~\cl at page~! This is another point in favour
+of ~{linenumber}~ being a \LaTeX\ counter!
+When this new counter equals ~\c at linenumbermodulo~, it is reset,
+and ~\thelinenumber~ is executed.---It gets much slower by my
+support of controlling the first line number below. I should
+improve this.---On
+the other hand, time expense means very little nowadays,
+while the number of \TeX\ counters still is limited.
+
+For the same purpose, moreover, attaching the line number
+box could be intercepted earlier (in ~\MakeLineNo~),
+without changing ~\LineNumber~. However, this may be
+bad for the latter's announcement as a wizard interface
+in section_\ref{s:UserCmds}.
+(/UL)
+
+Here is the new code. It is very near to my ~lnopatch.sty~
+code which introduced the first line number feature
+before.---I add starting with a ~\relax~ which is so often
+recommended---without understanding this really. At least,
+it will not harm.---Former group braces appear as
+~\begingroup~/~\endgroup~ here.
+\begin{code}\begin{verbatim}
+\def\themodulolinenumber{\relax
+ \ifnum\c at linenumber<\c at firstlinenumber \else
+ \begingroup
+ \@tempcnta\c at linenumber
+ \advance\@tempcnta-\c at firstlinenumber
+ \divide\@tempcnta\c at linenumbermodulo
+ \multiply\@tempcnta\c at linenumbermodulo
+ \advance\@tempcnta\c at firstlinenumber
+ \ifnum\@tempcnta=\c at linenumber \thelinenumber \fi
+ \endgroup
+ \fi
+}
+\end{verbatim}
+\end{code}
+(/New v4.00)
+
+The user command to set the modulo counter:
+(New v4.31) \dots\ a star variant is introduced to implement
+Hillel Chayim Yisraeli's idea to print the first line number
+after an interruption of the edited text by some editor's
+text, regardless of the modulo. If it is 1, it is printed only
+with ~\firstlinenumber{1}~. I.e., you use ~\modulolinenumbers*~
+for the new feature, without the star you get the simpler
+behaviour that we have had so far. And you can switch back
+from the refined behaviour to the simple one by using
+~\modulolinenumbers~ without the star.---This enhancement
+is accompanied by a new package option ~modulo*~ which just
+executes ~\modulolinenumbers*~
+(subsection_\ref{ss:v3opts}).---`With ~\firstlinenumber{1}~'
+exactly means: `1' is printed if and only if the last
+~\firstlinenumber~ before or in the paragraph that follows
+the ``interruption'' has argument `1' (or something
+\emph{expanding} to `1', or (to) something that \TeX\
+``reads'' as 1, e.g.: a \TeX\ count register storing
+1).---At present, this behaviour may be unsatisfactory with
+pagewise line-numbering $\dots$ I'll make an experimental
+extra package if someone complains \dots
+\begin{code}\begin{verbatim}
+\newcommand\modulolinenumbers{%
+ \@ifstar
+ {\def\@LN at maybe@moduloresume{%
+ \global\let\@LN at maybe@normalLineNumber
+ \@LN at normalLineNumber}%
+ \@LN at modulolinenos}%
+ {\let\@LN at maybe@moduloresume\relax \@LN at modulolinenos}%
+}
+
+\global\let\@LN at maybe@normalLineNumber\relax
+\let\@LN at maybe@moduloresume\relax
+\gdef\@LN at normalLineNumber{%
+ \ifnum\c at linenumber=\c at firstlinenumber \else
+ \ifnum\c at linenumber>\@ne
+ \def\LineNumber{\thelinenumber}%
+ \fi
+ \fi
+\end{verbatim}
+\end{code}
+~\def~ instead of ~\let~ enables taking account of a
+redefinition of ~\thelinenumber~ in a present numbering
+environment (e.g.).
+\begin{code}\begin{verbatim}
+ \global\let\@LN at maybe@normalLineNumber\relax}
+\end{verbatim}
+\end{code}
+Instead of changing ~\LineNumber~ directly by
+~LN at moduloresume~, these tricks enable ~\modulolinenumbers*~
+to act as locally as I can make it. I don't know how to
+avoid that the output routine switches back to the normal
+modulo behaviour by a global change. (An ~\aftergroup~ may
+fail in admittedly improbable cases.)
+\begin{code}\begin{verbatim}
+\newcommand*\@LN at modulolinenos[1][\z@]{%
+\end{verbatim}
+\end{code}
+The definition of this macro is that of the former
+~\modulolinenumbers~. (/New v4.31)
+\begin{code}\begin{verbatim}
+ \let\LineNumber\themodulolinenumber
+ \ifnum#1>\@ne
+ \chardef % v4.22, note below
+ \c at linenumbermodulo#1\relax
+ \else\ifnum#1=\@ne
+\end{verbatim}
+\end{code}
+\begin{old}\begin{verbatim}
+% \def\LineNumber{\thelinenumber}%
+\end{verbatim}
+\end{old}
+(New v4.00) I am putting something here to enable
+~\firstlinenumber~ with $~\c at linenumbermodulo~=1$.
+With ~lnopatch.sty~, a trick was offered for this purpose.
+It is now obsolete.
+
+\begin{code}\begin{verbatim}
+ \def\LineNumber{\@LN at ifgreat\thelinenumber}%
+\end{verbatim}
+\end{code}
+(/New v4.00)
+\begin{code}\begin{verbatim}
+ \fi\fi
+ }
+\end{verbatim}
+\end{code}
+(New v4.00) The default of ~\@LN at ifgreat~ is
+\begin{code}\begin{verbatim}
+\let\@LN at ifgreat\relax
+\end{verbatim}
+\end{code}
+The previous changes as soon as ~\firstlinenumber~ is used:
+\begin{code}\begin{verbatim}
+\newcommand*\firstlinenumber[1]{%
+ \chardef\c at firstlinenumber#1\relax
+\end{verbatim}
+\end{code}
+No counter, little values allowed only---OK?---(UL)
+The change is local---OK? The good thing is that
+~\global\firstlinenumber{~<number>~}~ works. Moreover,
+~\modulolinenumbers~ acts locally as well. (/UL)
+
+(New v4.31)
+\begin{code}\begin{verbatim}
+ \let\@LN at ifgreat\@LN at ifgreat@critical}
+
+\def\@LN at ifgreat@critical{%
+ \ifnum\c at linenumber<\c at firstlinenumber
+ \expandafter \@gobble
+ \fi}%
+\end{verbatim}
+\end{code}
+(/New v4.31)
+
+The default
+value of ~\c at firstlinenumber~ %% v4.31
+is 0. This is best for what one would expect from modulo
+printing.
+\begin{code}\begin{verbatim}
+\let\c at firstlinenumber=\z@
+\end{verbatim}
+\end{code}
+
+For usage and effects of ~\modulolinenumbers~ and %% v4.31
+~\firstlinenumbers~, please consult section_\ref{s:UserCmds}.
+Two details on ~\firstlinenumbers~ here:
+(i)_~\firstlinenumber~ acts on a paragraph if and only if
+(a)_the paragraph is broken into lines ``in line-numbering
+mode'' (after ~\linenumbers~, e.g.);
+(b)_it is the last occurrence of a ~\firstlinenumbers~
+before or in the paragraph.
+(The practical applications of this that I can imagine
+don't seem appealing to me.)
+Cf._the explanation above of how ~\modulolinenumbers~ and
+~\firstlinenumbers~ interact---for this and for (ii),
+which is concerned with possible arguments for
+~\firstlinenumbers~.
+
+Note that the line numbers of the present section
+demonstrate the two devices. (/New v4.00)
+\begin{code}\begin{verbatim}
+\chardef\c at linenumbermodulo=5 % v4.2; ugly?
+\modulolinenumbers[1]
+\end{verbatim}
+\end{code}
+(New v4.22) The new implementation through ~\chardef~
+decreases the functionality and raises certain compatibility
+problems. I face this without fear. The maximum modulo value
+is now ~255~. I expect that this suffices for usual applications.
+However, some users have ``abused'' ~lineno.sty~ to get
+~ednotes.sty~ features without line numbers, so have set the
+modulo to a value beyond the total number of lines in their
+edition. This ought to be replaced by
+~\let\makeLineNumber\relax~. (/New v4.22)
+
+\section{%
+Package options
+\unskip}\label{s:Opts}
+
+(New v4.1)
+The last heading formerly was the heading of what is now
+subsection_\ref{ss:v3opts}. The options declared there were
+said to execute user commands only. This was wrong already
+concerning ~displaymath~ and ~hyperref~. At least, however,
+these options were no or almost no occasion to skip definitions
+or allocations. This is different with the options that we now
+insert.
+
+
+\subsection{%
+Extended referencing to line numbers. (v4.2)
+\unskip}
+This subsection explains and declares package option ~addpageno~. %% v4.31
+
+If a line to whose number you refer by ~\ref~ is not on the
+present page, it may be useful to add the number of the page
+on which the line occurs---and perhaps it should not be added
+otherwise. In general, you could use the Standard \LaTeX\
+package varioref for this. However, the latter usually
+produces verbose output like `on the preceding page'---
+unless costumized---, while in critical editions, e.g., one
+may prefer just adding the page number and some mark on the
+left of the line number, irrespectively of how far the page is
+apart etc. To support this, package option ~addpageno~
+provides a command ~\vpagelineref~ to be used in place of
+~\ref~. This produces, e.g., `34.15' when referring to line_15
+on page_34 while the present page is not 34. You can customize
+the outcome, see the package file ~vplref.sty~ where the code
+and further details are. You may conceive of
+~\vpagelineref~ as a certain customization of varioref's
+~\vref~.
+
+This implies that option ~addpageno~ requires the files
+~vplref.sty~ and ~varioref.sty~. ~addpageno~ automatically
+loads both of them. Yet you can also load ~varioref.sty~
+on your own to use its package options.
+
+Of course, you might better introduce a shorter command name
+for ~\vpagelineref~ for your work, while we cannot predict
+here what shorthand will fit your work. E.g.,
+~\newcommand{\lref}{\vpagelineref}~.
+
+If you really want to add the page number in \emph{any} case,
+use, e.g., some ~\myref~ instead of ~\ref~, after
+\[~newcommand*{\myref}{\pageref{#1}.\ref{#1}}~\]
+or what you like. You don't need the ~addpageno~ option in
+this case.
+
+~addpageno~ is due to a suggestion by Sergei Mariev.
+\begin{code}\begin{verbatim}
+\DeclareOption{addpageno}{%
+ \AtEndOfPackage{\RequirePackage{vplref}[2005/04/25]}}
+\end{verbatim}
+\end{code}
+\subsection{%
+\scs{linelabel} in math mode
+\unskip}\label{ss:MathRef}
+
+We have made some first steps towards allowing ~\linelabel~ in
+math mode. Because our code for this is presently experimental,
+we leave it to the user to decide for the experiment by calling
+option ~mathrefs~. We are in a hurry now and thus leave the
+code, explanations, and discussion in the separate package
+~ednmath0.sty~. Maybe we later find the time to improve the
+code and move the relevant content of ~ednmath0.sty~ to here.
+The optimal situation would be to define ~\linelabel~ from
+the start so it works in math mode, omitting the ~mathrefs~
+option.
+
+Actually, this package even provides adjustments for analogously
+allowing ~ednotes.sty~ commands in math mode. Loading the package
+is postponed to ~\AtBeginDocument~ when we know whether these
+adjustments are needed.
+\begin{code}\begin{verbatim}
+\DeclareOption{mathrefs}{\AtBeginDocument
+ {\RequirePackage{ednmath0}[2004/08/20]}}
+\end{verbatim}
+\end{code}
+
+\subsection{%
+Arrays, tabular environments (Revised v4.11)
+\unskip}\label{ss:Tab}
+
+This subsection explains and declares package options %% v4.31
+~edtable~, ~longtable~, and ~nolongtablepatch~.
+
+The standard \LaTeX\ tabular environments come as single
+boxes, so the ~lineno.sty~ versions before v4.00 treated them as
+(parts of) single lines, printing (at most) one line number
+beside each and stepping the line number counter once only.
+Moreover, ~\linelabel~s got lost. Of course, tables are
+usually so high that you will want to treat each row like a
+line. (Christian Tapp even desires that the lines of table
+entries belonging to a single row are treated like ordinary
+lines.) Footnotes get lost in such environments as well, which
+was bad for ~ednotes.sty~.
+
+We provide adjustments to count lines, print their numbers
+etc.\ as desired at least for \emph{some} \LaTeX\ tabular
+environments. (Like with other details, ``some'' is to some
+extent explained in ~edtable.sty~.) We do this similarly as
+with option ~mathrefs~ before. We leave code
+and explanations in the separate package ~edtable.sty~.
+(For wizards: this package provides adjustments for
+~ednotes.sty~ as well. However, in the present case we don't try
+to avoid them unless ~ednotes.sty~ is loaded.)
+Package option ~edtable~
+defines---by loading ~edtable.sty~---an environment ~{edtable}~
+which is able to change some \LaTeX\ tabular environments
+with the desired effects. (v4.11: ~edtable.sty~ v1.3 counts
+\LaTeX's ~{array}~ [etc.\@] as a ``tabular environment'' as
+well.)
+
+The ~{edtable}~ environment doesn't help with ~longtable.sty~,
+however. To make up for this, ~{longtable}~ is adjusted in a
+different way---and this happens only when another ~lineno.sty~
+option ~longtable~ is called. In this case, option ~edtable~
+needn't be called explicitly: option ~longtable~ works as if
+~edtable~ had been called.
+
+Now, we are convinced that vertical spacing around
+~{longtable}~ works wrongly---see \LaTeX\ bugs database
+tools/3180 and 3485, or see explanations in the package
+~ltabptch.sty~ (which is to be obtained from CTAN folder
+\path{macros/latex/ltabptch}). Our conviction is so strong
+that the ~longtable~ option loads---after ~longtable.sty~---the
+patch package ~ltabptch.sty~. If the user doesn't want this
+(maybe preferring her own arrangement with the vertical
+spacing), she can forbid it by calling ~nolongtablepatch~.
+
+The following code just collects some choices, which are
+then executed in section_\ref{ss:ExOpt}. We use an ~\if...~
+without ~\newif~ since ~\if...true~ and ~\if...false~
+would occur at most two times and only within the present
+package. (~\AtEndOfClass{\RequirePackage{edtable}}~
+could be used instead, I just overlooked this. Now I don't
+change it because it allows to change the version requirement
+at one place only.)
+\begin{code}\begin{verbatim}
+\let\if at LN@edtable\iffalse
+
+\DeclareOption{edtable}{\let\if at LN@edtable\iftrue}
+
+\DeclareOption{longtable}{\let\if at LN@edtable\iftrue
+ \PassOptionsToPackage{longtable}{edtable}}
+
+\DeclareOption{nolongtablepatch}{%
+ \PassOptionsToPackage{nolongtablepatch}{edtable}}
+\end{verbatim}
+\end{code}
+(/New v4.1)
+
+\subsection{%
+Switch among settings
+\unskip}\label{ss:v3opts}
+
+There is a bunch of package options that execute %% v4.2
+user commands only.
+
+Options ~left~ (~right~) put the line numbers on the left
+(right) margin. This works in all modes. ~left~ is the
+default.
+\begin{code}\begin{verbatim}
+\DeclareOption{left}{\leftlinenumbers*}
+
+\DeclareOption{right}{\rightlinenumbers*}
+\end{verbatim}
+\end{code}
+Option ~switch~ (~switch*~) puts the line numbers on the
+outer (inner) margin of the text. This requires running
+the pagewise mode, but we turn off the page offset
+subtraction, getting sort of running numbers again. The
+~pagewise~ option may restore true pagewise mode later.
+\begin{code}\begin{verbatim}
+\DeclareOption{switch}{\setpagewiselinenumbers
+ \switchlinenumbers
+ \runningpagewiselinenumbers}
+
+\DeclareOption{switch*}{\setpagewiselinenumbers
+ \switchlinenumbers*%
+ \runningpagewiselinenumbers}
+\end{verbatim}
+\end{code}
+In twocolumn mode, we can switch the line numbers to
+the outer margin, and/or start with number 1 in each
+column. Margin switching is covered by the ~switch~
+options.
+\begin{code}\begin{verbatim}
+\DeclareOption{columnwise}{\setpagewiselinenumbers
+ \columnwiselinenumberstrue
+ \realpagewiselinenumbers}
+\end{verbatim}
+\end{code}
+The options ~pagewise~ and ~running~ select the major
+linenumber mechanism. ~running~ line numbers refer to a real
+counter value, which can be reset for any paragraph,
+even getting multiple paragraphs on one page starting
+with line number one. ~pagewise~ line numbers get a
+unique hidden number within the document, but with the
+opportunity to establish the page on which they finally
+come to rest. This allows the subtraction of the page
+offset, getting the numbers starting with 1 on top of each
+page, and margin switching in twoside formats becomes
+possible. The default mode is ~running~.
+
+The order of declaration of the options is important here
+~pagewise~ must come after ~switch~, to overide running
+pagewise mode. ~running~ comes last, to reset the running
+line number mode, e.g, after selecting margin switch mode
+for ~pagewise~ running. Once more, if you specify all
+three of the options ~[switch,pagewise,running]~, the
+result is almost nothing, but if you later say
+~\pagewiselinenumbers~, you get margin switching, with
+real pagewise line numbers.
+
+\begin{code}\begin{verbatim}
+\DeclareOption{pagewise}{\setpagewiselinenumbers
+ \realpagewiselinenumbers}
+
+\DeclareOption{running}{\setrunninglinenumbers}
+\end{verbatim}
+\end{code}
+The option ~modulo~ causes only those linenumbers to be
+printed which are multiples of five.
+\begin{code}\begin{verbatim}
+\DeclareOption{modulo}{\modulolinenumbers\relax}
+\end{verbatim}
+\end{code}
+Option ~modulo*~ modifies ~modulo~ in working like
+~\modulolinenumbers*~---see section_\ref{s:UserCmds}.
+\begin{code}\begin{verbatim}
+\DeclareOption{modulo*}{\modulolinenumbers*\relax}
+\end{verbatim}
+\end{code}
+The package option ~mathlines~ switches the behavior of
+the ~{linenomath}~ environment with its star-form.
+Without this option, the ~{linenomath}~ environment does
+not number the lines of the display, while the star-form
+does. With this option, its just the opposite.
+
+\begin{code}\begin{verbatim}
+\DeclareOption{mathlines}{\linenumberdisplaymath}
+\end{verbatim}
+\end{code}
+~displaymath~ now calls for wrappers of the standard
+\LaTeX\ display math environment. This was previously
+done by ~mlineno.sty~.
+
+(New v4.3) Option `displaymath' becomes default according
+to Erik \mbox{Luijten}'s suggestion. I was finally convinced
+of this as soon as I discovered how to avoid a spurious line
+number above ~\begin{linenomath}~ (subsection_\ref{ss:DM}).
+~\endlinenomath~ provides ~\ignorespaces~, so what could go
+wrong now?
+\begin{code}\begin{verbatim}
+\DeclareOption{displaymath}{\PackageWarningNoLine{lineno}{%
+ Option [displaymath] is obsolete -- default now!}}
+\end{verbatim}
+\end{code}
+(/New v4.3)
+
+\subsection{%
+Compatibility with \texttt{hyperref} %% own subsec. v4.3.
+\unskip}
+The ~hyperref~ package, via ~nameref~, requires three more
+groups in the second argment of a ~\newlabel~. Well, why
+shouldn't it get them? (New v3.07) The presence of the
+~nameref~ package is now detected automatically
+~\AtBeginDocument~. (/New v3.07) (Fixed in v3.09) We try
+to be smart, and test ~\AtBeginDocument~ if the ~nameref~
+package is loaded, but ~hyperref~ postpones the loading of
+~nameref~ too, so this is all in vain.
+
+(New v4.3) But we can also test at the first ~\linelabel~.
+Regarding the error-message for misplaced ~\linelabel~ from v4.11:
+previously, ~\linenumbers~ rendered ~\linelabel~ the genuine
+version of ~\linelabel~ from the start on. This doesn't work
+now, since ~\@LN at linelabel~ may change its meaning after the
+first ~\linenumbers~ and before a next one (if there is some).
+(/New v4.3)
+\begin{code}\begin{verbatim}
+\DeclareOption{hyperref}{\PackageWarningNoLine{lineno}{%
+ Option [hyperref] is obsolete.
+ \MessageBreak The hyperref package is detected automatically.}}
+
+\AtBeginDocument{%
+ \@ifpackageloaded{nameref}{%
+\end{verbatim}
+\end{code}
+(New v4.3) ``Global'' is merely ``symbolic'' ~\AtBeginDoc...~.
+If ~nameref~ is not detected here, the next ~\@LN at linelabel~
+will do almost the same, then globally indeed.
+\begin{code}\begin{verbatim}
+ \gdef\@LN at ExtraLabelItems{{}{}{}}%
+ }{%
+ \global\let\@LN@@linelabel\@LN at linelabel
+ \gdef\@LN at linelabel{%
+\end{verbatim}
+\end{code}
+~\@ifpackageloaded~ is ``preamble only'', its---very
+internal---preamble definition is replicated here:
+\begin{code}\begin{verbatim}
+ \expandafter
+ \ifx\csname ver at nameref.sty\endcsname\relax \else
+ \gdef\@LN at ExtraLabelItems{{}{}{}}%
+ \fi
+\end{verbatim}
+\end{code}
+Now aim at the ``usual'' behaviour:
+\begin{code}\begin{verbatim}
+ \global\let\@LN at linelabel\@LN@@linelabel
+ \global\let\@LN@@linelabel\relax
+ \@LN at linelabel
+ }%
+ }%
+}
+\end{verbatim}
+\end{code}
+(/New v4.3)
+
+(New v4.1)
+\subsection{%
+A note on calling so many options
+\unskip}
+
+The number of package options may stimulate worrying about how to
+\emph{enter} all the options that one would like to use---they may
+not fit into one line. Fortunately, you can safely break code lines
+after the commas separating the option names in the ~\usepackage~
+command (no comment marks needed).
+
+\subsection{%
+Execute options
+\unskip}\label{ss:ExOpt}
+
+We stop declaring options and execute the ones that are
+called by the user. (/New v4.1)
+\begin{code}\begin{verbatim}
+\ProcessOptions
+\end{verbatim}
+\end{code}
+(New v4.1) Now we know whether ~edtable.sty~ is wanted
+and (if it is) with which options it is to be called.
+\begin{code}\begin{verbatim}
+\if at LN@edtable \RequirePackage{edtable}[2005/03/07] \fi
+\end{verbatim}
+\end{code}
+(/New v4.1)
+
+\section{%
+Former package extensions
+\label{s:Xt}\unskip}
+
+The extensions in this section were previously supplied
+in separate ~.sty~ files.
+
+\subsection{%
+$display math$
+\unskip}\label{ss:display}
+(New v4.3) From now on, you no longer need to type
+the ~{linenomath}~ environment with the ~\[~, ~{equation}~,
+and ~{eqnarray}~ environments---and you no longer need to
+use the former package option ~displaymath~ for this feature.
+(/New v4.3)
+
+The standard \LaTeX\ display math environments are
+wrapped in a ~{linenomath}~ environment.
+
+(New 3.05) The ~[fleqn]~ option of the standard
+\LaTeX\ classes defines the display math
+environments such that line numbers appear just
+fine. Thus, we need not do any tricks when
+~[fleqn]~ is loaded, as indicated by presents of
+the ~\mathindent~ register. (/New 3.05)
+
+(New 3.05a) for ~{eqnarray}~s we rather keep the
+old trick. (/New 3.05a)
+
+(New 3.08) Wrap ~\[~ and ~\]~ into ~{linenomath}~,
+instead of ~{displaymath}~. Also save the definition
+of ~\equation~, instead of replicating the current
+\LaTeX\ definition. (/New 3.08)
+\begin{code}\begin{verbatim}
+ \@ifundefined{mathindent}{
+
+ \let\LN at displaymath\[%
+ \let\LN at enddisplaymath\]%
+ \renewcommand\[{\begin{linenomath}\LN at displaymath}%
+ \renewcommand\]{\LN at enddisplaymath\end{linenomath}}%
+\end{verbatim}
+\end{code}
+
+\begin{code}\begin{verbatim}
+ \let\LN at equation\equation
+ \let\LN at endequation\endequation
+ \renewenvironment{equation}%
+ {\linenomath\LN at equation}%
+ {\LN at endequation\endlinenomath}%
+
+ }{}% \@ifundefined{mathindent} -- 3rd arg v4.2, was \par!
+
+ \let\LN at eqnarray\eqnarray
+ \let\LN at endeqnarray\endeqnarray
+ \renewenvironment{eqnarray}%
+ {\linenomath\LN at eqnarray}%
+ {\LN at endeqnarray\endlinenomath}%
+\end{verbatim}
+\end{code}
+(UL) Indeed. The \LaTeX\ macros are saved for
+unnumbered mode, which is detected by ~\linenomath~.
+(/UL)
+
+\subsection{%
+Line numbers in internal vertical mode
+\unskip}\label{ss:ILN}
+
+The command ~\internallinenumbers~ adds line numbers in
+internal vertical mode, but with limitations: we assume
+fixed baseline skip.
+
+(v4.22) v3.10 provided a global (~\global\advance~)
+as well as a local version (star-form, using
+~\c at internallinenumber~). ~\resetlinenumbers~ acted
+locally and was here used with the global version---save
+stack danger, \TeX book p._301---in v4.00 I
+disabled the global version therefore. Now I find that
+it is better to keep a global version, and the now global
+~\resetlinenumbers~ is perfect for this. The global version
+allows continuing the ``internal'' numbers in the ensuing
+``external'' text, and---unless reset by brackets
+argument---continuing the above series of line numbers.
+As with v3.10, the local version always starts with
+line number one. A new ~\@LN at iglobal~ steps ~\global~ly
+in the global version, otherwise it is ~\relax~.
+(I also remove all my stupid discussions as of v4.00.
+And I use ~\newcommand~.) (v4.22)
+\begin{code}\begin{verbatim}
+\let\@LN at iglobal\global % v4.22
+
+\newcommand\internallinenumbers{\setrunninglinenumbers
+ \let\@@par\internallinenumberpar
+ \ifx\@par\@@@par\let\@par\internallinenumberpar\fi
+ \ifx\par\@@@par\let\par\internallinenumberpar\fi
+ \ifx\@par\linenumberpar\let\@par\internallinenumberpar\fi
+ \ifx\par\linenumberpar\let\par\internallinenumberpar\fi
+ \@ifnextchar[{\resetlinenumber}%]
+ {\@ifstar{\let\c at linenumber\c at internallinenumber
+ \let\@LN at iglobal\relax % v4.22
+ \c at linenumber\@ne}{}}%
+ }
+
+\let\endinternallinenumbers\endlinenumbers
+\@namedef{internallinenumbers*}{\internallinenumbers*}
+\expandafter\let\csname endinternallinenumbers*\endcsname\endlinenumbers
+
+\newcount\c at internallinenumber
+\newcount\c at internallinenumbers
+
+\newcommand\internallinenumberpar{%
+ \ifvmode\@@@par\else\ifinner\@@@par\else\@@@par
+ \begingroup
+ \c at internallinenumbers\prevgraf
+ \setbox\@tempboxa\hbox{\vbox{\makeinternalLinenumbers}}%
+ \dp\@tempboxa\prevdepth
+ \ht\@tempboxa\z@
+ \nobreak\vskip-\prevdepth
+ \nointerlineskip\box\@tempboxa
+ \endgroup
+ \fi\fi
+ }
+
+\newcommand\makeinternalLinenumbers{%
+ \ifnum\c at internallinenumbers>\z@ % v4.2
+ \hb at xt@\z@{\makeLineNumber}%
+ \@LN at iglobal % v4.22
+ \advance\c at linenumber\@ne
+ \advance\c at internallinenumbers\m at ne
+ \expandafter\makeinternalLinenumbers\fi
+ }
+ % TODO v4.4+: star: line numbers right!? cf. lnocapt.sty
+\end{verbatim}
+\end{code}
+
+\subsection{%
+Line number references with offset
+\unskip}
+
+This extension defines macros to refer to line
+numbers with an offset, e.g., to refer to a line
+which cannot be labeled directly (display math).
+This was formerly knows as ~rlineno.sty~.
+
+To refer to a pagewise line number with offset:
+\begin{quote}
+~\linerefp[~<OFFSET>~]{~<LABEL>~}~
+\end{quote}
+To refer to a running line number with offset:
+\begin{quote}
+~\linerefr[~<OFFSET>~]{~<LABEL>~}~
+\end{quote}
+To refer to a line number labeled in the same mode as currently
+selected:
+\begin{quote}
+~\lineref[~<OFFSET>~]{~<LABEL>~}~
+\end{quote}
+\begin{code}\begin{verbatim}
+\newcommand\lineref{%
+ \ifx\c at linenumber\c at runninglinenumber
+ \expandafter\linerefr
+ \else
+ \expandafter\linerefp
+ \fi
+}
+
+\newcommand*\linerefp[2][\z@]{{%
+ \let\@thelinenumber\thelinenumber
+ \edef\thelinenumber{\advance\c at linenumber#1\relax
+ \noexpand\@thelinenumber}%
+ \ref{#2}%
+}}
+\end{verbatim}
+\end{code}
+This goes deep into \LaTeX's internals.
+\begin{code}\begin{verbatim}
+\newcommand*\linerefr[2][\z@]{{%
+ \def\@@linerefadd{\advance\c at linenumber#1}%
+ \expandafter\@setref\csname r@#2\endcsname
+ \@linerefadd{#2}%
+}}
+
+\newcommand*\@linerefadd[2]{\c at linenumber=#1\@@linerefadd\relax
+ \thelinenumber}
+\end{verbatim}
+\end{code}
+
+\subsection{%
+Numbered quotation environments
+\unskip}
+
+The ~{numquote}~ and ~{numquotation}~
+environments are like ~{quote}~ and
+~{quotation}~, except there will be line
+numbers.
+
+An optional argument gives the number to count
+from. A star ~*~ (inside or outside the closing
+~}~) prevent the reset of the line numbers.
+Default is to count from one.
+
+(v4.22: A local version using ~\c at internallinenumber~
+might be useful, see subsection_\ref{ss:ILN}.) %% TODO v4.4+
+\begin{code}\begin{verbatim}
+\newcommand\quotelinenumbers
+ {\@ifstar\linenumbers{\@ifnextchar[\linenumbers{\linenumbers*}}}
+
+\newdimen\quotelinenumbersep
+\quotelinenumbersep=\linenumbersep
+\let\quotelinenumberfont\linenumberfont
+
+\newcommand\numquotelist
+ {\leftlinenumbers
+ \linenumbersep\quotelinenumbersep
+ \let\linenumberfont\quotelinenumberfont
+ \addtolength{\linenumbersep}{-\@totalleftmargin}%
+ \quotelinenumbers
+ }
+
+\newenvironment{numquote} {\quote\numquotelist}{\endquote}
+\newenvironment{numquotation} {\quotation\numquotelist}{\endquotation}
+\newenvironment{numquote*} {\quote\numquotelist*}{\endquote}
+\newenvironment{numquotation*}{\quotation\numquotelist*}{\endquotation}
+\end{verbatim}
+\end{code}
+
+\subsection{%
+Frame around a paragraph
+\unskip}
+
+The ~{bframe}~ environment draws a frame around
+some text, across page breaks, if necessary.
+
+This works only for plain text paragraphs,
+without special height lines. All lines must be
+~\baselineskip~ apart, no display math.
+\begin{code}\begin{verbatim}
+\newenvironment{bframe}
+ {\par
+ \@tempdima\textwidth
+ \advance\@tempdima 2\bframesep
+ \setbox\bframebox\hb at xt@\textwidth{%
+ \hskip-\bframesep
+ \vrule\@width\bframerule\@height\baselineskip\@depth\bframesep
+ \advance\@tempdima-2\bframerule
+ \hskip\@tempdima
+ \vrule\@width\bframerule\@height\baselineskip\@depth\bframesep
+ \hskip-\bframesep
+ }%
+ \hbox{\hskip-\bframesep
+ \vrule\@width\@tempdima\@height\bframerule\@depth\z@}%
+ \nointerlineskip
+ \copy\bframebox
+ \nobreak
+ \kern-\baselineskip
+ \runninglinenumbers
+ \def\makeLineNumber{\copy\bframebox\hss}%
+ }
+ {\par
+ \kern-\prevdepth
+ \kern\bframesep
+ \nointerlineskip
+ \@tempdima\textwidth
+ \advance\@tempdima 2\bframesep
+ \hbox{\hskip-\bframesep
+ \vrule\@width\@tempdima\@height\bframerule\@depth\z@}%
+ }
+
+\newdimen\bframerule
+\bframerule=\fboxrule
+
+\newdimen\bframesep
+\bframesep=\fboxsep
+
+\newbox\bframebox
+\end{verbatim}
+\end{code}
+
+\subsection{%
+\textsf{amsmath} patches
+\unskip}\label{ss:AMSMath}
+
+(New v5.0) Patches ~amsmath~ to work with ~lineno~. These patches used to be
+supplied by the ~linenoamsmath~ package. See ~linenoamsmathdemo.pdf~ for a
+demonstration.
+
+\begin{code}\begin{verbatim}
+\RequirePackage{etoolbox}
+
+\newcommand*\linenoamsmath at patch[1]{%
+ \cspreto{#1}{\linenomath}%
+ \cspreto{#1*}{\linenomath}%
+ \csappto{end#1}{\endlinenomath}%
+ \csappto{end#1*}{\endlinenomath}%
+}
+\newcount\linenoamsmath at ams@eqpen
+\cspreto{math at cr@}{\global\@eqpen\numexpr\@eqpen+\linenoamsmath at ams@eqpen\relax}
+\newcommand*\linenoamsmath at patch@ams[1]{%
+ \cspreto{#1}{%
+ \linenomath%
+ \postdisplaypenalty=0%
+ \global\linenoamsmath at ams@eqpen\interdisplaylinepenalty%
+ }%
+ \cspreto{#1*}{%
+ \linenomath%
+ \postdisplaypenalty=0%
+ \global\linenoamsmath at ams@eqpen\interdisplaylinepenalty%
+ }%
+ \csappto{end#1}{%
+ \global\linenoamsmath at ams@eqpen\z@%
+ \endlinenomath%
+ }%
+ \csappto{end#1*}{%
+ \global\linenoamsmath at ams@eqpen\z@%
+ \endlinenomath%
+ }%
+}
+\linenoamsmath at patch{equation}
+\linenoamsmath at patch@ams{multline}
+\linenoamsmath at patch@ams{gather}
+\linenoamsmath at patch@ams{align}
+\linenoamsmath at patch@ams{alignat}
+\linenoamsmath at patch@ams{flalign}
+\let\linenoamsmath at ams@mmeasure\mmeasure@
+\def\mmeasure@#1{%
+ \global\linenoamsmath at ams@eqpen\z@%
+ \begingroup%
+ \interdisplaylinepenalty=0%
+ \linenoamsmath at ams@mmeasure{#1\\}%
+ \endgroup%
+ \global\linenoamsmath at ams@eqpen\interdisplaylinepenalty%
+}
+\end{verbatim}
+\end{code}
+
+
+\section{%
+Move \scs{vadjust} items (New v4.00)
+\unskip}\label{s:MVadj}
+
+This section completes reviving ~\pagebreak~, ~\nopagebreak~,
+~\vspace~, and the star and optional form of ~\\~. This was
+started in section_\ref{ss:output} and resumed in
+section_\ref{ss:MLN} and subsection_\ref{ss:calls}.
+The problem was explained in section_\ref{ss:output}:
+~\vadjust~ items come out at a bad position, and the
+\LaTeX\ commands named before work with ~\vadjust~ indeed.
+Our solution was sketched there as well.
+
+According to the caveat in subsection_\ref{ss:OnOff} concerning
+~\ifLineNumbers~, the \LaTeX\ commands enumerated may go
+wrong if you switch line numbering inside or at the end of
+a paragraph.
+
+\subsection{%
+Redefining \scs{vadjust}
+\unskip}\label{ss:PVadj}
+
+~\vadjust~ will temporarily be changed into the following
+command.
+\begin{code}\begin{verbatim}
+\def\PostponeVadjust#1{%
+ \global\let\vadjust\@LN@@vadjust
+\end{verbatim}
+\end{code}
+This undoes a ~\global\let\vadjust\PostponeVadjust~ which will
+start each of the refined \LaTeX\ commands. The ~\global~s
+are most probably superfluous. They might be useful should one
+~\vadjust~ appear in a group starting after the change of
+~\vadjust~ into ~\PostponeVadjust~.
+(UL) Even the undoing may be superfluous, cf._discussion
+in section_\ref{ss:ReDef} below. (UL)
+\begin{code}\begin{verbatim}
+ \vadjust{\penalty-\@Mppvacodepen}%
+ \g at addto@macro\@LN at vadjustlist{#1\@lt}%
+}
+\let\@LN@@vadjust\vadjust
+\global\let\@LN at vadjustlist\@empty
+\global\let\@LN at do@vadjusts\relax
+\end{verbatim}
+\end{code}
+These ~\global~s are just to remind that
+all the changes of the strings after ~\let~ should be
+~\global~ (\TeX book p._301). ~\@LN at vadjustlist~ collects
+the ~\vadjust~ items of a paragraph. ~\PassVadjustList~
+tears one ~\vadjust~ item for the current line out of
+~\@LN at vadjustlist~ and puts it into ~\@LN at do@vadjusts~.
+The latter is encountered each line in ~\MakeLineNo~
+(section_\ref{ss:MLN}), while those \LaTeX\ ~\vadjust~
+commands will come rather rarely. So I decided that
+~\@LN at do@vadjust~ is ~\relax~ until a ~\vadjust~ item
+is waiting. In the latter case, ~\@LN at do@vadjusts~
+is turned into a list macro which resets itself to
+~\relax~ when the other contents have been placed in
+the vertical list.---~\PassVadjustList~ is invoked by
+the output routine (section_\ref{ss:output}), so the
+~\box255~ must be put back.
+\begin{code}\begin{verbatim}
+\def\PassVadjustList{%
+ \unvbox\@cclv
+ \expandafter \@LN at xnext \@LN at vadjustlist \@@
+ \@tempa \@LN at vadjustlist
+ \ifx\@LN at do@vadjusts\relax
+ \gdef\@LN at do@vadjusts{\global\let\@LN at do@vadjusts\relax}%
+ \fi
+ \expandafter \g at addto@macro \expandafter \@LN at do@vadjusts
+ \expandafter {\@tempa}%
+}
+\end{verbatim}
+\end{code}
+
+\subsection{%
+Redefining the \LaTeX\ commands
+\unskip}\label{ss:ReDef}
+
+Now we change ~\pagebreak~ etc.\
+so that they use ~\PostponeVadjust~ in place of ~\vadjust~.
+We try to do this as independently as possible of the
+implementation of the \LaTeX\ commands to be redefined.
+Therefore, we don't just copy macro definition code from any
+single implementation (say, latest \LaTeX) and insert our
+changes, but attach a conditional
+~\global\let\vadjust\PostponeVadjust~
+to their left ends in a way which should work rather
+independantly of their actual code.
+However, ~\vadjust~ should be the primitive again after
+execution of the command. So the ~\global\let...~ may be used
+only if it's guaranteed that a ~\vadjust~ is near.---(UL)
+Sure? In line numbering mode, probably each ~\vadjust~
+coming from a \LaTeX\ command should be ~\PostponeVadjust~.
+~\marginpar~s and floats seem to be the only cases which
+are not explicitly dealt with in the present section.
+This would be a way to avoid ~\@LN at nobreaktrue~!
+Of course, the ~\vadjust~s that the present package uses
+then must be replaced by ~\@LN@@vadjust~.---Maybe
+next time. (/UL)
+
+The next command and something else will be added to the
+\LaTeX\ commands we are concerned with here.
+\begin{code}\begin{verbatim}
+\DeclareRobustCommand\@LN at changevadjust{%
+ \ifvmode\else\ifinner\else
+ \global\let\vadjust\PostponeVadjust
+ \fi\fi
+}
+\end{verbatim}
+\end{code}
+(UL) What about math mode? Math display? Warn? (/UL)
+
+~\@tempa~ will now become a two place macro which adds first
+argument (single token), enclosed by ~\ifLineNumbers~\,\dots
+~\fi~ to the left of second argument. As long as we need it,
+we can't use the star form of ~\DeclareRobustCommand~ or
+the like, because AMS-\LaTeX\ uses ~\@tempa~ for ~\@ifstar~.
+(New v4.41) And for the same reason, that ~\CheckCommand*~
+had to be raised! (/New v4.41)
+\begin{code}\begin{verbatim}
+\CheckCommand*\@parboxrestore{\@arrayparboxrestore\let\\\@normalcr}
+
+\def\@tempa#1#2{%
+ \expandafter \def \expandafter#2\expandafter{\expandafter
+ \ifLineNumbers\expandafter#1\expandafter\fi#2}%
+}
+\end{verbatim}
+\end{code}
+(UL) This ~\ifLineNumber~ can be fooled by
+~\linenumbers~ ahead etc. It might be better to place
+a signal penalty in any case and let the output routine
+decide what to do.
+(/UL)
+
+We use the occasion to switch off linenumbers where they
+don't work anyway and where we don't want them,
+especially in footnotes:
+\begin{code}\begin{verbatim}
+\@tempa\nolinenumbers\@arrayparboxrestore
+\end{verbatim}
+\end{code}
+We hope this suffices $\dots$ let's check one thing
+at least: [(New v4.41) see ~\CheckCommand~ above (/New v4.41)]
+
+Now for the main theme of the section.
+The next lines assume that ~\vspace~, ~\pagebreak~, and
+~\nopagebreak~ use ~\vadjust~ whenever they occur outside
+vertical mode; moreover, that they don't directly read
+an argument. Indeed ~\pagebreak~ and ~\nopagebreak~ first
+call something which tests for a left bracket ahead,
+while ~\vspace~ first tests for a star.
+\begin{code}\begin{verbatim}
+\@tempa\@LN at changevadjust\vspace
+\@tempa\@LN at changevadjust\pagebreak
+\@tempa\@LN at changevadjust\nopagebreak
+\end{verbatim}
+\end{code}
+~\\~, however, uses ~\vadjust~ only in star or optional form.
+We relax independency of implementation in assuming
+that ~\@normalcr~ is the fragile version of ~\\~
+(and we use ~\@ifstar~!).
+(Using a copy of ~\\~ would be safer, but an ugly repetition
+of ~\protect~.)
+\begin{code}\begin{verbatim}
+\DeclareRobustCommand\\{%
+ \ifLineNumbers
+ \expandafter \@LN at cr
+ \else
+ \expandafter \@normalcr
+ \fi
+}
+\def\@LN at cr{%
+ \@ifstar{\@LN at changevadjust\@normalcr*}%
+ {\@ifnextchar[{\@LN at changevadjust\@normalcr}\@normalcr}%
+}
+\end{verbatim}
+\end{code}
+Moreover we hope that ~\newline~ never leads to a ~\vadjust~,
+although names of some commands invoked by ~\\~ contain
+~newline~. At last, this seems to have been OK since 1989 or
+even earlier.
+
+\modulolinenumbers[1]
+\firstlinenumber{0}
+Let's have a few tests.\vspace*{.5\baselineskip}
+Testing ~\pagebreak~ and ~\nopagebreak~ would be too expensive
+here, but---oops!---we have just experienced a successful
+~\vspace*{.5\baselineskip}~. A
+~\\*[.5\baselineskip]~\\*[.5\baselineskip] may look even more
+drastical, but this time we are happy about it. Note that the
+line numbers have moved with the lines. Without our changes,
+one line number\vadjust{\kern.5\baselineskip} would have
+``anticipated'' the move of the next line, just as you can
+observe it now.
+(/New v4.00)
+
+\switchlinenumbers
+
+\subsection{%
+Reminder on obsoleteness
+\unskip}
+
+(New v4.1) We have completed inclusion of the earlier
+extension packages ~linenox0.sty~, ~linenox1.sty~, and
+~lnopatch.sty~. If one of them is loaded, though,
+we produce an error message before something weird happens.
+We avoid ~\newif~ because the switchings occur so rarely.
+\begin{code}\begin{verbatim}
+\AtBeginDocument{%
+ \let\if at LN@obsolete\iffalse
+ \@ifpackageloaded{linenox0}{\let\if at LN@obsolete\iftrue}\relax
+ \@ifpackageloaded{linenox1}{\let\if at LN@obsolete\iftrue}\relax
+ \@ifpackageloaded{lnopatch}{\let\if at LN@obsolete\iftrue}\relax
+ \if at LN@obsolete
+ \PackageError{lineno}{Obsolete extension package(s)}{%
+ With lineno.sty version 4.00 or later,\MessageBreak
+ linenox0/linenox1/lnopatch.sty must no longer be loaded.}%
+ \fi
+}
+\end{verbatim}
+\end{code}
+
+\modulolinenumbers[1]
+\section{%
+The final touch
+\unskip}
+
+There is one deadcycle for each line number.
+\begin{code}\begin{verbatim}
+\advance\maxdeadcycles 100
+
+\endinput
+\end{verbatim}
+\end{code}
+
+\section{%
+The user commands
+\unskip}\label{s:UserCmds}
+
+The user commands to turn on and off line numbering
+are
+\begin{description}\item
+[|\linenumbers] \ \par
+Turn on line numbering in the current mode.
+
+\item
+[|\linenumbers*] \ \par$\qquad$
+and reset the line number to 1.
+\def\NL{<number>]}\item
+[|\linenumbers[\NL] \ \par$\qquad$
+and start with <number>.
+\item
+[|\nolinenumbers] \ \par
+Turn off line numbering.
+\item
+[|\runninglinenumbers*[\NL] \ \par
+Turn on ~running~ line numbers, with the same optional
+arguments as ~\linenumbers~. The numbers are running
+through the text over pagebreaks. When you turn
+numbering off and on again, the numbers will continue,
+except, of cause, if you ask to reset or preset the
+counter.
+\item
+[|\pagewiselinenumbers] \ \par
+Turn on ~pagewise~ line numbers. The lines on each
+page are numbered beginning with one at the first
+~pagewise~ numbered line.
+\item
+[|\resetlinenumber[\NL] \ \par
+Reset ~[~Set~]~ the line number to 1
+~[~<number>~]~.
+\item
+[|\setrunninglinenumbers] \ \par
+Switch to ~running~ line number mode. Do \emph{not}
+turn it on or off.
+\item
+[|\setpagewiselinenumbers] \ \par
+Switch to ~pagewise~ line number mode. Do \emph{not}
+turn it on or off.
+\item
+[|\switchlinenumbers*] \ \par
+Causes margin switching in pagewise modes. With the
+star, put the line numbers on the inner margin.
+\item
+[|\leftlinenumbers*] \ \par
+\item
+[|\rightlinenumbers*] \ \par
+Set the line numbers in the left/right margin. With the
+star this works for both modes of operation, without
+the star only for the currently selected mode.
+\item
+[|\runningpagewiselinenumbers] \ \par
+When using the pagewise line number mode, do not
+subtract the page offset. This results in running
+line numbers again, but with the possibility to switch
+margins. Be careful when doing line number
+referencing, this mode status must be the same while
+setting the paragraph and during references.
+\item
+[|\realpagewiselinenumbers] \ \par
+Reverses the effect of ~\runningpagewiselinenumbers~.
+\item
+[|\modulolinenumbers[\NL] \ \par
+Give a number only to lines which are multiples of
+~[~<number>~]~. If <number> is not specified, the
+current value in the counter ~linenumbermodulo~ is
+retained. <number>=1 turns this off without changing
+~linenumbermodulo~. The counter is initialized to 5.
+\item
+[|\modulolinenumbers*[\NL] \ \par
+Like ~\modulolinenumbers~, the only difference being
+that the first line number after a ~\linenumbers~
+(or ~\runninglinenumbers~, ~\pagewiselinenumbers~,
+~\quotelinenumbers~) is printed regardless of the
+modulo---yet `1' is printed only after (or \dots)
+~\firstlinenumber{1}~.
+This also applies to the first line of a
+~{linenumbers}~ or respective environment.
+See subsection_\ref{ss:Mod} for another explanation.
+The behaviour may be unsatisfactory with pagewise
+line-numbering.
+\item
+[|\firstlinenumber] \ \par
+~\firstlinenumber{~<filino>~}~ brings about that
+(after it) line numbers less than <filino> do
+\emph{not} appear in the margin. Moreover, with
+~\modulolinenumbers[~<number>~]~, just the line
+numbers which are <filino> plus a multiple of
+<number> are printed.---If you had
+~\firstlinenumber{~<pos>~}~ with some $\mbox{<pos>}>0$
+and want to switch to printing multiples of, e.g.,
+4, you best do ~\modulolinenumbers[4]~ and
+~\firstlinenumber{0}~. (See subsection_\ref{ss:Mod}
+for technical details.)
+\item
+[|\linenumberdisplaymath] \ \par
+Number the lines of a display math in a ~{linenomath}~
+environment, but do not in a ~{linenomath*}~
+environment. This is used by the package option
+~[mathlines]~.
+\item
+[|\nolinenumberdisplaymath] \ \par
+Do not Number the lines of a display math in a
+~{linenomath}~ environment, but do in a
+~{linenomath*}~ environment. This is the default.
+\item
+[|\linelabel] \ \par
+Set a ~\linelabel{~<foo>~}~ to the line number where
+this commands is in. Refer to it with the \LaTeX\
+referencing commands ~\ref{~<foo>~}~ and
+~\pageref{~<foo>~}~.
+\end{description}
+The commands can be used globally, locally within groups
+or as environments. It is important to know that they
+take action only when the ~\par~ is executed. The
+~\end{~<mode>~linenumbers}~ commands provide a ~\par~.
+Examples:
+\begin{verse}
+~{\linenumbers~ <text> ~\par}~ \\
+\ \\
+~\begin{linenumbers}~ \\
+<text> \\
+~\end{linenumbers}~ \\
+\ \\
+<paragraph> ~{\linenumbers\par}~ \\
+\ \\
+~\linenumbers~ \\
+<text> ~\par~ \\
+~\nolinenumbers~ \\
+\ \\
+~\linenumbers~ \\
+<paragraph> ~{\nolinenumbers\par}~ \\
+\end{verse}
+(New v4.00)
+However, the examples containing <paragraph> show what you
+should \emph{not} do, at least if you use ~\pagebreak~,
+~\nopagebreak~, ~\vspace~, ~\\*~ or
+~\\[~<space>~]~---cf._section_\ref{s:MVadj}.
+
+The same care should be applied to the ``wizard'' devices
+~\ifLineNumbers~ (subsection_\ref{ss:OnOff}) and
+~\PostponeVadjust~ (section_\ref{ss:PVadj}).
+(/New v4.00)
+
+(New v4.11) Oh, and the commands and environments of
+section_{s:Xt} are missing. Sorry, I am in a hurry now.
+May be next time.% %% TODO v4.4+
+---And the environments ~{linenomath}~ and ~{linenomath*}~should
+get an own paragraph. In short, each math display, equation,
+or ~{eqnarray}~ should be ``wrapped'' in one of ~{linenomath}~
+and ~{linenomath*}~.
+
+\subsection{%
+Customization hooks
+\unskip}
+
+There are several hooks to customize the appearance of the
+line numbers, and some low level hooks for special
+effects.
+\begin{description}\item
+[|\thelinenumber] \ \par
+This macro should give the representation of the line
+number in the \LaTeX-counter ~linenumber~. The
+default is provided by \LaTeX: \par$\qquad$
+~\arabic{linenumber}~
+\item
+[|\makeLineNumberLeft] \ \par
+This macro is used to attach a line number to the left
+of the text page. This macro should fill an ~\hbox to 0pt~
+which will be placed at the left margin of the
+page, with the reference point aligned to the line to
+which it should give a number. Please use the macro
+~\LineNumber~ to refer to the line number.
+
+The default definition is \par$\qquad$
+~\hss\linenumberfont\LineNumber\hskip\linenumbersep~
+\item
+[|\makeLineNumberRight] \ \par
+Like ~\makeLineNumberLeft~, but for line numbers on
+the right margin.
+
+The default definition is \par$\qquad$
+~\linenumberfont\hskip\linenumbersep\hskip\textwidth~ \par$\qquad$
+~\hbox to\linenumberwidth{\hss\LineNumber}\hss~
+\item
+[|\linenumberfont] \ \par
+This macro is initialized to \par$\qquad$
+~\normalfont\tiny\sffamily~
+\item
+[|\linenumbersep] \ \par
+This dimension register sets the separation of the
+linenumber to the text. Default value is ~10pt~.
+\item
+[|\linenumberwidth] \ \par
+This dimension register sets the width of the line
+number box on the right margin. The distance of the
+right edge of the text to the right edge of the line
+number is ~\linenumbersep~ + ~\linenumberwidth~. The
+default value is ~10pt~.
+\item
+[|\theLineNumber] (for wizards) \ \par
+This macro is called for printing a ~\newlabel~ entry
+to the aux-file. Its definition depends on the mode.
+For running line numbers it's just ~\thelinenumber~,
+while in pagewise mode, the page offset subtraction
+is done in here.
+\item
+[|\makeLineNumber] (for wizards) \ \par
+This macro produces the line numbers. The definition
+depends on the mode. In the running line numbers
+mode it just expands ~\makeLineNumberLeft~.
+\item
+[|\LineNumber] (for wizards) \ \par
+This macro is called by ~\makeLineNumber~ to typeset
+the line number. This hook is changed by the modulo
+mechanism
+and by ~\firstlinenumber~.
+\end{description}
+\end{document}%D
Property changes on: trunk/Master/texmf-dist/doc/latex/lineno/lineno.tex
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: trunk/Master/texmf-dist/doc/latex/lineno/linenoamsmathdemo.pdf
===================================================================
(Binary files differ)
Index: trunk/Master/texmf-dist/doc/latex/lineno/linenoamsmathdemo.pdf
===================================================================
--- trunk/Master/texmf-dist/doc/latex/lineno/linenoamsmathdemo.pdf 2022-12-05 10:28:48 UTC (rev 65203)
+++ trunk/Master/texmf-dist/doc/latex/lineno/linenoamsmathdemo.pdf 2022-12-05 21:23:48 UTC (rev 65204)
Property changes on: trunk/Master/texmf-dist/doc/latex/lineno/linenoamsmathdemo.pdf
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/pdf
\ No newline at end of property
Added: trunk/Master/texmf-dist/doc/latex/lineno/linenoamsmathdemo.tex
===================================================================
--- trunk/Master/texmf-dist/doc/latex/lineno/linenoamsmathdemo.tex (rev 0)
+++ trunk/Master/texmf-dist/doc/latex/lineno/linenoamsmathdemo.tex 2022-12-05 21:23:48 UTC (rev 65204)
@@ -0,0 +1,415 @@
+% 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}
+
+\usepackage[leqno]{amsmath}
+\usepackage[mathlines]{lineno}
+\usepackage{lipsum}
+\usepackage{hyperref}
+
+\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.
+
+\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
+
+\nolinenumbers
+
+\end{document}
+
+% Local Variables:
+% mode: doctex
+% TeX-master: t
+% End:
Property changes on: trunk/Master/texmf-dist/doc/latex/lineno/linenoamsmathdemo.tex
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Modified: trunk/Master/texmf-dist/doc/latex/lineno/lnosuppl.pdf
===================================================================
(Binary files differ)
Added: trunk/Master/texmf-dist/doc/latex/lineno/lnosuppl.tex
===================================================================
--- trunk/Master/texmf-dist/doc/latex/lineno/lnosuppl.tex (rev 0)
+++ trunk/Master/texmf-dist/doc/latex/lineno/lnosuppl.tex 2022-12-05 21:23:48 UTC (rev 65204)
@@ -0,0 +1,127 @@
+%% LNoSuppl.tex -- U.L.
+\ProvidesFile{lnosuppl.tex}
+ [2011/02/16 documenting supplementary files]
+\title{\LARGE \bf Supplementary files belonging \\
+ to the \textit{lineno.sty} distribution \\[1ex]
+ \normalfont \Large
+ Lazy \texttt{ASCII}\,$\to$\,\texttt{PDF} listings}
+\author{Uwe L\"uck}
+\documentclass[10pt]{article}
+\usepackage{verbatim}
+%% hyperref settings from makedoc.cfg 2011/02/14:
+\RequirePackage{ifpdf}
+\usepackage[%
+ \ifpdf
+% bookmarks=false, %% 2010/12/22
+% bookmarksnumbered,
+ bookmarksopen, %% 2011/01/24!?
+ bookmarksopenlevel=2, %% 2011/01/23
+% pdfpagemode=UseNone,
+% pdfstartpage=10,
+% pdfstartview=FitH,
+ citebordercolor={ .6 1 .6},
+ filebordercolor={1 .6 1},
+ linkbordercolor={1 .9 .7},
+ urlbordercolor={ .7 1 1}, %% playing 2011/01/24
+ \else
+ draft
+ \fi
+]{hyperref}
+\usepackage{hypertoc}
+\pagestyle{headings}
+\newcommand*{\cs}[1]{\texttt{\char"5C#1}}
+\newcommand*{\lcurl}[2][]{%% `mirror', \url #2 2011/02/14
+ \texttt{#2}\footnote{%
+ \url{http://mirror.ctan.org/macros/latex/contrib/#1#2}}}
+\newcommand*{\Verbatiminput}[1]{%% 2011/02/14
+ \small\verbatiminput{#1}\normalsize}
+\makeatletter
+\newcommand*{\notinaux}[1]{%
+ \ifx\protect\@typeset at protect #1%
+ \else
+ \ifdim\lastskip>\z@\ignorespaces\fi
+ \fi}
+\makeatother
+\begin{document}
+\maketitle
+\section*{Preface}
+
+\texttt{lineno.sty} is a macro package made by
+Stephan~I.~B\"ottcher for attaching line numbers to
+\LaTeX\ documents. Some people have used it for revising
+submittings in collaboration with referees or co-authors.
+Documentations are nowadays preferred to be in
+Adobe's \texttt{PDF}---so \texttt{lineno.sty}'s
+documentation is \lcurl[lineno/]{lineno.pdf}.
+
+\texttt{ednotes.sty} uses \texttt{lineno.sty} for critical
+editions, combining it with Alexander~I.~Rozhenko's
+\texttt{manyfoot.sty}---this was Christian Tapp's idea,
+who then hired me for adding the \TeX nical details.
+In doing this, I had to change some internals of
+\texttt{lineno.sty}, so Stephan transferred maintenance
+to me; then some of my macro files that I originally had
+made for \texttt{ednotes.sty} wandered into the
+\texttt{lineno} directory of CTAN---because they turned
+out not to need \texttt{ednotes.sty},
+just to work as extensions of \texttt{lineno.sty}\,.
+
+Now, I haven't had the time for making \texttt{.dtx} versions
+of the \texttt{.sty} files for \texttt{ednotes}.
+Therefore, ordinary \texttt{.pdf} documentation for
+the remaining \texttt{.sty} files of \texttt{lineno}
+is missing.
+What you see here is nothing but a somewhat structured listing
+of the additional \texttt{.txt} and \texttt{.sty} files in
+\texttt{PDF}, deriving from the \texttt{verbatim} package and
+its \cs{verbatiminput} command. I hope the high quality
+(scalable) output is worth it.
+
+By contrast, the new package \texttt{fnlineno.sty} added in 2011 for
+footnote line numbers is documented in \lcurl[lineno/]{fnlineno.pdf}
+in high quality, using the \lcurl{nicetext} bundle.
+
+\leavevmode\hfill \textit{U.\,L.}
+
+\newpage
+\tableofcontents
+
+\section{The \texttt{.txt} files}
+\subsection{Summary: \texttt{README.txt}}
+\verbatiminput{README.txt}
+\subsection{Licenses/Copyright: \texttt{COPYING.txt}}
+\verbatiminput{COPYING.txt}
+\subsection{Update summaries: \texttt{CHANGEs.txt}}
+\verbatiminput{CHANGEs.txt}
+%% rm. 2011/02/16:
+% \subsection{Files and subdirectories: \texttt{FILEs.txt}}
+% \verbatiminput{FILEs.txt}
+\subsection{Source file infos: \texttt{SRCFILEs.txt}}
+\verbatiminput{SRCFILEs.txt}
+
+\section{Tabular and array environments}
+\texttt{lineno.sty}'s package options \texttt{edtable},
+\texttt{longtable}, and \texttt{nolongtablepatch}
+redefine \LaTeX\ tabular and array environments
+such that \texttt{lineno} and \texttt{ednotes} commands
+can be used inside. The code for these options resides
+in separate files at present. We are listing them here.
+\subsection{\texttt{edtable.sty}}
+\verbatiminput{edtable.sty}
+\subsection{\texttt{ltabptch.sty}}
+\verbatiminput{ltabptch.sty}
+
+\section{\cs{linelabel} and notes from \textit{math} mode:
+ \notinaux{\\} \texttt{ednmath0.sty}}
+\verbatiminput{ednmath0.sty}
+
+\section{Extended line number references: \texttt{vplref.sty}}
+\texttt{vplref.sty} is input through the \texttt{lineno}
+package option \texttt{addpageno}. This adds page numbers
+to line number references to distant sides---using the
+\texttt{varioref} package from the \LaTeX\ distribution.
+\verbatiminput{vplref.sty}
+
+\end{document}
+
+end of LNoSuppl.tex
Property changes on: trunk/Master/texmf-dist/doc/latex/lineno/lnosuppl.tex
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Modified: trunk/Master/texmf-dist/doc/latex/lineno/ulineno.pdf
===================================================================
(Binary files differ)
Added: trunk/Master/texmf-dist/doc/latex/lineno/ulineno.tex
===================================================================
--- trunk/Master/texmf-dist/doc/latex/lineno/ulineno.tex (rev 0)
+++ trunk/Master/texmf-dist/doc/latex/lineno/ulineno.tex 2022-12-05 21:23:48 UTC (rev 65204)
@@ -0,0 +1,984 @@
+% Copyright 1995--1999 Stephan I. B"ottcher <stephan at nevis1.columbia.edu>
+%
+% This program can be redistributed and/or modified under the terms
+% of the LaTeX Project Public License Distributed from CTAN
+% archives in directory macros/latex/base/lppl.txt; either
+% version 1 of the License, or any later version.
+%
+% $Id: ulineno.tex,v 3.1 2001/08/03 03:29:19 stephan Exp $
+%
+% 1999-06-11 SiB: updated for lineno.sty v3.00
+\ProvidesFile{ulineno.tex}[2001/08/03 lineno.sty users manual]
+ %% <- UL 2011/02/13 for readprov.sty
+
+\documentclass[12pt,a4paper,titlepage]{article}
+
+ \date{\def\$##1: ##2 ##3${##2}%$
+ Version
+ \$Revision: 3.1 $,
+ \$Date: 2001/08/03 03:29:19 $
+ }
+ \def\lineno.sty{\texttt{\itshape lineno.sty}}
+
+
+\title{ \lineno.sty
+\\ Users Manual
+}
+\author{ Stephan I. B\"ottcher
+}
+
+\usepackage{lineno}
+\usepackage{url}
+
+\def~{\verb~}
+\catcode`\<\catcode`\~
+\def<#1>{$\langle${\itshape#1}\/$\rangle$}
+\catcode`\|\catcode`\~
+\def|#1{{\ttfamily\string#1}}
+\def\NL{<number>]}
+
+\begin{document}
+\begin{runninglinenumbers}
+\renewcommand\linenumberfont{\normalfont\small\bfseries}
+\setlength\linenumbersep{1cm}
+\maketitle
+\thispagestyle{empty}
+\resetlinenumber
+\tableofcontents
+\clearpage
+\setcounter{page}{1}
+\pagewiselinenumbers
+
+\section{When to use \lineno.sty}
+
+The primary use of \lineno.sty is to get line numbers in your LaTeX
+document. \lineno.sty directly supports line numbers in various
+modes, and if you have any wishes that are not directly supported,
+chances are good that \lineno.sty can be adapted to do it. And if it
+turns out to be difficult with \lineno.sty, then it will be even more
+difficult without.
+
+There is one class of cases however, where \lineno.sty is not the most
+appropriate tool. When your text already comes in lines, like source
+listings, tables, poetry, then \lineno.sty will propably do the job,
+but other tools could do it much more efficiently.
+
+\lineno.sty can only number lines in the main text. Lines in any kind
+of boxes cannot be numbered. But see section \ref{sec:ilineno} below.
+
+\lineno.sty is especially useful when the text is broken into lines by
+\TeX\ itself. In this case, the task to attach line numbers is not
+easy, and a tool like \lineno.sty has good chances to break when used
+together with other packages.
+
+On the other hand, \lineno.sty proved to be quite stable, and I did
+not get any reports of complete failure yet.
+
+With \lineno.sty, you can refer to the line numbers via \LaTeX s
+~\ref~ and ~\pageref~ macros.
+
+There are other applications, not directly related to line numbering.
+Whenever you want to attach something to your text, after a paragraph
+was broken into lines, across pagebreaks, lineno may do the job.
+
+\begin{bframe}
+ Say, you need a frame around some text, but the text should be able
+ to break across pages, \lineno.sty can be used to draw rules on both
+ margins, which can be completed at the top and bottom by some
+ special environment, see section\,\,\ref{sec:bframe}.
+\end{bframe}
+
+There may be cases, where other packages do a better job, e.g.,
+\url{CTAN:macros/latex/contrib/supported/numline}.
+
+
+\section{Where to get \lineno.sty}
+
+\lineno.sty is available on the \emph{Comprehensive TeX Archive
+ Network} (CTAN), e.g, \url{https://mirrors.ctan.org/macros/latex/contrib/lineno/lineno.sty}.
+
+The home of \lineno.sty is \url{https://github.com/latex-lineno/lineno}. Here you can get the latest version.
+
+\end{runninglinenumbers}
+
+\section{How to use \lineno.sty}
+
+As any other \LaTeXe\ package, you need to load it with
+\begin{quote}
+ ~\usepackage[~<options>~]{lineno}~
+\end{quote}
+
+\subsection{Package options}
+
+The available <options> are:
+\begin{description}
+
+\item[\texttt{[left]}:] Put the line numbers into the left margin
+ (default).
+
+\item[\texttt{[right]}:] Put the line numbers into the right margin.
+
+\item[\texttt{[switch]}:] Put the line numbers into the outer margin
+ (left on even numbered pager, right on odd numbered pages).
+
+\item[\texttt{[switch*]}:] Put the line numbers into the inner
+ margin.
+
+\item[\texttt{[pagewise]}:] Number the lines from 1 on each page.
+
+\item[\texttt{[running]}:] Continuously number the lines (default).
+
+\item[\texttt{[modulo]}:] Print line numbers only if they are
+ multiples of five.
+
+\item[\texttt{[mathlines]}:] When using the ~{linenomath}~
+ environment for display math, put line numbers also on the lines of
+ the display.
+
+\item[\texttt{[displaymath]}:] Automatically wrap the standard LaTeX
+ display math environments in ~{linenomath}~.
+
+ \begin{itshape}
+ Change from v2 to v3: ~[mathlines]~ was called ~[displaymath]~
+ before, and ~[displaymath]~ was ~\usepacke{mlineno}~.
+ \end{itshape}
+
+\end{description}
+All effects of these option can also be obtained by calling certain
+macros later in the document, except for ~[displaymath]~.
+
+\subsection{How to turn on line numbering}
+
+The line numbering is not activated by default. If you want line
+numbers, you have to turn it on. The simplest way is to say
+\begin{quote}
+ ~\linenumbers~
+\end{quote}
+This will turn on line numbers within the current group, according to
+the currently selected mode. If you do it right at the beginning, the
+whole document will be numbered.
+
+~\linenumbers~ takes effect only when a paragraph is finished. This
+is important if you use ~\linenumbers~ for a single paragraph only.
+This will \emph{not} work:
+\begin{quote}\obeylines
+ ~\begingroup~\\%
+ ~\linenumbers~
+ Text of your paragraph.
+ ~\endgroup~
+\end{quote}
+because the ~\endgroup~ terminates the effect of ~\linenumbers~ before
+the paragraph is finished. The solution is to insert an empty line,
+or an explicit ~\par~ before the ~\endgroup~.
+
+The prefered solution is to use an enviroment:
+\begin{quote}\obeylines
+ ~\begin{linenumbers}~
+ Text of your paragraph.
+ ~\end{linenumbers}~
+\end{quote}
+~\end{linenumbers}~ terminates the paragraph for you. It will also
+make sure that the next paragraph is not indented, if there is no
+empty line in between.
+
+This form will not finish any preceeding paragraph. If you do not
+leave an empty line before ~\begin{linenumbers}~, the previous
+ paragraph may also get line numbers (this is not true after a list
+ environment).
+
+A quite esoteric form to number a single paragraph is:
+\begin{quote}\obeylines
+ Text of your paragraph.
+ ~{\linenumbers\par}~
+\end{quote}
+Here, the ~\linenumbers~ is turned on in a group that just executes
+the ~\par~ to terminate the previous paragraph. Only this paragraph
+will have line numbers. (~\par~ is exactly equivalent to an empty
+line).
+
+
+\subsection{How to turn off line numbering}
+
+You do not usualy turn of line numbering explicitly, but rather
+restrict line numbering to a group or an environment. However, you
+can turn it off with the command
+\begin{quote}
+ ~\nolinenumbers~
+\end{quote}
+This macro can also be used as an environment. The same restrictions
+apply as for ~\linenumbers~.
+
+
+\section{Numbering modes}
+
+Attaching line numbers after \TeX\ has broken the paragraph into lines
+is already quite a difficult job for \TeX. Why? Because \TeX\ does
+not normally give you any control after line breaking. \lineno.sty
+does it by pretending that the current page ends after each and every
+line. This keeps \TeX\ quite busy, but works.
+
+Often, you want the line numbers to depend on the page they finally end
+up. E.g., you want the numbers to start with~ ~1 one each new page,
+or you want them to appear on the outer margins in twoside mode. This
+is an almost impossible demand, but \lineno.sty can do it, at some
+cost, in terms of computing time, memory, and disk space. \lineno.sty
+needs to write a note into the auxiliary file for each line in the
+numbered part of the text, and \TeX\ keeps some memory for each page,
+and all that takes some computation time to figure out on which page
+the line was in the last \LaTeX\ run.
+
+Thus, there are two basic numbering modes
+\begin{enumerate}
+
+\item \emph{Running} line numbers. The numbers run continuously along
+ the document, without considering page breaks.
+
+ The line numbers can be reset, or preset at any point in the
+ document (except within a paragraph). Margin switching (or any
+ other dependence on the page breaks) is not possible.
+
+\item \emph{Pagewise} line numbers. The lines on each page are
+ numbered from one. Automatic margin switching is possible.
+
+ \emph{Running} mode can be simulated in pagewise mode, to get
+ automatic margin switching with continuous line numbers, but without
+ the ability to reset/preset the line numbers anywhere in the
+ document.
+
+ Any feature that depends on the page breaks must use this mode.
+
+\end{enumerate}
+
+\begin{runninglinenumbers*}
+
+\subsection{\emph{Running} line numbers}
+
+This is the default mode of operation. The lines of your text are
+numbered continuously across page breaks.
+
+You cannot get automatic margin switching in this mode, because at the
+time when the line numbers are attached, it is not yet decided on
+which page the line will end up. However, you can simulate continuous
+line numbers in \emph{pagewise} mode (see below), where margin
+switching becomes possible.
+
+You get this mode by
+\begin{itemize}\raggedright
+\item \emph{not} specifying any of the package options
+ ~[switch,pagewise]~,
+\item specifying the package option ~[running]~,
+\item give the command ~\setrunninglinenumbers~ in the document, or
+\item turn on line numbering with ~\runninglinenumbers~ or
+ ~\begin{runninglinenumbers}~.
+\end{itemize}
+
+\subsubsection{Reseting or setting the line number}
+
+You can reset the line number with
+\begin{quote}
+ ~\resetlinenumber[~<number>~]~
+\end{quote}
+where the default is to reset the line number to one.
+
+Alternatively, you can give the line number in an optional argument to
+any command that turns on the line numbering in this mode:
+\begin{quote}\obeylines
+ ~\linenumbers[~<number>~]~
+ ~\runninglinenumbers[~<number>~]~
+ ~\begin{linenumbers}[~<number>~]~
+ ~\begin{runninglinenumbers}[~<number>~]~
+\end{quote}
+or reset the line number to 1 with any of the following:
+\begin{quote}\obeylines
+ ~\linenumbers*~
+ ~\runninglinenumbers*~
+ ~\begin{linenumbers*}~
+ ~\begin{linenumbers}*~
+ ~\begin{runninglinenumbers*}~
+ ~\begin{runninglinenumbers}*~
+\end{quote}
+This section of the manual is enclosed in
+\begin{quote}\obeylines
+ ~\begin{runninglinenumbers*}~
+ ~\end{runninglinenumbers*}~
+\end{quote}
+\end{runninglinenumbers*}
+
+
+\begin{pagewiselinenumbers}
+
+\subsection{\emph{Pagewise} line numbers}
+
+Basically, this mode prints line numbers starting with 1 on top of
+each page, counting only lines where this mode is active. If you
+turn on this mode in the middle of a page, the numbers start with 1
+at that point.
+
+The \emph{pagewise} mode of operation is quite a bit more work for
+\TeX. When the line numbers are printed, \TeX\ does not know on which
+page the current line will go. To get \emph{pagewise} mode working,
+\LaTeX\ has to remember on which page the line went in a previous run.
+This information is written into the ~.aux~ file, and like a table of
+contents, you will not see the numbers until you run \LaTeX\ at least
+twice on the document. Sometimes the information in the ~.aux~ file
+becomes invalid in a way that causes \lineno.sty to hang. In such a
+case you'll have to delete all ~.aux~ files of the document to get it
+going again.
+
+You get this mode by
+\begin{itemize}\raggedright
+\item specifying the package option
+ ~[pagewise]~, but not ~[running]~,
+\item give the command ~\setpagewiselinenumbers~ in the document, or
+\item turn on line numbering with ~\pagewiselinenumbers~ or
+ ~\begin{pagewiselinenumbers}~.
+\end{itemize}
+
+You cannot reset or preset the line numbers in \emph{pagewise} mode.
+This mode uses a different counter than \emph{running} mode. You can
+switch between the mode, and the \emph{running} numbers will continue
+where they left of, unless you reset the counter.
+
+\subsubsection{Margin switching}
+
+As a side effect of all the business to find out on which page the lines
+end up, margin switching becomes possible. It is now possible to
+print the line number differently on odd and even pages. The command
+\begin{quote}
+ ~\switchlinenumbers~
+\end{quote}
+will cause the line numbers to be printed on the outer margins, on the
+right side for odd pages, and on the left side for even numbered
+pages. If you add a star, the numbers go on the inner margins
+\begin{quote}
+ ~\switchlinenumbers*~
+\end{quote}
+You can achieve the same effect by specifying the package
+option ~[switch]~ or ~[switch*]~ together with ~[pagewise]~.
+
+Margin switching is independent of any ~[twoside]~ option of the
+document class.
+
+\subsubsection{\emph{Running} mode with margin switching}
+
+Margin switching is not possible in \emph{running} mode, but you can
+abuse the pagewise mode to produce continuous line numbers. This mode
+is activated with the command
+\begin{quote}
+ ~\runningpagewiselinenumbers~
+\end{quote}
+It is not possible to reset the line number counter for this mode, the
+lines will be numbered starting from one at the beginning of the
+document, and continue. You can switch back to real pagewise mode with
+\begin{quote}
+ ~\realpagewiselinenumbers~
+\end{quote}
+but when you resume \emph{running-pagewise}, the numbers will not
+continue where they left off, but jump by the number of lines that
+were numbered \emph{real-pagewise}.
+
+The package options ~[switch]~ and ~[switch*]~ will turn on
+\emph{running pagewise} mode with margin switching, unless you also
+specify ~[pagewise]~.
+
+Finally, if you give these options together with ~[running]~, like
+\begin{quote}
+ ~\usepackage[switch,pagewise,running]{lineno}~
+\end{quote}
+the mode is set to plain \emph{running} line numbers, but later in
+your document, if you say ~\pagewiselinenumbers~, the setings of the
+~[switch]~ and ~[pagewise]~ options will take effect.
+
+\subsubsection{Page numbers}
+
+Any pages that contain \emph{pagewise} numbered lines must have a
+different page number. This may cause trouble with titlepages or
+simmilar fudging with the page number counter in the document. (I am
+talking about ~\c at page~ or ~\count 0~ here, not ~\thepage~).
+
+If you get strange errors, like \emph{``the use of} ~\nextLN~
+\emph{does not match its definition''}, you should first delete all
+~.aux~ files, and rerun \LaTeX\ several times. If the error does not
+reappear, fine, else check your page numbers, including those that are
+not printed. You may use \emph{running} line numbers on your
+titlepages, since the page boundaries are predefined, usually.
+
+\end{pagewiselinenumbers}
+
+\begin{linenumbers*}
+
+\subsection{Margin selection}
+
+In any mode you can select a fixed margin on which the numbers shall
+be printed. You can either give a package option ~[left]~ or
+~[right]~, or change the margin within the document with
+\begin{quote}\obeylines
+ ~\leftlinenumbers~
+\rightlinenumbers
+ ~\rightlinenumbers~
+\end{quote}
+\rightlinenumbers
+Neither of these commands actually turns on line numbering. The
+margin setting is changed for the currently selected mode
+\emph{running} or \emph{pagewise}. If you want to set the margin for
+both modes, append a star
+\begin{quote}\obeylines
+ ~\leftlinenumbers*~
+ ~\rightlinenumbers*~
+\end{quote}
+The default is ~\leftlinenumbers*~.
+
+\end{linenumbers*}
+
+
+\subsection{Summary of mode selection commands}
+
+The following commands change the major line numbering mode.
+\begin{description}\itemsep=0pt\parskip=0pt
+\item [|\setrunninglinenumbers]
+\item [|\setpagewiselinenumbers] \leavevmode\\
+ set the current mode, without activating or deactivating line
+ numbering.
+\item [|\runninglinenumbers\texttt{*[\NL}]
+\item [|\pagewiselinenumbers] \leavevmode\\
+ set the current mode and activate line numbering, optionally reset
+ (~*~), or set the line number for \emph{running} mode.
+\end{description}
+The following commands do not change the major mode, but modify the
+the behaviour of \emph{pagewise} mode
+\begin{description}\itemsep=0pt\parskip=0pt
+\item [|\realpagewiselinenumbers]
+\item [|\runningpagewiselinenumbers] \leavevmode\\
+ select if \emph{pagewise} mode should number continuously, or really
+ pagewise.
+\end{description}
+
+
+\subsection{Summary of margin selection commands}
+
+The following command select into which margin the numbers should be
+printed
+\begin{description}\itemsep=0pt\parskip=0pt
+\item [|\leftlinenumbers\texttt*]
+\item [|\rightlinenumbers\texttt*] \leavevmode\\
+ put the line numbers in the left/right margin in both modes.
+\item [|\leftlinenumbers]
+\item [|\rightlinenumbers] \leavevmode\\
+ put the line number into the left/right margin in the currently
+ selected mode.
+\item [|\switchlinenumbers] \leavevmode\\
+ put the line numbers into the outer margin, when using
+ \emph{pagewise} mode.
+\item [|\switchlinenumbers\texttt*] \leavevmode\\
+ put the line numbers into the inner margin, when using
+ \emph{pagewise} mode.
+\end{description}
+
+\begin{linenumbers*}
+\modulolinenumbers[2]
+
+\subsection{Numbering only one in five lines}
+
+You can ask lineno to print the line numbers only if they devide by
+<n>, by saying
+\begin{quote}
+ ~\modulolinenumbers[~<n>~]~
+\end{quote}
+If you omit the optional argument, it will be every fifth line, or
+whatever you used last (the current value of the counter
+~linenumbermodulo~). You get the same effect by giving the package
+option ~[modulo]~.
+
+If you set <n> to 1, the modulo value is not changed, but modulo
+numbering is turned off.
+
+Changing the counter ~linenumbermodulo~ does not turn on modulo
+numbering, it just changes the modulo, if it is turned on without the
+optional argument.
+
+This section of the manual is enclosed in
+\begin{quote}
+ ~\begin{linenumbers*}~ \\
+ ~\modulolinenumbers[2]~
+
+ ~\end{linenumbers*}~
+\end{quote}
+
+\end{linenumbers*}
+
+\begin{pagewiselinenumbers}
+\switchlinenumbers
+
+\subsection{How the line numbers look like}
+
+This section of the manual is enclosed in
+\begin{quote}
+ ~\begin{pagewiselinenumbers}~ \\
+ ~\switchlinenumbers~
+
+ ~\end{pagewiselinenumbers}~
+\end{quote}
+By default, the line numbers are set in
+\begin{quote}
+ ~\normalfont\tiny\sffamily~
+\end{quote}
+right justified to 10\,pt left of the nominal left edge of the text.
+If the number is to appear on the right margin, it is right justified
+to 20\,pt right of the nominal right edge of the text.
+
+You can easily change that, of course. The font is defined by the
+macro
+\begin{quote}
+ ~\linenumberfont~
+\end{quote}
+You can redefine it to make the numbers appear in a differnt font
+(with ~\renewcommand~). I'll say right here in this manual
+\renewcommand\linenumberfont{\normalfont\bfseries\small}
+\begin{quote}
+ ~\renewcommand\linenumberfont{\normalfont\bfseries\small}~
+\end{quote}
+The distance on the left margin can be changed with
+\begin{quote}
+ ~\setlength\linenumbersep{~<distance>~}~
+\end{quote}
+The distance on the right margin is ~\linenumbersep~ plus
+~\linenumberwidth~, both are set to 10\,pt by default.
+Let's do right here
+\setlength\linenumberwidth{1cm}
+\begin{quote}
+ ~\setlength\linenumbersep{1cm}~
+\end{quote}
+I put the command at the end of the paragraph, but it effects the
+whole paragraph, because that is where everything happens: at the end
+of the paragraphs.
+
+The line numbers are printed as arabic numerals, as defined in the
+macro
+\begin{quote}
+ ~\thelinenumber~
+\end{quote}
+for the \LaTeX\ counter ~{linenumber}~. You can redefine that, as
+for any other \LaTeX\ counter. E.g.,
+\renewcommand\thelinenumber{\roman{linenumber}}
+\begin{quote}
+ ~\renewcommand\thelinenumber{\roman{linenumber}}~
+\end{quote}
+(For heavy duty line numbering, you should use \LaTeX s internal
+format, e.g., ~\@roman\c at linenumber~.)
+
+\subsubsection{Deeper customization}
+
+The line number is attached to the line by the macro
+\begin{quote}
+ ~\makeLineNumber~
+\end{quote}
+which is expanded inside a zero width ~\hbox~ alligned to the
+origin of the current line (left edge, baselines alligned). You can
+do anything in this macro. Let's assume you do not want line numbers
+at all, but just attach something else to each line of text: this is
+the macro to modify. You can refer to the line number by the macro
+~\LineNumber~, which prints the current value of the counter
+~{linenumber}~, or nothing if \emph{modulo} mode is active, and the
+number does not divide by ~{linenumbermodulo}~. You should not modify
+this macro when using any form of \emph{pagewise} mode. At the end of
+this paragraph I put the following
+\begin{runninglinenumbers}
+\renewcommand\makeLineNumber
+ {\hss$\rightarrow$\ \rlap{\hskip\textwidth\ $\leftarrow$}}
+\end{runninglinenumbers}
+\begin{quote}
+ ~\begin{runninglinenumbers}~\\
+ ~\renewcommand\makeLineNumber~\\
+ ~ {\hss$\rightarrow$\ \rlap{\hskip\textwidth\ $\leftarrow$}}~\\
+ ~\end{runninglinenumbers}~
+\end{quote}
+
+Redefining ~\makeLineNumber~ cuts deep into the linenumber mode
+setting. If you still want to use the basic modes \emph{running} and
+\emph{pagewise} you should go one level up and modify one of the
+following macros, which are called by (or assigned to)
+~\makeLineNumber~ depending on the current mode, and with the counter
+~{linenumber}~ allready adjusted for the current page when using
+\emph{pagewise} mode.
+\begin{quote}\obeylines
+ ~\makeLineNumberRunning~
+ ~\makeLineNumberOdd~
+ ~\makeLineNumberEven~
+\end{quote}
+The first is used in \emph{running} mode, the other two in
+\emph{pagewise} mode. If you modify those, you cut into the
+margin selection mechanism as advertised above. You will have to call
+a mode selection command after changing these macros, to make them take
+effect (at least for ~\makeLineNumberRunning~).
+
+You can go up one more step. The margin selection commands redefine
+the above macros by making them equivalent (~\let~) to one of the
+following macros
+\begin{quote}\obeylines
+ ~\makeLineNumberLeft~
+ ~\makeLineNumberRight~
+\end{quote}
+You may redefine these, and afterwards issue a margin selection
+command followed by a mode selection command. The default definitions
+are
+\begin{quote}
+ ~\def\makeLineNumberLeft~\\
+ ~ {\hss\linenumberfont\LineNumber\hskip\linenumbersep}~
+\end{quote}
+and
+\begin{quote}
+ ~\def\makeLineNumberRight~\\
+ ~ {\linenumberfont\hskip\linenumbersep\hskip\textwidth~\\
+ ~ \hbox to\linenumberwidth{\hss\LineNumber}\hss}~
+\end{quote}
+Whatever you do, use ~\LineNumber~ to print the digits. This ensures
+that the modulo mode setting is acknowledged. If you want to
+customize that as well, this is the macro to change. ~\LineNumber~
+eventually refers to ~\thelinenumber~, which is the place to customize
+the numerals themselves. At the end of this paragraph I said
+\renewcommand\LineNumber{\ifodd\value{linenumber} \thelinenumber)\fi}
+\begin{quote}
+ ~\renewcommand\LineNumber~\\
+ ~ {\ifodd\value{linenumber} \thelinenumber)\fi}~
+\end{quote}
+Line number references are not affected by ~\LineNumber~, but you
+should keep track of ~\thelinenumber~. Look at the following
+reference
+\begin{quote}
+ The setion title of the next section is on page \pageref{ll1}, line
+ \ref{ll1}.
+\end{quote}
+There is a mismatch in the definition of ~\thelinenumber~, from the
+point of the refered line to the reference here.
+\end{pagewiselinenumbers}
+
+\begin{pagewiselinenumbers}
+
+\section[Line number references]
+ {Line number references\linelabel{ll1}}
+
+\lineno.sty allows to refer to a line number with ~\ref{~<label>~}~.
+The label is set by ~\linelabel{~<label>~}~, anywhere in a paragraph
+that gets line numbers. If you put a ~\linelabel~ somewhere else, the
+line number it refers to is pretty meaningless, but no error message
+is issued. (This section begins on line \ref{ll1}, page
+\pageref{ll1} and ends on line \ref{ll2}, page \pageref{ll2}.)
+
+References work both in \emph{running} and \emph{pagewise} modes.
+However, you have to be very careful when using both \emph{real
+ pagewise} mode and \emph{running pagewise} mode: The mode setting
+must be the same during reference as during labeling.
+
+The restrictions on placing a ~\linelabel~ are the same as for a
+~\marginpar~. (In fact, they are implemented as fake ~\marginpar~s.)
+E.g., the linelabel on the section header of this chapter could not be
+placed in the straight forward way, because it would cause an error in
+the table of contents. (It should be disabled during \emph{toc}
+processing.) Instead, I typed
+\begin{quote}
+ ~\section[Line number references]~\\
+ ~ {Line number references\linelabel{ll1}}~
+\end{quote}
+This works fine, with the standard \LaTeX\ ~{article}~ document
+style. If more generic markup is required, you should avoid things
+like this (you should avoid \lineno.sty altogether, in that case).
+
+~\linelabel~ does not work in display math. (Why, you do not use
+equation numbers?)
+
+The ~\linelabel~ command starts a new paragraph if it is issued after
+an empty line. It will properly ignore further whitespace before the
+first word of text. Thus you can easily get a label to the first line
+of a paragraph.
+
+Furthermore, ~\linelabel~ uses \LaTeX s standart tricks to avoid
+unnecessary spaces if you place is between two words with spaces
+around, but you should not do that anyway, if you want to make sure
+that the label applies to a certain word in the text. You should
+attach the line label to the word in question without intervening
+spaces, either before of after the word. If you leave spaces both
+before and after the ~\linelabel~ command, the current implemenation
+attaches the line label to the following word (by ignoring the
+trailing space).
+
+Special care should be taken at the end of a paragraph. You better
+put the line label without intervening spaces behind the period, like
+this
+\begin{quote}
+ ~This is the end of this section.%~\\
+ ~\linelabel{ll2}~
+\end{quote}
+This is the end of this section.%
+\linelabel{ll2}
+
+\end{pagewiselinenumbers}
+
+\begin{linenumbers*}
+
+
+\section{Known incompatibilities}
+
+This section will expand whenever somebody discovers problems when
+using \lineno.sty together with other \LaTeX\ packages.
+
+\subsection{\texttt{wrapfig.sty}}
+
+\lineno.sty used to have problems with \texttt{wrapfig.sty}, but this
+is solved but \lineno.sty, version 2.05.
+
+
+\section{Extension packages}
+
+The extension packages were abolished with version v3.00 of
+\lineno.sty. One package, ~itemrule.sty~, was dropped, the others
+were put directly into the the main \lineno.sty package file.
+
+\subsection{Display math, \texttt{\itshape mlineno}}
+
+\lineno.sty does not work well with display math. The parts of a
+paragraph preceeding a display math will not get line numbers. The
+reason is that the paragraph is not finished, but the part above the
+display is broken into lines anyway.
+
+Let me demonstrate the effect. This paragraph contains a
+~{displaymath}~ environment. The part before the Formula does not get
+line numbers. Here comes the Formula
+\begin{displaymath}
+ \mathrm{6\,H_2O + 6\,CO_2 \ \rightarrow\ C_6H_{12}O_6 + 6\,O_2}
+\end{displaymath}
+which makes the line numbers disappear. The trailing part of the
+paragraph does get line numbers.
+
+There are several means to solve the problem, but none of them is
+fully satisfactory. \lineno.sty defines a ~{linenomath}~ environment,
+which can be wrapped around a display math to make the line numbering
+work. This will work with any kind of display math, even if you use
+explicit ~$$~ pairs. There is a ~*~-form ~{linenomath*}~ which also
+numbers the lines of the display itself, as good as it can. Here
+comes an example use of ~{linenomath*}~
+\begin{linenomath*}
+\begin{eqnarray*}
+ b_1 &=& a_{11}x_1 + a_{12}x_2 \\
+ b_2 &=& a_{21}x_1 + a_{22}x_2
+\end{eqnarray*}
+\end{linenomath*}
+wrapping an ~{egnarray*}~ like this
+\begin{quote}
+ ~\begin{linenomath*}~\\
+ ~ \begin{eqnarray*}~\\
+ ~ b_1 &=& a_{11}x_1 + a_{12}x_2 \\~\\
+ ~ b_2 &=& a_{21}x_1 + a_{22}x_2~\\
+ ~ \end{eqnarray*}~\\
+ ~\end{linenomath*}~
+\end{quote}
+Specifying the package option ~[mathlines]~, causes the
+~{linenomath}~ environment to switch its function with its *-form.
+This allows you to later decide if you want the numbers on the formulas
+or not, without putting in stars everywhere (as long as you have been
+consistent).
+
+The ~{linenomath}~ wrapper does nothing if line numbering is not
+activated. You do not need to remove them if you decide to omit the
+line numbering later (although you still have to load \lineno.sty).
+
+The \texttt{\itshape mlineno} extension redefines the standard \LaTeX\
+display math environments to wrap themselves automatically into
+~{linenomath}~:
+\begin{quote}\obeylines
+ ~\[~ ~\]~
+ ~{displaymath}~
+ ~{equation}~
+ ~{eqnarray}~
+ ~{eqnarray*}~
+\end{quote}
+As of version 3.00 you can activate this by the package option
+~[displaymath]~. You can keep existing explicit ~{linenomath}~
+wrappers without harm.
+
+This will probably not work with AMSmath.
+
+Other solutions to make \lineno.sty work with display math are either
+ugly or less stable. The ugly possibility is to precede every display
+math with an empty line, or better with
+\begin{quote}
+ ~{\par\nobreak\noindent}~
+\end{quote}
+but this gains you nothing compared to using the ~{linenomath}~
+environment, since you still have to modify your document.
+
+\end{linenumbers*}
+
+
+\subsection{\texttt{\itshape rlineno}}
+
+\begin{runninglinenumbers}
+It is currently not possible to put a ~\linelabel~ into math mode.
+This should not impose problems with inline math, since you can attach
+the label just outside the math shift, like\linelabel{rll1}
+\begin{quote}
+ ~... \linelabel{~<label>~}$x=f(y)$ ...~
+\end{quote}
+but to refer to a line in display math, you cannot label it directly.
+\end{runninglinenumbers}
+
+\begin{pagewiselinenumbers}
+The extension \texttt{\itshape rlineno} offers a solution,
+allowing to refer to a line number with an offset.
+
+This extension is now available with plain \lineno.sty v3.00.
+
+You put the ~\linelabel~ at the end of the preceeding line, and refer
+to that number, plus 1 or, in case of multiline displays, by any other
+offset.\linelabel{rll2}
+\begin{quote}
+ ~...\linelabel{~<label>~}~ \\
+ ~\begin{equation}~ \\
+ ~ y=f'(x)~ \\
+ ~\end{equation}~ \\
+ ~... the formula in line \lineref[+1]{~<label>~}~
+\end{quote}
+The offset calculation is different for pagewise or running line
+numbers, and you will have to make sure the right method is used.
+\end{pagewiselinenumbers}
+
+The macro ~\lineref[~<offset>~]{~<label>~}~ uses the method of the
+currently selected mode (line numbering need not be activated). To
+specify the mode explicitly, use ~\linerefr~ or ~\linerefp~ for
+running or pagewise mode respectively.
+
+For example, the manual sets a ~\linelabel{rll1}~ at the end of the
+line preceeding the single line quote environment at
+line\,\linerefr[+1]{rll1} in the first paragraph of this chapter, and
+refered to it via
+\begin{quote}
+ ~\linerefr[+1]{rll1}~
+\end{quote}
+and another one preceeding the quote environment in the second
+paragraph of this chapter, with the central line
+numbered\,\linerefp[+3]{rll2}, which I just refered to via
+\begin{quote}
+ ~\linerefp[+3]{rll2}~
+\end{quote}
+\begin{runninglinenumbers}
+If the correct mode is selected (e.g., ~\setrunninglinenumbers~),
+you can use ~\lineref[+1]{rll1}~ to refer to
+line\,\lineref[+1]{rll1}.
+\end{runninglinenumbers}
+
+
+\subsection{\texttt{\itshape numquote}}
+
+This extension defines two environments, each of them with a *-form or
+alternatively an optional argument.
+\begin{quote}\obeylines
+ ~\begin{numquote}~
+ ~\end{numquote}~
+\end{quote}
+is like ~{quote}~,
+\begin{quote}\obeylines
+ ~\begin{numquotation}~
+ ~\end{numquotation}~
+\end{quote}
+is like ~{quotation}~, but with the lines numbered. Numbering
+restarts with 1 each time it is used, except you use the *-form, or
+specify the line number to start with in an optional argument.
+\begin{numquote}
+The line numbers set to the left of the text, indented by the same
+amount as the quote or quotation. This works as expected even if the
+quote appears in a nested list.
+\end{numquote}
+To customize the distance from the text or the shape of the
+numbers, you can modify the macros ~\quotelinenumbersep~ and
+~\quotelinenumberfont~ respectively.
+
+As of version 3.00, this is available directly with \lineno.sty.
+
+\clearpage
+
+\subsection{\texttt{\itshape ilineno}}
+\label{sec:ilineno}
+
+\begin{center}
+\noindent\fbox{\parbox{0.8\textwidth}{
+ \internallinenumbers \resetlinenumber[13]
+ Sometimes you need line numbers within a |\parbox\ or figure. This
+ extension can do that, if the text is simple enough. It works by
+ drawing a ladder of numbers next to the paragraph, each number
+ vertically separated by |\baselineskip\ from the other. This
+ obviously dose not work nicely with anything but straight text.
+ Extra high lines (like this: $\displaystyle x=\frac AB$) will
+ disturb the alignment. The power of \lineno.sty is not necessary to
+ achieve this, but you may need both in one document with a somewhat
+ coherent interface, and some of the necessary infrastructure from
+ \lineno.sty is actually useful.
+}}\end{center}
+% Why is the v-spacing wrong here?
+
+The preceding paragraph was set like this:
+\begin{quote}
+ ~\begin{center}\fbox{\parbox{0.8\textwidth}{~ \\
+ ~\internallinenumbers~ \\
+ ~\resetlinenumber[13]~ \\
+ ~ ~ Sometimes you need \dots \\
+ ~}}\end{center}~
+\end{quote}
+
+\subsection{\texttt{\itshape itemrule.sty}}
+
+Somebody asked me if he can get a rule next to an itemized item, from
+the bullet downwards. This style did that. It was unstable and of
+little interest, so it is gone from the \lineno.sty distribution.
+
+\subsection{\texttt{\itshape bframe}}
+\label{sec:bframe}
+
+\setlength\bframesep{10pt}
+\begin{bframe}
+\lineno.sty can be used for unexpected purposes. The environment
+\begin{quote}\obeylines
+ ~\begin{bframe}~
+ ~\end{bframe}~
+\end{quote}
+draws boxes around some text, even across page breaks. At a page
+break, the box is open (it is difficult to fix that). There are two
+parameters:
+\begin{description}\itemsep=0pt\parskip=0pt
+\item [|\bframesep] \leavevmode\\
+ defines the separation of the box from the text.
+\item [|\bframerule] \leavevmode\\
+ defines the thickness of the lines around the text.
+\end{description}
+
+It works by asking \lineno.sty to draw small rules left and right to
+the lines. The total height of the rules is ~\baselineskip~ plus
+~\bframesep~. This leaves some extra space for extra high lines.
+
+The current version is very preliminary. In a future version there
+may be a possibility to move the vertical lines inwards for indented
+text. The box may optionally be closed at page breaks. It will not
+likely be possible to have a colored background in the box, at least
+not with a graphics driver that cannot put a background behind
+existing foreground (Postscript cannot, I've been told). Tell me how
+to make a gray background, like block dots on transparent, and I can
+do shaded boxes.
+
+\end{bframe}
+
+\section{How to print the documented source}
+
+\begin{bframe}
+\lineno.sty is written in three programming languages: \TeX, sh,
+and awk.
+
+The file can be loaded as a \LaTeXe\ package as it is. However, if
+you feed it into a Unix shell, like
+\begin{quote}
+ ~csh> source ./lineno.sty~
+\end{quote}
+it will produce the files ~lineno.tex~ and ~lineno.dvi~, which is the
+documented source of \lineno.sty. If you want to learn how it works,
+or you need to adapt \lineno.sty for some special requirements, you
+should read that document.
+\end{bframe}
+
+\end{document}
Property changes on: trunk/Master/texmf-dist/doc/latex/lineno/ulineno.tex
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Modified: trunk/Master/texmf-dist/tex/latex/lineno/ednmath0.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex/lineno/ednmath0.sty 2022-12-05 10:28:48 UTC (rev 65203)
+++ trunk/Master/texmf-dist/tex/latex/lineno/ednmath0.sty 2022-12-05 21:23:48 UTC (rev 65204)
@@ -1,202 +1,200 @@
-%% Macro package `ednmath0.sty' for LaTeX2e,
-%% copyright (C) 2004 Uwe L\"uck,
-%% http://www.contact-ednotes.sty.de.vu
-%% --author-maintained;
-%% math support for `lineno.sty' and `ednotes.sty'.
-%%
+%% Macro package `ednmath0.sty' for LaTeX2e,
+%% copyright (C) 2004 Uwe L\"uck,
+%% http://www.contact-ednotes.sty.de.vu
+%% --author-maintained;
+%% math support for `lineno.sty' and `ednotes.sty'.
+%%
\def\fileversion{v0.2b} \def\filedate{2005/01/10}
-%% This program can be redistributed and/or modified under the
-%% terms of the LaTeX Project Public License distributed from
+%% This program can be redistributed and/or modified under the
+%% terms of the LaTeX Project Public License distributed from
%% CTAN archives in directory macros/latex/base/lppl.txt; either
%% version 1.3a of the License, or any later version.
%% The latest version of this license is in
%% http://www.latex-project.org/lppl.txt
-%% There is NO WARRANTY.
-%% This code is very EXPERIMENTAL!
+%% There is NO WARRANTY.
+%% This code is very EXPERIMENTAL!
%%
-%% Please report bugs, problems, and suggestions via
-%%
-%% http://www.contact-ednotes.sty@web.de
-%
-%% * MAIN FEATURE *
-%
-% lineno.sty's \linelabel and ednotes.sty's commands are enabled
-% to work in math mode if it's "entered in outer mode"
-% (including `displaymath' and `equation' environments).
-% (lineno.sty is the package by Stephan Boettcher.)
-% They will even work in tabular environments that are adjusted
-% to notes by package `edtable.sty'.
-%
-% CAVEATS:
-% -- Does not work yet in environments like LaTeX's
-% `eqnarray'. (This could probably repaired along the lines
-% of Edtable.sty--we're short of time and will try later.)
-% -- Useful error messages when (i) math mode is entered from
-% inner mode or when (ii) a math display gets not line number
-% are missing at present.
-%
+%% Please report bugs, problems, and suggestions via
+%%
+%% http://www.contact-ednotes.sty@web.de
+%
+%% * MAIN FEATURE *
+%
+% lineno.sty's \linelabel and ednotes.sty's commands are enabled
+% to work in math mode if it's "entered in outer mode"
+% (including `displaymath' and `equation' environments).
+% (lineno.sty is the package by Stephan Boettcher.)
+% They will even work in tabular environments that are adjusted
+% to notes by package `edtable.sty'.
+%
+% CAVEATS:
+% -- Does not work yet in environments like LaTeX's
+% `eqnarray'. (This could probably repaired along the lines
+% of Edtable.sty--we're short of time and will try later.)
+% -- Useful error messages when (i) math mode is entered from
+% inner mode or when (ii) a math display gets not line number
+% are missing at present.
+%
%% * USAGE: *
-%
-% * Most simple: *
-% --If you are working with ednotes and want to use its
-% commands in math mode, load ednotes.sty--version 0.8
-% onwards--with its package option `mathnotes'.
-% --If you don't work with ednotes, only with lineno, you
-% get the main feature of making \linelabel work in math mode
-% by loading lineno.sty--version 4.1 onwards--with its
-% package option `mathrefs'.
-%
-% * Switch off and on: *
-% To reduce danger resulting from missing error messages
-% ("caveat" above), you may switch these new math facilities
-% off by \NoNotesToMath where you don't expect to need them.
-% You may switch them on again by \NotesToMath where you want
-% to use them, being aware of the danger. Both commands work
-% locally, so you can replace one of them by enclosing it in
-% a group. E.g., even, after \NoNotesToMath you can use an
-% environment as follows:
+%
+% * Most simple: *
+% --If you are working with ednotes and want to use its
+% commands in math mode, load ednotes.sty--version 0.8
+% onwards--with its package option `mathnotes'.
+% --If you don't work with ednotes, only with lineno, you
+% get the main feature of making \linelabel work in math mode
+% by loading lineno.sty--version 4.1 onwards--with its
+% package option `mathrefs'.
+%
+% * Switch off and on: *
+% To reduce danger resulting from missing error messages
+% ("caveat" above), you may switch these new math facilities
+% off by \NoNotesToMath where you don't expect to need them.
+% You may switch them on again by \NotesToMath where you want
+% to use them, being aware of the danger. Both commands work
+% locally, so you can replace one of them by enclosing it in
+% a group. E.g., even, after \NoNotesToMath you can use an
+% environment as follows:
% \begin{NotesToMath}
-% <text>
-% \end{NotesToMath}
+% <text>
+% \end{NotesToMath}
% (I am not quite sure that this is useful.)
-%
-% * Customize ellipsis: *
-% ednotes' \lemmaellipsis is changed to expand to
-% \mathlemmaellipsis when entering math, and this is preset
-% to be LaTeX's \mathellipsis. (This is three dots as
-% \mathinner.) You can change this by redefining
-% \mathlemmaellipsis, e.g.:
+%
+% * Customize ellipsis: *
+% ednotes' \lemmaellipsis is changed to expand to
+% \mathlemmaellipsis when entering math, and this is preset
+% to be LaTeX's \mathellipsis. (This is three dots as
+% \mathinner.) You can change this by redefining
+% \mathlemmaellipsis, e.g.:
% \renewcommand{\mathlemmaellipsis}{\cdots}
-% If you need \cdots as the ellipsis at a single place only,
-% you may, of course, use the `<...>' option of \<, e.g.:
+% If you need \cdots as the ellipsis at a single place only,
+% you may, of course, use the `<...>' option of \<, e.g.:
% $ x = \Anote{a\<<\cdots>bcd\>e}{Indeed?} - y $
-%
+%
% * Customize note mode: *
-% For variant readings, you may want that the note is
-% usually set in math mode--so you may want that you
-% needn't type the dollar signs in the note text.
-% Note that you can do this by customizing \notefmt,
-% and you can do this by customizing \Anotefmt (e.g.)
-% to have this feature for \Anote only.
-%
+% For variant readings, you may want that the note is
+% usually set in math mode--so you may want that you
+% needn't type the dollar signs in the note text.
+% Note that you can do this by customizing \notefmt,
+% and you can do this by customizing \Anotefmt (e.g.)
+% to have this feature for \Anote only.
+%
\NeedsTeXFormat{LaTeX2e}
-\ProvidesPackage{ednmath0}[\filedate\space\fileversion\space
- math support for lineno/ednotes (ul)]
-%
-%% User commands:
+\ProvidesPackage{ednmath0}[\filedate\space\fileversion\space
+ math support for lineno/ednotes (ul)]
+%
+%% User commands:
\def\NotesToMath{\let\@LN at mathhook\@LN at labelinmath
- \@bsphack \@esphack
+ \@bsphack \@esphack
% For \begin{NotesToMath}
-}
+}
\def\NoNotesToMath{\@bsphack
- \def\@LN at mathhook{\@parmoderr\@gobble}%
- \@esphack
-}
+ \def\@LN at mathhook{\@parmoderr\@gobble}%
+ \@esphack
+}
\def\endNotesToMath{\@bsphack\@Esphack}
-\let\endNoNotesToMath\endNotesToMath
-%
-%% Core code for lineno.sty:
-\@ifundefined{@LN at postlabel}{%
- \PackageError{ednmath0}{%
- Bad lineno.sty version%
- }{%
- lineno.sty from 2004/08/16 or later
- must be loaded earlier.%
+\let\endNoNotesToMath\endNotesToMath
+%
+%% Core code for lineno.sty:
+\@ifundefined{@LN at postlabel}{%
+ \PackageError{ednmath0}{%
+ Bad lineno.sty version%
+ }{%
+ lineno.sty from 2004/08/16 or later
+ must be loaded earlier.%
}%
-}{%
- \def\@LN at labelinmath#1{%
- \ifmmode
- \@LN at postlabel{#1}%
- \else
- \@parmoderr
- \fi
+}{%
+ \def\@LN at labelinmath#1{%
+ \ifmmode
+ \@LN at postlabel{#1}%
+ \else
+ \@parmoderr
+ \fi
}
-}
-%
-%% Core code for ednotes.sty:
-\@ifundefined{@EN at note}{%
-% v0.01 sent a warning in this case. Considered superfluous now.
-}{%
+}
+%
+%% Core code for ednotes.sty:
+\@ifundefined{@EN at note}{%
+% v0.01 sent a warning in this case. Considered superfluous now.
+}{%
\def\@EN at themathlemmatag{%
- \ifmmode
- \toks@\expandafter{\@EN at lemmatag}%
+ \ifmmode
+ \toks@\expandafter{\@EN at lemmatag}%
\edef\@EN at lemmatag{%
- $%
- \def\noexpand\lemmaellipsis{%
- \noexpand\mathlemmaellipsis}%
- \the\toks@
- $%
- }%
-% \expandafter \def \expandafter \@EN at lemmatag
-% \expandafter {\expandafter $\expandafter
-% \def \expandafter \lemmaellipsis \expandafter {%
-% \expandafter \mathlemmaellipsis \expandafter }%
-% \@EN at lemmatag $}%
- \fi
- }
-% To be sure, \lemmaellipsis doesn't need to be changed when
-% ednotes `\<...\>' feature is not used. Though I prefer to
-% use one hook only in ednotes for both situations, with and
-% without `\<...\>'.
-%
-% The final \unskip in ednotes' \@EN at lemmatag would undo a final
-% \quad. That's OK: outside math the same happens.
-% In v0.01, \NoNotesToMath undid ednotes changes for math mode.
-% However, re-appearence of \linelabel error messages suffices.
-%
-% Now add lemma switch to the left of \[No]NotesToMath:
+ $%
+ \def\noexpand\lemmaellipsis{%
+ \noexpand\mathlemmaellipsis}%
+ \the\toks@
+ $%
+ }%
+% \expandafter \def \expandafter \@EN at lemmatag
+% \expandafter {\expandafter $\expandafter
+% \def \expandafter \lemmaellipsis \expandafter {%
+% \expandafter \mathlemmaellipsis \expandafter }%
+% \@EN at lemmatag $}%
+ \fi
+ }
+% To be sure, \lemmaellipsis doesn't need to be changed when
+% ednotes `\<...\>' feature is not used. Though I prefer to
+% use one hook only in ednotes for both situations, with and
+% without `\<...\>'.
+%
+% The final \unskip in ednotes' \@EN at lemmatag would undo a final
+% \quad. That's OK: outside math the same happens.
+% In v0.01, \NoNotesToMath undid ednotes changes for math mode.
+% However, re-appearence of \linelabel error messages suffices.
+%
+% Now add lemma switch to the left of \[No]NotesToMath:
\toks@\expandafter{\NotesToMath}
- \edef\NotesToMath{%
- \let \noexpand\@EN at mathlemmatag \noexpand\@EN at themathlemmatag
+ \edef\NotesToMath{%
+ \let \noexpand\@EN at mathlemmatag \noexpand\@EN at themathlemmatag
\the\toks@
}
% \typeout{\string\NotesToMath: \meaning\NotesToMath}
\toks@\expandafter{\NoNotesToMath}
- \edef\NoNotesToMath{%
- \let \noexpand\@EN at mathlemmatag \relax
+ \edef\NoNotesToMath{%
+ \let \noexpand\@EN at mathlemmatag \relax
\the\toks@
}
% \typeout{\string\NoNotesToMath: \meaning\NoNotesToMath}
-}
-% We need no extra device for a choice for users whether the *note*
-% should be set in math mode or in horizontal mode by default
-% (which might depend on the kind ["layer"] of notes).
-% This can be done already by customization of ednotes' \notefmt.
-% However, we might change ednotes' default \notefmt to default
+}
+% We need no extra device for a choice for users whether the *note*
+% should be set in math mode or in horizontal mode by default
+% (which might depend on the kind ["layer"] of notes).
+% This can be done already by customization of ednotes' \notefmt.
+% However, we might change ednotes' default \notefmt to default
% \renewcommand*{\notefmt}[1]{$#1$}
-%
-\let\mathlemmaellipsis\mathellipsis
-%% TODO: Since when has LaTeX provided \mathellipsis?
-%% -> \Needs...
-%
-% Default:
+%
+\let\mathlemmaellipsis\mathellipsis
+%% TODO: Since when has LaTeX provided \mathellipsis?
+%% -> \Needs...
+%
+% Default:
\NotesToMath
-%
-\endinput
+%
+\endinput
-%% TODO: Without \linenumberdisplaymath, in displaymath,
-%% an error should be shown. Use, e.g., that in a displaymath
-%% \ifinner is false.
-%% TODO: E.g., by changing \everymath, perhaps can be warned
-%% that the math group is in a box already, so the vertical
-%% items will get lost.
-%% TODO: Adjust `eqnarray' (in Edtable?) as well.
+%% TODO: Without \linenumberdisplaymath, in displaymath,
+%% an error should be shown. Use, e.g., that in a displaymath
+%% \ifinner is false.
+%% TODO: E.g., by changing \everymath, perhaps can be warned
+%% that the math group is in a box already, so the vertical
+%% items will get lost.
+%% TODO: Adjust `eqnarray' (in Edtable?) as well.
-%% VERSION HISTORY:
-v0.01 2004/08/16 First version, sent to Christian.
-v0.02 2004/08/16 Considerably simplified for ednotes.
- 2004/08/19 Added ellipsis stuff, documentation, and
- instructions. Uncapitalized package names.
- Added \end[No]NotesToMath.
- 2004/08/20 Added \@bsphack and \@esphack; corrected
- ednotes extension (too much deleted, completely
- wrong), introducing \@EN at themathlemmatag.
-v0.02b .../08/31 Rearranged preamble concerning maintenance.
-v0.1 2004/09/20 Removed mentions of `linenox0.sty'.
-v0.2 2004/10/07 Removed another mention of `linenox0.sty';
- Instructions: `lineno' or `ednotes.sty' option.
-v0.2a 2004/11/07 LPPL v1.3a.
-v0.2b 2005/01/10 Contact via http.
-
-
+%% VERSION HISTORY:
+v0.01 2004/08/16 First version, sent to Christian.
+v0.02 2004/08/16 Considerably simplified for ednotes.
+ 2004/08/19 Added ellipsis stuff, documentation, and
+ instructions. Uncapitalized package names.
+ Added \end[No]NotesToMath.
+ 2004/08/20 Added \@bsphack and \@esphack; corrected
+ ednotes extension (too much deleted, completely
+ wrong), introducing \@EN at themathlemmatag.
+v0.02b .../08/31 Rearranged preamble concerning maintenance.
+v0.1 2004/09/20 Removed mentions of `linenox0.sty'.
+v0.2 2004/10/07 Removed another mention of `linenox0.sty';
+ Instructions: `lineno' or `ednotes.sty' option.
+v0.2a 2004/11/07 LPPL v1.3a.
+v0.2b 2005/01/10 Contact via http.
Modified: trunk/Master/texmf-dist/tex/latex/lineno/edtable.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex/lineno/edtable.sty 2022-12-05 10:28:48 UTC (rev 65203)
+++ trunk/Master/texmf-dist/tex/latex/lineno/edtable.sty 2022-12-05 21:23:48 UTC (rev 65204)
@@ -1,291 +1,291 @@
-%% `edtable.sty'---Uwe L"uck, direction Christian Tapp.
-%% LaTeX package for tables with line numbers and
-%% editorial notes.
-%%
-%% Copyright (C) 2003-2005 Uwe L"uck--author-maintained.
-%%
-\def\fileversion{1.3c} \def\filedate{2005/10/03}
-%%
-%% This file can be redistributed and/or modified under
-%% the terms of the LaTeX Project Public License; either
+%% `edtable.sty'---Uwe L"uck, direction Christian Tapp.
+%% LaTeX package for tables with line numbers and
+%% editorial notes.
+%%
+%% Copyright (C) 2003-2005 Uwe L"uck--author-maintained.
+%%
+\def\fileversion{1.3c} \def\filedate{2005/10/03}
+%%
+%% This file can be redistributed and/or modified under
+%% the terms of the LaTeX Project Public License; either
%% version 1.3 of the License, or any later version.
%% The latest version of this license is in
%% http://www.latex-project.org/lppl.txt
-%% We did our best to help you, but there is NO WARRANTY.
-%%
-%% Please send your comments via
-%%
-%% http://www.contact-ednotes.sty.de.vu
-%%
-%% * USAGE: *
-%
-% *Requirements/overview:*
-%
-% The package is made for the background of the LaTeX2e macro
-% package and enhances functionality of the following packages:
-% 1.) Stephan I. B"ottcher's `lineno.sty' for printing line
-% numbers in the margin and a \label version \linelabel
-% relating labels to line numbers;
-% 2.) our `ednotes.sty' for indicating variant readings and
-% other editorial remarks in separate footnote apparatuses;
-% 3.) David Carlisle's `longtable.sty' for multi-page tables.
-% %% TODO: supertabular etc.!?
-% 4.) our `ltabptch.sty' for a patch of `longtable.sty'
-% (i.e., optionally, see below).
-%
-% Actually, only the first package is necessary for using the
-% present one. The present one needs your line numbering commands
-% according to the first one and its documentation to which we
-% refer here. We likewise refer to the remaining packages for the
-% details of their functionality.
-%
-% `lineno.sty' version 4.1 and (in case it is used) `ednotes.sty'
-% version 0.8 (onwards) are needed. For obtaining recent versions
-% of required packages, see the CTAN folder
-% /macros/latex/contrib/ednotes.
-%
-% *Install/load:*
-% 1.) To be used, the present file must be put into a folder
-% that (La)TeX searches. You should have obtained a file
-% containing more detailed hints about this.
-% 2.) We recommend loading this file *not* by
-% \usepackage[<options>]{edtable} but by loading `lineno.sty'
-% or `ednotes.sty' with package option `edtable'.
-% 3.) To use the package options `longtable' and
-% `nolongtablepatch' that are described below, enter them
-% as options for `lineno.sty' or `ednotes.sty'.
-%
-% *User Commands:*
-%
-% 1. The package defines an environment `edtable' -- for its
-% syntax we consider two cases:
-% (a) Let <stdtable> be a tabular environment "like `tabular'".
-% "Like" here means: (i) we have tested it with `tabular', but
-% it should work with many more (e.g., from the `array' and
-% `tabularx' packages) -- which share certain properties of
-% implementation and requirements. Sorry, you must try, or we
-% hope you will (and tell us). (For wizards: <stdtable> may
-% probably be anything using a single \halign and \tabskip=0pt.)
-% Definitively:
-% (ii) LaTeX's standard `array' and other environments are *not*
-% "like" `tabular'. Namely, environments that work only in math
-% mode are not meant here. They are considered below in `b.'.
-% (iii) `longtable' from the `longtable' package of the `tools'
-% bundle neither is meant. An option of the present package
-% deals with it as described below. Neither `supertabular' is
-% meant.
-% (iv) In general, usage with tabular environments that can
-% break across pages as in (iii) is not recommended, at least
-% when working with `ednotes.sty'. Even if some worked here, a
-% shortcoming with `ednotes.sty' would be that the footnotes can
-% appear on bad pages.
-% -- Now the syntax is:
+%% We did our best to help you, but there is NO WARRANTY.
+%%
+%% Please send your comments via
+%%
+%% http://www.contact-ednotes.sty.de.vu
+%%
+%% * USAGE: *
+%
+% *Requirements/overview:*
+%
+% The package is made for the background of the LaTeX2e macro
+% package and enhances functionality of the following packages:
+% 1.) Stephan I. B"ottcher's `lineno.sty' for printing line
+% numbers in the margin and a \label version \linelabel
+% relating labels to line numbers;
+% 2.) our `ednotes.sty' for indicating variant readings and
+% other editorial remarks in separate footnote apparatuses;
+% 3.) David Carlisle's `longtable.sty' for multi-page tables.
+% %% TODO: supertabular etc.!?
+% 4.) our `ltabptch.sty' for a patch of `longtable.sty'
+% (i.e., optionally, see below).
+%
+% Actually, only the first package is necessary for using the
+% present one. The present one needs your line numbering commands
+% according to the first one and its documentation to which we
+% refer here. We likewise refer to the remaining packages for the
+% details of their functionality.
+%
+% `lineno.sty' version 4.1 and (in case it is used) `ednotes.sty'
+% version 0.8 (onwards) are needed. For obtaining recent versions
+% of required packages, see the CTAN folder
+% /macros/latex/contrib/ednotes.
+%
+% *Install/load:*
+% 1.) To be used, the present file must be put into a folder
+% that (La)TeX searches. You should have obtained a file
+% containing more detailed hints about this.
+% 2.) We recommend loading this file *not* by
+% \usepackage[<options>]{edtable} but by loading `lineno.sty'
+% or `ednotes.sty' with package option `edtable'.
+% 3.) To use the package options `longtable' and
+% `nolongtablepatch' that are described below, enter them
+% as options for `lineno.sty' or `ednotes.sty'.
+%
+% *User Commands:*
+%
+% 1. The package defines an environment `edtable' -- for its
+% syntax we consider two cases:
+% (a) Let <stdtable> be a tabular environment "like `tabular'".
+% "Like" here means: (i) we have tested it with `tabular', but
+% it should work with many more (e.g., from the `array' and
+% `tabularx' packages) -- which share certain properties of
+% implementation and requirements. Sorry, you must try, or we
+% hope you will (and tell us). (For wizards: <stdtable> may
+% probably be anything using a single \halign and \tabskip=0pt.)
+% Definitively:
+% (ii) LaTeX's standard `array' and other environments are *not*
+% "like" `tabular'. Namely, environments that work only in math
+% mode are not meant here. They are considered below in `b.'.
+% (iii) `longtable' from the `longtable' package of the `tools'
+% bundle neither is meant. An option of the present package
+% deals with it as described below. Neither `supertabular' is
+% meant.
+% (iv) In general, usage with tabular environments that can
+% break across pages as in (iii) is not recommended, at least
+% when working with `ednotes.sty'. Even if some worked here, a
+% shortcoming with `ednotes.sty' would be that the footnotes can
+% appear on bad pages.
+% -- Now the syntax is:
% \begin{edtable}{<stdtable>}<args><entries>\end{edtable}
-% -- where <args> and <entries> are usual arguments and entries
-% for <stdtable>. So an example is:
-% \begin{edtable}{tabular}{cc}
-% left upper & right upper \\ left lower & right lower
-% \end{edtable}
-% This produces just what <stdtable> does in an extra line,
-% only adding line numbers in the margin and processing `ednotes'
-% commands in the entries appropriately.
-% (b) Let <stdarray> be an "array environment" like -- standard
-% LaTeX's `array'! "Like" here means (i) ... analogously to
-% <stdtable> above. (ii) "Text" ... oh, sorry, this is not clear
-% to me at present, and I am in a hurry. %% TODO
-% (iii) Nothing from the `amsmath' package seems to work here,
-% sorry, I have tried a lot ... (iv) For standard LaTeX's
-% `eqnarray', it is better to try the `linenomath' environment
-% of `lineno.sty' [with package option `mathlines']. Its
-% modifications in `amsmath' produce (at best) a spurious line
-% number with the `linenomath' environment (up to now).
-% -- Now the syntax is:
+% -- where <args> and <entries> are usual arguments and entries
+% for <stdtable>. So an example is:
+% \begin{edtable}{tabular}{cc}
+% left upper & right upper \\ left lower & right lower
+% \end{edtable}
+% This produces just what <stdtable> does in an extra line,
+% only adding line numbers in the margin and processing `ednotes'
+% commands in the entries appropriately.
+% (b) Let <stdarray> be an "array environment" like -- standard
+% LaTeX's `array'! "Like" here means (i) ... analogously to
+% <stdtable> above. (ii) "Text" ... oh, sorry, this is not clear
+% to me at present, and I am in a hurry. %% TODO
+% (iii) Nothing from the `amsmath' package seems to work here,
+% sorry, I have tried a lot ... (iv) For standard LaTeX's
+% `eqnarray', it is better to try the `linenomath' environment
+% of `lineno.sty' [with package option `mathlines']. Its
+% modifications in `amsmath' produce (at best) a spurious line
+% number with the `linenomath' environment (up to now).
+% -- Now the syntax is:
% \begin{edtable}[<$$$>]{<stdarray>}
% <args><entries>\end{edtable}
-% -- where <args> and <entries> are usual arguments and entries
-% for <stdarray>. <$$$> can be one of `$' or `$$'. Indeed, the
-% <stdtable> syntax above (without [<$$$>]) *does not work*
-% inside $...$ or $$...$$. -- An example:
+% -- where <args> and <entries> are usual arguments and entries
+% for <stdarray>. <$$$> can be one of `$' or `$$'. Indeed, the
+% <stdtable> syntax above (without [<$$$>]) *does not work*
+% inside $...$ or $$...$$. -- An example:
% \begin{edtable}[$$]{array}{cc}
% a_{11} & a_{12} \\ a_{21} & a_{22}
% \end{edtable}
-% Now, this produces just what <stdarray> does in an extra line
-% etc. as with <stdtable>. However, \linelabel and `ednotes.sty'
-% footnotes may need the `mathrefs' option of `lineno.sty'. For
-% the difference between `[$]' and `[$$]', see below.
-%
-% 2. When working with `ednotes.sty', in
+% Now, this produces just what <stdarray> does in an extra line
+% etc. as with <stdtable>. However, \linelabel and `ednotes.sty'
+% footnotes may need the `mathrefs' option of `lineno.sty'. For
+% the difference between `[$]' and `[$$]', see below.
+%
+% 2. When working with `ednotes.sty', in
% \Anote{L1\<L2\>L3}{NOTE}
-% L2 may contain &'s and \\'s, but L1, L3 must not! Analogously
-% for \Bnote, etc., \Anotelabel...\donote..., etc. -- Well this
-% holds for <stdtable>, hardly for <stdarray> ... %% TODO
-%
-% 3. On positioning: You may have wondered about `extra line'
-% above. This means that `edtable' starts a new line at
-% \begin{edtable} and at \end{edtable}. %% TODO: sure!?
-% (a) It should be placed within a `center', `flushleft', or
-% `flushright' environment for proper (vertical) spacing, but
-% also works without. However, with <stdarray> and optional
-% parameter `$$' of `edtable' (i.e., \begin{edtable}[$$]...),
-% you can obtain the usual math display spacing *within a
-% paragraph*; especially, the vertical space is less when the
-% previous line is short ... and so on.
-% (b) Horizontal positioning of line numbers (usually) needs a
-% second run (after changing a table)! %% TODO: automatic warning.
-% (For wizards: It may fail if some of \leftskip, \rightskip,
-% \linewidth, and \@totalleftmargin are used in an unusual way.)
-% A <dimen> register \ETextraoffset is provided whose value is
-% 0pt by default and which additionally moves line numbers
-% to the left (right) if given a positive (negative) value.
-% %% TODO: any use?
-%
-% *Package options:*
-%
-% 1. Option `longtable' adjusts the `longtable' environment
-% defined by David Carlisle's longtable.sty for use with
-% `lineno.sty' and `ednotes.sty'. The option makes `longtable'
-% environments appear with line numbers in the margin, according
-% to `lineno.sty', and process `ednotes.sty' commands if line
-% numbering is active according to `lineno.sty'.
-% [We maintain an alternative package with just this function
-% in a slightly different implementation.] %% -> ulnltab.sty.
-% Lemmas may go across table entries as with `edtable' (see above).
-% ---There might be options like `supertabular' for adjusting
-% other tabular environments that cannot be handled by the
-% `edtable' environment provided here---they have not been
-% implemented yet! %% TODO
-%
-% 2. Option `nolongtablepatch' avoids loading/asking for
-% `ltabptch.sty'. I.e.: according to LaTeX bugs database,
-% tools/3180 and tools/3485, there have been problems with
-% vertical spacing around `longtable' environments. By default
-% the present package loads our `ltabptch.sty' or asks for it.
-% Option `nolongtablepatch' overrides this. This is useful when
-% you don't want to have the patch, especially when you use an
-% "emergency stop" installation of TeX.
-%
-% *Wizard interface:*
-% Macros \@ET at makeLineNumber, \@ET at use@outerhook,
-% \@ET at execute@outerhook, \@ET at ampnotes \@ET at startlinewith,
-% \@ET at trivialize@linelabel are provided as tools for adjusting
-% tabular environments for use with `lineno.sty' and
-% `ednotes.sty'. \@ET at step@linenumber is \let \stepLineNumber
-% (from `lineno.sty'), but could be used as a hook for
-% something different. See Environment `edtable' and Option
-% `longtable' below for examples of application.
-% %% TODO: specification here.
-%
+% L2 may contain &'s and \\'s, but L1, L3 must not! Analogously
+% for \Bnote, etc., \Anotelabel...\donote..., etc. -- Well this
+% holds for <stdtable>, hardly for <stdarray> ... %% TODO
%
-%% * Acknowledgements: *
-%
-% Stephan I. B"ottcher told us how to do it in extensive discussion
-% and by providing some first code lines. We changed these essentially
-% in some respects, but kept his general ideas and some parts of his
-% macros, the latter even without knowing what we are doing.
-%
-% v1.3 is due to a request by Martin Brandenburg.
-%
-% * Now for internals: *
-%
-\NeedsTeXFormat{LaTeX2e}[1994/12/01]
-% 1994/12/01: \newenvironment* etc. %% TODO: more recent needed?
-\ProvidesPackage{edtable}[\filedate\space v\fileversion\space
- arrays with lineno + ednotes (ul)]
-%
-% Alternative ideas for implementation:
-% 1. There is a German package `TABMAC' enhancing `EDMAC' (cf.
-% documentation of `ednotes.sty'). We could have rewritten its
-% macros so it would work with `lineno.sty' and `ednotes.sty'
-% in place of `EDMAC'. [TODO: "tabmac.sty"]
-% 2. We redefine `longtable' by Option `longtable' because
-% there seems to be only one reasonable use of the `longtable'
-% environment in the course of a critical edition. This may be
-% different for environments like `array' and `tabular' which
-% can be used within text lines. Therefore, these environments
-% are not redefined.
-% 3. One might use \everycr, however: (a) it is executed
-% before the first row, (b) it is executed in fake lines that
-% `longtable' uses.
-% 4. As an alternative to \everycr, there is the approach of
-% redefining \cr and \crcr for setting \noalign. This needs
-% redefining \@tabularcr etc.---not nice. We use this approach
-% here for `longtable' which uses a stretching \tabskip.
-% For \tabskip=0pt, we attach line numbers by a template.
-%
-% \RequirePackage{lineno}[2004/10/06]
-% Wanted to check lineno version--causes unknown option error.
-% See LaTeX bug latex/3730.
+% 3. On positioning: You may have wondered about `extra line'
+% above. This means that `edtable' starts a new line at
+% \begin{edtable} and at \end{edtable}. %% TODO: sure!?
+% (a) It should be placed within a `center', `flushleft', or
+% `flushright' environment for proper (vertical) spacing, but
+% also works without. However, with <stdarray> and optional
+% parameter `$$' of `edtable' (i.e., \begin{edtable}[$$]...),
+% you can obtain the usual math display spacing *within a
+% paragraph*; especially, the vertical space is less when the
+% previous line is short ... and so on.
+% (b) Horizontal positioning of line numbers (usually) needs a
+% second run (after changing a table)! %% TODO: automatic warning.
+% (For wizards: It may fail if some of \leftskip, \rightskip,
+% \linewidth, and \@totalleftmargin are used in an unusual way.)
+% A <dimen> register \ETextraoffset is provided whose value is
+% 0pt by default and which additionally moves line numbers
+% to the left (right) if given a positive (negative) value.
+% %% TODO: any use?
+%
+% *Package options:*
+%
+% 1. Option `longtable' adjusts the `longtable' environment
+% defined by David Carlisle's longtable.sty for use with
+% `lineno.sty' and `ednotes.sty'. The option makes `longtable'
+% environments appear with line numbers in the margin, according
+% to `lineno.sty', and process `ednotes.sty' commands if line
+% numbering is active according to `lineno.sty'.
+% [We maintain an alternative package with just this function
+% in a slightly different implementation.] %% -> ulnltab.sty.
+% Lemmas may go across table entries as with `edtable' (see above).
+% ---There might be options like `supertabular' for adjusting
+% other tabular environments that cannot be handled by the
+% `edtable' environment provided here---they have not been
+% implemented yet! %% TODO
+%
+% 2. Option `nolongtablepatch' avoids loading/asking for
+% `ltabptch.sty'. I.e.: according to LaTeX bugs database,
+% tools/3180 and tools/3485, there have been problems with
+% vertical spacing around `longtable' environments. By default
+% the present package loads our `ltabptch.sty' or asks for it.
+% Option `nolongtablepatch' overrides this. This is useful when
+% you don't want to have the patch, especially when you use an
+% "emergency stop" installation of TeX.
+%
+% *Wizard interface:*
+% Macros \@ET at makeLineNumber, \@ET at use@outerhook,
+% \@ET at execute@outerhook, \@ET at ampnotes \@ET at startlinewith,
+% \@ET at trivialize@linelabel are provided as tools for adjusting
+% tabular environments for use with `lineno.sty' and
+% `ednotes.sty'. \@ET at step@linenumber is \let \stepLineNumber
+% (from `lineno.sty'), but could be used as a hook for
+% something different. See Environment `edtable' and Option
+% `longtable' below for examples of application.
+% %% TODO: specification here.
+%
+%
+%% * Acknowledgements: *
+%
+% Stephan I. B"ottcher told us how to do it in extensive discussion
+% and by providing some first code lines. We changed these essentially
+% in some respects, but kept his general ideas and some parts of his
+% macros, the latter even without knowing what we are doing.
+%
+% v1.3 is due to a request by Martin Brandenburg.
+%
+% * Now for internals: *
+%
+\NeedsTeXFormat{LaTeX2e}[1994/12/01]
+% 1994/12/01: \newenvironment* etc. %% TODO: more recent needed?
+\ProvidesPackage{edtable}[\filedate\space v\fileversion\space
+ arrays with lineno + ednotes (ul)]
+%
+% Alternative ideas for implementation:
+% 1. There is a German package `TABMAC' enhancing `EDMAC' (cf.
+% documentation of `ednotes.sty'). We could have rewritten its
+% macros so it would work with `lineno.sty' and `ednotes.sty'
+% in place of `EDMAC'. [TODO: "tabmac.sty"]
+% 2. We redefine `longtable' by Option `longtable' because
+% there seems to be only one reasonable use of the `longtable'
+% environment in the course of a critical edition. This may be
+% different for environments like `array' and `tabular' which
+% can be used within text lines. Therefore, these environments
+% are not redefined.
+% 3. One might use \everycr, however: (a) it is executed
+% before the first row, (b) it is executed in fake lines that
+% `longtable' uses.
+% 4. As an alternative to \everycr, there is the approach of
+% redefining \cr and \crcr for setting \noalign. This needs
+% redefining \@tabularcr etc.---not nice. We use this approach
+% here for `longtable' which uses a stretching \tabskip.
+% For \tabskip=0pt, we attach line numbers by a template.
+%
+% \RequirePackage{lineno}[2004/10/06]
+% Wanted to check lineno version--causes unknown option error.
+% See LaTeX bug latex/3730.
-% Options:
+% Options:
-%% TODO: underful page with `longtable.sty'!?
-\let\if at ET@longtable\iffalse % \newif\if at ET@longtable@
-\DeclareOption{longtable}{\let\if at ET@longtable\iftrue}
-\let\if at ET@ltabptch\iftrue
+%% TODO: underful page with `longtable.sty'!?
+\let\if at ET@longtable\iffalse % \newif\if at ET@longtable@
+\DeclareOption{longtable}{\let\if at ET@longtable\iftrue}
+\let\if at ET@ltabptch\iftrue
\DeclareOption{nolongtablepatch}{\let\if at ET@ltabptch\iffalse}
\ProcessOptions
-% Redefine \longtable if option:
+% Redefine \longtable if option:
\if at ET@longtable
- % Stephan's direction for attaching a line number to each row
- % is using \noalign in the course of \\.
- % However, (1) the user should not worry about closing the table
- % with \\ or without, and (2) the line number thing should not
- % happen twice if \\ is the last token before \end{longtable}.
- % Our solution: attach something to the beginning of \endlongtable
- % which attaches line number unless an unsucceeded \\ has done it.
- % This thing is activated by each row start and turned off by \\.
- % Since the switch at row start may happen to be in a pbox,
- % let it act globally on \endlongtable. (The \crcr at the beginning
- % of \endlongtable must not be changed directly, since original
- % \crcr may be required in table entries using \oalign etc.)
- %
+ % Stephan's direction for attaching a line number to each row
+ % is using \noalign in the course of \\.
+ % However, (1) the user should not worry about closing the table
+ % with \\ or without, and (2) the line number thing should not
+ % happen twice if \\ is the last token before \end{longtable}.
+ % Our solution: attach something to the beginning of \endlongtable
+ % which attaches line number unless an unsucceeded \\ has done it.
+ % This thing is activated by each row start and turned off by \\.
+ % Since the switch at row start may happen to be in a pbox,
+ % let it act globally on \endlongtable. (The \crcr at the beginning
+ % of \endlongtable must not be changed directly, since original
+ % \crcr may be required in table entries using \oalign etc.)
+ %
\RequirePackage{longtable}%
% \IfFileExists{longtable.sty}{\RequirePackage{longtable}}%
% {\RequirePackage{longtabl}}%
-% For Atari problem, it suffices to rename `longtable.sty'
-% into `longtabl.sty'.
-%
+% For Atari problem, it suffices to rename `longtable.sty'
+% into `longtabl.sty'.
+%
% Patch for tools/3180 and tools/3485 of LaTeX bug database:
\if at ET@ltabptch
- \IfFileExists{ltabptch.sty}{\RequirePackage{ltabptch}}{%
- \PackageError{edtable}{%
+ \IfFileExists{ltabptch.sty}{\RequirePackage{ltabptch}}{%
+ \PackageError{edtable}{%
ltabptch.sty (for improving spacing around\MessageBreak
- longtable) missing! Be sure to use it always\MessageBreak
+ longtable) missing! Be sure to use it always\MessageBreak
or never!%
- }{%
- To omit ltabptch.sty *and* escape this error,\MessageBreak
+ }{%
+ To omit ltabptch.sty *and* escape this error,\MessageBreak
use package option `nolongtablepatch'.%
}%
}
- \fi
- \let\@ET@@longtable\longtable
- \def\longtable{%
- \ifLineNumbers
- \expandafter\@ET at longtable
- \else
- \let\@ET at sw@cr\@ET at crcr % ... in \endlongtable.
- \expandafter\@ET@@longtable
- \fi
- }
- \def\@ET at longtable{%
- % Since we have made it anyway, we use the method of redefining
- % \halign for inserting the activating row start as well.
- % However, redefinition must be repeated before every \LT at bchunk.
- % \longtable and \LT at get@withs are good places for this.
- \@ET at startlinewith\@ET at sw@cr at on
- \@ET at trivialize@linelabel
- \@ET at use@outerhook
- \@ET at ampnotes
- \let\LT at tabularcr\@ET at LT@tabularcr
- \expandafter\def\expandafter\LT at get@widths\expandafter
+ \fi
+ \let\@ET@@longtable\longtable
+ \def\longtable{%
+ \ifLineNumbers
+ \expandafter\@ET at longtable
+ \else
+ \let\@ET at sw@cr\@ET at crcr % ... in \endlongtable.
+ \expandafter\@ET@@longtable
+ \fi
+ }
+ \def\@ET at longtable{%
+ % Since we have made it anyway, we use the method of redefining
+ % \halign for inserting the activating row start as well.
+ % However, redefinition must be repeated before every \LT at bchunk.
+ % \longtable and \LT at get@withs are good places for this.
+ \@ET at startlinewith\@ET at sw@cr at on
+ \@ET at trivialize@linelabel
+ \@ET at use@outerhook
+ \@ET at ampnotes
+ \let\LT at tabularcr\@ET at LT@tabularcr
+ \expandafter\def\expandafter\LT at get@widths\expandafter
{\LT at get@widths\@ET at startlinewith\@ET at sw@cr at on}
- % Admittedly, we could make it less of a hack by using @{...}
- % ---we could then leave \LT at get@widths untouched.
- \@ET@@longtable
- }
- \def\@ET at sw@cr at on{\global\let\@ET at sw@cr\@ET at cr@attach}
- % We are hacking a longtable version offering
+ % Admittedly, we could make it less of a hack by using @{...}
+ % ---we could then leave \LT at get@widths untouched.
+ \@ET@@longtable
+ }
+ \def\@ET at sw@cr at on{\global\let\@ET at sw@cr\@ET at cr@attach}
+ % We are hacking a longtable version offering
% \def\LT at tabularcr{%
% \relax\iffalse{\fi\ifnum0=`}\fi
% \@ifstar
@@ -292,280 +292,280 @@
% {\def\crcr{\LT at crcr\noalign{\nobreak}}\let\cr\crcr
% \LT at t@bularcr}%
% {\LT at t@bularcr}}
- % We need a redefinition of \cr which is not overridden by \@ifstar:
+ % We need a redefinition of \cr which is not overridden by \@ifstar:
\def\@ET at LT@tabularcr{%
\relax\iffalse{\fi\ifnum0=`}\fi
- \def\cr{\@ET at sw@cr}%
- % So \crcr is affected by change of \@ET at sw@cr, cf. below.
- \let\crcr\cr
+ \def\cr{\@ET at sw@cr}%
+ % So \crcr is affected by change of \@ET at sw@cr, cf. below.
+ \let\crcr\cr
\@ifstar
- {\gdef\@ET at sw@nobreak{\nobreak
- \global\let\@ET at sw@nobreak\relax}%
+ {\gdef\@ET at sw@nobreak{\nobreak
+ \global\let\@ET at sw@nobreak\relax}%
% {\def\cr{\@ET at sw@cr\noalign{\nobreak}}\let\cr\crcr
- % Why didn't this work? %% TODO: try shorter again.
+ % Why didn't this work? %% TODO: try shorter again.
\LT at t@bularcr}%
- \LT at t@bularcr
+ \LT at t@bularcr
% {\let\cr\@ET at sw@cr \let\crcr\cr
- % \LT at t@bularcr}% This accompanied \def\cr... above.
+ % \LT at t@bularcr}% This accompanied \def\cr... above.
}
- % Attach \@ET at sw@cr to beginning of \endlongtable:
- \expandafter\def\expandafter\endlongtable\expandafter
+ % Attach \@ET at sw@cr to beginning of \endlongtable:
+ \expandafter\def\expandafter\endlongtable\expandafter
{\expandafter\@ET at sw@cr\endlongtable}
- \def\@ET at cr@attach{% Actually attaching line numbers.
- \@ET at crcr\noalign{% Basically Stephan's approach.
- % If we were not careful, following box containing line number
- % could fool interline glue after longtable, even if tools/3485
- % is repaired in some way. This box should have same depth as
- % the line composed previously.
- \nobreak %% \@ET at ex... might cause page break. 2003/10/30.
- \setbox\z@\@ET at makeLineNumber
- \ht\z at -\prevdepth \dp\z@\prevdepth \box\z@
- \@ET at step@linenumber
- \global\let\@ET at sw@cr\@ET at crcr % ... if called by \\.
- % This also resets the \crcr starting \LT at echunk following
- % \@xargarraycr or \@yargarraycr in \LT at argtabularcr.
- % \let...\relax seems to suffice at well, but in case ...
- \@ET at execute@outerhook %% 2003/10/30.
- \@ET at sw@nobreak
-% \@ET at execute@outerhook
- }%
- }
- \let\@ET at crcr\crcr
- \global\let\@ET at sw@nobreak\relax % Just to remind ...
-\fi
-
-\let\@ET at step@linenumber\stepLineNumber
+ \def\@ET at cr@attach{% Actually attaching line numbers.
+ \@ET at crcr\noalign{% Basically Stephan's approach.
+ % If we were not careful, following box containing line number
+ % could fool interline glue after longtable, even if tools/3485
+ % is repaired in some way. This box should have same depth as
+ % the line composed previously.
+ \nobreak %% \@ET at ex... might cause page break. 2003/10/30.
+ \setbox\z@\@ET at makeLineNumber
+ \ht\z at -\prevdepth \dp\z@\prevdepth \box\z@
+ \@ET at step@linenumber
+ \global\let\@ET at sw@cr\@ET at crcr % ... if called by \\.
+ % This also resets the \crcr starting \LT at echunk following
+ % \@xargarraycr or \@yargarraycr in \LT at argtabularcr.
+ % \let...\relax seems to suffice at well, but in case ...
+ \@ET at execute@outerhook %% 2003/10/30.
+ \@ET at sw@nobreak
+% \@ET at execute@outerhook
+ }%
+ }
+ \let\@ET at crcr\crcr
+ \global\let\@ET at sw@nobreak\relax % Just to remind ...
+\fi
+
+\let\@ET at step@linenumber\stepLineNumber
% \def\@ET at step@linenumber{\global\advance\c at linenumber\@ne}
-\def\@ET at makeLineNumber{\hb at xt@\z@{\makeLineNumber}}
-%% TODO: export to lineno.sty!?
-% Special \halign:
-% For `array' etc., we insert line numbers by a leftmost template.
-% @{...} in the last argument of `array' etc. is difficult for this
-% since `tabular*' has an additional argument. So we redefine
-% \halign to put something to the right of the next \bgroup.
-% Now, as a macro, \halign would break in an \edef or \xdef.
-% Horribly, this danger has become quite real in longtable.sty's
-% definition of \LT at bchunk. Only its latest version 4.10 has
-% preceded \halign by a \noexpand (for mathtext.sty which
-% redefines \halign as well). We need not rely on such a
-% provision if we let \halign expand to \the<token register>
-% for some token register. However, using \toks@ or \@temptokena
-% is neither very safe---might be filled by macro ahead with
-% something new. So reserve an own token register.
-\newtoks\@ET at toks
-\@ET at toks{\@ET at specialhalign}
-% v1.3: In 'AMSmath', there are \halign's followed by explicit
-% left braces. Thus '\def\@ET at specialhalign#1\bgroup{%' broke.
-%% TODO ...
+\def\@ET at makeLineNumber{\hb at xt@\z@{\makeLineNumber}}
+%% TODO: export to lineno.sty!?
+% Special \halign:
+% For `array' etc., we insert line numbers by a leftmost template.
+% @{...} in the last argument of `array' etc. is difficult for this
+% since `tabular*' has an additional argument. So we redefine
+% \halign to put something to the right of the next \bgroup.
+% Now, as a macro, \halign would break in an \edef or \xdef.
+% Horribly, this danger has become quite real in longtable.sty's
+% definition of \LT at bchunk. Only its latest version 4.10 has
+% preceded \halign by a \noexpand (for mathtext.sty which
+% redefines \halign as well). We need not rely on such a
+% provision if we let \halign expand to \the<token register>
+% for some token register. However, using \toks@ or \@temptokena
+% is neither very safe---might be filled by macro ahead with
+% something new. So reserve an own token register.
+\newtoks\@ET at toks
+\@ET at toks{\@ET at specialhalign}
+% v1.3: In 'AMSmath', there are \halign's followed by explicit
+% left braces. Thus '\def\@ET at specialhalign#1\bgroup{%' broke.
+%% TODO ...
\def\@ET at specialhalign{%
- \ifmeasuring@ \expandafter\@firstoftwo
-% v1.3 2005/03/04, for `amsmath'.
- \else \expandafter\@secondoftwo
+ \ifmeasuring@ \expandafter\@firstoftwo
+% v1.3 2005/03/04, for `amsmath'.
+ \else \expandafter\@secondoftwo
\fi
- {\let\halign\@ET@@halign \halign}%
+ {\let\halign\@ET@@halign \halign}%
{\@ifnextchar\bgroup\@ET at replace@arg\@ET at sphalign@to}}
-%% TODO: change back, commenting out code above, report
-%% error with `alignat'.
+%% TODO: change back, commenting out code above, report
+%% error with `alignat'.
% \@ifnextchar\bgroup\@ET at replace@arg\@ET at sphalign@to}
-% If `amsmath' not loaded (v1.3):
-\AtBeginDocument{\@ifundefined{measuring at true}{%
+% If `amsmath' not loaded (v1.3):
+\AtBeginDocument{\@ifundefined{measuring at true}{%
\let\ifmeasuring@\iffalse}\relax}
\def\@ET at replace@arg#1{%
- \def\@EN at tempa{#1}\def\@EN at tempb{\bgroup}% Corr. after v1.3b.
- \ifx\@EN at tempa\@EN at tempb
+ \def\@EN at tempa{#1}\def\@EN at tempb{\bgroup}% Corr. after v1.3b.
+ \ifx\@EN at tempa\@EN at tempb
\def\@EN at tempa{\@ET at sphalign@to\bgroup}%
- \else
+ \else
\def\@EN at tempa{\@ET at sphalign@to{#1}}%
-% This may be wrong, #1 might be `t' from `to' ...
- \fi
+% This may be wrong, #1 might be `t' from `to' ...
+ \fi
\@EN at tempa}
-\def\@ET at sphalign@to#1\bgroup{%
- \let\halign\@ET@@halign % Reset for nested arrays.
- \halign#1\bgroup
-% \ifmeasuring@\else % For `amsmath', moved backwards.
- \@ET at startline % [Wizard interface, via \@ET at starlinewith.]
-% \fi
+\def\@ET at sphalign@to#1\bgroup{%
+ \let\halign\@ET@@halign % Reset for nested arrays.
+ \halign#1\bgroup
+% \ifmeasuring@\else % For `amsmath', moved backwards.
+ \@ET at startline % [Wizard interface, via \@ET at starlinewith.]
+% \fi
}
-% Wizard interface:
-\def\@ET at startlinewith{% Next token precedes preamble.
-% \let\@ET@@halign\halign % Or \AtBeginDocument?
-% ... indeed: bad loop with long longtable (\LT at get@widths!?)
- \def\halign{\the\@ET at toks}%
- \let\@ET at startline
-}
-\AtBeginDocument{\let\@ET@@halign\halign}
-% Or save it at start of environment only
-% (don't repeat inside longtable).
-%
-% Outer hook for inserts: (wizard interface)
-\def\@ET at execute@outerhook{% To be placed outside inner mode.
- \@ET at outerhook \global\let\@ET at outerhook\@empty
-}
-\global\let\@ET at outerhook\@empty % Just to remind: global!
-% \@EN at hookfn (ednotes) sends to outer hook:
-\def\@ET at use@outerhook{% Wizard interface.
- \def\@EN at hookfn{\g at addto@macro\@ET at outerhook}%
-}%% TODO: move last line to `ednotes', \let\@ET at use...\@empty.
-%% But this requires re-installing both packages
-%% at the same time. See the `ampnotes' thing as well.
-%
-% Trivialize \linelabel: (wizard interface)
+% Wizard interface:
+\def\@ET at startlinewith{% Next token precedes preamble.
+% \let\@ET@@halign\halign % Or \AtBeginDocument?
+% ... indeed: bad loop with long longtable (\LT at get@widths!?)
+ \def\halign{\the\@ET at toks}%
+ \let\@ET at startline
+}
+\AtBeginDocument{\let\@ET@@halign\halign}
+% Or save it at start of environment only
+% (don't repeat inside longtable).
+%
+% Outer hook for inserts: (wizard interface)
+\def\@ET at execute@outerhook{% To be placed outside inner mode.
+ \@ET at outerhook \global\let\@ET at outerhook\@empty
+}
+\global\let\@ET at outerhook\@empty % Just to remind: global!
+% \@EN at hookfn (ednotes) sends to outer hook:
+\def\@ET at use@outerhook{% Wizard interface.
+ \def\@EN at hookfn{\g at addto@macro\@ET at outerhook}%
+}%% TODO: move last line to `ednotes', \let\@ET at use...\@empty.
+%% But this requires re-installing both packages
+%% at the same time. See the `ampnotes' thing as well.
+%
+% Trivialize \linelabel: (wizard interface)
\def\@ET at trivialize@linelabel{\let\linelabel\@ET at linelabel}
-\def\@ET at linelabel{%
- \protected at edef\@currentlabel{\theLineNumber}%
+\def\@ET at linelabel{%
+ \protected at edef\@currentlabel{\theLineNumber}%
\label
}
-% Change ampersand at \Anote etc.: (wizard interface)
-%% 2003/10/31.
-% & is changed by \Anote etc. No \begin...\endgroup,
-% next \\ or & after % note/donote command switches back.
-% ---Global change seems to break table setup.
-\begingroup
+% Change ampersand at \Anote etc.: (wizard interface)
+%% 2003/10/31.
+% & is changed by \Anote etc. No \begin...\endgroup,
+% next \\ or & after % note/donote command switches back.
+% ---Global change seems to break table setup.
+\begingroup
\gdef\@ET at hideamps{\catcode`\&\active}
-\@ET at hideamps
-\gdef\@ET at ampnotes{%
- \let&\@ET at hideamp
- %% & would be undefined after \\ in lemma.
- \let\@ET at EN@rnote\@EN at note
+\@ET at hideamps
+\gdef\@ET at ampnotes{%
+ \let&\@ET at hideamp
+ %% & would be undefined after \\ in lemma.
+ \let\@ET at EN@rnote\@EN at note
\def\@EN at note{\@ET at hideamps\@ET at EN@rnote}%
- \let\@ET at EN@rnotelb\@EN at notelabel
+ \let\@ET at EN@rnotelb\@EN at notelabel
\def\@EN at notelabel{\@ET at hideamps\@ET at EN@rnotelb}%
-}
-%% TODO: & and \\ in \@EN at lemmaexpands!?
-\endgroup
+}
+%% TODO: & and \\ in \@EN at lemmaexpands!?
+\endgroup
\def\@ET at hideamp{&}
-\newenvironment*{edtable}[2][]{%
-% #1 $ or $$, #2 standard environment name.
-%% TODO: star version!? cf. lineno.sty's `numquote'.
- \def\@ET at mode{#1}%
- \def\@ET at currenvir{#2}%
- \ifhmode \ifnum\the\lastpenalty=-\@M\else
-% \par must be executed for printing/stopping line numbers:
- \@centercr\relax \noindent
- \fi \fi
- \ifvmode \noindent \fi % Otherwise linenumbers are indented
-% -- however, not recommended.
- \@ET at use@outerhook
- \@ET at trivialize@linelabel
- \@ET at ampnotes
- \@ET at startlinewith\@ET at normal@startline
- \global\advance\c at linenumber\m at ne % Stepping correction.
+\newenvironment*{edtable}[2][]{%
+% #1 $ or $$, #2 standard environment name.
+%% TODO: star version!? cf. lineno.sty's `numquote'.
+ \def\@ET at mode{#1}%
+ \def\@ET at currenvir{#2}%
+ \ifhmode \ifnum\the\lastpenalty=-\@M\else
+% \par must be executed for printing/stopping line numbers:
+ \@centercr\relax \noindent
+ \fi \fi
+ \ifvmode \noindent \fi % Otherwise linenumbers are indented
+% -- however, not recommended.
+ \@ET at use@outerhook
+ \@ET at trivialize@linelabel
+ \@ET at ampnotes
+ \@ET at startlinewith\@ET at normal@startline
+ \global\advance\c at linenumber\m at ne % Stepping correction.
% (Must come after closing previous paragraph.)
-% Calculate offset:
- \global\advance\c at ET@array\@ne
-% Saving/calling width of table (`longtable's algorithm).
-% Test if there is \@flushglue on the left (center or flushleft):
- \edef\@EN at tempa{\the\@flushglue}%
-% ... v1.3: fool this for "$$".
- \in@{$$}{#1\@nil}% \in@{#1}{#2} searches #1 in #2#1 ...
- \edef\@EN at tempb{\the\ifin@\@flushglue\else\leftskip\fi}%
- \ifx\@EN at tempa\@EN at tempb
-% Assume \@ET at offset is 0pt else here.
- \@ET at offset\linewidth
- \advance\@ET at offset-%
- \@ifundefined\@ET at arraywidth@csn % Shortened for v1.3.
- {\linewidth\G at refundefinedtrue
- \PackageWarningNoLine{edtab}{^^JLine numbers at
- \@ET at currenvir\space need \jobname.aux}}%
- {\csname\@ET at arraywidth@csn\endcsname}%
-% Test if \@flushglue on the right (center):
-% ... v1.3: fool it again. Repeat \in@ in case ...
+% Calculate offset:
+ \global\advance\c at ET@array\@ne
+% Saving/calling width of table (`longtable's algorithm).
+% Test if there is \@flushglue on the left (center or flushleft):
+ \edef\@EN at tempa{\the\@flushglue}%
+% ... v1.3: fool this for "$$".
+ \in@{$$}{#1\@nil}% \in@{#1}{#2} searches #1 in #2#1 ...
+ \edef\@EN at tempb{\the\ifin@\@flushglue\else\leftskip\fi}%
+ \ifx\@EN at tempa\@EN at tempb
+% Assume \@ET at offset is 0pt else here.
+ \@ET at offset\linewidth
+ \advance\@ET at offset-%
+ \@ifundefined\@ET at arraywidth@csn % Shortened for v1.3.
+ {\linewidth\G at refundefinedtrue
+ \PackageWarningNoLine{edtab}{^^JLine numbers at
+ \@ET at currenvir\space need \jobname.aux}}%
+ {\csname\@ET at arraywidth@csn\endcsname}%
+% Test if \@flushglue on the right (center):
+% ... v1.3: fool it again. Repeat \in@ in case ...
\in@{$$}{#1\@nil}%
- \edef\@EN at tempb{\the\ifin@\@flushglue\else\rightskip\fi}%
- \ifx\@EN at tempa\@EN at tempb \divide\@ET at offset\tw@ \fi
- \fi
- \advance\@ET at offset\@totalleftmargin
- \advance\@ET at offset\ETextraoffset % Offset ready.
- \setbox\@tempboxa\hbox\bgroup
-% v1.3: `alignat' complains later when this is \vbox instead.
-% \vbox\bgroup % Tried in vain.
- \ifx\@ET at mode\@empty\else $\fi
- \csname#2\endcsname
-}{%
- \csname end\@ET at currenvir \endcsname
- \ifx\@ET at mode\@empty\else $\fi
- \egroup
- \@ET at step@linenumber % Stepping correction.
+ \edef\@EN at tempb{\the\ifin@\@flushglue\else\rightskip\fi}%
+ \ifx\@EN at tempa\@EN at tempb \divide\@ET at offset\tw@ \fi
+ \fi
+ \advance\@ET at offset\@totalleftmargin
+ \advance\@ET at offset\ETextraoffset % Offset ready.
+ \setbox\@tempboxa\hbox\bgroup
+% v1.3: `alignat' complains later when this is \vbox instead.
+% \vbox\bgroup % Tried in vain.
+ \ifx\@ET at mode\@empty\else $\fi
+ \csname#2\endcsname
+}{%
+ \csname end\@ET at currenvir \endcsname
+ \ifx\@ET at mode\@empty\else $\fi
+ \egroup
+ \@ET at step@linenumber % Stepping correction.
\if at filesw
\immediate\write\@auxout{%
\gdef\expandafter\noexpand
\csname\@ET at arraywidth@csn\endcsname
{\the\wd\@tempboxa}}%
-%% TODO: warning if changed!?
+%% TODO: warning if changed!?
\fi
-% No automatic line number at array line:
- \nolinenumbers
- \@ET at mode\ensuremath{\vcenter{\box\@tempboxa}}\@ET at mode % v1.3.
+% No automatic line number at array line:
+ \nolinenumbers
+ \@ET at mode\ensuremath{\vcenter{\box\@tempboxa}}\@ET at mode % v1.3.
\@ET at execute@outerhook
- \ifhmode \@centercr\relax \fi
-% \par must be executed for proper restart of printing line numbers
-% (think so).
- \@endpetrue % Outside \@flushglue environment, avoid indent ahead.
-%% TODO: slightly change for math mode around? Or give an error
-%% in math mode.
-}
-%% TODO: make \edtable \outer!?
+ \ifhmode \@centercr\relax \fi
+% \par must be executed for proper restart of printing line numbers
+% (think so).
+ \@endpetrue % Outside \@flushglue environment, avoid indent ahead.
+%% TODO: slightly change for math mode around? Or give an error
+%% in math mode.
+}
+%% TODO: make \edtable \outer!?
\def\@ET at normal@startline{%
- \@ET at step@linenumber
- \llap{\@ET at makeLineNumber \hskip\@ET at offset}%
-}
-\newdimen\@ET at offset
-\newdimen\ETextraoffset
-%% TODO: export to lineno.sty!?
-\newcount\c at ET@array
+ \@ET at step@linenumber
+ \llap{\@ET at makeLineNumber \hskip\@ET at offset}%
+}
+\newdimen\@ET at offset
+\newdimen\ETextraoffset
+%% TODO: export to lineno.sty!?
+\newcount\c at ET@array
\def\@ET at arraywidth@csn{ET at a@\romannumeral\c at ET@array}
-%
-%% TODO: .dtx
-\endinput
+%
+%% TODO: .dtx
+\endinput
-%% VERSION HISTORY:
-v0.22 2003/01/13 First version, named `edtab02.sty', sent around,
- together with ednotes.sty.
-v0.23 2003/01/22 Added version history.
-v0.24 2003/01/27 Copyright notice.
-%%% v0.3 2003/03/03 Requires linenox0.sty. %% RETREATED
-%% TODO: reconsider, see `lineno[x].sty'.
-v0.25 2003/03/05 Added <ednotes.sty at web.de>.
-v0.26 2003/03/23 Added \@ET at startlinewith to wizard command list;
- moved redefinition \LT at get@widths from option code
- into \@ET at longtable so this really happens in
- line number mode only; moved \let\@ET@@halign\halign
- from \@ET at startlinewith to \AtBeginDocument.
-v0.27 2003/06/02 Added \ifvmode \noindent \fi to `edtable' definition;
- 2003/06/10 added `lemma cannot run' to instructions.
-v0.28 2003/10/31 \@ET at cr@attach: moved \@ET at execu..., added \nobreak.
- Added \@ET at ampnotes and documentation: now working
- across entries.
-v1.0 2004/05/13 `ednotes.sty' etc., updated copyright. Renamed as
- `edtable.sty' for TUGboat article.
- \RequirePackage{lineno}, changed doc. accordingly.
- Removed `may be released under different name'.
-v1.10 2004/07/27 Looking for `longtabl.sty' for my Atari!
- 2004/08/22 Added warning (screen/documentation) concerning
- ltabptch.sty.
- 2004/08/23 Added suggestion of option `nolongtablepatch';
- LPPL v1.3.
-v1.2 2004/08/31 Rearranged preamble concerning maintenance,
- removed `preliminary release'.
- 2004/10/06 \newif -> \let...; option `nolongtablepatch';
- changed documentation accordingly and for
- loading edtable.sty by lineno/ednotes option;
- \let\@ET at step@linenumber\stepLineNumber; use
- \ifLineNumbers.
- 2004/10/07 Needed version numbers.
- 2004/10/08 ltabptch warning -> error!
- 2004/10/11 Disabled \RequirePackage{lineno}[...]; undid
- the `longtabl.sty' thing from 2004/07/27.
- 2004/10/12 latex/3730.
-v1.2a 2004/11/07 LPPL v1.3a.
-v1.2b 2005/01/10 Contact via http.
-v1.3b 2005/03/04 Support for environments like `array'
- environment. The description of `edtable' was
- wrong in this respect!
-v1.3 2005/03/07 Adaptations in documentation, and extended usage
- instructions very much, correcting some
- errors as well. Acknowledgement to M. B.
-v1.3a 2005/03/09 Corrected numbering in `usage'.
-v1.3c 2005/03/15 \@centercr\relax, TODO on math mode.
- 2005/04/09 `editory' -> `editorial'.
+%% VERSION HISTORY:
+v0.22 2003/01/13 First version, named `edtab02.sty', sent around,
+ together with ednotes.sty.
+v0.23 2003/01/22 Added version history.
+v0.24 2003/01/27 Copyright notice.
+%%% v0.3 2003/03/03 Requires linenox0.sty. %% RETREATED
+%% TODO: reconsider, see `lineno[x].sty'.
+v0.25 2003/03/05 Added <ednotes.sty at web.de>.
+v0.26 2003/03/23 Added \@ET at startlinewith to wizard command list;
+ moved redefinition \LT at get@widths from option code
+ into \@ET at longtable so this really happens in
+ line number mode only; moved \let\@ET@@halign\halign
+ from \@ET at startlinewith to \AtBeginDocument.
+v0.27 2003/06/02 Added \ifvmode \noindent \fi to `edtable' definition;
+ 2003/06/10 added `lemma cannot run' to instructions.
+v0.28 2003/10/31 \@ET at cr@attach: moved \@ET at execu..., added \nobreak.
+ Added \@ET at ampnotes and documentation: now working
+ across entries.
+v1.0 2004/05/13 `ednotes.sty' etc., updated copyright. Renamed as
+ `edtable.sty' for TUGboat article.
+ \RequirePackage{lineno}, changed doc. accordingly.
+ Removed `may be released under different name'.
+v1.10 2004/07/27 Looking for `longtabl.sty' for my Atari!
+ 2004/08/22 Added warning (screen/documentation) concerning
+ ltabptch.sty.
+ 2004/08/23 Added suggestion of option `nolongtablepatch';
+ LPPL v1.3.
+v1.2 2004/08/31 Rearranged preamble concerning maintenance,
+ removed `preliminary release'.
+ 2004/10/06 \newif -> \let...; option `nolongtablepatch';
+ changed documentation accordingly and for
+ loading edtable.sty by lineno/ednotes option;
+ \let\@ET at step@linenumber\stepLineNumber; use
+ \ifLineNumbers.
+ 2004/10/07 Needed version numbers.
+ 2004/10/08 ltabptch warning -> error!
+ 2004/10/11 Disabled \RequirePackage{lineno}[...]; undid
+ the `longtabl.sty' thing from 2004/07/27.
+ 2004/10/12 latex/3730.
+v1.2a 2004/11/07 LPPL v1.3a.
+v1.2b 2005/01/10 Contact via http.
+v1.3b 2005/03/04 Support for environments like `array'
+ environment. The description of `edtable' was
+ wrong in this respect!
+v1.3 2005/03/07 Adaptations in documentation, and extended usage
+ instructions very much, correcting some
+ errors as well. Acknowledgement to M. B.
+v1.3a 2005/03/09 Corrected numbering in `usage'.
+v1.3c 2005/03/15 \@centercr\relax, TODO on math mode.
+ 2005/04/09 `editory' -> `editorial'.
Modified: trunk/Master/texmf-dist/tex/latex/lineno/fnlineno.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex/lineno/fnlineno.sty 2022-12-05 10:28:48 UTC (rev 65203)
+++ trunk/Master/texmf-dist/tex/latex/lineno/fnlineno.sty 2022-12-05 21:23:48 UTC (rev 65204)
@@ -2,37 +2,37 @@
\ProvidesPackage{fnlineno}[2011/01/07 v0.55
numbers to footnote lines (UL)]
-%% Copyright (C) 2010 Uwe Lueck,
-%% http://www.contact-ednotes.sty.de.vu
-%% -- author-maintained in the sense of LPPL below --
+%% Copyright (C) 2010 Uwe Lueck,
+%% http://www.contact-ednotes.sty.de.vu
+%% -- author-maintained in the sense of LPPL below --
%%
-%% This file can be redistributed and/or modified under
-%% the terms of the LaTeX Project Public License; either
+%% This file can be redistributed and/or modified under
+%% the terms of the LaTeX Project Public License; either
%% version 1.3c of the License, or any later version.
%% The latest version of this license is in
%% http://www.latex-project.org/lppl.txt
-%% We did our best to help you, but there is NO WARRANTY.
+%% We did our best to help you, but there is NO WARRANTY.
%%
-%% Please report bugs, problems, and suggestions via
-%%
-%% http://www.contact-ednotes.sty.de.vu
+%% Please report bugs, problems, and suggestions via
%%
-%% {\it This work has been supported
+%% http://www.contact-ednotes.sty.de.vu
+%%
+%% {\it This work has been supported
%% % and is owned %% wrong, owner is RUB -- 2011/02/09
-%% by the Deutsche Forschungsgemeinschaft (DFG),
+%% by the Deutsche Forschungsgemeinschaft (DFG),
%% organized %% 2010/12/18 TODO!?
-%% by Prof.~Dr.\ Dr.\ Christian Tapp
+%% by Prof.~Dr.\ Dr.\ Christian Tapp
%% at Ruhr-Universit\"at Bochum, Germany.}
%% %% 2010/12/18:
%% Christian also has constructed some critical tests.
-%%
+%%
%% === Installing and Calling ===
-%% The file 'fnlineno.sty' is provided ready, installation only requires
-%% putting it somewhere where \TeX\ finds it
-%% (which may need updating the filename data
+%% The file 'fnlineno.sty' is provided ready, installation only requires
+%% putting it somewhere where \TeX\ finds it
+%% (which may need updating the filename data
%% base).\footnote{\url{http://www.tex.ac.uk/cgi-bin/texfaq2html?label=inst-wlcf}}
-%%
-%% As usually, 'fnlineno.sty' is loaded by
+%%
+%% As usually, 'fnlineno.sty' is loaded by
%% % \begin{verbatim}
%% `\usepackage{fnlineno}'
%% % \end{verbatim}
@@ -40,55 +40,55 @@
%%
%% === Limitations ===
%% v0.55 %%% v0.5 %% 2011/02/09
-%% should really work
+%% should really work
%% the way users expect, %% 2011/02/09
%% but please consider:
-%% % In the \strong{present version (v0.4)}, 'flnineno.sty' is just
+%% % In the \strong{present version (v0.4)}, 'flnineno.sty' is just
%% % ``work in progress"---with at least the following issues:
%% \begin{enumerate}
-%% % \item Lines are numbered in an order
-%% % that you may not like, in the presence of
-%% % footnotes.
-%% % Overcoming this failure by automagic
-%% % will be the major further work on the package!
+%% % \item Lines are numbered in an order
+%% % that you may not like, in the presence of
+%% % footnotes.
+%% % Overcoming this failure by automagic
+%% % will be the major further work on the package!
%% % (v0.5!?)
-%% %
-%% % \item The package is not expected to work with 'manyfoot'
+%% %
+%% % \item The package is not expected to work with 'manyfoot'
%% % (neither 'ednotes' ... future work!).
%%
-%% \item Nothing is known about compatibility with
+%% \item Nothing is known about compatibility with
%% packages (other than 'manyfoot' and 'bigfoot')
%% providing footnote features beyond standard \LaTeX.
-%%
-%% \item `\lipsum[<opt-arg>]' in main text produces
+%%
+%% \item `\lipsum[<opt-arg>]' in main text produces
%% a different number of paragraphs ...
-%%
+%%
%% %% 2010/12/18:
-%% % \item `\pagebreak' (without optional argument, or
-%% % `\pagebreak[4]') in footnotes prints footnote parts
+%% % \item `\pagebreak' (without optional argument, or
+%% % `\pagebreak[4]') in footnotes prints footnote parts
%% % (splits) in wrong order.\footnote{TODO:
-%% % (i)~extra case (using flag) in &\output
-%% % with $&\outputpenalty=-10000$;
+%% % (i)~extra case (using flag) in &\output
+%% % with $&\outputpenalty=-10000$;
%% % \emph{or}
%% % (ii)~redefine &\pagebreak in footnotes ...}
%% %% 2010/12/19, "tried" "assumed" 2010/12/21:
-%% \item v0.41 tried supporting `\pagebreak' in footnotes
-%% for manual control of splitting footnotes.
+%% \item v0.41 tried supporting `\pagebreak' in footnotes
+%% for manual control of splitting footnotes.
%% %% 2010/12/20f.:
%% However, it wrongly assumed that `\pagebreak[4]'
-%% forces a footnote split, cf. Section~\ref{sec:sw};
+%% forces a footnote split, cf. Section~\ref{sec:sw};
%% users better still don't use `\pagebreak'
%% in footnotes!
-%%
-%% \item Much of the code is ``guessed" without complete
-%% knowledge of \TeX\ internals and without having
+%%
+%% \item Much of the code is ``guessed" without complete
+%% knowledge of \TeX\ internals and without having
%% tested many possible cases.
%% %% 2010/12/27:
%% \item \emph{Local} switching to ``pagewise" numbering
-%% won't be possible for a while; we rather assume
-%% that you \emph{always} want ``pagewise" numbering.
+%% won't be possible for a while; we rather assume
+%% that you \emph{always} want ``pagewise" numbering.
%%
-%% \item Nothing has been tried to offer choices about the
+%% \item Nothing has been tried to offer choices about the
%% \emph{style} of numbering footnotes.
%% \end{enumerate}
%%
@@ -95,36 +95,36 @@
%% \pagebreak %% 2011/02/09
%% == Implementation ==
%% === Terms ===
-%% ``\strong{OTR}" is short for \textit{``output routine"},
+%% ``\strong{OTR}" is short for \textit{``output routine"},
%% ``\strong{MVL}" is short for \textit{``main vertical list"}.
%% %%% TODO "acro"
%%
%% === Basic Strategy ===
-%% \LaTeX's |\@footnotetext| writes the footnote text into the
-%% insertion register. For numbering the footnote lines,
-%% \emph{we here} do not execute this `\@footnotetext'
-%% immediately after placing |\@footnotemark|,
-%% but postpone its |\insert| a little so it
-%% is executed only after the main text paragraph has been
-%% broken into lines. Right below the line that contains the
-%% footnote mark, a special new ``slot" of the \strong{OTR}
-%% is called that interchanges ``the page so far" with the
-%% footnote text. When the latter has been typeset,
-%% another ``slot" of the OTR puts ``the page so far"
-%% back to the MVL and immediately after that fills the footnote
-%% text as just typeset on the MVL into the `\insert' register.
-%%
-%% Passing footnotes from horizontal mode to vertical mode
-%% resembles 'lineno''s `\PostponeVadjust', but a
+%% \LaTeX's |\@footnotetext| writes the footnote text into the
+%% insertion register. For numbering the footnote lines,
+%% \emph{we here} do not execute this `\@footnotetext'
+%% immediately after placing |\@footnotemark|,
+%% but postpone its |\insert| a little so it
+%% is executed only after the main text paragraph has been
+%% broken into lines. Right below the line that contains the
+%% footnote mark, a special new ``slot" of the \strong{OTR}
+%% is called that interchanges ``the page so far" with the
+%% footnote text. When the latter has been typeset,
+%% another ``slot" of the OTR puts ``the page so far"
+%% back to the MVL and immediately after that fills the footnote
+%% text as just typeset on the MVL into the `\insert' register.
+%%
+%% Passing footnotes from horizontal mode to vertical mode
+%% resembles 'lineno''s `\PostponeVadjust', but a
%% different \strong{list} |\FNLN at list|
-%% must store code
-%% (\textit{a})~for the footnote \strong{mark} and
-%% (\textit{b})~for the footnote \strong{text}.
+%% must store code
+%% (\textit{a})~for the footnote \strong{mark} and
+%% (\textit{b})~for the footnote \strong{text}.
%% %%% (TODO: move this paragraph)
%%
%% === Package Options ===
%% A package option |[check-latex]| %% typo article 2010/12/31
-%% for checking vital \LaTeX\ internals may once be offered
+%% for checking vital \LaTeX\ internals may once be offered
%% (TODO 2010/12/12) ...
\newif\if at FNLN@check@
\DeclareOption{check-latex}{\@FNLN at check@true}
@@ -133,13 +133,13 @@
%% === Footnote Commands ===
%% ==== Standard Footnotes ====
%% The following macro |\FNLN at ltx@fntext| %% more 2010/12/16
-%% is a copy of \LaTeX's `\@footnotetext'
-%% that we are varying. It may be used for a check
-%% if the `\@footnotetext' that 'fnlineno.sty' encounters
+%% is a copy of \LaTeX's `\@footnotetext'
+%% that we are varying. It may be used for a check
+%% if the `\@footnotetext' that 'fnlineno.sty' encounters
%% is the one expected (TODO).
-%% In line numbering mode, this code may never be needed
-%% all at once, rather we will have to see which material
-%% must be used at which point of our unusual way of
+%% In line numbering mode, this code may never be needed
+%% all at once, rather we will have to see which material
+%% must be used at which point of our unusual way of
%% processeing footnotes.
\if at FNLN@check@
\long\def\FNLN at ltx@fntext#1{\insert\footins{%
@@ -158,24 +158,24 @@
\fi
%%
%% ==== Modifying Footnote Commands ====
-%% In order to number |\footnote| lines and make
-%% `\linelabel' available in footnotes, it seems to suffice
-%% (with standard \LaTeX) to \strong{redefine}
+%% In order to number |\footnote| lines and make
+%% `\linelabel' available in footnotes, it seems to suffice
+%% (with standard \LaTeX) to \strong{redefine}
%% the internal |\@footnotetext|.
-%% In line numbering mode, `\@footnotetext' will act as
-%% |\FNLN at text|,
+%% In line numbering mode, `\@footnotetext' will act as
+%% |\FNLN at text|,
%% % \begin{itemize}
-%% % \item[(i)]
+%% % \item[(i)]
%% (\textit{i})~%
%% placing a ``signal" \strong{output penalty}
%% below the current line via `\vadjust' and
-%% % \item[(ii)]
+%% % \item[(ii)]
%% (\textit{ii})~%
-%% appending the footnote text to the
-%% \strong{list} |\FNLN at list| of \strong{footnote texts}.
+%% appending the footnote text to the
+%% \strong{list} |\FNLN at list| of \strong{footnote texts}.
%% % \end{itemize}
-%%
-%% |\FNLN@@text| stores the `\@footnotetext' found,
+%%
+%% |\FNLN@@text| stores the `\@footnotetext' found,
%% we might check if it is `\FNLN at ltx@fntext' ... %% TODO
\let\FNLN@@text\@footnotetext
\def\@footnotetext{%
@@ -184,27 +184,27 @@
\fi}
\def \FNLN at text {% %% 2010/12/31 arg read later
\vadjust{\penalty-\FNLN at M@swap at codepen}%
-%% Standard \LaTeX's `\@footnotetext' expands `\@thefnmark'
-%% to produce the footnote mark at the page bottom,
-%% right after it has been determined for the mark
-%% in the main text. \emph{Here} the footnote text
+%% Standard \LaTeX's `\@footnotetext' expands `\@thefnmark'
+%% to produce the footnote mark at the page bottom,
+%% right after it has been determined for the mark
+%% in the main text. \emph{Here} the footnote text
%% will be typeset only when \emph{other} footnote marks
-%% may have been formed for typesetting the main text
-%% paragraph before.
+%% may have been formed for typesetting the main text
+%% paragraph before.
%% %%% (TODO clearer wording)
-%% In the \strong{footnote list}
+%% In the \strong{footnote list}
%% macro |\FNLN at list|, the (\dqtd{`&\protect'ed})
-%% \emph{current} expansion <mark> of `\@thefnmark'
-%% is stored as an item preceding the footnote text
-%% <text>. One footnote entry in `\FNLN at list'
+%% \emph{current} expansion <mark> of `\@thefnmark'
+%% is stored as an item preceding the footnote text
+%% <text>. One footnote entry in `\FNLN at list'
%% thus has the form \lq`<mark>\@lt<text>\@lt'\rq.
-%% \LaTeX's internal `\g at addto@macro' is used to \emph{append}
-%% an entry to the list (at the right). The OTR will later
-%% take the entries from the left of the list.
-%%
-%% The argument of the auxiliary/temporary `\@tempa'
-%% will contain the footnote text and thus must be able to
-%% carry `\par' tokens. We therefore need a `\long' version of
+%% \LaTeX's internal `\g at addto@macro' is used to \emph{append}
+%% an entry to the list (at the right). The OTR will later
+%% take the entries from the left of the list.
+%%
+%% The argument of the auxiliary/temporary `\@tempa'
+%% will contain the footnote text and thus must be able to
+%% carry `\par' tokens. We therefore need a `\long' version of
%% `\protected at edef':
\let\@@protect\protect
\let\protect\@unexpandable at protect
@@ -212,7 +212,7 @@
\long \edef \@tempa ##1{%
\noexpand\g at addto@macro \noexpand\FNLN at list {%
\@thefnmark \noexpand\@lt ##1\noexpand \@lt}}%
-%% ... issuing
+%% ... issuing
%% \lq`\g at addto@macro\FNLN at list{<mark>\elt<text>\@lt}'\rq\ ...
\@tempa %% reads arg
}
@@ -222,62 +222,62 @@
%% === Output Routines ===
%% ==== 'lineno''s Output Routine ====
%% The following is a copy of 'lineno''s OTR
-%% that we are varying. It may be used for a check
-%% if the OTR that 'fnlineno.sty' encounters
+%% that we are varying. It may be used for a check
+%% if the OTR that 'fnlineno.sty' encounters
%% is the one expected (TODO).
\if at FNLN@check@
\def\FNLN at lno@output {%
\LineNoTest
\if at tempswa
- \ifnum\outputpenalty=-\@Mllbcodepen
- \WriteLineNo
- \else
- \ifnum\outputpenalty=-\@Mppvacodepen
- \PassVadjustList
- \else
- \LineNoLaTeXOutput
- \fi
- \fi
- \else
+ \ifnum\outputpenalty=-\@Mllbcodepen
+ \WriteLineNo
+ \else
+ \ifnum\outputpenalty=-\@Mppvacodepen
+ \PassVadjustList
+ \else
+ \LineNoLaTeXOutput
+ \fi
+ \fi
+ \else
\MakeLineNo
\fi
}
%% The ``signal penalties" used here are
- \mathchardef\FNLN at M@llbl at codepen=11111
- \mathchardef\FNLN at M@ppva at codepen=11112
+ \mathchardef\FNLN at M@llbl at codepen=11111
+ \mathchardef\FNLN at M@ppva at codepen=11112
\fi
-%% Their names should mean ```\linelabel' code penalty" and
+%% Their names should mean ```\linelabel' code penalty" and
%% ```\PostponeVadjust' code penalty."
%%
%% |\TheLineNoLaTeXOutput|:
-%% It turns out to be inconvenient here
-%% that 'lineno' sacrifices access
-%% to the \emph{primitive} `\output' (```\@tempa'";
-%% TODO: auxiliary package before loading 'lineno'!?;
-%% later change 'lineno.sty' indeed).
-%% So to change the OTR we use `\LineNoLaTeXOutput' as a hook
-%% for adding additional cases of `\outputpenalt'ies.
-%% We take a copy of `\LineNoLaTeXOutput' here.
+%% It turns out to be inconvenient here
+%% that 'lineno' sacrifices access
+%% to the \emph{primitive} `\output' (```\@tempa'";
+%% TODO: auxiliary package before loading 'lineno'!?;
+%% later change 'lineno.sty' indeed).
+%% So to change the OTR we use `\LineNoLaTeXOutput' as a hook
+%% for adding additional cases of `\outputpenalt'ies.
+%% We take a copy of `\LineNoLaTeXOutput' here.
\let\TheLineNoLaTeXOutput\LineNoLaTeXOutput
%%
%% ==== Tools for Temporary Parameter Changes ====
-%% |\GStoreReg{<register>}|\quad
+%% |\GStoreReg{<register>}|\quad
%% (or\quad |\GStoreReg<register>|\\[\smallskipamount]
%% when <register> is a single token---\lq`\count0'\rq\
-%% being a counterexample ...)\quad
-%% stores the current content of <register>
-%% (\emph{globally}) as an internal macro so that it can be
-%% restored later by\\[\smallskipamount]
-%% |\RestoreReg{<register>}|\quad
+%% being a counterexample ...)\quad
+%% stores the current content of <register>
+%% (\emph{globally}) as an internal macro so that it can be
+%% restored later by\\[\smallskipamount]
+%% |\RestoreReg{<register>}|\quad
%% \mbox{(or\quad }|\RestoreReg<register>|)\\[\smallskipamount]
-%% or \emph{globally} by\\[\smallskipamount]
+%% or \emph{globally} by\\[\smallskipamount]
%% |\GRestoreReg{<register>}|\quad (|\GRestoreReg<register>|)
%% \\[\smallskipamount]
-%% (The OTR runs in a local group!---Recall that assignments
-%% to ``special dimens"---\TeX book p.\,271---are
-%% automatically global.)
+%% (The OTR runs in a local group!---Recall that assignments
+%% to ``special dimens"---\TeX book p.\,271---are
+%% automatically global.)
%% <register> is something that can be prefixed by `\the'
-%% to read its content and to which you can assign a value
+%% to read its content and to which you can assign a value
%% <value> by \lq<register><value>\rq.
%% (TODO: could also be some `\catcode'!)
%% %% and TODO allow changing name space!
@@ -285,15 +285,15 @@
\expandafter \xdef \csname GS\string#1\endcsname {\the #1}}
\newcommand*{\RestoreReg}[1]{#1\csname GS\string#1\endcsname \relax}
\newcommand*{\GRestoreReg}{\global\RestoreReg}
-%% |\GStoreSetReg{<register>}{<value>}| assigns %%% the new value
-%% <value> to <register> (locally) after executing `\GStoreSet',
-%% |\GStoreGSetReg| does the same \emph{globally}
-%% (and still argument braces aren't needed when a single
-%% token refers to the register).
+%% |\GStoreSetReg{<register>}{<value>}| assigns %%% the new value
+%% <value> to <register> (locally) after executing `\GStoreSet',
+%% |\GStoreGSetReg| does the same \emph{globally}
+%% (and still argument braces aren't needed when a single
+%% token refers to the register).
\newcommand*{\g at storesetreg}[3]{\GStoreReg{#2}#1#2#3\relax}
\newcommand*{\GStoreSetReg} {\g at storesetreg\relax}
\newcommand*{\GStoreGSetReg}{\g at storesetreg\global}
-%% (These preliminaries might go into an own new package, TODO!
+%% (These preliminaries might go into an own new package, TODO!
%% + loop on list of <register>s ...) %% 2010/12/19
%%
%% ==== The basic hook ====
@@ -301,15 +301,15 @@
%% We use two more penalties triggering the ``MVL swaps:"
\mathchardef\FNLN at M@swap at codepen =11113
\mathchardef\FNLN at M@insert at codepen=11114
-%% v0.41 deals with |\pagebreak| in footnote texts,
-%% using a flag |\if at FNLN@sw@| that must be set globally.
+%% v0.41 deals with |\pagebreak| in footnote texts,
+%% using a flag |\if at FNLN@sw@| that must be set globally.
%% %% 2011/01/07:
-%% It turned out not to work properly; however, the new
-%% switch has served a different purpose for ``continuous
+%% It turned out not to work properly; however, the new
+%% switch has served a different purpose for ``continuous
%% line numbering," cf. section~\ref{sec:cont}.
\newif\if at FNLN@sw@ \global\@FNLN at sw@false %% v0.41
-%% When a `\pagebreak' triggers the OTR while typesetting
-%% the footnote text, the page content is collected
+%% When a `\pagebreak' triggers the OTR while typesetting
+%% the footnote text, the page content is collected
%% in a box |\FNLN at holdft|:
\newsavebox\FNLN at holdft %% v0.41
%% Using |\LineNoLaTeXOutput| for hooking into the OTR:
@@ -323,17 +323,17 @@
\if at FNLN@sw@ %% v0.41
% \showthe\outputpenalty %% 2010/12/20
\global\setbox \FNLN at holdft \vbox{%
- \unvbox\FNLN at holdft
+ \unvbox\FNLN at holdft
%% %% moved here, clarified 2010/12/21:
-%% TODO from v0.41: `\pagebreak[4]' does not seem to force (reliably)
-%% splitting a footnote; if the footnote is not split here,
+%% TODO from v0.41: `\pagebreak[4]' does not seem to force (reliably)
+%% splitting a footnote; if the footnote is not split here,
%% at present the `\baselineskip' is lost,
-%% see the footnote paragraph starting
+%% see the footnote paragraph starting
%% with \qtd{C} in `edfndemo.pdf' as of 2010/12/21.
%% We would need some measuring ... `\pagebreak'
%% might be redefined ... resembling \LaTeX's `\@specialoutput'!
- \unvbox\@cclv
-%% TODO same problem here, see the footnote paragraph starting
+ \unvbox\@cclv
+%% TODO same problem here, see the footnote paragraph starting
%% with \qtd{D} in `edfndemo.pdf' as of 2010/12/21.
\penalty\outputpenalty}%
%% TODO reset page book-keeping!? %% v0.41
@@ -343,17 +343,17 @@
\fi
\fi
}
-%% \strong{An idea:}\quad Instead of so many `\ifnum', use
+%% \strong{An idea:}\quad Instead of so many `\ifnum', use
%% \[`\csname<chars>\the\outputpenalty\endcsname'\]
-%% ... in 'lineno.sty', when you really have a broad
-%% range of `\outputpenalties' useful to be
+%% ... in 'lineno.sty', when you really have a broad
+%% range of `\outputpenalties' useful to be
%% described by `\ifnum' range checks ...
%%
%% ==== Typesetting the Footnote Text ====
-%% |\SwapFootnoteMain| is the slot of the OTR that our
-%% modified `\@footnotetext' calls with
+%% |\SwapFootnoteMain| is the slot of the OTR that our
+%% modified `\@footnotetext' calls with
%% $`\outputpenalty'=-`\FNLN at M@swap at codepen'$.
-%% The ``column so far" is stored in a new box register
+%% The ``column so far" is stored in a new box register
%% |\FLNL at holdcol|.
\newsavebox\FNLN at holdcol
\newcommand*{\SwapFootnoteMain}{%
@@ -360,28 +360,28 @@
\global \setbox\FNLN at holdcol \vbox{\unvbox\@cclv}%
%% (... cf. `\@holdpg' in \LaTeX.)
%%
-%% The entire text of a footnote is typeset on top of
-%% the MVL. `\vsize' is maximized temporarily to avoid
-%% that the footnote text is broken across pages.
+%% The entire text of a footnote is typeset on top of
+%% the MVL. `\vsize' is maximized temporarily to avoid
+%% that the footnote text is broken across pages.
\GStoreGSetReg\vsize\maxdimen
%% However, the user may want to use `\pagebreak'
-%% in a footnote in order to control manually where
-%% a ``long" footnote is split. v0.41 tries to support
+%% in a footnote in order to control manually where
+%% a ``long" footnote is split. v0.41 tries to support
%% this:
\global\@FNLN at sw@true %% v0.41
%% ... cf. Section~\ref{sec:sw}.
%%
-%% There shouldn't be any `\topskip', the space
+%% There shouldn't be any `\topskip', the space
%% on top of a footnote is controlled by `\footnotesep'
%% entirely:
\GStoreGSetReg\topskip\z at skip
-%% (`\nointerlineskip' as well as setting `\topskip'
+%% (`\nointerlineskip' as well as setting `\topskip'
%% locally instead fails ... according to `\showlists' ...)
%%
-%% Resetting |\pagegoal|
-%% (why doesn't it switch to $`\vsize'=`\maxdimen'$ automatically?),
-%% |\pagetotal|, and the other ``special dimens"
-%% (\TeX book p.\,271; rather experimental ...
+%% Resetting |\pagegoal|
+%% (why doesn't it switch to $`\vsize'=`\maxdimen'$ automatically?),
+%% |\pagetotal|, and the other ``special dimens"
+%% (\TeX book p.\,271; rather experimental ...
%% I think it is important to restore them later ...)
\GStoreSetReg\pagegoal \vsize
\GStoreSetReg\pagetotal\z@
@@ -395,27 +395,27 @@
%% such as font:
\reset at font\footnotesize
\interlinepenalty\interfootnotelinepenalty
-%% \LaTeX's `split' things here are relevant at
+%% \LaTeX's `split' things here are relevant at
%% `\insert\footins' only: (TODO!?)
% \splittopskip\footnotesep
% \splitmaxdepth \dp\strutbox \floatingpenalty \@MM
\hsize\columnwidth \@parboxrestore
%% The previous lines were from \LaTeX's `\@footnotetext'.
-%% Now we need to restore the `\@thefnmark' that belongs
-%% to the current footnote text. We use a macro that
-%% tears two items from |\FNLN at list| and executes the
+%% Now we need to restore the `\@thefnmark' that belongs
+%% to the current footnote text. We use a macro that
+%% tears two items from |\FNLN at list| and executes the
%% rest of \LaTeX's `\@footnotetext':
\expandafter \FNLN at typeset \FNLN at list \@@
% \showthe\vsize
-%% ... so a `\vsize' assignment without `\global'
-%% is noted here, and an analogous `\topskip' assignment
+%% ... so a `\vsize' assignment without `\global'
+%% is noted here, and an analogous `\topskip' assignment
%% is not!? TODO ...
}
%% |\FNLN at typeset| first removes something %% reworded 2010/12/26
%% from the list of footnotes, similarly to \LaTeX's |\@xnext|
-%% and 'lineno''s `\@LN at xnext', then executes a
-%% remaining portion of \LaTeX's `\@footnotetext'.
-%% The footnote text may contain `\par' tokens,
+%% and 'lineno''s `\@LN at xnext', then executes a
+%% remaining portion of \LaTeX's `\@footnotetext'.
+%% The footnote text may contain `\par' tokens,
%% so the definition must be `\long':
\long\def \FNLN at typeset #1\@lt #2\@lt #3\@@{%
\gdef\FNLN at list{#3}%
@@ -428,11 +428,11 @@
%% We insert starting the 'lineno' settings ...
\linenumbers
\setfootnotelinenumbers %% 2010/12/25
-%% ... \LaTeX\ again (v0.41 exports dealing with
-%% closing `\par' to `finstrut.sty'):
+%% ... \LaTeX\ again (v0.41 exports dealing with
+%% closing `\par' to `finstrut.sty'):
\@makefntext{%
\rule\z@\footnotesep\ignorespaces
-%% We replace `#1' by `#2\par' (`\linenumberpar'),
+%% We replace `#1' by `#2\par' (`\linenumberpar'),
%% so we really need `finstrut.sty':
#2\par
\@finalstrut\strutbox}%
@@ -441,25 +441,25 @@
\penalty-\FNLN at M@insert at codepen
}
\RequirePackage{finstrut}
-%%
+%%
%% ==== &\insert\ the Footnote Text ====
%% |\InsertFootnote| is the slot of the OTR that executes
%% `\insert\footins' with the numbered footnote text.
-%% The ``column so far" stored in `\FNLN at holdcol'
-%% is put onto the top of the MVL, and then parts of
+%% The ``column so far" stored in `\FNLN at holdcol'
+%% is put onto the top of the MVL, and then parts of
%% \LaTeX's `\@footnotetext' are performed that haven't
-%% been done earlier, applied to the footnote text
-%% that the OTR should have found in `\box255'.
-%% Before however, the previous `\topskip', `\vsize', and the
+%% been done earlier, applied to the footnote text
+%% that the OTR should have found in `\box255'.
+%% Before however, the previous `\topskip', `\vsize', and the
%% `\page'... book-keeping parameters are restored:
\newcommand*{\InsertFootnote}{%
\GRestoreReg\topskip \GRestoreReg\vsize
-%% (... \emph{global} restoring of `\vsize' proved vital with
+%% (... \emph{global} restoring of `\vsize' proved vital with
%% 'edfndemo' 2010/12/17 ...)
\RestoreReg \pagegoal \RestoreReg\pagetotal
\RestoreReg \pagestretch
- \RestoreReg \pagefilstretch
- \RestoreReg \pagefillstretch
+ \RestoreReg \pagefilstretch
+ \RestoreReg \pagefillstretch
\RestoreReg \pagefilllstretch
\RestoreReg \pageshrink \RestoreReg\pagedepth
\unvbox\FNLN at holdcol
@@ -478,218 +478,218 @@
%% === ``Continuous'' Numbering ===
%% \label{sec:cont}
%% ==== Goal ====
-%% With v0.5, for the first time we try to get a
+%% With v0.5, for the first time we try to get a
%% ``pagewise" numbering such that, if a main text line
-%% has a footnote,
-%% (\textit{i})~its printed number is just the natural
-%% successor of the printed number of the previous main
-%% text line
-%% (instead of continuing previous numbering with the
-%% lines of the footnote first),
-%% and (\textit{ii})~the printed numbers of footnote lines
+%% has a footnote,
+%% (\textit{i})~its printed number is just the natural
+%% successor of the printed number of the previous main
+%% text line
+%% (instead of continuing previous numbering with the
+%% lines of the footnote first),
+%% and (\textit{ii})~the printed numbers of footnote lines
%% just continue the printed numbers of the main text lines.
-%% This ``obvious'' desirement is not easy to achieve;
-%% already pagewise numbering of main text lines,
-%% without numbering footnote lines, has been somewhat
+%% This ``obvious'' desirement is not easy to achieve;
+%% already pagewise numbering of main text lines,
+%% without numbering footnote lines, has been somewhat
%% ingenious.
%%
%% ==== How to Number Lines Pagewise ====
%% The basic idea of 'lineno''s pagewise numbering is:
%% \begin{enumerate}
-%% \item Each numbered line of the document is identified
+%% \item Each numbered line of the document is identified
%% by a unique counter value, an ``absolute" number.
-%% \item For each page (and column), the range of absolute
-%% line numbers occurring on them is recorded
-%% (or actually: the first and the last number).
-%% \item The ``public," ``human-readable" (``pagewise")
-%% format of a given absolute line number $l$ is generated by
-%% (\textit{i})~finding the page (and column) with
-%% first number $n$ and last number $k$ such that
-%% $n\leq l\leq k$,
+%% \item For each page (and column), the range of absolute
+%% line numbers occurring on them is recorded
+%% (or actually: the first and the last number).
+%% \item The ``public," ``human-readable" (``pagewise")
+%% format of a given absolute line number $l$ is generated by
+%% (\textit{i})~finding the page (and column) with
+%% first number $n$ and last number $k$ such that
+%% $n\leq l\leq k$,
%% (\textit{ii}) ``printing" $l-n+1$ in ``columnwise"
-%% mode, otherwise $l-m+1$ where $m$ is the first
-%% absolute line number in the left-hand column of the
+%% mode, otherwise $l-m+1$ where $m$ is the first
+%% absolute line number in the left-hand column of the
%% same page.
%% \end{enumerate}
-%% \strong{Generating} the ``pagewise" representation for a
-%% given absolute line number $l$ thus may be summarized as
-%% \emph{finding the corresponding \emph{\strong{offset}} value}
+%% \strong{Generating} the ``pagewise" representation for a
+%% given absolute line number $l$ thus may be summarized as
+%% \emph{finding the corresponding \emph{\strong{offset}} value}
%% to be subtracted ($n$, $n+1$, $m$, or $m+1$ ...).
%%
-%% When \emph{footnote} lines are to be numbered as well,
-%% a little problem is the order in which main text and
-%% footnote lines increment the absolute counter.
-%% 'lineno''s mechanism for this is started immediately
-%% after a paragraph has been broken into lines.
-%% Each line of the paragraph then calls a macro
-%% generating the line number. 'fnlineno' now interrupts
-%% numbering of main text lines at a line issuing a footnote.
-%% The footnote text is typeset, including numbering its
-%% lines at each end of a footnote paragraph. When the
-%% footnote text has been sent into the `\insert' register,
-%% numbering of main text lines is resumed.
-%%
-%% Up to v0.4 (a development version), we used the \emph{same}
-%% absolute counter for main text and footnote lines.
-%% When a page $p$ has more than one main text line and the first
-%% one has a long footnote continued on the next page~$p+1$,
-%% there is no ``range" of absolute line numbers
-%% characterizing page~$p$ any more,
-%% because the greatest absolute line number of page~$p$
-%% exceeds the absolute line numbers of the footnote continued
+%% When \emph{footnote} lines are to be numbered as well,
+%% a little problem is the order in which main text and
+%% footnote lines increment the absolute counter.
+%% 'lineno''s mechanism for this is started immediately
+%% after a paragraph has been broken into lines.
+%% Each line of the paragraph then calls a macro
+%% generating the line number. 'fnlineno' now interrupts
+%% numbering of main text lines at a line issuing a footnote.
+%% The footnote text is typeset, including numbering its
+%% lines at each end of a footnote paragraph. When the
+%% footnote text has been sent into the `\insert' register,
+%% numbering of main text lines is resumed.
+%%
+%% Up to v0.4 (a development version), we used the \emph{same}
+%% absolute counter for main text and footnote lines.
+%% When a page $p$ has more than one main text line and the first
+%% one has a long footnote continued on the next page~$p+1$,
+%% there is no ``range" of absolute line numbers
+%% characterizing page~$p$ any more,
+%% because the greatest absolute line number of page~$p$
+%% exceeds the absolute line numbers of the footnote continued
%% on page~$p+1$.
%%
-%% 'lineno''s procedure can be revived by numbering
-%% main text lines and footnote lines independently
-%% from each other. We use \emph{two} absolute counters,
-%% one is incremented with main text lines only,
-%% the other with footnote lines only.
-%% Numbering of main text lines just will not be affected
-%% by numbering of the footnote lines.
+%% 'lineno''s procedure can be revived by numbering
+%% main text lines and footnote lines independently
+%% from each other. We use \emph{two} absolute counters,
+%% one is incremented with main text lines only,
+%% the other with footnote lines only.
+%% Numbering of main text lines just will not be affected
+%% by numbering of the footnote lines.
%%
-%% Almost the same will hold for footnote lines.
-%% Each page (and column) will have a characteristic
-%% ``range" of absolute footnote line numbers $\{n,\dots,k\}$.
-%% The only notable difference will be that for footnote line~$l$
-%% we print $(l-n+1)+(K-N+1) = (K+l)-(N+n)+2$ instead of
+%% Almost the same will hold for footnote lines.
+%% Each page (and column) will have a characteristic
+%% ``range" of absolute footnote line numbers $\{n,\dots,k\}$.
+%% The only notable difference will be that for footnote line~$l$
+%% we print $(l-n+1)+(K-N+1) = (K+l)-(N+n)+2$ instead of
%% $l-n+1$---where $\{N,\dots,K\}$ is the range of \emph{main text}
-%% line numbers of the page (and column).
-%%
-%% The previous discussion of \strong{generating} the printed
-%% line number from its absolute version
-%% has assumed that corresponding \strong{offset} values
-%% have been given somehow, or that the ``line number ranges"
-%% for pages are known from somewhere.
-%% In fact, these ranges are \strong{computed} at the
-%% \strong{start} of a \LaTeX\ run \emph{before} typesetting,
-%% when reading the `.aux' file for the first
-%% time. They are used in the entire document.
-%% While typesetting, each numbered line of main text leaves
-%% a record of its absolute number and page number in the new
-%% version of the `.aux' file that the run creates,
-%% a two-parameter macro `\@LN'. With 'fnlineno.sty',
-%% there will be new `\@FLN' entries of the same type.
-%% These `.aux' entries are used for building
-%% the page range data for the next run.
-%% When the document source has been changed, at least
-%% \emph{two runs} will usually be required
-%% to get correct line numbers in page margins,
-%% and \emph{another} run will be needed so references
-%% to line numbers by `\ref' and `\linelabel' are correct.
-%%
+%% line numbers of the page (and column).
+%%
+%% The previous discussion of \strong{generating} the printed
+%% line number from its absolute version
+%% has assumed that corresponding \strong{offset} values
+%% have been given somehow, or that the ``line number ranges"
+%% for pages are known from somewhere.
+%% In fact, these ranges are \strong{computed} at the
+%% \strong{start} of a \LaTeX\ run \emph{before} typesetting,
+%% when reading the `.aux' file for the first
+%% time. They are used in the entire document.
+%% While typesetting, each numbered line of main text leaves
+%% a record of its absolute number and page number in the new
+%% version of the `.aux' file that the run creates,
+%% a two-parameter macro `\@LN'. With 'fnlineno.sty',
+%% there will be new `\@FLN' entries of the same type.
+%% These `.aux' entries are used for building
+%% the page range data for the next run.
+%% When the document source has been changed, at least
+%% \emph{two runs} will usually be required
+%% to get correct line numbers in page margins,
+%% and \emph{another} run will be needed so references
+%% to line numbers by `\ref' and `\linelabel' are correct.
+%%
%% ==== Summary of Changes ====
-%% Variants of 'lineno.sty''s code for ``pagewise"
+%% Variants of 'lineno.sty''s code for ``pagewise"
%% numbering are following. Sometimes we generalize
-%% `pagewise' stuff from 'lineno' and re-implement pagewise
-%% numbering of main text lines as a special case,
+%% `pagewise' stuff from 'lineno' and re-implement pagewise
+%% numbering of main text lines as a special case,
%% the other special case being numbering of footnote lines.
-%%
+%%
%% Five things need modifications:
%% \begin{description}
-%% \item[Building page info macros:]
-%% Processing `\@LN' and `\@FLN' `.aux' entries will
-%% use shared building macros, the difference is
-%% obtained by switching \strong{name spaces}.
-%% (It may be notable that a page may get one
-%% info macro for main text and another for
+%% \item[Building page info macros:]
+%% Processing `\@LN' and `\@FLN' `.aux' entries will
+%% use shared building macros, the difference is
+%% obtained by switching \strong{name spaces}.
+%% (It may be notable that a page may get one
+%% info macro for main text and another for
%% footnote text, if it contains footnote text.)
%% \item[Logging:]
-%% While typesetting, the shared logging macro
-%% is switched to write either `\@LN' or `\@FLN'
-%% to the `.aux' file. Also, `\c at linenumber'
-%% may refer to either the main text or to the
-%% footnote text counter.
+%% While typesetting, the shared logging macro
+%% is switched to write either `\@LN' or `\@FLN'
+%% to the `.aux' file. Also, `\c at linenumber'
+%% may refer to either the main text or to the
+%% footnote text counter.
%% \item[Generating ``pagewise" format:]
-%% The choice of `\c at linenumber' also determines
-%% which counter is incremented, and again
-%% name spaces for page info macros are switched.
-%% For footnote lines,
-%% a tail macro for adding the number of main text lines
+%% The choice of `\c at linenumber' also determines
+%% which counter is incremented, and again
+%% name spaces for page info macros are switched.
+%% For footnote lines,
+%% a tail macro for adding the number of main text lines
%% will be activated.
%% \item[Referencing:]
%% The `.aux' file may have entries from `\linelabel'
%% containing large numbers from an ``absolute" counter.
-%% In generating the ``human-readable" number,
-%% it must be known whether it is a main text or a
-%% footnote line number.
+%% In generating the ``human-readable" number,
+%% it must be known whether it is a main text or a
+%% footnote line number.
%% %% 2010/12/28:
-%% An additional complication is referring to a
-%% main text line from a footnote and vice versa---thinking
+%% An additional complication is referring to a
+%% main text line from a footnote and vice versa---thinking
%% of global changes in generating the number.
-%% Or even think of the case referring from unnumbered text
+%% Or even think of the case referring from unnumbered text
%% to numbered text!
-%% (I have wondered before if the entry couldn't be
+%% (I have wondered before if the entry couldn't be
%% the ready human-readable number, TODO!)
%% %% 2010/12/27:
%% \item[Lists of ``vertical tasks":]
-%% 'lineno.sty' (v4) has introduced two lists of
+%% 'lineno.sty' (v4) has introduced two lists of
%% tasks that were issued in horizontal mode
-%% but only can be completed after breaking a paragraph
-%% into lines: one for `\linelabel's and one for `\vadjust'
-%% items that must wait until the line number has been
-%% attached. It is essential that the tasks are processed
-%% in the same order in vertical mode as they were
-%% issued in horizontal mode. As we are now interrupting
-%% processing of main text paragraphs for processing
-%% footnotes, tasks for footnote text must be lined up
-%% in separate lists than tasks for main text.
-%% This is indeed essential for the previous issue
-%% of getting `\linelabel' work in footnotes as well
+%% but only can be completed after breaking a paragraph
+%% into lines: one for `\linelabel's and one for `\vadjust'
+%% items that must wait until the line number has been
+%% attached. It is essential that the tasks are processed
+%% in the same order in vertical mode as they were
+%% issued in horizontal mode. As we are now interrupting
+%% processing of main text paragraphs for processing
+%% footnotes, tasks for footnote text must be lined up
+%% in separate lists than tasks for main text.
+%% This is indeed essential for the previous issue
+%% of getting `\linelabel' work in footnotes as well
%% as in main text.
%% \end{description}
-%%
+%%
%% ==== Info Building ====
-%% % These macros
+%% % These macros
%% |\@LN|, |\@FLN|, and |\@FNLN|
-%% are processed at reading the `.aux' file before typesetting only.
-%% The \strong{interface} to \strong{generating}
+%% are processed at reading the `.aux' file before typesetting only.
+%% The \strong{interface} to \strong{generating}
%% ``pagewise" and footnote line numbers just are |\LN at Pfirst|
-%% and |\FLN at Pfirst|, eventually pointing to the first page/column
+%% and |\FLN at Pfirst|, eventually pointing to the first page/column
%% with numbered main text lines or footnote lines, resp.
\def \FLN at Pfirst {\nextLN\relax}
-%% This initialization of `\FLN at Pfirst' is just the same
-%% as the one of `\LN at Pfirst' in 'lineno.sty';
-%% their expansions are changed as soon
+%% This initialization of `\FLN at Pfirst' is just the same
+%% as the one of `\LN at Pfirst' in 'lineno.sty';
+%% their expansions are changed as soon
%% as such a page is found, replacing the `\relax' by the
-%% corresponding page info macro.
-%%
-%% `\LN at Pfirst' and `\FLN at Pfirst' are passed to
+%% corresponding page info macro.
+%%
+%% `\LN at Pfirst' and `\FLN at Pfirst' are passed to
%% |\testFirstNumberedPage| via the hook |\FNLN at first@numbered|
%% that by default is the same as `\LN at first':
\def \FNLN at first@numbered {\LN at Pfirst}
%% (oh, it must be `\def' here to recognize the change ...).
-%% This must be changed by `\setfootnotelinenumbers'
-%% (`\let' then, as when called the change will have happened).
+%% This must be changed by `\setfootnotelinenumbers'
+%% (`\let' then, as when called the change will have happened).
%%
-%% Moreover, they are passed to |\NumberedPageCache|
-%% (the page info macro where a search starts,
-%% ``current" page/column) as its initialization;
-%% the ``generating" macros then change the
+%% Moreover, they are passed to |\NumberedPageCache|
+%% (the page info macro where a search starts,
+%% ``current" page/column) as its initialization;
+%% the ``generating" macros then change the
%% latter macro following `\nextLN' in the page info macros.
%%
-%% In this sense, no other ``name space switching" is needed
+%% In this sense, no other ``name space switching" is needed
%% for communication with other functions.
-%%
+%%
%% 'lineno.sty' has changed |\LastNumberedPage| globally ...
-%% the last page with numbered \emph{footnote} lines
-%% may well be another one than the last page with
-%% numbered \emph{main} text lines ...
+%% the last page with numbered \emph{footnote} lines
+%% may well be another one than the last page with
+%% numbered \emph{main} text lines ...
%% But fortunately, also `\LastNumberedPage'
%% is needed in reading the `.aux' before typesetting only
%% (`\@onlypreamble' is \LaTeX's disabling command):
\@onlypreamble\LastNumberedPage
-%% In 'lineno.sty', we have `\def\LastNumberedPage{first}'.
-%% We need the same for the footnote variant |\FNLN at last@numbered|
-%% (to be handled globally!):
+%% In 'lineno.sty', we have `\def\LastNumberedPage{first}'.
+%% We need the same for the footnote variant |\FNLN at last@numbered|
+%% (to be handled globally!):
\global \let \FNLN at last@numbered \LastNumberedPage
\@onlypreamble \FNLN at last@numbered
%% |\@FNLN{<names>}<last-numbered>{<line>}{<page>}|
%% \\[\smallskipamount]
-%% generalizes 'lineno.sty''s `\@LN{<line>}{<page>}'
-%% to re-implement it.
-%% There is an additional parameter argument <names>
+%% generalizes 'lineno.sty''s `\@LN{<line>}{<page>}'
+%% to re-implement it.
+%% There is an additional parameter argument <names>
%% for choosing name spaces
-%% and a parameter <last-numbered> for choosing the macro
+%% and a parameter <last-numbered> for choosing the macro
%% storing the ``last numbered page."
%% (An argument without braces expects a macro name.)
\newcommand* \@FNLN [4]{{%
@@ -698,17 +698,17 @@
\csname #1O#4\endcsname
{#3}{#4}{#1}{#2}}}
\@onlypreamble\@FNLN
-%% As in 'lineno.sty' `\@LN' calls `\@@LN', a new variant
+%% As in 'lineno.sty' `\@LN' calls `\@@LN', a new variant
%% of `\@@LN' is called by `\@FLN' here, but it gets one
-%% additional parameter for passing <names>
-%% and another for passing <last-numbered> from `\@FLN'.
-%% So the new syntax is\\[\smallskipamount]
+%% additional parameter for passing <names>
+%% and another for passing <last-numbered> from `\@FLN'.
+%% So the new syntax is\\[\smallskipamount]
%% |\@@LN<info><first-page-line>{<line>}{<page>}{<names>}<last-numbered>|:
-\renewcommand* \@@LN [6]{%
+\renewcommand* \@@LN [6]{%
\ifx#1\relax
\ifx#2\relax\gdef#2{#3}\fi
- \expandafter\@@@LN\csname #5#6\endcsname#1%
- \xdef#1{\lastLN{#3}\firstLN{#3}%
+ \expandafter\@@@LN\csname #5#6\endcsname#1%
+ \xdef#1{\lastLN{#3}\firstLN{#3}%
\pageLN{#4}{\@LN at column}{#2}\nextLN\relax}%
\else
\def\lastLN##1{\noexpand\lastLN{#3}}%
@@ -717,54 +717,54 @@
\xdef#6{#4C\@LN at column}}
\@onlypreamble\@@LN
%% 'lineno.sty''s |\@@@LN| does not need any adjustment.
-%%
-%% 'lineno.sty''s |\@LN{<line>}{<page>}| is reimplemented as
-\def \@LN {\@FNLN{LN at P}\LastNumberedPage}
-%% ---so `\@LN' really does the same as before, including name spaces.
-%%
-%% |\@FLN{<line>}{<page>}| is the other special case of the
-%% new `\@FNLN'---an `F' precedes the earlier names, and
+%%
+%% 'lineno.sty''s |\@LN{<line>}{<page>}| is reimplemented as
+\def \@LN {\@FNLN{LN at P}\LastNumberedPage}
+%% ---so `\@LN' really does the same as before, including name spaces.
+%%
+%% |\@FLN{<line>}{<page>}| is the other special case of the
+%% new `\@FNLN'---an `F' precedes the earlier names, and
%% |\FNLN at last@numbered| is the storing macro initialized above:
\def \@FLN {\@FNLN{FLN at P}\FNLN at last@numbered}
-%% For logging, we make both unexpandable: %% 2010/12/27
+%% For logging, we make both unexpandable: %% 2010/12/27
% \AtBeginDocument{\let\@LN\relax \let\@FLN\relax}
%% ... but this way nothing appears in the file!? TODO ...
\@onlypreamble\@LN \@onlypreamble\@FLN
-%% For reading the `.aux' finally, we do what
+%% For reading the `.aux' finally, we do what
%% 'lineno' does with `\@LN':
\AtEndDocument{\let\@FLN\@gobbletwo}
%%
-%% ==== Tool for Reusing Global Operations with Macros ====
+%% ==== Tool for Reusing Global Operations with Macros ====
%% %% 2010/12/28
-%% 'lineno.sty' v4 provides list handling (changing lists globally)
-%% and global changes of `\NumberedPageCache'.
-%% We want to use them in ``main text" mode
-%% as well as in ``footnote" mode.
-%% To use such an operation on <ln-macro> for <fln-macro>,
-%% we `\global\let<ln-macro><fln-macro>', apply the operations,
-%% and finally `\global\let<fln-macro><ln-macro>'.
-%% However, we are not only interested in how <fln-macro>
-%% is changed this way, rather <ln-macro> also is used as input
-%% for some operations, and we can choose which <fln-macro>
-%% should be used as input. To switch from working on/with
-%% <fln-1> to <fln-2> using <ln-macro> with an option
-%% to use <fln-1> later again, a tool
-%% |\GStoreUse<ln-macro><fln-1><fln-2>| is provided
+%% 'lineno.sty' v4 provides list handling (changing lists globally)
+%% and global changes of `\NumberedPageCache'.
+%% We want to use them in ``main text" mode
+%% as well as in ``footnote" mode.
+%% To use such an operation on <ln-macro> for <fln-macro>,
+%% we `\global\let<ln-macro><fln-macro>', apply the operations,
+%% and finally `\global\let<fln-macro><ln-macro>'.
+%% However, we are not only interested in how <fln-macro>
+%% is changed this way, rather <ln-macro> also is used as input
+%% for some operations, and we can choose which <fln-macro>
+%% should be used as input. To switch from working on/with
+%% <fln-1> to <fln-2> using <ln-macro> with an option
+%% to use <fln-1> later again, a tool
+%% |\GStoreUse<ln-macro><fln-1><fln-2>| is provided
%% (should render later switchings much better readable):
\newcommand* \GStoreUse [3]{\global\let#2#1\global\let#1#3}
-%% I.e., current content of #1 is stored in #2, then
+%% I.e., current content of #1 is stored in #2, then
%% #1 attains the content of #3.
-%%
+%%
%% ==== General Settings for Typesetting Stage ====
%% % %% 2011/01/01: %% 2011/01/02: wrong!
-%% % With 'ednotes', it turns out that the heading is not quite
-%% % correct, 'ednotes'' special `\newlabel' mechanism evaluates
-%% % `\getpagewiselinelabel' already for building its note
-%% % info macros at the first reading of the `.aux' file.
+%% % With 'ednotes', it turns out that the heading is not quite
+%% % correct, 'ednotes'' special `\newlabel' mechanism evaluates
+%% % `\getpagewiselinelabel' already for building its note
+%% % info macros at the first reading of the `.aux' file.
%%
%% %% 2010/12/27:
-%% Oh my dear, it seems that all the switching
-%% for the footnote variant of `pagewise' must be global
+%% Oh my dear, it seems that all the switching
+%% for the footnote variant of `pagewise' must be global
%% (I can't find something useful using `\aftergroup' quickly).
%% Therefore, I render 'lineno''s |\setpagewisenumbers|
%% acting globally:
@@ -775,16 +775,16 @@
}
%% I just force this, hehe ...
\setpagewiselinenumbers
-%% As a counterpart to `\c at pagelinenumber',
-%% |\c at footnotelinenumber| is reserved for the
+%% As a counterpart to `\c at pagelinenumber',
+%% |\c at footnotelinenumber| is reserved for the
%% absolute footnote line numbers:
\newcount\c at footnotelinenumber
%% %% 2011/01/01 severe-bug fix, why didn't show up?:
-%% |\FNLN@@cache| stores `\NumberedPageCache'
+%% |\FNLN@@cache| stores `\NumberedPageCache'
%% as from ``main" mode:
\let \FNLN@@cache \NumberedPageCache
-%% |\FNLN at cache| stores `\NumberedPageCache'
-%% as from ``footnote" mode; its initial content is the
+%% |\FNLN at cache| stores `\NumberedPageCache'
+%% as from ``footnote" mode; its initial content is the
%% counterpart or analogue to `\LN at Pfirst':
\def \FNLN at cache {\FLN at Pfirst}
%% %% 2010/12/28:
@@ -802,40 +802,40 @@
\global\let \FNLN at vadjusts \@empty
%% %% separation for referencing 2010/12/28:
%% Settings for footnote line numbers first resemble
-%% `\setpagewiselinenumbers'; but more changes
-%% are needed, and results from main text numbering
-%% must be stored.
-%% Some of the settings are needed \emph{locally} for
-%% generating numbers for labels, collected in
+%% `\setpagewiselinenumbers'; but more changes
+%% are needed, and results from main text numbering
+%% must be stored.
+%% Some of the settings are needed \emph{locally} for
+%% generating numbers for labels, collected in
%% |\setgetfootnotelinenumbers|; for this purpose
%% nothing must be stored explicitly:
-\newcommand* \setgetfootnotelinenumbers {%
+\newcommand* \setgetfootnotelinenumbers {%
%% Change of `\theLineNumber' is omitted as we are \emph{reading},
-%% not writing a label.
+%% not writing a label.
\let\c at linenumber\c at footnotelinenumber
% \let\makeLineNumber\makeFootnoteLineNumber
%% But in fact, |\makeFootnoteLineNumber| and
-%% |\makePagewiseLineNumber| will be the same.
-%% The difference is made by the choice of
-%% |\FNLN at first@numbered| and |\NumberedPageCache|
-%% for the line range searches.
+%% |\makePagewiseLineNumber| will be the same.
+%% The difference is made by the choice of
+%% |\FNLN at first@numbered| and |\NumberedPageCache|
+%% for the line range searches.
\let \FNLN at first@numbered \FLN at Pfirst
\let \FNLN at finish \FNLN at add
}
-%% |\setfootnotelinenumbers| performs all the settings
-%% for typesetting footnotes in line numbering mode
-%% \emph{globally},
+%% |\setfootnotelinenumbers| performs all the settings
+%% for typesetting footnotes in line numbering mode
+%% \emph{globally},
%% including storing results from typesetting main text:
-\newcommand* \setfootnotelinenumbers {%
+\newcommand* \setfootnotelinenumbers {%
\globaldefs\@ne
%% The previous line also renders `\setgetfootnotelinenumbers' global:
\setgetfootnotelinenumbers
-%% |\theLineNumber| is used for `\linelabel' entries.
+%% |\theLineNumber| is used for `\linelabel' entries.
%% `\thePagewiseLineNumber' is replaced by
%% |\theFootnoteLineNumber|:
\let\theLineNumber\theFootnoteLineNumber
%% Logging to `.aux':
- \def \FNLN at log {\string\@FLN}%
+ \def \FNLN at log {\string\@FLN}%
%% %% 2010/12/28:
%% Starting range search: |\NumberedPageCache|
\FNLN at foot@cache
@@ -844,8 +844,8 @@
\GStoreUse \@LN at vadjustlist \FNLN@@vadjusts \FNLN at vadjusts
\globaldefs\z@
}
-%% For switching back to ``main text mode,"
-%% again some settings may need a local variant---for
+%% For switching back to ``main text mode,"
+%% again some settings may need a local variant---for
%% processing line references from footnotes to main text!
%% This is the purpose of |\setgetpagewiselinenumbers|:
\newcommand* \setgetpagewiselinenumbers {%
@@ -852,8 +852,8 @@
\let \FNLN at first@numbered \LN at Pfirst
\let \FNLN at finish \@gobbletwo
}
-%% |\unsetfootnotelinenumbers| stores the ``current"
-%% page with footnote lines and loads the ``most recent"
+%% |\unsetfootnotelinenumbers| stores the ``current"
+%% page with footnote lines and loads the ``most recent"
%% page with main text lines---and more ...:
\newcommand* \unsetfootnotelinenumbers {%
\gdef \FNLN at log {\string\@LN}%
@@ -864,33 +864,33 @@
\globaldefs\@ne \setgetpagewiselinenumbers \globaldefs\z@ %% v0.53
\setpagewiselinenumbers
}
-%% |\makeFootnoteLineNumber| actually only copies
-%% |\makePagewiseLineNumber|, different results are obtained
-%% be changing hooks. The command first calls
-%% logging---|\logtheLineNumber|,
-%% then generating the ``public" line number---|\getLineNumber|
-%% (which in turn only is a copy of |\testNumberedPage|
+%% |\makeFootnoteLineNumber| actually only copies
+%% |\makePagewiseLineNumber|, different results are obtained
+%% be changing hooks. The command first calls
+%% logging---|\logtheLineNumber|,
+%% then generating the ``public" line number---|\getLineNumber|
+%% (which in turn only is a copy of |\testNumberedPage|
%% in 'lineno.sty').
\@ifdefinable\makeFootnoteLineNumber
{\let \makeFootnoteLineNumber \makePagewiseLineNumber}
%%
%% ==== Logging ====
-%% |\logtheLineNumber| is redefined to log both
-%% main text and footnote line numbers.
+%% |\logtheLineNumber| is redefined to log both
+%% main text and footnote line numbers.
\def \logtheLineNumber {%
\protected at write\@auxout{}{%
- \FNLN at log{\the\c at linenumber}{\noexpand\the\c at LN@truepage}}}
-%% |\FNLN at log| is the hook for the difference,
-%% its default expansion |\@LN| is made for
+ \FNLN at log{\the\c at linenumber}{\noexpand\the\c at LN@truepage}}}
+%% |\FNLN at log| is the hook for the difference,
+%% its default expansion |\@LN| is made for
%% \emph{main text} line numbers:
\gdef \FNLN at log {\string\@LN}
%%
%% ==== ``Public" Line Numbers ====
-%% Fortunately, these commands don't need to know much about
-%% name spaces. The interfaces to them are
-%% |\NumberedPageCache|---changing globally---and
-%% |\FNLN at first@numbered|. Our
-%% |\FNLN at cache| is initialized
+%% Fortunately, these commands don't need to know much about
+%% name spaces. The interfaces to them are
+%% |\NumberedPageCache|---changing globally---and
+%% |\FNLN at first@numbered|. Our
+%% |\FNLN at cache| is initialized
%% by analogy to its counterpart `\NumberedPageCache'
%% (a minute name space change):
\def \FNLN at cache {\FLN at Pfirst}
@@ -908,12 +908,12 @@
%% don't need any modification. |\testLastNumberedPage|
%% is modified in 'edfnotes.sty'. %% 2011/01/07
%%
-%% |\gotNumberedPage| just needs a closing hook
+%% |\gotNumberedPage| just needs a closing hook
%% `\FNLN at finish' to allow for footnote lines.
\renewcommand* \gotNumberedPage [4]{%
\oddNumberedPagefalse
\ifodd \if at twocolumn #3\else #2\fi\relax\oddNumberedPagetrue\fi
- \advance\c at linenumber\@ne
+ \advance\c at linenumber\@ne
\ifcolumnwiselinenumbers
\subtractlinenumberoffset{#1}%
\else
@@ -922,12 +922,12 @@
% \show\FNLN at finish
\FNLN at finish{#2}{#3}%
}
-%% |\FNLN at finish{<page>}{<column>}| gobbles both
-%% arguments with \emph{main} text lines,
-%% but will add the number of main text lines to
+%% |\FNLN at finish{<page>}{<column>}| gobbles both
+%% arguments with \emph{main} text lines,
+%% but will add the number of main text lines to
%% \emph{footnote} line numbers:
\global\let \FNLN at finish \@gobbletwo
-%% Then it will act as |\FNLN at add|. We run the page info macro
+%% Then it will act as |\FNLN at add|. We run the page info macro
%% for the same page (column; if defined).
\newcommand* \FNLN at add [2]{%
\expandafter \let\expandafter \@tempa\csname LN at P#1C#2\endcsname
@@ -950,8 +950,8 @@
}
%%
%% ==== Referencing ====
-%% Now that we are using two separate counters for main text lines
-%% and footnote lines (v0.5), correct references to footnote lines
+%% Now that we are using two separate counters for main text lines
+%% and footnote lines (v0.5), correct references to footnote lines
%% using |\linelabel| and `\ref' need further adjustments.
%% %
%% 'lineno.sty''s `\thePagewiseLineNumber'
@@ -958,24 +958,24 @@
%% and `\getpagewiselinenumber{<integer>}'
%% are generalized and re-implemented
%% % by |\theWiseLineNumber| and |\getwiselinenumber|
-%% by macros that then serve to implement
-%% referring to footnote line numbers.
+%% by macros that then serve to implement
+%% referring to footnote line numbers.
%%
-%% |\theWiseLineNumber{<trans>}| leaves a `\protect'ed call
+%% |\theWiseLineNumber{<trans>}| leaves a `\protect'ed call
%% to a one-parameter macro <trans> in the `.aux' file:
-\newcommand* \theWiseLineNumber [1]{\protect #1{\the\c at linenumber}}
-%% |\getwiselinenumber{<choice>}{<integer>}| executes <choice>
-%% before applying `\testNumberedPage' to <integer>---within
+\newcommand* \theWiseLineNumber [1]{\protect #1{\the\c at linenumber}}
+%% |\getwiselinenumber{<choice>}{<integer>}| executes <choice>
+%% before applying `\testNumberedPage' to <integer>---within
%% a local group:
\newcommand* \getwiselinenumber [2]{{%
-%% Some wisdom is needed to take account of the current
+%% Some wisdom is needed to take account of the current
%% ``numbering state" from which `\ref' was called.
%% \begin{description}
%% \item[Referring to main text line:]\leavevmode
%% \begin{itemize}
-%% \item Unless called from numbered footnote,
+%% \item Unless called from numbered footnote,
%% no extra care is needed.
-%% \item If called from numbered footnote,
+%% \item If called from numbered footnote,
%% `\setgetpagewiselinenumbers'
%% and temporary switching of `\NumberedPageCache'
%% is needed.
@@ -982,8 +982,8 @@
%% \end{itemize}
%% \item[Referring to footnote line:]\leavevmode
%% \begin{itemize}
-%% \item If called from numbered footnote,
-%% no extra care is needed.
+%% \item If called from numbered footnote,
+%% no extra care is needed.
%% \item Otherwise, `\setgetfootnotelinenumbers'
%% and temporary switching of `\NumberedPageCache'
%% is needed.
@@ -1007,26 +1007,26 @@
\FNLN at restore@cache
}}
\let \FNLN at restore@cache \relax
-%% |\getpagewiselinenumber| doesn't need any <choice>---we
-%% assume that the label was written in the default `pagewise'
+%% |\getpagewiselinenumber| doesn't need any <choice>---we
+%% assume that the label was written in the default `pagewise'
%% mode (but it is difficult, though, `\relax' is essential!):
-% \renewcommand* \getpagewiselinenumber {\getwiselinenumber\relax} %!!
-%% 2010/12/31, a compatibility problem with 'ednotes'' `\newlabel'
-%% mechanism shows up. 'ednotes' ``undefines" `\getpagewiselinenumber'
-%% and restores it only `\AtBeginDocument'. We must ensure that
-%% 'ednotes' will not override our new version of
-%% `\getpagewiselinenumber'.
-%% (TODO in my view another motivation to write ``ready" numbers
+% \renewcommand* \getpagewiselinenumber {\getwiselinenumber\relax} %!!
+%% 2010/12/31, a compatibility problem with 'ednotes'' `\newlabel'
+%% mechanism shows up. 'ednotes' ``undefines" `\getpagewiselinenumber'
+%% and restores it only `\AtBeginDocument'. We must ensure that
+%% 'ednotes' will not override our new version of
+%% `\getpagewiselinenumber'.
+%% (TODO in my view another motivation to write ``ready" numbers
%% without `\getpagewiselinenumbers' directly.)
%%
-%% We might assume that 'ednotes' (if at all) is loaded directly
-%% and loads 'lineno.sty'
-%% (that is the usual and recommended way of using 'ednotes')
-%% and that this will happen before 'fnlineno.sty' is loaded.
-%% But now that we have spent some time understanding the
-%% situation, we can deal with the case as well that 'lineno.sty'
-%% is loaded first, then 'fnlineno.sty' is loaded, and then 'ednotes'.
-%% (I have assumed earlier that 'fnlineno.sty' is loaded after
+%% We might assume that 'ednotes' (if at all) is loaded directly
+%% and loads 'lineno.sty'
+%% (that is the usual and recommended way of using 'ednotes')
+%% and that this will happen before 'fnlineno.sty' is loaded.
+%% But now that we have spent some time understanding the
+%% situation, we can deal with the case as well that 'lineno.sty'
+%% is loaded first, then 'fnlineno.sty' is loaded, and then 'ednotes'.
+%% (I have assumed earlier that 'fnlineno.sty' is loaded after
%% 'lineno.sty' ...)
\AtBeginDocument{%
\def \getpagewiselinenumber {\getwiselinenumber\relax}% sic!
@@ -1034,7 +1034,7 @@
%% For |\thePagewiseLineNumber|, <trans> is `\getpagewiselinenumber':
\renewcommand* \thePagewiseLineNumber {%
\theWiseLineNumber\getpagewiselinenumber}
-%% |\getfootnotelinenumber{<integer>}| considers <integer>
+%% |\getfootnotelinenumber{<integer>}| considers <integer>
%% the absolute number of a \emph{footnote} line. The <choice>
%% therefore is `\setgetfootnotelinenumbers':
\newcommand* \getfootnotelinenumber {%
@@ -1044,69 +1044,69 @@
%% is called with <trans> being `\getfootnotelinenumber':
\newcommand* \theFootnoteLineNumber {%
\theWiseLineNumber\getfootnotelinenumber}
-%%
+%%
%% === Leaving the Package File ===
\endinput
%%
-%% == Acknowledgements ==
+%% == Acknowledgements ==
%% %% 2010/12/19
-%% On the 'texhax' mailing list, Boris Veytsman recommended
-%% using Victor \mbox{Eijk}\-hout's \textit{\TeX\ by Topic} to me,
-%% and Andrej Lapshin pointed me to David Salomon's work
-%% on output routines
-%% (TUGboat 1990 and 1994, also available as a book,
+%% On the 'texhax' mailing list, Boris Veytsman recommended
+%% using Victor \mbox{Eijk}\-hout's \textit{\TeX\ by Topic} to me,
+%% and Andrej Lapshin pointed me to David Salomon's work
+%% on output routines
+%% (TUGboat 1990 and 1994, also available as a book,
%% as Ulrich Dirr tells me).
-%% It helped me a lot to read about output routines
-%% in these works, beyond the \TeX book.
-%% The abbreviations \lq OTR\rq\ and \lq MVL\rq\ are
+%% It helped me a lot to read about output routines
+%% in these works, beyond the \TeX book.
+%% The abbreviations \lq OTR\rq\ and \lq MVL\rq\ are
%% Salomon's.---And %% added 2010/12/27
-%% recall Christian's work and support
-%% by the DFG named at the start of the package file.---And
-%% ... the ideas of how to implement
-%% (\textit i)~attaching line numbers,
-%% (\textit{ii})~`\linelabel', and
-%% (\textit{iii})~numbering lines ``pagewise"---so flexibly,
-%% compatibly with many other \LaTeX\ packages, still
+%% recall Christian's work and support
+%% by the DFG named at the start of the package file.---And
+%% ... the ideas of how to implement
+%% (\textit i)~attaching line numbers,
+%% (\textit{ii})~`\linelabel', and
+%% (\textit{iii})~numbering lines ``pagewise"---so flexibly,
+%% compatibly with many other \LaTeX\ packages, still
%% are Stephan's ...
-%%
+%%
%% == VERSION HISTORY ==
-v0.1 2010/12/08 very first, \linelabel works in footnote
+v0.1 2010/12/08 very first, \linelabel works in footnote
SENT TO Christian, problems with "long" footnotes
v0.2 2010/12/08 corr. "manifoot"
- 2010/12/09 moving doc. from .tex to here,
+ 2010/12/09 moving doc. from .tex to here,
different doc. sectioning;
- \@footnotetext modified (user feature!);
+ \@footnotetext modified (user feature!);
\@doclearpage NOT modified!; \if at FNLN@placing@
- 2010/12/10 ignore dummy footnote split;
- \FNLNpar, \AutoPars, \ExplicitPars,
+ 2010/12/10 ignore dummy footnote split;
+ \FNLNpar, \AutoPars, \ExplicitPars,
more on limitations
2010/12/11 more trying, almost anew ...
JUST STORED
v0.3 2010/12/12 new approach, removed much before proceeding
- 2010/12/13 -- this was putting \box\footins onto MVL,
+ 2010/12/13 -- this was putting \box\footins onto MVL,
bad with those penalties
JUST STORED
-v0.4 2010/12/14 another new approach:
- typeset footnote on MVL immediately --
+v0.4 2010/12/14 another new approach:
+ typeset footnote on MVL immediately --
described strategy
- 2010/12/15 ... continued, choice of hooking into \output
+ 2010/12/15 ... continued, choice of hooking into \output
(...swap...)
- 2010/12/16 ... continued; rearranged sections ...
+ 2010/12/16 ... continued; rearranged sections ...
\FNLN@@fntext vs. ...ltx...
- 2010/12/17 success with \pagegoal ...; \GStoreReg etc.;
- ... at fntext shortened
- 2010/12/18 another two limitations: \pagebreak in fn.,
- guessed/tested; another note to <register>;
+ 2010/12/17 success with \pagegoal ...; \GStoreReg etc.;
+ ... at fntext shortened
+ 2010/12/18 another two limitations: \pagebreak in fn.,
+ guessed/tested; another note to <register>;
ack. Christian; directed -> organized!?
SENT TO Christian/Stephan
-v0.41 2010/12/19 support of \pagebreak with \if at FNLN@sw@ etc.;
+v0.41 2010/12/19 support of \pagebreak with \if at FNLN@sw@ etc.;
TODO on lists of <register>s
2010/12/20 debugging: \if...true; \setbox...ft;
- \@finalstrut in vmode exported to finstrut.sty;
+ \@finalstrut in vmode exported to finstrut.sty;
notes on how v0.41 still fails with \pagebreak
2010/12/21 additional notes on *two* \pagebreak's
@@ -1117,33 +1117,33 @@
2010/12/24 ... continued ...
2010/12/25 moved this to pwlineno, replaced ...
more on \FNLN at typeset, + \setfootnotelinenumbers
- 2010/12/26 new summary of implementation,
+ 2010/12/26 new summary of implementation,
rearranged code sections; logging settled
v0.51 2010/12/27 "build" settled, typesetting, logging reformated;
- ack.s: "recall"; all settings global,
+ ack.s: "recall"; all settings global,
"public" works
- JUST STORED, MARGINAL NUMBERS OK,
+ JUST STORED, MARGINAL NUMBERS OK,
\linelabel in footnote broken
- [2010/12/28]
-v0.52 2010/12/28 own label and vadjust lists for footnotes;
- local settings for referencing,
+ [2010/12/28]
+v0.52 2010/12/28 own label and vadjust lists for footnotes;
+ local settings for referencing,
tool and care for global changes (...Cache)
(TODO write ready in .aux? needs another run)
\linelabel's ok, MARGINAL NOTES MAIN BROKEN
-v0.53 2010/12/28 debugging; OK; minor doc. modifications;
+v0.53 2010/12/28 debugging; OK; minor doc. modifications;
less "limitations"; \\[\smallskipamount]
TO CHRISTIAN 2010-12-29
-v0.54 2010/12/31 typo options; \FNLN at text without arg,
+v0.54 2010/12/31 typo options; \FNLN at text without arg,
\getpagewiselinenumber with ednotes
- 2011/01/01 \FNLN at cache, \FNLN@@cache initialized;
+ 2011/01/01 \FNLN at cache, \FNLN@@cache initialized;
doc. "Typesetting Stage" qualification
2011/01/02 that qualification was wrong
2011/01/03 samepage at hook
TO CHRISTIAN SAME DAY
-v0.55 2011/01/04 samepage at hook emptied here as well;
+v0.55 2011/01/04 samepage at hook emptied here as well;
2011/01/06 edited version history
- 2011/01/07 note on \if at FNLN@sw@ with v0.5;
+ 2011/01/07 note on \if at FNLN@sw@ with v0.5;
finally without support for samepage at hook!
note on \testLastNumberedPage
PART OF EDFN RELEASE r0.5 (together with edfnotes v0.2)
-v0.55a 2011/02/09 corr. owner; "Limitations" updated; \pagebreak
+v0.55a 2011/02/09 corr. owner; "Limitations" updated; \pagebreak
Modified: trunk/Master/texmf-dist/tex/latex/lineno/lineno.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex/lineno/lineno.sty 2022-12-05 10:28:48 UTC (rev 65203)
+++ trunk/Master/texmf-dist/tex/latex/lineno/lineno.sty 2022-12-05 21:23:48 UTC (rev 65204)
@@ -1,55 +1,56 @@
- \iffalse; awk '/S[H]ELL1/' lineno.sty|sh;exit;
- ... see bottom for .tex documentation ...
+ \iffalse; awk '/S[H]ELL1/' lineno.sty|sh;exit;
+ ... see bottom for .tex documentation ...
-Macro file lineno.sty for LaTeX: attach line numbers, refer to them.
- \fi
-\def\fileversion{v4.41} \def\filedate{2005/11/02} %VERSION
+Macro file lineno.sty for LaTeX: attach line numbers, refer to them.
+ \fi
+\def\fileversion{v5.0} \def\filedate{2022/07/30} %VERSION
-%%% Copyright 1995--2003 Stephan I. B"ottcher <boettcher at physik.uni-kiel.de>;
-%%% Copyright 2002--2005 Uwe L"uck, http://www.contact-ednotes.sty.de.vu
-%%% for version 4 and code from former Ednotes bundle
-%%% --author-maintained.
-%%%
-%%% This file can be redistributed and/or modified under
-%%% the terms of the LaTeX Project Public License; either
+%%% Copyright 1995--2003 Stephan I. B"ottcher <boettcher at physik.uni-kiel.de>;
+%%% Copyright 2002--2005 Uwe L"uck, http://www.contact-ednotes.sty.de.vu
+%%% for version 4 and code from former Ednotes bundle
+%%% --author-maintained.
+%%%
+%%% This file can be redistributed and/or modified under
+%%% the terms of the LaTeX Project Public License; either
%%% version 1.3a of the License, or any later version.
%%% The latest version of this license is in
%%% http://www.latex-project.org/lppl.txt
-%%% We did our best to help you, but there is NO WARRANTY.
-%
+%%% We did our best to help you, but there is NO WARRANTY.
+%
%%% $Id: lineno.sty,v 3.14.2.2 2004/09/13 19:30:39 stephan Exp $ %% was v4.00.
-% \title{\texttt{\itshape
+% \title{\texttt{\itshape
%% %% (UL 2004/10/09:) Italic TT is evil
-%% %% ... or nice front page layout!?
+%% %% ... or nice front page layout!?
%%
-% lineno.sty \ \fileversion\ \filedate
+% lineno.sty \ \fileversion\ \filedate
% \unskip}\\\ \\
-% A \LaTeX\ package to attach
+% A \LaTeX\ package to attach
% \\ line numbers to paragraphs
-% \unskip}\author{%
-% Stephan I. B\"ottcher
-% \\ Uwe L\"uck
-% \unskip}\date{%
-% boettcher at physik.uni-kiel.de
-% \\ http://contact-ednotes.sty.de.vu
+% \unskip}\author{%
+% Stephan I. B\"ottcher
+% \\ Uwe L\"uck
+% \unskip}\date{%
+% boettcher at physik.uni-kiel.de
+% \\ http://contact-ednotes.sty.de.vu
%% \\ stephan at nevis.columbia.edu
-%% \\ Stephan.Boettcher at cern.ch
+%% \\ Stephan.Boettcher at cern.ch
% \\}
%
% \documentclass[a4paper,12pt]{article}%D
-% \usepackage{lineno}%D
+% \usepackage{lineno}%D
+% \usepackage{hyperref}%D
%% %% (New v4.00)
-% \catcode`\_\active\let_~
-%% %% Beware math!? (/New v4.00)
-% \def~{\verb~}
-% \let\lessthan<
+% \catcode`\_\active\let_~
+%% %% Beware math!? (/New v4.00)
+% \def~{\verb~}
+% \let\lessthan<
% \catcode`\<\active
% \def<#1>{$\langle${\itshape#1}\/$\rangle$}
% \catcode`\|\active
-%% (New v4.1: \tt star; in box anyway.)
+%% (New v4.1: \tt star; in box anyway.)
% \def|#1{\ttfamily\string#1}
%% \def|#1{{\ttfamily\string#1}}
-%% (/New v4.1)
+%% (/New v4.1)
% \newenvironment{code}
% {\par\runninglinenumbers
% \modulolinenumbers[1]%
@@ -57,13 +58,13 @@
% \footnotesize
% \def\linenumberfont
% {\normalfont\tiny\itshape}}
-% {}
+% {}
%% %% (New v4.00)
% {\makeatletter \gdef\scs#1{\texttt
% {\protect\@backslashchar#1}}}
% \def\old{\par\footnotesize}
%% %% (/New v4.00)
-%% %% (New v4.1)
+%% %% (New v4.1)
% {\catcode`\/\active
% \gdef\path{\begingroup\catcode`\/\active
% \let/\slash\dopath}
@@ -73,25 +74,25 @@
% \begin{document}%D
%% \DocInput{lineno}%D
% \pagewiselinenumbers
-% \maketitle
+% \maketitle
% \pagestyle{headings}
% \tableofcontents
% \sloppy
-%
-%% %% New v4.00: `...section{%' + \unskip
+%
+%% %% New v4.00: `...section{%' + \unskip
% \section{%
-% Introductions
+% Introductions
%% %% New v4.00: `s'
% \unskip}
-%
-% (New v4.00) Parts of former first section
-% have been rendered separate subsections for package
-% version_v4.00. (/New v4.00)
-%
-% \subsection{%
+%
+% (New v4.00) Parts of former first section
+% have been rendered separate subsections for package
+% version_v4.00. (/New v4.00)
+%
+% \subsection{%
% Introduction to versions $\textrm{v}\lessthan4$
-% \unskip}
-%
+% \unskip}
+%
% This package provides line numbers on paragraphs.
% After \TeX\ has broken a paragraph into lines there will
% be line numbers attached to them, with the possibility to
@@ -115,8 +116,8 @@
% precisely refer to passages in the text. It works well
% together with ~\marginpar~s, but not too well with displaymath.
% ~\footnote~s are a problem, especially when they
-% are split, but we may get there.
-% (New v4.00 UL) Version v4.00 overcomes the problem, I believe.
+% are split, but we may get there.
+% (New v4.00 UL) Version v4.00 overcomes the problem, I believe.
% (/UL /New v4.00)
%
% lineno.sty works
@@ -127,151 +128,151 @@
% well, so I can try to fix it.
%
% \subsection{%
-% Introduction to versions v4.00ff. (UL)
+% Introduction to versions v4.00ff. (UL)
% \unskip}
-%
+%
% ~lineno.sty~ has been maintained by Stephan until version_v3.14.
-% From version_v4.00 onwards, maintenance is shifting towards
-% Uwe L\"uck (UL), who is the author of v4\dots code and of v4\dots
-% changes in documentation. This came about as follows.
-%
-% Since late 2002, Christian Tapp and Uwe L\"uck have employed
-% ~lineno.sty~ for their ~ednotes.sty~, a package supporting
+% From version_v4.00 onwards, maintenance is shifting towards
+% Uwe L\"uck (UL), who is the author of v4\dots code and of v4\dots
+% changes in documentation. This came about as follows.
+%
+% Since late 2002, Christian Tapp and Uwe L\"uck have employed
+% ~lineno.sty~ for their ~ednotes.sty~, a package supporting
% critical editions---cf.
-% \[\mbox{\tt
-% http://ednotes.sty.de.vu
+% \[\mbox{\tt
+% http://ednotes.sty.de.vu
% \unskip}\]
-% ---while you find ~ednotes.sty~ and surrounding files in
+% ---while you find ~ednotes.sty~ and surrounding files in
% CTAN folder \path{macros/latex/contrib/ednotes}.
-%
-% Soon, some weaknesses of ~lineno.sty~ showed up, mainly since
-% Christian's critical editions (using ~ednotes.sty~) needed lots
-% of ~\linelabel~s and footnotes. (These weaknesses are due to
-% weaknesses of \LaTeX's ~\marginpar~ mechanism that Stephan
-% used for ~\linelabel~.) So we changed some ~lineno.sty~
-% definitions in some extra files, which moreover offered new
-% features. We sent these files to Stephan, hoping he would take
-% the changes into ~lineno.sty~. However, he was too short of time.
-%
-% Writing a TUGboat article on Ednotes in 2004, we hoped to
-% reduce the number of files in the Ednotes bundle and so asked
-% Stephan again. Now he generously offered maintenance to me, so
-% I could execute the changes on my own.
-%
-% The improvements are as follows:
-% \begin{itemize}\item
-% [(i)] Footnotes placement approaches intentions better
-% (footnotes formerly liked to pile up at late pages).
-% \item
-% [(ii)] The number of ~\linelabel~s in one paragraph is no longer
-% limited to 18.
-% \item
-% [(iii)] ~\pagebreak~, ~\nopagebreak~, ~\vspace~, and the star
-% and optional versions of ~\\~ work as one would expect
+%
+% Soon, some weaknesses of ~lineno.sty~ showed up, mainly since
+% Christian's critical editions (using ~ednotes.sty~) needed lots
+% of ~\linelabel~s and footnotes. (These weaknesses are due to
+% weaknesses of \LaTeX's ~\marginpar~ mechanism that Stephan
+% used for ~\linelabel~.) So we changed some ~lineno.sty~
+% definitions in some extra files, which moreover offered new
+% features. We sent these files to Stephan, hoping he would take
+% the changes into ~lineno.sty~. However, he was too short of time.
+%
+% Writing a TUGboat article on Ednotes in 2004, we hoped to
+% reduce the number of files in the Ednotes bundle and so asked
+% Stephan again. Now he generously offered maintenance to me, so
+% I could execute the changes on my own.
+%
+% The improvements are as follows:
+% \begin{itemize}\item
+% [(i)] Footnotes placement approaches intentions better
+% (footnotes formerly liked to pile up at late pages).
+% \item
+% [(ii)] The number of ~\linelabel~s in one paragraph is no longer
+% limited to 18.
+% \item
+% [(iii)] ~\pagebreak~, ~\nopagebreak~, ~\vspace~, and the star
+% and optional versions of ~\\~ work as one would expect
% (section_\ref{s:MVadj}). %% Added for v4.1
-% \item
-% [(iv)] A command is offered which chooses the first line number
-% to be printed in the margin
+% \item
+% [(iv)] A command is offered which chooses the first line number
+% to be printed in the margin
% (subsection_\ref{ss:Mod}). %% Added for v4.1
-% \item
-% [(v)] (New v4.1) \LaTeX\ tabular environments (optionally)
-% get line numbers as well, and you can refer to them in the
-% usual automatic way. (It may be considered a shortcoming that,
-% precisely, \emph{rows} are numbered, not lines.---See
-% subsection_\ref{ss:Tab}.)
-% \item
-% [(vi)] We are moving towards referring to math items
-% (subsection_\ref{ss:MathRef} and the hooks in
-% subsection_\ref{ss:LL}).
-% (/New v4.1)
+% \item
+% [(v)] (New v4.1) \LaTeX\ tabular environments (optionally)
+% get line numbers as well, and you can refer to them in the
+% usual automatic way. (It may be considered a shortcoming that,
+% precisely, \emph{rows} are numbered, not lines.---See
+% subsection_\ref{ss:Tab}.)
+% \item
+% [(vi)] We are moving towards referring to math items
+% (subsection_\ref{ss:MathRef} and the hooks in
+% subsection_\ref{ss:LL}).
+% (/New v4.1)
% \end{itemize}
% (Thanks to Stephan for making this possible!)
-%
-%% Unpublish:
-%% You may trace the earlier developments of these changes by
-%% requesting our files ~linenox0.sty~, ~linenox1.sty~, and
-%% ~lnopatch.sty~. Most of our changes have been in ~linenox0.sty~.
-%% Our ~linenox1.sty~ has extended ~linenox0.sty~ for one single
-%% purpose in a not very stable way.
-%%% (See ~\linenumberpar~ below).
-%% ~lnopatch.sty~ has done the first line number thing referred
-%% to in case_(iv) up to now.
-%% (New v4.1)
-%% Case_(v) earlier was provided by our ~edtab02.sty~---now
-%% called ~edtable.sty~.
-%% (/New v4.1)
-%
-% Ednotes moreover profits from Stephan's offer with regard
-% to the documentation of our code which yielded these
-% improvements formerly. This documentation now becomes
-% printable, being part of the ~lineno.sty~ documentation.
-%
-% Of course, Stephan's previous ~lineno.sty~ versions were a great
-% and ingenious work and exhibit greatest \TeX pertise. I never
-% could have done this. I learnt a lot in studying the code when
-% Christian pointed out strange output results and error
-% messages, and there are still large portions of ~lineno.sty~
-% which I don't understand (consider only pagewise numbering of
-% lines). Fortunately, Stephan has offered future help if
-% needed.---My code for attaching line numbers to \emph{tabular
-% environments} (as mentioned above, now still in
+%
+%% Unpublish:
+%% You may trace the earlier developments of these changes by
+%% requesting our files ~linenox0.sty~, ~linenox1.sty~, and
+%% ~lnopatch.sty~. Most of our changes have been in ~linenox0.sty~.
+%% Our ~linenox1.sty~ has extended ~linenox0.sty~ for one single
+%% purpose in a not very stable way.
+%%% (See ~\linenumberpar~ below).
+%% ~lnopatch.sty~ has done the first line number thing referred
+%% to in case_(iv) up to now.
+%% (New v4.1)
+%% Case_(v) earlier was provided by our ~edtab02.sty~---now
+%% called ~edtable.sty~.
+%% (/New v4.1)
+%
+% Ednotes moreover profits from Stephan's offer with regard
+% to the documentation of our code which yielded these
+% improvements formerly. This documentation now becomes
+% printable, being part of the ~lineno.sty~ documentation.
+%
+% Of course, Stephan's previous ~lineno.sty~ versions were a great
+% and ingenious work and exhibit greatest \TeX pertise. I never
+% could have done this. I learnt a lot in studying the code when
+% Christian pointed out strange output results and error
+% messages, and there are still large portions of ~lineno.sty~
+% which I don't understand (consider only pagewise numbering of
+% lines). Fortunately, Stephan has offered future help if
+% needed.---My code for attaching line numbers to \emph{tabular
+% environments} (as mentioned above, now still in
% ~edtable.sty~) %% %% TODO
-% developed from macros which Stephan and Christian experimented
-% with in December 2002. Stephan built the basics.
-% (However, I then became too proud to follow his advice only to
+% developed from macros which Stephan and Christian experimented
+% with in December 2002. Stephan built the basics.
+% (However, I then became too proud to follow his advice only to
% use and modify ~longtable.sty~.)
-%
-% There are some issues concerning use of counters on which I
-% don't agree with Stephan and where I would like to change the
-% code if ~lineno.sty~ is ``mine'' as Stephan offered. However,
-% Stephan is afraid of compatibility problems from which, in
-% particular, his wife could suffer in the near future. So he
-% demanded that I change as little as possible for my first
-% version. Instead of executing changes that I plan I just offer
-% my opinions at the single occasions. I hope to get in touch
-% this way with users who consider subtle features vital which I
-% consider strange.
-%
-% On the other hand, the sections on improvements of the
-% implementation have been blown up very much and may be tiring
-% and litte understandable for mere \emph{users}. These users
-% may profit from the present presentation just by jumping to
-% sections_\ref{s:Opts} and_\ref{s:UserCmds}. There is a user's
-% guide ulineno.tex which may be even more helpful, but it has
+%
+% There are some issues concerning use of counters on which I
+% don't agree with Stephan and where I would like to change the
+% code if ~lineno.sty~ is ``mine'' as Stephan offered. However,
+% Stephan is afraid of compatibility problems from which, in
+% particular, his wife could suffer in the near future. So he
+% demanded that I change as little as possible for my first
+% version. Instead of executing changes that I plan I just offer
+% my opinions at the single occasions. I hope to get in touch
+% this way with users who consider subtle features vital which I
+% consider strange.
+%
+% On the other hand, the sections on improvements of the
+% implementation have been blown up very much and may be tiring
+% and litte understandable for mere \emph{users}. These users
+% may profit from the present presentation just by jumping to
+% sections_\ref{s:Opts} and_\ref{s:UserCmds}. There is a user's
+% guide ulineno.tex which may be even more helpful, but it has
% not been updated for a while. %% TODO
-%
+%
% \subsection{%
-% Availability
+% Availability
% \unskip}
-%
-% In case you have found the present file otherwise than from
-% CTAN: A recent version and documentation of this package
-% should be available from CTAN folder
+%
+% In case you have found the present file otherwise than from
+% CTAN: A recent version and documentation of this package
+% should be available from CTAN folder
% \path{macros/latex/contrib/lineno}.
-% Or mail to one of the addresses at top of file.
-%
-% \subsection{%
+% Or mail to one of the addresses at top of file.
+%
+% \subsection{%
% Introductory code
% \unskip}
-%
+%
% This style option is written for \LaTeXe, November 1994 or later,
-% since we need the ~\protected at write~ macro.
-%
-% (New v4.00) And we use ~\newcommand*~ for
-% controlling length of user macro arguments, which has been
-% available since December 1994.
-%%
+% since we need the ~\protected at write~ macro.
+%
+% (New v4.00) And we use ~\newcommand*~ for
+% controlling length of user macro arguments, which has been
+% available since December 1994.
+%%
-\NeedsTeXFormat{LaTeX2e}[1994/12/01]
-%% [1994/11/04]
-\ProvidesPackage{lineno}
- [\filedate\space line numbers on paragraphs \fileversion]
-% (/New v4.00)
-%%
-%% History of versions:
+\NeedsTeXFormat{LaTeX2e}[1994/12/01]
+%% [1994/11/04]
+\ProvidesPackage{lineno}
+ [\filedate\space line numbers on paragraphs \fileversion]
+% (/New v4.00)
+%%
+%% History of versions:
%% v1.00 1995/03/31 SIB: first release for Petra's interview transcriptions
%% v1.01 1995/10/28 SIB: added ~pagewise~ mode
-%% v1.02 1995/11/15 SIB: added ~modulo~ option
+%% v1.02 1995/11/15 SIB: added ~modulo~ option
%% v1.03 1995/12/05 SIB: pagewise: try to reduce the hash-size requirements
%% v2.00 1995/12/06 SIB: .. it works, new user interface
%% v2.01 1996/09/17 SIB: put into CVS
@@ -284,8 +285,8 @@
%% v3.02 2000/03/10 SiB: \@LN at output
%% v3.03 2000/07/01 SiB: \@LN at ExtraLabelItems, hyperref
%% v3.04 2000/12/17 SiB: longtable compatibility.
-%% v3.05 2001/01/02 SiB: [fleqn] detection.
-%% v3.05a 2001/01/04 SiB: [fleqn] detection reverted for eqnarray.
+%% v3.05 2001/01/02 SiB: [fleqn] detection.
+%% v3.05a 2001/01/04 SiB: [fleqn] detection reverted for eqnarray.
%% v3.06 2001/01/17 SiB: [twocolumn] mode support.
%% v3.07 2001/07/30 SiB: [hyperref] option obsoleted.
%% v3.08 2001/08/02 SiB: linenomath wrapping for \[ \]
@@ -294,138 +295,139 @@
%% v3.09 2003/01/14 SIB: hyperref detection fix
%% v3.10 2003/04/15 FMi: \MakeLineNo fix for deep boxes
%% v3.10a 2003/11/12 Uwe L\xFCck: \lineref typo fix
-%% v4.00 2004/09/02 UL: included linenox0, linenox1, lnopatch code with
-%% documentation, usually indicated by `New v4.00';
-%% discussions of old code, indicated by `UL';
-%% LPPL v.1 -> LPPL v1.3, `program' -> `file';
-%% first lines with \filedate and \fileversion,
-%% according nawk lines; `November 1994 or later',
-%% some earlier documentation typos (including a few
-%% bad minus signs), { -> {% and } -> \unskip} at
-%% line ends (so, e.g., alignment in TOC works); \scs.
-%% 2004/09/03 UL: removed everything which indicated that the
-%% present file were named `lineno4.sty'.
-%% v4.1 2004/09/19 UL: Inserted Stephan's identification line, removed
-%% some TODOs and remarks from v4.00.
-%% 2004/10/04 UL: Added acknowledgement for Daniel Doherty;
-%% `(New v4.00)' with [|\firstlinenumber]; changed
-%% TODOs; Refining -> Redefining (\vadjust).
+%% v4.00 2004/09/02 UL: included linenox0, linenox1, lnopatch code with
+%% documentation, usually indicated by `New v4.00';
+%% discussions of old code, indicated by `UL';
+%% LPPL v.1 -> LPPL v1.3, `program' -> `file';
+%% first lines with \filedate and \fileversion,
+%% according nawk lines; `November 1994 or later',
+%% some earlier documentation typos (including a few
+%% bad minus signs), { -> {% and } -> \unskip} at
+%% line ends (so, e.g., alignment in TOC works); \scs.
+%% 2004/09/03 UL: removed everything which indicated that the
+%% present file were named `lineno4.sty'.
+%% v4.1 2004/09/19 UL: Inserted Stephan's identification line, removed
+%% some TODOs and remarks from v4.00.
+%% 2004/10/04 UL: Added acknowledgement for Daniel Doherty;
+%% `(New v4.00)' with [|\firstlinenumber]; changed
+%% TODOs; Refining -> Redefining (\vadjust).
%% 2004/10/05 UL: ednmath0 -> mathrefs; \catcode`\~ -> \active;
-%% \path; refined section on options `mathrefs';
-%% changes in introduction.
-%% 2004/10/06 UL: Changed/removed TODOs, e.g., for edtable.sty.
-%% 2004/10/11 UL: Reminders: linenox0/1/lnopatch.sty obsolete;
+%% \path; refined section on options `mathrefs';
+%% changes in introduction.
+%% 2004/10/06 UL: Changed/removed TODOs, e.g., for edtable.sty.
+%% 2004/10/11 UL: Reminders: linenox0/1/lnopatch.sty obsolete;
%% \tt star in list of commands.
-%% 2004/10/12 UL: Corrected blank lines in lineno.tex.
-%% 2004/10/19 UL: Fixed minor typos; remark on \if at LN@edtable.
-%% v4.1a 2004/11/07 UL: LPPL v1.3a.
-%% v4.1b 2004/11/13 UL: Comment on \outputpenalty values.
-%% v4.1c 2005/01/10 UL: Contact via http.
-%% v4.11 2005/02/20 UL: Error message with \linelabel when not numbering.
-%% 2005/03/07 UL: Removed \linelabel from ss:Tab heading, consider
-%% marginal line numbers as well, revised ss:Tab.
-%% Added a few lines on missing explanations to
-%% s:UserCmds. Corrected some code alignments.
-%% 2005/03/08 UL: Require recent edtable.sty.
+%% 2004/10/12 UL: Corrected blank lines in lineno.tex.
+%% 2004/10/19 UL: Fixed minor typos; remark on \if at LN@edtable.
+%% v4.1a 2004/11/07 UL: LPPL v1.3a.
+%% v4.1b 2004/11/13 UL: Comment on \outputpenalty values.
+%% v4.1c 2005/01/10 UL: Contact via http.
+%% v4.11 2005/02/20 UL: Error message with \linelabel when not numbering.
+%% 2005/03/07 UL: Removed \linelabel from ss:Tab heading, consider
+%% marginal line numbers as well, revised ss:Tab.
+%% Added a few lines on missing explanations to
+%% s:UserCmds. Corrected some code alignments.
+%% 2005/03/08 UL: Require recent edtable.sty.
%%
-%% v4.2 2005/03/21 UL: "Physical page" counter works with \include.
-%% 2005/04/17 UL: Raised options section above extensions section
-%% (v4.00 disabled `displaymath' option);
-%% third arg for \@ifundefined{mathindent};
-%% "bunch of options";
-%% 2005/04/24 UL: compatibility with tamefloats; vplref.sty.
-%% 2005/04/25 UL: \number -> \the; wondered -> $$; subsec. appbas;
-%% CrtlLN sec -> subsec.; \newcommand* wherever ...;
-%% doc. on `other output routines' and `addpageno'
-%% (this changed from `varioref').
-%% 2005/04/27 UL: =1\relax -> =\@ne, 0\relax ..., \hb at xt@,
-%% \ifx\@@par\@@@par -> \ifLineNumbers, typos,
-%% \pagestyle{headings}, LaTeX -> \LaTeX.
-%% v4.21 2005/04/28 UL: linenomath section: removed wrong \else's,
-%% \holding...: \thr@@, \@LN at outer@holdins, \global.
-%% v4.22 2005/05/01 UL: \unvbox\@outputbox; \@LN at col without #1,
-%% 2005/05/08 UL: global/local \internall..., \resetl... global,
-%% shortened discussions of this and of \newcounter.
-%% 2005/05/09 UL: corr.: doc. typo, version history, bad lines;
-%% percent; \chardef for modulo,
-%% \value{firstlinenumber}.
-%% v4.3 2005/05/10 UL: \@backslashchar -> \char`\\ in \scs.
-%% 2005/05/11 UL: \linenumbers sets ...outer at holdins; tidied up
-%% documentation regarding earlier versions.
-%% 2005/05/12 UL: `linenomath' without spurious number above;
-%% `displaymath' default; edmac homepage ->
-%% ednotes.sty.de.vu, \endlinenomath without
-%% numbers: no change of \holdinginserts;
-%% \linelabel doesn't go to .aux or mark,
-%% hyperref detected; undone 2005/05/10 (bad mark).
-%% 2005/05/13 UL: Reworked hyperref detection (new subsec.).
-%% 2005/05/15 UL: More typo fixes, corrected terrible confusions in
-%% the discussion (v4.22/v4.3) of \new/\stepcounter;
-%% new subsec. in `Line number ...'; another
-%% implementation of `hyperref' detection.
-%% 2005/05/16 UL: Final minor changes.
-%% v4.31b /06/14 UL: Extended explanation of \firstlinenumbers
-%% and package options; \@LN at ifgreat@critical;
+%% v4.2 2005/03/21 UL: "Physical page" counter works with \include.
+%% 2005/04/17 UL: Raised options section above extensions section
+%% (v4.00 disabled `displaymath' option);
+%% third arg for \@ifundefined{mathindent};
+%% "bunch of options";
+%% 2005/04/24 UL: compatibility with tamefloats; vplref.sty.
+%% 2005/04/25 UL: \number -> \the; wondered -> $$; subsec. appbas;
+%% CrtlLN sec -> subsec.; \newcommand* wherever ...;
+%% doc. on `other output routines' and `addpageno'
+%% (this changed from `varioref').
+%% 2005/04/27 UL: =1\relax -> =\@ne, 0\relax ..., \hb at xt@,
+%% \ifx\@@par\@@@par -> \ifLineNumbers, typos,
+%% \pagestyle{headings}, LaTeX -> \LaTeX.
+%% v4.21 2005/04/28 UL: linenomath section: removed wrong \else's,
+%% \holding...: \thr@@, \@LN at outer@holdins, \global.
+%% v4.22 2005/05/01 UL: \unvbox\@outputbox; \@LN at col without #1,
+%% 2005/05/08 UL: global/local \internall..., \resetl... global,
+%% shortened discussions of this and of \newcounter.
+%% 2005/05/09 UL: corr.: doc. typo, version history, bad lines;
+%% percent; \chardef for modulo,
+%% \value{firstlinenumber}.
+%% v4.3 2005/05/10 UL: \@backslashchar -> \char`\\ in \scs.
+%% 2005/05/11 UL: \linenumbers sets ...outer at holdins; tidied up
+%% documentation regarding earlier versions.
+%% 2005/05/12 UL: `linenomath' without spurious number above;
+%% `displaymath' default; edmac homepage ->
+%% ednotes.sty.de.vu, \endlinenomath without
+%% numbers: no change of \holdinginserts;
+%% \linelabel doesn't go to .aux or mark,
+%% hyperref detected; undone 2005/05/10 (bad mark).
+%% 2005/05/13 UL: Reworked hyperref detection (new subsec.).
+%% 2005/05/15 UL: More typo fixes, corrected terrible confusions in
+%% the discussion (v4.22/v4.3) of \new/\stepcounter;
+%% new subsec. in `Line number ...'; another
+%% implementation of `hyperref' detection.
+%% 2005/05/16 UL: Final minor changes.
+%% v4.31b /06/14 UL: Extended explanation of \firstlinenumbers
+%% and package options; \@LN at ifgreat@critical;
%% \modulolinenumbers*. Sent to Ednotes.news only.
-%% v4.31 2005/06/15 UL: \modulolinenumbers* with \firstlinenumber{1};
+%% v4.31 2005/06/15 UL: \modulolinenumbers* with \firstlinenumber{1};
%% " -> ``/''; more doc. on \firstlinenumber .
-%% 2005/06/20 UL: Typo fix.
-%% 2005/10/01 UL: Warning about \mod...* with pagewise mode.
-%% v4.31a /10/02 UL: Minor changes of appearance of doc., e.g.,
-%% \[ for $$.
+%% 2005/06/20 UL: Typo fix.
+%% 2005/10/01 UL: Warning about \mod...* with pagewise mode.
+%% v4.31a /10/02 UL: Minor changes of appearance of doc., e.g.,
+%% \[ for $$.
%% v4.32b /10/15 UL: Support for \addvspace; removed comments that
-%% had been invisible already for some time;
-%% made clear with which environments the
-%% linenomath environment is not needed.
-%% v4.32ab /10/15 UL: Observe \if at nobreak with support for \addvspace.
-%% v4.32 2005/10/17 UL: Just made it official and sent it to CTAN.
-%% v4.33b /10/23 UL: \if at nobreak\nobreak\fi -> \nobreak .
-%% v4.33ab /10/24 UL: \LineNoLaTeXOutput without \@tempswafalse;
-%% undid v4.22: \[unv]box\@outputbox (space is OK,
-%% \unvbox pushes short columns down); \@LN at kern@z@ .
-%% v4.4b 2005/10/24 UL: Another tidying-up of the discussion of
-%% \stepcounter{linenumber}; \@LN at screenoff@pen
-%% replaces \@LN at kern@z@, \@LN at depthbox .
-%% v4.4 2005/10/27 UL: Just made official for CTAN.
-%% v4.4a 2005/10/29 UL: Undid change of discussion of
-%% \stepcounter{linenumber} (confusion again).
-%% v4.41 2005/11/02 UL: Raised \CheckCommand*.
-%%
+%% had been invisible already for some time;
+%% made clear with which environments the
+%% linenomath environment is not needed.
+%% v4.32ab /10/15 UL: Observe \if at nobreak with support for \addvspace.
+%% v4.32 2005/10/17 UL: Just made it official and sent it to CTAN.
+%% v4.33b /10/23 UL: \if at nobreak\nobreak\fi -> \nobreak .
+%% v4.33ab /10/24 UL: \LineNoLaTeXOutput without \@tempswafalse;
+%% undid v4.22: \[unv]box\@outputbox (space is OK,
+%% \unvbox pushes short columns down); \@LN at kern@z@ .
+%% v4.4b 2005/10/24 UL: Another tidying-up of the discussion of
+%% \stepcounter{linenumber}; \@LN at screenoff@pen
+%% replaces \@LN at kern@z@, \@LN at depthbox .
+%% v4.4 2005/10/27 UL: Just made official for CTAN.
+%% v4.4a 2005/10/29 UL: Undid change of discussion of
+%% \stepcounter{linenumber} (confusion again).
+%% v4.41 2005/11/02 UL: Raised \CheckCommand*.
+%% v5.0 2022/07/30 KW: Merge in `linenoamsmath' patches
+%%
%% Acknowledgements:
%% v3.06: Donald Arseneau, pointed to mparhack.sty.
%% v3.07+: Frank Mittelbach, points out inconsistencies in the
%% user interface.
%% v3.10: Frank Mittelbach \MakeLineNo fix for deep boxes
-%% v4.00: Daniel Doherty points out clash of \pagewise... with resetting
-%% page number.
-%% v4.21: Much testing work by Erik Luijten.
-%% v4.3: `displaymath' default by Erik Luijten's suggestion.
-%% v4.31: \modulolinenumbers* is an idea of Hillel Chayim Yisraeli's.
-%% v4.32: Support for \addvspace due to Saravanan M.'s observation.
-%% v4.33: Different support for \addvspace due to bug reports by
-%% Saravanan M.'s and David Josef Dev.
-%% v4.4: David Josef Dev points out that \kern\z@ after a paragraph
-%% tends to place its final baseline wrongly.
+%% v4.00: Daniel Doherty points out clash of \pagewise... with resetting
+%% page number.
+%% v4.21: Much testing work by Erik Luijten.
+%% v4.3: `displaymath' default by Erik Luijten's suggestion.
+%% v4.31: \modulolinenumbers* is an idea of Hillel Chayim Yisraeli's.
+%% v4.32: Support for \addvspace due to Saravanan M.'s observation.
+%% v4.33: Different support for \addvspace due to bug reports by
+%% Saravanan M.'s and David Josef Dev.
+%% v4.4: David Josef Dev points out that \kern\z@ after a paragraph
+%% tends to place its final baseline wrongly.
%
%
% \section{%
% Put the line numbers to the lines
% \unskip}
-%
-% (New v4.00) This section contained the most
-% basic package code previously. For various purposes of
-% version_4\dots, much of these basics have been to be modified.
-% Much of my (UL's) reasoning on these modifications has been to
-% be reported. Sorry, the present section has been blown up
-% awfully thus and contains ramifications that may be difficult
-% to trace. We add some ~\subsection~ commands in order to cope
-% with the new situation. (/New v4.00)
-%
-% \subsection{%
+%
+% (New v4.00) This section contained the most
+% basic package code previously. For various purposes of
+% version_4\dots, much of these basics have been to be modified.
+% Much of my (UL's) reasoning on these modifications has been to
+% be reported. Sorry, the present section has been blown up
+% awfully thus and contains ramifications that may be difficult
+% to trace. We add some ~\subsection~ commands in order to cope
+% with the new situation. (/New v4.00)
+%
+% \subsection{%
% Basic code of \texttt{lineno.sty} \scs{output}
-% \unskip}\label{ss:output}
-%
+% \unskip}\label{ss:output}
+%
% The line numbers have to be attached by the output
% routine. We simply set the ~\interlinepenalty~ to $-100000$.
% The output routine will be called after each line in the
@@ -433,33 +435,33 @@
% The ~\linenopenalty~ is small enough to compensate a bunch of
% penalties (e.g., with ~\samepage~).
%
-% (New v3.04) Longtable uses
-% ~\penalty~$-30000$. The lineno penalty range was
+% (New v3.04) Longtable uses
+% ~\penalty~$-30000$. The lineno penalty range was
% shrunk to $-188000 \dots -32000$. (/New v3.04)
-% (New v4.00) New values are listed below (11111f.). (/New v4.00)
+% (New v4.00) New values are listed below (11111f.). (/New v4.00)
\newcount\linenopenalty\linenopenalty=-100000
-%% TODO v4.4+:
-% (UL) Hm. It is never needed below
-% that this is a counter. ~\def\linenopenalty{-100000\relax}~
-% would do. (I guess this consumes more memory, but it
-% is more important to save counters than to save memory.)
-% I was frightened by ~-\linenopenalty~ below, but indeed
-% \TeX\ interprets the string ~--100000~ as 100000.
-% Has any user or extension package writer ever called
-% ~\linenopenalty=xxx~, or could I really change this?---The
-% counter is somewhat faster than the macro. Together with the
-% compatibility question this seems to support keeping the
-% counter. (???)
-%% Note that Stephan chose ~\mathchardef~ below,
-%% so his choice above seems to have been deliberate.
-%% <- no point, \mathchardef token is fast.
-% (/UL)
+%% TODO v4.4+:
+% (UL) Hm. It is never needed below
+% that this is a counter. ~\def\linenopenalty{-100000\relax}~
+% would do. (I guess this consumes more memory, but it
+% is more important to save counters than to save memory.)
+% I was frightened by ~-\linenopenalty~ below, but indeed
+% \TeX\ interprets the string ~--100000~ as 100000.
+% Has any user or extension package writer ever called
+% ~\linenopenalty=xxx~, or could I really change this?---The
+% counter is somewhat faster than the macro. Together with the
+% compatibility question this seems to support keeping the
+% counter. (???)
+%% Note that Stephan chose ~\mathchardef~ below,
+%% so his choice above seems to have been deliberate.
+%% <- no point, \mathchardef token is fast.
+% (/UL)
\mathchardef\linenopenaltypar=32000
-% So let's make a hook to ~\output~, the direct way. The \LaTeX\
+% So let's make a hook to ~\output~, the direct way. The \LaTeX\
% macro ~\@reinserts~ puts the footnotes back on the page.
%
% (New v3.01) ~\@reinserts~ badly
@@ -469,7 +471,7 @@
% part. Thus, since lineno.sty does not play well
% with ~\inserts~ anyway, we can safely experiment
% with ~\holdinginserts~, without making things
-% much worse.
+% much worse.
%
% Or that's what I thought, but: Just activating
% ~\holdinginserts~ while doing the ~\par~ will
@@ -484,9 +486,9 @@
% restart ~\output~.
%
% Then, again, how do we keep the remaining
-% ~\inserts~ while doing further line numbers?
+% ~\inserts~ while doing further line numbers?
%
-% If we find ~\holdinginserts~=$-3$ we activate it again
+% If we find ~\holdinginserts~=$-3$ we activate it again
% after doing ~\output~. (/New v3.01)
%
% (New v3.02) To work with
@@ -494,51 +496,51 @@
% called indirectly, instead of being replaced.
% When multicol.sty changes ~\output~, it is a
% toks register, not the real thing. (/New v3.02)
-%
-% (New v4.00) Two further complications are added.
+%
+% (New v4.00) Two further complications are added.
%%
-%% TODO v4.3+: Or three, ~\@nobreakfalse~ after ~\MakeLineNo~
-%% for getting rid of ~\@LN at nopagebreak~.
+%% TODO v4.3+: Or three, ~\@nobreakfalse~ after ~\MakeLineNo~
+%% for getting rid of ~\@LN at nopagebreak~.
% \begin{itemize}\item
-% [(i)] Problems with footnotes formerly resulted from
-% \LaTeX's ~\@reinserts~ in ~\@specialoutput~ which Stephan's
-% ~\linelabel~ called via the ~\marginpar~ mechanism.
+% [(i)] Problems with footnotes formerly resulted from
+% \LaTeX's ~\@reinserts~ in ~\@specialoutput~ which Stephan's
+% ~\linelabel~ called via the ~\marginpar~ mechanism.
% \item
-% [(ii)] \LaTeX\ commands using ~\vadjust~ formerly didn't work
-% as one would have hoped. The problem is as follows:
-% Printing the line number results from
-% a box that the output routine inserts at the place of the
-% ~\interlinepenalty~. ~\vadjust~ items appear \emph{above} the
-% ~\interlinepenalty~ (\TeX book p._105). So ~\pagebreak~, e.g.,
-% formerly sent the line number to the next page, while the
-% penalty from ~\nopagebreak~ could not tie the following line,
-% since it was screened off by the line number box.---Our trick
-% is putting the ~\vadjust~ items into a list macro from which
-% the output routine transfers them into the vertical list,
-% below the line number box.
+% [(ii)] \LaTeX\ commands using ~\vadjust~ formerly didn't work
+% as one would have hoped. The problem is as follows:
+% Printing the line number results from
+% a box that the output routine inserts at the place of the
+% ~\interlinepenalty~. ~\vadjust~ items appear \emph{above} the
+% ~\interlinepenalty~ (\TeX book p._105). So ~\pagebreak~, e.g.,
+% formerly sent the line number to the next page, while the
+% penalty from ~\nopagebreak~ could not tie the following line,
+% since it was screened off by the line number box.---Our trick
+% is putting the ~\vadjust~ items into a list macro from which
+% the output routine transfers them into the vertical list,
+% below the line number box.
% \end{itemize}
-% In this case_(ii), like in case_(i), footnotes would suffer
-% if ~\holdinginserts~ were non-positive. Indeed, in both
-% cases_(i) and_(ii) we tackle the footnote problem by extending
-% that part of Stephan's output routine that is active when
-% ~\holdinginserts~ is positive. This extension writes the line
-% number ~\newlabel~ to the .aux file (which was formerly done
-% under $~\holdinginserts~=-3$) and handles the ~\vadjust~
-% items.---To trigger ~\output~ and its ~\linelabel~ or, resp.,
-% ~\vadjust~ part, the list of signal penalties started
-% immediately before is increased here (first for ~\linelabel~,
-% second for postponed ~\vadjust~ items):
+% In this case_(ii), like in case_(i), footnotes would suffer
+% if ~\holdinginserts~ were non-positive. Indeed, in both
+% cases_(i) and_(ii) we tackle the footnote problem by extending
+% that part of Stephan's output routine that is active when
+% ~\holdinginserts~ is positive. This extension writes the line
+% number ~\newlabel~ to the .aux file (which was formerly done
+% under $~\holdinginserts~=-3$) and handles the ~\vadjust~
+% items.---To trigger ~\output~ and its ~\linelabel~ or, resp.,
+% ~\vadjust~ part, the list of signal penalties started
+% immediately before is increased here (first for ~\linelabel~,
+% second for postponed ~\vadjust~ items):
-\mathchardef\@Mllbcodepen=11111
-\mathchardef\@Mppvacodepen=11112
+\mathchardef\@Mllbcodepen=11111
+\mathchardef\@Mppvacodepen=11112
-% (/New v4.00) (New v4.2) David Kastrup urges to use a private
-% name instead of ~\the\output~ (LaTeX-L-list). Otherwise an
-% ~\output~ routine loaded later and using ~\newtoks\output~
-% again may get lost entirely. So we change use of ~\@LN at output~,
-% using it for the former purpose. Reference to what appeared
-% with the name of ~\output~ here lasts for a few lines and then
-% is given away.
+% (/New v4.00) (New v4.2) David Kastrup urges to use a private
+% name instead of ~\the\output~ (LaTeX-L-list). Otherwise an
+% ~\output~ routine loaded later and using ~\newtoks\output~
+% again may get lost entirely. So we change use of ~\@LN at output~,
+% using it for the former purpose. Reference to what appeared
+% with the name of ~\output~ here lasts for a few lines and then
+% is given away.
\let\@tempa\output
\newtoks\output
@@ -551,63 +553,63 @@
% (/New 4.2)
\LineNoTest
\if at tempswa
-%%
-%% (UL) Learnt that even in def.s blank line means ~\par~.
+%%
+%% (UL) Learnt that even in def.s blank line means ~\par~.
%% to leave visual space in present file with having a
-%% blank line neither in present nor in .tex file,
-%% use double comment mark (`%%'). (/UL)
-%%
+%% blank line neither in present nor in .tex file,
+%% use double comment mark (`%%'). (/UL)
+%%
% (New v4.00)
-% We insert recognition of waiting ~\linelabel~ items---
-%%
- \ifnum\outputpenalty=-\@Mllbcodepen
- \WriteLineNo
+% We insert recognition of waiting ~\linelabel~ items---
%%
-% ---and of waiting ~\vadjust~ items:
-%%
- \else
- \ifnum\outputpenalty=-\@Mppvacodepen
- \PassVadjustList
- \else
-%%
-%% Now we give control back to Stephan.
-% (/New v4.00) (New v4.2) Outsource ``Standard'' output
-% ---which occurs so rarely---to subsection_\ref{ss:LLO}:
-%%
- \LineNoLaTeXOutput
-% (/New v4.2) (New v4.00)
-% Two new ~\fi~s for the ~\linelabel~ and ~\vadjust~ tests---
-%%
- \fi
- \fi
+ \ifnum\outputpenalty=-\@Mllbcodepen
+ \WriteLineNo
%%
-% ---and the remaining is
-%%%next three lines are
-% Stephan's code again:
-% (/New v4.00)
+% ---and of waiting ~\vadjust~ items:
%%
- \else
+ \else
+ \ifnum\outputpenalty=-\@Mppvacodepen
+ \PassVadjustList
+ \else
+%%
+%% Now we give control back to Stephan.
+% (/New v4.00) (New v4.2) Outsource ``Standard'' output
+% ---which occurs so rarely---to subsection_\ref{ss:LLO}:
+%%
+ \LineNoLaTeXOutput
+% (/New v4.2) (New v4.00)
+% Two new ~\fi~s for the ~\linelabel~ and ~\vadjust~ tests---
+%%
+ \fi
+ \fi
+%%
+% ---and the remaining is
+%%%next three lines are
+% Stephan's code again:
+% (/New v4.00)
+%%
+ \else
\MakeLineNo
\fi
}
-
-% (New v4.00) Our new macros
-% ~\WriteLineNo~ and ~\PassVadjustList~ will be dealt with in
-% sections_\ref{s:LNref} and_\ref{ss:PVadj}. (/New v4.00)
-%
+
+% (New v4.00) Our new macros
+% ~\WriteLineNo~ and ~\PassVadjustList~ will be dealt with in
+% sections_\ref{s:LNref} and_\ref{ss:PVadj}. (/New v4.00)
+%
% \subsection{%
% \scs{LineNoTest}
-% \unskip}
-%
+% \unskip}
+%
% The float mechanism inserts ~\interlinepenalty~s during
% ~\output~. So carefully reset it before going on. Else
% we get doubled line numbers on every float placed in
-% horizontal mode, e.g, from ~\linelabel~.
+% horizontal mode, e.g, from ~\linelabel~.
%
% Sorry, neither a ~\linelabel~ nor a ~\marginpar~ should
% insert a penalty, else the following linenumber
% could go to the next page. Nor should any other
-% float. So let us suppress the ~\interlinepenalty~
+% float. So let us suppress the ~\interlinepenalty~
% altogether with the ~\@nobreak~ switch.
%
% Since (ltspace.dtx, v1.2p)[1996/07/26], the ~\@nobreaktrue~ does
@@ -629,306 +631,306 @@
\def\@LN at nobreaktrue{\let\if at nobreak\iftrue} % renamed v4.33
-% (UL) I thought here were
-% another case of the save stack problem explained in \TeX book,
-% p._301, namely through both local and global changing
-% ~\if at nobreak~. However, ~\@LN at nobreak~ is called during
-% ~\@LN at output~ only, while ~\@nobreaktrue~ is called by \LaTeX's
-% ~\@startsection~ only. The latter never happens during
-% ~\@LN at output~. So there is no local value of ~\if at nobreak~ on
-% save stack when ~\@nobreaktrue~ acts, since ~\the\@LN at output~
-% (where ~\@LN at output~ is a new name for the original ~\output~)
+% (UL) I thought here were
+% another case of the save stack problem explained in \TeX book,
+% p._301, namely through both local and global changing
+% ~\if at nobreak~. However, ~\@LN at nobreak~ is called during
+% ~\@LN at output~ only, while ~\@nobreaktrue~ is called by \LaTeX's
+% ~\@startsection~ only. The latter never happens during
+% ~\@LN at output~. So there is no local value of ~\if at nobreak~ on
+% save stack when ~\@nobreaktrue~ acts, since ~\the\@LN at output~
+% (where ~\@LN at output~ is a new name for the original ~\output~)
% is executed within a group (\TeX book p._21).
%%
%% 2004/09/19 Removed nonsense here according to Stephan 2004/09/04.
-%%
-% (/UL)
+%%
+% (/UL)
%
% \subsection{%
% Other output routines (v4.2)
-% \unskip}\label{ss:LLO}
-%
-% I had thought of dealing with bad interference of footnotes
-% (and ~\enlargethispage~) with (real) ~\marginpar~s and floats
-% \emph{here}. Yet this is done in
+% \unskip}\label{ss:LLO}
+%
+% I had thought of dealing with bad interference of footnotes
+% (and ~\enlargethispage~) with (real) ~\marginpar~s and floats
+% \emph{here}. Yet this is done in
% \[
% ~http://~\mbox{[CTAN]}
% ~/macros/latex/contrib/tamefloats/tameflts.sty~
% \]
-% now, and I prefer striving for compatibility with the latter.
+% now, and I prefer striving for compatibility with the latter.
% (See there for expanding on the problem.)
-% This requires returning the special absolute value of
-% ~\holdinginserts~ that ~lineno.sty~ finds at the end of a newly
+% This requires returning the special absolute value of
+% ~\holdinginserts~ that ~lineno.sty~ finds at the end of a newly
% typeset paragraph---now done in subsection_\ref{ss:calls}
-% (~\linenumberpar~).
-% The former ~\LineNoHoldInsertsTest~ has been filled into here.
-%% ---`3' is replaced by ~\thr@@~ for a while. ~\thr@@~ is
-%% useful practice since plain \TeX, but Stephan may have been
-%% wise in suspecting that \LaTeX\ once could forsake ~\thr@@~.
-%% The same holds for ~\@M=10000~.
-% Note: when the following code is invoked, we have
-% ~\if at tempswa~_ =_~\iftrue~.
-% WARNING: I am still not sure whether the present code is good
-% for cooperating with other packages that use ~\holdinginserts~.
+% (~\linenumberpar~).
+% The former ~\LineNoHoldInsertsTest~ has been filled into here.
+%% ---`3' is replaced by ~\thr@@~ for a while. ~\thr@@~ is
+%% useful practice since plain \TeX, but Stephan may have been
+%% wise in suspecting that \LaTeX\ once could forsake ~\thr@@~.
+%% The same holds for ~\@M=10000~.
+% Note: when the following code is invoked, we have
+% ~\if at tempswa~_ =_~\iftrue~.
+% WARNING: I am still not sure whether the present code is good
+% for cooperating with other packages that use ~\holdinginserts~.
-\def\LineNoLaTeXOutput{%
+\def\LineNoLaTeXOutput{%
\ifnum \holdinginserts=\thr@@ % v4.33 without \@tempswafalse
- \global\holdinginserts-\thr@@
- \unvbox\@cclv
- \ifnum \outputpenalty=\@M \else \penalty\outputpenalty \fi
+ \global\holdinginserts-\thr@@
+ \unvbox\@cclv
+ \ifnum \outputpenalty=\@M \else \penalty\outputpenalty \fi
\else
\if at twocolumn \let\@makecol\@LN at makecol \fi
- \the\@LN at output % finally following David Kastrup's advice.
- \ifnum \holdinginserts=-\thr@@
- \global\holdinginserts\thr@@ \fi
+ \the\@LN at output % finally following David Kastrup's advice.
+ \ifnum \holdinginserts=-\thr@@
+ \global\holdinginserts\thr@@ \fi
\fi
}
-% \textit{More on dealing with output routines from other
-% packages:}
-% Since ~lineno.sty~'s output routine is called at least once
-% for each output line, I think it should be in \TeX's
-% original ~\output~, while output routines dealing with
-% building pages and with floats etc.\ should be filled into
-% registers addressed by ~\output~ after ~\newtoks\output~.
+% \textit{More on dealing with output routines from other
+% packages:}
+% Since ~lineno.sty~'s output routine is called at least once
+% for each output line, I think it should be in \TeX's
+% original ~\output~, while output routines dealing with
+% building pages and with floats etc.\ should be filled into
+% registers addressed by ~\output~ after ~\newtoks\output~.
% Therefore \begin{enumerate}
-% \item
-% ~tameflts.sty~ should be loaded \emph{after} ~lineno.sty~;
-% \item
-% if a class changes ~\output~ (APS journal class revtex4,
-% e.g.), ~lineno.sty~ should be loaded by ~\RequirePackage~
-% [here presumably following some options in
-% brackets]~{lineno}~ \emph{preceding} ~\documentclass~.
-% \item
-% If you actually maintain such a class, please consider
-% loading ~lineno.sty~ on some draft option. The bunch of
-% lineno's package options may be a problem, but perhaps the
-% purpose of your class is offering only very few of lineno's
-% options anyway, maybe just one.
-% \end{enumerate}
-% The latter may also be needed with classes that don't follow
-% David Kastrup's rule on changing ~\output~.
-%
+% \item
+% ~tameflts.sty~ should be loaded \emph{after} ~lineno.sty~;
+% \item
+% if a class changes ~\output~ (APS journal class revtex4,
+% e.g.), ~lineno.sty~ should be loaded by ~\RequirePackage~
+% [here presumably following some options in
+% brackets]~{lineno}~ \emph{preceding} ~\documentclass~.
+% \item
+% If you actually maintain such a class, please consider
+% loading ~lineno.sty~ on some draft option. The bunch of
+% lineno's package options may be a problem, but perhaps the
+% purpose of your class is offering only very few of lineno's
+% options anyway, maybe just one.
+% \end{enumerate}
+% The latter may also be needed with classes that don't follow
+% David Kastrup's rule on changing ~\output~.
+%
% \subsection{%
-% \scs{MakeLineNo}: Actually attach line number
-% \unskip}\label{ss:MLN}
-%
+% \scs{MakeLineNo}: Actually attach line number
+% \unskip}\label{ss:MLN}
+%
% We have to return all the page to the current page, and
% add a box with the line number, without adding
% breakpoints, glue or space. The depth of our line number
% should be equal to the previous depth of the page, in
% case the page breaks here, and the box has to be moved up
-% by that depth.
+% by that depth.
%
% The ~\interlinepenalty~ comes after the ~\vadjust~ from a
% ~\linelabel~, so we increment the line number \emph{after}
% printing it. The macro ~\makeLineNumber~ produces the
% text of the line number, see section \ref{appearance}.
-%
-% (UL) I needed a while to understand
-% the sentence on incrementing. Correctly: writing the
-% ~\newlabel~ to the .aux file is triggered by the signal
-% penalty that ~\end at float~ inserts via ~\vadjust~.
-% However, this could be changed by our new ~\PostponeVadjust~.
-% After ~\c at linenumber~ has been introduced as a \LaTeX\
-% counter, it might be preferable that it behaved like standard
-% \LaTeX\ counters which are incremented shortly before printing.
-% But this may be of little practical relevance in this case,
-% as ~\c at linenumber~ is driven in a very non-standard
-% way.---However still, this behaviour of ~\c at linenumber~
-% generates a problem with our ~edtable.sty~.
-%% \unskip---Before,
-%% I thought that Stephan had reported his reasoning incorrectly
-%% and rather did this because of his ~\resetlinenumber~ which
-%% initializes ~\c at linenumber~ to 1 instead of 0---the latter is
-%% usual with \LaTeX\ counters. Cf._additional comment at
-%% ~\resetlinenumber~.
-% (/UL).
%
+% (UL) I needed a while to understand
+% the sentence on incrementing. Correctly: writing the
+% ~\newlabel~ to the .aux file is triggered by the signal
+% penalty that ~\end at float~ inserts via ~\vadjust~.
+% However, this could be changed by our new ~\PostponeVadjust~.
+% After ~\c at linenumber~ has been introduced as a \LaTeX\
+% counter, it might be preferable that it behaved like standard
+% \LaTeX\ counters which are incremented shortly before printing.
+% But this may be of little practical relevance in this case,
+% as ~\c at linenumber~ is driven in a very non-standard
+% way.---However still, this behaviour of ~\c at linenumber~
+% generates a problem with our ~edtable.sty~.
+%% \unskip---Before,
+%% I thought that Stephan had reported his reasoning incorrectly
+%% and rather did this because of his ~\resetlinenumber~ which
+%% initializes ~\c at linenumber~ to 1 instead of 0---the latter is
+%% usual with \LaTeX\ counters. Cf._additional comment at
+%% ~\resetlinenumber~.
+% (/UL).
+%
% Finally we put in the natural ~\interlinepenalty~, except
-% after the last line.
+% after the last line.
%
-% (New v3.10) Frank Mittelbach points out that box255 may be
-% less deep than the last box inside, so he proposes to
+% (New v3.10) Frank Mittelbach points out that box255 may be
+% less deep than the last box inside, so he proposes to
% measure the page depth with ~\boxmaxdepth=\maxdimen~.
% (/New v3.10)
-%
-% (UL, New v4.00) We also resume the matter of
-% ~\vadjust~ items that was started in section_\ref{ss:output}.
-%
-% \TeX\ puts only nonzero interline
-% penalties into the vertical list (\TeX book p._105), while
-% ~lineno.sty~ formerly replaced the signal interline penalty by
-% something closing with an explicit penalty of the value that
-% the interline penalty would have without ~lineno.sty~.
-% This is usually 0. Now, explicit vertical penalties can be
-% very nasty with respect to ~\nopagebreak~, e.g., a low (even
-% positive) ~\widowpenalty~ may force a widow where you
-% explicitly tried to forbid it by ~\nopagebreak~
-% (see explanation soon below).
-% The ~\nopagebreak~ we create here would never work if all
-% those zero penalties were present.---On
-% the other hand, we cannot just omit Stephan's zero penalties,
-% because \TeX\ puts a penalty of 10000 after what ~lineno.sty~
-% inserts (\TeX book p._125). This penalty must be overridden
-% to allow page breaks between ordinary lines. To revive
-% ~\nopagebreak~, we therefore replace those zero (or low)
-% penalties by penalties that the user demanded by
-% ~\nopagebreak~.---This mechanism is not perfect and does not
-% exactly restore the original \LaTeX\ working of ~\pagebreak~
-% and ~\nopagebreak~. Viz., if there are several vertical
-% penalties after a line which were produced by closely sitting
-% ~\[no]pagebreak~s, without ~lineno.sty~ the lowest penalty would
-% be effective (cf._\TeX book exercise_14.10). Our mechanism, by
-% contrast, chooses the \emph{last} user-set penalty of the line
-% as the effective one. It would not be very difficult to come
-% more close to the original mechanism, but until someone urges
-% us we will cling to the present simple way. You may consider an
-% advantage of the difference between our mechanism and the
-% original one that the user here can actually override low
-% penalties by ~\nopagebreak~, which may be what a lay \LaTeX\
-% user would expect.
-%% ---Zero glue would do instead of zero
-%% penalty! This could make things easier. Maybe next time.
-%% <- v4.4: No, problem with column depth.
-% (/UL, /New v4.00)
+%
+% (UL, New v4.00) We also resume the matter of
+% ~\vadjust~ items that was started in section_\ref{ss:output}.
+%
+% \TeX\ puts only nonzero interline
+% penalties into the vertical list (\TeX book p._105), while
+% ~lineno.sty~ formerly replaced the signal interline penalty by
+% something closing with an explicit penalty of the value that
+% the interline penalty would have without ~lineno.sty~.
+% This is usually 0. Now, explicit vertical penalties can be
+% very nasty with respect to ~\nopagebreak~, e.g., a low (even
+% positive) ~\widowpenalty~ may force a widow where you
+% explicitly tried to forbid it by ~\nopagebreak~
+% (see explanation soon below).
+% The ~\nopagebreak~ we create here would never work if all
+% those zero penalties were present.---On
+% the other hand, we cannot just omit Stephan's zero penalties,
+% because \TeX\ puts a penalty of 10000 after what ~lineno.sty~
+% inserts (\TeX book p._125). This penalty must be overridden
+% to allow page breaks between ordinary lines. To revive
+% ~\nopagebreak~, we therefore replace those zero (or low)
+% penalties by penalties that the user demanded by
+% ~\nopagebreak~.---This mechanism is not perfect and does not
+% exactly restore the original \LaTeX\ working of ~\pagebreak~
+% and ~\nopagebreak~. Viz., if there are several vertical
+% penalties after a line which were produced by closely sitting
+% ~\[no]pagebreak~s, without ~lineno.sty~ the lowest penalty would
+% be effective (cf._\TeX book exercise_14.10). Our mechanism, by
+% contrast, chooses the \emph{last} user-set penalty of the line
+% as the effective one. It would not be very difficult to come
+% more close to the original mechanism, but until someone urges
+% us we will cling to the present simple way. You may consider an
+% advantage of the difference between our mechanism and the
+% original one that the user here can actually override low
+% penalties by ~\nopagebreak~, which may be what a lay \LaTeX\
+% user would expect.
+%% ---Zero glue would do instead of zero
+%% penalty! This could make things easier. Maybe next time.
+%% <- v4.4: No, problem with column depth.
+% (/UL, /New v4.00)
\def\MakeLineNo{%
- \@LN at maybe@normalLineNumber % v4.31
+ \@LN at maybe@normalLineNumber % v4.31
\boxmaxdepth\maxdimen\setbox\z@\vbox{\unvbox\@cclv}%
\@tempdima\dp\z@ \unvbox\z@
\sbox\@tempboxa{\hb at xt@\z@{\makeLineNumber}}%
-%%
-% (New v4.00) Previously,
+%%
+% (New v4.00) Previously,
% \begin{old}\begin{verbatim}
% % \stepcounter{linenumber}%
% \end{verbatim}
% \end{old}
%% %% TODO: Still first `\begin{old}'?
-% followed. (Of course, there was no
-% comment mark; I put it there to make
-% reading the actual code easy.)
-%
-% (New v4.22: improved) Why not just
+% followed. (Of course, there was no
+% comment mark; I put it there to make
+% reading the actual code easy.)
+%
+% (New v4.22: improved) Why not just
% \[~\global\advance\c at linenumber\@ne~?\]
-% ~\stepcounter~ additionally resets ``subordinate''
-% counters, but which could these (usefully) be?
-% Again, may be column counters with ~edtable.sty~!?
-%
-% But then, our ~edtable.sty~ and its ~longtable~ option
-% should use it as well. So use a shorthand supporting
-% uniformity. You can even use it as a hook for choosing
-% ~\global\advance\c at linenumber\@ne~ instead of our choice.
-% (/New v4.22)
-%%
+% ~\stepcounter~ additionally resets ``subordinate''
+% counters, but which could these (usefully) be?
+% Again, may be column counters with ~edtable.sty~!?
+%
+% But then, our ~edtable.sty~ and its ~longtable~ option
+% should use it as well. So use a shorthand supporting
+% uniformity. You can even use it as a hook for choosing
+% ~\global\advance\c at linenumber\@ne~ instead of our choice.
+% (/New v4.22)
+%%
\stepLineNumber
-%%
-% (New v4.4) Now
-%%
- \ht\@tempboxa\z@ \@LN at depthbox
-%%
-% appends the box containing the line number without changing
-% ~\prevdepth~---see end of section.
-% Now is the time for inserting the $\dots$ (/New v4.4)
-%% The line number has now been placed (it may be invisible
-%% depending on the modulo feature), so
-%% we can insert the
-% ~\vadjust~ items. We cannot do this much later, because
-% their right place is above the artificial interline
-% penalty which Stephan's code will soon insert
-% (cf._\TeX book p._105). The next command is just ~\relax~
-% if no ~\vadjust~ items have been accumulated for the
-% current line. Otherwise it is a list macro inserting
-% the ~\vadjust~ items and finally resetting itself.
+%%
+% (New v4.4) Now
+%%
+ \ht\@tempboxa\z@ \@LN at depthbox
+%%
+% appends the box containing the line number without changing
+% ~\prevdepth~---see end of section.
+% Now is the time for inserting the $\dots$ (/New v4.4)
+%% The line number has now been placed (it may be invisible
+%% depending on the modulo feature), so
+%% we can insert the
+% ~\vadjust~ items. We cannot do this much later, because
+% their right place is above the artificial interline
+% penalty which Stephan's code will soon insert
+% (cf._\TeX book p._105). The next command is just ~\relax~
+% if no ~\vadjust~ items have been accumulated for the
+% current line. Otherwise it is a list macro inserting
+% the ~\vadjust~ items and finally resetting itself.
% (This is made in section_\ref{ss:PVadj} below.)
-% If the final item is a penalty, it is stored so it can
-% compete with other things about page breaking.
-%%
- \@LN at do@vadjusts
- \count@\lastpenalty
-%%
-% At this place,
+% If the final item is a penalty, it is stored so it can
+% compete with other things about page breaking.
+%%
+ \@LN at do@vadjusts
+ \count@\lastpenalty
+%%
+% At this place,
% \begin{old}\begin{verbatim}
% % \ifnum\outputpenalty=-\linenopenaltypar\else
% \end{verbatim}
% \end{old}
-% originally followed. We need something \emph{before} the
-% ~\else~:
-%%
- \ifnum\outputpenalty=-\linenopenaltypar
- \ifnum\count@=\z@ \else
-%%
-% So final ~\pagebreak[0]~ or ~\nopagebreak[0]~ has no
-% effect---but this will make a difference after headings only,
-% where nobody should place such a thing anyway.
-%%
- \xdef\@LN at parpgbrk{%
+% originally followed. We need something \emph{before} the
+% ~\else~:
+%%
+ \ifnum\outputpenalty=-\linenopenaltypar
+ \ifnum\count@=\z@ \else
+%%
+% So final ~\pagebreak[0]~ or ~\nopagebreak[0]~ has no
+% effect---but this will make a difference after headings only,
+% where nobody should place such a thing anyway.
+%%
+ \xdef\@LN at parpgbrk{%
\penalty\the\count@
\global\let\noexpand\@LN at parpgbrk
- \noexpand\@LN at screenoff@pen}% v4.4
-%%
-% That penalty will replace former ~\kern\z@~ in
+ \noexpand\@LN at screenoff@pen}% v4.4
+%%
+% That penalty will replace former ~\kern\z@~ in
% ~\linenumberpar~, see subsection_\ref{ss:calls}.---A
-% few days earlier, I tried to send just a penalty value.
-% However, the ~\kern\z@~ in ~\linenumberpar~ is crucial,
-% as I then found out. See below.---The final penalty is
-% repeated, but this does no harm. (It would not be very
-% difficult to avoid the repeating, but it may even be
-% less efficient.) It may be repeated due to the previous
-% ~\xdef~, but it may be repeated as well below in the
-% present macro where artificial interline penalty is to
+% few days earlier, I tried to send just a penalty value.
+% However, the ~\kern\z@~ in ~\linenumberpar~ is crucial,
+% as I then found out. See below.---The final penalty is
+% repeated, but this does no harm. (It would not be very
+% difficult to avoid the repeating, but it may even be
+% less efficient.) It may be repeated due to the previous
+% ~\xdef~, but it may be repeated as well below in the
+% present macro where artificial interline penalty is to
% be overridden.
-%%
+%%
\fi
\else
-%%
-% (/New v4.00)
-%% Corrected code alignment with v4.11.
+%%
+% (/New v4.00)
+%% Corrected code alignment with v4.11.
\@tempcnta\outputpenalty
\advance\@tempcnta -\linenopenalty
-%%
-% (New v4.00)
+%%
+% (New v4.00)
% \begin{old}\begin{verbatim}
% % \penalty\@tempcnta
% \end{verbatim}
% \end{old}
-% followed previously. To give ~\nopagebreak~ a chance,
-% we do
-%% Corrected code alignment with v4.11.
- \penalty \ifnum\count@<\@tempcnta \@tempcnta \else \count@ \fi
-%%
-% instead.---In ~linenox0.sty~, the ~\else~ thing once was omitted.
-% Sergei Mariev's complaint (thanks!) showed that it is vital
-% (see comment before ~\MakeLineNo~).
-% The remaining ~\fi~ from previous package version closes the
-% ~\ifnum\outputpenalty~\dots
-% (/New v4.00)
-%%
+% followed previously. To give ~\nopagebreak~ a chance,
+% we do
+%% Corrected code alignment with v4.11.
+ \penalty \ifnum\count@<\@tempcnta \@tempcnta \else \count@ \fi
+%%
+% instead.---In ~linenox0.sty~, the ~\else~ thing once was omitted.
+% Sergei Mariev's complaint (thanks!) showed that it is vital
+% (see comment before ~\MakeLineNo~).
+% The remaining ~\fi~ from previous package version closes the
+% ~\ifnum\outputpenalty~\dots
+% (/New v4.00)
+%%
\fi
}
-% (New v4.00)
+% (New v4.00)
-\newcommand\stepLineNumber{\stepcounter{linenumber}}
+\newcommand\stepLineNumber{\stepcounter{linenumber}}
-% For reason, see use above. (/New v4.00)
-%% %% TODO v4.4+: ~\newcommand~ more often!?
-%
-% (New v4.4) The depth preserving trick is drawn here from
-% ~\MakeLineNo~ because it will be used again in
+% For reason, see use above. (/New v4.00)
+%% %% TODO v4.4+: ~\newcommand~ more often!?
+%
+% (New v4.4) The depth preserving trick is drawn here from
+% ~\MakeLineNo~ because it will be used again in
% section_\ref{ss:calls}.
-\def\@LN at depthbox{%
+\def\@LN at depthbox{%
\dp\@tempboxa=\@tempdima
- \nointerlineskip \kern-\@tempdima \box\@tempboxa}
+ \nointerlineskip \kern-\@tempdima \box\@tempboxa}
-% (/New v4.4)
-%
+% (/New v4.4)
+%
% \section{%
-% Control line numbering
+% Control line numbering
% \unskip}
% \subsection{%
-% Inserting \scs{output} calls %% own subsec. v4.4.
+% Inserting \scs{output} calls %% own subsec. v4.4.
% \unskip}\label{ss:calls}
% The line numbering is controlled via ~\par~. \LaTeX\
% saved the \TeX-primitive ~\par~ in ~\@@par~. We push it
@@ -935,163 +937,163 @@
% one level further out, and redefine ~\@@par~ to insert
% the ~\interlinepenalty~ needed to trigger the
% line numbering. And we need to allow pagebreaks after a
-% paragraph.
-%
+% paragraph.
+%
% New (2.05beta): the prevgraf test. A paragraph that ends with a
% displayed equation, a ~\noindent\par~ or ~wrapfig.sty~ produce empty
% paragraphs. These should not get a spurious line number via
-% ~\linenopenaltypar~.
+% ~\linenopenaltypar~.
\let\@@@par\@@par
\newcount\linenoprevgraf
-% (UL) And needs ~\linenoprevgraf~
-% to be a counter? Perhaps there may be a paragraph having
-% thousands of lines, so ~\mathchardef~ doesn't suffice (really??).
+% (UL) And needs ~\linenoprevgraf~
+% to be a counter? Perhaps there may be a paragraph having
+% thousands of lines, so ~\mathchardef~ doesn't suffice (really??).
%%
-%% %% TODO: limitations of lines per paragraph elsewhere?
-%% %% Signal penalties, e.g.!? ~\deadcycles~!?
+%% %% TODO: limitations of lines per paragraph elsewhere?
+%% %% Signal penalties, e.g.!? ~\deadcycles~!?
%%
-% A macro ending on ~\relax~ might suffice, but would be
-% somewhat slow. I think I will use ~\mathchardef~ next time.
-% Or has any user used ~\linenoprevgraf~? (/UL)
+% A macro ending on ~\relax~ might suffice, but would be
+% somewhat slow. I think I will use ~\mathchardef~ next time.
+% Or has any user used ~\linenoprevgraf~? (/UL)
-%% v4.33: changed code alignment for better understanding.
-\def\linenumberpar{%
- \ifvmode \@@@par \else
+%% v4.33: changed code alignment for better understanding.
+\def\linenumberpar{%
+ \ifvmode \@@@par \else
\ifinner \@@@par \else
- \xdef\@LN at outer@holdins{\the\holdinginserts}% v4.2
+ \xdef\@LN at outer@holdins{\the\holdinginserts}% v4.2
\advance \interlinepenalty \linenopenalty
\linenoprevgraf \prevgraf
- \global \holdinginserts \thr@@
+ \global \holdinginserts \thr@@
\@@@par
\ifnum\prevgraf>\linenoprevgraf
\penalty-\linenopenaltypar
\fi
-%%
-% (New v4.00)
+%%
+% (New v4.00)
% \begin{old}\begin{verbatim}
-% % \kern\z@
+% % \kern\z@
% \end{verbatim}
% \end{old}
-% was here previously. What for?
-% According to \TeX book p._125, Stephan's
-% interline penalty is changed into 10000. At the end of a
-% paragraph, the ~\parskip~ would follow that penalty of 10000,
-% so there could be a page break neither at the
-% ~\parskip~ nor at the ~\baselineskip~ (\TeX book p._110)---so
-% there could never be a page break between two paragraphs.
-% So something must screen off the 10000 penalty.
-% Indeed, the ~\kern~ is a place to break.
+% was here previously. What for?
+% According to \TeX book p._125, Stephan's
+% interline penalty is changed into 10000. At the end of a
+% paragraph, the ~\parskip~ would follow that penalty of 10000,
+% so there could be a page break neither at the
+% ~\parskip~ nor at the ~\baselineskip~ (\TeX book p._110)---so
+% there could never be a page break between two paragraphs.
+% So something must screen off the 10000 penalty.
+% Indeed, the ~\kern~ is a place to break.
% (Stephan once knew this: see `allow pagebreaks' above.)
-%
-% Formerly, I tried to replace ~\kern\z@~ by
+%
+% Formerly, I tried to replace ~\kern\z@~ by
% \begin{old}\begin{verbatim}
-% % \penalty\@LN at parpgpen\relax
+% % \penalty\@LN at parpgpen\relax
% \end{verbatim}
% \end{old}
-% ---but this allows a page break after heading. So:
-%%
- \@LN at parpgbrk
-%%
-%% After heading, ~\kern\z@~ resulting from previous line
-%% (see below) is followed by ~\write~ or ~\penalty10000~,
-%% so causes no page break.
-%
-% These and similar changes were formerly done by ~linenox1.sty~.
-% (/New v4.00)
-%
-% (New v4.4)
-% A ~\belowdisplayskip~ may precede the previous when the paragraph
-% ends on a display-math; or there may be a ~\topsep~ from a list, etc.
-% ~\addvspace~ couldn't take account for it with ~\kern\z@~
-% here. v4.32 therefore moved the space down -- with at least two
-% bad consequences.
-% Moreover, David Josef Dev observes that ~\kern\z@~ may
-% inappropriately yield column depth 0pt.
-% For these reasons, we introduce ~\@LN at screenoff@pen~ below.
-% (/New v4.4)
-%%
+% ---but this allows a page break after heading. So:
+%%
+ \@LN at parpgbrk
+%%
+%% After heading, ~\kern\z@~ resulting from previous line
+%% (see below) is followed by ~\write~ or ~\penalty10000~,
+%% so causes no page break.
+%
+% These and similar changes were formerly done by ~linenox1.sty~.
+% (/New v4.00)
+%
+% (New v4.4)
+% A ~\belowdisplayskip~ may precede the previous when the paragraph
+% ends on a display-math; or there may be a ~\topsep~ from a list, etc.
+% ~\addvspace~ couldn't take account for it with ~\kern\z@~
+% here. v4.32 therefore moved the space down -- with at least two
+% bad consequences.
+% Moreover, David Josef Dev observes that ~\kern\z@~ may
+% inappropriately yield column depth 0pt.
+% For these reasons, we introduce ~\@LN at screenoff@pen~ below.
+% (/New v4.4)
+%%
\global\holdinginserts\@LN at outer@holdins % v4.2
\advance\interlinepenalty -\linenopenalty
- \fi % from \ifinner ... \else
- \fi} % from \ifvmode ... \else
+ \fi % from \ifinner ... \else
+ \fi} % from \ifvmode ... \else
-% (New v4.00, v4.4) Initialize ~\@LN at parpgbrk~, accounting
-% for earlier space and for appropriate columndepth.
-% We use former ~\MakeLineNo~'s depth-preverving trick
-% ~\@LN at depthbox~ again:
+% (New v4.00, v4.4) Initialize ~\@LN at parpgbrk~, accounting
+% for earlier space and for appropriate columndepth.
+% We use former ~\MakeLineNo~'s depth-preverving trick
+% ~\@LN at depthbox~ again:
-\def\@LN at screenoff@pen{%
- \ifdim\lastskip=\z@
- \@tempdima\prevdepth \setbox\@tempboxa\null
+\def\@LN at screenoff@pen{%
+ \ifdim\lastskip=\z@
+ \@tempdima\prevdepth \setbox\@tempboxa\null
\@LN at depthbox \fi}
-\global\let\@LN at parpgbrk\@LN at screenoff@pen
+\global\let\@LN at parpgbrk\@LN at screenoff@pen
-% (/New v4.4, v4.00)
+% (/New v4.4, v4.00)
% \subsection{%
% Turning on/off %% own subsec. v4.4.
% \unskip}\label{ss:OnOff}
% The basic commands to enable and disable line numbers.
-% ~\@par~ and ~\par~ are only touched, when they are ~\let~
+% ~\@par~ and ~\par~ are only touched, when they are ~\let~
% to ~\@@@par~/~\linenumberpar~. The line number may be
% reset to 1 with the star-form, or set by an optional
-% argument ~[~<number>~]~.
-%
-% (New v4.00) We add ~\ifLineNumbers~ etc.\ since
-% a number of our new adjustments need to know whether
-% linenumbering is active. This just provides a kind of
-% shorthand for ~\ifx\@@par\linenumberpar~; moreover it is
-% more stable: who knows what may happen to ~\@@par~?---A
-% caveat: ~\ifLineNumbers~ may be wrong. E.g., it may be
-% ~\iffalse~ where it acts, while a ~\linenumbers~ a few
-% lines below---in the same paragraph---brings about that
-% the line where the ~\ifLineNumbers~ appears gets a
-% marginal number.
-%% Better implementation suggested below.
-%%
-% (New v4.3) Just noticed: Such tricks have been
-% disallowed with v4.11, see subsections_\ref{ss:LL}
+% argument ~[~<number>~]~.
+%
+% (New v4.00) We add ~\ifLineNumbers~ etc.\ since
+% a number of our new adjustments need to know whether
+% linenumbering is active. This just provides a kind of
+% shorthand for ~\ifx\@@par\linenumberpar~; moreover it is
+% more stable: who knows what may happen to ~\@@par~?---A
+% caveat: ~\ifLineNumbers~ may be wrong. E.g., it may be
+% ~\iffalse~ where it acts, while a ~\linenumbers~ a few
+% lines below---in the same paragraph---brings about that
+% the line where the ~\ifLineNumbers~ appears gets a
+% marginal number.
+%% Better implementation suggested below.
+%%
+% (New v4.3) Just noticed: Such tricks have been
+% disallowed with v4.11, see subsections_\ref{ss:LL}
% and_\ref{ss:OnOff}.---Moreover, the switching between
-% meanings of ~\linelabel~ for a possible error message
-% as of v4.11 is removed. Speed is difficult to esteem
-% and also depends on applications. Just use the most
-% simple code you find. (/New v4.3)
+% meanings of ~\linelabel~ for a possible error message
+% as of v4.11 is removed. Speed is difficult to esteem
+% and also depends on applications. Just use the most
+% simple code you find. (/New v4.3)
-\newif\ifLineNumbers \LineNumbersfalse
+\newif\ifLineNumbers \LineNumbersfalse
-% (/New v4.00)
+% (/New v4.00)
-\def\linenumbers{%
- \LineNumberstrue % v4.00
- \xdef\@LN at outer@holdins{\the\holdinginserts}% v4.3
+\def\linenumbers{%
+ \LineNumberstrue % v4.00
+ \xdef\@LN at outer@holdins{\the\holdinginserts}% v4.3
%%
-% (New v4.3) The previous line is for ~{linenomath}~
-% in a first numbered paragraph. (/New v4.3)
-%%
+% (New v4.3) The previous line is for ~{linenomath}~
+% in a first numbered paragraph. (/New v4.3)
+%%
\let\@@par\linenumberpar
- % \let\linelabel\@LN at linelabel % v4.11, removed v4.3
+ % \let\linelabel\@LN at linelabel % v4.11, removed v4.3
\ifx\@par\@@@par\let\@par\linenumberpar\fi
\ifx\par\@@@par\let\par\linenumberpar\fi
- \@LN at maybe@moduloresume % v4.31
+ \@LN at maybe@moduloresume % v4.31
\@ifnextchar[{\resetlinenumber}%]
{\@ifstar{\resetlinenumber}{}}%
}
-\def\nolinenumbers{%
+\def\nolinenumbers{%
\LineNumbersfalse % v4.00
\let\@@par\@@@par
- % \let\linelabel\@LN at LLerror % v4.11, removed v4.3
+ % \let\linelabel\@LN at LLerror % v4.11, removed v4.3
\ifx\@par\linenumberpar\let\@par\@@@par\fi
\ifx\par\linenumberpar\let\par\@@@par\fi
}
-% (New v4.00) Moreover, it is useful to switch to
-% ~\nolinenumbers~ in ~\@arrayparboxrestore~. We postpone this
-% to section_\ref{ss:ReDef} where we'll have an appending macro
-% for doing this. (/New v4.00)
-%
+% (New v4.00) Moreover, it is useful to switch to
+% ~\nolinenumbers~ in ~\@arrayparboxrestore~. We postpone this
+% to section_\ref{ss:ReDef} where we'll have an appending macro
+% for doing this. (/New v4.00)
+%
% What happens with a display math? Since ~\par~ is not executed,
% when breaking the lines before a display, they will not get
% line numbers. Sorry, but I do not dare to change
@@ -1103,15 +1105,15 @@
% See the subsection below, for a wrapper environment to make
% it work. But that requires to wrap each and every display
% in your \LaTeX\ source %%.
-%% v4.3:
-% (see option ~displaymath~ in subsections_\ref{ss:v3opts}
-% and_\ref{ss:display} for some relief [UL]).
+%% v4.3:
+% (see option ~displaymath~ in subsections_\ref{ss:v3opts}
+% and_\ref{ss:display} for some relief [UL]).
%
% The next two commands are provided to turn on line
% numbering in a specific mode. Please note the difference:
% for pagewise numbering, ~\linenumbers~ comes first to
% inhibit it from seeing optional arguments, since
-% re-/presetting the counter is useless.
+% re-/presetting the counter is useless.
\def\pagewiselinenumbers{\linenumbers\setpagewiselinenumbers}
\def\runninglinenumbers{\setrunninglinenumbers\linenumbers}
@@ -1119,25 +1121,25 @@
% Finally, it is a \LaTeX\ style, so we provide for the use
% of environments, including the suppression of the
% following paragraph's indentation.
-%
-%% TODO: v4.4+:
-% (UL) I am drawing the following
-% private thoughts of Stephan's to publicity so that others may
-% think about them---or to remind myself of them in an efficient
-% way. (/UL)
-%% UL changed `%%%' to `% %' below.
-%% TODO: add \par to \linenumbers, if called from an environment. %% v4.3
+%
+%% TODO: v4.4+:
+% (UL) I am drawing the following
+% private thoughts of Stephan's to publicity so that others may
+% think about them---or to remind myself of them in an efficient
+% way. (/UL)
+%% UL changed `%%%' to `% %' below.
+%% TODO: add \par to \linenumbers, if called from an environment. %% v4.3
%% ToDO: add an \@endpe hack if \linenumbers are turned on
-% \begin{old}\begin{verbatim}
+% \begin{old}\begin{verbatim}
% % TO DO: add \par to \linenumbers, if called from an environment.
% % To DO: add an \@endpe hack if \linenumbers are turned on
% % in horizontal mode. {\par\parskip\z@\noindent} or
% % something.
% \end{verbatim}
-% \end{old}
-% (UL) However, I rather think that ~\linenumbers~ and %% v4.31
-% ~\nolinenumbers~ should execute a ~\par~ already. (Then the
-% ~\par~s in the following definitions should be removed.) (/UL)
+% \end{old}
+% (UL) However, I rather think that ~\linenumbers~ and %% v4.31
+% ~\nolinenumbers~ should execute a ~\par~ already. (Then the
+% ~\par~s in the following definitions should be removed.) (/UL)
\@namedef{linenumbers*}{\par\linenumbers*}
\@namedef{runninglinenumbers*}{\par\runninglinenumbers*}
@@ -1154,19 +1156,19 @@
% Display math
% \unskip}\label{ss:DM}
%
-% Now we tackle the problem to get display math working.
+% Now we tackle the problem to get display math working.
% There are different options.
% \begin{enumerate}\item[
-% 1.] Precede every display math with a ~\par~.
+% 1.] Precede every display math with a ~\par~.
% Not too good.
% \item[
-% 2.] Change ~\interlinepenalty~ and associates globally.
+% 2.] Change ~\interlinepenalty~ and associates globally.
% Unstable.
% \item[
-% 3.] Wrap each display math with a ~{linenomath}~
-% environment.
+% 3.] Wrap each display math with a ~{linenomath}~
+% environment.
% \end{enumerate}
-% We'll go for option 3. See if it works:
+% We'll go for option 3. See if it works:
% \begin{linenomath}
% \begin{equation}
% display \ math
@@ -1178,7 +1180,7 @@
% \begin{eqnarray}
% multi && line \\
% display && math \\
-% &
+% &
% \begin{array}{c}
% with \\
% array
@@ -1187,7 +1189,7 @@
% \end{eqnarray}
% \end{linenomath*}
% including multline displays.
-%
+%
% First, here are two macros to turn
% on linenumbering on paragraphs preceeding displays, with
% numbering the lines of the display itself, or without.
@@ -1196,20 +1198,20 @@
% not numbered. Nor does it harm to wrap a display
% twice, e.q, in case you have some ~{equation}~s wrapped
% explicitely, and later you redefine ~\equation~ to do it
-% automatically.
-%
-% (New v4.3) To avoid the spurious line number above a
-% display in vmode, I insert ~\ifhmode~. (/New v4.3)
+% automatically.
+%
+% (New v4.3) To avoid the spurious line number above a
+% display in vmode, I insert ~\ifhmode~. (/New v4.3)
\newcommand\linenomathNonumbers{%
- \ifLineNumbers
-%% \ifx\@@par\@@@par\else
+ \ifLineNumbers
+%% \ifx\@@par\@@@par\else
\ifnum\interlinepenalty>-\linenopenaltypar
- \global\holdinginserts\thr@@
+ \global\holdinginserts\thr@@
\advance\interlinepenalty \linenopenalty
- \ifhmode % v4.3
+ \ifhmode % v4.3
\advance\predisplaypenalty \linenopenalty
- \fi
+ \fi
\fi
\fi
\ignorespaces
@@ -1216,14 +1218,14 @@
}
\newcommand\linenomathWithnumbers{%
- \ifLineNumbers
+ \ifLineNumbers
%% \ifx\@@par\@@@par\else
\ifnum\interlinepenalty>-\linenopenaltypar
- \global\holdinginserts\thr@@
+ \global\holdinginserts\thr@@
\advance\interlinepenalty \linenopenalty
- \ifhmode % v4.3
+ \ifhmode % v4.3
\advance\predisplaypenalty \linenopenalty
- \fi
+ \fi
\advance\postdisplaypenalty \linenopenalty
\advance\interdisplaylinepenalty \linenopenalty
\fi
@@ -1246,11 +1248,11 @@
\@namedef{linenomath*}{\linenomathWithnumbers}%
}
-\def\endlinenomath{%
- \ifLineNumbers % v4.3
- \global\holdinginserts\@LN at outer@holdins % v4.21
- \fi
- \global % v4.21 support for LaTeX2e earlier than 1996/07/26.
+\def\endlinenomath{%
+ \ifLineNumbers % v4.3
+ \global\holdinginserts\@LN at outer@holdins % v4.21
+ \fi
+ \global % v4.21 support for LaTeX2e earlier than 1996/07/26.
\@ignoretrue
}
\expandafter\let\csname endlinenomath*\endcsname\endlinenomath
@@ -1264,21 +1266,21 @@
%
% \section{%
% Line number references
-% \unskip}\label{s:LNref}
-% \subsection{%
-% Internals %% New subsec. v4.3.
+% \unskip}\label{s:LNref}
+% \subsection{%
+% Internals %% New subsec. v4.3.
% \unskip}
% The only way to get a label to a line number in a
% paragraph is to ask the output routine to mark it.
%
-% (New v4.00) The following two paragraphs don't hold any
-% longer, see below. (/New v4.00)
+% (New v4.00) The following two paragraphs don't hold any
+% longer, see below. (/New v4.00)
% \begin{old}\begin{verbatim}
% % We use the marginpar mechanism to hook to ~\output~ for a
% % second time. Marginpars are floats with number $-1$, we
% % fake marginpars with No $-2$. Originally, every negative
% % numbered float was considered to be a marginpar.
-% %
+% %
% % The float box number ~\@currbox~ is used to transfer the
% % label name in a macro called ~\@LNL@~<box-number>.
% \end{verbatim}
@@ -1286,14 +1288,14 @@
% A ~\newlabel~ is written to the aux-file. The reference
% is to ~\theLineNumber~, \emph{not} ~\thelinenumber~.
% This allows to hook in, as done below for pagewise line
-% numbering.
+% numbering.
%
% (New v3.03) The ~\@LN at ExtraLabelItems~ are added for a hook
% to keep packages like ~{hyperref}~ happy. (/New v3.03)
-%
-% (New v4.00)
-% We fire the ~\marginpar~ mechanism, so we leave \LaTeX's
-% ~\@addmarginpar~ untouched.
+%
+% (New v4.00)
+% We fire the ~\marginpar~ mechanism, so we leave \LaTeX's
+% ~\@addmarginpar~ untouched.
% \begin{old}\begin{verbatim}
% % \let\@LN at addmarginpar\@addmarginpar
% % \def\@addmarginpar{%
@@ -1308,47 +1310,47 @@
% % \fi}
% \end{verbatim}
% \end{old}
-% OK, we keep Stephan's ~\@LN at ExtraLabelItems~:
-% (/New v4.00)
+% OK, we keep Stephan's ~\@LN at ExtraLabelItems~:
+% (/New v4.00)
\let\@LN at ExtraLabelItems\@empty
-% (New v4.00)
-% We imitate the ~\marginpar~ mechanism without using the
-% ~\@freelist~ boxes. ~\linelabel~ will indeed place a signal
-% penalty (~\@Mllbcodepen~, new), and it will put a label into
-% some list macro ~\@LN at labellist~. A new part of the output
-% routine will take the labels from the list and will write
-% ~\newlabel~s to the .aux file.
-%
+% (New v4.00)
+% We imitate the ~\marginpar~ mechanism without using the
+% ~\@freelist~ boxes. ~\linelabel~ will indeed place a signal
+% penalty (~\@Mllbcodepen~, new), and it will put a label into
+% some list macro ~\@LN at labellist~. A new part of the output
+% routine will take the labels from the list and will write
+% ~\newlabel~s to the .aux file.
+%
% The following is a version of \LaTeX's ~\@xnext~.
\def\@LN at xnext#1\@lt#2\@@#3#4{\def#3{#1}\gdef#4{#2}}
-% This takes an item ~#1~ from a list ~#4~ into ~#3~;
-% to be used as ~\expandafter\@LN at xnext#4\@@#3#4~.
-% Our lists use ~\@lt~ after each item for separating.
-% Indeed, there will be another list macro which can
-% appear as argument ~#4~, this will be used for moving
-% ~\vadjust~ items (section_\ref{ss:PVadj}).
-% The list for ~\linelabel~s is the following:
+% This takes an item ~#1~ from a list ~#4~ into ~#3~;
+% to be used as ~\expandafter\@LN at xnext#4\@@#3#4~.
+% Our lists use ~\@lt~ after each item for separating.
+% Indeed, there will be another list macro which can
+% appear as argument ~#4~, this will be used for moving
+% ~\vadjust~ items (section_\ref{ss:PVadj}).
+% The list for ~\linelabel~s is the following:
-\global\let\@LN at labellist\@empty
+\global\let\@LN at labellist\@empty
-% The next is the new part of the output routine writing the
-% ~\newlabel~ to the .aux file. Since it is no real page output,
-% the page is put back to top of the main vertical list.
+% The next is the new part of the output routine writing the
+% ~\newlabel~ to the .aux file. Since it is no real page output,
+% the page is put back to top of the main vertical list.
-\def\WriteLineNo{%
- \unvbox\@cclv
- \expandafter \@LN at xnext \@LN at labellist \@@
- \@LN at label \@LN at labellist
- \protected at write\@auxout{}{\string\newlabel{\@LN at label}%
- {{\theLineNumber}{\thepage}\@LN at ExtraLabelItems}}%
+\def\WriteLineNo{%
+ \unvbox\@cclv
+ \expandafter \@LN at xnext \@LN at labellist \@@
+ \@LN at label \@LN at labellist
+ \protected at write\@auxout{}{\string\newlabel{\@LN at label}%
+ {{\theLineNumber}{\thepage}\@LN at ExtraLabelItems}}%
}
% (/New v4.00)
-%
+%
% \subsection{%
% The \scs{linelabel} command
% \unskip}\label{ss:LL}
@@ -1360,9 +1362,9 @@
% \marginpar{\tiny\raggedright
% See if it works: This paragraph
% starts on page \pageref{demo}, line
-% \ref{demo}.
+% \ref{demo}.
% \unskip}%
-% (New v4.11)
+% (New v4.11)
% \begin{old}\begin{verbatim}
% % If you use this command outside a ~\linenumbers~
% % paragraph, you will get references to some bogus
@@ -1372,12 +1374,12 @@
% % or not. A ~\linelabel~ may legally appear earlier than
% % ~\linenumbers~.
% \end{verbatim}
-% \end{old}
-% This trick is better not allowed---see subsections_\ref{ss:LL}
+% \end{old}
+% This trick is better not allowed---see subsections_\ref{ss:LL}
% and_\ref{ss:OnOff}.
% (/New v4.11)
%
-% ~\linelabel~
+% ~\linelabel~
% \begin{old}\begin{verbatim}
% %, via a fake float number $-2$, %% new mechanism v4.00
% \end{verbatim}
@@ -1393,13 +1395,13 @@
% A ~\linelabel~ is allowed only in outer horizontal mode.
% In outer vertical mode we start a paragraph, and ignore
% trailing spaces (by fooling ~\@esphack~).
-%
-% (New v4.00) We aim at relaxing the previous condition.
-% We insert a hook ~\@LN at mathhook~ and a shorthand
-% ~\@LN at postlabel~ to support the ~mathrefs~ option which
-% allows ~\linelabel~ in math mode.
%
-% The next paragraph is no longer valid.
+% (New v4.00) We aim at relaxing the previous condition.
+% We insert a hook ~\@LN at mathhook~ and a shorthand
+% ~\@LN at postlabel~ to support the ~mathrefs~ option which
+% allows ~\linelabel~ in math mode.
+%
+% The next paragraph is no longer valid.
% \begin{old}\begin{verbatim}
% % The argument of ~\linelabel~ is put into a macro with a
% % name derived from the number of the allocated float box.
@@ -1406,43 +1408,43 @@
% % Much of the rest is dummy float setup.
% \end{verbatim}
% \end{old}
-% (/New v4.00)
+% (/New v4.00)
%
-% (New v4.11)
-% \begin{old}\begin{verbatim}
+% (New v4.11)
+% \begin{old}\begin{verbatim}
% % \def\linelabel#1{%
% \end{verbatim}
-% \end{old}
-% I forgot ~\linenumbers~ today, costed me hours or so.
+% \end{old}
+% I forgot ~\linenumbers~ today, costed me hours or so.
-\def\@LN at LLerror{\PackageError{lineno}{%
- \string\linelabel\space without \string\linenumbers}{%
+\def\@LN at LLerror{\PackageError{lineno}{%
+ \string\linelabel\space without \string\linenumbers}{%
Just see documentation. (New feature v4.11)}\@gobble}
-% (New v4.3) Here some things have changed for v4.3.
-% The previous ~#1~ has been replaced by ~\@gobble~.
-% Ensuing, the ~\linelabel~ error message is re-implemented.
-% I find it difficult to compare efficiency of slight
-% alternatives---so choose an easy one. Explicit switching
-% in ~\linenumbers~ and ~\nolinenumbers~ is an additional
-% command that may better be avoided.
+% (New v4.3) Here some things have changed for v4.3.
+% The previous ~#1~ has been replaced by ~\@gobble~.
+% Ensuing, the ~\linelabel~ error message is re-implemented.
+% I find it difficult to compare efficiency of slight
+% alternatives---so choose an easy one. Explicit switching
+% in ~\linenumbers~ and ~\nolinenumbers~ is an additional
+% command that may better be avoided.
-\newcommand\linelabel{%
- \ifLineNumbers \expandafter \@LN at linelabel
+\newcommand\linelabel{%
+ \ifLineNumbers \expandafter \@LN at linelabel
\else \expandafter \@LN at LLerror \fi}
-%%\let\linelabel\@LN at LLerror
+%%\let\linelabel\@LN at LLerror
-\gdef\@LN at linelabel#1{%
-%%
-% ~\gdef~ for hyperref ``symbolically''. (/New v4.11)
-%%
- \ifx\protect\@typeset at protect
-%%
-% $\gets$ And a ~\linelabel~ should never be replicated in a
-% mark or a TOC entry. (/New v4.3)
-%%
+\gdef\@LN at linelabel#1{%
+%%
+% ~\gdef~ for hyperref ``symbolically''. (/New v4.11)
+%%
+ \ifx\protect\@typeset at protect
+%%
+% $\gets$ And a ~\linelabel~ should never be replicated in a
+% mark or a TOC entry. (/New v4.3)
+%%
\ifvmode
- \ifinner \else
+ \ifinner \else
\leavevmode \@bsphack \@savsk\p@
\fi
\else
@@ -1452,10 +1454,10 @@
\ifinner
\@parmoderr
\else
-%%
-% (New v4.00)
-%%
- \@LN at postlabel{#1}%
+%%
+% (New v4.00)
+%%
+ \@LN at postlabel{#1}%
% \begin{old}\begin{verbatim}
% % \@floatpenalty -\@Mii
% % \@next\@currbox\@freelist
@@ -1467,55 +1469,55 @@
% % \endgroup
% % \@ignorefalse \@esphack
% \end{verbatim}
-% \end{old}
-% (/New v4.00)
-%%
- \@esphack
-%%
-% (New v4.00)
-% The ~\@ignorefalse~ was appropriate before because the
-% ~\@Esphack~ in ~\end at float~ set ~\@ignoretrue~. Cf._\LaTeX's
-% ~\@xympar~. (/New v4.00)
-%%
+% \end{old}
+% (/New v4.00)
+%%
+ \@esphack
+%%
+% (New v4.00)
+% The ~\@ignorefalse~ was appropriate before because the
+% ~\@Esphack~ in ~\end at float~ set ~\@ignoretrue~. Cf._\LaTeX's
+% ~\@xympar~. (/New v4.00)
+%%
\fi
\else
-%%
-% (New v4.00)
-%%
+%%
+% (New v4.00)
+%%
\@LN at mathhook{#1}%
% \begin{old}\begin{verbatim}
% % \@parmoderr
% \end{verbatim}
-% \end{old}
-% Instead of complaining, you may just do your job.
-% (/New v4.00)
-%%
+% \end{old}
+% Instead of complaining, you may just do your job.
+% (/New v4.00)
+%%
\fi
- \fi
+ \fi
}
-% (New v4.00) The shorthand just does what happened
-% with ~linenox0.sty~ before ~ednmath0.sty~ (New v4.1:
-% now ~mathrefs~ option) appeared, and
-% the hook is initialized to serve the same purpose.
-% So errors come just where Stephan had built them in,
-% and this is just the \LaTeX\ ~\marginpar~ behaviour.
+% (New v4.00) The shorthand just does what happened
+% with ~linenox0.sty~ before ~ednmath0.sty~ (New v4.1:
+% now ~mathrefs~ option) appeared, and
+% the hook is initialized to serve the same purpose.
+% So errors come just where Stephan had built them in,
+% and this is just the \LaTeX\ ~\marginpar~ behaviour.
\def\@LN at postlabel#1{\g at addto@macro\@LN at labellist{#1\@lt}%
- \vadjust{\penalty-\@Mllbcodepen}}
+ \vadjust{\penalty-\@Mllbcodepen}}
\def\@LN at mathhook#1{\@parmoderr}
-% (/New v4.00)
-%
-% \modulolinenumbers[3]
+% (/New v4.00)
+%
+% \modulolinenumbers[3]
% \firstlinenumber{1}
% \section{%
% The appearance of the line numbers
% \unskip}\label{appearance}
% \subsection{%
-% Basic code %% own subsec. v4.2.
+% Basic code %% own subsec. v4.2.
% \unskip}
-%
+%
% The line numbers are set as ~\tiny\sffamily\arabic{linenumber}~,
% $10pt$ left of the text. With options to place it
% right of the text, or . . .
@@ -1522,10 +1524,10 @@
%
% . . . here are the hooks:
-\def\makeLineNumberLeft{%
+\def\makeLineNumberLeft{%
\hss\linenumberfont\LineNumber\hskip\linenumbersep}
-\def\makeLineNumberRight{%
+\def\makeLineNumberRight{%
\linenumberfont\hskip\linenumbersep\hskip\columnwidth
\hb at xt@\linenumberwidth{\hss\LineNumber}\hss}
@@ -1539,7 +1541,7 @@
% Margin switching requires ~pagewise~ numbering mode, but
% choosing the left or right margin for the numbers always
-% works.
+% works.
\def\switchlinenumbers{\@ifstar
{\let\makeLineNumberOdd\makeLineNumberRight
@@ -1588,70 +1590,70 @@
% Only the running mode counter may be reset, or preset,
% for individual paragraphs. The pagewise counter must
% give a unique anonymous number for each line.
-%
-% (New v4.3) ~\newcounter{linenumber}~
-% was the only ~\newcounter~ in the whole package, and
-% formerly I was near using ~\newcount~ instead. Yet
-% ~\newcounter~ may be quite useful for ~\includeonly~.
-% It also supports resetting ``subcounters'', but what
-% could these be? Well, ~edtable~ might introduce a
-% subcounter for columns.
-% (Note that \LaTeX's setting commands would work with
-% ~\newcount\c at linenumber~ already, apart from this.
-% And perhaps sometimes ~\refstepcounter{linenumber}~
-% wouldn't work---cf._my discussion of ~\stepcounter~ in
-% subsection_\ref{ss:MLN}, similarly ~\refstep...~ would
-% be quite useless.
-% Even the usual redefinitions of ~\thelinenumber~ would
-% work. It is nice, on the other hand, that
-% ~\thelinenumber~ is predefined here. \LaTeX's
-% initialization of the value perhaps just serves making
-% clear \LaTeX\ counters should always be changed
-% globally.---Shortened and improved the discussion here.)
-% (/New v4.3)
-%
-% (New v4.22)
-% ~\c at linenumber~ usually is---globally---incremented by
-% ~\stepcounter~ (at present), so resetting it locally would
-% raise the save stack problem of \TeX book p._301, moreover
-% it would be is useless, there is no hope of keeping the
-% values local (but see subsection_\ref{ss:ILN}). So I insert
-% ~\global~: (/New v4.22)
+%
+% (New v4.3) ~\newcounter{linenumber}~
+% was the only ~\newcounter~ in the whole package, and
+% formerly I was near using ~\newcount~ instead. Yet
+% ~\newcounter~ may be quite useful for ~\includeonly~.
+% It also supports resetting ``subcounters'', but what
+% could these be? Well, ~edtable~ might introduce a
+% subcounter for columns.
+% (Note that \LaTeX's setting commands would work with
+% ~\newcount\c at linenumber~ already, apart from this.
+% And perhaps sometimes ~\refstepcounter{linenumber}~
+% wouldn't work---cf._my discussion of ~\stepcounter~ in
+% subsection_\ref{ss:MLN}, similarly ~\refstep...~ would
+% be quite useless.
+% Even the usual redefinitions of ~\thelinenumber~ would
+% work. It is nice, on the other hand, that
+% ~\thelinenumber~ is predefined here. \LaTeX's
+% initialization of the value perhaps just serves making
+% clear \LaTeX\ counters should always be changed
+% globally.---Shortened and improved the discussion here.)
+% (/New v4.3)
+%
+% (New v4.22)
+% ~\c at linenumber~ usually is---globally---incremented by
+% ~\stepcounter~ (at present), so resetting it locally would
+% raise the save stack problem of \TeX book p._301, moreover
+% it would be is useless, there is no hope of keeping the
+% values local (but see subsection_\ref{ss:ILN}). So I insert
+% ~\global~: (/New v4.22)
-\newcommand*\resetlinenumber[1][\@ne]{%
+\newcommand*\resetlinenumber[1][\@ne]{%
\global % v4.22
\c at runninglinenumber#1\relax}
-% (New v4.00)
+% (New v4.00)
% \begin{old}\begin{verbatim}
% % \newcommand\resetlinenumber[1][1]{\c at runninglinenumber#1}
% \end{verbatim}
% \end{old}
-% Added ~\relax~, being quite sure that this does no harm
-% and is quite important, as with ~\setcounter~ etc.
-% I consider this a bug fix (although perhaps no user has
-% ever had a problem with this). (/New v4.00)
-%
-% (v4.22: I had made much fuss about resetting subordinate
+% Added ~\relax~, being quite sure that this does no harm
+% and is quite important, as with ~\setcounter~ etc.
+% I consider this a bug fix (although perhaps no user has
+% ever had a problem with this). (/New v4.00)
+%
+% (v4.22: I had made much fuss about resetting subordinate
% counters here---removed, somewhat postponed.)
-%
-%% TODO v4.4+:
-%% \newcommand*\resetlinenumber[1][\@ne]{%
-%% \ifx\c at linenumber\c at runninglinenumber
+%
+%% TODO v4.4+:
+%% \newcommand*\resetlinenumber[1][\@ne]{%
+%% \ifx\c at linenumber\c at runninglinenumber
%% \global\c at linenumber#1\relax
-%% \global\advance\c at linenumber\m at ne
-%% \stepLineNumber
-%% \else
-%% \PackageError{lineno}%% Shorthand!?
-%% {You can't reset line number in pagewise mode}%
-%% {This should suffice.}%
-%% \fi
-%% }
-%
+%% \global\advance\c at linenumber\m at ne
+%% \stepLineNumber
+%% \else
+%% \PackageError{lineno}%% Shorthand!?
+%% {You can't reset line number in pagewise mode}%
+%% {This should suffice.}%
+%% \fi
+%% }
+%
% \subsection{%
% Running line numbers
-% \unskip}
-%
+% \unskip}
+%
% Running mode is easy, ~\LineNumber~ and ~\theLineNumber~
% produce ~\thelinenumber~, which defaults to
% ~\arabic{linenumber}~, using the ~\c at runninglinenumber~
@@ -1670,12 +1672,12 @@
%
% \subsection{%
% Pagewise line numbers
-% \unskip}\label{ss:PW}
-%
+% \unskip}\label{ss:PW}
+%
% Difficult, if you think about it. The number has to be
% printed when there is no means to know on which page it
-% will end up, except through the aux-file. My solution
-% is really expensive, but quite robust.
+% will end up, except through the aux-file. My solution
+% is really expensive, but quite robust.
%
% With version ~v2.00~ the hashsize requirements are
% reduced, because we do not need one controlsequence for
@@ -1712,58 +1714,58 @@
% there might else be in ~\thepage~.
\def\logtheLineNumber{\protected at write\@auxout{}{%
-%%
+%%
% (New v4.00) (UL)
-% As Daniel Doherty observed, the earlier line
+% As Daniel Doherty observed, the earlier line
% \begin{old}\begin{verbatim}
% % \string\@LN{\the\c at linenumber}{\noexpand\the\c at page}}}
% \end{verbatim}
% \end{old}
-% here may lead into an infinite loop when the user resets
-% the page number (think of ~\pagenumbering~, e.g.).
-% Stephan and I brief\/ly discussed the matter and decided
-% to introduce a ``physical''-page counter to which
-% ~\logtheLineNumber~ refers. It was Stephan's idea to use
-% ~\cl at page~ for reliably augmenting the ``physical''-page
-% counter. However, this relies on the output routine once
-% doing ~\stepcounter{page}~. Before Stephan's
-% suggestion, I had thought of appending the stepping to
-% \LaTeX's ~\@outputpage~.---So the macro definition ends
-% as follows.
-%%
- \string\@LN{\the\c at linenumber}{%
+% here may lead into an infinite loop when the user resets
+% the page number (think of ~\pagenumbering~, e.g.).
+% Stephan and I brief\/ly discussed the matter and decided
+% to introduce a ``physical''-page counter to which
+% ~\logtheLineNumber~ refers. It was Stephan's idea to use
+% ~\cl at page~ for reliably augmenting the ``physical''-page
+% counter. However, this relies on the output routine once
+% doing ~\stepcounter{page}~. Before Stephan's
+% suggestion, I had thought of appending the stepping to
+% \LaTeX's ~\@outputpage~.---So the macro definition ends
+% as follows.
%%
-% (New v4.2)
-%% \noexpand\number\n at LN@truepage}}}
+ \string\@LN{\the\c at linenumber}{%
%%
-% The `truepage' counter must start with ~\c@~ so it works
-% with ~\include~, and the ~\@addtoreset~ below is needed
-% for the same purpose.
-%%
- \noexpand\the\c at LN@truepage}}}
+% (New v4.2)
+%% \noexpand\number\n at LN@truepage}}}
+%%
+% The `truepage' counter must start with ~\c@~ so it works
+% with ~\include~, and the ~\@addtoreset~ below is needed
+% for the same purpose.
+%%
+ \noexpand\the\c at LN@truepage}}}
-%% \newcount\n at LN@truepage
+%% \newcount\n at LN@truepage
%% \g at addto@macro\cl at page{\global\advance\n at LN@truepage\@ne}
-\newcount\c at LN@truepage
+\newcount\c at LN@truepage
\g at addto@macro\cl at page{\global\advance\c at LN@truepage\@ne}
\@addtoreset{LN at truepage}{@ckpt}
-% (/New v4.2) I had thought of offering more
-% features of a \LaTeX\ counter. However, the user should
-% better \emph{not} have access to this counter. ~\c at page~
-% should suffice as a pagewise master counter.---To be sure,
-% along the present lines the user \emph{can} manipulate
-% ~\c at LN@truepage~ by ~\stepcounter{page}~. E.g., she might
-% do this in order to manually insert a photograph. Well,
-% seems not to harm.
-%
-% The above usage of ~\g at addto@macro~ and ~\cl at page~ may be
-% not as stable as Stephan intended. His proposal used
-% ~\xdef~ directly. But he used ~\cl at page~ as well, and who
-% knows \dots{} And as to ~\g at addto@macro~, I have introduced
-% it for list macros anyway.
-% (/UL) (/New v4.00)
-%
+% (/New v4.2) I had thought of offering more
+% features of a \LaTeX\ counter. However, the user should
+% better \emph{not} have access to this counter. ~\c at page~
+% should suffice as a pagewise master counter.---To be sure,
+% along the present lines the user \emph{can} manipulate
+% ~\c at LN@truepage~ by ~\stepcounter{page}~. E.g., she might
+% do this in order to manually insert a photograph. Well,
+% seems not to harm.
+%
+% The above usage of ~\g at addto@macro~ and ~\cl at page~ may be
+% not as stable as Stephan intended. His proposal used
+% ~\xdef~ directly. But he used ~\cl at page~ as well, and who
+% knows \dots{} And as to ~\g at addto@macro~, I have introduced
+% it for list macros anyway.
+% (/UL) (/New v4.00)
+%
% From the aux-file we get one macro ~\LN at P~<page> for each
% page with line numbers on it. This macro calls four other
% macros with one argument each. These macros are
@@ -1773,7 +1775,7 @@
% We need sort of a pointer to the first page with line
% numbers, initiallized to point to nothing:
-\def\LastNumberedPage{first}
+\def\LastNumberedPage{first}
\def\LN at Pfirst{\nextLN\relax}
% The four dynamic macros are initiallized to reproduce
@@ -1786,7 +1788,7 @@
% During the end-document run through the aux-files, we
% disable ~\@LN~. I may put in a check here later, to give
-% a rerun recommendation.
+% a rerun recommendation.
\AtEndDocument{\let\@LN\@gobbletwo}
@@ -1799,7 +1801,7 @@
% current page and line number, with the
% \emph{pointer-to-the-next-page} pointing to nothing. And
% the macro for the previous page will be redefined to point
-% to the current one.
+% to the current one.
%
% If the macro for the current page already exists, just
% redefine the \emph{last-line-number} entry.
@@ -1814,8 +1816,8 @@
\def\@@LN#1#2#3#4{\ifx#1\relax
\ifx#2\relax\gdef#2{#3}\fi
- \expandafter\@@@LN\csname LN at P\LastNumberedPage\endcsname#1%
- \xdef#1{\lastLN{#3}\firstLN{#3}%
+ \expandafter\@@@LN\csname LN at P\LastNumberedPage\endcsname#1%
+ \xdef#1{\lastLN{#3}\firstLN{#3}%
\pageLN{#4}{\@LN at column}{#2}\nextLN\relax}%
\else
\def\lastLN##1{\noexpand\lastLN{#3}}%
@@ -1825,7 +1827,7 @@
% The previous page macro gets its pointer to the
% current one, replacing the ~\relax~ with the cs-token
-% ~\LN at P~<page>.
+% ~\LN at P~<page>.
\def\@@@LN#1#2{{\def\nextLN##1{\noexpand\nextLN\noexpand#2}%
\xdef#1{#1}}}
@@ -1836,11 +1838,11 @@
% be a completely different one. We maintain a cache,
% which is ~\let~ to the last page's macro. But for now
% it is initialized to expand ~\LN at first~, where the poiner
-% to the first numbered page has been stored in.
+% to the first numbered page has been stored in.
\def\NumberedPageCache{\LN at Pfirst}
-% To find out on which page the current ~\c at linenumber~ is,
+% To find out on which page the current ~\c at linenumber~ is,
% we define the four dynamic macros to do something usefull
% and execute the current cache macro. ~\lastLN~ is run
% first, testing if the line number in question may be on a
@@ -1855,7 +1857,7 @@
% page, we start over from the beginning. Else, ~\nextLN~
% will be disabled, and ~\pageLN~ will run
% ~\gotNumberedPage~ with four arguments: the first line
-% number on this column, the page number, the column
+% number on this column, the page number, the column
% number, and the first line on the page.
\def\testFirstNumberedPage#1{\ifnum#1>\c at linenumber
@@ -1879,7 +1881,7 @@
}
% When we switch to another page, we first have to make
-% sure that it is there. If we are done with the last
+% sure that it is there. If we are done with the last
% page, we probably need to run \TeX\ again, but for the
% rest of this run, the cache macro will just return four
% zeros. This saves a lot of time, for example if you have
@@ -1887,7 +1889,7 @@
% the whole page-list would be searched in vain again and
% again for the second half of the document.
%
-% If there is another page, we iterate the search.
+% If there is another page, we iterate the search.
\def\testNextNumberedPage#1{\ifx#1\relax
\global\def\NumberedPageCache{\gotNumberedPage0000}%
@@ -1903,10 +1905,10 @@
% \linelabel{demo2}
% \marginpar{\tiny\raggedright
% Let's see if it finds the label
-% on page \pageref{demo},
+% on page \pageref{demo},
% line \ref{demo}, and back here
% on page \pageref{demo2}, line
-% \ref{demo2}.
+% \ref{demo2}.
% \unskip}%
% To separate the official hooks from the internals there is
% this equivalence, to hook in later for whatever purpose:
@@ -1923,7 +1925,7 @@
\def\gotNumberedPage#1#2#3#4{\oddNumberedPagefalse
\ifodd \if at twocolumn #3\else #2\fi\relax\oddNumberedPagetrue\fi
- \advance\c at linenumber\@ne
+ \advance\c at linenumber\@ne
\ifcolumnwiselinenumbers
\subtractlinenumberoffset{#1}%
\else
@@ -1949,7 +1951,7 @@
% in the ~\c at linenumber~ counter. This is what gets printed
% to the aux-file to make a label:
-\def\thePagewiseLineNumber{\protect
+\def\thePagewiseLineNumber{\protect
\getpagewiselinenumber{\the\c at linenumber}}%
% And here is what happens when the label is refered to:
@@ -1971,7 +1973,7 @@
% [MEM:] One macro per page. Great improvement over v1.02,
% which had one control sequence per line in
% addition. It blew the hash table after some five
-% thousand lines.
+% thousand lines.
% \end{description}
%
% \subsection{%
@@ -1978,83 +1980,83 @@
% Twocolumn mode (New v3.06)
% \unskip}
%
-% Twocolumn mode requires another patch to the ~\output~
-% routine, in order to print a column tag to the .aux
+% Twocolumn mode requires another patch to the ~\output~
+% routine, in order to print a column tag to the .aux
% file.
-\AtBeginDocument{% v4.2, revtex4.cls (e.g.).
- % <- TODO v4.4+: Or better in \LineNoLaTeXOutput!?
- \let\@LN at orig@makecol\@makecol}
+\AtBeginDocument{% v4.2, revtex4.cls (e.g.).
+ % <- TODO v4.4+: Or better in \LineNoLaTeXOutput!?
+ \let\@LN at orig@makecol\@makecol}
\def\@LN at makecol{%
\@LN at orig@makecol
\setbox\@outputbox \vbox{%
\boxmaxdepth \@maxdepth
- \protected at write\@auxout{}{%
+ \protected at write\@auxout{}{%
\string\@LN at col{\if at firstcolumn1\else2\fi}%
}%
- \box\@outputbox
+ \box\@outputbox
}% \vbox
-} %% TODO cf. revtexln.sty.
+} %% TODO cf. revtexln.sty.
-\def\@LN at col{\def\@LN at column} % v4.22, removed #1.
+\def\@LN at col{\def\@LN at column} % v4.22, removed #1.
\@LN at col{1}
%
% \subsection{%
-% Numbering modulo $m$, starting at $f$
+% Numbering modulo $m$, starting at $f$
%% Numbering modulo 5
-% \unskip}\label{ss:Mod}
-%
+% \unskip}\label{ss:Mod}
+%
% Most users want to have only one in five lines numbered.
% ~\LineNumber~ is supposed to produce the outfit of the
% line number attached to the line, while ~\thelinenumber~
% is used also for references, which should appear even if
-% they are not multiples of five.
-%
-% (New v4.00) Moreover, some users want to
-% control which line number should be printed first. Support
-% of this is now introduced here---see ~\firstlinenumber~
-% below.---~numline.sty~ by Michael Jaegermann and
-% James Fortune offers controlling which \emph{final}
-% line numbers should not be printed. What is
-% it good for? We ignore this here until some user demands
-% it.---Peter Wilson's ~ledmac.sty~ offers much different
-% choices of line numbers to be printed, due to Wayne Sullivan.
-% (/New v4.00)
-%
-% (New v4.22) ~\c at linenumbermodulo~ is rendered a
-% fake counter, as discussed since v4.00. So it can
-% no longer be set by ~\setcounter~. ~\modulolinenumbers~
-% serves this purpose. Well, does anybody want to do
-% what worked with ~\addtocounter~? (Then please tell
-% me.)---At least, ~\value~ still works. For the same
-% purpose I rename the fake `firstlinenumber' counter
-% ~\n at ...~ to ~\c at ...~. (/New v4.22)
+% they are not multiples of five.
+%
+% (New v4.00) Moreover, some users want to
+% control which line number should be printed first. Support
+% of this is now introduced here---see ~\firstlinenumber~
+% below.---~numline.sty~ by Michael Jaegermann and
+% James Fortune offers controlling which \emph{final}
+% line numbers should not be printed. What is
+% it good for? We ignore this here until some user demands
+% it.---Peter Wilson's ~ledmac.sty~ offers much different
+% choices of line numbers to be printed, due to Wayne Sullivan.
+% (/New v4.00)
+%
+% (New v4.22) ~\c at linenumbermodulo~ is rendered a
+% fake counter, as discussed since v4.00. So it can
+% no longer be set by ~\setcounter~. ~\modulolinenumbers~
+% serves this purpose. Well, does anybody want to do
+% what worked with ~\addtocounter~? (Then please tell
+% me.)---At least, ~\value~ still works. For the same
+% purpose I rename the fake `firstlinenumber' counter
+% ~\n at ...~ to ~\c at ...~. (/New v4.22)
% \begin{old}\begin{verbatim}
-% % \newcount\c at linenumbermodulo % removed for v4.22
+% % \newcount\c at linenumbermodulo % removed for v4.22
% \end{verbatim}
% \end{old}
-%
-%% Removed for v4.22:
-%% (UL) On my question why, e.g.,
-%% ~\chardef~ would not have sufficed, Stephan couldn't remember
-%% exactly; guessed that he wanted to offer \LaTeX\ counter
-%% facilities. However, the typical ones don't come this way.
-%% So I'm quite sure that I will change this next time.
-%%
-%% However, I observed at least two times that users gave a very
-%% high value to ~\c at linenumbermodulo~ in order to suppress
-%% printing of the line number. One of these users preferred an
-%% own way of handling line numbers, just wanted to use
-%% ~\linelabel~ and ~ednotes.sty~ features. Should we support this?
-%% I rather would like to advise them to
-%% ~\let\makeLineNumber\relax~. (/UL)
-%
-% (New v4.00) \par
-% ~\themodulolinenumber~ waits for being declared
-% ~\LineNumber~ by ~\modulolinenumbers~. (This has
-% been so before, no change.) Here is how it
-% looked before:
+%
+%% Removed for v4.22:
+%% (UL) On my question why, e.g.,
+%% ~\chardef~ would not have sufficed, Stephan couldn't remember
+%% exactly; guessed that he wanted to offer \LaTeX\ counter
+%% facilities. However, the typical ones don't come this way.
+%% So I'm quite sure that I will change this next time.
+%%
+%% However, I observed at least two times that users gave a very
+%% high value to ~\c at linenumbermodulo~ in order to suppress
+%% printing of the line number. One of these users preferred an
+%% own way of handling line numbers, just wanted to use
+%% ~\linelabel~ and ~ednotes.sty~ features. Should we support this?
+%% I rather would like to advise them to
+%% ~\let\makeLineNumber\relax~. (/UL)
+%
+% (New v4.00) \par
+% ~\themodulolinenumber~ waits for being declared
+% ~\LineNumber~ by ~\modulolinenumbers~. (This has
+% been so before, no change.) Here is how it
+% looked before:
% \begin{old}\begin{verbatim}
% % \def\themodulolinenumber{{\@tempcnta\c at linenumber
% % \divide\@tempcnta\c at linenumbermodulo
@@ -2062,367 +2064,367 @@
% % \ifnum\@tempcnta=\c at linenumber\thelinenumber\fi
% % }}
% \end{verbatim}
-% \end{old}
-% (UL) This was somewhat slow. This arithmetic
-% happens at every line. This time I tend to declare an extra
-%% TODO v4.4+
-% line counter (as opposed to my usual recommendations to use
-% counters as rarely as possible) which is stepped every line.
-% It could be incremented in the same way as ~\c at LN@truepage~
-% is incremented via ~\cl at page~! This is another point in favour
-% of ~{linenumber}~ being a \LaTeX\ counter!
-% When this new counter equals ~\c at linenumbermodulo~, it is reset,
-% and ~\thelinenumber~ is executed.---It gets much slower by my
-% support of controlling the first line number below. I should
+% \end{old}
+% (UL) This was somewhat slow. This arithmetic
+% happens at every line. This time I tend to declare an extra
+%% TODO v4.4+
+% line counter (as opposed to my usual recommendations to use
+% counters as rarely as possible) which is stepped every line.
+% It could be incremented in the same way as ~\c at LN@truepage~
+% is incremented via ~\cl at page~! This is another point in favour
+% of ~{linenumber}~ being a \LaTeX\ counter!
+% When this new counter equals ~\c at linenumbermodulo~, it is reset,
+% and ~\thelinenumber~ is executed.---It gets much slower by my
+% support of controlling the first line number below. I should
% improve this.---On
-%% %% TODO v4.4+--pagewise!?
-% the other hand, time expense means very little nowadays,
-% while the number of \TeX\ counters still is limited.
-%
-% For the same purpose, moreover, attaching the line number
-% box could be intercepted earlier (in ~\MakeLineNo~),
-% without changing ~\LineNumber~. However, this may be
-% bad for the latter's announcement as a wizard interface
+%% %% TODO v4.4+--pagewise!?
+% the other hand, time expense means very little nowadays,
+% while the number of \TeX\ counters still is limited.
+%
+% For the same purpose, moreover, attaching the line number
+% box could be intercepted earlier (in ~\MakeLineNo~),
+% without changing ~\LineNumber~. However, this may be
+% bad for the latter's announcement as a wizard interface
% in section_\ref{s:UserCmds}.
-%%
-%% I wonder about Stephan's group. Its only effect is that
-%% ~\@tempcnta~ is restored after using it. What for is this?
+%%
+%% I wonder about Stephan's group. Its only effect is that
+%% ~\@tempcnta~ is restored after using it. What for is this?
%% I tend to remove the group braces. %% TODO v4.4+
-% (/UL)
-%
-% Here is the new code. It is very near to my ~lnopatch.sty~
-% code which introduced the first line number feature
-% before.---I add starting with a ~\relax~ which is so often
-% recommended---without understanding this really. At least,
-% it will not harm.---Former group braces appear as
-% ~\begingroup~/~\endgroup~ here.
+% (/UL)
+%
+% Here is the new code. It is very near to my ~lnopatch.sty~
+% code which introduced the first line number feature
+% before.---I add starting with a ~\relax~ which is so often
+% recommended---without understanding this really. At least,
+% it will not harm.---Former group braces appear as
+% ~\begingroup~/~\endgroup~ here.
\def\themodulolinenumber{\relax
- \ifnum\c at linenumber<\c at firstlinenumber \else
- \begingroup
+ \ifnum\c at linenumber<\c at firstlinenumber \else
+ \begingroup
\@tempcnta\c at linenumber
- \advance\@tempcnta-\c at firstlinenumber
+ \advance\@tempcnta-\c at firstlinenumber
\divide\@tempcnta\c at linenumbermodulo
\multiply\@tempcnta\c at linenumbermodulo
- \advance\@tempcnta\c at firstlinenumber
+ \advance\@tempcnta\c at firstlinenumber
\ifnum\@tempcnta=\c at linenumber \thelinenumber \fi
- \endgroup
- \fi
+ \endgroup
+ \fi
}
-% (/New v4.00)
-%
+% (/New v4.00)
+%
% The user command to set the modulo counter:
-% (New v4.31) \dots\ a star variant is introduced to implement
-% Hillel Chayim Yisraeli's idea to print the first line number
-% after an interruption of the edited text by some editor's
-% text, regardless of the modulo. If it is 1, it is printed only
+% (New v4.31) \dots\ a star variant is introduced to implement
+% Hillel Chayim Yisraeli's idea to print the first line number
+% after an interruption of the edited text by some editor's
+% text, regardless of the modulo. If it is 1, it is printed only
% with ~\firstlinenumber{1}~. I.e., you use ~\modulolinenumbers*~
-% for the new feature, without the star you get the simpler
-% behaviour that we have had so far. And you can switch back
-% from the refined behaviour to the simple one by using
-% ~\modulolinenumbers~ without the star.---This enhancement
-% is accompanied by a new package option ~modulo*~ which just
-% executes ~\modulolinenumbers*~
-% (subsection_\ref{ss:v3opts}).---`With ~\firstlinenumber{1}~'
-% exactly means: `1' is printed if and only if the last
-% ~\firstlinenumber~ before or in the paragraph that follows
-% the ``interruption'' has argument `1' (or something
-% \emph{expanding} to `1', or (to) something that \TeX\
-% ``reads'' as 1, e.g.: a \TeX\ count register storing
-% 1).---At present, this behaviour may be unsatisfactory with
-% pagewise line-numbering $\dots$ I'll make an experimental
+% for the new feature, without the star you get the simpler
+% behaviour that we have had so far. And you can switch back
+% from the refined behaviour to the simple one by using
+% ~\modulolinenumbers~ without the star.---This enhancement
+% is accompanied by a new package option ~modulo*~ which just
+% executes ~\modulolinenumbers*~
+% (subsection_\ref{ss:v3opts}).---`With ~\firstlinenumber{1}~'
+% exactly means: `1' is printed if and only if the last
+% ~\firstlinenumber~ before or in the paragraph that follows
+% the ``interruption'' has argument `1' (or something
+% \emph{expanding} to `1', or (to) something that \TeX\
+% ``reads'' as 1, e.g.: a \TeX\ count register storing
+% 1).---At present, this behaviour may be unsatisfactory with
+% pagewise line-numbering $\dots$ I'll make an experimental
% extra package if someone complains \dots
-\newcommand\modulolinenumbers{%
+\newcommand\modulolinenumbers{%
\@ifstar
- {\def\@LN at maybe@moduloresume{%
+ {\def\@LN at maybe@moduloresume{%
\global\let\@LN at maybe@normalLineNumber
- \@LN at normalLineNumber}%
- \@LN at modulolinenos}%
+ \@LN at normalLineNumber}%
+ \@LN at modulolinenos}%
{\let\@LN at maybe@moduloresume\relax \@LN at modulolinenos}%
}
-\global\let\@LN at maybe@normalLineNumber\relax
-\let\@LN at maybe@moduloresume\relax
-\gdef\@LN at normalLineNumber{%
- \ifnum\c at linenumber=\c at firstlinenumber \else
+\global\let\@LN at maybe@normalLineNumber\relax
+\let\@LN at maybe@moduloresume\relax
+\gdef\@LN at normalLineNumber{%
+ \ifnum\c at linenumber=\c at firstlinenumber \else
\ifnum\c at linenumber>\@ne
- \def\LineNumber{\thelinenumber}%
- \fi
- \fi
+ \def\LineNumber{\thelinenumber}%
+ \fi
+ \fi
%%
-% ~\def~ instead of ~\let~ enables taking account of a
-% redefinition of ~\thelinenumber~ in a present numbering
-% environment (e.g.).
+% ~\def~ instead of ~\let~ enables taking account of a
+% redefinition of ~\thelinenumber~ in a present numbering
+% environment (e.g.).
%%
\global\let\@LN at maybe@normalLineNumber\relax}
-% Instead of changing ~\LineNumber~ directly by
+% Instead of changing ~\LineNumber~ directly by
% ~LN at moduloresume~, these tricks enable ~\modulolinenumbers*~
-% to act as locally as I can make it. I don't know how to
-% avoid that the output routine switches back to the normal
-% modulo behaviour by a global change. (An ~\aftergroup~ may
+% to act as locally as I can make it. I don't know how to
+% avoid that the output routine switches back to the normal
+% modulo behaviour by a global change. (An ~\aftergroup~ may
% fail in admittedly improbable cases.)
\newcommand*\@LN at modulolinenos[1][\z@]{%
-%%
-% The definition of this macro is that of the former
-% ~\modulolinenumbers~. (/New v4.31)
%%
+% The definition of this macro is that of the former
+% ~\modulolinenumbers~. (/New v4.31)
+%%
\let\LineNumber\themodulolinenumber
- \ifnum#1>\@ne
- \chardef % v4.22, note below
+ \ifnum#1>\@ne
+ \chardef % v4.22, note below
\c at linenumbermodulo#1\relax
- \else\ifnum#1=\@ne
+ \else\ifnum#1=\@ne
% \begin{old}\begin{verbatim}
% % \def\LineNumber{\thelinenumber}%
% \end{verbatim}
-% \end{old}
-% (New v4.00) I am putting something here to enable
-% ~\firstlinenumber~ with $~\c at linenumbermodulo~=1$.
-% With ~lnopatch.sty~, a trick was offered for this purpose.
-% It is now obsolete.
-%
- \def\LineNumber{\@LN at ifgreat\thelinenumber}%
-%%
-% (/New v4.00)
-%%
+% \end{old}
+% (New v4.00) I am putting something here to enable
+% ~\firstlinenumber~ with $~\c at linenumbermodulo~=1$.
+% With ~lnopatch.sty~, a trick was offered for this purpose.
+% It is now obsolete.
+%
+ \def\LineNumber{\@LN at ifgreat\thelinenumber}%
+%%
+% (/New v4.00)
+%%
\fi\fi
}
-% (New v4.00) The default of ~\@LN at ifgreat~ is
+% (New v4.00) The default of ~\@LN at ifgreat~ is
\let\@LN at ifgreat\relax
-% The previous changes as soon as ~\firstlinenumber~ is used:
+% The previous changes as soon as ~\firstlinenumber~ is used:
-\newcommand*\firstlinenumber[1]{%
- \chardef\c at firstlinenumber#1\relax
-%%
-% No counter, little values allowed only---OK?---(UL)
-% The change is local---OK? The good thing is that
-% ~\global\firstlinenumber{~<number>~}~ works. Moreover,
+\newcommand*\firstlinenumber[1]{%
+ \chardef\c at firstlinenumber#1\relax
+%%
+% No counter, little values allowed only---OK?---(UL)
+% The change is local---OK? The good thing is that
+% ~\global\firstlinenumber{~<number>~}~ works. Moreover,
% ~\modulolinenumbers~ acts locally as well. (/UL)
%
-% (New v4.31)
-%%
- \let\@LN at ifgreat\@LN at ifgreat@critical}
+% (New v4.31)
+%%
+ \let\@LN at ifgreat\@LN at ifgreat@critical}
\def\@LN at ifgreat@critical{%
- \ifnum\c at linenumber<\c at firstlinenumber
- \expandafter \@gobble
- \fi}%
+ \ifnum\c at linenumber<\c at firstlinenumber
+ \expandafter \@gobble
+ \fi}%
-% (/New v4.31)
-%
-% The default
-% value of ~\c at firstlinenumber~ %% v4.31
-% is 0. This is best for what one would expect from modulo
-% printing.
+% (/New v4.31)
+%
+% The default
+% value of ~\c at firstlinenumber~ %% v4.31
+% is 0. This is best for what one would expect from modulo
+% printing.
\let\c at firstlinenumber=\z@
-%
-% For usage and effects of ~\modulolinenumbers~ and %% v4.31
-% ~\firstlinenumbers~, please consult section_\ref{s:UserCmds}.
-% Two details on ~\firstlinenumbers~ here:
-% (i)_~\firstlinenumber~ acts on a paragraph if and only if
-% (a)_the paragraph is broken into lines ``in line-numbering
-% mode'' (after ~\linenumbers~, e.g.);
-% (b)_it is the last occurrence of a ~\firstlinenumbers~
-% before or in the paragraph.
-% (The practical applications of this that I can imagine
-% don't seem appealing to me.)
-% Cf._the explanation above of how ~\modulolinenumbers~ and
-% ~\firstlinenumbers~ interact---for this and for (ii),
-% which is concerned with possible arguments for
-% ~\firstlinenumbers~.
-%
-% Note that the line numbers of the present section
-% demonstrate the two devices. (/New v4.00)
+%
+% For usage and effects of ~\modulolinenumbers~ and %% v4.31
+% ~\firstlinenumbers~, please consult section_\ref{s:UserCmds}.
+% Two details on ~\firstlinenumbers~ here:
+% (i)_~\firstlinenumber~ acts on a paragraph if and only if
+% (a)_the paragraph is broken into lines ``in line-numbering
+% mode'' (after ~\linenumbers~, e.g.);
+% (b)_it is the last occurrence of a ~\firstlinenumbers~
+% before or in the paragraph.
+% (The practical applications of this that I can imagine
+% don't seem appealing to me.)
+% Cf._the explanation above of how ~\modulolinenumbers~ and
+% ~\firstlinenumbers~ interact---for this and for (ii),
+% which is concerned with possible arguments for
+% ~\firstlinenumbers~.
+%
+% Note that the line numbers of the present section
+% demonstrate the two devices. (/New v4.00)
%%\setcounter{linenumbermodulo}{5}
-\chardef\c at linenumbermodulo=5 % v4.2; ugly?
+\chardef\c at linenumbermodulo=5 % v4.2; ugly?
\modulolinenumbers[1]
-% (New v4.22) The new implementation through ~\chardef~
-% decreases the functionality and raises certain compatibility
-% problems. I face this without fear. The maximum modulo value
-% is now ~255~. I expect that this suffices for usual applications.
-% However, some users have ``abused'' ~lineno.sty~ to get
-% ~ednotes.sty~ features without line numbers, so have set the
-% modulo to a value beyond the total number of lines in their
-% edition. This ought to be replaced by
-% ~\let\makeLineNumber\relax~. (/New v4.22)
-%
-% \section{%
+% (New v4.22) The new implementation through ~\chardef~
+% decreases the functionality and raises certain compatibility
+% problems. I face this without fear. The maximum modulo value
+% is now ~255~. I expect that this suffices for usual applications.
+% However, some users have ``abused'' ~lineno.sty~ to get
+% ~ednotes.sty~ features without line numbers, so have set the
+% modulo to a value beyond the total number of lines in their
+% edition. This ought to be replaced by
+% ~\let\makeLineNumber\relax~. (/New v4.22)
+%
+% \section{%
% Package options
-% \unskip}\label{s:Opts}
-%
-% (New v4.1)
-% The last heading formerly was the heading of what is now
-% subsection_\ref{ss:v3opts}. The options declared there were
-% said to execute user commands only. This was wrong already
-% concerning ~displaymath~ and ~hyperref~. At least, however,
-% these options were no or almost no occasion to skip definitions
-% or allocations. This is different with the options that we now
-% insert.
-%
-%% (New v4.2) v4.00 moved the ``options'' below the
-%% ``extensions''. This was bad with ~\do at mlineno~ in
-%% subsection_\ref{ss:v3opts} which is to control
-%% subsection_\ref{ss:display}---undone here. (/New v4.2)
+% \unskip}\label{s:Opts}
%
+% (New v4.1)
+% The last heading formerly was the heading of what is now
+% subsection_\ref{ss:v3opts}. The options declared there were
+% said to execute user commands only. This was wrong already
+% concerning ~displaymath~ and ~hyperref~. At least, however,
+% these options were no or almost no occasion to skip definitions
+% or allocations. This is different with the options that we now
+% insert.
+%
+%% (New v4.2) v4.00 moved the ``options'' below the
+%% ``extensions''. This was bad with ~\do at mlineno~ in
+%% subsection_\ref{ss:v3opts} which is to control
+%% subsection_\ref{ss:display}---undone here. (/New v4.2)
+%
% \subsection{%
% Extended referencing to line numbers. (v4.2)
% \unskip}
% This subsection explains and declares package option ~addpageno~. %% v4.31
-%
-% If a line to whose number you refer by ~\ref~ is not on the
-% present page, it may be useful to add the number of the page
-% on which the line occurs---and perhaps it should not be added
-% otherwise. In general, you could use the Standard \LaTeX\
-% package varioref for this. However, the latter usually
+%
+% If a line to whose number you refer by ~\ref~ is not on the
+% present page, it may be useful to add the number of the page
+% on which the line occurs---and perhaps it should not be added
+% otherwise. In general, you could use the Standard \LaTeX\
+% package varioref for this. However, the latter usually
% produces verbose output like `on the preceding page'---
-% unless costumized---, while in critical editions, e.g., one
-% may prefer just adding the page number and some mark on the
-% left of the line number, irrespectively of how far the page is
-% apart etc. To support this, package option ~addpageno~
-% provides a command ~\vpagelineref~ to be used in place of
-% ~\ref~. This produces, e.g., `34.15' when referring to line_15
-% on page_34 while the present page is not 34. You can customize
-% the outcome, see the package file ~vplref.sty~ where the code
-% and further details are. You may conceive of
-% ~\vpagelineref~ as a certain customization of varioref's
-% ~\vref~.
-%
-% This implies that option ~addpageno~ requires the files
-% ~vplref.sty~ and ~varioref.sty~. ~addpageno~ automatically
-% loads both of them. Yet you can also load ~varioref.sty~
-% on your own to use its package options.
-%
-% Of course, you might better introduce a shorter command name
-% for ~\vpagelineref~ for your work, while we cannot predict
-% here what shorthand will fit your work. E.g.,
+% unless costumized---, while in critical editions, e.g., one
+% may prefer just adding the page number and some mark on the
+% left of the line number, irrespectively of how far the page is
+% apart etc. To support this, package option ~addpageno~
+% provides a command ~\vpagelineref~ to be used in place of
+% ~\ref~. This produces, e.g., `34.15' when referring to line_15
+% on page_34 while the present page is not 34. You can customize
+% the outcome, see the package file ~vplref.sty~ where the code
+% and further details are. You may conceive of
+% ~\vpagelineref~ as a certain customization of varioref's
+% ~\vref~.
+%
+% This implies that option ~addpageno~ requires the files
+% ~vplref.sty~ and ~varioref.sty~. ~addpageno~ automatically
+% loads both of them. Yet you can also load ~varioref.sty~
+% on your own to use its package options.
+%
+% Of course, you might better introduce a shorter command name
+% for ~\vpagelineref~ for your work, while we cannot predict
+% here what shorthand will fit your work. E.g.,
% ~\newcommand{\lref}{\vpagelineref}~.
-%
-% If you really want to add the page number in \emph{any} case,
-% use, e.g., some ~\myref~ instead of ~\ref~, after
-% \[~newcommand*{\myref}{\pageref{#1}.\ref{#1}}~\]
-% or what you like. You don't need the ~addpageno~ option in
-% this case.
-%
-% ~addpageno~ is due to a suggestion by Sergei Mariev.
+%
+% If you really want to add the page number in \emph{any} case,
+% use, e.g., some ~\myref~ instead of ~\ref~, after
+% \[~newcommand*{\myref}{\pageref{#1}.\ref{#1}}~\]
+% or what you like. You don't need the ~addpageno~ option in
+% this case.
+%
+% ~addpageno~ is due to a suggestion by Sergei Mariev.
-\DeclareOption{addpageno}{%
- \AtEndOfPackage{\RequirePackage{vplref}[2005/04/25]}}
+\DeclareOption{addpageno}{%
+ \AtEndOfPackage{\RequirePackage{vplref}[2005/04/25]}}
-% \subsection{%
-% \scs{linelabel} in math mode
+% \subsection{%
+% \scs{linelabel} in math mode
% \unskip}\label{ss:MathRef}
-%
-% We have made some first steps towards allowing ~\linelabel~ in
-% math mode. Because our code for this is presently experimental,
-% we leave it to the user to decide for the experiment by calling
-% option ~mathrefs~. We are in a hurry now and thus leave the
-% code, explanations, and discussion in the separate package
-% ~ednmath0.sty~. Maybe we later find the time to improve the
-% code and move the relevant content of ~ednmath0.sty~ to here.
-% The optimal situation would be to define ~\linelabel~ from
-% the start so it works in math mode, omitting the ~mathrefs~
-% option.
-%
-% Actually, this package even provides adjustments for analogously
-% allowing ~ednotes.sty~ commands in math mode. Loading the package
-% is postponed to ~\AtBeginDocument~ when we know whether these
-% adjustments are needed.
+%
+% We have made some first steps towards allowing ~\linelabel~ in
+% math mode. Because our code for this is presently experimental,
+% we leave it to the user to decide for the experiment by calling
+% option ~mathrefs~. We are in a hurry now and thus leave the
+% code, explanations, and discussion in the separate package
+% ~ednmath0.sty~. Maybe we later find the time to improve the
+% code and move the relevant content of ~ednmath0.sty~ to here.
+% The optimal situation would be to define ~\linelabel~ from
+% the start so it works in math mode, omitting the ~mathrefs~
+% option.
+%
+% Actually, this package even provides adjustments for analogously
+% allowing ~ednotes.sty~ commands in math mode. Loading the package
+% is postponed to ~\AtBeginDocument~ when we know whether these
+% adjustments are needed.
-\DeclareOption{mathrefs}{\AtBeginDocument
- {\RequirePackage{ednmath0}[2004/08/20]}}
+\DeclareOption{mathrefs}{\AtBeginDocument
+ {\RequirePackage{ednmath0}[2004/08/20]}}
-%
-% \subsection{%
+%
+% \subsection{%
% Arrays, tabular environments (Revised v4.11)
-% \unskip}\label{ss:Tab}
-%
+% \unskip}\label{ss:Tab}
+%
% This subsection explains and declares package options %% v4.31
% ~edtable~, ~longtable~, and ~nolongtablepatch~.
%
-% The standard \LaTeX\ tabular environments come as single
-% boxes, so the ~lineno.sty~ versions before v4.00 treated them as
-% (parts of) single lines, printing (at most) one line number
-% beside each and stepping the line number counter once only.
-% Moreover, ~\linelabel~s got lost. Of course, tables are
-% usually so high that you will want to treat each row like a
-% line. (Christian Tapp even desires that the lines of table
-% entries belonging to a single row are treated like ordinary
-% lines.) Footnotes get lost in such environments as well, which
+% The standard \LaTeX\ tabular environments come as single
+% boxes, so the ~lineno.sty~ versions before v4.00 treated them as
+% (parts of) single lines, printing (at most) one line number
+% beside each and stepping the line number counter once only.
+% Moreover, ~\linelabel~s got lost. Of course, tables are
+% usually so high that you will want to treat each row like a
+% line. (Christian Tapp even desires that the lines of table
+% entries belonging to a single row are treated like ordinary
+% lines.) Footnotes get lost in such environments as well, which
% was bad for ~ednotes.sty~.
-%
-% We provide adjustments to count lines, print their numbers
-% etc.\ as desired at least for \emph{some} \LaTeX\ tabular
-% environments. (Like with other details, ``some'' is to some
-% extent explained in ~edtable.sty~.) We do this similarly as
-% with option ~mathrefs~ before. We leave code
-% and explanations in the separate package ~edtable.sty~.
-% (For wizards: this package provides adjustments for
-% ~ednotes.sty~ as well. However, in the present case we don't try
-% to avoid them unless ~ednotes.sty~ is loaded.)
-% Package option ~edtable~
-% defines---by loading ~edtable.sty~---an environment ~{edtable}~
-% which is able to change some \LaTeX\ tabular environments
-% with the desired effects. (v4.11: ~edtable.sty~ v1.3 counts
-% \LaTeX's ~{array}~ [etc.\@] as a ``tabular environment'' as
-% well.)
-%
-% The ~{edtable}~ environment doesn't help with ~longtable.sty~,
-% however. To make up for this, ~{longtable}~ is adjusted in a
-% different way---and this happens only when another ~lineno.sty~
-% option ~longtable~ is called. In this case, option ~edtable~
-% needn't be called explicitly: option ~longtable~ works as if
-% ~edtable~ had been called.
-%
-% Now, we are convinced that vertical spacing around
-% ~{longtable}~ works wrongly---see \LaTeX\ bugs database
-% tools/3180 and 3485, or see explanations in the package
+%
+% We provide adjustments to count lines, print their numbers
+% etc.\ as desired at least for \emph{some} \LaTeX\ tabular
+% environments. (Like with other details, ``some'' is to some
+% extent explained in ~edtable.sty~.) We do this similarly as
+% with option ~mathrefs~ before. We leave code
+% and explanations in the separate package ~edtable.sty~.
+% (For wizards: this package provides adjustments for
+% ~ednotes.sty~ as well. However, in the present case we don't try
+% to avoid them unless ~ednotes.sty~ is loaded.)
+% Package option ~edtable~
+% defines---by loading ~edtable.sty~---an environment ~{edtable}~
+% which is able to change some \LaTeX\ tabular environments
+% with the desired effects. (v4.11: ~edtable.sty~ v1.3 counts
+% \LaTeX's ~{array}~ [etc.\@] as a ``tabular environment'' as
+% well.)
+%
+% The ~{edtable}~ environment doesn't help with ~longtable.sty~,
+% however. To make up for this, ~{longtable}~ is adjusted in a
+% different way---and this happens only when another ~lineno.sty~
+% option ~longtable~ is called. In this case, option ~edtable~
+% needn't be called explicitly: option ~longtable~ works as if
+% ~edtable~ had been called.
+%
+% Now, we are convinced that vertical spacing around
+% ~{longtable}~ works wrongly---see \LaTeX\ bugs database
+% tools/3180 and 3485, or see explanations in the package
% ~ltabptch.sty~ (which is to be obtained from CTAN folder
% \path{macros/latex/ltabptch}). Our conviction is so strong
% that the ~longtable~ option loads---after ~longtable.sty~---the
% patch package ~ltabptch.sty~. If the user doesn't want this
-% (maybe preferring her own arrangement with the vertical
-% spacing), she can forbid it by calling ~nolongtablepatch~.
-%
-% The following code just collects some choices, which are
-% then executed in section_\ref{ss:ExOpt}. We use an ~\if...~
-% without ~\newif~ since ~\if...true~ and ~\if...false~
-% would occur at most two times and only within the present
-% package. (~\AtEndOfClass{\RequirePackage{edtable}}~
-% could be used instead, I just overlooked this. Now I don't
-% change it because it allows to change the version requirement
+% (maybe preferring her own arrangement with the vertical
+% spacing), she can forbid it by calling ~nolongtablepatch~.
+%
+% The following code just collects some choices, which are
+% then executed in section_\ref{ss:ExOpt}. We use an ~\if...~
+% without ~\newif~ since ~\if...true~ and ~\if...false~
+% would occur at most two times and only within the present
+% package. (~\AtEndOfClass{\RequirePackage{edtable}}~
+% could be used instead, I just overlooked this. Now I don't
+% change it because it allows to change the version requirement
% at one place only.)
-\let\if at LN@edtable\iffalse
+\let\if at LN@edtable\iffalse
\DeclareOption{edtable}{\let\if at LN@edtable\iftrue}
-\DeclareOption{longtable}{\let\if at LN@edtable\iftrue
+\DeclareOption{longtable}{\let\if at LN@edtable\iftrue
\PassOptionsToPackage{longtable}{edtable}}
-\DeclareOption{nolongtablepatch}{%
+\DeclareOption{nolongtablepatch}{%
\PassOptionsToPackage{nolongtablepatch}{edtable}}
-% (/New v4.1)
-%
-% \subsection{%
-% Switch among settings
+% (/New v4.1)
+%
+% \subsection{%
+% Switch among settings
% \unskip}\label{ss:v3opts}
-%
-% There is a bunch of package options that execute %% v4.2
-%% There is a bunch of package options, all of them executing
-%% executing only user commands (see below). %% Cf. start of section.
-% user commands only.
%
+% There is a bunch of package options that execute %% v4.2
+%% There is a bunch of package options, all of them executing
+%% executing only user commands (see below). %% Cf. start of section.
+% user commands only.
+%
% Options ~left~ (~right~) put the line numbers on the left
% (right) margin. This works in all modes. ~left~ is the
% default.
@@ -2445,9 +2447,9 @@
\switchlinenumbers*%
\runningpagewiselinenumbers}
-% In twocolumn mode, we can switch the line numbers to
+% In twocolumn mode, we can switch the line numbers to
% the outer margin, and/or start with number 1 in each
-% column. Margin switching is covered by the ~switch~
+% column. Margin switching is covered by the ~switch~
% options.
\DeclareOption{columnwise}{\setpagewiselinenumbers
@@ -2464,7 +2466,7 @@
% come to rest. This allows the subtraction of the page
% offset, getting the numbers starting with 1 on top of each
% page, and margin switching in twoside formats becomes
-% possible. The default mode is ~running~.
+% possible. The default mode is ~running~.
%
% The order of declaration of the options is important here
% ~pagewise~ must come after ~switch~, to overide running
@@ -2482,12 +2484,12 @@
\DeclareOption{running}{\setrunninglinenumbers}
% The option ~modulo~ causes only those linenumbers to be
-% printed which are multiples of five.
+% printed which are multiples of five.
\DeclareOption{modulo}{\modulolinenumbers\relax}
-% Option ~modulo*~ modifies ~modulo~ in working like
-% ~\modulolinenumbers*~---see section_\ref{s:UserCmds}.
+% Option ~modulo*~ modifies ~modulo~ in working like
+% ~\modulolinenumbers*~---see section_\ref{s:UserCmds}.
\DeclareOption{modulo*}{\modulolinenumbers*\relax}
@@ -2501,29 +2503,29 @@
\DeclareOption{mathlines}{\linenumberdisplaymath}
-% ~displaymath~ now calls for wrappers of the standard
-% \LaTeX\ display math environment. This was previously
+% ~displaymath~ now calls for wrappers of the standard
+% \LaTeX\ display math environment. This was previously
% done by ~mlineno.sty~.
-%
-% (New v4.3) Option `displaymath' becomes default according
-% to Erik \mbox{Luijten}'s suggestion. I was finally convinced
-% of this as soon as I discovered how to avoid a spurious line
-% number above ~\begin{linenomath}~ (subsection_\ref{ss:DM}).
-% ~\endlinenomath~ provides ~\ignorespaces~, so what could go
-% wrong now?
+%
+% (New v4.3) Option `displaymath' becomes default according
+% to Erik \mbox{Luijten}'s suggestion. I was finally convinced
+% of this as soon as I discovered how to avoid a spurious line
+% number above ~\begin{linenomath}~ (subsection_\ref{ss:DM}).
+% ~\endlinenomath~ provides ~\ignorespaces~, so what could go
+% wrong now?
\DeclareOption{displaymath}{\PackageWarningNoLine{lineno}{%
- Option [displaymath] is obsolete -- default now!}}
-%%
+ Option [displaymath] is obsolete -- default now!}}
+%%
%%\let\do at mlineno\relax
%%\DeclareOption{displaymath}{\let\do at mlineno\@empty}
-% (/New v4.3)
-%
+% (/New v4.3)
+%
% \subsection{%
-% Compatibility with \texttt{hyperref} %% own subsec. v4.3.
+% Compatibility with \texttt{hyperref} %% own subsec. v4.3.
% \unskip}
-% The ~hyperref~ package, via ~nameref~, requires three more
-% groups in the second argment of a ~\newlabel~. Well, why
+% The ~hyperref~ package, via ~nameref~, requires three more
+% groups in the second argment of a ~\newlabel~. Well, why
% shouldn't it get them? (New v3.07) The presence of the
% ~nameref~ package is now detected automatically
% ~\AtBeginDocument~. (/New v3.07) (Fixed in v3.09) We try
@@ -2530,95 +2532,95 @@
% to be smart, and test ~\AtBeginDocument~ if the ~nameref~
% package is loaded, but ~hyperref~ postpones the loading of
% ~nameref~ too, so this is all in vain.
-%
-% (New v4.3) But we can also test at the first ~\linelabel~.
-% Regarding the error-message for misplaced ~\linelabel~ from v4.11:
-% previously, ~\linenumbers~ rendered ~\linelabel~ the genuine
-% version of ~\linelabel~ from the start on. This doesn't work
-% now, since ~\@LN at linelabel~ may change its meaning after the
-% first ~\linenumbers~ and before a next one (if there is some).
-% (/New v4.3)
+%
+% (New v4.3) But we can also test at the first ~\linelabel~.
+% Regarding the error-message for misplaced ~\linelabel~ from v4.11:
+% previously, ~\linenumbers~ rendered ~\linelabel~ the genuine
+% version of ~\linelabel~ from the start on. This doesn't work
+% now, since ~\@LN at linelabel~ may change its meaning after the
+% first ~\linenumbers~ and before a next one (if there is some).
+% (/New v4.3)
\DeclareOption{hyperref}{\PackageWarningNoLine{lineno}{%
- Option [hyperref] is obsolete.
+ Option [hyperref] is obsolete.
\MessageBreak The hyperref package is detected automatically.}}
-\AtBeginDocument{%
+\AtBeginDocument{%
\@ifpackageloaded{nameref}{%
-%%
-% (New v4.3) ``Global'' is merely ``symbolic'' ~\AtBeginDoc...~.
-% If ~nameref~ is not detected here, the next ~\@LN at linelabel~
-% will do almost the same, then globally indeed.
%%
- \gdef\@LN at ExtraLabelItems{{}{}{}}%
+% (New v4.3) ``Global'' is merely ``symbolic'' ~\AtBeginDoc...~.
+% If ~nameref~ is not detected here, the next ~\@LN at linelabel~
+% will do almost the same, then globally indeed.
+%%
+ \gdef\@LN at ExtraLabelItems{{}{}{}}%
}{%
- \global\let\@LN@@linelabel\@LN at linelabel
- \gdef\@LN at linelabel{%
-%%
-% ~\@ifpackageloaded~ is ``preamble only'', its---very
-% internal---preamble definition is replicated here:
+ \global\let\@LN@@linelabel\@LN at linelabel
+ \gdef\@LN at linelabel{%
%%
- \expandafter
- \ifx\csname ver at nameref.sty\endcsname\relax \else
- \gdef\@LN at ExtraLabelItems{{}{}{}}%
- \fi
-%%
-% Now aim at the ``usual'' behaviour:
-%%
- \global\let\@LN at linelabel\@LN@@linelabel
- \global\let\@LN@@linelabel\relax
+% ~\@ifpackageloaded~ is ``preamble only'', its---very
+% internal---preamble definition is replicated here:
+%%
+ \expandafter
+ \ifx\csname ver at nameref.sty\endcsname\relax \else
+ \gdef\@LN at ExtraLabelItems{{}{}{}}%
+ \fi
+%%
+% Now aim at the ``usual'' behaviour:
+%%
+ \global\let\@LN at linelabel\@LN@@linelabel
+ \global\let\@LN@@linelabel\relax
\@LN at linelabel
- }%
+ }%
}%
-}
+}
-% (/New v4.3)
-%
-% (New v4.1)
-% \subsection{%
-% A note on calling so many options
-% \unskip}
-%
-% The number of package options may stimulate worrying about how to
-% \emph{enter} all the options that one would like to use---they may
-% not fit into one line. Fortunately, you can safely break code lines
+% (/New v4.3)
+%
+% (New v4.1)
+% \subsection{%
+% A note on calling so many options
+% \unskip}
+%
+% The number of package options may stimulate worrying about how to
+% \emph{enter} all the options that one would like to use---they may
+% not fit into one line. Fortunately, you can safely break code lines
% after the commas separating the option names in the ~\usepackage~
-% command (no comment marks needed).
-%
-% \subsection{%
+% command (no comment marks needed).
+%
+% \subsection{%
% Execute options
% \unskip}\label{ss:ExOpt}
-%
-% We stop declaring options and execute the ones that are
+%
+% We stop declaring options and execute the ones that are
% called by the user. (/New v4.1)
\ProcessOptions
-% (New v4.1) Now we know whether ~edtable.sty~ is wanted
-% and (if it is) with which options it is to be called.
+% (New v4.1) Now we know whether ~edtable.sty~ is wanted
+% and (if it is) with which options it is to be called.
-\if at LN@edtable \RequirePackage{edtable}[2005/03/07] \fi
+\if at LN@edtable \RequirePackage{edtable}[2005/03/07] \fi
-% (/New v4.1)
-%
+% (/New v4.1)
+%
% \section{%
-% Former package extensions
+% Former package extensions
% \label{s:Xt}\unskip}
%
-% The extensions in this section were previously supplied
-% in separate ~.sty~ files.
+% The extensions in this section were previously supplied
+% in separate ~.sty~ files.
%
% \subsection{%
% $display math$
% \unskip}\label{ss:display}
-%% (New v4.32)
-% (New v4.3) From now on, you no longer need to type
-% the ~{linenomath}~ environment with the ~\[~, ~{equation}~,
-% and ~{eqnarray}~ environments---and you no longer need to
-% use the former package option ~displaymath~ for this feature.
-% (/New v4.3)
-%% (/New v4.32)
-%
+%% (New v4.32)
+% (New v4.3) From now on, you no longer need to type
+% the ~{linenomath}~ environment with the ~\[~, ~{equation}~,
+% and ~{eqnarray}~ environments---and you no longer need to
+% use the former package option ~displaymath~ for this feature.
+% (/New v4.3)
+%% (/New v4.32)
+%
% The standard \LaTeX\ display math environments are
% wrapped in a ~{linenomath}~ environment.
%
@@ -2632,20 +2634,20 @@
% (New 3.05a) for ~{eqnarray}~s we rather keep the
% old trick. (/New 3.05a)
%
-% (New 3.08) Wrap ~\[~ and ~\]~ into ~{linenomath}~,
+% (New 3.08) Wrap ~\[~ and ~\]~ into ~{linenomath}~,
% instead of ~{displaymath}~. Also save the definition
-% of ~\equation~, instead of replicating the current
+% of ~\equation~, instead of replicating the current
% \LaTeX\ definition. (/New 3.08)
%%\ifx\do at mlineno\@empty
\@ifundefined{mathindent}{
-%% \AtBeginDocument{%
+%% \AtBeginDocument{%
\let\LN at displaymath\[%
\let\LN at enddisplaymath\]%
\renewcommand\[{\begin{linenomath}\LN at displaymath}%
\renewcommand\]{\LN at enddisplaymath\end{linenomath}}%
-%
+%
\let\LN at equation\equation
\let\LN at endequation\endequation
\renewenvironment{equation}%
@@ -2653,7 +2655,7 @@
{\LN at endequation\endlinenomath}%
%% }
- }{}% \@ifundefined{mathindent} -- 3rd arg v4.2, was \par!
+ }{}% \@ifundefined{mathindent} -- 3rd arg v4.2, was \par!
%%\AtBeginDocument{%
\let\LN at eqnarray\eqnarray
@@ -2662,41 +2664,41 @@
{\linenomath\LN at eqnarray}%
{\LN at endeqnarray\endlinenomath}%
%%}
-
+
%%\fi
-% (UL) Indeed. The \LaTeX\ macros are saved for
-% unnumbered mode, which is detected by ~\linenomath~.
-% (/UL)
+% (UL) Indeed. The \LaTeX\ macros are saved for
+% unnumbered mode, which is detected by ~\linenomath~.
+% (/UL)
%
% \subsection{%
% Line numbers in internal vertical mode
% \unskip}\label{ss:ILN}
%
-% The command ~\internallinenumbers~ adds line numbers in
+% The command ~\internallinenumbers~ adds line numbers in
% internal vertical mode, but with limitations: we assume
% fixed baseline skip.
%
-% (v4.22) v3.10 provided a global (~\global\advance~)
-% as well as a local version (star-form, using
-% ~\c at internallinenumber~). ~\resetlinenumbers~ acted
-% locally and was here used with the global version---save
-% stack danger, \TeX book p._301---in v4.00 I
-% disabled the global version therefore. Now I find that
-% it is better to keep a global version, and the now global
-% ~\resetlinenumbers~ is perfect for this. The global version
-% allows continuing the ``internal'' numbers in the ensuing
-% ``external'' text, and---unless reset by brackets
-% argument---continuing the above series of line numbers.
-% As with v3.10, the local version always starts with
-% line number one. A new ~\@LN at iglobal~ steps ~\global~ly
-% in the global version, otherwise it is ~\relax~.
-% (I also remove all my stupid discussions as of v4.00.
+% (v4.22) v3.10 provided a global (~\global\advance~)
+% as well as a local version (star-form, using
+% ~\c at internallinenumber~). ~\resetlinenumbers~ acted
+% locally and was here used with the global version---save
+% stack danger, \TeX book p._301---in v4.00 I
+% disabled the global version therefore. Now I find that
+% it is better to keep a global version, and the now global
+% ~\resetlinenumbers~ is perfect for this. The global version
+% allows continuing the ``internal'' numbers in the ensuing
+% ``external'' text, and---unless reset by brackets
+% argument---continuing the above series of line numbers.
+% As with v3.10, the local version always starts with
+% line number one. A new ~\@LN at iglobal~ steps ~\global~ly
+% in the global version, otherwise it is ~\relax~.
+% (I also remove all my stupid discussions as of v4.00.
% And I use ~\newcommand~.) (v4.22)
-\let\@LN at iglobal\global % v4.22
+\let\@LN at iglobal\global % v4.22
-\newcommand\internallinenumbers{\setrunninglinenumbers
+\newcommand\internallinenumbers{\setrunninglinenumbers
\let\@@par\internallinenumberpar
\ifx\@par\@@@par\let\@par\internallinenumberpar\fi
\ifx\par\@@@par\let\par\internallinenumberpar\fi
@@ -2715,7 +2717,7 @@
\newcount\c at internallinenumber
\newcount\c at internallinenumbers
-\newcommand\internallinenumberpar{%
+\newcommand\internallinenumberpar{%
\ifvmode\@@@par\else\ifinner\@@@par\else\@@@par
\begingroup
\c at internallinenumbers\prevgraf
@@ -2724,14 +2726,14 @@
\ht\@tempboxa\z@
\nobreak\vskip-\prevdepth
\nointerlineskip\box\@tempboxa
- \endgroup
+ \endgroup
\fi\fi
}
-\newcommand\makeinternalLinenumbers{%
+\newcommand\makeinternalLinenumbers{%
\ifnum\c at internallinenumbers>\z@ % v4.2
- \hb at xt@\z@{\makeLineNumber}%
- \@LN at iglobal % v4.22
+ \hb at xt@\z@{\makeLineNumber}%
+ \@LN at iglobal % v4.22
\advance\c at linenumber\@ne
\advance\c at internallinenumbers\m at ne
\expandafter\makeinternalLinenumbers\fi
@@ -2738,7 +2740,7 @@
}
% TODO v4.4+: star: line numbers right!? cf. lnocapt.sty
-%
+%
% \subsection{%
% Line number references with offset
% \unskip}
@@ -2788,8 +2790,8 @@
\newcommand*\@linerefadd[2]{\c at linenumber=#1\@@linerefadd\relax
\thelinenumber}
-%% TODO v4.4+: Insert `LN' in internal command names?
-%
+%% TODO v4.4+: Insert `LN' in internal command names?
+%
% \subsection{%
% Numbered quotation environments
% \unskip}
@@ -2797,14 +2799,14 @@
% The ~{numquote}~ and ~{numquotation}~
% environments are like ~{quote}~ and
% ~{quotation}~, except there will be line
-% numbers.
-%
+% numbers.
+%
% An optional argument gives the number to count
% from. A star ~*~ (inside or outside the closing
% ~}~) prevent the reset of the line numbers.
% Default is to count from one.
-%
-% (v4.22: A local version using ~\c at internallinenumber~
+%
+% (v4.22: A local version using ~\c at internallinenumber~
% might be useful, see subsection_\ref{ss:ILN}.) %% TODO v4.4+
\newcommand\quotelinenumbers
@@ -2827,7 +2829,7 @@
\newenvironment{numquote*} {\quote\numquotelist*}{\endquote}
\newenvironment{numquotation*}{\quotation\numquotelist*}{\endquotation}
-%
+%
% \subsection{%
% Frame around a paragraph
% \unskip}
@@ -2877,238 +2879,294 @@
\bframesep=\fboxsep
\newbox\bframebox
-
-%
-%
+
+%
+% \subsection{%
+% \textsf{amsmath} patches
+% \unskip}\label{ss:AMSMath}
+%
+% (New v5.0) Patches ~amsmath~ to work with ~lineno~. These patches used to be
+% supplied by the ~linenoamsmath~ package. See ~linenoamsmathdemo.pdf~ for a
+% demonstration.
+%
+
+\RequirePackage{etoolbox}
+
+\newcommand*\linenoamsmath at patch[1]{%
+ \cspreto{#1}{\linenomath}%
+ \cspreto{#1*}{\linenomath}%
+ \csappto{end#1}{\endlinenomath}%
+ \csappto{end#1*}{\endlinenomath}%
+}
+\newcount\linenoamsmath at ams@eqpen
+\cspreto{math at cr@}{\global\@eqpen\numexpr\@eqpen+\linenoamsmath at ams@eqpen\relax}
+\newcommand*\linenoamsmath at patch@ams[1]{%
+ \cspreto{#1}{%
+ \linenomath%
+ \postdisplaypenalty=0%
+ \global\linenoamsmath at ams@eqpen\interdisplaylinepenalty%
+ }%
+ \cspreto{#1*}{%
+ \linenomath%
+ \postdisplaypenalty=0%
+ \global\linenoamsmath at ams@eqpen\interdisplaylinepenalty%
+ }%
+ \csappto{end#1}{%
+ \global\linenoamsmath at ams@eqpen\z@%
+ \endlinenomath%
+ }%
+ \csappto{end#1*}{%
+ \global\linenoamsmath at ams@eqpen\z@%
+ \endlinenomath%
+ }%
+}
+\linenoamsmath at patch{equation}
+\linenoamsmath at patch@ams{multline}
+\linenoamsmath at patch@ams{gather}
+\linenoamsmath at patch@ams{align}
+\linenoamsmath at patch@ams{alignat}
+\linenoamsmath at patch@ams{flalign}
+\let\linenoamsmath at ams@mmeasure\mmeasure@
+\def\mmeasure@#1{%
+ \global\linenoamsmath at ams@eqpen\z@%
+ \begingroup%
+ \interdisplaylinepenalty=0%
+ \linenoamsmath at ams@mmeasure{#1\\}%
+ \endgroup%
+ \global\linenoamsmath at ams@eqpen\interdisplaylinepenalty%
+}
+
+%
+%
% \section{%
% Move \scs{vadjust} items (New v4.00)
-% \unskip}\label{s:MVadj}
-%
-% This section completes reviving ~\pagebreak~, ~\nopagebreak~,
-% ~\vspace~, and the star and optional form of ~\\~. This was
-% started in section_\ref{ss:output} and resumed in
+% \unskip}\label{s:MVadj}
+%
+% This section completes reviving ~\pagebreak~, ~\nopagebreak~,
+% ~\vspace~, and the star and optional form of ~\\~. This was
+% started in section_\ref{ss:output} and resumed in
% section_\ref{ss:MLN} and subsection_\ref{ss:calls}.
-% The problem was explained in section_\ref{ss:output}:
-% ~\vadjust~ items come out at a bad position, and the
-% \LaTeX\ commands named before work with ~\vadjust~ indeed.
-% Our solution was sketched there as well.
-%
+% The problem was explained in section_\ref{ss:output}:
+% ~\vadjust~ items come out at a bad position, and the
+% \LaTeX\ commands named before work with ~\vadjust~ indeed.
+% Our solution was sketched there as well.
+%
% According to the caveat in subsection_\ref{ss:OnOff} concerning
-% ~\ifLineNumbers~, the \LaTeX\ commands enumerated may go
-% wrong if you switch line numbering inside or at the end of
-% a paragraph.
+% ~\ifLineNumbers~, the \LaTeX\ commands enumerated may go
+% wrong if you switch line numbering inside or at the end of
+% a paragraph.
%% %% TODO v4.4+
-%
+%
% \subsection{%
% Redefining \scs{vadjust}
% \unskip}\label{ss:PVadj}
-%
-% ~\vadjust~ will temporarily be changed into the following
-% command.
+%
+% ~\vadjust~ will temporarily be changed into the following
+% command.
-\def\PostponeVadjust#1{%
- \global\let\vadjust\@LN@@vadjust
-%%
-% This undoes a ~\global\let\vadjust\PostponeVadjust~ which will
-% start each of the refined \LaTeX\ commands. The ~\global~s
-% are most probably superfluous. They might be useful should one
-% ~\vadjust~ appear in a group starting after the change of
-% ~\vadjust~ into ~\PostponeVadjust~.
-% (UL) Even the undoing may be superfluous, cf._discussion
-% in section_\ref{ss:ReDef} below. (UL)
-%%
- \vadjust{\penalty-\@Mppvacodepen}%
- \g at addto@macro\@LN at vadjustlist{#1\@lt}%
+\def\PostponeVadjust#1{%
+ \global\let\vadjust\@LN@@vadjust
+%%
+% This undoes a ~\global\let\vadjust\PostponeVadjust~ which will
+% start each of the refined \LaTeX\ commands. The ~\global~s
+% are most probably superfluous. They might be useful should one
+% ~\vadjust~ appear in a group starting after the change of
+% ~\vadjust~ into ~\PostponeVadjust~.
+% (UL) Even the undoing may be superfluous, cf._discussion
+% in section_\ref{ss:ReDef} below. (UL)
+%%
+ \vadjust{\penalty-\@Mppvacodepen}%
+ \g at addto@macro\@LN at vadjustlist{#1\@lt}%
}
-\let\@LN@@vadjust\vadjust
-\global\let\@LN at vadjustlist\@empty
-\global\let\@LN at do@vadjusts\relax
+\let\@LN@@vadjust\vadjust
+\global\let\@LN at vadjustlist\@empty
+\global\let\@LN at do@vadjusts\relax
-% These ~\global~s are just to remind that
-% all the changes of the strings after ~\let~ should be
-% ~\global~ (\TeX book p._301). ~\@LN at vadjustlist~ collects
-% the ~\vadjust~ items of a paragraph. ~\PassVadjustList~
-% tears one ~\vadjust~ item for the current line out of
-% ~\@LN at vadjustlist~ and puts it into ~\@LN at do@vadjusts~.
-% The latter is encountered each line in ~\MakeLineNo~
-% (section_\ref{ss:MLN}), while those \LaTeX\ ~\vadjust~
-% commands will come rather rarely. So I decided that
-% ~\@LN at do@vadjust~ is ~\relax~ until a ~\vadjust~ item
-% is waiting. In the latter case, ~\@LN at do@vadjusts~
-% is turned into a list macro which resets itself to
-% ~\relax~ when the other contents have been placed in
-% the vertical list.---~\PassVadjustList~ is invoked by
-% the output routine (section_\ref{ss:output}), so the
-% ~\box255~ must be put back.
+% These ~\global~s are just to remind that
+% all the changes of the strings after ~\let~ should be
+% ~\global~ (\TeX book p._301). ~\@LN at vadjustlist~ collects
+% the ~\vadjust~ items of a paragraph. ~\PassVadjustList~
+% tears one ~\vadjust~ item for the current line out of
+% ~\@LN at vadjustlist~ and puts it into ~\@LN at do@vadjusts~.
+% The latter is encountered each line in ~\MakeLineNo~
+% (section_\ref{ss:MLN}), while those \LaTeX\ ~\vadjust~
+% commands will come rather rarely. So I decided that
+% ~\@LN at do@vadjust~ is ~\relax~ until a ~\vadjust~ item
+% is waiting. In the latter case, ~\@LN at do@vadjusts~
+% is turned into a list macro which resets itself to
+% ~\relax~ when the other contents have been placed in
+% the vertical list.---~\PassVadjustList~ is invoked by
+% the output routine (section_\ref{ss:output}), so the
+% ~\box255~ must be put back.
-\def\PassVadjustList{%
- \unvbox\@cclv
- \expandafter \@LN at xnext \@LN at vadjustlist \@@
- \@tempa \@LN at vadjustlist
- \ifx\@LN at do@vadjusts\relax
- \gdef\@LN at do@vadjusts{\global\let\@LN at do@vadjusts\relax}%
- \fi
- \expandafter \g at addto@macro \expandafter \@LN at do@vadjusts
- \expandafter {\@tempa}%
-}
+\def\PassVadjustList{%
+ \unvbox\@cclv
+ \expandafter \@LN at xnext \@LN at vadjustlist \@@
+ \@tempa \@LN at vadjustlist
+ \ifx\@LN at do@vadjusts\relax
+ \gdef\@LN at do@vadjusts{\global\let\@LN at do@vadjusts\relax}%
+ \fi
+ \expandafter \g at addto@macro \expandafter \@LN at do@vadjusts
+ \expandafter {\@tempa}%
+}
-%
+%
% \subsection{%
-% Redefining the \LaTeX\ commands
+% Redefining the \LaTeX\ commands
% \unskip}\label{ss:ReDef}
-%
-% Now we change ~\pagebreak~ etc.\
-% so that they use ~\PostponeVadjust~ in place of ~\vadjust~.
-% We try to do this as independently as possible of the
-% implementation of the \LaTeX\ commands to be redefined.
-% Therefore, we don't just copy macro definition code from any
-% single implementation (say, latest \LaTeX) and insert our
-% changes, but attach a conditional
-% ~\global\let\vadjust\PostponeVadjust~
-% to their left ends in a way which should work rather
-% independantly of their actual code.
-% However, ~\vadjust~ should be the primitive again after
-% execution of the command. So the ~\global\let...~ may be used
-% only if it's guaranteed that a ~\vadjust~ is near.---(UL)
-% Sure? In line numbering mode, probably each ~\vadjust~
-% coming from a \LaTeX\ command should be ~\PostponeVadjust~.
-% ~\marginpar~s and floats seem to be the only cases which
-% are not explicitly dealt with in the present section.
-% This would be a way to avoid ~\@LN at nobreaktrue~!
-% Of course, the ~\vadjust~s that the present package uses
-% then must be replaced by ~\@LN@@vadjust~.---Maybe
-% next time. (/UL)
-%% %% TODO v4.4+
-%
-% The next command and something else will be added to the
-% \LaTeX\ commands we are concerned with here.
+%
+% Now we change ~\pagebreak~ etc.\
+% so that they use ~\PostponeVadjust~ in place of ~\vadjust~.
+% We try to do this as independently as possible of the
+% implementation of the \LaTeX\ commands to be redefined.
+% Therefore, we don't just copy macro definition code from any
+% single implementation (say, latest \LaTeX) and insert our
+% changes, but attach a conditional
+% ~\global\let\vadjust\PostponeVadjust~
+% to their left ends in a way which should work rather
+% independantly of their actual code.
+% However, ~\vadjust~ should be the primitive again after
+% execution of the command. So the ~\global\let...~ may be used
+% only if it's guaranteed that a ~\vadjust~ is near.---(UL)
+% Sure? In line numbering mode, probably each ~\vadjust~
+% coming from a \LaTeX\ command should be ~\PostponeVadjust~.
+% ~\marginpar~s and floats seem to be the only cases which
+% are not explicitly dealt with in the present section.
+% This would be a way to avoid ~\@LN at nobreaktrue~!
+% Of course, the ~\vadjust~s that the present package uses
+% then must be replaced by ~\@LN@@vadjust~.---Maybe
+% next time. (/UL)
+%% %% TODO v4.4+
+%
+% The next command and something else will be added to the
+% \LaTeX\ commands we are concerned with here.
-\DeclareRobustCommand\@LN at changevadjust{%
- \ifvmode\else\ifinner\else
- \global\let\vadjust\PostponeVadjust
- \fi\fi
-}
-
-% (UL) What about math mode? Math display? Warn? (/UL)
+\DeclareRobustCommand\@LN at changevadjust{%
+ \ifvmode\else\ifinner\else
+ \global\let\vadjust\PostponeVadjust
+ \fi\fi
+}
+
+% (UL) What about math mode? Math display? Warn? (/UL)
%% %% TODO v4.4+
-%
-% ~\@tempa~ will now become a two place macro which adds first
+%
+% ~\@tempa~ will now become a two place macro which adds first
% argument (single token), enclosed by ~\ifLineNumbers~\,\dots
-% ~\fi~ to the left of second argument. As long as we need it,
-% we can't use the star form of ~\DeclareRobustCommand~ or
-% the like, because AMS-\LaTeX\ uses ~\@tempa~ for ~\@ifstar~.
-% (New v4.41) And for the same reason, that ~\CheckCommand*~
+% ~\fi~ to the left of second argument. As long as we need it,
+% we can't use the star form of ~\DeclareRobustCommand~ or
+% the like, because AMS-\LaTeX\ uses ~\@tempa~ for ~\@ifstar~.
+% (New v4.41) And for the same reason, that ~\CheckCommand*~
% had to be raised! (/New v4.41)
\CheckCommand*\@parboxrestore{\@arrayparboxrestore\let\\\@normalcr}
-\def\@tempa#1#2{%
+\def\@tempa#1#2{%
\expandafter \def \expandafter#2\expandafter{\expandafter
- \ifLineNumbers\expandafter#1\expandafter\fi#2}%
-}
+ \ifLineNumbers\expandafter#1\expandafter\fi#2}%
+}
-% (UL) This ~\ifLineNumber~ can be fooled by
-% ~\linenumbers~ ahead etc. It might be better to place
-% a signal penalty in any case and let the output routine
-% decide what to do.
-%%
-%% And when this has been done, remove warnings about this.
-% (/UL)
-%
-% We use the occasion to switch off linenumbers where they
-% don't work anyway and where we don't want them,
-% especially in footnotes:
+% (UL) This ~\ifLineNumber~ can be fooled by
+% ~\linenumbers~ ahead etc. It might be better to place
+% a signal penalty in any case and let the output routine
+% decide what to do.
+%%
+%% And when this has been done, remove warnings about this.
+% (/UL)
+%
+% We use the occasion to switch off linenumbers where they
+% don't work anyway and where we don't want them,
+% especially in footnotes:
-\@tempa\nolinenumbers\@arrayparboxrestore
+\@tempa\nolinenumbers\@arrayparboxrestore
-% We hope this suffices $\dots$ let's check one thing
+% We hope this suffices $\dots$ let's check one thing
% at least: [(New v4.41) see ~\CheckCommand~ above (/New v4.41)]
-%
-% Now for the main theme of the section.
-% The next lines assume that ~\vspace~, ~\pagebreak~, and
-% ~\nopagebreak~ use ~\vadjust~ whenever they occur outside
-% vertical mode; moreover, that they don't directly read
-% an argument. Indeed ~\pagebreak~ and ~\nopagebreak~ first
-% call something which tests for a left bracket ahead,
-% while ~\vspace~ first tests for a star.
+%
+% Now for the main theme of the section.
+% The next lines assume that ~\vspace~, ~\pagebreak~, and
+% ~\nopagebreak~ use ~\vadjust~ whenever they occur outside
+% vertical mode; moreover, that they don't directly read
+% an argument. Indeed ~\pagebreak~ and ~\nopagebreak~ first
+% call something which tests for a left bracket ahead,
+% while ~\vspace~ first tests for a star.
-\@tempa\@LN at changevadjust\vspace
-\@tempa\@LN at changevadjust\pagebreak
-\@tempa\@LN at changevadjust\nopagebreak
+\@tempa\@LN at changevadjust\vspace
+\@tempa\@LN at changevadjust\pagebreak
+\@tempa\@LN at changevadjust\nopagebreak
-% ~\\~, however, uses ~\vadjust~ only in star or optional form.
-% We relax independency of implementation in assuming
-% that ~\@normalcr~ is the fragile version of ~\\~
-% (and we use ~\@ifstar~!).
+% ~\\~, however, uses ~\vadjust~ only in star or optional form.
+% We relax independency of implementation in assuming
+% that ~\@normalcr~ is the fragile version of ~\\~
+% (and we use ~\@ifstar~!).
%%
-%% \@ifstar reimplemented 1995/10/16, but seems to be much older.
-%% TODO v4.4+:
-%% \def\@LN at cr{%
-%% \@ifnextchar*{\@LN at changevadjust\@normalcr}%
-%% {\@ifnextchar[{\@LN at changevadjust\@normalcr}\@normalcr}%
-%% }
-%% ---same number of tokens, expansion step less.
+%% \@ifstar reimplemented 1995/10/16, but seems to be much older.
+%% TODO v4.4+:
+%% \def\@LN at cr{%
+%% \@ifnextchar*{\@LN at changevadjust\@normalcr}%
+%% {\@ifnextchar[{\@LN at changevadjust\@normalcr}\@normalcr}%
+%% }
+%% ---same number of tokens, expansion step less.
%%
-% (Using a copy of ~\\~ would be safer, but an ugly repetition
-% of ~\protect~.)
-%% %% TODO v4.4+
+% (Using a copy of ~\\~ would be safer, but an ugly repetition
+% of ~\protect~.)
+%% %% TODO v4.4+
-\DeclareRobustCommand\\{%
- \ifLineNumbers
- \expandafter \@LN at cr
- \else
- \expandafter \@normalcr
- \fi
-}
-\def\@LN at cr{%
- \@ifstar{\@LN at changevadjust\@normalcr*}%
- {\@ifnextchar[{\@LN at changevadjust\@normalcr}\@normalcr}%
-}
+\DeclareRobustCommand\\{%
+ \ifLineNumbers
+ \expandafter \@LN at cr
+ \else
+ \expandafter \@normalcr
+ \fi
+}
+\def\@LN at cr{%
+ \@ifstar{\@LN at changevadjust\@normalcr*}%
+ {\@ifnextchar[{\@LN at changevadjust\@normalcr}\@normalcr}%
+}
-% Moreover we hope that ~\newline~ never leads to a ~\vadjust~,
-% although names of some commands invoked by ~\\~ contain
-% ~newline~. At last, this seems to have been OK since 1989 or
-% even earlier.
-%
+% Moreover we hope that ~\newline~ never leads to a ~\vadjust~,
+% although names of some commands invoked by ~\\~ contain
+% ~newline~. At last, this seems to have been OK since 1989 or
+% even earlier.
+%
% \modulolinenumbers[1]
-% \firstlinenumber{0}
-% Let's have a few tests.\vspace*{.5\baselineskip}
-% Testing ~\pagebreak~ and ~\nopagebreak~ would be too expensive
-% here, but---oops!---we have just experienced a successful
-% ~\vspace*{.5\baselineskip}~. A
-% ~\\*[.5\baselineskip]~\\*[.5\baselineskip] may look even more
-% drastical, but this time we are happy about it. Note that the
-% line numbers have moved with the lines. Without our changes,
-% one line number\vadjust{\kern.5\baselineskip} would have
-% ``anticipated'' the move of the next line, just as you can
-% observe it now.
-% (/New v4.00)
-%
-% \switchlinenumbers
-%
-% \subsection{%
-% Reminder on obsoleteness
-% \unskip}
-%
-% (New v4.1) We have completed inclusion of the earlier
-% extension packages ~linenox0.sty~, ~linenox1.sty~, and
-% ~lnopatch.sty~. If one of them is loaded, though,
-% we produce an error message before something weird happens.
-% We avoid ~\newif~ because the switchings occur so rarely.
+% \firstlinenumber{0}
+% Let's have a few tests.\vspace*{.5\baselineskip}
+% Testing ~\pagebreak~ and ~\nopagebreak~ would be too expensive
+% here, but---oops!---we have just experienced a successful
+% ~\vspace*{.5\baselineskip}~. A
+% ~\\*[.5\baselineskip]~\\*[.5\baselineskip] may look even more
+% drastical, but this time we are happy about it. Note that the
+% line numbers have moved with the lines. Without our changes,
+% one line number\vadjust{\kern.5\baselineskip} would have
+% ``anticipated'' the move of the next line, just as you can
+% observe it now.
+% (/New v4.00)
+%
+% \switchlinenumbers
+%
+% \subsection{%
+% Reminder on obsoleteness
+% \unskip}
+%
+% (New v4.1) We have completed inclusion of the earlier
+% extension packages ~linenox0.sty~, ~linenox1.sty~, and
+% ~lnopatch.sty~. If one of them is loaded, though,
+% we produce an error message before something weird happens.
+% We avoid ~\newif~ because the switchings occur so rarely.
-\AtBeginDocument{%
- \let\if at LN@obsolete\iffalse
- \@ifpackageloaded{linenox0}{\let\if at LN@obsolete\iftrue}\relax
- \@ifpackageloaded{linenox1}{\let\if at LN@obsolete\iftrue}\relax
+\AtBeginDocument{%
+ \let\if at LN@obsolete\iffalse
+ \@ifpackageloaded{linenox0}{\let\if at LN@obsolete\iftrue}\relax
+ \@ifpackageloaded{linenox1}{\let\if at LN@obsolete\iftrue}\relax
\@ifpackageloaded{lnopatch}{\let\if at LN@obsolete\iftrue}\relax
- \if at LN@obsolete
- \PackageError{lineno}{Obsolete extension package(s)}{%
- With lineno.sty version 4.00 or later,\MessageBreak
- linenox0/linenox1/lnopatch.sty must no longer be loaded.}%
- \fi
-}
+ \if at LN@obsolete
+ \PackageError{lineno}{Obsolete extension package(s)}{%
+ With lineno.sty version 4.00 or later,\MessageBreak
+ linenox0/linenox1/lnopatch.sty must no longer be loaded.}%
+ \fi
+}
-%
+%
% \modulolinenumbers[1]
% \section{%
% The final touch
@@ -3120,24 +3178,24 @@
\endinput
-%
+%
% \section{%
% The user commands
-% \unskip}\label{s:UserCmds}
-%
-% The user commands to turn on and off line numbering
-% are
+% \unskip}\label{s:UserCmds}
+%
+% The user commands to turn on and off line numbering
+% are
% \begin{description}\item
% [|\linenumbers] \ \par
% Turn on line numbering in the current mode.
%
-% \item
+% \item
% [|\linenumbers*] \ \par$\qquad$
% and reset the line number to 1.
-% \def\NL{<number>]}\item
-%% %% Boldface italic occurs here, which is evil. (UL)
+% \def\NL{<number>]}\item
+%% %% Boldface italic occurs here, which is evil. (UL)
% [|\linenumbers[\NL] \ \par$\qquad$
-% and start with <number>.
+% and start with <number>.
% \item
% [|\nolinenumbers] \ \par
% Turn off line numbering.
@@ -3176,7 +3234,7 @@
% [|\rightlinenumbers*] \ \par
% Set the line numbers in the left/right margin. With the
% star this works for both modes of operation, without
-% the star only for the currently selected mode.
+% the star only for the currently selected mode.
% \item
% [|\runningpagewiselinenumbers] \ \par
% When using the pagewise line number mode, do not
@@ -3196,44 +3254,44 @@
% retained. <number>=1 turns this off without changing
% ~linenumbermodulo~. The counter is initialized to 5.
%%
-%% %% TODO v4.4+: `counter', he says. Cf._above.
+%% %% TODO v4.4+: `counter', he says. Cf._above.
%%
-%% (New v4.31)
+%% (New v4.31)
% \item
-% [|\modulolinenumbers*[\NL] \ \par
-% Like ~\modulolinenumbers~, the only difference being
-% that the first line number after a ~\linenumbers~
-% (or ~\runninglinenumbers~, ~\pagewiselinenumbers~,
-% ~\quotelinenumbers~) is printed regardless of the
-% modulo---yet `1' is printed only after (or \dots)
-% ~\firstlinenumber{1}~.
-% This also applies to the first line of a
-% ~{linenumbers}~ or respective environment.
-% See subsection_\ref{ss:Mod} for another explanation.
-% The behaviour may be unsatisfactory with pagewise
-% line-numbering.
-%% (/New v4.31)
+% [|\modulolinenumbers*[\NL] \ \par
+% Like ~\modulolinenumbers~, the only difference being
+% that the first line number after a ~\linenumbers~
+% (or ~\runninglinenumbers~, ~\pagewiselinenumbers~,
+% ~\quotelinenumbers~) is printed regardless of the
+% modulo---yet `1' is printed only after (or \dots)
+% ~\firstlinenumber{1}~.
+% This also applies to the first line of a
+% ~{linenumbers}~ or respective environment.
+% See subsection_\ref{ss:Mod} for another explanation.
+% The behaviour may be unsatisfactory with pagewise
+% line-numbering.
+%% (/New v4.31)
%% (New v4.00)
% \item
-% [|\firstlinenumber] \ \par
-% ~\firstlinenumber{~<filino>~}~ brings about that
-% (after it) line numbers less than <filino> do
-% \emph{not} appear in the margin. Moreover, with
-% ~\modulolinenumbers[~<number>~]~, just the line
-% numbers which are <filino> plus a multiple of
-% <number> are printed.---If you had
-% ~\firstlinenumber{~<pos>~}~ with some $\mbox{<pos>}>0$
-% and want to switch to printing multiples of, e.g.,
-% 4, you best do ~\modulolinenumbers[4]~ and
-% ~\firstlinenumber{0}~. (See subsection_\ref{ss:Mod}
-% for technical details.)
-%% (/New v4.00)
+% [|\firstlinenumber] \ \par
+% ~\firstlinenumber{~<filino>~}~ brings about that
+% (after it) line numbers less than <filino> do
+% \emph{not} appear in the margin. Moreover, with
+% ~\modulolinenumbers[~<number>~]~, just the line
+% numbers which are <filino> plus a multiple of
+% <number> are printed.---If you had
+% ~\firstlinenumber{~<pos>~}~ with some $\mbox{<pos>}>0$
+% and want to switch to printing multiples of, e.g.,
+% 4, you best do ~\modulolinenumbers[4]~ and
+% ~\firstlinenumber{0}~. (See subsection_\ref{ss:Mod}
+% for technical details.)
+%% (/New v4.00)
% \item
% [|\linenumberdisplaymath] \ \par
% Number the lines of a display math in a ~{linenomath}~
% environment, but do not in a ~{linenomath*}~
% environment. This is used by the package option
-% ~[mathlines]~.
+% ~[mathlines]~.
% \item
% [|\nolinenumberdisplaymath] \ \par
% Do not Number the lines of a display math in a
@@ -3247,13 +3305,13 @@
% ~\pageref{~<foo>~}~.
% \end{description}
% The commands can be used globally, locally within groups
-% or as environments. It is important to know that they
+% or as environments. It is important to know that they
%%
-%% %% TODO: \linelabel? others?
+%% %% TODO: \linelabel? others?
%%
% take action only when the ~\par~ is executed. The
%%
-%% %% TODO: sure? ~\modulo...~, e.g.? well, in a sense ...
+%% %% TODO: sure? ~\modulo...~, e.g.? well, in a sense ...
%%
% ~\end{~<mode>~linenumbers}~ commands provide a ~\par~.
% Examples:
@@ -3273,32 +3331,32 @@
% ~\linenumbers~ \\
% <paragraph> ~{\nolinenumbers\par}~ \\
% \end{verse}
-% (New v4.00)
-% However, the examples containing <paragraph> show what you
-% should \emph{not} do, at least if you use ~\pagebreak~,
-% ~\nopagebreak~, ~\vspace~, ~\\*~ or
-% ~\\[~<space>~]~---cf._section_\ref{s:MVadj}.
+% (New v4.00)
+% However, the examples containing <paragraph> show what you
+% should \emph{not} do, at least if you use ~\pagebreak~,
+% ~\nopagebreak~, ~\vspace~, ~\\*~ or
+% ~\\[~<space>~]~---cf._section_\ref{s:MVadj}.
%
-% The same care should be applied to the ``wizard'' devices
+% The same care should be applied to the ``wizard'' devices
% ~\ifLineNumbers~ (subsection_\ref{ss:OnOff}) and
-% ~\PostponeVadjust~ (section_\ref{ss:PVadj}).
-% (/New v4.00)
-%
-% (New v4.11) Oh, and the commands and environments of
-% section_{s:Xt} are missing. Sorry, I am in a hurry now.
-% May be next time.% %% TODO v4.4+
-% ---And the environments ~{linenomath}~ and ~{linenomath*}~should
-% get an own paragraph. In short, each math display, equation,
-% or ~{eqnarray}~ should be ``wrapped'' in one of ~{linenomath}~
-% and ~{linenomath*}~.
-%
+% ~\PostponeVadjust~ (section_\ref{ss:PVadj}).
+% (/New v4.00)
+%
+% (New v4.11) Oh, and the commands and environments of
+% section_{s:Xt} are missing. Sorry, I am in a hurry now.
+% May be next time.% %% TODO v4.4+
+% ---And the environments ~{linenomath}~ and ~{linenomath*}~should
+% get an own paragraph. In short, each math display, equation,
+% or ~{eqnarray}~ should be ``wrapped'' in one of ~{linenomath}~
+% and ~{linenomath*}~.
+%
% \subsection{%
% Customization hooks
-% \unskip}
-%
+% \unskip}
+%
% There are several hooks to customize the appearance of the
% line numbers, and some low level hooks for special
-% effects.
+% effects.
% \begin{description}\item
% [|\thelinenumber] \ \par
% This macro should give the representation of the line
@@ -3308,11 +3366,11 @@
% \item
% [|\makeLineNumberLeft] \ \par
% This macro is used to attach a line number to the left
-% of the text page. This macro should fill an ~\hbox to 0pt~
+% of the text page. This macro should fill an ~\hbox to 0pt~
% which will be placed at the left margin of the
% page, with the reference point aligned to the line to
% which it should give a number. Please use the macro
-% ~\LineNumber~ to refer to the line number.
+% ~\LineNumber~ to refer to the line number.
%
% The default definition is \par$\qquad$
% ~\hss\linenumberfont\LineNumber\hskip\linenumbersep~
@@ -3338,7 +3396,7 @@
% number box on the right margin. The distance of the
% right edge of the text to the right edge of the line
% number is ~\linenumbersep~ + ~\linenumberwidth~. The
-% default value is ~10pt~.
+% default value is ~10pt~.
% \item
% [|\theLineNumber] (for wizards) \ \par
% This macro is called for printing a ~\newlabel~ entry
@@ -3355,55 +3413,54 @@
% [|\LineNumber] (for wizards) \ \par
% This macro is called by ~\makeLineNumber~ to typeset
% the line number. This hook is changed by the modulo
-% mechanism
+% mechanism
%% %%%.
-% and by ~\firstlinenumber~.
-%% %% New v4.00
+% and by ~\firstlinenumber~.
+%% %% New v4.00
% \end{description}
-%%
-%% TODO: \stepLineNumber---another wizard command!?
-%% Not sure, may be retreated.
+%%
+%% TODO: \stepLineNumber---another wizard command!?
+%% Not sure, may be retreated.
% \end{document}%D
------------------------------------------------------------------------------
%SSTOPP
-%% TODO v4.4+: Check for unwanted comment marks in new comments
-%% (resulting from manual aligning): search `New v4.2'
-%% and/or ` % '!
-%% TODO v4.4+: Check for missing comment marks where a paragraph
-%% should end/start. Also to prevent empty "code" lines.
-%% Especially, new comments at section ends must be
-%% followed by comment mark lines.
-%% And prevent ~\par~s from blank lines in definitions!
-%% See `visual space' above.
-%% For proper appearance in lineno.tex, note that a comment
-%% in a final code line changes behaviour.
-%% TODO v4.4+: Require README for redistribution?
-%% TODO v4.4+: Since discussions of code have increased so much, it
-%% would be appropriate not to give to this file
-%% extension `.sty' (e.g., `dty'!??). ?? Is quickly read though!
-%% A .sty extraction may be possible even if the present
-%% file is neither a .doc nor a .dtx. (!???)
-%% Use awk line below (etc.) for .doc at least; + .ins or so.
-%% ^ must not be caps! To escape awk.
-%% TODO v4.4+: Underfull lines!? (due to long code quotations)
-%% TODO v4.4+: Sometimes paragraph indents may be appropriate.
-%% TODO Swap first line (`\iffalse...') with corresponding below.
- Or do *not* swap, maybe nawk is more reliable.
-%% TODO v4.4+: Ponder Stephan's mail from 2004/09/02.
-%% TODO v4.4+:
-%% use \@ET at makeLineNumber.
-%% plus almost all `(UL)'
-%% plus lots of bad boxes messages
-%% change v4.3 TODOs when postponed
-%% remove {old} environments.
+%% TODO v4.4+: Check for unwanted comment marks in new comments
+%% (resulting from manual aligning): search `New v4.2'
+%% and/or ` % '!
+%% TODO v4.4+: Check for missing comment marks where a paragraph
+%% should end/start. Also to prevent empty "code" lines.
+%% Especially, new comments at section ends must be
+%% followed by comment mark lines.
+%% And prevent ~\par~s from blank lines in definitions!
+%% See `visual space' above.
+%% For proper appearance in lineno.tex, note that a comment
+%% in a final code line changes behaviour.
+%% TODO v4.4+: Require README for redistribution?
+%% TODO v4.4+: Since discussions of code have increased so much, it
+%% would be appropriate not to give to this file
+%% extension `.sty' (e.g., `dty'!??). ?? Is quickly read though!
+%% A .sty extraction may be possible even if the present
+%% file is neither a .doc nor a .dtx. (!???)
+%% Use awk line below (etc.) for .doc at least; + .ins or so.
+%% ^ must not be caps! To escape awk.
+%% TODO v4.4+: Underfull lines!? (due to long code quotations)
+%% TODO v4.4+: Sometimes paragraph indents may be appropriate.
+%% TODO Swap first line (`\iffalse...') with corresponding below.
+ Or do *not* swap, maybe nawk is more reliable.
+%% TODO v4.4+: Ponder Stephan's mail from 2004/09/02.
+%% TODO v4.4+:
+%% use \@ET at makeLineNumber.
+%% plus almost all `(UL)'
+%% plus lots of bad boxes messages
+%% change v4.3 TODOs when postponed
+%% remove {old} environments.
------------------------------------------------------------------------------
-# awk command lines for v4.00, mixed with former ones:
+# awk command lines for v4.00, mixed with former ones:
-echo "Don't bother about unknown 'iffalse'." # SHELL1
+echo "Don't bother about unknown 'iffalse'." # SHELL1
nawk '/A[W]K/' lineno.sty | nawk -f - lineno.sty >lineno.tex; # SHELL1
-latex lineno; latex lineno; latex lineno; latex lineno; # SHELL1
BEGIN{DOC=-1; # AWK DOC A W K
BEGINCODE = "\\begin{code}\\begin{verbatim}"; # AWK
@@ -3420,8 +3477,8 @@
sub("^% *",""); # AWK
sub("^% *","% "); # DOC A W K
print; next; } # AWK DOC A W K
-/%VERSION/ { sub("%VERSION",""); print; next; } # AWK
-/%SSTOPP/ { exit } # AWK
+/%VERSION/ { sub("%VERSION",""); print; next; } # AWK
+/%SSTOPP/ { exit } # AWK
DOC<0 { next } # AWK DOC A W K
/^-+-$/ { if (!DOC) print ENDCODE; exit } # AWK DOC A W K
{ if (DOC) { ECNT=DOC=0; print BEGINCODE; } # AWK DOC A W K
@@ -3428,11 +3485,11 @@
while (ECNT>0) { print " "; ECNT--; } # AWK DOC A W K
print $0; } # AWK DOC A W K
-# New v4.00, UL: know nothing about awk; found present solution
-# in hours of trial and error.
+# New v4.00, UL: know nothing about awk; found present solution
+# in hours of trial and error.
-% Earlier (should be inhibited by %SSTOPP above and otherwise):
-echo "expect errors for unknown commands 'iffalse' and 'fi'";# SHELL0 SHELL#1
+% Earlier (should be inhibited by %SSTOPP above and otherwise):
+echo "expect errors for unknown commands 'iffalse' and 'fi'";# SHELL0 SHELL#1
awk '/A[W]K/' lineno.sty | awk -f - lineno.sty >lineno.tex; # SHELL0
latex lineno; latex lineno; latex lineno; latex lineno; # SHELL0
nawk '/A[W]K/' lineno4.sty | nawk -f - lineno4.sty >lineno4.tex; # SHELL#1
@@ -3464,21 +3521,19 @@
------------------------------------------------------------------------------
-If you are looking here because of the two top lines of the file:
+If you are looking here because of the two top lines of the file:
-A .tex documentation of this macro file can be obtained by
+A .tex documentation of this macro file can be obtained by
- sh lineno.sty
+ sh lineno.sty
-under UNIX.--You may find this hint little helpful. One
-reason may be that the awk versions to which you have access
-don't work suitably. Another reason may be that you don't have
-access to UNIX (in some sense). However, a .tex, .dvi, or .pdf
-version of such a documentation should be available from CTAN,
-in the same folder as the present file. When we typed this, that
-folder was /macros/latex/contrib/lineno. If this has changed in
-the meantime, a CTAN search should lead you to a folder
-containing such a documentation. Or you may get help from one of
-the e-mail addresses above.
-
-
+under UNIX.--You may find this hint little helpful. One
+reason may be that the awk versions to which you have access
+don't work suitably. Another reason may be that you don't have
+access to UNIX (in some sense). However, a .tex, .dvi, or .pdf
+version of such a documentation should be available from CTAN,
+in the same folder as the present file. When we typed this, that
+folder was /macros/latex/contrib/lineno. If this has changed in
+the meantime, a CTAN search should lead you to a folder
+containing such a documentation. Or you may get help from one of
+the e-mail addresses above.
Modified: trunk/Master/texmf-dist/tex/latex/lineno/vplref.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex/lineno/vplref.sty 2022-12-05 10:28:48 UTC (rev 65203)
+++ trunk/Master/texmf-dist/tex/latex/lineno/vplref.sty 2022-12-05 21:23:48 UTC (rev 65204)
@@ -1,74 +1,73 @@
-%% `vplref.sty'
-%% -- extended line number referencing with lineno.sty.
+%% `vplref.sty'
+%% -- extended line number referencing with lineno.sty.
\def\filedate{2005/04/25} \def\fileversion{0.2a}
-%% Copyright (C) 2004, 2005 Uwe Lueck,
-%% http://contact-ednotes.sty.de.vu --author-maintained
-%% -- support of lineno.sty for varioref.sty.
+%% Copyright (C) 2004, 2005 Uwe Lueck,
+%% http://contact-ednotes.sty.de.vu --author-maintained
+%% -- support of lineno.sty for varioref.sty.
-%% This file can be redistributed and/or modified under
-%% the terms of the LaTeX Project Public License; either
+%% This file can be redistributed and/or modified under
+%% the terms of the LaTeX Project Public License; either
%% version 1.3 of the License, or any later version.
%% The latest version of this license is in
%% http://www.latex-project.org/lppl.txt
-%% We did our best to help you, but there is NO WARRANTY.
+%% We did our best to help you, but there is NO WARRANTY.
-%% USAGE:
+%% USAGE:
%
-% \vpagelineref{<label>} expands to
+% \vpagelineref{<label>} expands to
%
-% a) \ref{<label>}
+% a) \ref{<label>}
% -- if on same page as \linelabel{<label>}
-%
-% b) \LineWithPage{<label>} -- otherwise.
-%
-% \LineWithPage{<label>} expands -- by default -- to
-%
+%
+% b) \LineWithPage{<label>} -- otherwise.
+%
+% \LineWithPage{<label>} expands -- by default -- to
+%
% \pageref{<label>}.\ref{<label>}
-%
-% This can be customized by editing
-%
-% \renewcommand*{\LineWithPage}[1]{\pageref{#1}.\ref{#1}}
-%
-% in your document preamble, after vplref.sty has been loaded
-% (which may have happened through lineno.sty with option
-% `addpageno').
+%
+% This can be customized by editing
+%
+% \renewcommand*{\LineWithPage}[1]{\pageref{#1}.\ref{#1}}
+%
+% in your document preamble, after vplref.sty has been loaded
+% (which may have happened through lineno.sty with option
+% `addpageno').
-%% IMPLEMENTATION:
+%% IMPLEMENTATION:
-\NeedsTeXFormat{LaTeX2e}[1994/12/01] %% \Declare...*
+\NeedsTeXFormat{LaTeX2e}[1994/12/01] %% \Declare...*
\ProvidesPackage{vplref}[\filedate\space v\fileversion \space
page-line cross-refs] %% UL 2011/02/13
-\AtBeginDocument{\RequirePackage{lineno,varioref}}
+\AtBeginDocument{\RequirePackage{lineno,varioref}}
-%% Anderer Ansatz: GPNo (\FirstOnPage)
+%% Anderer Ansatz: GPNo (\FirstOnPage)
-\DeclareRobustCommand*\vpagelineref[1]{{%
-% \def\reftextcurrent{\lineref{#1}}%% First vpageref arg.
- \let\reftextfaraway\LineWithPage
- \def\reftextafter{\reftextfaraway{#1}}%
- \let\reftextbefore\reftextafter
- \let\reftextfaceafter\reftextafter
- \let\reftextfacebefore\reftextafter
-%% <- Looks somewhat stupid, but varioref.sty has its merits
-%% as compared with the mechanism in ednotes.sty.
- \vpageref[\ref{#1}][]{#1}%% The robust alternative.
-%% Here and with \LineWithPage, \lineref seems more appropriate
-%% than \ref, but it produces errors when labels have not been
-%% defined. This seems to be an incompatibility with lineno.sty.
-}}
+\DeclareRobustCommand*\vpagelineref[1]{{%
+% \def\reftextcurrent{\lineref{#1}}%% First vpageref arg.
+ \let\reftextfaraway\LineWithPage
+ \def\reftextafter{\reftextfaraway{#1}}%
+ \let\reftextbefore\reftextafter
+ \let\reftextfaceafter\reftextafter
+ \let\reftextfacebefore\reftextafter
+%% <- Looks somewhat stupid, but varioref.sty has its merits
+%% as compared with the mechanism in ednotes.sty.
+ \vpageref[\ref{#1}][]{#1}%% The robust alternative.
+%% Here and with \LineWithPage, \lineref seems more appropriate
+%% than \ref, but it produces errors when labels have not been
+%% defined. This seems to be an incompatibility with lineno.sty.
+}}
-%% Customizable format for different page:
+%% Customizable format for different page:
\newcommand*\LineWithPage[1]{\pageref{#1}.\ref{#1}}
-\endinput
+\endinput
-VERSION HISTORY:
-v0.1 2004/10/19 First, sent to Sergei Mariev.
-v0.11 2004/10/19 Fit to recent varioref version;
- sent to Sergei.
-v0.2 2005/04/25 \Require... \AtBeginDocument.
+VERSION HISTORY:
+v0.1 2004/10/19 First, sent to Sergei Mariev.
+v0.11 2004/10/19 Fit to recent varioref version;
+ sent to Sergei.
+v0.2 2005/04/25 \Require... \AtBeginDocument.
v0.2a 2011/02/13 add. caption to \ProvidesPackage
-
Modified: trunk/Master/tlpkg/bin/tlpkg-ctan-check
===================================================================
--- trunk/Master/tlpkg/bin/tlpkg-ctan-check 2022-12-05 10:28:48 UTC (rev 65203)
+++ trunk/Master/tlpkg/bin/tlpkg-ctan-check 2022-12-05 21:23:48 UTC (rev 65204)
@@ -258,7 +258,7 @@
dejavu dejavu-otf
delim delimseasy delimset delimtxt democodetools denisbdoc derivative dhua
diabetes-logbook diadia diagbox diagmac2 dialogl diagnose dice dichokey
- dickimaw dictsym diffcoeff digiconfigs dijkstra dimnum din1505
+ dickimaw dictsym diffcoeff digestif digiconfigs dijkstra dimnum din1505
dinat dinbrief dingbat directory dirtree dirtytalk disser ditaa dithesis
dk-bib dlfltxb
dnaseq dnp doc-pictex docbytex doclicense
Modified: trunk/Master/tlpkg/libexec/ctan2tds
===================================================================
--- trunk/Master/tlpkg/libexec/ctan2tds 2022-12-05 10:28:48 UTC (rev 65203)
+++ trunk/Master/tlpkg/libexec/ctan2tds 2022-12-05 21:23:48 UTC (rev 65204)
@@ -434,6 +434,7 @@
'diagrams', "die 'skipping, use specific package name'",
'diagxy', "die 'skipping, use barr'",
'dictsym', "&MAKEunzipandflatten",
+ 'digestif', "&MAKEflatten",
'digicap-pro', "die 'skipping, requires adobe (dps)'",
'disser', "&MAKEdisser",
'divine', "die 'skipping, requires nonfree font'",
@@ -809,9 +810,10 @@
'libris', "&MAKEcopy",
'lifia-th', "die 'skipping, ?'",
'linearA', "die 'skipping, use lineara'",
- 'LinearA', "&MAKEflatten",
+ 'LinearA', "die 'skipping, use lineara'",
+ 'lineno', "&MAKEflatten",
'lintex', "die 'skipping, compiled program'",
- 'list', "die 'skipping, part of knuth-local'",
+ 'list', "die 'skipping, part of knuth-local'",
'listofanswers', "die 'skipping, noinfo license'",
'literat', "&MAKEliterat",
'lithuanian', "&MAKEflatten",
@@ -1668,6 +1670,7 @@
'csplain' => '&POST_cstexpkgs',
'cstex' => '&POSTcstex',
'dehyph-exptl' => '&POSTdehyph_exptl',
+ 'digestif' => '&POSTdigestif',
'doipubmed' => '&POSTlatex2html',
'e-french' => '&POSTe_french',
'encxvlna' => '&POSTencxvlna',
@@ -2014,6 +2017,7 @@
'dialogl', '[^c]\.sty|listout\.tex', # not dialogl-doc.sty
'din1505', 'NULL', # no tex files, only natbib.cfg, would be system-wide
'dirtree', '\.tex|' . $standardtex,
+ 'digestif', 'NULL', # script
'disser', '\.rtx|' . $standardtex,
'dlfltxb', '\.sty', # no sample.cfg
'docbytex', 'docby\.tex',
@@ -3553,6 +3557,7 @@
'ctanupload' => '\.pl$',
'de-macro' => 'de-macro',
'diadia' => '\.lua$',
+ 'digestif' => 'digestif\.texlua$',
'dosepsbin' => 'dosepsbin\.pl$',
'dtxgen' => 'dtxgen$',
'dviasm' => '\.py$',
@@ -6714,6 +6719,16 @@
print "*** POST$package - you must update tlpsrc directives, right now!\n";
}
+sub POSTdigestif {
+ # the situation here is that the author wanted to keep generic
+ # filenames like "Parser.lua", so we bundle them up in a zip.
+ # https://tug.org/pipermail/tex-live/2022-November/048681.html
+ print "POST$package - make zip files per their INSTALL.md\n";
+ &xsystem ("zip -j $package.zip *.lua *.tags");
+ &xsystem ("$RM *.lua *.tags");
+ &mv_with_mkdir ("$package.zip", "$DEST/scripts/$package/");
+}
+
sub POSTe_french {
print "POST$package - move directories around\n";
&SYSTEM ("find [^b]* -type f | xargs chmod -R a-x");
Modified: trunk/Master/tlpkg/tlpsrc/collection-binextra.tlpsrc
===================================================================
--- trunk/Master/tlpkg/tlpsrc/collection-binextra.tlpsrc 2022-12-05 10:28:48 UTC (rev 65203)
+++ trunk/Master/tlpkg/tlpsrc/collection-binextra.tlpsrc 2022-12-05 21:23:48 UTC (rev 65204)
@@ -27,6 +27,7 @@
depend cweb
depend de-macro
depend detex
+depend digestif
depend dtl
depend dtxgen
depend dvi2tty
More information about the tex-live-commits
mailing list.