summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/tex/latex/lineno
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2022-12-05 21:23:48 +0000
committerKarl Berry <karl@freefriends.org>2022-12-05 21:23:48 +0000
commit5caccaedbc1e667bc6c77cd4121b3aa42fd0cbba (patch)
tree3d19f3653011e84771abf1ed211ea3e6896d22f9 /Master/texmf-dist/tex/latex/lineno
parent6afd51ad6a48b892314f157f8d551c84dead3dec (diff)
lineno (5dec22)
git-svn-id: svn://tug.org/texlive/trunk@65204 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/tex/latex/lineno')
-rw-r--r--Master/texmf-dist/tex/latex/lineno/ednmath0.sty334
-rw-r--r--Master/texmf-dist/tex/latex/lineno/edtable.sty996
-rw-r--r--Master/texmf-dist/tex/latex/lineno/fnlineno.sty1008
-rw-r--r--Master/texmf-dist/tex/latex/lineno/lineno.sty3651
-rw-r--r--Master/texmf-dist/tex/latex/lineno/vplref.sty99
5 files changed, 3070 insertions, 3018 deletions
diff --git a/Master/texmf-dist/tex/latex/lineno/ednmath0.sty b/Master/texmf-dist/tex/latex/lineno/ednmath0.sty
index 363c6c6aa5c..ef9884f30cb 100644
--- a/Master/texmf-dist/tex/latex/lineno/ednmath0.sty
+++ b/Master/texmf-dist/tex/latex/lineno/ednmath0.sty
@@ -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
%%
-%% 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.
-%
+%% 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@mathhook\@LN@labelinmath
- \@bsphack \@esphack
+ \@bsphack \@esphack
% For \begin{NotesToMath}
-}
+}
\def\NoNotesToMath{\@bsphack
- \def\@LN@mathhook{\@parmoderr\@gobble}%
- \@esphack
-}
+ \def\@LN@mathhook{\@parmoderr\@gobble}%
+ \@esphack
+}
\def\endNotesToMath{\@bsphack\@Esphack}
-\let\endNoNotesToMath\endNotesToMath
-%
-%% Core code for lineno.sty:
-\@ifundefined{@LN@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@postlabel}{%
+ \PackageError{ednmath0}{%
+ Bad lineno.sty version%
+ }{%
+ lineno.sty from 2004/08/16 or later
+ must be loaded earlier.%
}%
-}{%
- \def\@LN@labelinmath#1{%
- \ifmmode
- \@LN@postlabel{#1}%
- \else
- \@parmoderr
- \fi
+}{%
+ \def\@LN@labelinmath#1{%
+ \ifmmode
+ \@LN@postlabel{#1}%
+ \else
+ \@parmoderr
+ \fi
}
-}
-%
-%% Core code for ednotes.sty:
-\@ifundefined{@EN@note}{%
-% v0.01 sent a warning in this case. Considered superfluous now.
-}{%
+}
+%
+%% Core code for ednotes.sty:
+\@ifundefined{@EN@note}{%
+% v0.01 sent a warning in this case. Considered superfluous now.
+}{%
\def\@EN@themathlemmatag{%
- \ifmmode
- \toks@\expandafter{\@EN@lemmatag}%
+ \ifmmode
+ \toks@\expandafter{\@EN@lemmatag}%
\edef\@EN@lemmatag{%
- $%
- \def\noexpand\lemmaellipsis{%
- \noexpand\mathlemmaellipsis}%
- \the\toks@
- $%
- }%
-% \expandafter \def \expandafter \@EN@lemmatag
-% \expandafter {\expandafter $\expandafter
-% \def \expandafter \lemmaellipsis \expandafter {%
-% \expandafter \mathlemmaellipsis \expandafter }%
-% \@EN@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@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@lemmatag
+% \expandafter {\expandafter $\expandafter
+% \def \expandafter \lemmaellipsis \expandafter {%
+% \expandafter \mathlemmaellipsis \expandafter }%
+% \@EN@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@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@mathlemmatag \noexpand\@EN@themathlemmatag
+ \edef\NotesToMath{%
+ \let \noexpand\@EN@mathlemmatag \noexpand\@EN@themathlemmatag
\the\toks@
}
% \typeout{\string\NotesToMath: \meaning\NotesToMath}
\toks@\expandafter{\NoNotesToMath}
- \edef\NoNotesToMath{%
- \let \noexpand\@EN@mathlemmatag \relax
+ \edef\NoNotesToMath{%
+ \let \noexpand\@EN@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
-
-%% 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@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.
+%
+\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.
+%% 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@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.
diff --git a/Master/texmf-dist/tex/latex/lineno/edtable.sty b/Master/texmf-dist/tex/latex/lineno/edtable.sty
index 206347539e7..3d16a9c7220 100644
--- a/Master/texmf-dist/tex/latex/lineno/edtable.sty
+++ b/Master/texmf-dist/tex/latex/lineno/edtable.sty
@@ -1,571 +1,571 @@
-%% `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@makeLineNumber, \@ET@use@outerhook,
-% \@ET@execute@outerhook, \@ET@ampnotes \@ET@startlinewith,
-% \@ET@trivialize@linelabel are provided as tools for adjusting
-% tabular environments for use with `lineno.sty' and
-% `ednotes.sty'. \@ET@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
+%
+% 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@makeLineNumber, \@ET@use@outerhook,
+% \@ET@execute@outerhook, \@ET@ampnotes \@ET@startlinewith,
+% \@ET@trivialize@linelabel are provided as tools for adjusting
+% tabular environments for use with `lineno.sty' and
+% `ednotes.sty'. \@ET@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: *
%
-%% * 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.
+\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@ET@longtable\iffalse % \newif\if@ET@longtable@
-\DeclareOption{longtable}{\let\if@ET@longtable\iftrue}
-\let\if@ET@ltabptch\iftrue
+%% TODO: underful page with `longtable.sty'!?
+\let\if@ET@longtable\iffalse % \newif\if@ET@longtable@
+\DeclareOption{longtable}{\let\if@ET@longtable\iftrue}
+\let\if@ET@ltabptch\iftrue
\DeclareOption{nolongtablepatch}{\let\if@ET@ltabptch\iffalse}
\ProcessOptions
-% Redefine \longtable if option:
+% Redefine \longtable if option:
\if@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@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@longtable
- \else
- \let\@ET@sw@cr\@ET@crcr % ... in \endlongtable.
- \expandafter\@ET@@longtable
- \fi
- }
- \def\@ET@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@bchunk.
- % \longtable and \LT@get@withs are good places for this.
- \@ET@startlinewith\@ET@sw@cr@on
- \@ET@trivialize@linelabel
- \@ET@use@outerhook
- \@ET@ampnotes
- \let\LT@tabularcr\@ET@LT@tabularcr
- \expandafter\def\expandafter\LT@get@widths\expandafter
+ \fi
+ \let\@ET@@longtable\longtable
+ \def\longtable{%
+ \ifLineNumbers
+ \expandafter\@ET@longtable
+ \else
+ \let\@ET@sw@cr\@ET@crcr % ... in \endlongtable.
+ \expandafter\@ET@@longtable
+ \fi
+ }
+ \def\@ET@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@bchunk.
+ % \longtable and \LT@get@withs are good places for this.
+ \@ET@startlinewith\@ET@sw@cr@on
+ \@ET@trivialize@linelabel
+ \@ET@use@outerhook
+ \@ET@ampnotes
+ \let\LT@tabularcr\@ET@LT@tabularcr
+ \expandafter\def\expandafter\LT@get@widths\expandafter
{\LT@get@widths\@ET@startlinewith\@ET@sw@cr@on}
- % Admittedly, we could make it less of a hack by using @{...}
- % ---we could then leave \LT@get@widths untouched.
- \@ET@@longtable
- }
- \def\@ET@sw@cr@on{\global\let\@ET@sw@cr\@ET@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@get@widths untouched.
+ \@ET@@longtable
+ }
+ \def\@ET@sw@cr@on{\global\let\@ET@sw@cr\@ET@cr@attach}
+ % We are hacking a longtable version offering
% \def\LT@tabularcr{%
% \relax\iffalse{\fi\ifnum0=`}\fi
% \@ifstar
% {\def\crcr{\LT@crcr\noalign{\nobreak}}\let\cr\crcr
% \LT@t@bularcr}%
% {\LT@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@LT@tabularcr{%
\relax\iffalse{\fi\ifnum0=`}\fi
- \def\cr{\@ET@sw@cr}%
- % So \crcr is affected by change of \@ET@sw@cr, cf. below.
- \let\crcr\cr
+ \def\cr{\@ET@sw@cr}%
+ % So \crcr is affected by change of \@ET@sw@cr, cf. below.
+ \let\crcr\cr
\@ifstar
- {\gdef\@ET@sw@nobreak{\nobreak
- \global\let\@ET@sw@nobreak\relax}%
+ {\gdef\@ET@sw@nobreak{\nobreak
+ \global\let\@ET@sw@nobreak\relax}%
% {\def\cr{\@ET@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@t@bularcr}%
- \LT@t@bularcr
+ \LT@t@bularcr
% {\let\cr\@ET@sw@cr \let\crcr\cr
- % \LT@t@bularcr}% This accompanied \def\cr... above.
+ % \LT@t@bularcr}% This accompanied \def\cr... above.
}
- % Attach \@ET@sw@cr to beginning of \endlongtable:
- \expandafter\def\expandafter\endlongtable\expandafter
+ % Attach \@ET@sw@cr to beginning of \endlongtable:
+ \expandafter\def\expandafter\endlongtable\expandafter
{\expandafter\@ET@sw@cr\endlongtable}
- \def\@ET@cr@attach{% Actually attaching line numbers.
- \@ET@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@ex... might cause page break. 2003/10/30.
- \setbox\z@\@ET@makeLineNumber
- \ht\z@-\prevdepth \dp\z@\prevdepth \box\z@
- \@ET@step@linenumber
- \global\let\@ET@sw@cr\@ET@crcr % ... if called by \\.
- % This also resets the \crcr starting \LT@echunk following
- % \@xargarraycr or \@yargarraycr in \LT@argtabularcr.
- % \let...\relax seems to suffice at well, but in case ...
- \@ET@execute@outerhook %% 2003/10/30.
- \@ET@sw@nobreak
-% \@ET@execute@outerhook
- }%
- }
- \let\@ET@crcr\crcr
- \global\let\@ET@sw@nobreak\relax % Just to remind ...
-\fi
-
-\let\@ET@step@linenumber\stepLineNumber
+ \def\@ET@cr@attach{% Actually attaching line numbers.
+ \@ET@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@ex... might cause page break. 2003/10/30.
+ \setbox\z@\@ET@makeLineNumber
+ \ht\z@-\prevdepth \dp\z@\prevdepth \box\z@
+ \@ET@step@linenumber
+ \global\let\@ET@sw@cr\@ET@crcr % ... if called by \\.
+ % This also resets the \crcr starting \LT@echunk following
+ % \@xargarraycr or \@yargarraycr in \LT@argtabularcr.
+ % \let...\relax seems to suffice at well, but in case ...
+ \@ET@execute@outerhook %% 2003/10/30.
+ \@ET@sw@nobreak
+% \@ET@execute@outerhook
+ }%
+ }
+ \let\@ET@crcr\crcr
+ \global\let\@ET@sw@nobreak\relax % Just to remind ...
+\fi
+
+\let\@ET@step@linenumber\stepLineNumber
% \def\@ET@step@linenumber{\global\advance\c@linenumber\@ne}
-\def\@ET@makeLineNumber{\hb@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@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@toks
-\@ET@toks{\@ET@specialhalign}
-% v1.3: In 'AMSmath', there are \halign's followed by explicit
-% left braces. Thus '\def\@ET@specialhalign#1\bgroup{%' broke.
-%% TODO ...
+\def\@ET@makeLineNumber{\hb@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@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@toks
+\@ET@toks{\@ET@specialhalign}
+% v1.3: In 'AMSmath', there are \halign's followed by explicit
+% left braces. Thus '\def\@ET@specialhalign#1\bgroup{%' broke.
+%% TODO ...
\def\@ET@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@replace@arg\@ET@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@replace@arg\@ET@sphalign@to}
-% If `amsmath' not loaded (v1.3):
-\AtBeginDocument{\@ifundefined{measuring@true}{%
+% If `amsmath' not loaded (v1.3):
+\AtBeginDocument{\@ifundefined{measuring@true}{%
\let\ifmeasuring@\iffalse}\relax}
\def\@ET@replace@arg#1{%
- \def\@EN@tempa{#1}\def\@EN@tempb{\bgroup}% Corr. after v1.3b.
- \ifx\@EN@tempa\@EN@tempb
+ \def\@EN@tempa{#1}\def\@EN@tempb{\bgroup}% Corr. after v1.3b.
+ \ifx\@EN@tempa\@EN@tempb
\def\@EN@tempa{\@ET@sphalign@to\bgroup}%
- \else
+ \else
\def\@EN@tempa{\@ET@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@tempa}
-\def\@ET@sphalign@to#1\bgroup{%
- \let\halign\@ET@@halign % Reset for nested arrays.
- \halign#1\bgroup
-% \ifmeasuring@\else % For `amsmath', moved backwards.
- \@ET@startline % [Wizard interface, via \@ET@starlinewith.]
-% \fi
+\def\@ET@sphalign@to#1\bgroup{%
+ \let\halign\@ET@@halign % Reset for nested arrays.
+ \halign#1\bgroup
+% \ifmeasuring@\else % For `amsmath', moved backwards.
+ \@ET@startline % [Wizard interface, via \@ET@starlinewith.]
+% \fi
}
-% Wizard interface:
-\def\@ET@startlinewith{% Next token precedes preamble.
-% \let\@ET@@halign\halign % Or \AtBeginDocument?
-% ... indeed: bad loop with long longtable (\LT@get@widths!?)
- \def\halign{\the\@ET@toks}%
- \let\@ET@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@execute@outerhook{% To be placed outside inner mode.
- \@ET@outerhook \global\let\@ET@outerhook\@empty
-}
-\global\let\@ET@outerhook\@empty % Just to remind: global!
-% \@EN@hookfn (ednotes) sends to outer hook:
-\def\@ET@use@outerhook{% Wizard interface.
- \def\@EN@hookfn{\g@addto@macro\@ET@outerhook}%
-}%% TODO: move last line to `ednotes', \let\@ET@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@startlinewith{% Next token precedes preamble.
+% \let\@ET@@halign\halign % Or \AtBeginDocument?
+% ... indeed: bad loop with long longtable (\LT@get@widths!?)
+ \def\halign{\the\@ET@toks}%
+ \let\@ET@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@execute@outerhook{% To be placed outside inner mode.
+ \@ET@outerhook \global\let\@ET@outerhook\@empty
+}
+\global\let\@ET@outerhook\@empty % Just to remind: global!
+% \@EN@hookfn (ednotes) sends to outer hook:
+\def\@ET@use@outerhook{% Wizard interface.
+ \def\@EN@hookfn{\g@addto@macro\@ET@outerhook}%
+}%% TODO: move last line to `ednotes', \let\@ET@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@trivialize@linelabel{\let\linelabel\@ET@linelabel}
-\def\@ET@linelabel{%
- \protected@edef\@currentlabel{\theLineNumber}%
+\def\@ET@linelabel{%
+ \protected@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@hideamps{\catcode`\&\active}
-\@ET@hideamps
-\gdef\@ET@ampnotes{%
- \let&\@ET@hideamp
- %% & would be undefined after \\ in lemma.
- \let\@ET@EN@rnote\@EN@note
+\@ET@hideamps
+\gdef\@ET@ampnotes{%
+ \let&\@ET@hideamp
+ %% & would be undefined after \\ in lemma.
+ \let\@ET@EN@rnote\@EN@note
\def\@EN@note{\@ET@hideamps\@ET@EN@rnote}%
- \let\@ET@EN@rnotelb\@EN@notelabel
+ \let\@ET@EN@rnotelb\@EN@notelabel
\def\@EN@notelabel{\@ET@hideamps\@ET@EN@rnotelb}%
-}
-%% TODO: & and \\ in \@EN@lemmaexpands!?
-\endgroup
+}
+%% TODO: & and \\ in \@EN@lemmaexpands!?
+\endgroup
\def\@ET@hideamp{&}
-\newenvironment*{edtable}[2][]{%
-% #1 $ or $$, #2 standard environment name.
-%% TODO: star version!? cf. lineno.sty's `numquote'.
- \def\@ET@mode{#1}%
- \def\@ET@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@use@outerhook
- \@ET@trivialize@linelabel
- \@ET@ampnotes
- \@ET@startlinewith\@ET@normal@startline
- \global\advance\c@linenumber\m@ne % Stepping correction.
+\newenvironment*{edtable}[2][]{%
+% #1 $ or $$, #2 standard environment name.
+%% TODO: star version!? cf. lineno.sty's `numquote'.
+ \def\@ET@mode{#1}%
+ \def\@ET@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@use@outerhook
+ \@ET@trivialize@linelabel
+ \@ET@ampnotes
+ \@ET@startlinewith\@ET@normal@startline
+ \global\advance\c@linenumber\m@ne % Stepping correction.
% (Must come after closing previous paragraph.)
-% Calculate offset:
- \global\advance\c@ET@array\@ne
-% Saving/calling width of table (`longtable's algorithm).
-% Test if there is \@flushglue on the left (center or flushleft):
- \edef\@EN@tempa{\the\@flushglue}%
-% ... v1.3: fool this for "$$".
- \in@{$$}{#1\@nil}% \in@{#1}{#2} searches #1 in #2#1 ...
- \edef\@EN@tempb{\the\ifin@\@flushglue\else\leftskip\fi}%
- \ifx\@EN@tempa\@EN@tempb
-% Assume \@ET@offset is 0pt else here.
- \@ET@offset\linewidth
- \advance\@ET@offset-%
- \@ifundefined\@ET@arraywidth@csn % Shortened for v1.3.
- {\linewidth\G@refundefinedtrue
- \PackageWarningNoLine{edtab}{^^JLine numbers at
- \@ET@currenvir\space need \jobname.aux}}%
- {\csname\@ET@arraywidth@csn\endcsname}%
-% Test if \@flushglue on the right (center):
-% ... v1.3: fool it again. Repeat \in@ in case ...
+% Calculate offset:
+ \global\advance\c@ET@array\@ne
+% Saving/calling width of table (`longtable's algorithm).
+% Test if there is \@flushglue on the left (center or flushleft):
+ \edef\@EN@tempa{\the\@flushglue}%
+% ... v1.3: fool this for "$$".
+ \in@{$$}{#1\@nil}% \in@{#1}{#2} searches #1 in #2#1 ...
+ \edef\@EN@tempb{\the\ifin@\@flushglue\else\leftskip\fi}%
+ \ifx\@EN@tempa\@EN@tempb
+% Assume \@ET@offset is 0pt else here.
+ \@ET@offset\linewidth
+ \advance\@ET@offset-%
+ \@ifundefined\@ET@arraywidth@csn % Shortened for v1.3.
+ {\linewidth\G@refundefinedtrue
+ \PackageWarningNoLine{edtab}{^^JLine numbers at
+ \@ET@currenvir\space need \jobname.aux}}%
+ {\csname\@ET@arraywidth@csn\endcsname}%
+% Test if \@flushglue on the right (center):
+% ... v1.3: fool it again. Repeat \in@ in case ...
\in@{$$}{#1\@nil}%
- \edef\@EN@tempb{\the\ifin@\@flushglue\else\rightskip\fi}%
- \ifx\@EN@tempa\@EN@tempb \divide\@ET@offset\tw@ \fi
- \fi
- \advance\@ET@offset\@totalleftmargin
- \advance\@ET@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@mode\@empty\else $\fi
- \csname#2\endcsname
-}{%
- \csname end\@ET@currenvir \endcsname
- \ifx\@ET@mode\@empty\else $\fi
- \egroup
- \@ET@step@linenumber % Stepping correction.
+ \edef\@EN@tempb{\the\ifin@\@flushglue\else\rightskip\fi}%
+ \ifx\@EN@tempa\@EN@tempb \divide\@ET@offset\tw@ \fi
+ \fi
+ \advance\@ET@offset\@totalleftmargin
+ \advance\@ET@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@mode\@empty\else $\fi
+ \csname#2\endcsname
+}{%
+ \csname end\@ET@currenvir \endcsname
+ \ifx\@ET@mode\@empty\else $\fi
+ \egroup
+ \@ET@step@linenumber % Stepping correction.
\if@filesw
\immediate\write\@auxout{%
\gdef\expandafter\noexpand
\csname\@ET@arraywidth@csn\endcsname
{\the\wd\@tempboxa}}%
-%% TODO: warning if changed!?
+%% TODO: warning if changed!?
\fi
-% No automatic line number at array line:
- \nolinenumbers
- \@ET@mode\ensuremath{\vcenter{\box\@tempboxa}}\@ET@mode % v1.3.
+% No automatic line number at array line:
+ \nolinenumbers
+ \@ET@mode\ensuremath{\vcenter{\box\@tempboxa}}\@ET@mode % v1.3.
\@ET@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@normal@startline{%
- \@ET@step@linenumber
- \llap{\@ET@makeLineNumber \hskip\@ET@offset}%
-}
-\newdimen\@ET@offset
-\newdimen\ETextraoffset
-%% TODO: export to lineno.sty!?
-\newcount\c@ET@array
+ \@ET@step@linenumber
+ \llap{\@ET@makeLineNumber \hskip\@ET@offset}%
+}
+\newdimen\@ET@offset
+\newdimen\ETextraoffset
+%% TODO: export to lineno.sty!?
+\newcount\c@ET@array
\def\@ET@arraywidth@csn{ET@a@\romannumeral\c@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@web.de>.
-v0.26 2003/03/23 Added \@ET@startlinewith to wizard command list;
- moved redefinition \LT@get@widths from option code
- into \@ET@longtable so this really happens in
- line number mode only; moved \let\@ET@@halign\halign
- from \@ET@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@cr@attach: moved \@ET@execu..., added \nobreak.
- Added \@ET@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@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@web.de>.
+v0.26 2003/03/23 Added \@ET@startlinewith to wizard command list;
+ moved redefinition \LT@get@widths from option code
+ into \@ET@longtable so this really happens in
+ line number mode only; moved \let\@ET@@halign\halign
+ from \@ET@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@cr@attach: moved \@ET@execu..., added \nobreak.
+ Added \@ET@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@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'.
diff --git a/Master/texmf-dist/tex/latex/lineno/fnlineno.sty b/Master/texmf-dist/tex/latex/lineno/fnlineno.sty
index 5c53da606c7..224f4743dba 100644
--- a/Master/texmf-dist/tex/latex/lineno/fnlineno.sty
+++ b/Master/texmf-dist/tex/latex/lineno/fnlineno.sty
@@ -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,91 +40,91 @@
%%
%% === 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}
%%
%% \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@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@FNLN@check@
\DeclareOption{check-latex}{\@FNLN@check@true}
@@ -133,13 +133,13 @@
%% === Footnote Commands ===
%% ==== Standard Footnotes ====
%% The following macro |\FNLN@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@FNLN@check@
\long\def\FNLN@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@text|,
+%% In line numbering mode, `\@footnotetext' will act as
+%% |\FNLN@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@list| of \strong{footnote texts}.
+%% appending the footnote text to the
+%% \strong{list} |\FNLN@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@ltx@fntext' ... %% TODO
\let\FNLN@@text\@footnotetext
\def\@footnotetext{%
@@ -184,27 +184,27 @@
\fi}
\def \FNLN@text {% %% 2010/12/31 arg read later
\vadjust{\penalty-\FNLN@M@swap@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@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@list'
+%% \emph{current} expansion <mark> of `\@thefnmark'
+%% is stored as an item preceding the footnote text
+%% <text>. One footnote entry in `\FNLN@list'
%% thus has the form \lq`<mark>\@lt<text>\@lt'\rq.
-%% \LaTeX's internal `\g@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@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@edef':
\let\@@protect\protect
\let\protect\@unexpandable@protect
@@ -212,7 +212,7 @@
\long \edef \@tempa ##1{%
\noexpand\g@addto@macro \noexpand\FNLN@list {%
\@thefnmark \noexpand\@lt ##1\noexpand \@lt}}%
-%% ... issuing
+%% ... issuing
%% \lq`\g@addto@macro\FNLN@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@FNLN@check@
\def\FNLN@lno@output {%
\LineNoTest
\if@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@M@llbl@codepen=11111
- \mathchardef\FNLN@M@ppva@codepen=11112
+ \mathchardef\FNLN@M@llbl@codepen=11111
+ \mathchardef\FNLN@M@ppva@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@storesetreg}[3]{\GStoreReg{#2}#1#2#3\relax}
\newcommand*{\GStoreSetReg} {\g@storesetreg\relax}
\newcommand*{\GStoreGSetReg}{\g@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@M@swap@codepen =11113
\mathchardef\FNLN@M@insert@codepen=11114
-%% v0.41 deals with |\pagebreak| in footnote texts,
-%% using a flag |\if@FNLN@sw@| that must be set globally.
+%% v0.41 deals with |\pagebreak| in footnote texts,
+%% using a flag |\if@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@FNLN@sw@ \global\@FNLN@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@holdft|:
\newsavebox\FNLN@holdft %% v0.41
%% Using |\LineNoLaTeXOutput| for hooking into the OTR:
@@ -323,17 +323,17 @@
\if@FNLN@sw@ %% v0.41
% \showthe\outputpenalty %% 2010/12/20
\global\setbox \FNLN@holdft \vbox{%
- \unvbox\FNLN@holdft
+ \unvbox\FNLN@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,45 +343,45 @@
\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@M@swap@codepen'$.
-%% The ``column so far" is stored in a new box register
+%% The ``column so far" is stored in a new box register
%% |\FLNL@holdcol|.
\newsavebox\FNLN@holdcol
\newcommand*{\SwapFootnoteMain}{%
\global \setbox\FNLN@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@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@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@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@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@list| and executes the
%% rest of \LaTeX's `\@footnotetext':
\expandafter \FNLN@typeset \FNLN@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@typeset| first removes something %% reworded 2010/12/26
%% from the list of footnotes, similarly to \LaTeX's |\@xnext|
-%% and 'lineno''s `\@LN@xnext', then executes a
-%% remaining portion of \LaTeX's `\@footnotetext'.
-%% The footnote text may contain `\par' tokens,
+%% and 'lineno''s `\@LN@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@typeset #1\@lt #2\@lt #3\@@{%
\gdef\FNLN@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@M@insert@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@holdcol'
-%% is put onto the top of the MVL, and then parts of
+%% The ``column so far" stored in `\FNLN@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@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@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@linenumber'
+%% may refer to either the main text or to the
+%% footnote text counter.
%% \item[Generating ``pagewise" format:]
-%% The choice of `\c@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@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@Pfirst|
-%% and |\FLN@Pfirst|, eventually pointing to the first page/column
+%% and |\FLN@Pfirst|, eventually pointing to the first page/column
%% with numbered main text lines or footnote lines, resp.
\def \FLN@Pfirst {\nextLN\relax}
-%% This initialization of `\FLN@Pfirst' is just the same
-%% as the one of `\LN@Pfirst' in 'lineno.sty';
-%% their expansions are changed as soon
+%% This initialization of `\FLN@Pfirst' is just the same
+%% as the one of `\LN@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@Pfirst' and `\FLN@Pfirst' are passed to
+%% corresponding page info macro.
+%%
+%% `\LN@Pfirst' and `\FLN@Pfirst' are passed to
%% |\testFirstNumberedPage| via the hook |\FNLN@first@numbered|
%% that by default is the same as `\LN@first':
\def \FNLN@first@numbered {\LN@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@last@numbered|
-%% (to be handled globally!):
+%% In 'lineno.sty', we have `\def\LastNumberedPage{first}'.
+%% We need the same for the footnote variant |\FNLN@last@numbered|
+%% (to be handled globally!):
\global \let \FNLN@last@numbered \LastNumberedPage
\@onlypreamble \FNLN@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@column}{#2}\nextLN\relax}%
\else
\def\lastLN##1{\noexpand\lastLN{#3}}%
@@ -717,54 +717,54 @@
\xdef#6{#4C\@LN@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@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@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@last@numbered| is the storing macro initialized above:
\def \@FLN {\@FNLN{FLN@P}\FNLN@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@pagelinenumber',
-%% |\c@footnotelinenumber| is reserved for the
+%% As a counterpart to `\c@pagelinenumber',
+%% |\c@footnotelinenumber| is reserved for the
%% absolute footnote line numbers:
\newcount\c@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@cache| stores `\NumberedPageCache'
-%% as from ``footnote" mode; its initial content is the
+%% |\FNLN@cache| stores `\NumberedPageCache'
+%% as from ``footnote" mode; its initial content is the
%% counterpart or analogue to `\LN@Pfirst':
\def \FNLN@cache {\FLN@Pfirst}
%% %% 2010/12/28:
@@ -802,40 +802,40 @@
\global\let \FNLN@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@linenumber\c@footnotelinenumber
% \let\makeLineNumber\makeFootnoteLineNumber
%% But in fact, |\makeFootnoteLineNumber| and
-%% |\makePagewiseLineNumber| will be the same.
-%% The difference is made by the choice of
-%% |\FNLN@first@numbered| and |\NumberedPageCache|
-%% for the line range searches.
+%% |\makePagewiseLineNumber| will be the same.
+%% The difference is made by the choice of
+%% |\FNLN@first@numbered| and |\NumberedPageCache|
+%% for the line range searches.
\let \FNLN@first@numbered \FLN@Pfirst
\let \FNLN@finish \FNLN@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@log {\string\@FLN}%
+ \def \FNLN@log {\string\@FLN}%
%% %% 2010/12/28:
%% Starting range search: |\NumberedPageCache|
\FNLN@foot@cache
@@ -844,16 +844,16 @@
\GStoreUse \@LN@vadjustlist \FNLN@@vadjusts \FNLN@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 {%
\let \FNLN@first@numbered \LN@Pfirst
\let \FNLN@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@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@write\@auxout{}{%
- \FNLN@log{\the\c@linenumber}{\noexpand\the\c@LN@truepage}}}
-%% |\FNLN@log| is the hook for the difference,
-%% its default expansion |\@LN| is made for
+ \FNLN@log{\the\c@linenumber}{\noexpand\the\c@LN@truepage}}}
+%% |\FNLN@log| is the hook for the difference,
+%% its default expansion |\@LN| is made for
%% \emph{main text} line numbers:
\gdef \FNLN@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@first@numbered|. Our
-%% |\FNLN@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@first@numbered|. Our
+%% |\FNLN@cache| is initialized
%% by analogy to its counterpart `\NumberedPageCache'
%% (a minute name space change):
\def \FNLN@cache {\FLN@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@finish' to allow for footnote lines.
\renewcommand* \gotNumberedPage [4]{%
\oddNumberedPagefalse
\ifodd \if@twocolumn #3\else #2\fi\relax\oddNumberedPagetrue\fi
- \advance\c@linenumber\@ne
+ \advance\c@linenumber\@ne
\ifcolumnwiselinenumbers
\subtractlinenumberoffset{#1}%
\else
@@ -922,12 +922,12 @@
% \show\FNLN@finish
\FNLN@finish{#2}{#3}%
}
-%% |\FNLN@finish{<page>}{<column>}| gobbles both
-%% arguments with \emph{main} text lines,
-%% but will add the number of main text lines to
+%% |\FNLN@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@finish \@gobbletwo
-%% Then it will act as |\FNLN@add|. We run the page info macro
+%% Then it will act as |\FNLN@add|. We run the page info macro
%% for the same page (column; if defined).
\newcommand* \FNLN@add [2]{%
\expandafter \let\expandafter \@tempa\csname LN@P#1C#2\endcsname
@@ -950,40 +950,40 @@
}
%%
%% ==== 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'
%% 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@linenumber}}
-%% |\getwiselinenumber{<choice>}{<integer>}| executes <choice>
-%% before applying `\testNumberedPage' to <integer>---within
+\newcommand* \theWiseLineNumber [1]{\protect #1{\the\c@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.
%% \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@restore@cache
}}
\let \FNLN@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@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.;
- ...@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.;
+ ...@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@FNLN@sw@ etc.;
+v0.41 2010/12/19 support of \pagebreak with \if@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 @@ v0.5 2010/12/21 restructuring doc., check@latex@ -> check@,
2010/12/24 ... continued ...
2010/12/25 moved this to pwlineno, replaced ...
more on \FNLN@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@text without arg,
+v0.54 2010/12/31 typo options; \FNLN@text without arg,
\getpagewiselinenumber with ednotes
- 2011/01/01 \FNLN@cache, \FNLN@@cache initialized;
+ 2011/01/01 \FNLN@cache, \FNLN@@cache initialized;
doc. "Typesetting Stage" qualification
2011/01/02 that qualification was wrong
2011/01/03 samepage@hook
TO CHRISTIAN SAME DAY
-v0.55 2011/01/04 samepage@hook emptied here as well;
+v0.55 2011/01/04 samepage@hook emptied here as well;
2011/01/06 edited version history
- 2011/01/07 note on \if@FNLN@sw@ with v0.5;
+ 2011/01/07 note on \if@FNLN@sw@ with v0.5;
finally without support for samepage@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
diff --git a/Master/texmf-dist/tex/latex/lineno/lineno.sty b/Master/texmf-dist/tex/latex/lineno/lineno.sty
index 53a7b5242ab..1b688e0f4d5 100644
--- a/Master/texmf-dist/tex/latex/lineno/lineno.sty
+++ b/Master/texmf-dist/tex/latex/lineno/lineno.sty
@@ -1,55 +1,56 @@
- \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
-
-%%% Copyright 1995--2003 Stephan I. B"ottcher <boettcher@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
+ \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{v5.0} \def\filedate{2022/07/30} %VERSION
+
+%%% Copyright 1995--2003 Stephan I. B"ottcher <boettcher@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@physik.uni-kiel.de
-% \\ http://contact-ednotes.sty.de.vu
+% \unskip}\author{%
+% Stephan I. B\"ottcher
+% \\ Uwe L\"uck
+% \unskip}\date{%
+% boettcher@physik.uni-kiel.de
+% \\ http://contact-ednotes.sty.de.vu
%% \\ stephan@nevis.columbia.edu
-%% \\ Stephan.Boettcher@cern.ch
+%% \\ Stephan.Boettcher@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 @@ Macro file lineno.sty for LaTeX: attach line numbers, refer to them.
% \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 @@ Macro file lineno.sty for LaTeX: attach line numbers, refer to them.
% \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 @@ Macro file lineno.sty for LaTeX: attach line numbers, refer to them.
% 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 @@ Macro file lineno.sty for LaTeX: attach line numbers, refer to them.
% 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@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:
+% since we need the ~\protected@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:
%% 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 @@ Macro file lineno.sty for LaTeX: attach line numbers, refer to them.
%% v3.02 2000/03/10 SiB: \@LN@output
%% v3.03 2000/07/01 SiB: \@LN@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 @@ Macro file lineno.sty for LaTeX: attach line numbers, refer to them.
%% 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ück: \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@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@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@outer@holdins, \global.
-%% v4.22 2005/05/01 UL: \unvbox\@outputbox; \@LN@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@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@ifgreat@critical;
+%% 2004/10/12 UL: Corrected blank lines in lineno.tex.
+%% 2004/10/19 UL: Fixed minor typos; remark on \if@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@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@outer@holdins, \global.
+%% v4.22 2005/05/01 UL: \unvbox\@outputbox; \@LN@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@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@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@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@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@kern@z@ .
-%% v4.4b 2005/10/24 UL: Another tidying-up of the discussion of
-%% \stepcounter{linenumber}; \@LN@screenoff@pen
-%% replaces \@LN@kern@z@, \@LN@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@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@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@kern@z@ .
+%% v4.4b 2005/10/24 UL: Another tidying-up of the discussion of
+%% \stepcounter{linenumber}; \@LN@screenoff@pen
+%% replaces \@LN@kern@z@, \@LN@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 @@ Macro file lineno.sty for LaTeX: attach line numbers, refer to them.
% 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 @@ Macro file lineno.sty for LaTeX: attach line numbers, refer to them.
% 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 @@ Macro file lineno.sty for LaTeX: attach line numbers, refer to them.
% 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 @@ Macro file lineno.sty for LaTeX: attach line numbers, refer to them.
% 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@nopagebreak~.
+%% TODO v4.3+: Or three, ~\@nobreakfalse~ after ~\MakeLineNo~
+%% for getting rid of ~\@LN@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):
-
-\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@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.
+% 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
+
+% (/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@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 @@ Macro file lineno.sty for LaTeX: attach line numbers, refer to them.
% (/New 4.2)
\LineNoTest
\if@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
-%%
-% ---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
-%%
-% ---and the remaining is
-%%%next three lines are
-% Stephan's code again:
-% (/New v4.00)
-%%
- \else
+% We insert recognition of waiting ~\linelabel~ items---
+%%
+ \ifnum\outputpenalty=-\@Mllbcodepen
+ \WriteLineNo
+%%
+% ---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
+%%
+% ---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,469 +631,469 @@ Macro file lineno.sty for LaTeX: attach line numbers, refer to them.
\def\@LN@nobreaktrue{\let\if@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@nobreak~. However, ~\@LN@nobreak~ is called during
-% ~\@LN@output~ only, while ~\@nobreaktrue~ is called by \LaTeX's
-% ~\@startsection~ only. The latter never happens during
-% ~\@LN@output~. So there is no local value of ~\if@nobreak~ on
-% save stack when ~\@nobreaktrue~ acts, since ~\the\@LN@output~
-% (where ~\@LN@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@nobreak~. However, ~\@LN@nobreak~ is called during
+% ~\@LN@output~ only, while ~\@nobreaktrue~ is called by \LaTeX's
+% ~\@startsection~ only. The latter never happens during
+% ~\@LN@output~. So there is no local value of ~\if@nobreak~ on
+% save stack when ~\@nobreaktrue~ acts, since ~\the\@LN@output~
+% (where ~\@LN@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@tempswa~_ =_~\iftrue~.
-% WARNING: I am still not sure whether the present code is good
-% for cooperating with other packages that use ~\holdinginserts~.
-
-\def\LineNoLaTeXOutput{%
+% (~\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@tempswa~_ =_~\iftrue~.
+% WARNING: I am still not sure whether the present code is good
+% for cooperating with other packages that use ~\holdinginserts~.
+
+\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@twocolumn \let\@makecol\@LN@makecol \fi
- \the\@LN@output % finally following David Kastrup's advice.
- \ifnum \holdinginserts=-\thr@@
- \global\holdinginserts\thr@@ \fi
+ \the\@LN@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@float~ inserts via ~\vadjust~.
-% However, this could be changed by our new ~\PostponeVadjust~.
-% After ~\c@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@linenumber~ is driven in a very non-standard
-% way.---However still, this behaviour of ~\c@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@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@float~ inserts via ~\vadjust~.
+% However, this could be changed by our new ~\PostponeVadjust~.
+% After ~\c@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@linenumber~ is driven in a very non-standard
+% way.---However still, this behaviour of ~\c@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@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@maybe@normalLineNumber % v4.31
+ \@LN@maybe@normalLineNumber % v4.31
\boxmaxdepth\maxdimen\setbox\z@\vbox{\unvbox\@cclv}%
\@tempdima\dp\z@ \unvbox\z@
\sbox\@tempboxa{\hb@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@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@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@linenumber\@ne~ instead of our choice.
+% (/New v4.22)
+%%
\stepLineNumber
-%%
-% (New v4.4) Now
-%%
- \ht\@tempboxa\z@ \@LN@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@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@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@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@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@parpgbrk{%
\penalty\the\count@
\global\let\noexpand\@LN@parpgbrk
- \noexpand\@LN@screenoff@pen}% v4.4
-%%
-% That penalty will replace former ~\kern\z@~ in
+ \noexpand\@LN@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@depthbox{%
+\def\@LN@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
% 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@outer@holdins{\the\holdinginserts}% v4.2
+ \xdef\@LN@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@parpgpen\relax
+% % \penalty\@LN@parpgpen\relax
% \end{verbatim}
% \end{old}
-% ---but this allows a page break after heading. So:
-%%
- \@LN@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@screenoff@pen~ below.
-% (/New v4.4)
-%%
+% ---but this allows a page break after heading. So:
+%%
+ \@LN@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@screenoff@pen~ below.
+% (/New v4.4)
+%%
\global\holdinginserts\@LN@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@parpgbrk~, accounting
-% for earlier space and for appropriate columndepth.
-% We use former ~\MakeLineNo~'s depth-preverving trick
-% ~\@LN@depthbox~ again:
+% (New v4.00, v4.4) Initialize ~\@LN@parpgbrk~, accounting
+% for earlier space and for appropriate columndepth.
+% We use former ~\MakeLineNo~'s depth-preverving trick
+% ~\@LN@depthbox~ again:
-\def\@LN@screenoff@pen{%
- \ifdim\lastskip=\z@
- \@tempdima\prevdepth \setbox\@tempboxa\null
+\def\@LN@screenoff@pen{%
+ \ifdim\lastskip=\z@
+ \@tempdima\prevdepth \setbox\@tempboxa\null
\@LN@depthbox \fi}
-\global\let\@LN@parpgbrk\@LN@screenoff@pen
+\global\let\@LN@parpgbrk\@LN@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@outer@holdins{\the\holdinginserts}% v4.3
+\def\linenumbers{%
+ \LineNumberstrue % v4.00
+ \xdef\@LN@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@linelabel % v4.11, removed v4.3
+ % \let\linelabel\@LN@linelabel % v4.11, removed v4.3
\ifx\@par\@@@par\let\@par\linenumberpar\fi
\ifx\par\@@@par\let\par\linenumberpar\fi
- \@LN@maybe@moduloresume % v4.31
+ \@LN@maybe@moduloresume % v4.31
\@ifnextchar[{\resetlinenumber}%]
{\@ifstar{\resetlinenumber}{}}%
}
-\def\nolinenumbers{%
+\def\nolinenumbers{%
\LineNumbersfalse % v4.00
\let\@@par\@@@par
- % \let\linelabel\@LN@LLerror % v4.11, removed v4.3
+ % \let\linelabel\@LN@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 @@ Macro file lineno.sty for LaTeX: attach line numbers, refer to them.
% 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 @@ Macro file lineno.sty for LaTeX: attach line numbers, refer to them.
% 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 @@ Macro file lineno.sty for LaTeX: attach line numbers, refer to them.
% 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 @@ Macro file lineno.sty for LaTeX: attach line numbers, refer to them.
% \begin{eqnarray}
% multi && line \\
% display && math \\
-% &
+% &
% \begin{array}{c}
% with \\
% array
@@ -1187,7 +1189,7 @@ Macro file lineno.sty for LaTeX: attach line numbers, refer to them.
% \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,34 +1198,34 @@ Macro file lineno.sty for LaTeX: attach line numbers, refer to them.
% 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
}
\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 @@ Macro file lineno.sty for LaTeX: attach line numbers, refer to them.
\@namedef{linenomath*}{\linenomathWithnumbers}%
}
-\def\endlinenomath{%
- \ifLineNumbers % v4.3
- \global\holdinginserts\@LN@outer@holdins % v4.21
- \fi
- \global % v4.21 support for LaTeX2e earlier than 1996/07/26.
+\def\endlinenomath{%
+ \ifLineNumbers % v4.3
+ \global\holdinginserts\@LN@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 @@ Macro file lineno.sty for LaTeX: attach line numbers, refer to them.
%
% \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 @@ Macro file lineno.sty for LaTeX: attach line numbers, refer to them.
% 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@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@addmarginpar\@addmarginpar
% % \def\@addmarginpar{%
@@ -1308,47 +1310,47 @@ Macro file lineno.sty for LaTeX: attach line numbers, refer to them.
% % \fi}
% \end{verbatim}
% \end{old}
-% OK, we keep Stephan's ~\@LN@ExtraLabelItems~:
-% (/New v4.00)
+% OK, we keep Stephan's ~\@LN@ExtraLabelItems~:
+% (/New v4.00)
\let\@LN@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@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@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@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@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@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.
-
-\def\WriteLineNo{%
- \unvbox\@cclv
- \expandafter \@LN@xnext \@LN@labellist \@@
- \@LN@label \@LN@labellist
- \protected@write\@auxout{}{\string\newlabel{\@LN@label}%
- {{\theLineNumber}{\thepage}\@LN@ExtraLabelItems}}%
+% This takes an item ~#1~ from a list ~#4~ into ~#3~;
+% to be used as ~\expandafter\@LN@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@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.
+
+\def\WriteLineNo{%
+ \unvbox\@cclv
+ \expandafter \@LN@xnext \@LN@labellist \@@
+ \@LN@label \@LN@labellist
+ \protected@write\@auxout{}{\string\newlabel{\@LN@label}%
+ {{\theLineNumber}{\thepage}\@LN@ExtraLabelItems}}%
}
% (/New v4.00)
-%
+%
% \subsection{%
% The \scs{linelabel} command
% \unskip}\label{ss:LL}
@@ -1360,9 +1362,9 @@ Macro file lineno.sty for LaTeX: attach line numbers, refer to them.
% \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 @@ Macro file lineno.sty for LaTeX: attach line numbers, refer to them.
% % 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,56 +1395,56 @@ Macro file lineno.sty for LaTeX: attach line numbers, refer to them.
% 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@mathhook~ and a shorthand
-% ~\@LN@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@mathhook~ and a shorthand
+% ~\@LN@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.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@LLerror{\PackageError{lineno}{%
- \string\linelabel\space without \string\linenumbers}{%
+\def\@LN@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@linelabel
+\newcommand\linelabel{%
+ \ifLineNumbers \expandafter \@LN@linelabel
\else \expandafter \@LN@LLerror \fi}
-%%\let\linelabel\@LN@LLerror
-
-\gdef\@LN@linelabel#1{%
-%%
-% ~\gdef~ for hyperref ``symbolically''. (/New v4.11)
-%%
- \ifx\protect\@typeset@protect
-%%
-% $\gets$ And a ~\linelabel~ should never be replicated in a
-% mark or a TOC entry. (/New v4.3)
-%%
+%%\let\linelabel\@LN@LLerror
+
+\gdef\@LN@linelabel#1{%
+%%
+% ~\gdef~ for hyperref ``symbolically''. (/New v4.11)
+%%
+ \ifx\protect\@typeset@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 @@ Macro file lineno.sty for LaTeX: attach line numbers, refer to them.
\ifinner
\@parmoderr
\else
-%%
-% (New v4.00)
-%%
- \@LN@postlabel{#1}%
+%%
+% (New v4.00)
+%%
+ \@LN@postlabel{#1}%
% \begin{old}\begin{verbatim}
% % \@floatpenalty -\@Mii
% % \@next\@currbox\@freelist
@@ -1467,65 +1469,65 @@ Macro file lineno.sty for LaTeX: attach line numbers, refer to them.
% % \endgroup
% % \@ignorefalse \@esphack
% \end{verbatim}
-% \end{old}
-% (/New v4.00)
-%%
- \@esphack
-%%
-% (New v4.00)
-% The ~\@ignorefalse~ was appropriate before because the
-% ~\@Esphack~ in ~\end@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@float~ set ~\@ignoretrue~. Cf._\LaTeX's
+% ~\@xympar~. (/New v4.00)
+%%
\fi
\else
-%%
-% (New v4.00)
-%%
+%%
+% (New v4.00)
+%%
\@LN@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@postlabel#1{\g@addto@macro\@LN@labellist{#1\@lt}%
- \vadjust{\penalty-\@Mllbcodepen}}
+ \vadjust{\penalty-\@Mllbcodepen}}
\def\@LN@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 . . .
%
% . . . here are the hooks:
-\def\makeLineNumberLeft{%
+\def\makeLineNumberLeft{%
\hss\linenumberfont\LineNumber\hskip\linenumbersep}
-\def\makeLineNumberRight{%
+\def\makeLineNumberRight{%
\linenumberfont\hskip\linenumbersep\hskip\columnwidth
\hb@xt@\linenumberwidth{\hss\LineNumber}\hss}
@@ -1539,7 +1541,7 @@ Macro file lineno.sty for LaTeX: attach line numbers, refer to them.
% 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 @@ Macro file lineno.sty for LaTeX: attach line numbers, refer to them.
% 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@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@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]{%
+%
+% (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@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@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]{%
\global % v4.22
\c@runninglinenumber#1\relax}
-% (New v4.00)
+% (New v4.00)
% \begin{old}\begin{verbatim}
% % \newcommand\resetlinenumber[1][1]{\c@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@linenumber\c@runninglinenumber
+%
+%% TODO v4.4+:
+%% \newcommand*\resetlinenumber[1][\@ne]{%
+%% \ifx\c@linenumber\c@runninglinenumber
%% \global\c@linenumber#1\relax
-%% \global\advance\c@linenumber\m@ne
-%% \stepLineNumber
-%% \else
-%% \PackageError{lineno}%% Shorthand!?
-%% {You can't reset line number in pagewise mode}%
-%% {This should suffice.}%
-%% \fi
-%% }
-%
+%% \global\advance\c@linenumber\m@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@runninglinenumber~
@@ -1670,12 +1672,12 @@ Macro file lineno.sty for LaTeX: attach line numbers, refer to them.
%
% \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 @@ Macro file lineno.sty for LaTeX: attach line numbers, refer to them.
% there might else be in ~\thepage~.
\def\logtheLineNumber{\protected@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@linenumber}{\noexpand\the\c@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@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@linenumber}{%
-%%
-% (New v4.2)
-%% \noexpand\number\n@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@LN@truepage}}}
-
-%% \newcount\n@LN@truepage
+% 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@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@linenumber}{%
+%%
+% (New v4.2)
+%% \noexpand\number\n@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@LN@truepage}}}
+
+%% \newcount\n@LN@truepage
%% \g@addto@macro\cl@page{\global\advance\n@LN@truepage\@ne}
-\newcount\c@LN@truepage
+\newcount\c@LN@truepage
\g@addto@macro\cl@page{\global\advance\c@LN@truepage\@ne}
\@addtoreset{LN@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@page~
-% should suffice as a pagewise master counter.---To be sure,
-% along the present lines the user \emph{can} manipulate
-% ~\c@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@addto@macro~ and ~\cl@page~ may be
-% not as stable as Stephan intended. His proposal used
-% ~\xdef~ directly. But he used ~\cl@page~ as well, and who
-% knows \dots{} And as to ~\g@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@page~
+% should suffice as a pagewise master counter.---To be sure,
+% along the present lines the user \emph{can} manipulate
+% ~\c@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@addto@macro~ and ~\cl@page~ may be
+% not as stable as Stephan intended. His proposal used
+% ~\xdef~ directly. But he used ~\cl@page~ as well, and who
+% knows \dots{} And as to ~\g@addto@macro~, I have introduced
+% it for list macros anyway.
+% (/UL) (/New v4.00)
+%
% From the aux-file we get one macro ~\LN@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 @@ Macro file lineno.sty for LaTeX: attach line numbers, refer to them.
% 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@Pfirst{\nextLN\relax}
% The four dynamic macros are initiallized to reproduce
@@ -1786,7 +1788,7 @@ Macro file lineno.sty for LaTeX: attach line numbers, refer to them.
% 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 @@ Macro file lineno.sty for LaTeX: attach line numbers, refer to them.
% 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 @@ Macro file lineno.sty for LaTeX: attach line numbers, refer to them.
\def\@@LN#1#2#3#4{\ifx#1\relax
\ifx#2\relax\gdef#2{#3}\fi
- \expandafter\@@@LN\csname LN@P\LastNumberedPage\endcsname#1%
- \xdef#1{\lastLN{#3}\firstLN{#3}%
+ \expandafter\@@@LN\csname LN@P\LastNumberedPage\endcsname#1%
+ \xdef#1{\lastLN{#3}\firstLN{#3}%
\pageLN{#4}{\@LN@column}{#2}\nextLN\relax}%
\else
\def\lastLN##1{\noexpand\lastLN{#3}}%
@@ -1825,7 +1827,7 @@ Macro file lineno.sty for LaTeX: attach line numbers, refer to them.
% The previous page macro gets its pointer to the
% current one, replacing the ~\relax~ with the cs-token
-% ~\LN@P~<page>.
+% ~\LN@P~<page>.
\def\@@@LN#1#2{{\def\nextLN##1{\noexpand\nextLN\noexpand#2}%
\xdef#1{#1}}}
@@ -1836,11 +1838,11 @@ Macro file lineno.sty for LaTeX: attach line numbers, refer to them.
% 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@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@Pfirst}
-% To find out on which page the current ~\c@linenumber~ is,
+% To find out on which page the current ~\c@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 @@ Macro file lineno.sty for LaTeX: attach line numbers, refer to them.
% 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@linenumber
@@ -1879,7 +1881,7 @@ Macro file lineno.sty for LaTeX: attach line numbers, refer to them.
}
% 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 @@ Macro file lineno.sty for LaTeX: attach line numbers, refer to them.
% 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 @@ Macro file lineno.sty for LaTeX: attach line numbers, refer to them.
% \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 @@ Macro file lineno.sty for LaTeX: attach line numbers, refer to them.
\def\gotNumberedPage#1#2#3#4{\oddNumberedPagefalse
\ifodd \if@twocolumn #3\else #2\fi\relax\oddNumberedPagetrue\fi
- \advance\c@linenumber\@ne
+ \advance\c@linenumber\@ne
\ifcolumnwiselinenumbers
\subtractlinenumberoffset{#1}%
\else
@@ -1949,7 +1951,7 @@ Macro file lineno.sty for LaTeX: attach line numbers, refer to them.
% in the ~\c@linenumber~ counter. This is what gets printed
% to the aux-file to make a label:
-\def\thePagewiseLineNumber{\protect
+\def\thePagewiseLineNumber{\protect
\getpagewiselinenumber{\the\c@linenumber}}%
% And here is what happens when the label is refered to:
@@ -1971,90 +1973,90 @@ Macro file lineno.sty for LaTeX: attach line numbers, refer to them.
% [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{%
% 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@orig@makecol\@makecol}
+\AtBeginDocument{% v4.2, revtex4.cls (e.g.).
+ % <- TODO v4.4+: Or better in \LineNoLaTeXOutput!?
+ \let\@LN@orig@makecol\@makecol}
\def\@LN@makecol{%
\@LN@orig@makecol
\setbox\@outputbox \vbox{%
\boxmaxdepth \@maxdepth
- \protected@write\@auxout{}{%
+ \protected@write\@auxout{}{%
\string\@LN@col{\if@firstcolumn1\else2\fi}%
}%
- \box\@outputbox
+ \box\@outputbox
}% \vbox
-} %% TODO cf. revtexln.sty.
+} %% TODO cf. revtexln.sty.
-\def\@LN@col{\def\@LN@column} % v4.22, removed #1.
+\def\@LN@col{\def\@LN@column} % v4.22, removed #1.
\@LN@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@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@...~ to ~\c@...~. (/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@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@...~ to ~\c@...~. (/New v4.22)
% \begin{old}\begin{verbatim}
-% % \newcount\c@linenumbermodulo % removed for v4.22
+% % \newcount\c@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@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@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@linenumber
% % \divide\@tempcnta\c@linenumbermodulo
@@ -2062,366 +2064,366 @@ Macro file lineno.sty for LaTeX: attach line numbers, refer to them.
% % \ifnum\@tempcnta=\c@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@LN@truepage~
-% is incremented via ~\cl@page~! This is another point in favour
-% of ~{linenumber}~ being a \LaTeX\ counter!
-% When this new counter equals ~\c@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@LN@truepage~
+% is incremented via ~\cl@page~! This is another point in favour
+% of ~{linenumber}~ being a \LaTeX\ counter!
+% When this new counter equals ~\c@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@linenumber<\c@firstlinenumber \else
- \begingroup
+ \ifnum\c@linenumber<\c@firstlinenumber \else
+ \begingroup
\@tempcnta\c@linenumber
- \advance\@tempcnta-\c@firstlinenumber
+ \advance\@tempcnta-\c@firstlinenumber
\divide\@tempcnta\c@linenumbermodulo
\multiply\@tempcnta\c@linenumbermodulo
- \advance\@tempcnta\c@firstlinenumber
+ \advance\@tempcnta\c@firstlinenumber
\ifnum\@tempcnta=\c@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@maybe@moduloresume{%
+ {\def\@LN@maybe@moduloresume{%
\global\let\@LN@maybe@normalLineNumber
- \@LN@normalLineNumber}%
- \@LN@modulolinenos}%
+ \@LN@normalLineNumber}%
+ \@LN@modulolinenos}%
{\let\@LN@maybe@moduloresume\relax \@LN@modulolinenos}%
}
-\global\let\@LN@maybe@normalLineNumber\relax
-\let\@LN@maybe@moduloresume\relax
-\gdef\@LN@normalLineNumber{%
- \ifnum\c@linenumber=\c@firstlinenumber \else
+\global\let\@LN@maybe@normalLineNumber\relax
+\let\@LN@maybe@moduloresume\relax
+\gdef\@LN@normalLineNumber{%
+ \ifnum\c@linenumber=\c@firstlinenumber \else
\ifnum\c@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@maybe@normalLineNumber\relax}
-% Instead of changing ~\LineNumber~ directly by
+% Instead of changing ~\LineNumber~ directly by
% ~LN@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@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@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@linenumbermodulo~=1$.
-% With ~lnopatch.sty~, a trick was offered for this purpose.
-% It is now obsolete.
-%
- \def\LineNumber{\@LN@ifgreat\thelinenumber}%
-%%
-% (/New v4.00)
-%%
+% \end{old}
+% (New v4.00) I am putting something here to enable
+% ~\firstlinenumber~ with $~\c@linenumbermodulo~=1$.
+% With ~lnopatch.sty~, a trick was offered for this purpose.
+% It is now obsolete.
+%
+ \def\LineNumber{\@LN@ifgreat\thelinenumber}%
+%%
+% (/New v4.00)
+%%
\fi\fi
}
-% (New v4.00) The default of ~\@LN@ifgreat~ is
+% (New v4.00) The default of ~\@LN@ifgreat~ is
\let\@LN@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@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@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@ifgreat\@LN@ifgreat@critical}
+% (New v4.31)
+%%
+ \let\@LN@ifgreat\@LN@ifgreat@critical}
\def\@LN@ifgreat@critical{%
- \ifnum\c@linenumber<\c@firstlinenumber
- \expandafter \@gobble
- \fi}%
+ \ifnum\c@linenumber<\c@firstlinenumber
+ \expandafter \@gobble
+ \fi}%
-% (/New v4.31)
-%
-% The default
-% value of ~\c@firstlinenumber~ %% v4.31
-% is 0. This is best for what one would expect from modulo
-% printing.
+% (/New v4.31)
+%
+% The default
+% value of ~\c@firstlinenumber~ %% v4.31
+% is 0. This is best for what one would expect from modulo
+% printing.
\let\c@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@linenumbermodulo=5 % v4.2; ugly?
+\chardef\c@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@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@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.
-
-\DeclareOption{addpageno}{%
- \AtEndOfPackage{\RequirePackage{vplref}[2005/04/25]}}
-
-% \subsection{%
-% \scs{linelabel} in math mode
+%
+% 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]}}
+
+% \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.
-
-\DeclareOption{mathrefs}{\AtBeginDocument
- {\RequirePackage{ednmath0}[2004/08/20]}}
-
-%
-% \subsection{%
+%
+% 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]}}
+
+%
+% \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@LN@edtable\iffalse
+\let\if@LN@edtable\iffalse
\DeclareOption{edtable}{\let\if@LN@edtable\iftrue}
-\DeclareOption{longtable}{\let\if@LN@edtable\iftrue
+\DeclareOption{longtable}{\let\if@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
@@ -2445,9 +2447,9 @@ Macro file lineno.sty for LaTeX: attach line numbers, refer to them.
\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 @@ Macro file lineno.sty for LaTeX: attach line numbers, refer to them.
% 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 @@ Macro file lineno.sty for LaTeX: attach line numbers, refer to them.
\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,124 +2503,124 @@ Macro file lineno.sty for LaTeX: attach line numbers, refer to them.
\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@mlineno\relax
%%\DeclareOption{displaymath}{\let\do@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
% 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@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@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@linelabel~
-% will do almost the same, then globally indeed.
%%
- \gdef\@LN@ExtraLabelItems{{}{}{}}%
+% (New v4.3) ``Global'' is merely ``symbolic'' ~\AtBeginDoc...~.
+% If ~nameref~ is not detected here, the next ~\@LN@linelabel~
+% will do almost the same, then globally indeed.
+%%
+ \gdef\@LN@ExtraLabelItems{{}{}{}}%
}{%
- \global\let\@LN@@linelabel\@LN@linelabel
- \gdef\@LN@linelabel{%
-%%
-% ~\@ifpackageloaded~ is ``preamble only'', its---very
-% internal---preamble definition is replicated here:
-%%
- \expandafter
- \ifx\csname ver@nameref.sty\endcsname\relax \else
- \gdef\@LN@ExtraLabelItems{{}{}{}}%
- \fi
-%%
-% Now aim at the ``usual'' behaviour:
-%%
- \global\let\@LN@linelabel\@LN@@linelabel
- \global\let\@LN@@linelabel\relax
+ \global\let\@LN@@linelabel\@LN@linelabel
+ \gdef\@LN@linelabel{%
+%%
+% ~\@ifpackageloaded~ is ``preamble only'', its---very
+% internal---preamble definition is replicated here:
+%%
+ \expandafter
+ \ifx\csname ver@nameref.sty\endcsname\relax \else
+ \gdef\@LN@ExtraLabelItems{{}{}{}}%
+ \fi
+%%
+% Now aim at the ``usual'' behaviour:
+%%
+ \global\let\@LN@linelabel\@LN@@linelabel
+ \global\let\@LN@@linelabel\relax
\@LN@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@LN@edtable \RequirePackage{edtable}[2005/03/07] \fi
+\if@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 @@ Macro file lineno.sty for LaTeX: attach line numbers, refer to them.
% (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@mlineno\@empty
\@ifundefined{mathindent}{
-%% \AtBeginDocument{%
+%% \AtBeginDocument{%
\let\LN@displaymath\[%
\let\LN@enddisplaymath\]%
\renewcommand\[{\begin{linenomath}\LN@displaymath}%
\renewcommand\]{\LN@enddisplaymath\end{linenomath}}%
-%
+%
\let\LN@equation\equation
\let\LN@endequation\endequation
\renewenvironment{equation}%
@@ -2653,7 +2655,7 @@ Macro file lineno.sty for LaTeX: attach line numbers, refer to them.
{\LN@endequation\endlinenomath}%
%% }
- }{}% \@ifundefined{mathindent} -- 3rd arg v4.2, was \par!
+ }{}% \@ifundefined{mathindent} -- 3rd arg v4.2, was \par!
%%\AtBeginDocument{%
\let\LN@eqnarray\eqnarray
@@ -2662,41 +2664,41 @@ Macro file lineno.sty for LaTeX: attach line numbers, refer to them.
{\linenomath\LN@eqnarray}%
{\LN@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@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@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@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@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@iglobal\global % v4.22
+\let\@LN@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 @@ Macro file lineno.sty for LaTeX: attach line numbers, refer to them.
\newcount\c@internallinenumber
\newcount\c@internallinenumbers
-\newcommand\internallinenumberpar{%
+\newcommand\internallinenumberpar{%
\ifvmode\@@@par\else\ifinner\@@@par\else\@@@par
\begingroup
\c@internallinenumbers\prevgraf
@@ -2724,21 +2726,21 @@ Macro file lineno.sty for LaTeX: attach line numbers, refer to them.
\ht\@tempboxa\z@
\nobreak\vskip-\prevdepth
\nointerlineskip\box\@tempboxa
- \endgroup
+ \endgroup
\fi\fi
}
-\newcommand\makeinternalLinenumbers{%
+\newcommand\makeinternalLinenumbers{%
\ifnum\c@internallinenumbers>\z@ % v4.2
- \hb@xt@\z@{\makeLineNumber}%
- \@LN@iglobal % v4.22
+ \hb@xt@\z@{\makeLineNumber}%
+ \@LN@iglobal % v4.22
\advance\c@linenumber\@ne
\advance\c@internallinenumbers\m@ne
\expandafter\makeinternalLinenumbers\fi
}
% TODO v4.4+: star: line numbers right!? cf. lnocapt.sty
-%
+%
% \subsection{%
% Line number references with offset
% \unskip}
@@ -2788,8 +2790,8 @@ Macro file lineno.sty for LaTeX: attach line numbers, refer to them.
\newcommand*\@linerefadd[2]{\c@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 @@ Macro file lineno.sty for LaTeX: attach line numbers, refer to them.
% 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@internallinenumber~
+%
+% (v4.22: A local version using ~\c@internallinenumber~
% might be useful, see subsection_\ref{ss:ILN}.) %% TODO v4.4+
\newcommand\quotelinenumbers
@@ -2827,7 +2829,7 @@ Macro file lineno.sty for LaTeX: attach line numbers, refer to them.
\newenvironment{numquote*} {\quote\numquotelist*}{\endquote}
\newenvironment{numquotation*}{\quotation\numquotelist*}{\endquotation}
-%
+%
% \subsection{%
% Frame around a paragraph
% \unskip}
@@ -2877,238 +2879,294 @@ Macro file lineno.sty for LaTeX: attach line numbers, refer to them.
\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@patch[1]{%
+ \cspreto{#1}{\linenomath}%
+ \cspreto{#1*}{\linenomath}%
+ \csappto{end#1}{\endlinenomath}%
+ \csappto{end#1*}{\endlinenomath}%
+}
+\newcount\linenoamsmath@ams@eqpen
+\cspreto{math@cr@}{\global\@eqpen\numexpr\@eqpen+\linenoamsmath@ams@eqpen\relax}
+\newcommand*\linenoamsmath@patch@ams[1]{%
+ \cspreto{#1}{%
+ \linenomath%
+ \postdisplaypenalty=0%
+ \global\linenoamsmath@ams@eqpen\interdisplaylinepenalty%
+ }%
+ \cspreto{#1*}{%
+ \linenomath%
+ \postdisplaypenalty=0%
+ \global\linenoamsmath@ams@eqpen\interdisplaylinepenalty%
+ }%
+ \csappto{end#1}{%
+ \global\linenoamsmath@ams@eqpen\z@%
+ \endlinenomath%
+ }%
+ \csappto{end#1*}{%
+ \global\linenoamsmath@ams@eqpen\z@%
+ \endlinenomath%
+ }%
+}
+\linenoamsmath@patch{equation}
+\linenoamsmath@patch@ams{multline}
+\linenoamsmath@patch@ams{gather}
+\linenoamsmath@patch@ams{align}
+\linenoamsmath@patch@ams{alignat}
+\linenoamsmath@patch@ams{flalign}
+\let\linenoamsmath@ams@mmeasure\mmeasure@
+\def\mmeasure@#1{%
+ \global\linenoamsmath@ams@eqpen\z@%
+ \begingroup%
+ \interdisplaylinepenalty=0%
+ \linenoamsmath@ams@mmeasure{#1\\}%
+ \endgroup%
+ \global\linenoamsmath@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.
-
-\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@addto@macro\@LN@vadjustlist{#1\@lt}%
+%
+% ~\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@addto@macro\@LN@vadjustlist{#1\@lt}%
}
-\let\@LN@@vadjust\vadjust
-\global\let\@LN@vadjustlist\@empty
-\global\let\@LN@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@vadjustlist~ collects
-% the ~\vadjust~ items of a paragraph. ~\PassVadjustList~
-% tears one ~\vadjust~ item for the current line out of
-% ~\@LN@vadjustlist~ and puts it into ~\@LN@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@do@vadjust~ is ~\relax~ until a ~\vadjust~ item
-% is waiting. In the latter case, ~\@LN@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@xnext \@LN@vadjustlist \@@
- \@tempa \@LN@vadjustlist
- \ifx\@LN@do@vadjusts\relax
- \gdef\@LN@do@vadjusts{\global\let\@LN@do@vadjusts\relax}%
- \fi
- \expandafter \g@addto@macro \expandafter \@LN@do@vadjusts
- \expandafter {\@tempa}%
-}
-
-%
+\let\@LN@@vadjust\vadjust
+\global\let\@LN@vadjustlist\@empty
+\global\let\@LN@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@vadjustlist~ collects
+% the ~\vadjust~ items of a paragraph. ~\PassVadjustList~
+% tears one ~\vadjust~ item for the current line out of
+% ~\@LN@vadjustlist~ and puts it into ~\@LN@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@do@vadjust~ is ~\relax~ until a ~\vadjust~ item
+% is waiting. In the latter case, ~\@LN@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@xnext \@LN@vadjustlist \@@
+ \@tempa \@LN@vadjustlist
+ \ifx\@LN@do@vadjusts\relax
+ \gdef\@LN@do@vadjusts{\global\let\@LN@do@vadjusts\relax}%
+ \fi
+ \expandafter \g@addto@macro \expandafter \@LN@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@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@changevadjust{%
- \ifvmode\else\ifinner\else
- \global\let\vadjust\PostponeVadjust
- \fi\fi
-}
-
-% (UL) What about math mode? Math display? Warn? (/UL)
+%
+% 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@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+
-%
-% ~\@tempa~ will now become a two place macro which adds first
+%
+% The next command and something else will be added to the
+% \LaTeX\ commands we are concerned with here.
+
+\DeclareRobustCommand\@LN@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
% 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}%
-}
-
-% (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
-
-% We hope this suffices $\dots$ let's check one thing
+ \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:
+
+\@tempa\nolinenumbers\@arrayparboxrestore
+
+% 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.
-
-\@tempa\@LN@changevadjust\vspace
-\@tempa\@LN@changevadjust\pagebreak
-\@tempa\@LN@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~!).
-%%
-%% \@ifstar reimplemented 1995/10/16, but seems to be much older.
-%% TODO v4.4+:
-%% \def\@LN@cr{%
-%% \@ifnextchar*{\@LN@changevadjust\@normalcr}%
-%% {\@ifnextchar[{\@LN@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+
-
-\DeclareRobustCommand\\{%
- \ifLineNumbers
- \expandafter \@LN@cr
- \else
- \expandafter \@normalcr
- \fi
-}
-\def\@LN@cr{%
- \@ifstar{\@LN@changevadjust\@normalcr*}%
- {\@ifnextchar[{\@LN@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.
-%
+%
+% 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@changevadjust\vspace
+\@tempa\@LN@changevadjust\pagebreak
+\@tempa\@LN@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~!).
+%%
+%% \@ifstar reimplemented 1995/10/16, but seems to be much older.
+%% TODO v4.4+:
+%% \def\@LN@cr{%
+%% \@ifnextchar*{\@LN@changevadjust\@normalcr}%
+%% {\@ifnextchar[{\@LN@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+
+
+\DeclareRobustCommand\\{%
+ \ifLineNumbers
+ \expandafter \@LN@cr
+ \else
+ \expandafter \@normalcr
+ \fi
+}
+\def\@LN@cr{%
+ \@ifstar{\@LN@changevadjust\@normalcr*}%
+ {\@ifnextchar[{\@LN@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.
+%
% \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.
-
-\AtBeginDocument{%
- \let\if@LN@obsolete\iffalse
- \@ifpackageloaded{linenox0}{\let\if@LN@obsolete\iftrue}\relax
- \@ifpackageloaded{linenox1}{\let\if@LN@obsolete\iftrue}\relax
+% \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@LN@obsolete\iffalse
+ \@ifpackageloaded{linenox0}{\let\if@LN@obsolete\iftrue}\relax
+ \@ifpackageloaded{linenox1}{\let\if@LN@obsolete\iftrue}\relax
\@ifpackageloaded{lnopatch}{\let\if@LN@obsolete\iftrue}\relax
- \if@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@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 @@ Macro file lineno.sty for LaTeX: attach line numbers, refer to them.
\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 @@ Macro file lineno.sty for LaTeX: attach line numbers, refer to them.
% [|\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 @@ Macro file lineno.sty for LaTeX: attach line numbers, refer to them.
% 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 @@ Macro file lineno.sty for LaTeX: attach line numbers, refer to them.
% ~\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 @@ Macro file lineno.sty for LaTeX: attach line numbers, refer to them.
% ~\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 @@ Macro file lineno.sty for LaTeX: attach line numbers, refer to them.
% \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 @@ Macro file lineno.sty for LaTeX: attach line numbers, refer to them.
% 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 @@ Macro file lineno.sty for LaTeX: attach line numbers, refer to them.
% [|\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@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@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,19 +3477,19 @@ BEGIN{DOC=-1; # AWK DOC A W K
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
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 @@ DOC<0 { next } # A#WK DOC A W K
------------------------------------------------------------------------------
-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
-
- sh lineno.sty
+If you are looking here because of the two top lines of the file:
-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.
+A .tex documentation of this macro file can be obtained by
+ 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.
diff --git a/Master/texmf-dist/tex/latex/lineno/vplref.sty b/Master/texmf-dist/tex/latex/lineno/vplref.sty
index d3b0697f131..bdff9b45b7a 100644
--- a/Master/texmf-dist/tex/latex/lineno/vplref.sty
+++ b/Master/texmf-dist/tex/latex/lineno/vplref.sty
@@ -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
-