From 9858bb195fd9c52c986155223a79c6fa1158e94c Mon Sep 17 00:00:00 2001 From: Norbert Preining Date: Tue, 6 Dec 2022 03:01:31 +0000 Subject: CTAN sync 202212060301 --- macros/latex/contrib/lineno/CHANGEs.txt | 165 - macros/latex/contrib/lineno/COPYING.txt | 27 - macros/latex/contrib/lineno/README | 1 - macros/latex/contrib/lineno/README.md | 146 + macros/latex/contrib/lineno/README.txt | 204 -- macros/latex/contrib/lineno/SRCFILEs.txt | 15 - macros/latex/contrib/lineno/doc/CHANGEs.txt | 189 ++ macros/latex/contrib/lineno/doc/COPYING.txt | 25 + macros/latex/contrib/lineno/doc/SRCFILEs.txt | 10 + macros/latex/contrib/lineno/doc/fnlineno.pdf | Bin 0 -> 198366 bytes macros/latex/contrib/lineno/doc/lineno.pdf | Bin 0 -> 367668 bytes .../latex/contrib/lineno/doc/linenoamsmathdemo.pdf | Bin 0 -> 95318 bytes macros/latex/contrib/lineno/doc/lnosuppl.pdf | Bin 0 -> 161169 bytes macros/latex/contrib/lineno/doc/ulineno.pdf | Bin 0 -> 127130 bytes macros/latex/contrib/lineno/ednmath0.sty | 202 -- macros/latex/contrib/lineno/edtable.sty | 571 ---- macros/latex/contrib/lineno/fnlineno.pdf | Bin 260298 -> 0 bytes macros/latex/contrib/lineno/fnlineno.sty | 1149 ------- macros/latex/contrib/lineno/fnlineno.tex | 90 - macros/latex/contrib/lineno/lineno.pdf | Bin 283165 -> 0 bytes macros/latex/contrib/lineno/lineno.sty | 3484 ------------------- macros/latex/contrib/lineno/lineno.tex | 3167 ------------------ macros/latex/contrib/lineno/lnosuppl.pdf | Bin 167683 -> 0 bytes macros/latex/contrib/lineno/lnosuppl.tex | 127 - macros/latex/contrib/lineno/source/fnlineno.tex | 92 + macros/latex/contrib/lineno/source/lineno.tex | 3225 ++++++++++++++++++ .../contrib/lineno/source/linenoamsmathdemo.tex | 415 +++ macros/latex/contrib/lineno/source/lnosuppl.tex | 127 + macros/latex/contrib/lineno/source/ulineno.tex | 984 ++++++ macros/latex/contrib/lineno/tex/ednmath0.sty | 200 ++ macros/latex/contrib/lineno/tex/edtable.sty | 571 ++++ macros/latex/contrib/lineno/tex/fnlineno.sty | 1149 +++++++ macros/latex/contrib/lineno/tex/lineno.sty | 3539 ++++++++++++++++++++ macros/latex/contrib/lineno/tex/vplref.sty | 73 + macros/latex/contrib/lineno/ulineno.pdf | Bin 142217 -> 0 bytes macros/latex/contrib/lineno/ulineno.tex | 986 ------ macros/latex/contrib/lineno/vplref.sty | 74 - macros/latex/contrib/linenoamsmath/README | 15 - .../latex/contrib/linenoamsmath/linenoamsmath.dtx | 583 ---- .../latex/contrib/linenoamsmath/linenoamsmath.ins | 26 - .../latex/contrib/linenoamsmath/linenoamsmath.pdf | Bin 224791 -> 0 bytes macros/latex/contrib/mathfont/README.txt | 8 +- macros/latex/contrib/mathfont/mathfont_code.dtx | 144 +- macros/latex/contrib/mathfont/mathfont_code.pdf | Bin 363665 -> 364537 bytes .../mathfont/mathfont_example_cormorant.pdf | Bin 51367 -> 51296 bytes .../contrib/mathfont/mathfont_example_kelvinch.pdf | Bin 85049 -> 85047 bytes .../contrib/mathfont/mathfont_example_roboto.pdf | Bin 54342 -> 54342 bytes .../contrib/mathfont/mathfont_example_typey.pdf | Bin 47387 -> 47388 bytes .../contrib/mathfont/mathfont_symbol_list.pdf | Bin 186232 -> 186433 bytes .../latex/contrib/mathfont/mathfont_user_guide.pdf | Bin 115314 -> 115613 bytes macros/latex/contrib/setspace/README | 13 - macros/latex/contrib/setspace/README.md | 13 + macros/latex/contrib/setspace/setspace-doc.pdf | Bin 0 -> 197440 bytes macros/latex/contrib/setspace/setspace-doc.tex | 66 + macros/latex/contrib/setspace/setspace-test.tex | 24 - macros/latex/contrib/setspace/setspace.sty | 47 +- macros/latex/contrib/siunitx/CHANGELOG.md | 10 +- macros/latex/contrib/siunitx/siunitx-code.pdf | Bin 617721 -> 617754 bytes macros/latex/contrib/siunitx/siunitx-number.dtx | 2 +- macros/latex/contrib/siunitx/siunitx-table.dtx | 16 +- macros/latex/contrib/siunitx/siunitx.dtx | 2 +- macros/latex/contrib/siunitx/siunitx.pdf | Bin 666266 -> 666266 bytes 62 files changed, 10977 insertions(+), 10999 deletions(-) delete mode 100644 macros/latex/contrib/lineno/CHANGEs.txt delete mode 100644 macros/latex/contrib/lineno/COPYING.txt delete mode 120000 macros/latex/contrib/lineno/README create mode 100644 macros/latex/contrib/lineno/README.md delete mode 100644 macros/latex/contrib/lineno/README.txt delete mode 100644 macros/latex/contrib/lineno/SRCFILEs.txt create mode 100644 macros/latex/contrib/lineno/doc/CHANGEs.txt create mode 100644 macros/latex/contrib/lineno/doc/COPYING.txt create mode 100644 macros/latex/contrib/lineno/doc/SRCFILEs.txt create mode 100644 macros/latex/contrib/lineno/doc/fnlineno.pdf create mode 100644 macros/latex/contrib/lineno/doc/lineno.pdf create mode 100644 macros/latex/contrib/lineno/doc/linenoamsmathdemo.pdf create mode 100644 macros/latex/contrib/lineno/doc/lnosuppl.pdf create mode 100644 macros/latex/contrib/lineno/doc/ulineno.pdf delete mode 100644 macros/latex/contrib/lineno/ednmath0.sty delete mode 100644 macros/latex/contrib/lineno/edtable.sty delete mode 100644 macros/latex/contrib/lineno/fnlineno.pdf delete mode 100644 macros/latex/contrib/lineno/fnlineno.sty delete mode 100644 macros/latex/contrib/lineno/fnlineno.tex delete mode 100644 macros/latex/contrib/lineno/lineno.pdf delete mode 100644 macros/latex/contrib/lineno/lineno.sty delete mode 100644 macros/latex/contrib/lineno/lineno.tex delete mode 100644 macros/latex/contrib/lineno/lnosuppl.pdf delete mode 100644 macros/latex/contrib/lineno/lnosuppl.tex create mode 100644 macros/latex/contrib/lineno/source/fnlineno.tex create mode 100644 macros/latex/contrib/lineno/source/lineno.tex create mode 100644 macros/latex/contrib/lineno/source/linenoamsmathdemo.tex create mode 100644 macros/latex/contrib/lineno/source/lnosuppl.tex create mode 100644 macros/latex/contrib/lineno/source/ulineno.tex create mode 100644 macros/latex/contrib/lineno/tex/ednmath0.sty create mode 100644 macros/latex/contrib/lineno/tex/edtable.sty create mode 100644 macros/latex/contrib/lineno/tex/fnlineno.sty create mode 100644 macros/latex/contrib/lineno/tex/lineno.sty create mode 100644 macros/latex/contrib/lineno/tex/vplref.sty delete mode 100644 macros/latex/contrib/lineno/ulineno.pdf delete mode 100644 macros/latex/contrib/lineno/ulineno.tex delete mode 100644 macros/latex/contrib/lineno/vplref.sty delete mode 100644 macros/latex/contrib/linenoamsmath/README delete mode 100644 macros/latex/contrib/linenoamsmath/linenoamsmath.dtx delete mode 100644 macros/latex/contrib/linenoamsmath/linenoamsmath.ins delete mode 100644 macros/latex/contrib/linenoamsmath/linenoamsmath.pdf delete mode 100644 macros/latex/contrib/setspace/README create mode 100644 macros/latex/contrib/setspace/README.md create mode 100644 macros/latex/contrib/setspace/setspace-doc.pdf create mode 100644 macros/latex/contrib/setspace/setspace-doc.tex delete mode 100644 macros/latex/contrib/setspace/setspace-test.tex (limited to 'macros') diff --git a/macros/latex/contrib/lineno/CHANGEs.txt b/macros/latex/contrib/lineno/CHANGEs.txt deleted file mode 100644 index 36df3fabef..0000000000 --- a/macros/latex/contrib/lineno/CHANGEs.txt +++ /dev/null @@ -1,165 +0,0 @@ - -CHANGES for lineno bundle 2011/02/16: - -1. new fnlineno.sty for numbering footnote lines + \linelabel, -described in fnlineno.pdf - -2. new overview SRCFILEs.txt - - -CHANGES for lineno.sty v4.41 2005/11/02: - -1. Loadable after amsmath. - -2. Removed some nonsense from documentation. - - -CHANGES for lineno.sty v4.4 2005/10/27 -[failed to be uploaded to CTAN, but distributed by mail]: - -1. Proper effective line depth at end of paragraphs. - The spacing bug was quite obvious in two-column mode - when a paragraph end was at a column bottom. - -2. Another bug concerning two-column mode that had been - introduced in v4.22 has been removed again. - -3. Support for \addvspace introduced more and more bugs - in versions of v4.32 and v4.33. The reasons seem to - be clear now, and v4.4 should be stable. - - -CHANGES for lineno.sty v4.32 2005/10/17: - -1. Support for \addvspace - (a math display or a list meets a heading -- or a sub-heading - follows a heading -- or the like) - -2. Clearly explained former option `displaymath' and its change - to a default. - - -CHANGES for lineno.sty v4.31 2005/10/01: - -1. \modulolinenumbers* and a package option `modulo*' for - printing first line number after interrupting editor's - text, regardless of the modulo. - -2. Improved explanation of \firstlinenumber and package - options. - - -CHANGES for lineno.sty v4.3 2005/05/16: - -1. Option `displaymath' (proper numbering at paragraphs - containing math displays) becomes default. - -2. Compatibility with hyperref now indeed (at least much more). - -3. Tidied up documentation: terrible confusion of \newcounter - vs. \stepcounter; sections on the same matter written at - different times; ... - -4. Additional internal improvements that perhaps hardly are - observable (no more spurious linenumbers in math displays - from vertical mode; some compatibity with packages that use - \holdinginserts; \linelabel in headings etc.). - - -CHANGES for lineno.sty v4.22 2005/05/09: - -1. Restored "global" version of numbering lines of a \parbox or - minipage or ... (I had missed and disabled this in taking - over lineno.sty), explained in documentation (lineno.pdf/dvi - subsec. 7.2). - -2. Enabled \flushbottom in two-column pagewise or switching - mode. - -3. Re-implemented modulo mode -- disabling certain users' tricks - see lineno.pdf sec. 5.5, also for a still supported - substituting trick. - -4. Tidied up setting the next line number globally vs. locally - (TeXbook p. 301). - -5. Tidied up discussions (in documentation) of possible changes - in implementation. - - -CHANGES for lineno.sty v4.21 2005/04/28: - -Removed serious flaws with math display, + something ... - - -CHANGES for lineno.sty v4.2 2005/04/26: - -1. Re-enabled package option `displaymath' (needed rearrangement - after sec. 5). - -2. New package option `addpageno' for adding page numbers to - line number references -- see sec. 6.1 of lineno.pdf. - -3. Improved support for \includeonly (and improved sec. 5.3, - p. 27). - -4. Improved compatibility with other packages that change \output - (tameflts.sty, e.g., for saving footnotes against \marginpar - and floats), added advice on this matter -- sec. 2.3, - pp. 7, 14f. - - -CHANGES for lineno.sty v4.11 2005/03/08: - -1. The `edtable' option now supports math environments like -`array'. This requires updating edtable.sty to v1.3. (The claim -in previous versions of edtable on this support simply was -wrong, sorry.) For how to make use of this support, we urge you -to read the usage instructions in edtable.sty (v1.3). These have -been extended very much, structured more clearly, and supplied -with examples. - -2. \linelabel now complains when appearing outside line -numbering mode. This counters Stephan Boettcher's original -intention, but I generalize from my own experience that it is -helpful to be told when you have forgotten to switch into line -numbering mode and (e.g.) wonder why all the line number -references are 1 ... ednotes.sty users profit as well (at least -I expect and hope that anybody profits, which, to be sure, does -not mean that I hope that anybody forgets to switch ...). - -3. The subsection on `edtable' in lineno.sty/tex/pdf was not -quite correct or complete -- corrected, improved. - -4. The final list of user commands in lineno.sty/tex/pdf has not -been complete. This has not changed, but it is briefly explained -what is missing and where it can be found. - - -CHANGE 2005/01/20: - -We have devised macros for indexing with line numbers, -yet we don't take the time to release them officially. -If you are interested, please ask via - - http://contact-ednotes.sty.de.vu - - -CHANGES for lineno.sty v4.1 2004/10/19: - -Extension packages from the Ednotes bundle for enabling -\linelabel in math mode and tabular environments are now -handled through new package options `mathrefs', `edtable', -`longtable', and `nolongtablepatch'. Two of these extension -packages moved from the ednotes folder to the lineno folder. -lineno.tex/pdf has been updated accordingly. - - -CHANGES for lineno.sty v4.00 2004/09/03: - -o incorporated earlier extension packages linenox0.sty, - linenox1.sty, lnopatch.sty (which belonged to the - Ednotes bundle before); - -o adopted LaTeX Project Public License v1.3. - diff --git a/macros/latex/contrib/lineno/COPYING.txt b/macros/latex/contrib/lineno/COPYING.txt deleted file mode 100644 index 60ad89a860..0000000000 --- a/macros/latex/contrib/lineno/COPYING.txt +++ /dev/null @@ -1,27 +0,0 @@ -% lineno.sty -% -% The files in this directory are -% -% Copyright 1995--2003 Stephan I. B"ottcher ; -% Copyright 2002--2005 Uwe L"uck, http://contact-ednotes.sty.de.vu, -% for versions 4.x and code from former Ednotes -% bundle--author-maintained. -% Copyright 2011 Uwe L"uck, http://contact-ednotes.sty.de.vu, -% for fnlineno.sty/tex/pdf -% -% The files can be redistributed and/or modified under -% the terms of the LaTeX Project Public License; either -% version 1.3a of the License, or any later version. -% The latest version of this license is in -% http://www.latex-project.org/lppl.txt -% We did our best to help you, but there is NO WARRANTY. -% -% ============================================================================ -<- (UL) End of official declaration. - -History: -add. fnlineno 2011/02/16 ul -This file -> The files 2004/10/12 ul -$Id: COPYING,v 3.0.2.1 2004/09/13 20:15:47 stephan Exp $ -LPPL v1.3a 2004/10/26 - diff --git a/macros/latex/contrib/lineno/README b/macros/latex/contrib/lineno/README deleted file mode 120000 index c3ca07460a..0000000000 --- a/macros/latex/contrib/lineno/README +++ /dev/null @@ -1 +0,0 @@ -README.txt \ No newline at end of file diff --git a/macros/latex/contrib/lineno/README.md b/macros/latex/contrib/lineno/README.md new file mode 100644 index 0000000000..b543e53029 --- /dev/null +++ b/macros/latex/contrib/lineno/README.md @@ -0,0 +1,146 @@ +# lineno.sty v5.0, fnlineno.sty v0.55 + +2022-11-29 + +The LaTeX package lineno.sty provides line numbers on paragraphs. After TeX has +broken a paragraph into lines there will be line numbers attached to them, with +the possibility to make references through the LaTeX \ref, \pageref cross +reference mechanism. + +- Copyright 1995--2003 Stephan I. Böttcher +- Copyright 2002--2005 Uwe Lück for versions 4.x and code from former Ednotes +- Copyright 2011 Uwe Lück for fnlineno.sty/tex/pdf +- Copyright 2021--2022 Karl Wette for versions 5.x + +The files can be redistributed and/or modified under +the terms of the LaTeX Project Public License; either +version 1.3a of the License, or any later version. +The latest version of this license is in http://www.latex-project.org/lppl.txt. +We did our best to help you, but there is NO WARRANTY. + +Home: http://mirror.ctan.org/macros/latex/contrib/lineno/ + +Authors: + +- Stephan I. Böttcher +- Uwe Lück +- Karl Wette + +## Compatibility with other packages: + +- `wrapfig.sty`: works since v2.05 + +- `multicol.sty`: works partly since 3.02. Do NOT use \linelabel. Do NOT put a + multicol in internal vertical mode {table}, {figure}, etc. + +- `hyperref.sty`: \ref to a \linelabel works since v3.03. + +- `longtable.sty`: broke with lineno.sty loaded, but not enabled. This is fixed + in v3.04. + +- `amsmath.sty`: loadable, but not fully supported, with v4.41. Fully supported + with v5.0. + +## Installation and usage (UL, v4.1): + +For being able to use ALL the new `lineno.sty` options, the following files must +be "visible" to (La)TeX ("visible" explained below for beginners): + +```lineno.sty, edtable.sty, ednmath0.sty, ltabptch.sty``` + +as above ("Home", note that clicking on "entire directory" suffices); + +`longtable.sty` -- from the standard LaTeX Tools bundle. + +Usage always starts with loading lineno.sty by `\usepackage`. The remaining +`.sty` files are loaded automatically on the `lineno.sty` options (and we +recommend not to load them through [the mandatory argument of] `\usepackage`). + +For details, see `lineno.tex/pdf` and the `.sty` files mentioned above--search +especially for tabular and math mode. (+ `print' below here). + +"Visible to (LaTeX)": Some users don't understand this "visibility" for a while, +and indeed it may be somewhat non-trivial. These users may find help in +https://mirrors.ctan.org/macros/latex/contrib/ednotes/visible.txt . E.g., former users of +lineno.sty may just put all the .sty files into the folder (at their workplace) +where they had placed lineno.sty before. (/UL, /v4.1) + +To print the documented source: Take the style-file `lineno.sty`, and feed it to +a Un*x shell. (Or download the extracted source documentation `lineno.tex'.) +``` +csh> source ./lineno.sty +sh> . ./lineno.sty +``` +[ i.e., type `sh lineno.sty` (e.g.) as a UNIX command line. Problems with awk +may arise. I therefore switched to nawk in lineno.sty v4.00, but this may +trouble you as well. (UL) ] (Please ignore the error message at the beginning +about the iffalse.) + +## Files + +(cf. `SRCFILEs.txt`): + +- `README.txt`: This file. (v4.1: UL) +- `CHANGEs.txt`: Differences to previous versions. (v4.1: UL) +- `COPYING.txt`: The LPPL header. +- `SCRFILEs.txt`: Source file infos (UL 2011) +- `lineno.sty`: The package itself, ready to use. +- `edtable.sty`: Module for tabular environments. (UL, v4.1) +- `ednmath0.sty`: Module for \linelabel in math mode. (UL, v4.1) +- `fnlineno.sty`: Add-on for footnote line numbers (UL, v0.55) +- `lineno.tex`: The source for the documentation (generated) +- `lineno.pdf`: PDF deriving from the former. (v4.1: UL) +- `lnosuppl.pdf`: PDF listing of present non-PDF files +- `ulineno.tex`: The pathetic attempt of a users' manual. [Describes v3.1 currently.] (UL, v4.1) +- `ulineno.pdf`: PDF of former. +- `vplref.sty`: Conditionally include page number in line number references (UL, v4.2) +- `linenoamsmathdemo.tex`: Demo of making amsmath work with lineno (KW, v5.0) + +As of version v3.00, the extension packages for lineno have all been +incorporated into `lineno.sty` itself. Except for `itemrule.sty`, which was +removed. + +## History + +(Prior to my taking over maintenance of the package -- KW) + + ** [ UL: A few festive words on history and responsibility ** + ** are next preceding hard facts as to (see lower) ** + ** o `Files' and ** + ** o `Installation and usage'. ] ** + + 2004-09-13 Uwe L"uck [(UL)] is new maintainer for lineno.sty. + + lineno.sty served the purpose for which I wrote it years ago. Uwe + L"uck uses lineno.sty with his Ednotes package, which required quite a + few changes and fixes. His package depends on lineno, therefore + Uwe agreed to take over the maintenance of lineno.sty. + + lineno.sty v4.0 includes most of the well tested changes that Uwe + needs for Ednotes. These changes blend well into the concepts of the + package, so I am happy to let it go. + + From here on it is Uwe's, and he may proceed to mangle it as he likes. + Expect some radical changes. You may find him to be quite a bit + friendlier towards the poor souls who still use Windows :-). + Currently, you need some kind of Unix environment to extract the + source documentation from the sty file. + + If some version 3 users run into difficulties with Uwe's newer + versions, but need a minor bug-fix in version 3, please do not + hesitate to ask me for help. But all requests for new features or + major changes shall go to Uwe. + + Cheers + Stephan + + [ Thanks! And please let me know as well should + compatibility problems arise! The announced radical + changes are postponed again this time (v4.1). + --Ednotes is in + http://mirror.ctan.org/macros/latex/contrib/ednotes. + Uwe ] + + Please have a look at a similar work of Michal Jaegermann and James + Fortune: + http://mirror.ctan.org/obsolete/macros/latex/contrib/numline/ diff --git a/macros/latex/contrib/lineno/README.txt b/macros/latex/contrib/lineno/README.txt deleted file mode 100644 index b8fcb4a9f0..0000000000 --- a/macros/latex/contrib/lineno/README.txt +++ /dev/null @@ -1,204 +0,0 @@ -README - lineno.sty v4.41 - fnlineno.sty v0.55 - - 2011-02-16 - -The LaTeX package lineno.sty provides line numbers on paragraphs. -After TeX has broken a paragraph into lines there will be line numbers -attached to them, with the possibility to make references through the -LaTeX \ref, \pageref cross reference mechanism. - -% Copyright 1995--2003 Stephan I. B"ottcher ; -% Copyright 2002--2005 Uwe L"uck, http://www.contact-ednotes.sty.de.vu, -% for versions 4.x and code from former Ednotes -% Copyright 2011 Uwe L"uck as above, for fnlineno.sty/tex/pdf -% bundle--author-maintained. -% -% The files listed below can be redistributed and/or modified under -% the terms of the LaTeX Project Public License; either -% version 1.3a of the License, or any later version. -% The latest version of this license is in -% http://www.latex-project.org/lppl.txt -% We did our best to help you, but there is NO WARRANTY. - -** [ UL: A few festive words on history and responsibility ** -** are next preceding hard facts as to (see lower) ** -** o `Files' and ** -** o `Installation and usage'. ] ** - -2004-09-13 Uwe L"uck [(UL)] is new maintainer for lineno.sty. - -lineno.sty served the purpose for which I wrote it years ago. Uwe -L"uck uses lineno.sty with his Ednotes package, which required quite a -few changes and fixes. His package depends on lineno, therefore -Uwe agreed to take over the maintenance of lineno.sty. - -lineno.sty v4.0 includes most of the well tested changes that Uwe -needs for Ednotes. These changes blend well into the concepts of the -package, so I am happy to let it go. - -From here on it is Uwe's, and he may proceed to mangle it as he likes. -Expect some radical changes. You may find him to be quite a bit -friendlier towards the poor souls who still use Windows :-). -Currently, you need some kind of Unix environment to extract the -source documentation from the sty file. - -If some version 3 users run into difficulties with Uwe's newer -versions, but need a minor bug-fix in version 3, please do not -hesitate to ask me for help. But all requests for new features or -major changes shall go to Uwe. - -Cheers -Stephan - - -[ Thanks! And please let me know as well should - compatibility problems arise! The announced radical - changes are postponed again this time (v4.1). - --Ednotes is in - http://mirror.ctan.org/macros/latex/contrib/ednotes. - Uwe ] - - -Changes: see CHANGEs.txt; earlier: - - 2004-10-19 UL: package options for tabular and math - 2004-09-03 UL: merge Ednotes changes, taking over lineno.sty - - 2002 .. 2003 FMi, UL, SiB: bug fixes - 2001-08-04 SiB: linenomath wrapping for \[ \] - 2001-07-30 SiB: [hyperref] option obsolete. - 2001-01-17 SiB: LaTeX class option [twocolumn] support - 2001-01-04 SiB: LaTeX class option [fleqn] support - 2000-12-18 SiB: longtable compatibility - 2000-07-01 SiB: extra \newlabel items, [hyperref] option - 2000-03-10 SiB: indirect call of \output, to work with multicol. - 1999-08-28 SiB: fixed the footnote problem using \holdinginserts - 1999-06-11 SiB: included the extensions into lineno.sty - 1999-03-02 SIB: Added LPPL License - - -Files (cf. SRCFILEs.txt): - - README.txt This file. (v4.1: UL) - CHANGEs.txt Differences to previous versions. (v4.1: UL) - COPYING.txt The LPPL header. - SCRFILEs.txt Source file infos (UL 2011) - lineno.sty The package itself, ready to use. - edtable.sty Module for tabular environments. (UL, v4.1) - ednmath0.sty Module for \linelabel in math mode. (UL, v4.1) - fnlineno.sty Add-on for footnote line numbers (UL, v0.55) - lineno.tex The source for the documentation (generated) - lineno.pdf PDF deriving from the former. (v4.1: UL) - lnosuppl.pdf PDF listing of present non-PDF files - ulineno.tex The pathetic attempt of a users' manual. - [Describes v3.1 currently.] (UL, v4.1) - ulineno.pdf PDF of former. - vplref.sty Conditionally include page number in - line number references (UL, v4.2) - - As of version v3.00, the extension packages for lineno have all been - incorporated into lineno.sty itself. Except for itemrule.sty, - which was removed. - -Home: - - http://mirror.ctan.org/macros/latex/contrib/lineno/ - -TDS version: - - http://mirror.ctan.org/install/macros/latex/contrib/lineno.tds.zip - -Authors: - - Uwe L"uck - Stephan I. B"ottcher - -Compatibility with other packages: - - wrapfig.sty works since v2.05 - - multicol.sty works partly since 3.02. - Do NOT use \linelabel. Do NOT put a multicol in - internal vertical mode {table}, {figure}, etc. - - hyperref.sty \ref to a \linelabel works since v3.03. - - longtable.sty broke with lineno.sty loaded, but not enabled. - This is fixed in v3.04. - - amsmath.sty loadable, but not fully supported, with v4.41 - -Installation and usage (UL, v4.1): - - For being able to use ALL the new lineno.sty options, the - following files must be "visible" to (La)TeX ("visible" - explained below for beginners): - - lineno.sty, edtable.sty, ednmath0.sty, ltabptch.sty - - as above ("Home", note that clicking on "entire directory" - suffices); - - longtable.sty -- from the standard LaTeX Tools bundle. - - Usage always starts with loading lineno.sty by \usepackage. - The remaining .sty files are loaded automatically on the - lineno.sty options (and we recommend not to load them through - [the mandatory argument of] \usepackage). - - For details, see lineno.tex/pdf and the .sty files mentioned - above--search especially for tabular and math mode. - (+ `print' below here). - - "Visible to (LaTeX)": Some users don't understand this - "visibility" for a while, and indeed it may be somewhat - non-trivial. These users may find help in - - http://mirror.ctan.org/macros/latex/ednotes/visible.txt . - - E.g., former users of lineno.sty may just put all the .sty - files into the folder (at their workplace) where they had - placed lineno.sty before. (/UL, /v4.1) - -To print the documented source: - - Take the style-file `lineno.sty', and feed it to a Un*x shell. - (Or download the extracted source documentation `lineno.tex'.) - - csh> source ./lineno.sty - sh> . ./lineno.sty - - [ I.e., type `sh lineno.sty' (e.g.) as a UNIX command line. - Problems with awk may arise. I therefore switched to nawk - in lineno.sty v4.00, but this may trouble you as well. (UL) ] - - (Please ignore the error message at the beginning about the iffalse.) - - -Please have a look at a similar work of Michal Jaegermann and James -Fortune: - http://mirror.ctan.org/obsolete/macros/latex/contrib/numline/ - - - - - -============================================================================== -<- End of official README.txt (UL) - -Changes Feb. 2011: numline obsolete, mirror.ctan.org, fnlineno, -amsmath compatibility, CHANGEs.txt, lineno.tds.zip -Changes for v4.1 (Oct. 2004): minor fixes (removed `supported/', e.g.); -bracketed text; lines with `(UL)'; redistribution with README only. -Formerly: - - lineno.sty v4.0 - - $Id: README,v 3.6.2.1 2004/09/13 20:15:47 stephan Exp $ - - CTAN:macros/latex/contrib/supported/lineno - CTAN:macros/latex/contrib/supported/numline/ - - diff --git a/macros/latex/contrib/lineno/SRCFILEs.txt b/macros/latex/contrib/lineno/SRCFILEs.txt deleted file mode 100644 index 5f5a1a5991..0000000000 --- a/macros/latex/contrib/lineno/SRCFILEs.txt +++ /dev/null @@ -1,15 +0,0 @@ - - *File List* - edtable.sty 2005/10/03 v1.3c arrays with lineno + ednotes (ul) -ednmath0.sty 2005/01/10 v0.2b math support for lineno/ednotes (ul) -fnlineno.sty 2011/01/07 v0.55 numbers to footnote lines (UL) - lineno.sty 2005/11/02 line numbers on paragraphs v4.41 - vplref.sty 2005/04/25 v0.2a page-line cross-refs -fnlineno.tex 2011/02/14 documenting fnlineno.sty (UL) -lnosuppl.tex 2011/02/16 documenting supplementary files - ulineno.tex 2001/08/03 lineno.sty users manual - *********** - - List made at 2011/02/16, 12:41 - from script file srcfiles.tex - diff --git a/macros/latex/contrib/lineno/doc/CHANGEs.txt b/macros/latex/contrib/lineno/doc/CHANGEs.txt new file mode 100644 index 0000000000..db95e5304e --- /dev/null +++ b/macros/latex/contrib/lineno/doc/CHANGEs.txt @@ -0,0 +1,189 @@ +CHANGES for lineno pkg v5.0 2022/07/30: + +1. Merge in `linenoamsmath' patches. + + +CHANGES for lineno pkg 2011/02/16: + +1. new fnlineno.sty for numbering footnote lines + \linelabel, +described in fnlineno.pdf + +2. new overview SRCFILEs.txt + +(From README.txt -- KW) numline obsolete, mirror.ctan.org, fnlineno, +amsmath compatibility, CHANGEs.txt, lineno.tds.zip + + +CHANGES for lineno.sty v4.41 2005/11/02: + +1. Loadable after amsmath. + +2. Removed some nonsense from documentation. + + +CHANGES for lineno.sty v4.4 2005/10/27: +[failed to be uploaded to CTAN, but distributed by mail]: + +1. Proper effective line depth at end of paragraphs. + The spacing bug was quite obvious in two-column mode + when a paragraph end was at a column bottom. + +2. Another bug concerning two-column mode that had been + introduced in v4.22 has been removed again. + +3. Support for \addvspace introduced more and more bugs + in versions of v4.32 and v4.33. The reasons seem to + be clear now, and v4.4 should be stable. + + +CHANGES for lineno.sty v4.32 2005/10/17: + +1. Support for \addvspace + (a math display or a list meets a heading -- or a sub-heading + follows a heading -- or the like) + +2. Clearly explained former option `displaymath' and its change + to a default. + + +CHANGES for lineno.sty v4.31 2005/10/01: + +1. \modulolinenumbers* and a package option `modulo*' for + printing first line number after interrupting editor's + text, regardless of the modulo. + +2. Improved explanation of \firstlinenumber and package + options. + + +CHANGES for lineno.sty v4.3 2005/05/16: + +1. Option `displaymath' (proper numbering at paragraphs + containing math displays) becomes default. + +2. Compatibility with hyperref now indeed (at least much more). + +3. Tidied up documentation: terrible confusion of \newcounter + vs. \stepcounter; sections on the same matter written at + different times; ... + +4. Additional internal improvements that perhaps hardly are + observable (no more spurious linenumbers in math displays + from vertical mode; some compatibity with packages that use + \holdinginserts; \linelabel in headings etc.). + + +CHANGES for lineno.sty v4.22 2005/05/09: + +1. Restored "global" version of numbering lines of a \parbox or + minipage or ... (I had missed and disabled this in taking + over lineno.sty), explained in documentation (lineno.pdf/dvi + subsec. 7.2). + +2. Enabled \flushbottom in two-column pagewise or switching + mode. + +3. Re-implemented modulo mode -- disabling certain users' tricks + see lineno.pdf sec. 5.5, also for a still supported + substituting trick. + +4. Tidied up setting the next line number globally vs. locally + (TeXbook p. 301). + +5. Tidied up discussions (in documentation) of possible changes + in implementation. + + +CHANGES for lineno.sty v4.21 2005/04/28: + +Removed serious flaws with math display, + something ... + + +CHANGES for lineno.sty v4.2 2005/04/26: + +1. Re-enabled package option `displaymath' (needed rearrangement + after sec. 5). + +2. New package option `addpageno' for adding page numbers to + line number references -- see sec. 6.1 of lineno.pdf. + +3. Improved support for \includeonly (and improved sec. 5.3, + p. 27). + +4. Improved compatibility with other packages that change \output + (tameflts.sty, e.g., for saving footnotes against \marginpar + and floats), added advice on this matter -- sec. 2.3, + pp. 7, 14f. + + +CHANGES for lineno.sty v4.11 2005/03/08: + +1. The `edtable' option now supports math environments like +`array'. This requires updating edtable.sty to v1.3. (The claim +in previous versions of edtable on this support simply was +wrong, sorry.) For how to make use of this support, we urge you +to read the usage instructions in edtable.sty (v1.3). These have +been extended very much, structured more clearly, and supplied +with examples. + +2. \linelabel now complains when appearing outside line +numbering mode. This counters Stephan Boettcher's original +intention, but I generalize from my own experience that it is +helpful to be told when you have forgotten to switch into line +numbering mode and (e.g.) wonder why all the line number +references are 1 ... ednotes.sty users profit as well (at least +I expect and hope that anybody profits, which, to be sure, does +not mean that I hope that anybody forgets to switch ...). + +3. The subsection on `edtable' in lineno.sty/tex/pdf was not +quite correct or complete -- corrected, improved. + +4. The final list of user commands in lineno.sty/tex/pdf has not +been complete. This has not changed, but it is briefly explained +what is missing and where it can be found. + + +CHANGE 2005/01/20: + +We have devised macros for indexing with line numbers, +yet we don't take the time to release them officially. +If you are interested, please ask via + + http://contact-ednotes.sty.de.vu + + +CHANGES for lineno.sty v4.1 2004/10/19: + +Extension packages from the Ednotes bundle for enabling +\linelabel in math mode and tabular environments are now +handled through new package options `mathrefs', `edtable', +`longtable', and `nolongtablepatch'. Two of these extension +packages moved from the ednotes folder to the lineno folder. +lineno.tex/pdf has been updated accordingly. +(From README.txt -- KW) minor fixes (removed `supported/', e.g.); +bracketed text; lines with `(UL)'; redistribution with README only. + +CHANGES for lineno.sty v4.00 2004/09/03: + +o incorporated earlier extension packages linenox0.sty, + linenox1.sty, lnopatch.sty (which belonged to the + Ednotes bundle before); + +o adopted LaTeX Project Public License v1.3. + + +EARLIER CHANGES (From README.txt -- KW) + +- 2004-10-19 UL: package options for tabular and math +- 2004-09-03 UL: merge Ednotes changes, taking over lineno.sty +- 2002 .. 2003 FMi, UL, SiB: bug fixes +- 2001-08-04 SiB: linenomath wrapping for \[ \] +- 2001-07-30 SiB: [hyperref] option obsolete. +- 2001-01-17 SiB: LaTeX class option [twocolumn] support +- 2001-01-04 SiB: LaTeX class option [fleqn] support +- 2000-12-18 SiB: longtable compatibility +- 2000-07-01 SiB: extra \newlabel items, [hyperref] option +- 2000-03-10 SiB: indirect call of \output, to work with multicol. +- 1999-08-28 SiB: fixed the footnote problem using \holdinginserts +- 1999-06-11 SiB: included the extensions into lineno.sty +- 1999-03-02 SIB: Added LPPL License diff --git a/macros/latex/contrib/lineno/doc/COPYING.txt b/macros/latex/contrib/lineno/doc/COPYING.txt new file mode 100644 index 0000000000..e5742fdb85 --- /dev/null +++ b/macros/latex/contrib/lineno/doc/COPYING.txt @@ -0,0 +1,25 @@ +% lineno.sty +% +% The files in this directory are +% +% Copyright 1995--2003 Stephan I. Böttcher +% Copyright 2002--2005 Uwe Lück for versions 4.x and code from former Ednotes +% Copyright 2011 Uwe Lück for fnlineno.sty/tex/pdf +% Copyright 2021--2022 Karl Wette for versions 5.x +% +% The files can be redistributed and/or modified under +% the terms of the LaTeX Project Public License; either +% version 1.3a of the License, or any later version. +% The latest version of this license is in +% http://www.latex-project.org/lppl.txt +% We did our best to help you, but there is NO WARRANTY. +% +% ============================================================================ +<- (UL) End of official declaration. + +History: +Update for version 5.x 2022/12/05 kw +add. fnlineno 2011/02/16 ul +This file -> The files 2004/10/12 ul +$Id: COPYING,v 3.0.2.1 2004/09/13 20:15:47 stephan Exp $ +LPPL v1.3a 2004/10/26 diff --git a/macros/latex/contrib/lineno/doc/SRCFILEs.txt b/macros/latex/contrib/lineno/doc/SRCFILEs.txt new file mode 100644 index 0000000000..71ca2cc217 --- /dev/null +++ b/macros/latex/contrib/lineno/doc/SRCFILEs.txt @@ -0,0 +1,10 @@ +ednmath0.sty 2005/01/10 v0.2b math support for lineno/ednotes (ul) +edtable.sty 2005/10/03 v1.3c arrays with lineno + ednotes (ul) +fnlineno.sty 2011/01/07 v0.55 numbers to footnote lines (UL) +lineno.sty 2022/07/30 line numbers on paragraphs v5.0 +vplref.sty 2005/04/25 v0.2a page-line cross-refs +fnlineno.tex 2011/02/14 documenting fnlineno.sty (UL) +lineno.tex 2022/07/30 line numbers on paragraphs v5.0 +lnosuppl.tex 2011/02/16 documenting supplementary files +ulineno.tex 2001/08/03 lineno.sty users manual +linenoamsmathdemo.tex 2021/09/30 Make amsmath work with lineno diff --git a/macros/latex/contrib/lineno/doc/fnlineno.pdf b/macros/latex/contrib/lineno/doc/fnlineno.pdf new file mode 100644 index 0000000000..d1fa5af387 Binary files /dev/null and b/macros/latex/contrib/lineno/doc/fnlineno.pdf differ diff --git a/macros/latex/contrib/lineno/doc/lineno.pdf b/macros/latex/contrib/lineno/doc/lineno.pdf new file mode 100644 index 0000000000..e7e96f8f41 Binary files /dev/null and b/macros/latex/contrib/lineno/doc/lineno.pdf differ diff --git a/macros/latex/contrib/lineno/doc/linenoamsmathdemo.pdf b/macros/latex/contrib/lineno/doc/linenoamsmathdemo.pdf new file mode 100644 index 0000000000..a60815f470 Binary files /dev/null and b/macros/latex/contrib/lineno/doc/linenoamsmathdemo.pdf differ diff --git a/macros/latex/contrib/lineno/doc/lnosuppl.pdf b/macros/latex/contrib/lineno/doc/lnosuppl.pdf new file mode 100644 index 0000000000..41c01581bf Binary files /dev/null and b/macros/latex/contrib/lineno/doc/lnosuppl.pdf differ diff --git a/macros/latex/contrib/lineno/doc/ulineno.pdf b/macros/latex/contrib/lineno/doc/ulineno.pdf new file mode 100644 index 0000000000..709008c75b Binary files /dev/null and b/macros/latex/contrib/lineno/doc/ulineno.pdf differ diff --git a/macros/latex/contrib/lineno/ednmath0.sty b/macros/latex/contrib/lineno/ednmath0.sty deleted file mode 100644 index 363c6c6aa5..0000000000 --- a/macros/latex/contrib/lineno/ednmath0.sty +++ /dev/null @@ -1,202 +0,0 @@ -%% 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 -%% 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! -%% -%% Please report bugs, problems, and suggestions via -%% -%% http://www.contact-ednotes.sty@web.de -% -%% * MAIN FEATURE * -% -% lineno.sty's \linelabel and ednotes.sty's commands are enabled -% to work in math mode if it's "entered in outer mode" -% (including `displaymath' and `equation' environments). -% (lineno.sty is the package by Stephan Boettcher.) -% They will even work in tabular environments that are adjusted -% to notes by package `edtable.sty'. -% -% CAVEATS: -% -- Does not work yet in environments like LaTeX's -% `eqnarray'. (This could probably repaired along the lines -% of Edtable.sty--we're short of time and will try later.) -% -- Useful error messages when (i) math mode is entered from -% inner mode or when (ii) a math display gets not line number -% are missing at present. -% -%% * USAGE: * -% -% * Most simple: * -% --If you are working with ednotes and want to use its -% commands in math mode, load ednotes.sty--version 0.8 -% onwards--with its package option `mathnotes'. -% --If you don't work with ednotes, only with lineno, you -% get the main feature of making \linelabel work in math mode -% by loading lineno.sty--version 4.1 onwards--with its -% package option `mathrefs'. -% -% * Switch off and on: * -% To reduce danger resulting from missing error messages -% ("caveat" above), you may switch these new math facilities -% off by \NoNotesToMath where you don't expect to need them. -% You may switch them on again by \NotesToMath where you want -% to use them, being aware of the danger. Both commands work -% locally, so you can replace one of them by enclosing it in -% a group. E.g., even, after \NoNotesToMath you can use an -% environment as follows: -% \begin{NotesToMath} -% -% \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.: -% \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.: -% $ 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. -% - -\NeedsTeXFormat{LaTeX2e} -\ProvidesPackage{ednmath0}[\filedate\space\fileversion\space - math support for lineno/ednotes (ul)] -% -%% User commands: -\def\NotesToMath{\let\@LN@mathhook\@LN@labelinmath - \@bsphack \@esphack -% For \begin{NotesToMath} -} -\def\NoNotesToMath{\@bsphack - \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.% - }% -}{% - \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. -}{% - \def\@EN@themathlemmatag{% - \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: - \toks@\expandafter{\NotesToMath} - \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 - \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 -% \renewcommand*{\notefmt}[1]{$#1$} -% -\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. - - diff --git a/macros/latex/contrib/lineno/edtable.sty b/macros/latex/contrib/lineno/edtable.sty deleted file mode 100644 index 206347539e..0000000000 --- a/macros/latex/contrib/lineno/edtable.sty +++ /dev/null @@ -1,571 +0,0 @@ -%% `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[]{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 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: 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}{}\end{edtable} -% -- where and are usual arguments and entries -% for . So an example is: -% \begin{edtable}{tabular}{cc} -% left upper & right upper \\ left lower & right lower -% \end{edtable} -% This produces just what does in an extra line, -% only adding line numbers in the margin and processing `ednotes' -% commands in the entries appropriately. -% (b) Let be an "array environment" like -- standard -% LaTeX's `array'! "Like" here means (i) ... analogously to -% 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}[<$$$>]{} -% \end{edtable} -% -- where and are usual arguments and entries -% for . <$$$> can be one of `$' or `$$'. Indeed, the -% 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 does in an extra line -% etc. as with . 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\L3}{NOTE} -% L2 may contain &'s and \\'s, but L1, L3 must not! Analogously -% for \Bnote, etc., \Anotelabel...\donote..., etc. -- Well this -% holds for , hardly for ... %% 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 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 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: * -% -\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: - -%% 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: -\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.) - % - \RequirePackage{longtable}% -% \IfFileExists{longtable.sty}{\RequirePackage{longtable}}% -% {\RequirePackage{longtabl}}% -% 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}{% - ltabptch.sty (for improving spacing around\MessageBreak - longtable) missing! Be sure to use it always\MessageBreak - or never!% - }{% - 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 - {\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 - % \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: - \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 - \@ifstar - {\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. - \LT@t@bularcr}% - \LT@t@bularcr - % {\let\cr\@ET@sw@cr \let\crcr\cr - % \LT@t@bularcr}% This accompanied \def\cr... above. - } - % 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@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 -% 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 - \fi - {\let\halign\@ET@@halign \halign}% - {\@ifnextchar\bgroup\@ET@replace@arg\@ET@sphalign@to}} -%% 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}{% - \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{\@ET@sphalign@to\bgroup}% - \else - \def\@EN@tempa{\@ET@sphalign@to{#1}}% -% 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 -} -% 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}% - \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 -\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 - \def\@EN@note{\@ET@hideamps\@ET@EN@rnote}% - \let\@ET@EN@rnotelb\@EN@notelabel - \def\@EN@notelabel{\@ET@hideamps\@ET@EN@rnotelb}% -} -%% 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. -% (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 ... - \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. - \if@filesw - \immediate\write\@auxout{% - \gdef\expandafter\noexpand - \csname\@ET@arraywidth@csn\endcsname - {\the\wd\@tempboxa}}% -%% TODO: warning if changed!? - \fi -% 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!? -\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 -\def\@ET@arraywidth@csn{ET@a@\romannumeral\c@ET@array} -% -%% 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 . -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/macros/latex/contrib/lineno/fnlineno.pdf b/macros/latex/contrib/lineno/fnlineno.pdf deleted file mode 100644 index f2b7f47632..0000000000 Binary files a/macros/latex/contrib/lineno/fnlineno.pdf and /dev/null differ diff --git a/macros/latex/contrib/lineno/fnlineno.sty b/macros/latex/contrib/lineno/fnlineno.sty deleted file mode 100644 index 5c53da606c..0000000000 --- a/macros/latex/contrib/lineno/fnlineno.sty +++ /dev/null @@ -1,1149 +0,0 @@ -\NeedsTeXFormat{LaTeX2e}[1994/12/01] -\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 -- -%% -%% 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. -%% -%% Please report bugs, problems, and suggestions via -%% -%% 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), -%% organized %% 2010/12/18 TODO!? -%% 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 -%% base).\footnote{\url{http://www.tex.ac.uk/cgi-bin/texfaq2html?label=inst-wlcf}} -%% -%% As usually, 'fnlineno.sty' is loaded by -%% % \begin{verbatim} -%% `\usepackage{fnlineno}' -%% % \end{verbatim} -%% below the `\documentclass' line and before `\begin{document}'. -%% -%% === Limitations === -%% v0.55 %%% v0.5 %% 2011/02/09 -%% should really work -%% the way users expect, %% 2011/02/09 -%% but please consider: -%% % 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! -%% % (v0.5!?) -%% % -%% % \item The package is not expected to work with 'manyfoot' -%% % (neither 'ednotes' ... future work!). -%% -%% \item Nothing is known about compatibility with -%% packages (other than 'manyfoot' and 'bigfoot') -%% providing footnote features beyond standard \LaTeX. -%% -%% \item `\lipsum[]' 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 -%% % (splits) in wrong order.\footnote{TODO: -%% % (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. -%% %% 2010/12/20f.: -%% However, it wrongly assumed that `\pagebreak[4]' -%% 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 -%% 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. -%% -%% \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{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 -%% different \strong{list} |\FNLN@list| -%% 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 -%% (TODO 2010/12/12) ... -\newif\if@FNLN@check@ -\DeclareOption{check-latex}{\@FNLN@check@true} -\ProcessOptions -%% -%% === 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 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 -%% processeing footnotes. -\if@FNLN@check@ - \long\def\FNLN@ltx@fntext#1{\insert\footins{% - \reset@font\footnotesize - \interlinepenalty\interfootnotelinepenalty - \splittopskip\footnotesep - \splitmaxdepth \dp\strutbox \floatingpenalty \@MM - \hsize\columnwidth \@parboxrestore - \protected@edef\@currentlabel{% - \csname p@footnote\endcsname\@thefnmark - }% - \color@begingroup - \@makefntext{% - \rule\z@\footnotesep\ignorespaces#1\@finalstrut\strutbox}% - \color@endgroup}}% -\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} -%% the internal |\@footnotetext|. -%% In line numbering mode, `\@footnotetext' will act as -%% |\FNLN@text|, -%% % \begin{itemize} -%% % \item[(i)] -%% (\textit{i})~% -%% placing a ``signal" \strong{output penalty} -%% below the current line via `\vadjust' and -%% % \item[(ii)] -%% (\textit{ii})~% -%% appending the footnote text to the -%% \strong{list} |\FNLN@list| of \strong{footnote texts}. -%% % \end{itemize} -%% -%% |\FNLN@@text| stores the `\@footnotetext' found, -%% we might check if it is `\FNLN@ltx@fntext' ... %% TODO -\let\FNLN@@text\@footnotetext -\def\@footnotetext{% - \ifLineNumbers \expandafter \FNLN@text - \else \expandafter \FNLN@@text - \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 -%% will be typeset only when \emph{other} footnote marks -%% may have been formed for typesetting the main text -%% paragraph before. -%% %%% (TODO clearer wording) -%% In the \strong{footnote list} -%% macro |\FNLN@list|, the (\dqtd{`&\protect'ed}) -%% \emph{current} expansion of `\@thefnmark' -%% is stored as an item preceding the footnote text -%% . One footnote entry in `\FNLN@list' -%% thus has the form \lq`\@lt\@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 -%% `\protected@edef': - \let\@@protect\protect - \let\protect\@unexpandable@protect - \afterassignment\restore@protect - \long \edef \@tempa ##1{% - \noexpand\g@addto@macro \noexpand\FNLN@list {% - \@thefnmark \noexpand\@lt ##1\noexpand \@lt}}% -%% ... issuing -%% \lq`\g@addto@macro\FNLN@list{\elt\@lt}'\rq\ ... - \@tempa %% reads arg -} -%% Here we initialize |\FNLN@list|: -\let\FNLN@list\@empty -%% -%% === 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 -%% 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 - \MakeLineNo - \fi - } -%% The ``signal penalties" used here are - \mathchardef\FNLN@M@llbl@codepen=11111 - \mathchardef\FNLN@M@ppva@codepen=11112 -\fi -%% 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. -\let\TheLineNoLaTeXOutput\LineNoLaTeXOutput -%% -%% ==== Tools for Temporary Parameter Changes ==== -%% |\GStoreReg{}|\quad -%% (or\quad |\GStoreReg|\\[\smallskipamount] -%% when is a single token---\lq`\count0'\rq\ -%% being a counterexample ...)\quad -%% stores the current content of -%% (\emph{globally}) as an internal macro so that it can be -%% restored later by\\[\smallskipamount] -%% |\RestoreReg{}|\quad -%% \mbox{(or\quad }|\RestoreReg|)\\[\smallskipamount] -%% or \emph{globally} by\\[\smallskipamount] -%% |\GRestoreReg{}|\quad (|\GRestoreReg|) -%% \\[\smallskipamount] -%% (The OTR runs in a local group!---Recall that assignments -%% to ``special dimens"---\TeX book p.\,271---are -%% automatically global.) -%% is something that can be prefixed by `\the' -%% to read its content and to which you can assign a value -%% by \lq\rq. -%% (TODO: could also be some `\catcode'!) -%% %% and TODO allow changing name space! -\newcommand*{\GStoreReg}[1]{% - \expandafter \xdef \csname GS\string#1\endcsname {\the #1}} -\newcommand*{\RestoreReg}[1]{#1\csname GS\string#1\endcsname \relax} -\newcommand*{\GRestoreReg}{\global\RestoreReg} -%% |\GStoreSetReg{}{}| assigns %%% the new value -%% to (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! -%% + loop on list of s ...) %% 2010/12/19 -%% -%% ==== The basic hook ==== -%% \label{sec:sw} -%% 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. -%% %% 2011/01/07: -%% 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 -%% in a box |\FNLN@holdft|: -\newsavebox\FNLN@holdft %% v0.41 -%% Using |\LineNoLaTeXOutput| for hooking into the OTR: -\renewcommand*{\LineNoLaTeXOutput}{% - \ifnum\outputpenalty=-\FNLN@M@swap@codepen - \SwapFootnoteMain - \else - \ifnum\outputpenalty=-\FNLN@M@insert@codepen - \InsertFootnote - \else - \if@FNLN@sw@ %% v0.41 -% \showthe\outputpenalty %% 2010/12/20 - \global\setbox \FNLN@holdft \vbox{% - \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, -%% at present the `\baselineskip' is lost, -%% 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 -%% with \qtd{D} in `edfndemo.pdf' as of 2010/12/21. - \penalty\outputpenalty}% - %% TODO reset page book-keeping!? %% v0.41 - \else - \TheLineNoLaTeXOutput %% "the real \LineNoLaTeXOuput" - \fi - \fi - \fi -} -%% \strong{An idea:}\quad Instead of so many `\ifnum', use -%% \[`\csname\the\outputpenalty\endcsname'\] -%% ... 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 -%% $`\outputpenalty'=-`\FNLN@M@swap@codepen'$. -%% 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. - \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 -%% this: - \global\@FNLN@sw@true %% v0.41 -%% ... cf. Section~\ref{sec:sw}. -%% -%% 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' -%% 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 ... -%% I think it is important to restore them later ...) - \GStoreSetReg\pagegoal \vsize - \GStoreSetReg\pagetotal\z@ - \GStoreSetReg\pagestretch\z@ - \GStoreSetReg\pagefilstretch\z@ - \GStoreSetReg\pagefillstretch\z@ - \GStoreSetReg\pagefilllstretch\z@ - \GStoreSetReg\pageshrink\z@ - \GStoreSetReg\pagedepth\z@ -%% We must choose certain settings from `\@footnotetext' -%% such as font: - \reset@font\footnotesize - \interlinepenalty\interfootnotelinepenalty -%% \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 -%% 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 -%% 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, -%% so the definition must be `\long': -\long\def \FNLN@typeset #1\@lt #2\@lt #3\@@{% - \gdef\FNLN@list{#3}% - \def\@thefnmark{#1}% -%% This was our own, and next \LaTeX\ continues: - \protected@edef\@currentlabel{% - \csname p@footnote\endcsname\@thefnmark - }% - \color@begingroup -%% We insert starting the 'lineno' settings ... - \linenumbers - \setfootnotelinenumbers %% 2010/12/25 -%% ... \LaTeX\ again (v0.41 exports dealing with -%% closing `\par' to `finstrut.sty'): - \@makefntext{% - \rule\z@\footnotesep\ignorespaces -%% We replace `#1' by `#2\par' (`\linenumberpar'), -%% so we really need `finstrut.sty': - #2\par - \@finalstrut\strutbox}% - \color@endgroup -%% Now we trigger the ``swap back slot" of the OTR: - \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 -%% \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 -%% `\page'... book-keeping parameters are restored: -\newcommand*{\InsertFootnote}{% - \GRestoreReg\topskip \GRestoreReg\vsize -%% (... \emph{global} restoring of `\vsize' proved vital with -%% 'edfndemo' 2010/12/17 ...) - \RestoreReg \pagegoal \RestoreReg\pagetotal - \RestoreReg \pagestretch - \RestoreReg \pagefilstretch - \RestoreReg \pagefillstretch - \RestoreReg \pagefilllstretch - \RestoreReg \pageshrink \RestoreReg\pagedepth - \unvbox\FNLN@holdcol - \insert\footins{% - \splittopskip\footnotesep - \splitmaxdepth \dp\strutbox \floatingpenalty \@MM -%% Support of `\pagebreak' with v0.41: - \unvbox\FNLN@holdft %% v0.41 - \unvbox\@cclv}% - \global\@FNLN@sw@false %% v0.41 -%% With v0.5, global settings for ``pagewise" numbering -%% must be restored: %% 2010/12/26 - \unsetfootnotelinenumbers -} -%% -%% === ``Continuous'' Numbering === -%% \label{sec:cont} -%% ==== Goal ==== -%% 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 -%% 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 -%% 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 -%% 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$, -%% (\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 -%% 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} -%% 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 -%% 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. -%% -%% 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. -%% -%% ==== Summary of Changes ==== -%% 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, -%% 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 -%% 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. -%% \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 -%% 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. -%% %% 2010/12/28: -%% 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 -%% to numbered text! -%% (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 -%% 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 -%% as in main text. -%% \end{description} -%% -%% ==== Info Building ==== -%% % These macros -%% |\@LN|, |\@FLN|, and |\@FNLN| -%% 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 -%% 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 -%% as such a page is found, replacing the `\relax' by the -%% 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). -%% -%% 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 -%% 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 ... -%% 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!): -\global \let \FNLN@last@numbered \LastNumberedPage -\@onlypreamble \FNLN@last@numbered -%% |\@FNLN{}{}{}| -%% \\[\smallskipamount] -%% generalizes 'lineno.sty''s `\@LN{}{}' -%% to re-implement it. -%% There is an additional parameter argument -%% for choosing name spaces -%% and a parameter for choosing the macro -%% storing the ``last numbered page." -%% (An argument without braces expects a macro name.) -\newcommand* \@FNLN [4]{{% - \expandafter\@@LN - \csname #1#4C\@LN@column \expandafter\endcsname - \csname #1O#4\endcsname - {#3}{#4}{#1}{#2}}} -\@onlypreamble\@FNLN -%% 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 -%% and another for passing from `\@FLN'. -%% So the new syntax is\\[\smallskipamount] -%% |\@@LN{}{}{}|: -\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}% - \pageLN{#4}{\@LN@column}{#2}\nextLN\relax}% - \else - \def\lastLN##1{\noexpand\lastLN{#3}}% - \xdef#1{#1}% - \fi - \xdef#6{#4C\@LN@column}} -\@onlypreamble\@@LN -%% 'lineno.sty''s |\@@@LN| does not need any adjustment. -%% -%% 'lineno.sty''s |\@LN{}{}| is reimplemented as -\def \@LN {\@FNLN{LN@P}\LastNumberedPage} -%% ---so `\@LN' really does the same as before, including name spaces. -%% -%% |\@FLN{}{}| 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 -% \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 -%% 'lineno' does with `\@LN': -\AtEndDocument{\let\@FLN\@gobbletwo} -%% -%% ==== 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 for , -%% we `\global\let', apply the operations, -%% and finally `\global\let'. -%% However, we are not only interested in how -%% is changed this way, rather also is used as input -%% for some operations, and we can choose which -%% should be used as input. To switch from working on/with -%% to using with an option -%% to use later again, a tool -%% |\GStoreUse| 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 -%% #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. -%% -%% %% 2010/12/27: -%% 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: -\renewcommand*\setpagewiselinenumbers{% - \global\let \theLineNumber \thePagewiseLineNumber - \global\let \c@linenumber \c@pagewiselinenumber - \global\let \makeLineNumber \makePagewiseLineNumber -} -%% I just force this, hehe ... -\setpagewiselinenumbers -%% 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' -%% as from ``main" mode: -\let \FNLN@@cache \NumberedPageCache -%% |\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: -%% |\FNLN@foot@cache| and |\FNLN@main@cache| -%% switch |\NumberedPageCache|: -\def \FNLN@foot@cache {% - \GStoreUse \NumberedPageCache \FNLN@@cache \FNLN@cache} -\def \FNLN@main@cache {% - \GStoreUse \NumberedPageCache \FNLN@cache \FNLN@@cache} -%% |\FNLN@labels| will be the counterpart to -%% 'lineno.sty''s `\@LN@labellist': -\global\let \FNLN@labels \@empty -%% |\FNLN@vadjusts| will be the counterpart to -%% 'lineno''s `\@LN@vadjustlist': -\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 -%% |\setgetfootnotelinenumbers|; for this purpose -%% nothing must be stored explicitly: -\newcommand* \setgetfootnotelinenumbers {% -%% Change of `\theLineNumber' is omitted as we are \emph{reading}, -%% 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. - \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}, -%% including storing results from typesetting main text: -\newcommand* \setfootnotelinenumbers {% - \globaldefs\@ne -%% The previous line also renders `\setgetfootnotelinenumbers' global: - \setgetfootnotelinenumbers -%% |\theLineNumber| is used for `\linelabel' entries. -%% `\thePagewiseLineNumber' is replaced by -%% |\theFootnoteLineNumber|: - \let\theLineNumber\theFootnoteLineNumber -%% Logging to `.aux': - \def \FNLN@log {\string\@FLN}% -%% %% 2010/12/28: -%% Starting range search: |\NumberedPageCache| - \FNLN@foot@cache -%% Reusing 'lineno''s task list operations: - \GStoreUse \@LN@labellist \FNLN@@labels \FNLN@labels - \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 -%% 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" -%% page with main text lines---and more ...: -\newcommand* \unsetfootnotelinenumbers {% - \gdef \FNLN@log {\string\@LN}% - \FNLN@main@cache -%% Task lists: %% 2010/12/28 - \GStoreUse \@LN@labellist \FNLN@labels \FNLN@@labels - \GStoreUse \@LN@vadjustlist \FNLN@vadjusts \FNLN@@vadjusts - \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| -%% in 'lineno.sty'). -\@ifdefinable\makeFootnoteLineNumber - {\let \makeFootnoteLineNumber \makePagewiseLineNumber} -%% -%% ==== Logging ==== -%% |\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 -%% \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 -%% by analogy to its counterpart `\NumberedPageCache' -%% (a minute name space change): -\def \FNLN@cache {\FLN@Pfirst} -%% |\testFirstNumberedPage{}| from 'lineno.sty' -%% is modified by replacing `\LN@Pfirst' only: -\renewcommand* \testFirstNumberedPage [1]{% - \ifnum#1>\c@linenumber - \def\nextLN##1{% - \testNextNumberedPage\FNLN@first@numbered}% - \else - \let\nextLN\@gobble - \def\pageLN{\gotNumberedPage{#1}}% - \fi} -%% |\testNumberedPage| and |\testNextNumberedPage| from 'lineno' -%% don't need any modification. |\testLastNumberedPage| -%% is modified in 'edfnotes.sty'. %% 2011/01/07 -%% -%% |\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 - \ifcolumnwiselinenumbers - \subtractlinenumberoffset{#1}% - \else - \subtractlinenumberoffset{#4}% - \fi -% \show\FNLN@finish - \FNLN@finish{#2}{#3}% -} -%% |\FNLN@finish{}{}| 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 -%% for the same page (column; if defined). -\newcommand* \FNLN@add [2]{% - \expandafter \let\expandafter \@tempa\csname LN@P#1C#2\endcsname - \ifx\@tempa\relax - \else - \advance\c@linenumber\@ne - \ifcolumnwiselinenumbers - \let\firstLN\subtractlinenumberoffset -%% ... rather assuming `\realpagewiselinenumbers'. - \let\pageLN\@gobblethree - \else - \let\firstLN\@gobble - \def\pageLN##1##2##3{\subtractlinenumberoffset{##3}}% - \fi - \def\lastLN##1{\subtractlinenumberoffset{-##1}}% - \let\nextLN\@gobble -%% ... TODO all needed? - \@tempa - \fi -} -%% -%% ==== Referencing ==== -%% 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{}' -%% are generalized and re-implemented -%% % by |\theWiseLineNumber| and |\getwiselinenumber| -%% by macros that then serve to implement -%% referring to footnote line numbers. -%% -%% |\theWiseLineNumber{}| leaves a `\protect'ed call -%% to a one-parameter macro in the `.aux' file: -\newcommand* \theWiseLineNumber [1]{\protect #1{\the\c@linenumber}} -%% |\getwiselinenumber{}{}| executes -%% before applying `\testNumberedPage' to ---within -%% a local group: -\newcommand* \getwiselinenumber [2]{{% -%% 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, -%% no extra care is needed. -%% \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 Otherwise, `\setgetfootnotelinenumbers' -%% and temporary switching of `\NumberedPageCache' -%% is needed. -%% \end{itemize} -%% \end{description} - \ifx#1\relax %% to main text - \if@FNLN@sw@ %% from footnote - \setgetpagewiselinenumbers - \FNLN@main@cache - \let \FNLN@restore@cache \FNLN@foot@cache - \fi - \else %% to footnote - \if@FNLN@sw@ \else %% from elsewhere - #1% - \FNLN@foot@cache - \let \FNLN@restore@cache \FNLN@main@cache - \fi - \fi - \c@linenumber #2\relax\testNumberedPage - \thelinenumber - \FNLN@restore@cache -}} -\let \FNLN@restore@cache \relax -%% |\getpagewiselinenumber| doesn't need any ---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 -%% 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 -%% 'lineno.sty' ...) -\AtBeginDocument{% - \def \getpagewiselinenumber {\getwiselinenumber\relax}% sic! - \let \@EN@getpagewiselno \getpagewiselinenumber} -%% For |\thePagewiseLineNumber|, is `\getpagewiselinenumber': -\renewcommand* \thePagewiseLineNumber {% - \theWiseLineNumber\getpagewiselinenumber} -%% |\getfootnotelinenumber{}| considers -%% the absolute number of a \emph{footnote} line. The -%% therefore is `\setgetfootnotelinenumbers': -\newcommand* \getfootnotelinenumber {% - \getwiselinenumber\setgetfootnotelinenumbers} -%% Finally, |\theFootnoteLineNumber| is how `\linelabel' -%% refers to a \emph{footnote} line. `\theWiseLineNumber' -%% is called with being `\getfootnotelinenumber': -\newcommand* \theFootnoteLineNumber {% - \theWiseLineNumber\getfootnotelinenumber} -%% -%% === Leaving the Package File === -\endinput -%% -%% == 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, -%% 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 -%% 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 -%% are Stephan's ... -%% -%% == VERSION HISTORY == -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, - different doc. sectioning; - \@footnotetext modified (user feature!); - \@doclearpage NOT modified!; \if@FNLN@placing@ - 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, - bad with those penalties - JUST STORED - -v0.4 2010/12/14 another new approach: - typeset footnote on MVL immediately -- - described strategy - 2010/12/15 ... continued, choice of hooking into \output - (...swap...) - 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 ; - ack. Christian; directed -> organized!? - SENT TO Christian/Stephan - -v0.41 2010/12/19 support of \pagebreak with \if@FNLN@sw@ etc.; - TODO on lists of s - 2010/12/20 debugging: \if...true; \setbox...ft; - \@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 - -v0.5 2010/12/21 restructuring doc., check@latex@ -> check@, - own account of lineno's pagewise mode - 2010/12/22 ... continued ... - 2010/12/23 ... continued ... - 2010/12/24 ... continued ... - 2010/12/25 moved this to pwlineno, replaced ... - more on \FNLN@typeset, + \setfootnotelinenumbers - 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, - "public" works - 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, - 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; - less "limitations"; \\[\smallskipamount] - TO CHRISTIAN 2010-12-29 -v0.54 2010/12/31 typo options; \FNLN@text without arg, - \getpagewiselinenumber with ednotes - 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; - 2011/01/06 edited version history - 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 diff --git a/macros/latex/contrib/lineno/fnlineno.tex b/macros/latex/contrib/lineno/fnlineno.tex deleted file mode 100644 index 15ff24a436..0000000000 --- a/macros/latex/contrib/lineno/fnlineno.tex +++ /dev/null @@ -1,90 +0,0 @@ -\ProvidesFile{fnlineno.tex}[2011/02/14 documenting fnlineno.sty (UL)] -\title{\textsf{fnlineno.sty}\\---\\Numbering Footnote Lines\thanks{This - document %%% manual %% 2010/12/28 - describes version - \textcolor{blue}{\UseVersionOf{fnlineno.sty}} - of \textsf{fnlineno.sty} as of \UseDateOf{fnlineno.sty}.}} -% \listfiles %% 2010/12/22 -{ \RequirePackage{makedoc}[2010/12/20] \ProcessLineMessage{} - \MakeJobDoc{19}{\SectionLevelThreeParseInput} %% 2010/12/16 -} -\documentclass{article}%% TODO paper dimensions!? -\input{makedoc.cfg} %% shared formatting settings -\newcommand*{\lt}{<} \newcommand*{\gt}{>} %% 2010/12/22 -\providecommand*{\strong}{\textbf} %% 2010/12/15 -\ReadPackageInfos{fnlineno} -\usepackage{color} -% \hypersetup{bookmarksopen} %% rm. 2010/12/21, cf. .cfg -%% 2010/12/21: %% 2010/12/26 not sure, splits code -% \makeatletter \@beginparpenalty\@highpenalty \makeatother -%% 2010/12/27: -\makeatletter \@beginparpenalty\@lowpenalty \makeatother -\sloppy -\begin{document} -\maketitle -\begin{abstract}\noindent -'fnlineno.sty' extends -% Stephan~I. B\"ottcher's -\CtanPkgRef{lineno}{lineno.sty}\urlpkgfoot{lineno} -(created by Stephan~I. B\"ottcher) -such that even -`\footnote' %% `\' 2010/12/09 -lines are numbered and can be referred to -using `\linelabel', `\ref', etc. -%% rm. 2011/02/09: -% Version v0.5 aims at working as a user expects -% (just cf.~``Limitations"), otherwise please complain! - -Making the package was motivated as support for -\emph{critical editions} -% of scientific work from an age when footnotes -% were a standard in publishing in print, -%% <- 2011/02/09 -> -of \emph{printed works with footnotes} -as opposed to scholarly critical editions of \emph{manuscripts.} -For this purpose, an extension 'edfnotes' of the \ctanpkgref{ednotes} -package for critical editions, building on 'fnlineno', is provided -by the \textit{ednotes} bundle.\urlfoot{CtanPkgRef}{ednotes} - -'lineno.sty' has also been used for the revision process -of \emph{submissions.} -With 'fnlineno.sty', reference to footnotes -in the submitted work may become possible. - -%% rm. 2011/02/09: -% Another standalone package 'finstrut' is described. -As to \emph{implementation:} %% 2011/02/14 -1.~Some included tools for -\emph{storing and restoring global settings} -may be ``exported" as standalone packages later. -2.~The method of typesetting footnotes on the main vertical list -may later lead to applying the line numbering method to -several \emph{parallel} texts (with footnotes) and to -`inner' material such as table cells. -%% <- 2011/02/14 -> -% \dots - -%% new 2011/02/09: - \smallskip\noindent -\strong{Keywords:}\quad line numbers; footnotes, pagewise, -critical editions, revision -\end{abstract} -\tableofcontents - -% \newpage %% rm. 2011/02/09 -\section{Usage and Features} -\subsection{Package File Header (Legalize)} -\input{fnlineno.doc} -\end{document} - -VERSION HISTORY - -2010/12/08 for v0.1 very first -2010/12/09 for v0.2 moved much to .sty -2010/12/15 for v0.4 \strong -2010/12/16 \SectionLevelThree... -2010/12/22ff. beginparpenalty varied -2010/12/28 for v0.5 abstract extended -2011/02/09 removing `finstrut'; mention `edfnotes' -2011/02/10 using \urlpkgfoot etc. -2011/02/14 abstract modified diff --git a/macros/latex/contrib/lineno/lineno.pdf b/macros/latex/contrib/lineno/lineno.pdf deleted file mode 100644 index 725b602f12..0000000000 Binary files a/macros/latex/contrib/lineno/lineno.pdf and /dev/null differ diff --git a/macros/latex/contrib/lineno/lineno.sty b/macros/latex/contrib/lineno/lineno.sty deleted file mode 100644 index 53a7b5242a..0000000000 --- a/macros/latex/contrib/lineno/lineno.sty +++ /dev/null @@ -1,3484 +0,0 @@ - \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 ; -%%% 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. -% -%%% $Id: lineno.sty,v 3.14.2.2 2004/09/13 19:30:39 stephan Exp $ %% was v4.00. -% \title{\texttt{\itshape -%% %% (UL 2004/10/09:) Italic TT is evil -%% %% ... or nice front page layout!? -%% -% lineno.sty \ \fileversion\ \filedate -% \unskip}\\\ \\ -% A \LaTeX\ package to attach -% \\ line numbers to paragraphs -% \unskip}\author{% -% Stephan I. B\"ottcher -% \\ Uwe L\"uck -% \unskip}\date{% -% boettcher@physik.uni-kiel.de -% \\ http://contact-ednotes.sty.de.vu -%% \\ stephan@nevis.columbia.edu -%% \\ Stephan.Boettcher@cern.ch -% \\} -% -% \documentclass[a4paper,12pt]{article}%D -% \usepackage{lineno}%D -%% %% (New v4.00) -% \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.) -% \def|#1{\ttfamily\string#1} -%% \def|#1{{\ttfamily\string#1}} -%% (/New v4.1) -% \newenvironment{code} -% {\par\runninglinenumbers -% \modulolinenumbers[1]% -% \linenumbersep.3em -% \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) -% {\catcode`\/\active -% \gdef\path{\begingroup\catcode`\/\active -% \let/\slash\dopath} -% \gdef\dopath#1{\slash\unpenalty#1\endgroup}} -%% %% (/New v4.1) -% -% \begin{document}%D -%% \DocInput{lineno}%D -% \pagewiselinenumbers -% \maketitle -% \pagestyle{headings} -% \tableofcontents -% \sloppy -% -%% %% New v4.00: `...section{%' + \unskip -% \section{% -% 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{% -% Introduction to versions $\textrm{v}\lessthan4$ -% \unskip} -% -% This package provides line numbers on paragraphs. -% After \TeX\ has broken a paragraph into lines there will -% be line numbers attached to them, with the possibility to -% make references through the \LaTeX\ ~\ref~, ~\pageref~ -% cross reference mechanism. This includes four issues: -% \begin{itemize} -% \item attach a line number on each line, -% \item create references to a line number, -% \item control line numbering mode, -% \item count the lines and print the numbers. -% \end{itemize} -% The first two points are implemented through patches to -% the output routine. The third by redefining ~\par~, ~\@par~ -% and ~\@@par~. The counting is easy, as long as you want -% the line numbers run through the text. If they shall -% start over at the top of each page, the aux-file as well -% as \TeX s memory have to carry a load for each counted line. -% -% I wrote this package for my wife Petra, who needs it for -% transcriptions of interviews. This allows her to -% precisely refer to passages in the text. It works well -% together with ~\marginpar~s, but not too well with displaymath. -% ~\footnote~s are a problem, especially when they -% are split, but we may get there. -% (New v4.00 UL) Version v4.00 overcomes the problem, I believe. -% (/UL /New v4.00) -% -% lineno.sty works -% surprisingly well with other packages, for -% example, ~wrapfig.sty~. So please try if it -% works with whatever you need, and if it does, -% please tell me, and if it does not, tell me as -% well, so I can try to fix it. -% -% \subsection{% -% Introduction to versions v4.00ff. (UL) -% \unskip} -% -% ~lineno.sty~ has been maintained by Stephan until version_v3.14. -% From version_v4.00 onwards, maintenance is shifting towards -% Uwe L\"uck (UL), who is the author of v4\dots code and of v4\dots -% changes in documentation. This came about as follows. -% -% Since late 2002, Christian Tapp and Uwe L\"uck have employed -% ~lineno.sty~ for their ~ednotes.sty~, a package supporting -% critical editions---cf. -% \[\mbox{\tt -% http://ednotes.sty.de.vu -% \unskip}\] -% ---while you find ~ednotes.sty~ and surrounding files in -% CTAN folder \path{macros/latex/contrib/ednotes}. -% -% Soon, some weaknesses of ~lineno.sty~ showed up, mainly since -% Christian's critical editions (using ~ednotes.sty~) needed lots -% of ~\linelabel~s and footnotes. (These weaknesses are due to -% weaknesses of \LaTeX's ~\marginpar~ mechanism that Stephan -% used for ~\linelabel~.) So we changed some ~lineno.sty~ -% definitions in some extra files, which moreover offered new -% features. We sent these files to Stephan, hoping he would take -% the changes into ~lineno.sty~. However, he was too short of time. -% -% Writing a TUGboat article on Ednotes in 2004, we hoped to -% reduce the number of files in the Ednotes bundle and so asked -% Stephan again. Now he generously offered maintenance to me, so -% I could execute the changes on my own. -% -% The improvements are as follows: -% \begin{itemize}\item -% [(i)] Footnotes placement approaches intentions better -% (footnotes formerly liked to pile up at late pages). -% \item -% [(ii)] The number of ~\linelabel~s in one paragraph is no longer -% limited to 18. -% \item -% [(iii)] ~\pagebreak~, ~\nopagebreak~, ~\vspace~, and the star -% and optional versions of ~\\~ work as one would expect -% (section_\ref{s:MVadj}). %% Added for v4.1 -% \item -% [(iv)] A command is offered which chooses the first line number -% to be printed in the margin -% (subsection_\ref{ss:Mod}). %% Added for v4.1 -% \item -% [(v)] (New v4.1) \LaTeX\ tabular environments (optionally) -% get line numbers as well, and you can refer to them in the -% usual automatic way. (It may be considered a shortcoming that, -% precisely, \emph{rows} are numbered, not lines.---See -% subsection_\ref{ss:Tab}.) -% \item -% [(vi)] We are moving towards referring to math items -% (subsection_\ref{ss:MathRef} and the hooks in -% subsection_\ref{ss:LL}). -% (/New v4.1) -% \end{itemize} -% (Thanks to Stephan for making this possible!) -% -%% 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 -% use and modify ~longtable.sty~.) -% -% There are some issues concerning use of counters on which I -% don't agree with Stephan and where I would like to change the -% code if ~lineno.sty~ is ``mine'' as Stephan offered. However, -% Stephan is afraid of compatibility problems from which, in -% particular, his wife could suffer in the near future. So he -% demanded that I change as little as possible for my first -% version. Instead of executing changes that I plan I just offer -% my opinions at the single occasions. I hope to get in touch -% this way with users who consider subtle features vital which I -% consider strange. -% -% On the other hand, the sections on improvements of the -% implementation have been blown up very much and may be tiring -% and litte understandable for mere \emph{users}. These users -% may profit from the present presentation just by jumping to -% sections_\ref{s:Opts} and_\ref{s:UserCmds}. There is a user's -% guide ulineno.tex which may be even more helpful, but it has -% not been updated for a while. %% TODO -% -% \subsection{% -% Availability -% \unskip} -% -% In case you have found the present file otherwise than from -% CTAN: A recent version and documentation of this package -% should be available from CTAN folder -% \path{macros/latex/contrib/lineno}. -% Or mail to one of the addresses at top of file. -% -% \subsection{% -% Introductory code -% \unskip} -% -% This style option is written for \LaTeXe, November 1994 or later, -% since we need the ~\protected@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.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 -%% v2.02 1997/03/17 SIB: add: \@reinserts, for footnotes -%% v2.04 1998/03/09 SIB: add: linenomath environment -%% v2.05 1998/04/26 SIB: add: prevgraf test -%% v2.06 1999/03/02 SIB: LPPL added -%% v3.00 1999/06/11 SiB: include the extension in the main file -%% v3.01 1999/08/28 SiB: \@reinserts -> \holdinginserts -%% 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.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 \[ \] -%% v3.08a 2001/08/04 SiB: linenomath wrapping for \[ \] fixed -%% v3.08b 2002/01/27 SiB: enquotation typo fix -%% 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). -%% 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; -%% \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; -%% \modulolinenumbers*. Sent to Ednotes.news only. -%% 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 $$. -%% 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*. -%% -%% 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. -% -% -% \section{% -% Put the line numbers to the lines -% \unskip} -% -% (New v4.00) This section contained the most -% basic package code previously. For various purposes of -% version_4\dots, much of these basics have been to be modified. -% Much of my (UL's) reasoning on these modifications has been to -% be reported. Sorry, the present section has been blown up -% awfully thus and contains ramifications that may be difficult -% to trace. We add some ~\subsection~ commands in order to cope -% with the new situation. (/New v4.00) -% -% \subsection{% -% Basic code of \texttt{lineno.sty} \scs{output} -% \unskip}\label{ss:output} -% -% The line numbers have to be attached by the output -% routine. We simply set the ~\interlinepenalty~ to $-100000$. -% The output routine will be called after each line in the -% paragraph, except the last, where we trigger by ~\par~. -% The ~\linenopenalty~ is small enough to compensate a bunch of -% penalties (e.g., with ~\samepage~). -% -% (New v3.04) Longtable uses -% ~\penalty~$-30000$. The lineno penalty range was -% shrunk to $-188000 \dots -32000$. (/New v3.04) -% (New v4.00) New values are listed below (11111f.). (/New v4.00) - -\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) - -\mathchardef\linenopenaltypar=32000 - -% So let's make a hook to ~\output~, the direct way. The \LaTeX\ -% macro ~\@reinserts~ puts the footnotes back on the page. -% -% (New v3.01) ~\@reinserts~ badly -% screws up split footnotes. The bottom part is -% still on the recent contributions list, and the -% top part will be put back there after the bottom -% part. Thus, since lineno.sty does not play well -% with ~\inserts~ anyway, we can safely experiment -% with ~\holdinginserts~, without making things -% much worse. -% -% Or that's what I thought, but: Just activating -% ~\holdinginserts~ while doing the ~\par~ will -% not do the trick: The ~\output~ routine may be -% called for a real page break before all line -% numbers are done, and how can we get control -% over ~\holdinginserts~ at that point? -% -% Let's try this: When the ~\output~ routine is -% run with ~\holdinginserts=3~ for a real page -% break, then we reset ~\holdinginserts~ and -% restart ~\output~. -% -% Then, again, how do we keep the remaining -% ~\inserts~ while doing further line numbers? -% -% If we find ~\holdinginserts~=$-3$ we activate it again -% after doing ~\output~. (/New v3.01) -% -% (New v3.02) To work with -% multicol.sty, the original output routine is now -% called indirectly, instead of being replaced. -% When multicol.sty changes ~\output~, it is a -% toks register, not the real thing. (/New v3.02) -% -% (New v4.00) Two further complications are added. -%% -%% 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. -% \item -% [(ii)] \LaTeX\ commands using ~\vadjust~ formerly didn't work -% as one would have hoped. The problem is as follows: -% Printing the line number results from -% a box that the output routine inserts at the place of the -% ~\interlinepenalty~. ~\vadjust~ items appear \emph{above} the -% ~\interlinepenalty~ (\TeX book p._105). So ~\pagebreak~, e.g., -% formerly sent the line number to the next page, while the -% penalty from ~\nopagebreak~ could not tie the following line, -% since it was screened off by the line number box.---Our trick -% is putting the ~\vadjust~ items into a list macro from which -% the output routine transfers them into the vertical list, -% below the line number box. -% \end{itemize} -% In this case_(ii), like in case_(i), footnotes would suffer -% if ~\holdinginserts~ were non-positive. Indeed, in both -% cases_(i) and_(ii) we tackle the footnote problem by extending -% that part of Stephan's output routine that is active when -% ~\holdinginserts~ is positive. This extension writes the line -% number ~\newlabel~ to the .aux file (which was formerly done -% under $~\holdinginserts~=-3$) and handles the ~\vadjust~ -% items.---To trigger ~\output~ and its ~\linelabel~ or, resp., -% ~\vadjust~ part, the list of signal penalties started -% immediately before is increased here (first for ~\linelabel~, -% second for postponed ~\vadjust~ items): - -\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 -\let\@LN@output\output -\output=\expandafter{\the\@tempa} - -% Now we add two cases to Stephan's output routine. (New v4.00) - -\@tempa={% -% (/New 4.2) - \LineNoTest - \if@tempswa -%% -%% (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) -%% -% (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 - \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) -% -% \subsection{% -% \scs{LineNoTest} -% \unskip} -% -% The float mechanism inserts ~\interlinepenalty~s during -% ~\output~. So carefully reset it before going on. Else -% we get doubled line numbers on every float placed in -% horizontal mode, e.g, from ~\linelabel~. -% -% Sorry, neither a ~\linelabel~ nor a ~\marginpar~ should -% insert a penalty, else the following linenumber -% could go to the next page. Nor should any other -% float. So let us suppress the ~\interlinepenalty~ -% altogether with the ~\@nobreak~ switch. -% -% Since (ltspace.dtx, v1.2p)[1996/07/26], the ~\@nobreaktrue~ does -% it's job globally. We need to do it locally here. - -\def\LineNoTest{% - \let\@@par\@@@par - \ifnum\interlinepenalty<-\linenopenaltypar - \advance\interlinepenalty-\linenopenalty - \@LN@nobreaktrue - \fi - \@tempswatrue - \ifnum\outputpenalty>-\linenopenaltypar\else - \ifnum\outputpenalty>-188000\relax - \@tempswafalse - \fi - \fi - } - -\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~) -% is executed within a group (\TeX book p._21). -%% -%% 2004/09/19 Removed nonsense here according to Stephan 2004/09/04. -%% -% (/UL) -% -% \subsection{% -% Other output routines (v4.2) -% \unskip}\label{ss:LLO} -% -% I had thought of dealing with bad interference of footnotes -% (and ~\enlargethispage~) with (real) ~\marginpar~s and floats -% \emph{here}. Yet this is done in -% \[ -% ~http://~\mbox{[CTAN]} -% ~/macros/latex/contrib/tamefloats/tameflts.sty~ -% \] -% now, and I prefer striving for compatibility with the latter. -% (See there for expanding on the problem.) -% This requires returning the special absolute value of -% ~\holdinginserts~ that ~lineno.sty~ finds at the end of a newly -% typeset paragraph---now done in subsection_\ref{ss:calls} -% (~\linenumberpar~). -% The former ~\LineNoHoldInsertsTest~ has been filled into here. -%% ---`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 - \else - \if@twocolumn \let\@makecol\@LN@makecol \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~. -% Therefore \begin{enumerate} -% \item -% ~tameflts.sty~ should be loaded \emph{after} ~lineno.sty~; -% \item -% if a class changes ~\output~ (APS journal class revtex4, -% e.g.), ~lineno.sty~ should be loaded by ~\RequirePackage~ -% [here presumably following some options in -% brackets]~{lineno}~ \emph{preceding} ~\documentclass~. -% \item -% If you actually maintain such a class, please consider -% loading ~lineno.sty~ on some draft option. The bunch of -% lineno's package options may be a problem, but perhaps the -% purpose of your class is offering only very few of lineno's -% options anyway, maybe just one. -% \end{enumerate} -% The latter may also be needed with classes that don't follow -% David Kastrup's rule on changing ~\output~. -% -% \subsection{% -% \scs{MakeLineNo}: Actually attach line number -% \unskip}\label{ss:MLN} -% -% We have to return all the page to the current page, and -% add a box with the line number, without adding -% breakpoints, glue or space. The depth of our line number -% should be equal to the previous depth of the page, in -% case the page breaks here, and the box has to be moved up -% by that depth. -% -% The ~\interlinepenalty~ comes after the ~\vadjust~ from a -% ~\linelabel~, so we increment the line number \emph{after} -% printing it. The macro ~\makeLineNumber~ produces the -% text of the line number, see section \ref{appearance}. -% -% (UL) I needed a while to understand -% the sentence on incrementing. Correctly: writing the -% ~\newlabel~ to the .aux file is triggered by the signal -% penalty that ~\end@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. -% -% (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) - -\def\MakeLineNo{% - \@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, -% \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 -% \[~\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) -%% - \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. -% (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, -% \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{% - \penalty\the\count@ - \global\let\noexpand\@LN@parpgbrk - \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 -% be overridden. -%% - \fi - \else -%% -% (/New v4.00) -%% Corrected code alignment with v4.11. - \@tempcnta\outputpenalty - \advance\@tempcnta -\linenopenalty -%% -% (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) -%% - \fi - } - -% (New v4.00) - -\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 -% section_\ref{ss:calls}. - -\def\@LN@depthbox{% - \dp\@tempboxa=\@tempdima - \nointerlineskip \kern-\@tempdima \box\@tempboxa} - -% (/New v4.4) -% -% \section{% -% Control line numbering -% \unskip} -% \subsection{% -% Inserting \scs{output} calls %% own subsec. v4.4. -% \unskip}\label{ss:calls} -% The line numbering is controlled via ~\par~. \LaTeX\ -% saved the \TeX-primitive ~\par~ in ~\@@par~. We push it -% one level further out, and redefine ~\@@par~ to insert -% the ~\interlinepenalty~ needed to trigger the -% line numbering. And we need to allow pagebreaks after a -% paragraph. -% -% New (2.05beta): the prevgraf test. A paragraph that ends with a -% displayed equation, a ~\noindent\par~ or ~wrapfig.sty~ produce empty -% paragraphs. These should not get a spurious line number via -% ~\linenopenaltypar~. - -\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??). -%% -%% %% 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) - -%% v4.33: changed code alignment for better understanding. -\def\linenumberpar{% - \ifvmode \@@@par \else - \ifinner \@@@par \else - \xdef\@LN@outer@holdins{\the\holdinginserts}% v4.2 - \advance \interlinepenalty \linenopenalty - \linenoprevgraf \prevgraf - \global \holdinginserts \thr@@ - \@@@par - \ifnum\prevgraf>\linenoprevgraf - \penalty-\linenopenaltypar - \fi -%% -% (New v4.00) -% \begin{old}\begin{verbatim} -% % \kern\z@ -% \end{verbatim} -% \end{old} -% was here previously. What for? -% According to \TeX book p._125, Stephan's -% interline penalty is changed into 10000. At the end of a -% paragraph, the ~\parskip~ would follow that penalty of 10000, -% so there could be a page break neither at the -% ~\parskip~ nor at the ~\baselineskip~ (\TeX book p._110)---so -% there could never be a page break between two paragraphs. -% So something must screen off the 10000 penalty. -% Indeed, the ~\kern~ is a place to break. -% (Stephan once knew this: see `allow pagebreaks' above.) -% -% Formerly, I tried to replace ~\kern\z@~ by -% \begin{old}\begin{verbatim} -% % \penalty\@LN@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) -%% - \global\holdinginserts\@LN@outer@holdins % v4.2 - \advance\interlinepenalty -\linenopenalty - \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: - -\def\@LN@screenoff@pen{% - \ifdim\lastskip=\z@ - \@tempdima\prevdepth \setbox\@tempboxa\null - \@LN@depthbox \fi} - -\global\let\@LN@parpgbrk\@LN@screenoff@pen - -% (/New v4.4, v4.00) -% \subsection{% -% Turning on/off %% own subsec. v4.4. -% \unskip}\label{ss:OnOff} -% The basic commands to enable and disable line numbers. -% ~\@par~ and ~\par~ are only touched, when they are ~\let~ -% to ~\@@@par~/~\linenumberpar~. The line number may be -% reset to 1 with the star-form, or set by an optional -% argument ~[~~]~. -% -% (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) - -\newif\ifLineNumbers \LineNumbersfalse - -% (/New v4.00) - -\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) -%% - \let\@@par\linenumberpar - % \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 - \@ifnextchar[{\resetlinenumber}%] - {\@ifstar{\resetlinenumber}{}}% - } - -\def\nolinenumbers{% - \LineNumbersfalse % v4.00 - \let\@@par\@@@par - % \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) -% -% What happens with a display math? Since ~\par~ is not executed, -% when breaking the lines before a display, they will not get -% line numbers. Sorry, but I do not dare to change -% ~\interlinepenalty~ globally, nor do I want to redefine -% the display math environments here. -% \begin{displaymath} -% display \ math -% \end{displaymath} -% See the subsection below, for a wrapper environment to make -% it work. But that requires to wrap each and every display -% in your \LaTeX\ source %%. -%% 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. - -\def\pagewiselinenumbers{\linenumbers\setpagewiselinenumbers} -\def\runninglinenumbers{\setrunninglinenumbers\linenumbers} - -% 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: add an \@endpe hack if \linenumbers are turned on -% \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) - -\@namedef{linenumbers*}{\par\linenumbers*} -\@namedef{runninglinenumbers*}{\par\runninglinenumbers*} - -\def\endlinenumbers{\par\@endpetrue} -\let\endrunninglinenumbers\endlinenumbers -\let\endpagewiselinenumbers\endlinenumbers -\expandafter\let\csname endlinenumbers*\endcsname\endlinenumbers -\expandafter\let\csname endrunninglinenumbers*\endcsname\endlinenumbers -\let\endnolinenumbers\endlinenumbers - -% -% \subsection{% -% Display math -% \unskip}\label{ss:DM} -% -% Now we tackle the problem to get display math working. -% There are different options. -% \begin{enumerate}\item[ -% 1.] Precede every display math with a ~\par~. -% Not too good. -% \item[ -% 2.] Change ~\interlinepenalty~ and associates globally. -% Unstable. -% \item[ -% 3.] Wrap each display math with a ~{linenomath}~ -% environment. -% \end{enumerate} -% We'll go for option 3. See if it works: -% \begin{linenomath} -% \begin{equation} -% display \ math -% \end{equation} -% \end{linenomath} -% The star form ~{linenomath*}~ should also number the lines -% of the display itself, -% \begin{linenomath*} -% \begin{eqnarray} -% multi && line \\ -% display && math \\ -% & -% \begin{array}{c} -% with \\ -% array -% \end{array} -% & -% \end{eqnarray} -% \end{linenomath*} -% including multline displays. -% -% First, here are two macros to turn -% on linenumbering on paragraphs preceeding displays, with -% numbering the lines of the display itself, or without. -% The ~\ifx..~ tests if line numbering is turned on. It -% does not harm to add these wrappers in sections that are -% not numbered. Nor does it harm to wrap a display -% twice, e.q, in case you have some ~{equation}~s wrapped -% explicitely, and later you redefine ~\equation~ to do it -% automatically. -% -% (New v4.3) To avoid the spurious line number above a -% display in vmode, I insert ~\ifhmode~. (/New v4.3) - -\newcommand\linenomathNonumbers{% - \ifLineNumbers -%% \ifx\@@par\@@@par\else - \ifnum\interlinepenalty>-\linenopenaltypar - \global\holdinginserts\thr@@ - \advance\interlinepenalty \linenopenalty - \ifhmode % v4.3 - \advance\predisplaypenalty \linenopenalty - \fi - \fi - \fi - \ignorespaces - } - -\newcommand\linenomathWithnumbers{% - \ifLineNumbers -%% \ifx\@@par\@@@par\else - \ifnum\interlinepenalty>-\linenopenaltypar - \global\holdinginserts\thr@@ - \advance\interlinepenalty \linenopenalty - \ifhmode % v4.3 - \advance\predisplaypenalty \linenopenalty - \fi - \advance\postdisplaypenalty \linenopenalty - \advance\interdisplaylinepenalty \linenopenalty - \fi - \fi - \ignorespaces - } - -% The ~{linenomath}~ environment has two forms, with and -% without a star. The following two macros define the -% environment, where the stared/non-stared form does/doesn't number the -% lines of the display or vice versa. - -\newcommand\linenumberdisplaymath{% - \def\linenomath{\linenomathWithnumbers}% - \@namedef{linenomath*}{\linenomathNonumbers}% - } - -\newcommand\nolinenumberdisplaymath{% - \def\linenomath{\linenomathNonumbers}% - \@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. - \@ignoretrue -} -\expandafter\let\csname endlinenomath*\endcsname\endlinenomath - -% The default is not to number the lines of a display. But -% the package option ~mathlines~ may be used to switch -% that behavior. - -\nolinenumberdisplaymath - -% -% \section{% -% Line number references -% \unskip}\label{s:LNref} -% \subsection{% -% Internals %% New subsec. v4.3. -% \unskip} -% The only way to get a label to a line number in a -% paragraph is to ask the output routine to mark it. -% -% (New v4.00) The following two paragraphs don't hold any -% longer, see below. (/New v4.00) -% \begin{old}\begin{verbatim} -% % We use the marginpar mechanism to hook to ~\output~ for a -% % second time. Marginpars are floats with number $-1$, we -% % fake marginpars with No $-2$. Originally, every negative -% % numbered float was considered to be a marginpar. -% % -% % The float box number ~\@currbox~ is used to transfer the -% % label name in a macro called ~\@LNL@~. -% \end{verbatim} -% \end{old} -% A ~\newlabel~ is written to the aux-file. The reference -% is to ~\theLineNumber~, \emph{not} ~\thelinenumber~. -% This allows to hook in, as done below for pagewise line -% numbering. -% -% (New v3.03) The ~\@LN@ExtraLabelItems~ are added for a hook -% to keep packages like ~{hyperref}~ happy. (/New v3.03) -% -% (New v4.00) -% We fire the ~\marginpar~ mechanism, so we leave \LaTeX's -% ~\@addmarginpar~ untouched. -% \begin{old}\begin{verbatim} -% % \let\@LN@addmarginpar\@addmarginpar -% % \def\@addmarginpar{% -% % \ifnum\count\@currbox>-2\relax -% % \expandafter\@LN@addmarginpar -% % \else -% % \@cons\@freelist\@currbox -% % \protected@write\@auxout{}{% -% % \string\newlabel -% % {\csname @LNL@\the\@currbox\endcsname}% -% % {{\theLineNumber}{\thepage}\@LN@ExtraLabelItems}}% -% % \fi} -% \end{verbatim} -% \end{old} -% 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. -% -% 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}}% -} - -% (/New v4.00) -% -% \subsection{% -% The \scs{linelabel} command -% \unskip}\label{ss:LL} -% To refer to a place in line ~\ref{~~}~ at page -% ~\pageref{~~}~ you place a ~\linelabel{~~}~ at -% that place. -% -% \linelabel{demo} -% \marginpar{\tiny\raggedright -% See if it works: This paragraph -% starts on page \pageref{demo}, line -% \ref{demo}. -% \unskip}% -% (New v4.11) -% \begin{old}\begin{verbatim} -% % If you use this command outside a ~\linenumbers~ -% % paragraph, you will get references to some bogus -% % line numbers, sorry. But we don't disable the command, -% % because only the ~\par~ at the end of a paragraph may -% % decide whether to print line numbers on this paragraph -% % or not. A ~\linelabel~ may legally appear earlier than -% % ~\linenumbers~. -% \end{verbatim} -% \end{old} -% This trick is better not allowed---see subsections_\ref{ss:LL} -% and_\ref{ss:OnOff}. -% (/New v4.11) -% -% ~\linelabel~ -% \begin{old}\begin{verbatim} -% %, via a fake float number $-2$, %% new mechanism v4.00 -% \end{verbatim} -% \end{old} -% puts a -% ~\penalty~ into a ~\vadjust~, which triggers the -% pagebuilder after putting the current line to the main -% vertical list. A ~\write~ is placed on the main vertical -% list, which prints a reference to the current value of -% ~\thelinenumber~ and ~\thepage~ at the time of the -% ~\shipout~. -% -% A ~\linelabel~ is allowed only in outer horizontal mode. -% In outer vertical mode we start a paragraph, and ignore -% trailing spaces (by fooling ~\@esphack~). -% -% (New v4.00) We aim at relaxing the previous condition. -% We insert a hook ~\@LN@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.11) -% \begin{old}\begin{verbatim} -% % \def\linelabel#1{% -% \end{verbatim} -% \end{old} -% I forgot ~\linenumbers~ today, costed me hours or so. - -\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. - -\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) -%% - \ifvmode - \ifinner \else - \leavevmode \@bsphack \@savsk\p@ - \fi - \else - \@bsphack - \fi - \ifhmode - \ifinner - \@parmoderr - \else -%% -% (New v4.00) -%% - \@LN@postlabel{#1}% -% \begin{old}\begin{verbatim} -% % \@floatpenalty -\@Mii -% % \@next\@currbox\@freelist -% % {\global\count\@currbox-2% -% % \expandafter\gdef\csname @LNL@\the\@currbox\endcsname{#1}}% -% % {\@floatpenalty\z@ \@fltovf \def\@currbox{\@tempboxa}}% -% % \begingroup -% % \setbox\@currbox \color@vbox \vbox \bgroup \end@float -% % \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) -%% - \fi - \else -%% -% (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) -%% - \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. - -\def\@LN@postlabel#1{\g@addto@macro\@LN@labellist{#1\@lt}% - \vadjust{\penalty-\@Mllbcodepen}} -\def\@LN@mathhook#1{\@parmoderr} - -% (/New v4.00) -% -% \modulolinenumbers[3] -% \firstlinenumber{1} -% \section{% -% The appearance of the line numbers -% \unskip}\label{appearance} -% \subsection{% -% Basic code %% own subsec. v4.2. -% \unskip} -% -% The line numbers are set as ~\tiny\sffamily\arabic{linenumber}~, -% $10pt$ left of the text. With options to place it -% right of the text, or . . . -% -% . . . here are the hooks: - -\def\makeLineNumberLeft{% - \hss\linenumberfont\LineNumber\hskip\linenumbersep} - -\def\makeLineNumberRight{% - \linenumberfont\hskip\linenumbersep\hskip\columnwidth - \hb@xt@\linenumberwidth{\hss\LineNumber}\hss} - -\def\linenumberfont{\normalfont\tiny\sffamily} - -\newdimen\linenumbersep -\newdimen\linenumberwidth - -\linenumberwidth=10pt -\linenumbersep=10pt - -% Margin switching requires ~pagewise~ numbering mode, but -% choosing the left or right margin for the numbers always -% works. - -\def\switchlinenumbers{\@ifstar - {\let\makeLineNumberOdd\makeLineNumberRight - \let\makeLineNumberEven\makeLineNumberLeft}% - {\let\makeLineNumberOdd\makeLineNumberLeft - \let\makeLineNumberEven\makeLineNumberRight}% - } - -\def\setmakelinenumbers#1{\@ifstar - {\let\makeLineNumberRunning#1% - \let\makeLineNumberOdd#1% - \let\makeLineNumberEven#1}% - {\ifx\c@linenumber\c@runninglinenumber - \let\makeLineNumberRunning#1% - \else - \let\makeLineNumberOdd#1% - \let\makeLineNumberEven#1% - \fi}% - } - -\def\leftlinenumbers{\setmakelinenumbers\makeLineNumberLeft} -\def\rightlinenumbers{\setmakelinenumbers\makeLineNumberRight} - -\leftlinenumbers* - -% ~\LineNumber~ is a hook which is used for the modulo stuff. -% It is the command to use for the line number, when you -% customize ~\makeLineNumber~. Use ~\thelinenumber~ to -% change the outfit of the digits. -% -% -% We will implement two modes of operation: -% \begin{itemize} -% \item numbers ~running~ through (parts of) the text -% \item ~pagewise~ numbers starting over with one on top of -% each page. -% \end{itemize} -% Both modes have their own count register, but only one is -% allocated as a \LaTeX\ counter, with the attached -% facilities serving both. - -\newcounter{linenumber} -\newcount\c@pagewiselinenumber -\let\c@runninglinenumber\c@linenumber - -% 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]{% - \global % v4.22 - \c@runninglinenumber#1\relax} - -% (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 -% counters here---removed, somewhat postponed.) -% -%% 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 -%% } -% -% \subsection{% -% Running line numbers -% \unskip} -% -% Running mode is easy, ~\LineNumber~ and ~\theLineNumber~ -% produce ~\thelinenumber~, which defaults to -% ~\arabic{linenumber}~, using the ~\c@runninglinenumber~ -% counter. This is the default mode of operation. - -\def\makeRunningLineNumber{\makeLineNumberRunning} - -\def\setrunninglinenumbers{% - \def\theLineNumber{\thelinenumber}% - \let\c@linenumber\c@runninglinenumber - \let\makeLineNumber\makeRunningLineNumber - } - -\setrunninglinenumbers\resetlinenumber - -% -% \subsection{% -% Pagewise line numbers -% \unskip}\label{ss:PW} -% -% Difficult, if you think about it. The number has to be -% printed when there is no means to know on which page it -% will end up, except through the aux-file. My solution -% is really expensive, but quite robust. -% -% With version ~v2.00~ the hashsize requirements are -% reduced, because we do not need one controlsequence for -% each line any more. But this costs some computation time -% to find out on which page we are. -% -% ~\makeLineNumber~ gets a hook to log the line and page -% number to the aux-file. Another hook tries to find out -% what the page offset is, and subtracts it from the counter -% ~\c@linenumber~. Additionally, the switch -% ~\ifoddNumberedPage~ is set true for odd numbered pages, -% false otherwise. - -\def\setpagewiselinenumbers{% - \let\theLineNumber\thePagewiseLineNumber - \let\c@linenumber\c@pagewiselinenumber - \let\makeLineNumber\makePagewiseLineNumber - } - -\def\makePagewiseLineNumber{\logtheLineNumber\getLineNumber - \ifoddNumberedPage - \makeLineNumberOdd - \else - \makeLineNumberEven - \fi - } - -% Each numbered line gives a line to the aux file -% \begin{verse} -% ~\@LN{~~}{~~}~ -% \end{verse} -% very similar to the ~\newlabel~ business, except that we need -% an arabic representation of the page number, not what -% there might else be in ~\thepage~. - -\def\logtheLineNumber{\protected@write\@auxout{}{% -%% -% (New v4.00) (UL) -% 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 -%% \g@addto@macro\cl@page{\global\advance\n@LN@truepage\@ne} -\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) -% -% From the aux-file we get one macro ~\LN@P~ for each -% page with line numbers on it. This macro calls four other -% macros with one argument each. These macros are -% dynamically defined to do tests and actions, to find out -% on which page the current line number is located. -% -% We need sort of a pointer to the first page with line -% numbers, initiallized to point to nothing: - -\def\LastNumberedPage{first} -\def\LN@Pfirst{\nextLN\relax} - -% The four dynamic macros are initiallized to reproduce -% themselves in an ~\xdef~ - -\let\lastLN\relax % compare to last line on this page -\let\firstLN\relax % compare to first line on this page -\let\pageLN\relax % get the page number, compute the linenumber -\let\nextLN\relax % move to the next page - -% 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. - -\AtEndDocument{\let\@LN\@gobbletwo} - -% Now, this is the tricky part. First of all, the whole -% definition of ~\@LN~ is grouped, to avoid accumulation -% on the save stack. Somehow ~\csname~~\endcsname~ pushes -% an entry, which stays after an ~\xdef~ to that . -% -% If ~\LN@P~ is undefined, initialize it with the -% current page and line number, with the -% \emph{pointer-to-the-next-page} pointing to nothing. And -% the macro for the previous page will be redefined to point -% to the current one. -% -% If the macro for the current page already exists, just -% redefine the \emph{last-line-number} entry. -% -% Finally, save the current page number, to get the pointer to the -% following page later. - -\def\@LN#1#2{{\expandafter\@@LN - \csname LN@P#2C\@LN@column\expandafter\endcsname - \csname LN@PO#2\endcsname - {#1}{#2}}} - -\def\@@LN#1#2#3#4{\ifx#1\relax - \ifx#2\relax\gdef#2{#3}\fi - \expandafter\@@@LN\csname LN@P\LastNumberedPage\endcsname#1% - \xdef#1{\lastLN{#3}\firstLN{#3}% - \pageLN{#4}{\@LN@column}{#2}\nextLN\relax}% - \else - \def\lastLN##1{\noexpand\lastLN{#3}}% - \xdef#1{#1}% - \fi - \xdef\LastNumberedPage{#4C\@LN@column}} - -% The previous page macro gets its pointer to the -% current one, replacing the ~\relax~ with the cs-token -% ~\LN@P~. - -\def\@@@LN#1#2{{\def\nextLN##1{\noexpand\nextLN\noexpand#2}% - \xdef#1{#1}}} - -% Now, to print a line number, we need to find the page, -% where it resides. This will most probably be the page where -% the last one came from, or maybe the next page. However, it can -% be a completely different one. We maintain a cache, -% which is ~\let~ to the last page's macro. But for now -% it is initialized to expand ~\LN@first~, where the poiner -% to the first numbered page has been stored in. - -\def\NumberedPageCache{\LN@Pfirst} - -% 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 -% later page. If so, disable ~\firstLN~, and go on to the -% next page via ~\nextLN~. - -\def\testLastNumberedPage#1{\ifnum#1<\c@linenumber - \let\firstLN\@gobble - \fi} - -% Else, if ~\firstLN~ finds out that we need an earlier -% page, we start over from the beginning. Else, ~\nextLN~ -% will be disabled, and ~\pageLN~ will run -% ~\gotNumberedPage~ with four arguments: the first line -% number on this column, the page number, the column -% number, and the first line on the page. - -\def\testFirstNumberedPage#1{\ifnum#1>\c@linenumber - \def\nextLN##1{\testNextNumberedPage\LN@Pfirst}% - \else - \let\nextLN\@gobble - \def\pageLN{\gotNumberedPage{#1}}% - \fi} - -% We start with ~\pageLN~ disabled and ~\nextLN~ defined to -% continue the search with the next page. - -\long\def \@gobblethree #1#2#3{} - -\def\testNumberedPage{% - \let\lastLN\testLastNumberedPage - \let\firstLN\testFirstNumberedPage - \let\pageLN\@gobblethree - \let\nextLN\testNextNumberedPage - \NumberedPageCache - } - -% When we switch to another page, we first have to make -% sure that it is there. If we are done with the last -% page, we probably need to run \TeX\ again, but for the -% rest of this run, the cache macro will just return four -% zeros. This saves a lot of time, for example if you have -% half of an aux-file from an aborted run, in the next run -% the whole page-list would be searched in vain again and -% again for the second half of the document. -% -% If there is another page, we iterate the search. - -\def\testNextNumberedPage#1{\ifx#1\relax - \global\def\NumberedPageCache{\gotNumberedPage0000}% - \PackageWarningNoLine{lineno}% - {Linenumber reference failed, - \MessageBreak rerun to get it right}% - \else - \global\let\NumberedPageCache#1% - \fi - \testNumberedPage - } - -% \linelabel{demo2} -% \marginpar{\tiny\raggedright -% Let's see if it finds the label -% on page \pageref{demo}, -% line \ref{demo}, and back here -% on page \pageref{demo2}, line -% \ref{demo2}. -% \unskip}% -% To separate the official hooks from the internals there is -% this equivalence, to hook in later for whatever purpose: - -\let\getLineNumber\testNumberedPage - -% So, now we got the page where the number is on. We -% establish if we are on an odd or even page, and calculate -% the final line number to be printed. - -\newif\ifoddNumberedPage -\newif\ifcolumnwiselinenumbers -\columnwiselinenumbersfalse - -\def\gotNumberedPage#1#2#3#4{\oddNumberedPagefalse - \ifodd \if@twocolumn #3\else #2\fi\relax\oddNumberedPagetrue\fi - \advance\c@linenumber\@ne - \ifcolumnwiselinenumbers - \subtractlinenumberoffset{#1}% - \else - \subtractlinenumberoffset{#4}% - \fi - } - -% You might want to run the pagewise mode with running line -% numbers, or you might not. It's your choice: - -\def\runningpagewiselinenumbers{% - \let\subtractlinenumberoffset\@gobble - } - -\def\realpagewiselinenumbers{% - \def\subtractlinenumberoffset##1{\advance\c@linenumber-##1\relax}% - } - -\realpagewiselinenumbers - -% For line number references, we need a protected call to -% the whole procedure, with the requested line number stored -% in the ~\c@linenumber~ counter. This is what gets printed -% to the aux-file to make a label: - -\def\thePagewiseLineNumber{\protect - \getpagewiselinenumber{\the\c@linenumber}}% - -% And here is what happens when the label is refered to: - -\def\getpagewiselinenumber#1{{% - \c@linenumber #1\relax\testNumberedPage - \thelinenumber - }} - -% % -% A summary of all per line expenses: -% \begin{description}\item -% [CPU:] The ~\output~ routine is called for each line, -% and the page-search is done. -% \item -% [DISK:] One line of output to the aux-file for each -% numbered line -% \item -% [MEM:] One macro per page. Great improvement over v1.02, -% which had one control sequence per line in -% addition. It blew the hash table after some five -% thousand lines. -% \end{description} -% -% \subsection{% -% Twocolumn mode (New v3.06) -% \unskip} -% -% Twocolumn mode requires another patch to the ~\output~ -% routine, in order to print a column tag to the .aux -% file. - -\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{}{% - \string\@LN@col{\if@firstcolumn1\else2\fi}% - }% - \box\@outputbox - }% \vbox -} %% TODO cf. revtexln.sty. - -\def\@LN@col{\def\@LN@column} % v4.22, removed #1. -\@LN@col{1} - -% -% \subsection{% -% Numbering modulo $m$, starting at $f$ -%% Numbering modulo 5 -% \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) -% \begin{old}\begin{verbatim} -% % \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: -% \begin{old}\begin{verbatim} -% % \def\themodulolinenumber{{\@tempcnta\c@linenumber -% % \divide\@tempcnta\c@linenumbermodulo -% % \multiply\@tempcnta\c@linenumbermodulo -% % \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 -% 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 -% 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 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. - -\def\themodulolinenumber{\relax - \ifnum\c@linenumber<\c@firstlinenumber \else - \begingroup - \@tempcnta\c@linenumber - \advance\@tempcnta-\c@firstlinenumber - \divide\@tempcnta\c@linenumbermodulo - \multiply\@tempcnta\c@linenumbermodulo - \advance\@tempcnta\c@firstlinenumber - \ifnum\@tempcnta=\c@linenumber \thelinenumber \fi - \endgroup - \fi -} - -% (/New v4.00) -% -% The user command to set the modulo counter: -% (New v4.31) \dots\ a star variant is introduced to implement -% Hillel Chayim Yisraeli's idea to print the first line number -% after an interruption of the edited text by some editor's -% text, regardless of the modulo. If it is 1, it is printed only -% with ~\firstlinenumber{1}~. I.e., you use ~\modulolinenumbers*~ -% for the new feature, without the star you get the simpler -% behaviour that we have had so far. And you can switch back -% from the refined behaviour to the simple one by using -% ~\modulolinenumbers~ without the star.---This enhancement -% is accompanied by a new package option ~modulo*~ which just -% executes ~\modulolinenumbers*~ -% (subsection_\ref{ss:v3opts}).---`With ~\firstlinenumber{1}~' -% exactly means: `1' is printed if and only if the last -% ~\firstlinenumber~ before or in the paragraph that follows -% the ``interruption'' has argument `1' (or something -% \emph{expanding} to `1', or (to) something that \TeX\ -% ``reads'' as 1, e.g.: a \TeX\ count register storing -% 1).---At present, this behaviour may be unsatisfactory with -% pagewise line-numbering $\dots$ I'll make an experimental -% extra package if someone complains \dots - -\newcommand\modulolinenumbers{% - \@ifstar - {\def\@LN@maybe@moduloresume{% - \global\let\@LN@maybe@normalLineNumber - \@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 - \ifnum\c@linenumber>\@ne - \def\LineNumber{\thelinenumber}% - \fi - \fi -%% -% ~\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 -% ~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 -% fail in admittedly improbable cases.) - -\newcommand*\@LN@modulolinenos[1][\z@]{% -%% -% 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 - \c@linenumbermodulo#1\relax - \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) -%% - \fi\fi - } - -% (New v4.00) The default of ~\@LN@ifgreat~ is - -\let\@LN@ifgreat\relax - -% 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{~~}~ works. Moreover, -% ~\modulolinenumbers~ acts locally as well. (/UL) -% -% (New v4.31) -%% - \let\@LN@ifgreat\@LN@ifgreat@critical} - -\def\@LN@ifgreat@critical{% - \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. - -\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) - -%%\setcounter{linenumbermodulo}{5} -\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{% -% 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) -% -% \subsection{% -% Extended referencing to line numbers. (v4.2) -% \unskip} -% This subsection explains and declares package option ~addpageno~. %% v4.31 -% -% If a line to whose number you refer by ~\ref~ is not on the -% present page, it may be useful to add the number of the page -% on which the line occurs---and perhaps it should not be added -% otherwise. In general, you could use the Standard \LaTeX\ -% package varioref for this. However, the latter usually -% produces verbose output like `on the preceding page'--- -% unless costumized---, while in critical editions, e.g., one -% may prefer just adding the page number and some mark on the -% left of the line number, irrespectively of how far the page is -% apart etc. To support this, package option ~addpageno~ -% provides a command ~\vpagelineref~ to be used in place of -% ~\ref~. This produces, e.g., `34.15' when referring to line_15 -% on page_34 while the present page is not 34. You can customize -% the outcome, see the package file ~vplref.sty~ where the code -% and further details are. You may conceive of -% ~\vpagelineref~ as a certain customization of varioref's -% ~\vref~. -% -% This implies that option ~addpageno~ requires the files -% ~vplref.sty~ and ~varioref.sty~. ~addpageno~ automatically -% loads both of them. Yet you can also load ~varioref.sty~ -% on your own to use its package options. -% -% Of course, you might better introduce a shorter command name -% for ~\vpagelineref~ for your work, while we cannot predict -% here what shorthand will fit your work. E.g., -% ~\newcommand{\lref}{\vpagelineref}~. -% -% If you really want to add the page number in \emph{any} case, -% use, e.g., some ~\myref~ instead of ~\ref~, after -% \[~newcommand*{\myref}{\pageref{#1}.\ref{#1}}~\] -% or what you like. You don't need the ~addpageno~ option in -% this case. -% -% ~addpageno~ is due to a suggestion by Sergei Mariev. - -\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{% -% Arrays, tabular environments (Revised v4.11) -% \unskip}\label{ss:Tab} -% -% This subsection explains and declares package options %% v4.31 -% ~edtable~, ~longtable~, and ~nolongtablepatch~. -% -% The standard \LaTeX\ tabular environments come as single -% boxes, so the ~lineno.sty~ versions before v4.00 treated them as -% (parts of) single lines, printing (at most) one line number -% beside each and stepping the line number counter once only. -% Moreover, ~\linelabel~s got lost. Of course, tables are -% usually so high that you will want to treat each row like a -% line. (Christian Tapp even desires that the lines of table -% entries belonging to a single row are treated like ordinary -% lines.) Footnotes get lost in such environments as well, which -% was bad for ~ednotes.sty~. -% -% We provide adjustments to count lines, print their numbers -% etc.\ as desired at least for \emph{some} \LaTeX\ tabular -% environments. (Like with other details, ``some'' is to some -% extent explained in ~edtable.sty~.) We do this similarly as -% with option ~mathrefs~ before. We leave code -% and explanations in the separate package ~edtable.sty~. -% (For wizards: this package provides adjustments for -% ~ednotes.sty~ as well. However, in the present case we don't try -% to avoid them unless ~ednotes.sty~ is loaded.) -% Package option ~edtable~ -% defines---by loading ~edtable.sty~---an environment ~{edtable}~ -% which is able to change some \LaTeX\ tabular environments -% with the desired effects. (v4.11: ~edtable.sty~ v1.3 counts -% \LaTeX's ~{array}~ [etc.\@] as a ``tabular environment'' as -% well.) -% -% The ~{edtable}~ environment doesn't help with ~longtable.sty~, -% however. To make up for this, ~{longtable}~ is adjusted in a -% different way---and this happens only when another ~lineno.sty~ -% option ~longtable~ is called. In this case, option ~edtable~ -% needn't be called explicitly: option ~longtable~ works as if -% ~edtable~ had been called. -% -% Now, we are convinced that vertical spacing around -% ~{longtable}~ works wrongly---see \LaTeX\ bugs database -% tools/3180 and 3485, or see explanations in the package -% ~ltabptch.sty~ (which is to be obtained from CTAN folder -% \path{macros/latex/ltabptch}). Our conviction is so strong -% that the ~longtable~ option loads---after ~longtable.sty~---the -% patch package ~ltabptch.sty~. If the user doesn't want this -% (maybe preferring her own arrangement with the vertical -% spacing), she can forbid it by calling ~nolongtablepatch~. -% -% The following code just collects some choices, which are -% then executed in section_\ref{ss:ExOpt}. We use an ~\if...~ -% without ~\newif~ since ~\if...true~ and ~\if...false~ -% would occur at most two times and only within the present -% package. (~\AtEndOfClass{\RequirePackage{edtable}}~ -% could be used instead, I just overlooked this. Now I don't -% change it because it allows to change the version requirement -% at one place only.) - -\let\if@LN@edtable\iffalse - -\DeclareOption{edtable}{\let\if@LN@edtable\iftrue} - -\DeclareOption{longtable}{\let\if@LN@edtable\iftrue - \PassOptionsToPackage{longtable}{edtable}} - -\DeclareOption{nolongtablepatch}{% - \PassOptionsToPackage{nolongtablepatch}{edtable}} - -% (/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. -% -% Options ~left~ (~right~) put the line numbers on the left -% (right) margin. This works in all modes. ~left~ is the -% default. - -\DeclareOption{left}{\leftlinenumbers*} - -\DeclareOption{right}{\rightlinenumbers*} - -% Option ~switch~ (~switch*~) puts the line numbers on the -% outer (inner) margin of the text. This requires running -% the pagewise mode, but we turn off the page offset -% subtraction, getting sort of running numbers again. The -% ~pagewise~ option may restore true pagewise mode later. - -\DeclareOption{switch}{\setpagewiselinenumbers - \switchlinenumbers - \runningpagewiselinenumbers} - -\DeclareOption{switch*}{\setpagewiselinenumbers - \switchlinenumbers*% - \runningpagewiselinenumbers} - -% In twocolumn mode, we can switch the line numbers to -% the outer margin, and/or start with number 1 in each -% column. Margin switching is covered by the ~switch~ -% options. - -\DeclareOption{columnwise}{\setpagewiselinenumbers - \columnwiselinenumberstrue - \realpagewiselinenumbers} - -% The options ~pagewise~ and ~running~ select the major -% linenumber mechanism. ~running~ line numbers refer to a real -% counter value, which can be reset for any paragraph, -% even getting multiple paragraphs on one page starting -% with line number one. ~pagewise~ line numbers get a -% unique hidden number within the document, but with the -% opportunity to establish the page on which they finally -% come to rest. This allows the subtraction of the page -% offset, getting the numbers starting with 1 on top of each -% page, and margin switching in twoside formats becomes -% possible. The default mode is ~running~. -% -% The order of declaration of the options is important here -% ~pagewise~ must come after ~switch~, to overide running -% pagewise mode. ~running~ comes last, to reset the running -% line number mode, e.g, after selecting margin switch mode -% for ~pagewise~ running. Once more, if you specify all -% three of the options ~[switch,pagewise,running]~, the -% result is almost nothing, but if you later say -% ~\pagewiselinenumbers~, you get margin switching, with -% real pagewise line numbers. -% -\DeclareOption{pagewise}{\setpagewiselinenumbers - \realpagewiselinenumbers} - -\DeclareOption{running}{\setrunninglinenumbers} - -% The option ~modulo~ causes only those linenumbers to be -% printed which are multiples of five. - -\DeclareOption{modulo}{\modulolinenumbers\relax} - -% Option ~modulo*~ modifies ~modulo~ in working like -% ~\modulolinenumbers*~---see section_\ref{s:UserCmds}. - -\DeclareOption{modulo*}{\modulolinenumbers*\relax} - -% The package option ~mathlines~ switches the behavior of -% the ~{linenomath}~ environment with its star-form. -% Without this option, the ~{linenomath}~ environment does -% not number the lines of the display, while the star-form -% does. With this option, its just the opposite. -% -%%% 1999-06-10: renamed ~displaymath~ to ~mathlines~. - -\DeclareOption{mathlines}{\linenumberdisplaymath} - -% ~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? - -\DeclareOption{displaymath}{\PackageWarningNoLine{lineno}{% - Option [displaymath] is obsolete -- default now!}} -%% -%%\let\do@mlineno\relax -%%\DeclareOption{displaymath}{\let\do@mlineno\@empty} -% (/New v4.3) -% -% \subsection{% -% Compatibility with \texttt{hyperref} %% own subsec. v4.3. -% \unskip} -% The ~hyperref~ package, via ~nameref~, requires three more -% groups in the second argment of a ~\newlabel~. Well, why -% shouldn't it get them? (New v3.07) The presence of the -% ~nameref~ package is now detected automatically -% ~\AtBeginDocument~. (/New v3.07) (Fixed in v3.09) We try -% to be smart, and test ~\AtBeginDocument~ if the ~nameref~ -% package is loaded, but ~hyperref~ postpones the loading of -% ~nameref~ too, so this is all in vain. -% -% (New v4.3) But we can also test at the first ~\linelabel~. -% Regarding the error-message for misplaced ~\linelabel~ from v4.11: -% previously, ~\linenumbers~ rendered ~\linelabel~ the genuine -% version of ~\linelabel~ from the start on. This doesn't work -% now, since ~\@LN@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. - \MessageBreak The hyperref package is detected automatically.}} - -\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{{}{}{}}% - }{% - \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 -% after the commas separating the option names in the ~\usepackage~ -% command (no comment marks needed). -% -% \subsection{% -% Execute options -% \unskip}\label{ss:ExOpt} -% -% We stop declaring options and execute the ones that are -% called by the user. (/New v4.1) - -\ProcessOptions - -% (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 - -% (/New v4.1) -% -% \section{% -% Former package extensions -% \label{s:Xt}\unskip} -% -% The extensions in this section were previously supplied -% in separate ~.sty~ files. -% -% \subsection{% -% $display math$ -% \unskip}\label{ss:display} -%% (New v4.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. -% -% (New 3.05) The ~[fleqn]~ option of the standard -% \LaTeX\ classes defines the display math -% environments such that line numbers appear just -% fine. Thus, we need not do any tricks when -% ~[fleqn]~ is loaded, as indicated by presents of -% the ~\mathindent~ register. (/New 3.05) -% -% (New 3.05a) for ~{eqnarray}~s we rather keep the -% old trick. (/New 3.05a) -% -% (New 3.08) Wrap ~\[~ and ~\]~ into ~{linenomath}~, -% instead of ~{displaymath}~. Also save the definition -% of ~\equation~, instead of replicating the current -% \LaTeX\ definition. (/New 3.08) - -%%\ifx\do@mlineno\@empty - \@ifundefined{mathindent}{ - -%% \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}% - {\linenomath\LN@equation}% - {\LN@endequation\endlinenomath}% -%% } - - }{}% \@ifundefined{mathindent} -- 3rd arg v4.2, was \par! - -%%\AtBeginDocument{% - \let\LN@eqnarray\eqnarray - \let\LN@endeqnarray\endeqnarray - \renewenvironment{eqnarray}% - {\linenomath\LN@eqnarray}% - {\LN@endeqnarray\endlinenomath}% -%%} - -%%\fi - -% (UL) Indeed. The \LaTeX\ macros are saved for -% unnumbered mode, which is detected by ~\linenomath~. -% (/UL) -% -% \subsection{% -% Line numbers in internal vertical mode -% \unskip}\label{ss:ILN} -% -% The command ~\internallinenumbers~ adds line numbers in -% internal vertical mode, but with limitations: we assume -% fixed baseline skip. -% -% (v4.22) v3.10 provided a global (~\global\advance~) -% as well as a local version (star-form, using -% ~\c@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 - -\newcommand\internallinenumbers{\setrunninglinenumbers - \let\@@par\internallinenumberpar - \ifx\@par\@@@par\let\@par\internallinenumberpar\fi - \ifx\par\@@@par\let\par\internallinenumberpar\fi - \ifx\@par\linenumberpar\let\@par\internallinenumberpar\fi - \ifx\par\linenumberpar\let\par\internallinenumberpar\fi - \@ifnextchar[{\resetlinenumber}%] - {\@ifstar{\let\c@linenumber\c@internallinenumber - \let\@LN@iglobal\relax % v4.22 - \c@linenumber\@ne}{}}% - } - -\let\endinternallinenumbers\endlinenumbers -\@namedef{internallinenumbers*}{\internallinenumbers*} -\expandafter\let\csname endinternallinenumbers*\endcsname\endlinenumbers - -\newcount\c@internallinenumber -\newcount\c@internallinenumbers - -\newcommand\internallinenumberpar{% - \ifvmode\@@@par\else\ifinner\@@@par\else\@@@par - \begingroup - \c@internallinenumbers\prevgraf - \setbox\@tempboxa\hbox{\vbox{\makeinternalLinenumbers}}% - \dp\@tempboxa\prevdepth - \ht\@tempboxa\z@ - \nobreak\vskip-\prevdepth - \nointerlineskip\box\@tempboxa - \endgroup - \fi\fi - } - -\newcommand\makeinternalLinenumbers{% - \ifnum\c@internallinenumbers>\z@ % v4.2 - \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} -% -% This extension defines macros to refer to line -% numbers with an offset, e.g., to refer to a line -% which cannot be labeled directly (display math). -% This was formerly knows as ~rlineno.sty~. -% -% To refer to a pagewise line number with offset: -% \begin{quote} -% ~\linerefp[~~]{~