summaryrefslogtreecommitdiff
path: root/macros/latex/contrib/ednotes
diff options
context:
space:
mode:
authorNorbert Preining <norbert@preining.info>2019-09-02 13:46:59 +0900
committerNorbert Preining <norbert@preining.info>2019-09-02 13:46:59 +0900
commite0c6872cf40896c7be36b11dcc744620f10adf1d (patch)
tree60335e10d2f4354b0674ec22d7b53f0f8abee672 /macros/latex/contrib/ednotes
Initial commit
Diffstat (limited to 'macros/latex/contrib/ednotes')
-rw-r--r--macros/latex/contrib/ednotes/CHANGES.txt261
-rw-r--r--macros/latex/contrib/ednotes/CHANGING.txt127
-rw-r--r--macros/latex/contrib/ednotes/README47
l---------macros/latex/contrib/ednotes/README-lineno.txt1
l---------macros/latex/contrib/ednotes/README-ncctools.txt1
-rw-r--r--macros/latex/contrib/ednotes/README4U.txt209
-rw-r--r--macros/latex/contrib/ednotes/READMORE.txt230
-rw-r--r--macros/latex/contrib/ednotes/edcntwd0.sty368
l---------macros/latex/contrib/ednotes/ednmath0.sty1
-rw-r--r--macros/latex/contrib/ednotes/ednotes.pdfbin0 -> 254791 bytes
-rw-r--r--macros/latex/contrib/ednotes/ednotes.sty1553
-rw-r--r--macros/latex/contrib/ednotes/ednotes.tex118
-rw-r--r--macros/latex/contrib/ednotes/ednotugb.pdfbin0 -> 261453 bytes
l---------macros/latex/contrib/ednotes/edtable.sty1
-rw-r--r--macros/latex/contrib/ednotes/emathtst.tex53
-rw-r--r--macros/latex/contrib/ednotes/lblchng1.sty260
l---------macros/latex/contrib/ednotes/lineno.pdf1
l---------macros/latex/contrib/ednotes/lineno.sty1
l---------macros/latex/contrib/ednotes/lineno.tex1
l---------macros/latex/contrib/ednotes/lnosuppl.pdf1
l---------macros/latex/contrib/ednotes/ltabptch.sty1
l---------macros/latex/contrib/ednotes/ltabtest.tex1
-rw-r--r--macros/latex/contrib/ednotes/mfparptc.sty208
-rw-r--r--macros/latex/contrib/ednotes/mfparxsp.sty63
-rw-r--r--macros/latex/contrib/ednotes/perpage.sty159
l---------macros/latex/contrib/ednotes/ulineno.pdf1
l---------macros/latex/contrib/ednotes/ulineno.tex1
-rw-r--r--macros/latex/contrib/ednotes/varnrule.tex111
-rw-r--r--macros/latex/contrib/ednotes/visible.txt108
l---------macros/latex/contrib/ednotes/vplref.sty1
30 files changed, 3888 insertions, 0 deletions
diff --git a/macros/latex/contrib/ednotes/CHANGES.txt b/macros/latex/contrib/ednotes/CHANGES.txt
new file mode 100644
index 0000000000..d61018d3fb
--- /dev/null
+++ b/macros/latex/contrib/ednotes/CHANGES.txt
@@ -0,0 +1,261 @@
+CHANGES 2006/10/05 [without CTAN-ann]:
+
+README -> READMORE.txt, new README, CHANGING.txt,
+copy of recent perpage.sty, changes of documentation
+concerning perpage.sty/longtable.sty in the text files
+and in ednotes.sty.
+
+
+CHANGES for UNDERLYING lineno.sty v4.41 2005/11/02:
+
+1. Loadable after amsmath.
+
+2. Removed some nonsense from documentation.
+
+
+CHANGES for UNDERLYING lineno.sty v4.4 2005/10/27:
+[failed to be uploaded to CTAN]:
+
+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, v4.4 should be stable, and the series
+ of bug reports seems to have stopped.
+
+
+CHANGES for UNDERLYING lineno.sty v4.32 2005/10/17:
+ (see lineno.pdf ...)
+
+1. Support for \addvspace
+ (a math display or a list meets a heading -- or the like).
+
+2. Clearly explained former option `displaymath' and its change
+ to a default.
+
+
+CHANGES for ednotes.sty v1.2 and UNDERLYing lineno.sty v4.31
+2005/10/01:
+
+1. ednotes.sty offers \PrecedeLevelWith for visually identifying
+ apparatuses (think of pages where only one of them appears)
+ or for controlling the shape of one or another
+ apparatus paragraph (maybe depending on apparatus).
+ (Requires manyfoot.sty v1.9!)
+
+2. lineno.sty offers \modulolinenumbers* and a package option
+ `modulo*' for printing first line number after interrupting
+ editor's text, regardless of the modulo.
+
+3. To prevent lemma code from working in the apparatus
+ (`fol...', e.g.), ednotes.sty now offers \notinnote
+ (replacing \notthislemma, now without `undefined c...').
+
+4. Improved lineno.sty's explanation of \firstlinenumber and
+ package options.
+
+5. Supplied some hash mark doublings in advice for customizing
+ ednotes.sty .
+
+
+CHANGES for UNDERLYing lineno.sty v4.3 2005/04/28--05/16:
+
+1. Re-implemented modulo mode -- disabling certain users' tricks
+ see lineno.pdf sec. 5.5, also for a still supported
+ substituting trick.
+
+2. Option `displaymath' (proper numbering at paragraphs
+ containing math displays) becomes default.
+
+3. Compatibility with hyperref now indeed (at least much more).
+
+4. Documentation tidied up.
+
+5. Restored "global" version of numbering lines of a \parbox or
+ minipage or ..., explained in documentation (lineno.pdf/dvi
+ subsec. 7.2).
+
+6. Additional internal improvements that perhaps hardly are
+ observable (no more spurious linenumbers in math displays
+ from vertical mode; \flushbuttom with `twocolomnuns' and
+ `switch' etc.; some compatibity with packages that use
+ \holdinginserts; \linelabel in headings etc.).
+
+
+CHANGES for UNDERLYing lineno.sty v4.2 2005/04/26:
+
+1. Re-enabled package option `displaymath' (needed rearrangement
+ after lineno.pdf 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 lineno.pdf
+ sec. 5.3, p. 27).
+
+4. Please note problems with \marginpar, figures, and tables
+ which tameflts.sty deals with -- see ...:
+
+5. Improved compatibility with other packages that change \output
+ (tameflts.sty, e.g., for saving footnotes against \marginpar
+ and floats), added advice on this matter -- see lineno.pdf
+ sec. 2.3, pp. 7, 14f.
+
+
+CHANGE OF EDNOTES BUNDLE 2005/04/09
+
+Due to my (ul) misconception of `nccfoots', unwanted footnote
+marks could occur. This is corrected with v1.12 . (Earlier
+today a package ennccptc.sty appeared, please remove it in case
+you have used it.)
+
+
+CHANGES OF EDNOTES BUNDLE 2005/03/08
+
+This update is mainly concerned with
+1. the number of possible notes,
+2. page break oscillations,
+3. `array' and similar mathematical environments, and with
+4. a hopefully helpful error message; also with
+5. amendments of documentation.
+
+Namely:
+
+1. Reimplementation of `ednotes.sty' with version v1.1, vital
+ for huge editions ("commercial"/"professional" applications):
+ "compression" of note placement data, a single control string
+ instead of three per note stores them. So you can now make
+ three times as many notes as before, regarding the memory
+ compartment for multiletter control strings. -- One user
+ exhausted this by 10.000 notes on 450 pages (recent MiKTeX
+ installation). Now he can go on ... (These note placement
+ data are needed for references in the apparatus.)
+
+ WARNINGs:
+
+ (a) If you have customized or used \repeatref and/or
+ \linewithpage, please read what the section on `customizing'
+ of `ednotes.sty' tells concerning v1.1 (changes were
+ required).
+
+ (b) In case you really use option `countoccurrences' of
+ `ednotes.sty', edcntwd0.sty needs to be updated to v0.31.
+
+2. A checking function has been added for finding startings
+ of page break oscillations. These typically must be fixed
+ for getting correct references to lemmas in the apparatus.
+
+ WARNING: You may recently have noticed `lblchng1.sty' and
+ what it tells about page break oscillations. With ednotes.sty
+ v1.1, `lblchng1.sty' v0.2 is no longer quite correct, please
+ notice v0.32 (if the problem interests or tortures you).
+
+3. The `edtable' option of `ednotes.sty' now supports math
+ environments like `array'. This requires updating edtable.sty
+ to v1.3. (The claim in previous versions of `edtable.sty' 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.
+
+4. \linelabel now complains when appearing outside line
+ numbering mode. This may be useful when you have forgotten to
+ switch into line numbering mode and wonder why all notes
+ refer to line 1. If you don't know about \linelabel: Each
+ note uses it internally, therefore you may profit.
+
+5. The subsection on `edtable' in `lineno.sty/tex/pdf' and its
+ final list of user commands in lineno.sty/tex/pdf were not
+ quite correct or complete -- corrected or somewhat improved.
+ `ednotugb.pdf', which derives from a TUGboat article on the
+ subject, now briefly refers to the memory problem of 1. above
+ and amends the description of `edtable'.
+
+
+CHANGES OF EDNOTES BUNDLE 2005/01/20
+
+1. Thanks to Alexander Rozhenko, you now can download most
+recent "unpacked" versions of manyfoot.sty and nccfoots.sty
+-- no more generating procedure.
+
+2. The README.txt addresses indexing with line numbers.
+
+3. The original TUGboat article `tb77lueck.pdf' has been
+corrected and updated -- resulting in `ednotugb.pdf'.
+
+4. `ednotes.sty' and `ednotugb.pdf' refer to the `ellipsis'
+package concerning spacing with the ellipsis dots.
+
+
+CHANGES OF EDNOTES BUNDLE 2004/10/26
+
+You may find a file README4U.txt that is more detailed than the
+present one and that just addresses changes from 2004/08/23 to
+2004/10/19, especially for earlier users.]
+
+
+CHANGES OF EDNOTES BUNDLE 2004/10/19
+
+1. Module files are now handled by new ednotes.sty options
+`edtable', `longtable', `nolongtablepatch', `edmacpara',
+`countoccurrences', and `mathnotes' (+ `perpage', new module)
+--so they are no longer loaded by explicit \usepackage.
+
+-> UPDATE RECOMMENDATION:
+
+ To support these package options, the following packages
+ were changed, at least concerning instructions.
+
+ edcntwd0.sty
+ ednotes.sty
+ ednmath0.sty
+ edtable.sty
+ lineno.sty
+ mfparptc.sty
+ mfparxsp.sty
+
+ So we recommend that you download these from
+
+ [CTAN]/macros/latex/contrib/ednotes
+
+ and overwrite the earlier versions with them!
+ -- And be sure to have manyfoot.sty v1.7!
+ (See README.txt for how to obtain it.)
+
+ (mfparxsp.sty may even be deleted, see inside or
+ previous change described below. Using new option `perpage',
+ moreover, may require downloading and installing perpage.sty)
+
+lineno.sty climbs to version 4.1, ednotes.sty to 1.0.
+
+2. lineno.tex/pdf has been updated accordingly. A new interim
+version of a TUGboat article (tb77lueck.pdf, same ednotes
+directory) describes the bundle as it appears now. The final
+version of the article will be exhibited at the TUGboat web site.
+
+
+CHANGES OF EDNOTES BUNDLE 2004/09/21
+
+1. With lineno.sty version 4.00 (CTAN folder
+/macros/latex/contrib/lineno), linenox0.sty, linenox1.sty, and
+lnopatch.sty are obsolete. Don't load them any more! lineno.sty
+should produce a reminder for changing your related \usepackage
+commands. For a slight change of \firstlinenumber, see
+lineno.sty/tex/pdf.
+
+2. With manyfoot.sty version 1.7 (CTAN folder
+/macros/latex/contrib/ncctools), mfparxsp.sty is obsolete.
+Please replace \MFparaxbuffer by \ExtraParaSkip and don't load
+mfparxsp.sty any more. For your earlier documents, we offer a
+new version of mfparxsp.sty which just reminds you of the
+change and ("for this time") redirects your \MFparaxbuffer to
+Alex Rozhenko's \ExtraParaSkip. You may delete it right now--or
+when you are sure that you won't anymore compile a .tex
+containing \MFparaxbuffer and \usepackage{mfparaxbuffer}.
+
+
diff --git a/macros/latex/contrib/ednotes/CHANGING.txt b/macros/latex/contrib/ednotes/CHANGING.txt
new file mode 100644
index 0000000000..34baa7dbd8
--- /dev/null
+++ b/macros/latex/contrib/ednotes/CHANGING.txt
@@ -0,0 +1,127 @@
+ =======================================
+ ednotes is CHANGING on and on ...
+
+ October 2006, Uwe Lueck
+ http://www.contact-ednotes.sty.de.vu
+ =======================================
+
+
+ ABSTRACT:
+
+ This file is to draw your attention to the *possibility* that
+ the version of the ednotes bundle that you have received lacks
+ *recent improvements* -- and to how to profit from such
+ improvements. Some improvements under present work or consideration
+ are *listed*.
+
+
+POSSIBLE REASONS:
+
+Maybe you have got the bundle files from a TeX Live CD or DVD
+-- which usually is not updated as often as ednotes is updated.
+Or you have received the files from somewhere else than from CTAN
+or TeX Live. Or you just are not in the mood sufficiently often to
+check whether ednotes has been updated recently. Or the maintainers
+of ednotes have made the improvement privately, yet are not ready to
+send it around at the moment.
+
+Sorry, due to the complexity of ednotes and to our limited resources,
+we really cannot promise that each release or upload of ednotes is
+error-free. (I always do some basic tests of changes, but it is quite
+impossible to test all "possible situations". Sometimes a foolish typo
+shows up only in a very special situation.) A "recent improvement"
+(as I called it) thus may just be a correction of recently introduced
+errors, having been uploaded to CTAN shortly after the (bad) files
+that you have received were collected.
+
+Or better: in working with ednotes, you may discover possibilities
+to increase its functionality. Indeed, we sometimes get such ideas in
+using the bundle ourselves. Please report problems you encounter with
+ednotes via the above URL, as well as suggestions for new ednotes
+features. (Again however, we may be unable to follow such a suggestion
+immediately/soon.) -- We receive such problem reports and suggestions
+every few weeks or months and usually try to account for them;
+so you might profit from recognizing such developments -- more often
+than (say) once a year.
+
+
+RECEIVE UPDATE-ALERTS BY E-MAIL:
+
+After subscribing to the mailing list for CTAN announcements
+
+ https://lists.dante.de/mailman/listinfo/ctan-ann
+
+you will be automatically informed when an update of the ednotes
+bundle has been uploaded to CTAN -- the Comprehensive TeX Archive
+Network. Of course you will be informed about uploads and updates
+of many other packages than ednotes -- and this is a nice, little
+time-consuming way of being informed what macro and font packages
+etc. there are.
+
+Moreover, I maintain a newsletter about ednotes to which you can
+subscribe via the URL above below the title of the present file.
+I usually inform the subscribers when new ednotes files have been
+installed on CTAN. Sometimes I write a little more in the newsletter
+than what is announced on the CTAN announcements mailing list.
+
+
+TO UPDATE:
+
+For the most basic way, you can download the most recent public
+version of the ednotes bundle by downloading the
+
+ http://tug.ctan.org/tex-archive/macros/latex/contrib/ednotes
+
+subdirectory of CTAN. You may know or learn about substituting
+"tug.ctan.org/tex-archive" appropriately to address a nearby CTAN
+mirror -- indeed when you try the previous, you may be offered URLs
+of several CTAN mirrors out of which you can choose your favourite
+mirror for the future. The downloading procedures that the mirrors
+offer may slightly differ, but it's easy nowadays anyway. You may
+better leave "ednotes" away in the previous URL and just look for
+"ednotes" in the "contrib" subdirectory. -- The README that should
+have come along with your copy of the ednotes bundle should direct
+you how to properly install the new packages on your machine.
+
+For Windows, there is the
+
+ http://ctan.tug.org/tex-archive/systems/win32/miktex/
+
+distribution; cf.
+
+ http://texcatalogue.sarovar.org/entries/miktex.html
+ http://tug.ctan.org/cgi-bin/ctanPackageInformation.py?id=miktex
+
+-- which includes an updating manager that makes updating very easy.
+
+Note that a recent version of ednotes may need updating other
+packages, cf. `READMORE.txt'.
+
+
+PLANNED IMPROVEMENTS:
+
+* \multicolumn in tables/arrays presents a problem to ednotes, a
+ first solution to which just has been prepared; I am pondering how
+ to implement a more comfortable way to deal with the problem.
+ Another improvement with tables/arrays is near.
+
+* More substantially: The bigfoot package by David Kastrup has
+ appeared on CTAN:
+
+ http://tug.ctan.org/tex-archive/macros/latex/contrib/bigfoot
+
+ -- it very much improves the performance of the manyfoot package
+ that underlies ednotes. Something (perhaps?) must be added to
+ ednotes in order to use bigfoot.
+
+* Recently I discovered that Peter Wilson's memoir class
+
+ http://tug.ctan.org/tex-archive/macros/latex/contrib/memoir
+
+ -- that many people use to have more flexibility than with the
+ Standard LaTeX classes -- offers footnote facilities that are
+ similar to those of manyfoot and bigfoot. It should be easy
+ to offer an option to use ednotes with memoir without using
+ manyfoot or bigfoot.
+
+
diff --git a/macros/latex/contrib/ednotes/README b/macros/latex/contrib/ednotes/README
new file mode 100644
index 0000000000..57326615da
--- /dev/null
+++ b/macros/latex/contrib/ednotes/README
@@ -0,0 +1,47 @@
+EDNOTES.STY -- typesetting scholarly critical editions with LaTeX
+ -- (C) Uwe Lueck, dir. Christian Tapp 2003--2006
+
+Scholarly critical editions:
+ -- line numbers are printed in the margin;
+ -- you refer to them in one or two footnote layers or more.
+
+Visit http://ednotes.sty.de.vu for learning more about the matter.
+
+The present file `README' refers to the content of the CTAN
+subdirectory /macros/latex/contrib/ednotes/.
+
+The files contained in the same subdirectory are subject to the
+LaTeX Project Public License -- see
+
+ http://www.ctan.org/tex-archive/help/Catalogue/licenses.lppl.html
+
+ For COPYRIGHTs as well as conditions of use (NO WARRANTY),
+ MODIFYING, and (RE)DISTRIBUTION, please see inside the files
+ mentioned in the present `READMORE.txt' file, as well as
+ `README-lineno.txt' and `README-ncctools.txt'. Usually, the LaTeX
+ Project Public License applies, a recent version of which can be
+ found on
+
+ http://www.latex-project.org/lppl.txt
+
+ Any REDISTRIBUTION of `ednotes.sty' must contain the present
+ `README' file.
+
+ If you DISTRIBUTE `manyfoot.sty' and `nccfoots.sty', they must be
+ accompanied by `manyfoot.dtx', `nccfoots.dtx', and
+ `README-ncctools.txt'.
+
+For additional informations (installing; other kinds of usage ...),
+please see READMORE.txt next.
+
+-- Most notably: Packages lineno.sty, manyfoot.sty, nccfoots.sty
+are required, to be found in CTAN subdirectories
+
+ /macros/latex/contrib/lineno/
+ /macros/latex/contrib/ncctools/
+
+or maybe in another subdirectory of /macros/latex/contrib/
+(enter `manyfoot' to http://tug.ctan.org/search.html).
+With TeXLive, /ncctools/ is in collection-latexextra.
+
+-- UL, 2006/10/05
diff --git a/macros/latex/contrib/ednotes/README-lineno.txt b/macros/latex/contrib/ednotes/README-lineno.txt
new file mode 120000
index 0000000000..221ce513c3
--- /dev/null
+++ b/macros/latex/contrib/ednotes/README-lineno.txt
@@ -0,0 +1 @@
+../lineno/README.txt \ No newline at end of file
diff --git a/macros/latex/contrib/ednotes/README-ncctools.txt b/macros/latex/contrib/ednotes/README-ncctools.txt
new file mode 120000
index 0000000000..72801284d4
--- /dev/null
+++ b/macros/latex/contrib/ednotes/README-ncctools.txt
@@ -0,0 +1 @@
+../ncctools/README \ No newline at end of file
diff --git a/macros/latex/contrib/ednotes/README4U.txt b/macros/latex/contrib/ednotes/README4U.txt
new file mode 100644
index 0000000000..93d3552a42
--- /dev/null
+++ b/macros/latex/contrib/ednotes/README4U.txt
@@ -0,0 +1,209 @@
+README4U:
+
+******************************************************************
+*** ***
+*** Changes from ednotes.sty v0.64 to v1.0 ***
+*** ***
+*** (Uwe Lueck, 2004/10/21) ***
+*** ***
+******************************************************************
+
+
+
+* SUMMARY: *
+
+ Since August 2004, the number of bundle files has been reduced.
+ Many of the remaining files have changed, some essentially,
+ others with respect to usage instructions. We explain how to
+ update your Ednotes installation accordingly. Optional
+ "patches", enhancements etc. that earlier had to be called by
+ loading separate files explicitly (mandatory arguments of
+ \usepackage) are now called by ednotes.sty package options
+ (optional arguments in \usepackage[<opt>]{ednotes}). New PDF
+ documentations/instructions have appeared.
+
+
+* Contents of this file: *
+
+ LN/MF_edn.zip -- ednotes/lineno/manyfoot/further changes --
+ updating procedure -- new documentations
+
+
+* Some files you may have received: *
+
+ You may have received (by e-mail from us, e.g.) a distribution
+ containing files
+
+ LN_edn.zip
+ MF_edn.zip
+
+ They serve two purposes:
+
+ 1. They contain the files README and CHANGES that reside in the
+ CTAN directories `[...]/lineno' and `[...]/ncctools' (from
+ which manyfoot.sty stems). In order to avoid that README and
+ CHANGES files overwrite each other, unzip them into separate
+ directories, and into another one than the README file (for
+ ednotes.sty) that you should have received as a plain text
+ file.
+
+ 2. LEGAL, IMPORTANT:
+
+ The files README, manyfoot.dtx, and nccfoots.dtx contained in
+ MF_edn.zip are, by their copyright holder Alexander Rozhenko,
+ demanded to ACCOMPANY any (re)DISTRIBUTION of manyfoot.sty
+ and nccfoots.sty!
+
+
+* ednotes.sty changes: *
+
+ 1. ednotes.sty version 1.0 has new package options `edtable',
+ `longtable', `nolongtablepatch', `edmacpara',
+ `countoccurrences', and `mathnotes' for handling "patch" or
+ enhancement etc. files. None of these files should be loaded
+ through the mandatory argument of \usepackage any more. E.g.,
+ instead of \usepackage{edtable}, you now type
+
+ \usepackage[edtable,<further options>]{ednotes} .
+
+ (So -- one advantage aimed at -- you must no longer worry
+ about the correct order of loading extension packages.)
+
+ 2. The above-mentioned option `nolongtablepatch' changes earlier
+ behaviour with respect to our longtable.sty patch file
+ ltabptch.sty, in avoiding an error message that otherwise
+ appears when ltabptch.sty is not present. This is convenient
+ when you deliberately want to avoid the patch. The error
+ message ensures that vertical spacing around a "longtable"
+ does not depend on the local TeX installation -- e.g., when
+ you send your source to a journal.
+
+ 3. ednotes.sty has a new option `perpage' for making use of the
+ manyfoot.sty option `perpage' -- just see the Manyfoot
+ documentation for what it does. It requires perpage.sty,
+ which is available from [CTAN]/macros/latex/contrib/misc.
+
+
+* lineno.sty changes: *
+
+ 1. The new version 4.1 of lineno.sty makes former extension
+ files linenox0.sty, linenox1.sty, and lnopatch.sty obsolete.
+ Don't load them any more! (We have installed a reminder for
+ the case that you don't obey this rule.)
+
+ 2. \firstlinenumber has slightly changed from its earlier
+ behaviour given by lnopatch.sty. See lineno.sty/tex/pdf.
+
+
+* manyfoot.sty changes: *
+
+ The new version 1.7 of manyfoot.sty provides a command
+ \ExtraParaSkip to replace our earlier \MFparaxbuffer.
+ (See the new ednotes.sty documentation to recall
+ \MFparaxbuffer -- search for `\ExtraParaSkip', e.g.)
+ This makes former extension file mfparxsp.sty obsolete.
+ Please replace \MFparaxbuffer by \ExtraParaSkip and don't
+ load mfparxsp.sty any more! For your earlier documents that
+ contain \usepackage{mfparxsp}, we offer a new version of
+ mfparxsp.sty which just reminds you of the change and
+ ("for this time") redirects your \MFparaxbuffer to
+ \ExtraParaSkip. You may as well just delete your copy of
+ mfparxsp.sty, if you are sure, e.g., that you won't anymore
+ compile a .tex containing \MFparaxbuffer and
+ \usepackage{mfparaxbuffer}.
+
+
+* Further corresponding changes: *
+
+ Extension files that still are used -- now required by the new
+ ednotes.sty package options -- have been changed at least with
+ respect to explanations that they contain.
+
+
+* UPDATING: *
+
+ 1. (Mandatory:) overwrite your copies of
+
+ edcntwd0.sty
+ ednmath0.sty
+ ednotes.sty
+ edtable.sty
+ lineno.sty
+ manyfoot.sty
+ mfparptc.sty
+
+ with the new versions.
+
+ 2. Overwrite
+
+ mfparxsp.sty
+
+ by our new "reminder" version, or just remove it from TeX's
+ searching scope -- as you like, recall `manyfoot.sty changes'
+ avove.
+
+ 3. You may remove (from TeX's searching scope) linenox0.sty,
+ linenox1.sty, lnopatch.sty -- but they won't harm otherwise;
+ you will get an error message if you load one of them
+ inadvertently.
+
+
+* New documentation/instructions: *
+
+ 1. An article on ednotes.sty is appearing in TUGboat vol. 24.
+ It describes the main commands and functions of Ednotes.
+ Moreover, it compares Ednotes to EDMAC and LEDMAC, two other
+ TeX macro packages for critical edition typesetting.
+ We provide a version of the article very near to the final
+ one as
+
+ tb77lueck.pdf .
+
+ (it is definitively not the final version.)
+
+ 2. The README for ednotes.sty has been rewritten very much and
+ may yield new insights. Detailed explanations addressing
+ non-TeXperts have been added.
+
+ 3. lineno.tex has been updated according to the changes of
+ lineno.sty, of course. A pdflatex outcome
+
+ lineno.pdf
+
+ is available ([CTAN]/macros/latex/contrib/lineno/lineno.pdf).
+
+ A pdflatex outcome
+
+ ulineno.pdf
+
+ of the user's guide ulineno.tex is available as well.
+ It only deals with lineno.sty version 3.1, but will though
+ be helpful (I think).
+
+ Recall that lineno.sty offers many commands to control the
+ style of the marginal line numbers, so its documentation is
+ an essential contribution to ednotes.sty documentation.
+
+ 4. Version 1.7 of manyfoot.sty is generated from the
+ corresponding version of
+
+ manyfoot.dtx
+
+ which is the TeX source for the documentation of
+ manyfoot.sty. Recently, the pdflatex output
+
+ manyfoot.pdf
+
+ has been added to CTAN directory ncctools. These two files
+ may be less essential for ednotes.sty users than
+ (u)lineno.tex/pdf. However, manyfoot.sty offers features
+ that you may find interesting: (i) customize rules between
+ footnote layers; (ii) \SplitNote (for paragraphed footnotes
+ at page breaks). (For nccfoots.sty, which manyfoot.sty
+ requires, there are nccfoots.dtx/pdf as well.)
+
+
+Good Luck!
+
+
+[End of README4U]
diff --git a/macros/latex/contrib/ednotes/READMORE.txt b/macros/latex/contrib/ednotes/READMORE.txt
new file mode 100644
index 0000000000..340c8b2168
--- /dev/null
+++ b/macros/latex/contrib/ednotes/READMORE.txt
@@ -0,0 +1,230 @@
+====================+=====+=======++=======+=====+====================
+
+ FIRST INSTRUCTIONS
+ for
+ EDNOTES
+ Distribution 2006
+ (this file October 5, 2006)
+
+ Uwe Lueck, dir. Christian Tapp
+ http://www.contact-ednotes.sty.de.vu
+
+====================+=====+=======++=======+=====+====================
+
+CONTENTs of the present file:
+
+ Purpose -- recent (future) changes -- RIGHTS -- installing `ednotes'
+ -- learning about `ednotes' -- standalone packages -- contact us --
+ newsletter -- glossary
+
+PURPOSE of the macros:
+
+ Here are macros for typesetting CRITICAL EDITIONS with LaTeX.
+ Packages `lineno' by Stephan I. B"ottcher, `manyfoot' by Alexander
+ I. Rozhenko, and `longtable' by David Carlisle are enhanced and
+ combined. -- For a few first informations, you may have a look at
+ http://ednotes.sty.de.vu.
+
+** RECENT (FUTURE) CHANGES: **
+
+ If you have used `ednotes' earlier than September 2004, we urge you
+ to read the `CHANGES' file in the `ednotes' directory, especially
+ concerning the changes of September/October 2004. `ednotes',
+ `lineno', and `manyfoot' have been changed at one time and interact
+ differently than before. Some files have been removed, and former
+ extension packages are now automatically loaded on `ednotes' package
+ options. -- Other changes have happened more recently, most notably
+ in `manyfoot' and `nccfoots'. In general, you should find a LaTeX
+ warning on screen or in your job.log like
+
+ You have requested ... version ... of ...
+ but only version ... is available
+
+ telling what other packages need to be updated.
+
+ `CHANGING.txt' deals with the possibility that you haven't got the
+ most recent version of `ednotes' and friends.
+
+RIGHTs:
+
+ For COPYRIGHTs as well as conditions of use (NO WARRANTY),
+ MODIFYING, and (RE)DISTRIBUTION, please see inside the files
+ mentioned in the present `README' file, as well as
+ `README-lineno.txt' and `README-ncctools.txt'. Usually, the LaTeX
+ Project Public License applies, a recent version of which can be
+ found on
+
+ http://www.latex-project.org/lppl.txt
+
+ Any REDISTRIBUTION of `ednotes.sty' must contain the file `README'.
+
+ If you DISTRIBUTE `manyfoot.sty' and `nccfoots.sty', they must be
+ accompanied by `manyfoot.dtx', `nccfoots.dtx', and
+ `README-ncctools.txt'.
+
+INSTALLATION of `ednotes':
+
+ For enabling yourself to make use of all the options that
+ `ednotes' provides, download
+
+ edcntwd0.sty
+ ednmath0.sty
+ ednotes.sty
+ edtable.sty
+ lineno.sty
+ ltabptch.sty
+ manyfoot.sty
+ mfparptc.sty
+ perpage.sty
+ nccfoots.sty
+ vplref.sty
+
+ from
+
+ http://www.ctan.org/tex-archive/macros/latex/contrib/ednotes
+
+ (e.g., cf. `CTAN' in the glossary). Note that clicking on
+ "entire directory" suffices.
+
+ You then have to make the .sty files listed above "visible"
+ (see the glossary below) to (La)TeX when it runs your job.
+
+ (You may find out through reading documentations that it partially
+ depends on your intentions which .sty files actually must be there.
+ E.g., `ednotes.sty' works already when it is accompanied by
+ `lineno.sty', `manyfoot.sty', and `nccfoots.sty'.)
+
+USAGE of `ednotes':
+
+ We recommend not to load (by \usepackage) .sty files other than
+ `ednotes.sty' (except for "standalone uses" as explained below).
+ They are handled through `ednotes' package options as explained
+ in the documentation.
+
+ Sorry, the "user guide" and documentation for `ednotes' is, at
+ present, scattered over the listed .sty files and over the listed
+ CTAN folders. Here is just a guide through files and folders to
+ increase your knowledge step by step:
+
+ 0. Oh, recently some of these explanations have been collected
+ in ednotes.pdf -- .txt input with .pdf output.
+
+ 1. An overview of `ednotes' has appeared in TUGboat vol. 24.
+ no. 2; the above `ednotes' directory of CTAN contains an
+ updated .pdf version `ednotugb.pdf' of it. It demonstrates
+ through some examples what output certain commands produce.
+ It also compares `ednotes' with two other (La)TeX packages
+ for critical edition typesetting.
+
+ 2. Next (or even first) we recommend reading the explanations at
+ the beginning of `ednotes.sty'.
+
+ 3. You may find references to .sty files from the `ednotes' and
+ the `lineno' folder for reading about additional details of
+ usage.
+
+ 4. `lineno.sty' provides commands and options that are very useful
+ to know for creating critical editions by `ednotes'. You can
+ read about these commands and options in `lineno.sty'.
+ Moreover, the explanations from `lineno.sty' can be printed
+ through `lineno.tex' or `lineno.pdf' obtainable from the above
+ `ednotes' directory. You find there as well an attempt at a
+ user's guide for `lineno' -- `ulineno.tex' and `ulineno.pdf'.
+ The latter is not quite up to date, but it may be helpful
+ though. -- When you use `ednotes', don't believe what the
+ `lineno' documentation tells about, e.g.,
+
+ \usepackage[edtable]{lineno}
+
+ (such statements address usage of `lineno' without `ednotes').
+ Many package options of `ednotes.sty' are just passed to
+ `lineno.sty', so the `lineno' documentation is `ednotes'
+ documentation in this respect.
+
+ 5. `manyfoot' is another essential module for making `ednotes'
+ work, though you may hardly need to know about it, `ednotes'
+ is a kind of user interface for `manyfoot'. However, you may
+ inform yourself about offers of `manyfoot' for certain fine
+ points of critical edition typesetting through `manyfoot.dtx'
+ or `manyfoot.pdf' -- which you find in
+
+ http://www.ctan.org/tex-archive/macros/latex/contrib/ncctools
+
+ (e.g., cf. `CTAN' in the glossary). There are `nccfoots.dtx'
+ and `nccfoots.pdf' as well. Indeed you may find functions of
+ `manyfoot' useful just for your commentary passages.
+
+ 6. `perpage.sty' is mentioned here mainly to allow use of
+ `manyfoot's `perpage' option. It contains brief explanations.
+
+ 7. `longtable', of course, is explained in `longtable.dtx' and
+ various guides for LaTeX.
+
+ 8. We have prepared something for listing line numbers for index
+ terms. We don't take the time to integrate it here -- please
+ contact us (see below) if you are interested.
+
+Standalone files:
+
+ Some of the listed .sty files which are our work may be useful
+ without using `ednotes':
+
+ 1. Whenever you use `manyfoot', you can load `mfparptc.sty' after
+ `manyfoot.sty' just to modify the behaviour of `manyfoot' in
+ the way that is explained in `mfparptc.sty'.
+
+ Moreover, there is a file `mfparxsp.sty', made for the
+ possibility that some `manyfoot' user has used an earlier
+ version of `mfparxsp.sty' which has become obsolete.
+
+ 2. For extending lineno.sty by packages from here, see
+
+ http://www.ctan.org/tex-archive/macros/latex/contrib/lineno
+
+ (e.g., cf. `CTAN' in the glossary).
+
+ 3. `ltabptch.sty', a patch for `longtable', can be used whenever
+ `longtable' is used.
+
+ 4. An additional file `lblchng1.sty' deals with page break
+ oscillations, by code as well as by explanations and
+ discussion. It can be used entirely independently from
+ any of the packages mentioned before.
+
+Contact us:
+
+ We would be happy about your suggestions and (in a way) about your
+ bug reports. Since documentation is so poor at present, please feel
+ free to ask us for help if needed. Please contact us via
+
+ http://www.contact-ednotes.sty.de.vu
+
+Newsletter:
+
+ E.g., you may ask us to take your e-mail address into a mailing
+ list for reporting `ednotes' changes.
+
+Lucky typesetting!
+
+______________________________________________________________________
+
+GLOSSARY:
+
+* `CTAN'
+ abbreviates `Comprehensive TeX Archive Network', cf., e.g.,
+
+ http://www.ctan.org
+ http://tug.org/ctan.html
+
+ and read about "mirrors" there. You will understand that you
+ may replace `www.ctan.org/tex-archive' by `www.dante.de/CTAN'
+ (e.g.) in the above-mentioned URL. (But dante doesn't offer
+ the "entire directory" function.)
+
+
+* visible to (La)TeX
+
+ -- see the file `visible.txt' in the above `ednotes' directory.
+
+[END of READMORE.txt]_________________________________________________
+
diff --git a/macros/latex/contrib/ednotes/edcntwd0.sty b/macros/latex/contrib/ednotes/edcntwd0.sty
new file mode 100644
index 0000000000..1d20e3a84f
--- /dev/null
+++ b/macros/latex/contrib/ednotes/edcntwd0.sty
@@ -0,0 +1,368 @@
+%% EdCntWd0.sty--count word occurrences with ednotes.sty.
+\def\fileversion{0.32d} \def\filedate{2006/07/06} %% TODO
+
+%% Copyright (C) 2004 Uwe L\"uck & Christian Tapp (direction)
+%% 2005 2006 Uwe L\"uck.
+%% Munich, http://www.contact-ednotes.sty.de.vu.
+%% Current maintainer is Uwe L\"uck.
+
+%% 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.3c of the License, or any later version.
+%% We did our best to help you, but there is NO WARRANTY.
+
+%% * USAGE: *
+%%
+% 1.) The present file is loaded by the `countoccurrences' package
+% option of version v0.8 (onwards) of `ednotes.sty'.
+%%
+% 2.) If your source code somewhere contains
+% <WORD><TEXT>\Anote{<WORD>}{<NOTE>}
+% and produces some
+% <WORD><TEXT><WORD>
+% in *one* printed line, the lemma preceding the note should indicate
+% that the note is concerned with the *second* occurrence of <WORD>.
+% It would be extremly tedious to implement this requirement in a
+% LaTeX macro package. The present package does some part of it.
+% If you are, in typing, not sure that the first and second
+% occurrence of <WORD> will be printed in different lines, type
+% \countword{<WORD>}<TEXT>\Anote{\countword{<WORD>}}{<NOTE>}
+% The macro \countword will then check whether the occurrences of
+% <WORD> are printed in the same line, and if this happens, the lemma
+% preceding the note will have an index `2'. The analogous thing
+% <WORD><TEXT><WORD><MORE>\Anote{<WORD>}{<NOTE>}
+% works as well (resulting in an index `3'), and so on.
+%
+% (So the macros do not save you from looking for earlier word
+% occurrences, but at least from counting occurrences in the printed
+% lines, and you do not have to repeat the procedure when you
+% change the width of the printed text.)
+%
+% Of course, you only have to look for earlier occurrences in the
+% same paragraph.
+%%
+% 3.) Sometimes <WORD> may contain tokens which must not appear in
+% label names, e.g., `r\^ole'. In this case, e.g., \countword{r\^ole}
+% will break. Then type, e.g., \countword[role]{r\^ole} instead.
+% To be more precise: If <WORD> expands to something containing
+% a token which is no character token, type
+% \countword[<SUBST>]{<WORD>} instead, where <SUBST> expands to
+% nothing but character tokens. (Cf. \csname on p. 203 of TeXbook.)
+% 4.) Customization: Index numbers appear as subscripts by default.
+% To change this, type
+% \renewcommand{\CWtextscript}{\textsuperscript}
+% or \let\CWtextscript\textsuperscript .
+% 5.) Pagewise/running line numbering: Switching from pagewise to
+% running line numbering needs an extra run or deletion of
+% \jobname.aux. So don't be frightened by an error message.
+
+%% Please send comments via http://www.contact-ednotes.sty.de.vu.
+
+%% For wizards: changes lineno.sty's \linenumberpar.
+
+\NeedsTeXFormat{LaTeX2e}[1994/12/01]
+%% <- \newcommand*, \providecommand*
+\ProvidesPackage{edcntwd0}[\filedate\space\fileversion\space
+ ^^JCounting word occurrences with
+ ednotes.sty (ul)]
+
+%% * IMPLEMENTATION: * %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%
+%% * Main ideas: *
+% \countword occurrences write their order (per paragraph) and line
+% numbers into the .aux-file. With these informations from the
+% latter, a table is created which assigns line and place
+% numbers to words. A second table re-orders the first one and
+% assigns an index to each place number. An index of 0 means that the
+% corresponding word appears only once in a line. A higher index
+% tells the order in which an occurrence follows others in the line.
+% When processed for the lemma tag, \countword realizes its place
+% number and, using this, reads the index from the former table and
+% prints or does not print an index accordingly.
+
+% \RequirePackage{ednotes}[2004/01/04]
+%% Does this work for mere version checking?
+%% No--had the problem with edtable. See LaTeX bug latex/3730.
+
+% Auxiliaries:
+\def\@CW@stepcnt#1{\advance#1\@ne}
+\def\@CW@emptylist{\@eltt} %% Need bound for table rows.
+% \newif\if@CW@firstinpar \global\@CW@firstinpartrue %% !
+
+% \c@CW@par identifies paragraphs which contain \countword.
+% From v0.32a onwards, it is kind of a LaTeX counter in order
+% to work properly with \includeonly:
+\newcount\c@CW@par
+\@addtoreset{CW@par}{@ckpt}
+
+% \@CW@wordlist is made a list of \countword-arguments in one
+% paragraph, to be written to the .aux .
+\global\let\@CW@wordlist\@empty
+
+% At the first occurrence of \countword in a paragraph,
+% \@CW@makeplaceindex reads the corresponding \@CW@wordlist
+% and transforms it into \@CW@wordlinelist -- if it has been
+% written in the previous run. Whether the latter is the case
+% is recorded by \if@CW@pardef.
+\global\let\@CW@make@placindexlist\@CW@makeplaceindexlist
+\newif\if@CW@pardef \global\@CW@pardeffalse
+\global\let\@CW@wordlinelist\@CW@emptylist
+% When there is evidence that there are more occurrences of
+% \countword than in the previous run:
+\def\@CW@missingdata{\G@refundefinedtrue
+ \@EN@warning{Missing data (.aux) for
+ \string\countword\MessageBreak}%
+%Package ednotes Warning: Missing data (.aux) for \countword
+%on inputline
+ \CWtextscript?}
+%% <- TODO: warning when some \countword has been removed!?
+
+\def\@CW@makeplaceindexlist{%
+ \global\let\@CW@make@placeindexlist\relax
+ \stepcounter{CW@par}% % v0.32a
+% \global\@CW@stepcnt\c@CW@par
+ \@ifundefined{CWp\romannumeral\c@CW@par}%
+% {\G@refundefinedtrue \global\@CW@pardeffalse}%
+ {\global\@CW@pardeffalse}%
+ {%
+ \global\@CW@pardeftrue
+% \global\let\@CW@wordlinelist\@CW@emptylist
+%% \@CW@wordlinelist is built as a "table", each row being
+%% <WORD>\@elt<LINENO>\@elt<PLACENO>\@eltt
+%% --and there is an extra leading \@eltt.
+%% Latter needed for determining exact matching.
+% \global\let\@CW@placeindexlist\@CW@emptylist
+ \begingroup
+ \count@\z@ \let\@elt\relax \let\@eltt\relax
+ \edef\@tempa{\noexpand\@tfor \noexpand\@tempa :=%
+ \csname CWp\romannumeral\c@CW@par\endcsname}%
+ \@tempa\do{%
+ \@CW@stepcnt\count@
+ \edef\@tempc{r@CWw@\number\c@CW@par @\number\count@}%
+%% 2004/07/27: hack for pagewise line numbering:
+ \expandafter \@ifundefined \expandafter{\@tempc}%
+ {\gdef\@gtempa{?}}%% \global: cf. below!
+ {\ifx\c@linenumber\c@runninglinenumber
+ \gdef\@gtempa{%
+ \expandafter\expandafter\expandafter \@car
+%% Beware hyperref.
+ \csname\@tempc\endcsname \@nil}%
+ \else
+ \begingroup
+ \def\thelinenumber{%
+ \xdef\@gtempa{\number\c@linenumber}}%
+%% Assumes \getpagewisenumber -> {... \thelinenumber}
+%% Local vs. global assignments to \c@linenumber OK according to
+%% Stephan. (!?)
+ \expandafter\expandafter\expandafter \@car
+ \csname\@tempc\endcsname \@nil
+ \endgroup
+ \fi}%
+% \typeout{G:\meaning\@gtempa}% TEST
+ \edef\@tempb{%
+ \noexpand\g@addto@macro \noexpand\@CW@wordlinelist{%
+ \@tempa \@elt
+ \@gtempa
+% \expandafter \@ifundefined \expandafter{\@tempc}{?}%
+% {\expandafter\expandafter\expandafter \@car
+% \csname\@tempc\endcsname \@nil}%
+ \@elt
+ \number\count@ \@eltt}}%
+ \@tempb}%
+%% TODO: empty referring macros after use -> ednotes as well.
+ \xdef\@CW@numberofwords{\number\count@}%
+%% \@CW@wordlinelist next is transformed into \@CW@placeindexlist:
+ \loop
+% \typeout{WL=\meaning\@CW@wordlinelist}%% TEST
+ \ifx\@CW@wordlinelist\@CW@emptylist \else
+ \global\let\@CW@nextwordlinelist\@empty
+ \expandafter\@CW@takerow\@CW@wordlinelist\@nil
+ \ifx\@CW@nextwordlinelist\@empty
+ \global\let\@CW@wordlinelist\@CW@emptylist
+ \else
+ \global\let\@CW@wordlinelist\@CW@nextwordlinelist
+ \fi
+ \repeat
+ \endgroup
+ }%
+% \typeout{PI=\meaning\@CW@placeindexlist}%% TEST
+% \global\let\countword\@CW@cntwii
+% \@CW@cntwii
+}
+%% \@CW@placeindexlist has, after starting \@eltt, rows of form
+%% <PLACE>\@elt<INDEX>\@eltt .
+\global\let\@CW@placeindexlist\@CW@emptylist
+
+\def\@CW@takerow\@eltt#1\@elt#2\@elt#3\@eltt#4\@nil{%
+ \count@\@ne
+ \g@addto@macro\@CW@placeindexlist{#3\@elt}%
+%% \@CW@placeindexlist always closes with mostly spurios
+%% 0\@eltt, don't know why, but harmless for reading the list.
+ \def\@CW@matchline##1\@eltt#1\@elt#2\@elt##2\@eltt##3\@nil{%
+% \typeout{WL=\meaning\@CW@wordlinelist}%% TEST
+ \def\@tempa{##1}%
+% \typeout{##1}%% TEST
+ \ifx\@tempa\@CW@emptylist
+ \g@addto@macro\@CW@placeindexlist{0\@eltt}%
+ \else
+ %% \@tempcnta determines one out of four cases,
+ %% while \count@ counts equal words in a line:
+ \@tempcnta \ifnum\count@=\@ne \z@ \else \tw@ \fi
+ \ifx\@nnil##2\@nnil %% No match.
+ \let\@CW@next\relax
+ \else %% Match.
+ \@CW@stepcnt\@tempcnta \@CW@stepcnt\count@
+ \@CW@buildnextwordlinelist{##1}%
+ \def\@CW@next{\@CW@matchline\@eltt##3\@nil}%
+ \fi
+ %% Cases determined.
+% \typeout{\number\@tempcnta}%% TEST
+ \ifcase\@tempcnta %% \typeout{Case 0: \count@=1, no match}%
+ \g@addto@macro\@CW@placeindexlist{0\@eltt}%
+ \xdef\@CW@nextwordlinelist{\@eltt#4}%
+ \or %% \typeout{Case 1: \count@=1, match}%
+ \g@addto@macro\@CW@placeindexlist{1\@eltt##2\@elt2\@eltt}%
+ \or %% \typeout{Case 2: \count@>1, no match}%
+ \@CW@buildnextwordlinelist{##1}%
+ \or %% \typeout{Case 3: \count@>1, match}%
+ \edef\@tempc{\noexpand\g@addto@macro \noexpand\@CW@placeindexlist
+ {##2\@elt \number\count@ \@eltt}}%
+ \@tempc
+ \fi
+ \@CW@next
+ \fi
+ }%
+ \@CW@matchline\@eltt#4\@eltt#1\@elt#2\@elt\@eltt\@nil
+ %% TODO #4 void!? Cf. dummy above, \@CW@next.
+}
+%% \@CW@buildnextwordlinelist{#1} appends non-void #1 to
+%% \@CW@nextwordlinelist:
+\def\@CW@buildnextwordlinelist#1{%
+ \ifx\@nnil#1\@nnil \else
+ \g@addto@macro\@CW@nextwordlinelist{\@eltt#1}\fi}
+
+% \c@CW@repword counts occurrences of \countword in a paragraph:
+\newcount\c@CW@repword
+
+\newcommand*\countword[2][\@nil]{%
+% \newcommand*\@CW@cntwii[2][\@nil]{%
+% \global\@CW@firstinparfalse
+ \@CW@make@placeindexlist
+ \global\@CW@stepcnt\c@CW@repword
+ \def\@tempa{#1}%
+ \ifx\@tempa\@nnil
+ \g@addto@macro\@CW@wordlist{{#2}}%
+ \else
+ \g@addto@macro\@CW@wordlist{{#1}}%
+ \fi
+ \edef\@tempa{\noexpand\linelabel{%
+ CWw@\number\c@CW@par @\number\c@CW@repword}}%
+ \@tempa
+ #2}
+
+% \@ifdefinable\countword{\global\let\countword\@CW@cntwi}
+
+% In the lemma tag of the note, \countword behaves as follows.
+\addlemmaexpands{\let\countword\@CW@cntwl
+ \global\c@CW@nrepword\c@CW@repword}
+\newcount\c@CW@nrepword
+
+\newcommand*\@CW@cntwl[2][]{%% First argument just gobbled,
+%% using place number instead.
+ #2%
+ \@CW@make@placeindexlist
+ \if@CW@pardef
+ \global\@CW@stepcnt\c@CW@nrepword
+ \ifnum\c@CW@repword>\@CW@numberofwords\relax
+ \@CW@missingdata
+ \else
+ \edef\@tempc{%
+ \def\noexpand\@tempb####1\noexpand\@eltt
+ \number\c@CW@nrepword}%
+ %% "look up".
+ \@tempc \@elt##2\@eltt##3\@nil{\def\@tempa{##2}}%
+ \expandafter\@tempb \@CW@placeindexlist \@nil
+ \if 0\@tempa \else
+% \CWtextscript{\if ?\@tempa ?\else \@tempa \fi}%
+ \if ?\@tempa \@CW@missingdata
+ \else \CWtextscript\@tempa \fi
+ \fi
+ \fi
+ \else
+%% \if@CW@pardef and the question marks could have been given up,
+%% since there is already the `undefined references' warning.
+% \if@CW@firstinpar \CWtextscript 1\else \CWtextscript ?\fi
+% \CWtextscript?%
+ \@CW@missingdata
+ \fi}
+\providecommand*\textsubscript[1]{%
+%% Cf. LaTeX \textsuperscript: we will be in a note here!
+ $\m@th_{\mbox{\fontsize\sf@size\z@\selectfont#1}}$}
+\let\CWtextscript\textsubscript
+\def\@EN@CWhook{\setbox\z@\hbox} %% To recognize stepping counters.
+
+%% TODO: empty referring macros after use. -> ednotes as well.
+
+% \CWClosePar writes \@CW@wordlist to the .aux-file and
+% resets the lists and \if@CWpardef:
+\newcommand*\CWClosePar{% %% TODO: -> doc.!? Useful?
+ \ifx\@CW@wordlist\@empty \else
+% \immediate\write\@mainaux{%
+ \immediate\write\@auxout{%% for \includeonly
+ \gdef\expandafter\noexpand
+ \csname CWp\romannumeral\c@CW@par\endcsname
+ {\@CW@wordlist}}%
+ \global\let\@CW@wordlist\@empty
+ \global\c@CW@repword\z@
+ \fi
+% \global\let\countword\@CW@cntwi
+ \global\let\@CW@placeindexlist\@CW@emptylist
+ \global\let\@CW@make@placeindexlist\@CW@makeplaceindexlist
+ \global\let\@CW@wordlinelist\@CW@emptylist
+ \global\let\@CW@nextwordlinelist\@empty
+% \global\@CW@firstinpartrue
+ \global\@CW@pardeffalse}
+\expandafter\def\expandafter\linenumberpar\expandafter{%
+ \expandafter\CWClosePar\linenumberpar}
+
+\endinput
+
+VERSION HISTORY:
+v0.01 2004/01/05 Very first release under name `ecntw0.sty'.
+v0.1 2004/01/05 Changed names and documentation, new name
+ `edcntwd0.sty'.
+v0.11 2004/01/05 renamed \CWnext -> \@CW@next, added main ideas of
+ implementation.
+v0.12 2004/05/12 Added remark on `linenox1.sty' (load earlier);
+ added `(C)' and Christian for copyright;
+ L"uck -> L\"uck. \RequirePackage{ednotes};
+ changed doc. accordingly.
+ 2004/07/06 Added explanation for order with `linenox1.sty'
+ ("for wizards").
+ 2004/07/28 ^^J; cope with pagewise numbering; note on
+ switching from pagewise to running.
+v0.12b .../08/31 Changed to LPPL v1.3, added maintenance.
+v0.2 2004/09/20 Removed mentions of `linenox1.sty', for
+ `lineno.sty' v4...
+v0.3 2004/10/07 Usage: to be loaded by `ednotes.sty' option.
+ 2004/10/11 Removed \RequirePackage{ednotes}; changed some
+ TODOs.
+ 2004/10/12 latex/3730.
+v0.3a 2004/11/07 LPPL v1.3a.
+v0.3b 2005/01/10 Contact via http.
+v0.31 2005/02/20 Added \@EN@first.
+ 2005/03/08 Added Copyright 2005.
+v0.32 2005/05/01 Replaced \@EN@first by LaTeX's \@car.
+ [sent to CTAN, contrary to final line!]
+ 2006/02/25 Typo fix `USAGE' 5.
+ 2006/05/01 \if@CW@firstinpar to avoid spurious `?'.
+ [given to Lekhtman]
+v0.32a /06/07 \c@CW@par with \includeonly.
+ 2006/06/15 replaced \if@CW@firstinpar by
+ \@CW@make@placeindexlist etc.;
+ extended documentation; rearranged code.
+ 2006/06/16 \@CW@missingdata.
+v0.32b /06/26 LPPL v1.3c.
+ /06/29 `Missing data (.aux)'
+v0.32c /07/06 \includeonly with less LaTeX counter features.
diff --git a/macros/latex/contrib/ednotes/ednmath0.sty b/macros/latex/contrib/ednotes/ednmath0.sty
new file mode 120000
index 0000000000..6f003def2a
--- /dev/null
+++ b/macros/latex/contrib/ednotes/ednmath0.sty
@@ -0,0 +1 @@
+../lineno/ednmath0.sty \ No newline at end of file
diff --git a/macros/latex/contrib/ednotes/ednotes.pdf b/macros/latex/contrib/ednotes/ednotes.pdf
new file mode 100644
index 0000000000..4bfb5a8fb8
--- /dev/null
+++ b/macros/latex/contrib/ednotes/ednotes.pdf
Binary files differ
diff --git a/macros/latex/contrib/ednotes/ednotes.sty b/macros/latex/contrib/ednotes/ednotes.sty
new file mode 100644
index 0000000000..9168f7c0f5
--- /dev/null
+++ b/macros/latex/contrib/ednotes/ednotes.sty
@@ -0,0 +1,1553 @@
+%% Macro package `ednotes.sty' for LaTeX2e,
+%% copyright (C) 2002--2005 Uwe L\"uck & Christian Tapp (direction)
+%% 2006 Uwe L\"uck
+%% http://www.contact-ednotes.sty.de.vu
+%% --author-maintained, for critical editions
+%% (varying J. Lavagnino's and D. Wujastyk's EDMAC).
+%%
+\def\fileversion{1.3a} \def\filedate{2006/10/05} %% TODO
+%
+%% 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
+%
+%% * USAGE: *
+%
+% *Overview:*
+% This package provides facilities for notes in (critical) editions.
+% `\Anote{LEMMA}{NOTE}' prints NOTE in an extra footnote apparatus,
+% referring to LEMMA by its line numbers (as generated by
+% `lineno.sty') and by repeating LEMMA in the note. By calling the
+% package with extra options, you can add \Bnote etc. and choose
+% whether notes of one apparatus appear in a single paragraph on
+% each page or in separate paragraphs (`manyfoot.sty').
+% In LEMMA, `...\<...\>...' indicates what short version of it is to
+% appear in the note. There are further facilities to customize
+% appearance of notes.
+% Commands \Anotelabel{LABEL}, \donote{LABEL}{NOTE} etc. vary \Anote
+% etc. in admitting overlapping lemmas.
+% ---The package is made for those who need something like EDMAC
+% but who want to employ LaTeX2e at the same time.
+% More detailed description below is divided into
+% `packages required', `user commands', `package options',
+% `customizing', `Note on EDMAC', and `Comparison with LEDMAC'.
+%
+% *Note on "rival" package LEDMAC:* Peter R. Wilson has made a
+% LaTeX package LEDMAC (available on CTAN) for about the same
+% purpose as the present package. See `Note on EDMAC' and
+% `Comparison with LEDMAC' below.
+%
+% *Printed presentation:* An article on `ednotes' with user
+% instructions, examples, and comparisons with `[L]EDMAC'
+% appeared in the TUGboat volume for 2003. A version of it is
+% obtainable from the `ednotes' CTAN folder (`ednotugb.pdf').
+%
+% *Packages required:*
+% This package will not work without the following ones
+% ("visible"--cf. visible.txt in CTAN ednotes folder):
+% o Packages `manyfoot.sty' (v1.9+) and `nccfoots.sty' by
+% Alexander I. Rozhenko from the `ncctools' bundle.
+% You needn't know anything about these
+% except perhaps options `para' and `para*'
+% choosing footnote indentation (see `package options' below).
+% o Package `lineno.sty' by Stephan I. B"ottcher.
+% We here suppose that you know and employ some of the
+% line numbering commands from `lineno.sty'.
+% However, please don't load these packages on your own.
+% Instead of calling them with some options, put these options
+% into the brackets of \usepackage[<options>]{ednotes}.
+%
+% *Availability:*
+% o In case you have not received `manyfoot.sty' and `nccfoots.sty',
+% you find them in the CTAN folder
+% `macros/latex/contrib/ncctools/unpacked' .
+% You find PDF documentations in
+% `macros/latex/contrib/ncctools/doc' .
+% o `lineno.sty' is in CTAN folder `macros/latex/contrib/lineno'.
+% In the same folder, there is `lineno.pdf' for documentation.
+%
+% *Optional packages:*
+% o Some package options may need additional package files (for
+% a while). They may be in the `ednotes' or `lineno' CTAN folder.
+% The README files there will name them or tell where they are
+% named. %% TODO
+%
+% *Other useful files:*
+% Look at the README file in CTAN folder
+% `macros/latex/contrib/ednotes' for quick information on what other
+% files in the folder provide. %% TODO: indeed?
+%
+% *User commands:*
+% *Basic:* --------------------------------------------------------
+% \Anote{LEMMA}{NOTE} prints LEMMA where it occurs
+% and sends NOTE into an extra footnote apparatus.
+% The lines where the command occurs must be numbered
+% by using commands from package `lineno.sty'.
+% In the footnote, NOTE is preceded by line numbers of LEMMA,
+% by a version of LEMMA (see below), and by some separating stuff.
+% Separating stuff by default is a properly spaced right bracket
+% according to \lemmafmt (see below).
+% \Anote may be nested in LEMMA.
+% (Overlapping lemmas may be generated by \Anotelabel etc. as
+% described below.)
+% For customizing appearance of notes, see `package options' and
+% `customizing' (\lemmafmt and \lemmaellipsis, e.g.) below.
+% For additional analogous commands \Bnote etc., see
+% `"optional" user commands' below.
+% *Short lemma substitute in note:* -------------------------------
+% (The following describes a comfortable extension of
+% EDMAC's \lemma.)
+% LEMMA argument of \Anote as above may appear as `L1\<L2\>L3', then
+% only L1 and L3 appear in the footnote with some ellipsis symbols
+% between them. By default, these are \textsymmdots according to
+% \lemmaellipsis.
+% (For \textsymmdots vs. ordinary \dots see `miscellaneous' below.)
+% L2, however, may start with `<ELL>', then ELL is used instead of
+% \textsymmdots or whatever else \lemmaellipsis might call.
+% (To be sure, symbols `\<', `<', `>', `\>' work in a special way
+% in LEMMA. `>' might be used inside ELL if inside braces, e.g.,
+% `\<<{$>$}>'. <ELL> works as an optional argument of \< like
+% brackets usually do in LaTeX---we thought you might use `[' here
+% as a symbol to be printed in main text. Care for proper spacing in
+% both versions of the lemma by spaces touching \<, \>, and braces.
+% ---A special version of the package would be necessary for those
+% having no `<', `>' on their keyboards.)
+% *Overlapping lemmas:* -------------------------------------------
+% \Anotelabel{LABEL}LEMMA\donote{LABEL}{NOTE}
+% works just like \Anote{LEMMA}{NOTE} above. However, by using
+% proper LABELs, you can indicate which of overlapping lemmas
+% begins and ends where. Note that the second command is only
+% \donote, not \Adonote. In LEMMA, \pause{LABEL} and \resume{LABEL}
+% act analogously to \< and \> above for lemma substitutes, and
+% \pause{LABEL}<ELL> employs your own ELL for the ellipsis.
+% LEMMA may contain \Anote and the other way round (in some way).
+% However, \pause{LABEL} must not be hidden in braces etc.
+% *Commands in lemma as repeated in a note:* ----------------------
+% Some commands should work in main text, but not in the lemma
+% text of the note, e.g. \label. With respect to some of them,
+% `ednotes.sty' makes an adjustment for this. Nesting of lemmas,
+% e.g., is enabled this way.
+% For other commands, you can hide code from a note
+% by \notinnote, e.g.: \notinnote{\footnote{...}}.
+% If you know about relevant (La)TeX internals, you can define
+% behaviour of commands in lemmas using \addlemmaexpands, e.g.
+% \addlemmaexpands{\let\footnote\@gobble}.
+% (However, the latter code is bad if \footnote should occur
+% with an optional argument. Moreover, in some cases
+% \let...\notinnote may handle spaces better than
+% \let...\@gobble, since \notinnote uses a variant of LaTeX's
+% \@bsphack and \@esphack.
+% ---\addlemmaexpands has only local effect inside group.)
+% \showlemmaexpands displays all these extra definitions
+% which would apply in the lemma ahead.
+% (A lot of commands might be changed here, we chose only few.
+% Cf. EDMAC's \no@expands; EDMAC, however, deals with the
+% problem in a different way and needs more changes
+% than we do.)
+% ---You may find
+% \IfLemmaTag{<in lemma tag>}{<in main text>}
+% useful as well, perhaps more flexible than \notinnote.
+%
+% *"Optional" user commands:* -------------------------------------
+% Each of \Bnote, \Bnotelabel, \Cnote, \Cnotelabel, \Dnote,
+% \Dnotelabel, \Enote, and \Enotelabel is defined by calling
+% respective package options `Bpara' or `Bplain' etc., see
+% `package options' below. They work like \Anote and \Anotelabel,
+% respectively, and nesting and overlapping of their lemmas works
+% as for \Anote and \Anotelabel. \donote works with each of
+% \Anotelabel, \Bnotelabel etc.---care for different labels.
+% \nopunct may help you in case of certain changes of \notefmt, see
+% `customizing' below (not active outside notes).
+% *Miscellaneous:* ------------------------------------------------
+% As a byproduct, we provide \textsymmdots as an alternative to
+% \dots or (more specific) to LaTeX2e's \textellipsis. We feel that,
+% in the middle of the short version of a lemma, the text dropped
+% should be replaced by symmetrically spaced dots, i.e., in
+% L1 ... L3, the space between L1 and the dots should be the same
+% as the space between the dots and L3. \textellipsis obstructs this
+% by calling a space after the final dot which is not balanced by a
+% space before the first dot. \textsymmdots just closes without that
+% final space---that's all the difference to \textellipsis. (Cf.
+% TeXbook p. 73 where $\ldots$ is recommended for the same purpose.)
+% Of course, it is now your job to care for proper spacing on left
+% and right, e.g., use it this \textsymmdots\ way.
+% Note that with a comma following \dots is quite right while
+% `\textsymmdots,' is bad. %% TODO: delimiters!? e.g. [...]
+% -- Now (since Sep 2004) indeed there is the `ellipsis' package
+% by Peter J. Heslin on CTAN in the /macros/latex/contrib directory!
+% It deals with this problem much more thoroughly.
+% *Wrong placement:* ----------------------------------------------
+% We do not provide helpful error messages for badly placed \<,
+% \pause, and the like in this version. You will just get
+% `undefined' errors, complaints about \mskip, or `runaway
+% argument' errors.---Doubling labels with \Anotelabel etc. may
+% work well if you know what you are doing.
+%
+% *Package options:*
+% 1.) Options `left', `right', `switch', `switch*', `columnwise',
+% `pagewise', `running', `modulo', `mathlines', `displaymath',
+% `edtable' (edit tabular environments), `longtable' (edit
+% `longtable' environments), `nolongtablepatch' are passed to
+% package `lineno'; cf. the latter package for information
+% (not yet tested all). %% TODO
+% `left' and `running' act by default.
+% Option `mathnotes' calls `lineno.sty' package option `mathrefs',
+% see `lineno' documentation as well.
+% 2.) Option `Aplain' arranges all notes for one page generated
+% by \Anote and \Anotelabel in a single footnote paragraph.
+% Option `Bplain' generates an apparatus using one footnote
+% paragraph for each note, with commands \Bnote, and \Bnotelabel.
+% Option `Bpara' does the same but arranging all notes
+% for one page in a single footnote paragraph.
+% Analogues apply to `Cplain', `Cpara', `Dplain', `Dpara',
+% `Eplain', and `Epara'. (There is `Apara' as well---default.)
+% Option `para*' suppresses indentation of footnote paragraphs
+% coming from options like `Apara' (cf. package `manyfoot').
+%% TODO: para indent correct?
+% 3.) Option `edmacpara' makes up for problems with `para'
+% footnotes that are discussed in `EDMAC.doc' section
+% `Paragraphed footnotes'. See our package `mfparptc.sty' for
+% details (for the time being).
+% 4.) Option `perpage' is just passed to `manyfoot.sty'.
+% (This requires that the perpage package has been installed;
+% to be obtained from CTAN folder macros/latex/contrib/bigfoot/.)
+% 5.) Option `countoccurrences' provides a command \countword
+% for a half-way solution of the problem of lemma words that
+% occur more than once in a line. See our package `edcntwd0.sty'.
+% (With `ednotes.sty' v1.1 you need `edcntwd0.sty' v0.31.)
+%
+% *Customizing:*
+% Appearance of notes is directed by macros \extrafootnoterule,
+% \linesfmt etc. occurring in the following lines
+% (each starting with \renewcommand). -- More recently, customizing
+% footnote rules has been introduced; see below.
+% For customizing, copy the respective lines to your own file,
+% remove left hand comment mark, and change the definition in the
+% right hand pair of braces. (The definition you find there is our
+% original one; we hope you understand from these definitions how
+% they work in general and what the arguments are. E.g., \linesfmt
+% applies to printing of line numbers and, originally, renders them
+% bold-faced, followed by \enspace. Note that this default suppresses
+% hyphenation of the first word of a lemma tag.)
+% This controls identical behaviour in *every apparatus*.
+% For changing appearance of a single apparatus without changing
+% the remaining, see below.---Note: With v1.1, \ref has been
+% removed from the definition of \repeatref, and a \ref in any
+% customization of it will not work any longer. As well, earlier
+% \linewithpage used \ref and \pageref, and this will not work any
+% longer. \linewithpage has been replaced by \pageandline.
+% \renewcommand{\extrafootnoterule}{\footnoterule}
+% ---This is a `manyfoot.sty' command for separating each extra
+% apparatus from the other ones.---
+% \renewcommand*{\sameline}[1]{\linesfmt{#1}}
+% \renewcommand*{\differentlines}[2]{\linesfmt{#1--#2}}
+% %% TODO: \linesfmt into \@EN@note!?
+% \renewcommand*{\linesfmt}[1]{\textbf{#1}\enspace}
+% ---E.g., for enabling hyphenation of first word of lemma tag:
+% % \renewcommand*{\linesfmt}[1]{\textbf{#1}\enspace
+% % \hspace*{0pt}}
+% ---Last line works like german.sty's \allowhyphens.
+% \renewcommand*{\pageandline}[2]{#1.#2} % #1 page, #2 line.
+% \renewcommand{\lemmafmt}[1]{#1\thinspace]\enskip}
+% \renewcommand*{\repeatref}[1]{#1}
+% ---E.g., for replacing repeated line numbers by non-bold slash:
+% % \renewcommand*{\repeatref}[1]{\textnormal{/}}
+% \renewcommand{\lemmaellipsis}{\textsymmdots}
+% \renewcommand{\notefmt}[1]{#1}
+% Note: \notefmt, originally, takes your note just as it is.
+% By redefinition
+% \renewcommand*{\notefmt}[1]{#1.}
+% you might add an automatic closing full stop to each note.
+% In a single note of the same apparatus, however, you might then
+% want to close by a question mark (e.g.) instead of the fullstop.
+% For this purpose, close that note by `?\nopunct'. \nopunct then
+% gobbles the full stop waiting ahead. (So much as to \notefmt.)
+% ---Customizing a *single apparatus*:
+% For changing appearance of the apparatus feeded by \Anote
+% without changing remaining apparatuses (feeded by \Bnote etc.),
+% take the following lines (the one with a single right brace
+% being the last one) to your own file and remove the left hand
+% column of comment marks. Remove then left hand comment marks
+% of single lines containing commands whose behaviour in the
+% apparatus you want to change. Change their definitions in
+% right hand braces. (It is quite important never to remove
+% right hand comment marks, as you may know!)
+% \newcommand{\Anotefmt}{%
+% % \renewcommand*{\sameline}[1]{\linesfmt{##1}}%
+% % \renewcommand*{\differentlines}[2]{\linesfmt{##1\textendash##2}}%
+% % \renewcommand*{\linesfmt}[1]{\textbf{##1}\enspace}%
+% % \renewcommand*{\pageandline}[2]{##1.##2}% ##1 page, ##2 line.
+% % \renewcommand*{\repeatref}[1]{##1}% E.g., ...
+% % % \renewcommand*{\repeatref}[1]{\textnormal{/}}% ... instead.
+% % \renewcommand{\lemmafmt}[1]{##1\thinspace]\enskip}%
+% % \renewcommand{\lemmaellipsis}{\textsymmdots}%
+% % \renewcommand{\notefmt}[1]{##1}%
+% }
+% For changing the \Bnote apparatus, do the same and change
+% \Anotefmt into \Bnotefmt. Analogues apply to \Cnote etc.
+% ---You can, moreover, add code in the definition of \Anotefmt etc.
+% for additional settings to be active throughout the note
+% (including line numbers and lemma reference),
+% e.g., for selection of a certain font type.
+% ---`manyfoot' v1.9 offers a command \SetFootnoteHook for
+% controlling the appearance of the whole paragraph of an apparatus
+% in `para' or `para*' style---please see the `manyfoot'
+% documentation for examples. `ednotes' v1.2 makes use of this
+% through a new command \PrecedeLevelWith{X}{CODE}. E.g.,
+% \PrecedeLevelWith{A}{\textit{Var.:}} and
+% \PrecedeLevelWith{B}{\textit{Sim.:}} (once and for all)
+% may distinguish the variant from the similia apparatus.
+% CODE may also be used to contol the paragraph indent of
+% the apparatus (so the paragraphs may have different
+% indents) or to shape the paragraph more generally
+% (according to TeXbook chapter 14, especially pp. 101f.).
+% To give a general rule, \PrecedeLevelWith{X}{CODE} has
+% the same effect as \SetFootnoteHook{CODE}
+% \DeclareNewFootnote[para]{X} would have with `manyfoot'.
+% Without the `para' option or with the `plain' style of
+% notes, CODE just is executed starting each note (preceding
+% even the line number and the lemma).
+% ---*Special characters:* As is noted in EDMAC's documentation,
+% the en-dash for line number printing or the separating right
+% square bracket might be coded unusually in some special font
+% which has been chosen and so may escape being printed. Should you
+% encounter this problem indeed, you can use the previous for remedy
+% (e.g., change \lemmafmt). (EDMAC's solution is use of
+% \endashchar etc. for taking these characters from the \rm font.)
+% ---You may *redefine* most of the commands provided by the
+% package. *Exceptions* are \donote, \<, and \>. So you might
+% put \newcommand{\variant}{\Anote} or even (for TeXperts)
+% \let\variant\Anote into your file (after `ednotes.sty' has been
+% read). No problem about nesting will arise (as did with EDMAC).
+% EDMAC's suggestion to make <...> a shorthand, however, would
+% conflict with our lemma mechanism. (Coexistence would be possible
+% by suitable use of braces and repeating present definitions
+% after change of <'s catcode.)
+% ---Customizing *footnote rules*: From its version 1.5 onwards,
+% manyfoot has offered customizing footnote rules, as described
+% in section 3 of manyfoot.pdf . Only with version 1.3 onwards,
+% our ednotes supports this manyfoot feature. First please note
+% that ednotes always simply executes \newfootnote, never
+% \DeclareNewFootnote. This seems to suffice for scholarly
+% critical editions and for customizing the footnote rules.
+% When you read in manyfoot.pdf about customizing footnote
+% rules, therefore please disregard any difference between
+% \newfootnote and \DeclareNewFootnote.---So please read
+% section 3 of manyfoot.pdf . Observe the \SelectFootnoteRule
+% commands preceding some \DeclareFootnoteRule commands.
+% If such a command precedes \newfootnote{<X>}, ednotes
+% produces the same effect if you precede loading ednotes
+% after \newcommand{\Select<X>noterule}{<SFR args>},
+% when you would want to use \SelectFootnoteRule<SFR args>
+% with mere manyfoot. (The accompanying file varnrule.tex
+% explains more and enables you to play with the possibilites.)
+% ---(Please never forget to update the ncctools MiKTeX package
+% when you update the ednotes package!)
+%
+% *Your shorthands:*
+% \Anote etc. prevent editorial notes from appearing in the
+% table of contents when such commands (\Anote etc., i.e.)
+% appear in a heading (e.g.). But when you define a shorthand macro
+% (using \newcommand) that has an optional parameter and \Anote
+% or so in the defining code, something more is needed to have
+% the lemma, without the note, in the table of contents (or ...)
+% E.g., you might \newcommand*{\variant}[1][A]{\Anote{#2}{#1}}
+% so \variant{res} works like \Anote{res}{A} and \variant[B]{res}
+% works like \Anote{res}{B}. ednotes v1.22 offers two solutions
+% to this problem:
+% 1. You can precede your shorthand with \RobustTestOpt whenever it
+% appears in a "moving" argument like a chapter heading --
+% \RobustTestOpt\variant{res} as well as
+% \RobustTestOpt\variant[B]{res} , e.g.
+% 2. You can save yourself from caring for \RobustTestOpt by using
+% \NewEdnotesCommand instead of \newcommand --
+% \NewEdnotesCommand*{\variant}[2][A]{\Anote{#2}{#1}}
+% These facilities work only when the shorthand has an *optional*
+% parameter and at least one *mandatory* parameter -- well, if it
+% doesn't have, you can use \RobustTestOpt if you put a pair of
+% braces after the shorthand macro name, this would work as well.
+% ---You may find
+% \IfTypesetting{<for typesetting>}{<for mere expanding>}
+% more flexible.
+%
+% *Known problems:*
+% With run-in-paragraph footnotes (options `para' or `para*'), notes
+% may end too deep on the page or (with `longtable.sty') even overlap
+% with main text. `ednotes.sty' shares this "feature" with EDMAC and
+% LEDMAC. Output gets worse as the number of paragraphed-footnote
+% series increases. `manyfoot.sty' version 1.7 (!) accounts for this
+% by a command \ExtraParaSkip (as an interim solution). This command
+% reserves additional vertical space for the notes (so there is less
+% space for main text---at the expense of too large empty space on
+% some pages). After `ednotes.sty' (or `manyfoot.sty') has been
+% loaded (i.e., below \usepackage...), type `\ExtraParaSkip{<skip>}'
+% (still in the preamble) where <skip> may be any glue parameter.
+% <skip> may be a multiple of any absolute space unit (e.g., `4pt' or
+% `2mm'), it may even be a multiple of a space unit depending on the
+% font size of notes (\footnotesize)---like `em', `ex', or
+% `\normalbaselineskip' (e.g., `.5\normalbaselineskip'). (However,
+% stretch and shrink of, e.g., \normalbaselineskip are ignored.)
+% Experiment with choices for <skip> such that notes neither overlap
+% with main text nor hang too deep on the page. The most safe choice
+% is `\ExtraParaSkip{.5\normalbaselineskip}'.
+% ---Manyfoot.sty did something similar before; i.e., it reserved
+% .5\normalbaselineskip (with respect to \footnotesize) for the notes.
+% This may not be needed on some pages (on such pages there may be
+% too much empty vertical space).
+% ---For the best solution you should, when your work is ready and
+% only needs optimization of formatting, type
+% \ExtraParaSkip{-.5\normalbaselineskip}
+% (to remove the space that Manyfoot.sty reserves) and then insert
+% \pagebreak's in your main text to avoid overful pages.
+% ---We formerly offered a command \MFparaxbuffer in file
+% `mfparxsp.sty' instead. This could be used once only in the
+% document preamble. \ExtraParaSkip does not have this limitation.
+% This allows, e.g., first setting a "default" value and changing it
+% under certain conditions, e.g.:
+% \ExtraParaSkip{<skip1>} ... \if... \ExtraParaSkip{<skip2>} ... \fi
+% (Thanks to Florian Kragl who presented a similar first remedy for
+% the problem.)
+%
+% *The problem of oscillating page breaks:*
+% In typesetting critical editions, there is an increased danger
+% of page break oscillations, causing wrong numberings,
+% placements, and cross-references. Our package `lblchng1.sty'
+% (same CTAN directory) offers help with this. However,
+% `ednotes.sty' v1.1 takes over most of the job from
+% `lblchng1.sty'. We still recommend to *read the file*
+% `lblchng1.sty' on how to use the messages from `lblchng1.sty'
+% and `ednotes.sty' on page number changes (be sure that it is
+% v0.32 or higher). The warnings from ednotes.sty may suffice.
+% Just look at the final messages on screen or in .log.
+% -- You can overcome such problems using \pagebreak
+% (Standard LaTeX) or \warningpagebreak (from present package)
+% -- force the earlier page break!
+% \warningpagebreak works like Standard LaTeX \pagebreak, it just
+% adds a reminder for the case that such a manual page break
+% may become bad after revisions of your entire work.
+%
+% *A problem with `hyperref.sty':*
+% To guarantee compatibility with `hyperref', updating lineno.sty
+% to v4.3 is recommended.
+%
+% *Note on EDMAC:*
+% `edmac.doc' is a macro package by John Lavagnino and
+% Dominik Wujastyk made for critical editions to be used in presence
+% of Plain TeX only. We refer to the macros and documentation of
+% this package by `EDMAC'. There is an enhancement `edmacfss.sty'
+% for additionally employing the New Font Selection Scheme (NFSS)
+% from LaTeX2e. With `edmacfss.sty', some LaTeX commands work by
+% accident. However, it replaces LaTeX's \end by PlainTeX's \end,
+% so LaTeX environments don't work. Moreover,
+% EDMAC defines its own output routine in place of LaTeX's,
+% so LaTeX's page assembly and related commands (\marginpar ...)
+% are disabled. EDMAC still provides facilities
+% (columnar footnotes, endnotes, sublines) which are neither
+% implemented here nor in packages `manyfoot' and `lineno'
+% on which the present one is based. However, there are authors
+% who have had a desire to stay in LaTeX's paradise and to enjoy
+%% TODO: Hilbert translation
+% EDMAC features at the same time. (E.g., edition may be only part
+% of your document, or you want to use many LaTeX packages.)
+% Fortunately, Christian was led to packages `manyfoot' and `lineno'
+% which implement the most desirable of EDMAC's facilities for use
+% with LaTeX. A version of EDMAC's \text and assembly of notes
+% remained to be done. We even go beyond EDMAC concerning lemma
+% substitutes and overlapping lemmas.
+% ---For explanation of present solutions, we sometimes refer to
+% EDMAC where similar problems are dealt with in similar but
+% sometimes essentially differing ways. Therefore, knowledge of
+% EDMAC may foster your understanding commands and remarks
+% presented here, but it is not required.
+% ---Dominik maintains a homepage for EDMAC and related software:
+% http://www.homepages.ucl.ac.uk/~ucgadkw/edmac/
+%
+% *Comparison with LEDMAC:*
+% (Cf. http://ednotes.sty.de.vu and `ednotugb.pdf'.)
+% Peter Wilson's LEDMAC ports EDMAC to LaTeX, i.e., you get
+% almost exactly EDMAC *functionality* and same *user interface*
+% as in good old EDMAC (some slight changes of command names
+% were necessary). Thus it offers a very easy switch to LaTeX
+% for EDMAC addicts and is superior in functionality to `ednotes.sty'
+% where EDMAC is (columnar footnotes, endnotes, sublines, etc.?
+% --first two might change over the years). `ednotes.sty' might
+% be favoured if you really need overlapping lemmas, and we tried
+% to offer further user-friendly features as spelled out above.
+% --Some users want to edit tables. For EDMAC there is the
+% TABMAC package providing special commands for this. A TABMAC
+% port is part of LEDMAC. This is nice for EDMAC/TABMAC addicts.
+% Our additional package `edtable.sty' allows for lemmas in (some)
+% LaTeX tabular environments and numbers their rows as if they were
+% lines. This is nice for those who only know the LaTeX tabular
+% environments. However, TABMAC and its mirror in LEDMAC offer
+% facilities which are not provided by LaTeX/ednotes/edtable.
+% --LEDMAC *implementation* is very close to EDMAC's as well,
+% differing very much from `ednotes.sty', especially concerning
+% use of auxiliary files. However, this seems to have no practical
+% effects. On very old machines, EDMAC/LEDMAC might be slower, while
+% Ednotes might cause memory overflow with small TeX versions and
+% many notes. Peter Wilson [3/3 2004] estimates that rather
+% EDMAC's/LEDMAC's typesetting everything twice might be a
+% disadvantage in comparison with `ednotes.sty'.
+% ---In 2004 LEDMAC has been enhanced considerably beyond the
+% functionality of EDMAC and `ednotes.sty'.
+% It now also includes indexing by line as well as by page,
+% a port of Wayne Sullivan's EDSTANZA, new options for line
+% numbering, a minipage-like environment (which may break across
+% pages) such that remarks are printed immediately after some piece
+% of edited text (a letter, e.g.), and "sidenotes".
+% Finally an extension package `ledpar' adds parallel typsetting.
+% --At least for some time LEDMAC will be more user-friendly
+% in providing all functions in a single file with *one*
+% *printable* documentation file. %% TODO
+% On the other hand, packages we build on are still being enhanced
+% in functionality by their authors.
+%
+%
+%% Acknowledgements
+%
+% Christian saved me from most of the work by having found
+% packages `lineno.sty' by Stephan I. B"ottcher and `manyfoot.sty'
+% by Alexander I. Rozhenko which do the output stuff. Thanks to
+% Christian, Stephan and Alex! I appreciate their work (especially
+% Stephan's approach to adding and remembering line numbers), and I
+% admire John Lavagnino's and Dominik Wujastyk's work on EDMAC.
+% I am also grateful for their encouragement. U.L.
+%
+% Moreover I am much indebted to Stephan B"ottcher and Alex
+% Rozhenko for their co-operation in reducing the number of
+% package files that `ednotes.sty' needs. (This was 2004,
+% version v1.0.)
+%
+% For pointing out errors and problems, we are grateful to test
+% users Robert Alessi, Sergei Mariev---see version history.
+% Florian Kragl contributed to now `manyfoot.sty's \ExtraParaSkip
+% as described above. v1.1 and v1.23c are due to problems that
+% Roy Flechner reported. v1.12 is due to Hillel Chayim Yisraeli's
+% discovery of spurious footnote marks.
+%
+\NeedsTeXFormat{LaTeX2e}[1994/12/01]
+% 1994/12/01: \newcommand* etc. %% TODO: more recent needed?
+\ProvidesPackage{ednotes}
+ [\filedate\space v\fileversion,
+ for critical editions]
+ %%%(ul)]%%%by Uwe L\string\"uck.]
+%
+%% Our warnings:
+\def\@EN@warning{\PackageWarning{ednotes}}
+%
+%% Package Options:
+%
+% Own options
+% (must appear before `para*' so this can override `para'):
+%% TODO: true!?
+%% TODO: Something to make use of Alex' \SplitNote!?
+\let\if@EN@Apara\iftrue % Makes option `Apara' default.
+\DeclareOption{Apara}{% Redundant, just in case ...
+ \@EN@warning{Package Option `Apara' is redundant}
+% \PassOptionsToPackage{para}{manyfoot}%
+% \AtEndOfPackage{%
+% \newfootnote[para]{A}%
+% \newcommand{\Anote}{\@EN@note A}%
+% \newcommand{\Anotelabel}{\@EN@notelabel A}%
+% }}
+}
+\DeclareOption{Aplain}{%
+ \let\if@EN@Apara\iffalse
+% \AtEndOfPackage{%
+% \newfootnote{A}%
+% \newcommand{\Anote}{\@EN@note A}%
+% \newcommand{\Anotelabel}{\@EN@notelabel A}%
+% }}
+}
+\DeclareOption{Bpara}{%
+ \PassOptionsToPackage{para}{manyfoot}%
+ \AtEndOfPackage{%
+ \SetFootnoteHook{\@EN@MF@hook@B}%
+ \let\@EN@MF@hook@B\@empty
+ \@ifundefined{SelectBnoteRule}{}{%
+ \expandafter\SelectFootnoteRule\SelectBnoteRule
+ \let\SelectBnoteRule\relax}%
+ \newfootnote[para]{B}%
+ \newcommand{\Bnote}{\@EN@note B}%
+ \newcommand{\Bnotelabel}{\@EN@notelabel B}%
+}}
+\DeclareOption{Bplain}{%
+ \AtEndOfPackage{%
+ \SetFootnoteHook{\@EN@MF@hook@B}%
+ \let\@EN@MF@hook@B\@empty
+ \@ifundefined{SelectBnoteRule}{}{%
+ \expandafter\SelectFootnoteRule\SelectBnoteRule
+ \let\SelectBnoteRule\relax}%
+ \newfootnote{B}%
+ \newcommand{\Bnote}{\@EN@note B}%
+ \newcommand{\Bnotelabel}{\@EN@notelabel B}%
+}}
+\DeclareOption{Cpara}{%
+ \PassOptionsToPackage{para}{manyfoot}%
+ \AtEndOfPackage{%
+ \SetFootnoteHook{\@EN@MF@hook@C}%
+ \let\@EN@MF@hook@C\@empty
+ \@ifundefined{SelectCnoteRule}{}{%
+ \expandafter\SelectFootnoteRule\SelectCnoteRule
+ \let\SelectCnoteRule\relax}%
+ \newfootnote[para]{C}%
+ \newcommand{\Cnote}{\@EN@note C}%
+ \newcommand{\Cnotelabel}{\@EN@notelabel C}%
+}}
+\DeclareOption{Cplain}{%
+ \AtEndOfPackage{%
+ \SetFootnoteHook{\@EN@MF@hook@C}%
+ \let\@EN@MF@hook@C\@empty
+ \@ifundefined{SelectCnoteRule}{}{%
+ \expandafter\SelectFootnoteRule\SelectCnoteRule
+ \let\SelectCnoteRule\relax}%
+ \newfootnote{C}%
+ \newcommand{\Cnote}{\@EN@note C}%
+ \newcommand{\Cnotelabel}{\@EN@notelabel C}%
+}}
+\DeclareOption{Dpara}{%
+ \PassOptionsToPackage{para}{manyfoot}%
+ \AtEndOfPackage{%
+ \SetFootnoteHook{\@EN@MF@hook@D}%
+ \let\@EN@MF@hook@D\@empty
+ \@ifundefined{SelectDnoteRule}{}{%
+ \expandafter\SelectFootnoteRule\SelectDnoteRule
+ \let\SelectDnoteRule\relax}%
+ \newfootnote[para]{D}%
+ \newcommand{\Dnote}{\@EN@note D}%
+ \newcommand{\Dnotelabel}{\@EN@notelabel D}%
+}}
+\DeclareOption{Dplain}{%
+ \AtEndOfPackage{%
+ \SetFootnoteHook{\@EN@MF@hook@D}%
+ \let\@EN@MF@hook@D\@empty
+ \@ifundefined{SelectDnoteRule}{}{%
+ \expandafter\SelectFootnoteRule\SelectDnoteRule
+ \let\SelectDnoteRule\relax}%
+ \newfootnote{D}%
+ \newcommand{\Dnote}{\@EN@note D}%
+ \newcommand{\Dnotelabel}{\@EN@notelabel D}%
+}}
+\DeclareOption{Epara}{%
+ \PassOptionsToPackage{para}{manyfoot}%
+ \AtEndOfPackage{%
+ \SetFootnoteHook{\@EN@MF@hook@E}%
+ \let\@EN@MF@hook@E\@empty
+ \@ifundefined{SelectEnoteRule}{}{%
+ \expandafter\SelectFootnoteRule\SelectEnoteRule
+ \let\SelectEnoteRule\relax}%
+ \newfootnote[para]{E}%
+ \newcommand{\Enote}{\@EN@note E}%
+ \newcommand{\Enotelabel}{\@EN@notelabel E}%
+}}
+\DeclareOption{Eplain}{%
+ \AtEndOfPackage{%
+ \SetFootnoteHook{\@EN@MF@hook@E}%
+ \let\@EN@MF@hook@E\@empty
+ \@ifundefined{SelectEnoteRule}{}{%
+ \expandafter\SelectFootnoteRule\SelectEnoteRule
+ \let\SelectEnoteRule\relax}%
+ \newfootnote{E}%
+ \newcommand{\Enote}{\@EN@note E}%
+ \newcommand{\Enotelabel}{\@EN@notelabel E}%
+}}
+% This is as much as EDMAC provides.
+%% TODO: efficiency!?
+%% TODO: shorten previous by temporary defining macro
+%% \@EN@tempa!? (dangerous)
+%
+% Load `mfparptc.sty' after `manyfoot.sty':
+\DeclareOption{edmacpara}{%
+ \AtEndOfPackage{%
+% \RequirePackage{afterpackage}\AfterPackage{% TODO
+ \RequirePackage{mfparptc}[2006/06/26]}%
+% <- nccfoots v1.2.
+% }%
+}
+%
+%% TODO \afterpackage:
+% Load `edcntwd0.sty' after `lineno.sty':
+\DeclareOption{countoccurrences}{%
+ \AtEndOfPackage{\RequirePackage{edcntwd0}[2006/06/16]}}
+% <- first occurrence bug fix.
+%
+% `edtable' options remain "unknown" and thus are passed to
+% `lineno.sty'.
+%
+% Options for package `manyfoot':
+% Calling option `ruled' or `para' for `ednotes' is redundant,
+% but in case ...
+\DeclareOption{ruled}{\@EN@warning%
+ {Package Option `ruled' is redundant}}
+\DeclareOption{para}{\@EN@warning%
+ {Package Option `para' is redundant}}
+\DeclareOption{para*}{\PassOptionsToPackage{para*}{manyfoot}}
+% Suppresses footnote indentation.
+% Overrides `para' as called from own options.
+\DeclareOption{perpage}{\PassOptionsToPackage{perpage}{manyfoot}}
+%
+% Options for package `lineno':
+\DeclareOption{mathnotes}{\PassOptionsToPackage{mathrefs}{lineno}}
+\DeclareOption*{\PassOptionsToPackage{\CurrentOption}{lineno}}
+%
+% %% TODO: Really load lineno.sty here!? Otherwise remove options.
+% %% TODO: Interfaces for alternative auxiliary packages.
+% \ExecuteOptions{Apara} % \newcommand... bad for opposite option.
+\ProcessOptions
+%
+%% Load required packages:
+\RequirePackage[ruled\if@EN@Apara,para\fi]{manyfoot}[2005/05/11]
+%% <- \SetFootnoteHook
+%% todo: Leave choice to user!? -> `unruled' -- \Select... suffices.
+%% TODO: ruled -> \Execute...!?
+
+\RequirePackage{lineno}[2004/10/11]
+% Hack for `lineno.sty' version. If \@LN@postlabel is defined, assume
+% `lineno' version 4 has been loaded. %% TODO
+\@ifundefined{@LN@postlabel}{%
+ \@EN@warning{We urge you to use `lineno.sty' version 4!}
+ \RequirePackage{linenox0}[2004/08/12]%% No page break after heading
+%% (left to `linenox1.sty').
+}\relax
+%
+%% Execute option concerning first apparatus:
+\SetFootnoteHook{\@EN@MF@hook@A}
+\let\@EN@MF@hook@A\@empty
+\@ifundefined{SelectAnoteRule}{}{%
+ \expandafter\SelectFootnoteRule\SelectAnoteRule
+ \let\SelectAnoteRule\relax}%
+\if@EN@Apara
+ \newfootnote[para]{A}% Needs `manyfoot.sty'.
+ \newcommand{\Anote}{\@EN@note A}%
+ \newcommand{\Anotelabel}{\@EN@notelabel A}%
+\else
+ \newfootnote{A}%
+ \newcommand{\Anote}{\@EN@note A}%
+ \newcommand{\Anotelabel}{\@EN@notelabel A}%
+\fi
+%
+%% User commands (if not defined in option code etc.):
+\newcommand{\addlemmaexpands}{\@EN@addtomacro\@EN@lemmaexpands}
+%% <- local; cf. using LaTeX's \g@addto@macro: %% TODO: decide
+\newcommand{\showlemmaexpands}{%
+ \typeout{\string\@EN@lemmaexpands=\meaning\@EN@lemmaexpands}%
+}
+%
+\DeclareTextCommandDefault{\textsymmdots}{%
+ .\kern\fontdimen3\font.\kern\fontdimen3\font.\@%
+}
+%
+%
+%% Customizable commands:
+%
+\newcommand*{\sameline}[1]{\linesfmt{#1}}
+\newcommand*{\differentlines}[2]{\linesfmt{#1\textendash#2}}
+%% TODO: \linesfmt into \@EN@note!?
+\newcommand*{\linesfmt}[1]{\textbf{#1}\enspace}
+\newcommand*{\pageandline}[2]{#1.#2}
+\newcommand*{\repeatref}[1]{#1}
+% \newcommand*{\repeatref}[1]{\textnormal{/}}
+\newcommand{\lemmafmt}[1]{#1\thinspace]\enskip} %% TODO: \long!?
+\newcommand{\lemmaellipsis}{\textsymmdots}
+\newcommand{\notefmt}[1]{#1} \let\notefmt\@firstofone
+%% <- TODO: \long!?
+% \newcommand{\notefmt}[1]{#1.}
+%
+%% Core code:
+
+% Interface for manyfoot's \SetFootnoteHook facility:
+\newcommand{\PrecedeLevelWith}[2]{%
+ \expandafter \renewcommand \csname @EN@MF@hook@#1\endcsname{#2}}
+% \renewcommand might help when an level is addressed that
+% has not been called through an option.
+
+% Auxiliary needed before calling \addlemmaexpands below:
+\long\def\@EN@addtomacro#1#2{% #1 cs, #2 new.
+% Local, cf. LaTeX's \g@addto@macro.
+ \expandafter\def\expandafter#1\expandafter{#1#2}%
+}
+% %% TODO: \long!? see building of lemmaarg and lemmatag.
+%% TODO: \tok@ so no doubling of `#'!?
+%
+% Our sphack for going around control sequences in text:
+\def\@EN@sphack{\relax
+ \ifhmode\ifdim\lastskip>\z@ \ignorespaces \fi\fi
+}
+% For ellipsis commands in moving arguments:
+\def\IfTypesetting{%
+ \ifx\protect\@typeset@protect \expandafter \@firstoftwo
+ \else \expandafter \@secondoftwo
+ \fi
+}
+% A nice shortcut (v1.23):
+\def\@EN@xpxpxp{\expandafter\expandafter\expandafter}
+
+% Basic handling of \Anote etc.:
+\long\def\@EN@note#1#2{% #1 note family, #2 lemma.
+ \IfTypesetting{%
+ \def\@EN@notefam{#1}\@EN@process #2\<\>\@nil
+ }{\@EN@robust@process #2\<\>\@nil}%
+}
+%
+% Lemma versions and preparing label:
+\long\def\@EN@process#1\<#2\>#3\@nil{%
+% Usage: \@EN@process #k\<\>\@nil.
+%% TODO: simplify using LaTeX's \in@!?
+% Implementation: don't leave control to user's input unless \<, \>
+% have been processed. <...> is postponed in main text.
+ \def\@EN@lemmaarg{\ignorespaces#1}%
+% \ifx\@EN@lemmaarg\@empty %% \fi %% TODO: complain!?
+% \let\@EN@lemmatag\@EN@lemmaarg %% Would be overridden.
+ \ifx\@nnil#2#3\@nnil
+ % No ellipsis, #1 all of user's input, dummy \<\> gobbled.
+ \@EN@addtomacro\@EN@lemmaarg\unskip
+ \@EN@simplelemmatag
+ \@EN@mathlemmatag
+ \else
+ \@EN@simplelemmatag
+ \ifx\@nnil#3\@nnil % \<, but no \> from user.
+ % #2 ends on \<, \>\@nil gobbled.
+ \@EN@gobble@pause#2\@nil\@nil
+ \else
+ % #3 ends on dummy \<\>.
+ \@EN@gobble@resume\@EN@gobble@pause#2\@EN@sphack\@nil
+ % This \@EN@sphack replacing \> in main text.
+ #3\@nil\@nil
+ \fi
+ \fi
+ \IfLemmaTag % v1.3
+ {\@EN@lemmaarg\@gobble}%
+ %% TODO: \...process might otherwise be redirected to
+ %% \...robust@process immediately. %% ???
+ {\stepcounter{EN@label}%
+% Much must be expanded, especially for storing the note in a
+% hook (some tables):
+ \edef\@EN@tempa{\noexpand\@EN@putdown{EN@l\number\c@EN@label}}%
+ \@EN@xpxpxp \@EN@tempa
+ \expandafter \@EN@notefam \expandafter {\@EN@lemmatag}}%
+}
+\long\def\@EN@gobble@pause#1\<\@nil{%
+ \futurelet\@let@token
+ %% <- TODO \@EN@finishlemma like \@EN@gobble@opt@till!?
+ \@EN@finishlemma #1\@nil}
+% #1 contains \@nil separating arguments.
+% Variant of LaTeX's \@ifnextchar---don't gobble spaces:
+\def\@EN@finishlemma{%
+ \ifx\@let@token<%
+ \let\@EN@next\@EN@xfinlem
+ \else
+ \def\@EN@next{\@EN@xfinlem<\lemmaellipsis>}%
+ \fi
+ \@EN@next
+}
+\long\def\@EN@xfinlem<#1>#2\@nil#3\@nil{%
+ \@EN@addtomacro\@EN@lemmaarg{\@EN@sphack#2#3\unskip}%
+ \@EN@addtomacro\@EN@lemmatag{#1\@EN@CWhook{#2}#3\unskip}%
+ \@EN@mathlemmatag
+ % %% TODO: doc.: final \unskip -> space properly!
+}
+% Brackets might have been used instead of <ELL>; however,
+% I am afraid that the user might use brackets at symbols to be
+% printed right here. Alternative (but needs extra code to test
+% for \extraellipsis): \extraellipsis{ELL}. %% TODO: decide
+% Think of keyboards without `<', `>'?
+\long\def\@EN@gobble@resume#1\>\@nil{#1}
+\let\@EN@CWhook\@gobble %% For counting words package.
+\def\@EN@simplelemmatag{\let\@EN@lemmatag\@EN@lemmaarg}
+% Useful for math mode extension as well.
+\let\@EN@mathlemmatag\relax %% Hook for math mode.
+%
+% \newcounter{EN@label}
+% % <- for \includeonly, v1.23; sufficient v1.3:
+\newcount\c@EN@label
+\@addtoreset{EN@label}{@ckpt}
+%
+% New mechanism for ellipsis in lemma -- supporting nested lemmas
+% or at least lemmas shared by apparatuses exceeding one
+% (v1.22b 2006/01/13):
+\def\@EN@ltag@ellipsis{%
+ \futurelet\@let@token\@EN@make@nested@lemmaellipsis}%
+\def\@EN@make@nested@lemmaellipsis{%
+ \ifx\@let@token<%
+ \expandafter \@EN@ellipsis@only
+ \else
+ \expandafter \@EN@ellipsis@only
+ \expandafter <\expandafter \lemmaellipsis \expandafter >%
+ \fi}
+\long\def\@EN@ellipsis@only<#1>#2\>{#1}
+%
+% .aux entries, note, and lemma in main text:
+% (v1.1: much changes. I just remove what was before, see stored
+% older version.)
+\long\def\@EN@putdown#1#2#3#4{%
+% #1 label, #2 note family, #3 lemma tag, #4 note.
+% %% TODO: \long!?
+ \linelabel{-#1}% Ensures hmode.
+% Insert footnote:
+ \@EN@hookfn{%
+ \csname Footnotetext#2\endcsname\@empty{%
+% \@empty v1.12, due to HCY's report of spurious footnote marks.
+ \csname#2notefmt\endcsname
+ \let\@currentlabel\@empty
+ \label{#1}% Need page number of note.
+ \let\nopunct\@gobble % or by \if...
+% Print line numbers:
+ \@ifundefined{r@#1}%
+%%% ...unknown + ...incomplete@ref v1.23: %%%
+ {\differentlines\@EN@unknown\@EN@unknown}%
+ {\let\@EN@incomplete@ref\relax
+ \@EN@xpxpxp \@EN@extract\csname r@#1\endcsname
+ \@EN@incomplete@ref\@EN@incomplete@ref
+ \@EN@incomplete@ref\@EN@incomplete@ref
+ \ifx\@EN@elemp\@EN@Incomplete
+ \G@refundefinedtrue
+ \let\@EN@incomplete@ref\@EN@unknown
+ \fi
+ \@tempswatrue
+ \ifx\@EN@bleml\@EN@eleml \else \@tempswafalse \fi
+% Restart of line numbers / different page!?
+ \ifx\@EN@blemp\@EN@elemp \else \@tempswafalse \fi
+ \if@tempswa
+ \sameline{\@EN@plref\@EN@blemp\@EN@bleml}%
+ \else
+ \@EN@lastline@z@
+ \differentlines{\@EN@plref\@EN@blemp\@EN@bleml}%
+ {\ifx\@EN@blemp\@EN@elemp % v1.23
+ \@EN@eleml
+ \else
+ \pageandline\@EN@elemp\@EN@eleml
+ \fi}%
+% {\@EN@plref\@EN@elemp\@EN@eleml}%
+ \@EN@lastline@z@
+ \fi}%
+% \strut % Redundant (\rule\z@\footnotesep TODO: CHECK)
+% \expandafter \let \csname r@#1\endcsname \relax %% v1.1.
+%% <- 2005/02/21: No, need label for testing.
+ \lemmafmt{{\@EN@lemmaexpands#3}}%
+ \notefmt{#4}%
+ }%
+ }%
+ % Lemma in main text:
+ \nobreak \hskip\z@skip %% 2006/01/12 cf. german.sty: \allowhyphens
+ \@EN@lemmaarg %% Should not end with space so \linelabel...
+%% \allowhyphens not needed here (tested) 2006/01/12
+ \linelabel{+#1}%
+ % \csname #1rightmark\endcsname %% Suggested.
+}
+\let\@EN@hookfn\@firstofone
+\def\@EN@extract#1#2#3#4#5{%
+% #1 note page, #2 first lemma line, #3 first lemma page,
+% #4 last lemma line #5 last lemma page.
+ \def\@EN@tempa{#1}%
+ \def\@EN@bleml{#2}\def\@EN@blemp{#3}%
+ \def\@EN@eleml{#4}\def\@EN@elemp{#5}%
+}
+\def\@EN@unknown{\textnormal{\bfseries ??}} % v1.23
+\def\@EN@Incomplete{\@EN@incomplete@ref} % v1.23
+\def\@EN@lastline@z@{\global\let\@EN@lastline\z@}
+\@EN@lastline@z@ % Next line number in note explicitly.
+\def\@EN@plref#1#2{% #1 page, #2 line.
+% \@EN@tempa is note page from \@EN@extract.
+ \ifx#1\@EN@tempa %% Note and lemma part on same page.
+ \ifx#2\@EN@lastline %% Same line as before.
+ \repeatref#2% %% v1.1: changed use!
+ \else
+ #2\global\let\@EN@lastline#2%
+ \fi
+ \else
+ \pageandline#1#2% %% v1.1: new!
+ \fi
+}
+%
+% Expanding in note version of lemma:
+\let\@EN@lemmaexpands\@empty
+\long\def\@EN@gobble{\@EN@sphack\@gobble}
+\long\def\@EN@gobbletwo{\@EN@sphack\@gobbletwo}
+\long\def\@EN@secondofthree#1#2#3{\@EN@sphack#2}
+\let\IfLemmaTag\@secondoftwo % v1.3
+% <- Had thought I would use it more than once ...
+% ... maybe for replacing some \addlemmaexpands entries:
+\addlemmaexpands{%
+ \let\IfLemmaTag\@firstoftwo
+ \let\notinnote\@EN@gobble
+ \let\@EN@note\@EN@secondofthree
+ \let\@EN@notelabel\@EN@gobbletwo
+% \let\resume\notinnote \let\pause\notinnote
+ % <- v1.23c -- Thanks to Roy Flechner.
+% \let\pause\@EN@pause@ltag % v1.3
+% \let\donote\@EN@gobbletwo
+ \let\label\notinnote \let\linelabel\notinnote
+ \let\<\@EN@ltag@ellipsis
+}
+%% <- TODO: user commands only!? (no \let)
+%% TODO: cf. EDMAC's tag (fonts? accents? -- lineno.sty commands?)
+\let\notinnote\@firstofone
+%
+% Variant of \@EN@process when moving: (v1.21/1.22)
+\long\def\@EN@robust@process#1\<#2\>#3\@nil#4{%
+ #1%
+ \ifx\@nnil#2#3\@nnil
+ % No ellipsis, #1 all of user's input, dummy \<\> gobbled.
+ \else
+ \@EN@sphack@aux{}% for ensuing space in .aux, v1.3
+ \ifx\@nnil#3\@nnil % \<, but no \> from user.
+ % #2 ends on \<, \>\@nil gobbled.
+ \@EN@robust@gobble@pause#2\@nil
+ \else % #3 ends on dummy \<\>.
+ \@EN@gobble@resume
+ \@EN@robust@gobble@pause#2\@EN@sphack@aux{}#3\@nil\@nil
+ \fi
+ \fi
+}
+\DeclareRobustCommand{\@EN@sphack@aux}{\@EN@sphack\@gobble}
+\long\def\@EN@robust@gobble@pause#1\<\@nil{%
+ \@EN@gobble@opt@till#1<>\@nil}
+\long\def\@EN@gobble@opt@till#1<#2>#3\@nil{%
+ \ifx\@nnil#3\@nnil
+ #1\ifx\@nnil#2\@nnil \else
+ <\@EN@gobble@less#2\@nil \fi % v1.3
+ \else
+ \ifx\@nnil#1\@nnil\else#1<#2>\fi \@EN@gobble@diamond #3\@nil
+ \fi}
+ % <- TODO weak against aggressive expansion
+\long\def\@EN@gobble@less#1<\@nil{}
+\long\def\@EN@gobble@diamond#1<>\@nil{#1}
+%
+% Shorthand macros for lemma in moving argument:
+\newcommand\RobustTestOpt{%
+ \ifx\protect\@typeset@protect \else
+ \expandafter \@EN@robust@test@opt
+ \fi
+}
+\long\def\@EN@robust@test@opt#1#2#{%
+ \ifx\@nnil#2\@nnil
+ \@EN@xpxpxp \@EN@expand@with@default
+ \else
+ \@EN@xpxpxp \@EN@expand@with@option
+ \fi
+ #1#2}
+\newcommand\@EN@expand@with@default[4]{#3[{#4}]}
+\newcommand\@EN@expand@with@option[4]{#3}
+
+\newcommand\NewEdnotesCommand{%
+ \@ifstar{\@EN@newcommand*}{\@EN@newcommand{}}}
+\def\@EN@newcommand#1#2[#3][#4]{%
+ \expandafter \newcommand \expandafter #2\expandafter {%
+ \expandafter \RobustTestOpt \csname \string #2\endcsname}
+ \def\@tempa{\newcommand#1}%
+ \expandafter \@tempa \csname \string #2\endcsname[#3][#4]}
+
+% Handling \Anotelabel etc.:
+% \@EN@lemmaarg is to become the LEMMA argument for \@EN@process.
+% A first version is obtained by reading unto the \donote
+% bearing the same label. \@EN@lemmaarg is then rebuilt,
+% replacing \pause and \resume by \< and \>.
+\def\@EN@notelabel#1#2{% #1 note family, #2 label.
+ \IfTypesetting{% v1.3
+ \def\@EN@notefam{#1}%
+ \def\@EN@laplabel{#2}%
+ \let\@EN@lemmaarg\@empty
+ \let\@EN@next\@EN@firstnext
+ \@EN@next
+ }\relax % Second argument: otherwise do nothing.
+% The following removed braces urgently needed:
+% \@EN@getlabel\donote
+% {\@EN@laplabel
+% \expandafter\def\expandafter\@EN@next\expandafter
+% {\expandafter\@EN@replacepause
+% \@EN@lemmaarg\pause\@nil\resume\@nil}%
+% \else
+% \@EN@appendwrong
+% }%
+}
+\long\def\@EN@firstnext#1\donote#2#3{%
+ \def\@EN@tempa{#2}%
+ \ifx \@EN@tempa \@EN@laplabel
+ \@EN@addtomacro\@EN@lemmaarg{#1}%
+ \expandafter \def \expandafter \@EN@next \expandafter {%
+ \expandafter \@EN@replacepause
+ \@EN@lemmaarg \pause\@nil\resume\@nil{#3}}%
+ \else
+ \@EN@addtomacro\@EN@lemmaarg{#1\donote{#2}{#3}}%
+ \fi
+ \@EN@next
+}%
+\def\@EN@getlabel#1#2{%
+% jump to cs #1, #2: on \@EN@tempa=...
+% \let#2\@empty
+ \def\@EN@appendwrong{%
+ \expandafter\@EN@addtomacro \expandafter\@EN@lemmaarg
+ \expandafter {\expandafter#1\expandafter{\@EN@tempa}}%
+ }%
+ \long\def\@EN@next##1#1##2{%
+ % %% TODO: \let [pre-defined] for efficiency!?
+ \@EN@addtomacro\@EN@lemmaarg{##1}%
+ \def\@EN@tempa{##2}%
+ \ifx\@EN@tempa#2\fi
+ \@EN@next
+ }%
+ \@EN@next
+}
+\def\@EN@replacepause{%
+ \let\@EN@lemmaarg\@empty
+ \@EN@getlabel\pause
+ {\@nnil
+ \def\@EN@next\resume\@nil{\@EN@donote}%
+ \else
+ \ifx\@EN@tempa\@EN@laplabel
+ \@EN@addtomacro\@EN@lemmaarg\<%
+ \let\@EN@next\@EN@replaceresume
+ \else
+ \@EN@appendwrong
+ \fi
+ }%
+}
+\long\def\@EN@replaceresume#1\pause\@nil{%
+ \@EN@getlabel\resume
+ {\@nnil
+ \let\@EN@next\@EN@donote
+ \else
+ \ifx\@EN@tempa\@EN@laplabel
+ \long\def\@EN@next####1\resume\@nil
+ % %% TODO: \let [pre-defined] for efficiency!?
+ {\@EN@addtomacro\@EN@lemmaarg{\>####1}\@EN@donote}%
+ \else
+ \@EN@appendwrong
+ \fi
+ }%
+ #1% \resume\@nil ahead.
+}
+\def\@EN@donote{\expandafter\@EN@process\@EN@lemmaarg \<\>\@nil}
+%
+% Variants for \@EN@notelabel in lemma tag or when moving:
+% (v1.3)
+\def\@EN@notelabel@cmd#1#2#3{%
+ \IfLemmaTag{#2}{%
+ \IfTypesetting{%
+ \PackageError{ednotes}{Misplaced \string#1}{%
+ Missing ...notelabel;
+ cf. package documentation.}%
+ }{\@EN@sphack@aux{}#3}}}
+%
+\newcommand\pause{%
+ \@EN@notelabel@cmd\pause
+ {\futurelet\@let@token\@EN@pause@ltag}\@EN@pause@aux}
+\def\@EN@pause@ltag#1{%
+ \@EN@sphack\ifx\@let@token<\expandafter\@EN@gobble@opt\fi}
+\def\@EN@gobble@opt<#1>{}
+\long\def\@EN@pause@aux#1#2\resume{%
+ \@EN@gobble@opt@till #2<>\@nil\resume}
+%
+\newcommand\resume{%
+ \@EN@notelabel@cmd\resume\@EN@gobble\@gobble}
+\newcommand\donote{%
+ \@EN@notelabel@cmd\donote\@EN@gobbletwo\@gobbletwo}
+
+% v1.1: reduce number of control strings from \newlabel.
+% We keep using \linelabel and \label for kind of simplicity and
+% because modifying them would hardly save time or save us from
+% the difficulties that we face here. Instead we modify
+% \newlabel to prevent it from dealing with labels coming from
+% annotations in the usual way.
+%
+% Storing and restoring of \newlabel and `lineno.sty's
+% \getpagewiselinenumber: %% TODO: do without the latter anyway?
+\let\@EN@newlabel\newlabel
+\let\@EN@getpagewiselno\getpagewiselinenumber
+\let\getpagewiselinenumber\relax
+\AtBeginDocument{\let\getpagewiselinenumber\@EN@getpagewiselno}
+%
+% For each lemma and note, there will be one macro carrying the
+% corresponding line and page numbers. Below, \@EN@tempa will
+% carry the name of that macro. \@EN@bleml will be the line
+% number, \@EN@blemp the page number from the \newlabel arguments.
+% \@EN@extractcslp will do the assignments for \@EN@tempa,
+% \@EN@bleml, and \@EN@blemp. Three \newlabel's will come to
+% deliver the numbers for one note, each will add to the
+% expansion code of the corresponding macro. The page number of
+% the note is attached to the left; ensuring that it is on the
+% same place in each case. (Indeed, usually the .aux entry from
+% the note comes .aux after the final entry from the lemma, but
+% when a page break happens within the latter, this order may
+% reverse.) \@EN@addtolabeldef will do this. It will at first
+% look as if \@EN@extractcslp and \@EN@addtolabeldef should
+% better have been merged into one single macro; however, we
+% need them for the final testing function below, where they
+% appear in different contexts.
+% TODO: The format of the numbers list is
+% {<notepage>}{<blemline>}{<blempage>}{<elemline>}{<elempage>}
+% This is LaTeX-like, cf. storing of the numbers for a usual
+% \ref. It is easy to read the second or so term. Yet it wastes
+% a lot of memory with critical editions. It might be better to
+% use a single token as separator, as (L)EDMAC do.
+%
+\def\@EN@addtolabeldef#1#2{% add #1 left, #2 right.
+ \expandafter \protected@xdef \@EN@tempa{%
+ #1\@EN@tempa#2}}
+\def\@EN@fornotelabel#1#2#3{% #1 sign, #2 label, #3 def.
+ \in@{\@@#1EN@l}{\@@#2}% LaTeX's \in@, \ifin@.
+ \ifin@
+ \@EN@extractcslp#2\@nil#3\@nil
+% Now, in one step, \@EN@tempa expands to the name of the macro
+% that \newlabel defines at \begin{document}.
+% The \newlabel with `-' will always come first, so this macro
+% has not been defined yet:
+ \expandafter\@firstoftwo
+ \else
+ \expandafter\@secondoftwo
+ \fi}
+\def\newlabel#1#2{%
+% It should be possible to read #2 later, but it's difficult.
+% ...extractcslp might be split into parts of ...fornotelabel
+% and some other macro doing more. [TODO]
+ \@EN@fornotelabel-{#1}{#2}{%
+ \@EN@addtolabeldef\@gobble{{\@EN@bleml}{\@EN@blemp}}%
+% \typeout{\expandafter\string\@EN@tempa \space
+% (-) \expandafter\meaning\@EN@tempa}%
+ }{\@EN@fornotelabel+{#1}{#2}{%
+ \@EN@addtolabeldef{}{{\@EN@bleml}{\@EN@blemp}}%
+% \typeout{\expandafter\string\@EN@tempa \space
+% (+) \expandafter\meaning\@EN@tempa}%
+ }{\@EN@fornotelabel{}{#1}{#2}{%
+ \@EN@addtolabeldef{{\@EN@blemp}}{}%
+% \typeout{\expandafter\string\@EN@tempa \space
+% (p) \expandafter\meaning\@EN@tempa}%
+ }{\@EN@newlabel{#1}{#2}}%
+ }% +
+ }% -
+}
+\@onlypreamble\newlabel % Unlike LaTeX, but get rid of all of
+% % this. A new version comes \AtEnd...
+%
+\def\@EN@extractcslp#1E#2\@nil#3#4#5\@nil{%
+% #1 "sign", #2 label after `E'; #5 for `hyperref.sty'.
+% The `E' is needed when neither - nor + ...
+ \expandafter \def \expandafter \@EN@tempa \expandafter{%
+ \csname r@E#2\endcsname}%
+% Use `r@' for \ref, cf. \@EN@putdown.
+ \def\@EN@bleml{#3}\def\@EN@blemp{#4}}
+% <- Just avoid additional control strings.
+% No \@onlypreamble, use it in the final run as well.
+%
+% v1.1: final testing of label changes with the compressed
+% definitions (cf. `lblchng1.sty').
+% We use the compression mechanism from the beginning to
+% determine the definitions for the next run. To compare them
+% with the present definitions, the latter must be stored
+% before. With nesting or overlapping lemmas, other notes may
+% send their information before the new definition for one note
+% has been finished. And when we receive data from these other
+% notes, we must store their previous data as well. So we cannot
+% use one single control string to \let it be the string that
+% carries the previous data corresponding to a note. Yet we
+% don't want to double the number of strings corresponding to
+% notes here. So we store the definitions in one single list,
+% yet only for as long as the comparison has not been completed.
+%
+% To tell to the third \newlabel that it is the third indeed,
+% the second \newlabel adds \@EN@ready together with number(s):
+\def\@EN@test@addtolabeldef#1#2{%
+ \expandafter
+ \ifx \@EN@tempa \relax \else
+% Test whether this is the third \newlabel for the note:
+ \@EN@xpxpxp \in@
+ \expandafter\expandafter\expandafter \@EN@ready
+ \expandafter\expandafter\expandafter {\@EN@tempa}%
+ \ifin@ \let\@EN@ready\@empty \fi
+ \@EN@addtolabeldef{#1}{#2}% Warning: should not use \in@!
+ \ifin@
+ \let\@EN@ready\relax
+ \expandafter\@EN@prepare@fromtl\@EN@tempa\@nil
+ \expandafter\@tempa\@EN@testinglist\@nil
+ \expandafter
+ \ifx \@EN@tempa \@tempa \else
+ \@tempswatrue
+ \ifx\@tempa\relax \else
+ \expandafter\@EN@takepagesto\@tempa\@tempa
+ \@EN@xpxpxp \@EN@takepagesto\@EN@tempa\@EN@tempa
+% The message may come when line numbers have changed, not page
+% numbers. This may puzzle some users, but should be harmless.
+ \typeout{^^JPackage `ednotes.sty':^^J%
+ *** A lemma or note moved. Page numbers
+ \@tempa\space turned into \@EN@tempa.^^J***
+ Rerun and watch whether they come to rest and references
+ get right.^^J*** If they don't, use \string\pagebreak\space
+ or \string\warningpagebreak\space to force^^J*** the earlier
+ of oscillating page breaks.^^J*** (Cf. package documentation
+ on `oscillating page breaks'.)}%
+ \let\newlabel\@EN@newlabel
+ \def\@newl@bel{\@gobblefour\relax}% Cf. `lblchng1.sty'.
+ \fi
+ \fi
+ \fi
+ \fi
+}%
+\let\@EN@ready\relax
+\let\@EN@testinglist\@empty
+\def\@EN@testlabel#1#2{% Don't change \@testdef -- `lblchng1.sty'.
+% Cf. our \newlabel for details. \@EN@testlabel is an extension
+% of it.
+% \typeout{testinglist: \meaning\@EN@testinglist}%
+ \@EN@fornotelabel-{#1}{#2}{%
+ \expandafter
+ \ifx \@EN@tempa \relax % Label #1 not used in previous run.
+ \@tempswatrue % Just to behave like LaTeX's \@testdef.
+ \else % Only otherwise delicate procedure is required.
+% Put to testing list:
+ \protected@edef \@EN@testinglist{\@EN@testinglist
+ \expandafter \protect \@EN@tempa{\@EN@tempa}}%
+% First contribution to ...:
+ \@EN@addtolabeldef\@gobble{{\@EN@bleml}{\@EN@blemp}}%
+ \fi
+% \typeout{\expandafter\string\@EN@tempa \space
+% (-) \expandafter\meaning\@EN@tempa}%
+ }{\@EN@fornotelabel+{#1}{#2}{%
+ \@EN@test@addtolabeldef\@EN@ready{%
+ {\@EN@bleml}{\@EN@blemp}}%
+% \typeout{\expandafter\string\@EN@tempa \space
+% (+) \expandafter\meaning\@EN@tempa}%
+ }{\@EN@fornotelabel{}{#1}{#2}{%
+ \@EN@test@addtolabeldef{{\@EN@blemp}}\@EN@ready
+% \typeout{\expandafter\string\@EN@tempa \space
+% (p) \expandafter\meaning\@EN@tempa}%
+ }{\@EN@newlabel{#1}{#2}}%
+ }% +
+ }% -
+}
+%
+\def\@EN@prepare@fromtl#1\@nil{%
+ \def\@tempa##1\protect#1##2##3\@nil{%
+ \def\@tempa{##2}\def\@EN@testinglist{##1##3}}}
+\def\@EN@takepagesto#1#2#3#4#5#6{\def#6{#1, #3, #5}}
+\AtEndDocument{\let\newlabel\@EN@testlabel
+ \let\getpagewiselinenumber\relax} %% TODO without!?
+%
+% v1.23: \warningpagebreak:
+\AtEndDocument{\@EN@pagebreaks@finalwarn}
+\let\@EN@pagebreaks@finalwarn\relax
+\def\@EN@pagebreaksfinalwarn{%
+ \typeout{^^J%
+ Package ednotes: There have been \string\warningpagebreak\space
+ occurrences.^^JFor your final version, we recommend checking
+ whether they still are^^Jappropriate.^^J}%
+}
+\def\warningpagebreak{%
+ \@EN@warning{Page break (\string\warningpagebreak)
+ from user^^J-- still appropriate in final version!? --}%
+ \global\let\@EN@pagebreaks@finalwarn\@EN@pagebreaksfinalwarn
+ \pagebreak}
+%% TODO: \afterassignment possible anywhere?
+%% TODO: remove testing \typeout's.
+
+%% Reminder about `mfparxsp.sty':
+\AtBeginDocument{%
+ \@ifpackageloaded{mfparxsp}{%
+ \PackageWarningNoLine{ednotes}{%
+%% TODO: \PackageError?
+ You have loaded `mfparxsp.sty',\MessageBreak
+ which defines \string\MFparaxbuffer.\MessageBreak
+ We recommend, instead, \string\ExtraParaSkip\space
+ \MessageBreak
+ from `manyfoot.sty' version 1.7\MessageBreak
+ (CTAN:macros/latex/ncctools).\MessageBreak
+ Cf. ednotes package documentation%
+ }%
+ }\relax
+}
+
+\endinput
+
+%% TODO: \newcommand whenever possible!?
+%% TODO: with v1.1: warn about \label{[-+]EN@l...}. Maybe make
+%% \label and \linelabel internal, new user versions check
+%% the argument.
+%% TODO: warn about \usepackage{foo} where foo is loaded by option!?
+%% TODO: .dtx
+%% TODO: license for *bundle*
+%% TODO: ... or cf. the brief and clear conditions in Eurofont
+%% (Rowland McDonnell)
+%% TODO: Bigfoot/e-TeX (Kastrup)
+%% TODO: compatibility with Parallel.sty -- Sergei Mariev 2003/06/19.
+%% (hopeless, I'm afraid) -- 2005/02/19: Cf. Peter Wilson's
+%% ledpar.
+
+%% VERSION HISTORY:
+v0.36 2003/01/13 First version sent around.
+v0.37 2003/01/22 Added version history and reference to
+ `mfparptc.sty'.
+v0.38 2003/01/27 Improved copyright notice.
+v0.39 2003/02/06 Documentation: output + splitting problem,
+ explanations of recommended packages.
+v0.4 2003/03/03 Splitting problem remedied by linenox0.
+v0.41 2003/03/03 our owns -> ourselves. + !?
+v0.42 2003/03/04 Some remarks/TODOs, especially concerning \SplitNote,
+ changed lppl hint.
+v0.43 2003/03/23 Doc.: "may" -> "must" [not be hidden].
+v0.44 2003/03/24 Took e-mail addresses list from edtab;
+ added comparison with LEDMAC.
+ TODOs for reading `MFPartPtc.sty';
+ \Require...{linenox0}[2003/03/23];
+ changed acknowledgements: still remains?
+ Stephan's approach, encouragement, U.L.;
+ minor changes in `overview'; point to
+ EDMAC homepage; TODO: ruled user's choice?
+ ---Sent to Peter and Dominik.
+v0.45 2003/03/28 LEDMAC hint: replaced `Correct me ...' by
+ "single printable file" + "enhanced";
+ Version History: 04 -> 03 at v0.44;
+ MFParPtc ToDo below: !! -> !?
+ ---Sent to Peter.
+v0.46 2003/04/15 \renewcommand -> \newcommand in \Anotefmt
+ customization---thanks to Robert Alessi!
+ added bug report acknowledgement.
+v0.47 2003/05/01 Added \@ in \textsymmdots.
+v0.48 2003/06/22 Replaced \@secondoftwo by \@EN@second (Hyperref);
+ placed \let\@EN@lastline correctly---both
+ thanks to Sergei Mariev!
+ 2003/07/09 Added note on `hyperref.sty'.
+v0.49 2003/09/03 Added documentation to evade the \donote bug.
+ 2003/11/06 Require corrected `linenox0.sty'.
+ 2003/11/13 Require corrected `lineno.sty'.
+v0.5b 2003/12/30 Added \@EN@first and \@EN@gtempa for \repeatref.
+ 2003/12/31 Removed argument redundancy in \addlemmaexpands.
+v0.5 2004/01/04 Added \@EN@CWhook for counting words package.
+v0.51 2004/01/06 Require corrected `linenox0.sty'.
+v0.6 2004/03/01 Removed two lines from preamble and mention of
+ \donote bug (v0.49), fixed the latter.
+v0.61 2004/04/15 Changed `Comparison with LEDMAC' concerning TABMAC
+ and implementation, reformulated `acknowledgements'.
+ Unified quotation marks with `....sty'.
+ 2004/04/22 Removed `wait vor Alex...' and `CTAN soon'
+ concerning LEDMAC.
+ 2004/04/28 Removed `New with v0.4'.
+ 2004/05/12 Removed `few weeks' before `similar' in doc.,
+ changed doc. concerning effects of different
+ implementations. Mentioned indexing, `Edstanza',
+ "minipage", and sidenotes concerning LEDMAC.
+ Included Florian Kragl in acknowledgements.
+ Added `A problem' (notes height estimation).
+ Sent around. Added Christian to copyright,
+ L"uck -> L\"uck. `edtab02' -> `edtable'.
+ 2004/07/20 Suggested \csname #2leftmark etc.
+ 2004/07/22 Used \DeclareOption*, removed `BETA TEST RELEASE'.
+v0.62 2004/08/16 \RequirePackage{linenox0}[2004/08/12], LPPL v1.3;
+ \@EN@shortlemmatag, \@EN@initlemmatag,
+ \@EN@finmathlemmatag.
+v0.63 2004/08/16 Replaced previous by \@EN@simplelemmatag and
+ \@EN@mathlemmatag.
+v0.64 2004/08/19 Removed stars from ...newcommands of macros
+ that have no parameter, added some with
+ parameters (undid this?), however made
+ \lemmafmt and \notefmt long (star).
+ 2004/08/22 Changed `Packages required'.
+ 2004/08/31 Rearranged preamble concerning maintenance.
+v0.7 2004/09/19 \Req...{linenox0}... etc. only with lineno v<4.
+ 2004/09/20 Adjustment of instructions to bundle changes;
+ `I.' after `Alexander'.
+v0.71 2004/09/21 Took explanation for \ExtraP... from `mfparxsp.sty'
+ and removed mention of the latter;
+ removed a comment mark from a documentation line.
+ Changed lineno.sty/tex into ...pdf.
+v1.0 2004/10/07 Changed documentation for additional options for
+ `edtable', `edmacpara', `countoccurrences'; hint at
+ TUGboat article; removed mention of `linenox0.sty'.
+ 2004/10/08 Replaced \newif\if@EN@Apara@; replaced redundant
+ option passes redundancy warnings; options
+ `edmacpara' and `countoccurences'; removed TODOs
+ concerning `mfparptc.sty'.
+ 2004/10/11 `perpage' option; acknowledgements for co-operation.
+ 2004/10/13 Require debugged `mfparptc.sty' and `edcntwd0.sty'
+ as well as `lineno.sty' equipped with new options.
+ 2004/10/18 Reminder on `mfparxsp.sty', changed TODOs.
+v1.0a 2004/11/07 LPPL v1.3a.
+v1.0b 2005/01/10 Contact via http.
+ 2005/01/19 Mentioned `ellipsis' package.
+v1.01 2005/02/05 \Packagewarning -> \PackageWarning.
+v1.1b 2005/02/20 Documentation: `ledpar', `ednotugb.pdf',
+ implementation. Only one cs per note -> much
+ different! Require new `edcntwd0,sty'.
+ With v1.1b, testing (`lblchng1.sty') is
+ disabled.
+v1.1c 2005/02/20 Deleted \tracingmacros, earlier kept erroneously.
+v1.1d 2005/02/21 Final testing of label changes. Moved v1.1 macros
+ towards end.
+ 2005/03/06 Reimplemented compression (v1.1b) and final
+ testing (v1.1d) very much + minor changes.
+v1.1 2005/03/08 Notes on \repeatref, \pageandline, and new
+ `edcntwd0.sty' version. Top: `editory notes' ->
+ `critical editions'. Acknowledgement to Roy
+ Flechner.
+v1.11 2005/04/07 Doc typo with ...plref.
+ 2005/04/09 \Provides...: `editory notes' -> `critical
+ editions'. Sent to Ednotes.news .
+v1.12 2005/04/09 \@empty with Footnotetext...
+v1.12a /04/09 Acknowl. Hillel Chayim Yisraeli.
+ 2005/04/10 Supplied LPPL URL, corrected \file...
+ Sent to CTAN and Ednotes.news .
+v1.12b /04/11 address -> URL .
+ 2005/05/01 Due to removing \@EN@first, older version of
+ edcntwd0.sty suffices.
+ 2005/05/12 Remark on hyperref changed due to
+ lineno.sty v4.3 .
+[not sent, not tested]
+v1.12c /09/21 Doubled some hash marks in explanation of
+ customization, adapted doc. to \@EN@sphack.
+[not sent]
+
+v1.2b 2005/09/22 Updated doc. wrt. availability of manyfoot.sty;
+ \PrecedeLevelWith .
+ 2005/09/24 \let\notthislemma\@firstofone (was bug without).
+v1.2 2005/10/01 \notthislemma -> \notinnote; explained \Precede...
+ Sent to CTAN.
+v1.2a 2005/10/02 supplied mention of HCY for v1.12. [not sent]
+v1.21 2005/10/12 \@EN@process tests #3 on empty without \@EN@tempa;
+ withdummy -> gobble@pause,
+ killresume -> gobble@resume;
+ \@EN@robust@process.
+v1.22b /11/21 \if@EN@in@note; \@EN@firstnext.
+ 2005/11/28 @EN@in@note -> LemmaTag; \@EN@gobble[two]
+ 2006/01/12 \allowhyphens in \@EN@putdown.
+ 2006/01/13 New \<<...>...\>. [to Lekhtman]
+ 2006/01/15 \long with \@EN@lemma@ellipsis;
+ removed general definition of \< .
+v1.22 2006/01/16 \@EN@robust@process now really gobbles note,
+ removed wrong \@empty from \@EN@gobble@diamond;
+ \RobustTestOpt, \NewEdnotesCommand.
+v1.23 2006/01/23 Example on \NewEdnotesCommand: default "B" -> "A".
+ 2006/06/07 Changed page-line algorithm with \differentlines;
+ edcntwd0.sty v0.32 required;
+ \c@EN@label LaTeX counter;
+ \expandafter\expandafter\expandafter -> \@EN@xpxpxp
+ 2006/06/15 \@EN@warning; edcntwd0.sty v0.32a required.
+ 2006/06/16 Additional screen advice with oscillating page breaks
+ + explanation in manual (\warningpagebreak).
+v1.23a /06/20 Corrected \RequirePackage{edcntwd0}-date.
+v1.23b /06/22 Require manyfoot v1.9.
+ /06/26 LPPL v1.3c; require mfparptc v4.1; remarks on
+ hyphenation of first word in lemma tag.
+v1.23c /06/27 Fix for \pause/\resume in lemma tag (Roy Flechner,
+ a few day later Christian Tapp as well).
+v1.3 2006/06/27 affirmed \long's (were TODOs); simplified
+ \@EN@gobble@pause.
+ 2006/06/28 \@EN@robust@process refined; gobble \>\@nil etc.;
+ \@EN@sphack@aux.
+ 2006/06/29 \ifLemmaTag -> \IfLemmaTag (-> doc.);
+ lemma@ellipsis -> ltag@ellipsis; \IfTypesetting;
+ \@EN@notelabel@cmd, \@EN@pause@ltag, \@EN@pause@aux.
+ 2006/07/05 \SelectAnoteRule etc. supporting
+ manyfoot's \SelectFootnoteRule.
+ 2006/07/06 \includeonly just with \@addtoreset{@ckpt}.
+ [Sent to CTAN, Christian, Sergei]
+v1.3a 2006/07/20 Blank screen line above/below final warning.
+ 2006/10/05 News about perpage.
+
diff --git a/macros/latex/contrib/ednotes/ednotes.tex b/macros/latex/contrib/ednotes/ednotes.tex
new file mode 100644
index 0000000000..7b42c6a007
--- /dev/null
+++ b/macros/latex/contrib/ednotes/ednotes.tex
@@ -0,0 +1,118 @@
+%% Ednotes.tex --
+\title{\LARGE \bf \textit{ednotes.sty} \\
+ for critical editions with \LaTeX \\[1ex]
+ \normalfont \Large
+ Lazy \texttt{ASCII}$\to$\texttt{PDF} listings}
+\author{Uwe L\"uck}%%%\thanks{advised by Christian Tapp.}}
+\documentclass[10pt]{article}
+\usepackage{verbatim}
+\pagestyle{headings}
+\newcommand*{\cs}[1]{\texttt{\char"5C #1}}
+\newcommand*{\lcurl}[1]{\[\texttt{CTAN:/macros/latex/contrib/#1}\]}
+\begin{document}
+\maketitle
+\section*{Preface}
+
+\texttt{ednotes[.sty]} is a macro package or bundle of
+macro files for scholarly critical editions---typed
+by U.\,L.\footnote{$\dots$ originally under the direction of
+Christian Tapp at a research project granted by the
+Deutsche Forschungsgemeinschaft (DFG).}
+It is little more than a user interface for combining
+Stephan~I.\ B\"ottcher's \texttt{lineno.sty} and
+Alexander~I.~Rozhenko's \texttt{manyfoot}.
+
+Recent CTAN policy urges to upload \texttt{PDF}
+documentation accompanying \TeX\ macro files.
+% such files
+% do exist for the underlying \texttt{lineno.sty}---
+% \lcurl{lineno.pdf}
+% (plus a supplementary \texttt{lnosuppl.pdf} there)---and
+% as
+% \lcurl{manyfoot.pdf}
+% plus
+% \lcurl{nccfoots.pdf}
+% for the underlying \texttt{manyfoot.sty}\,.
+%
+% $\dots$ well,
+Sorry, a documentation of this kind doesn't exist
+at present for \texttt{ednotes} $\dots$---I am just offering
+some ersatz \texttt{PDF} documentation: listings of the
+\texttt{.sty} files belonging to the \texttt{ednotes} bundle,
+structured and navigatable through a table of contents.
+
+For making use of the options that \texttt{ednotes.sty}
+provides, it is vital to know the underlying
+\texttt{lineno.sty}---and its documentation.
+\texttt{ednotes} just passes \texttt{lineno} commands and
+options to the latter. So please notice
+\lcurl{lineno/lineno.pdf}
+as well as (if you need it)
+\lcurl{lineno/lnosuppl.pdf\,.}
+In the same directory, there are other macro files that
+\texttt{ednotes.sty} may need and whose documentation may
+be contained in \texttt{lnosuppl.pdf} (in the same
+pseudo-\texttt{PDF}-style as present).
+
+% Sorry, I haven't had the time for making a proper \texttt{PDF}
+% documentation for the present \texttt{ednotes} bundle.
+% What I am offering is nothing but a somewhat structured listing
+% of the additional \texttt{.txt} and \texttt{.sty} files,
+% deriving from the \texttt{verbatim} package and its
+% \cs{verbatiminput} command. I hope that the high quality
+% (scalable) output is worth it.
+
+Please don't overlook that \lcurl{lineno/ednotugb.pdf} contains
+a (printable) \emph{overview} on the facilities of
+\texttt{ednotes}, as well as a comparison with Peter Wilson's
+alternative \texttt{ledmac}.
+
+% \clearpage
+\tableofcontents
+
+\section{The \texttt{.txt} files}
+\subsection{First encounter with \texttt{ednotes} on CTAN:
+ \texttt{README}}
+\verbatiminput{README}
+\subsection{Adding on installing etc.: \texttt{READMORE.txt}}
+This is an extended "README" version
+for learning how to complete your download.
+\verbatiminput{READMORE.txt}
+\subsection{What has changed since your earlier downloads:
+ \texttt{CHANGES.txt}}
+\dots\ lists changes the bundle underwent in a chronolical order.
+\verbatiminput{CHANGES.txt}
+\subsection{Advice for installation: \texttt{visible.txt}}
+Some very down-to-earth advices for real \TeX-newbies:
+\verbatiminput{visible.txt}
+\subsection{Really recent? \texttt{CHANGING.txt}}
+You might consider whether the snapshot (TeXLive most notably)
+of the \texttt{ednotes} bundle that you have received most
+recently displays the most recent (and perfect) state of it.
+\verbatiminput{CHANGING.txt}
+
+\section{The main file: \texttt{ednotes.sty}}
+\verbatiminput{ednotes.sty}
+
+\section{Supplementary macro files}
+\subsection{Tracking page break oscillations:
+ \texttt{lblchng1.sty}}
+\verbatiminput{lblchng1.sty}
+\subsection{A lemma repeated in a line: \texttt{edcntwd0.sty}}
+\verbatiminput{edcntwd0.sty}
+\subsection{Some \texttt{para}-footnote hack: \texttt{mfparptc.sty}}
+This deals with a problem that still needs much thinking \dots
+\par
+\verbatiminput{mfparptc.sty}
+\subsection{A reminder of obsoleteness: \texttt{mfparxsp.sty}}
+This file just tells that some earlier facility dealing with
+vertical spacing has been superseded by \texttt{manyfoot}'s
+more recent \cs{ExtraParaSkip}\,.
+\verbatiminput{mfparxsp.sty}
+
+\section{\texttt{varnrule.tex}---customizing footnote rules}
+\verbatiminput{varnrule.tex}
+
+\end{document}
+
+end of Ednotes.tex
diff --git a/macros/latex/contrib/ednotes/ednotugb.pdf b/macros/latex/contrib/ednotes/ednotugb.pdf
new file mode 100644
index 0000000000..666e058124
--- /dev/null
+++ b/macros/latex/contrib/ednotes/ednotugb.pdf
Binary files differ
diff --git a/macros/latex/contrib/ednotes/edtable.sty b/macros/latex/contrib/ednotes/edtable.sty
new file mode 120000
index 0000000000..5fd6f55bc8
--- /dev/null
+++ b/macros/latex/contrib/ednotes/edtable.sty
@@ -0,0 +1 @@
+../lineno/edtable.sty \ No newline at end of file
diff --git a/macros/latex/contrib/ednotes/emathtst.tex b/macros/latex/contrib/ednotes/emathtst.tex
new file mode 100644
index 0000000000..527d360295
--- /dev/null
+++ b/macros/latex/contrib/ednotes/emathtst.tex
@@ -0,0 +1,53 @@
+%% EMathTst.tex for demonstrating EdnMath0.sty.
+%% Uwe L"uck, http://www.contact-ednotes.sty.de.vu, 2005/01/16.
+\documentclass[12pt]{article}
+\def\Anote#1#2{#1} \let\<\relax \let\>\relax
+% \usepackage{ednotes}
+\usepackage[mathrefs]{lineno}
+
+\begin{document}
+
+\begin{linenumbers}
+% \begin{NoNotesToMath}
+\linenumberdisplaymath
+\noindent
+\texttt{\string\ \unskip linelabel} and
+\texttt{\string\ \unskip Anote} in math mode?
+\begin{linenomath}
+$$
+% \begin{displaymath}
+% \begin{equation}
+x=\Anote{z}{$Z$}
+% {\makeatletter \typeout{\meaning\@EN@lemmatag}}
+\linelabel{Hm}
+% \end{equation}
+% \end{displaymath}
+$$
+\end{linenomath}
+% \end{NoNotesToMath}
+$a=\Anote{x\<y\>z}{$b$}
+% {\makeatletter \typeout{\meaning\@EN@lemmatag}}
+\linelabel{Hmm}
+$.
+Why not?
+\begin{NoNotesToMath}
+Line No.~\ref{Hm}.
+\Anote{No \<math\> here.}{Went wrong earlier.}
+% {\makeatletter \typeout{\meaning\@EN@lemmatag}}
+\end{NoNotesToMath}
+Line No.~\ref{Hmm}.
+\end{linenumbers}
+
+% \tracingonline=1
+% \showboxdepth=1
+% \showboxbreadth=30
+% \showlists
+
+% % These really get lost:
+% \linenumbers
+% \mbox{\Anote{Boxed}{where?}.\linelabel{Hu}}
+% Line No.~\ref{Hu}.
+
+\end{document}
+
+
diff --git a/macros/latex/contrib/ednotes/lblchng1.sty b/macros/latex/contrib/ednotes/lblchng1.sty
new file mode 100644
index 0000000000..379a7a5654
--- /dev/null
+++ b/macros/latex/contrib/ednotes/lblchng1.sty
@@ -0,0 +1,260 @@
+%% LblChng1.sty--tell about the first changed LaTeX label.
+\def\fileversion{0.32c} \def\filedate{2005/10/01}
+
+%% Copyright (C) 2005 Uwe L\"uck
+%% Munich, http://contact-ednotes.sty.de.vu.
+%% Current maintainer is Uwe L\"uck.
+
+%% 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.
+%% We did our best to help you, but there is NO WARRANTY.
+
+%% * SUMMARY: *
+%%
+% This package is intended to be a (primitive) tool for
+% fixing oscillating page breaks -- a problem that especially
+% sometimes occurs in typesetting critical editions. Thus it
+% addresses especially users of LaTeX packages lineno, ednotes,
+% and ledmac (maybe even manyfoot and numline). When it has been
+% invoked and some label(s) get an entry in the .aux file
+% differing, with respect to page number, to that of the
+% previous run, the first such label is reported on screen (and
+% in the .log), including the differing page numbers. This
+% should help in finding the first unstable page -- which is
+% vital. The file also contains rather detailed explanations and
+% discussions.
+%
+%% * CRITICAL EDITIONS, PACKAGES: *
+%%
+% For informations about macro packages mentioned in the present
+% text, or about critical edition typesetting in general, I
+% refer you to the web page http://ednotes.sty.de.vu .
+%
+%% * THE PROBLEM TO BE SOLVED: *
+%%
+% Sometimes it happens that LaTeX's final warning "Label(s) may
+% have changed. Rerun to get cross-references right." appears at
+% *every* run, i.e., rerunning doesn't help. Or instead, it may
+% be noticed that certain cross-references keep being wrong.
+% The only reason I know of is that the runs oscillate between
+% two decisions about what material should be put onto a certain
+% page. And the only reason I know for this is that the space
+% consumed by some cross-reference depends on the page breaking.
+% I know this problem from critical edition typesetting.
+%
+%% * OUTLINE of the SOLUTION offered here: *
+%%
+% I simply propose that the user makes up her mind on the nasty
+% page breaks and forces some at a certain lines, or contributes
+% her opinion, through \pagebreak (or maybe even \nopagebreak, I
+% have no idea whether this can be useful). -- A float (`figure'
+% or `table') may contribute to the problem as well, so you may
+% move its LaTeX code or change the placement options (through
+% the brackets argument).
+%
+% Typically, one position of such oscillating causes further
+% page breaking oscillations for many ensuing pages, yielding a
+% bunch of wrong cross-references and countings. Of course, the
+% user then should settle the first occurrence of oscillating
+% before bothering with others -- all the rest of them may
+% disappear when the first one is fixed.
+%
+% One problem with this solution ("?") is that it may be
+% bothersome to find out where the first oscillation occurs
+% indeed (by looking through the .dvi's or .pdf's). The present
+% package tries to help with this.
+%
+% With Peter R. Wilson's ledmac, you have the "ballast"
+% procedure for influencing page breaks. (It is due to John
+% Lavagnino, Dominik Wujastyk, and Wayne Sullivan, inherited
+% from EDMAC). It saves you from looking for good positions for
+% \pagebreak's. I might offer something similar (with
+% lineno.sty/ednotes.sty). However, I would like to object that
+% the "ballast" procedure chooses between two page break
+% possibilities rather "by chance" (reinforcing the first break
+% idea encountered while the other idea might turn out to be
+% better). But I must concede: One of the two breaks between the
+% runs oscillate may turn out not to work, or even both of them
+% -- when the cross-references have been adjusted to that
+% decision. The "ballast" procedure may then save some time for
+% you. On the other hand, if *both* decisions turn out not to
+% work, I wonder whether the "ballast" method will certainly
+% find a working one.
+%
+%% * USAGE: *
+%%
+% 1. \usepackage{lblchng1} in every LaTeX document that you
+% create, or in every critical edition LaTeX document that you
+% create, or only when you run into the problem of not settling
+% label definitions. (Hope that you then remember that there is
+% such a package!)
+%
+% 2a. You will be told about the page numbers where some \label
+% (or, with Stephan I. B\"ottcher's lineno.sty or its extension
+% ednotes.sty, some \linelabel) appears. Observe the page breaks
+% in the .dvi's or .pdf's in the corresponding region. Note that
+% the passage which causes the oscillation may be a number of
+% pages earlier than the page number mentioned in the warning.
+% (Sorry, this is the price of cheapness.) You can get rid of
+% the warning without fixing the real problem -- fixing a late
+% page break preceding the \label -- but this may cause badly
+% filled pages earlier. So it will be wise to identify the very
+% first passage causing oscillating page breaks. -- Another
+% conjecturing hint: According to the diagnosis that I delivered
+% above, the first oscillation happens near a cross-reference
+% whose length varies due to the oscillation. So look for some
+% \ref (or \lineref) referring forward(!). If you are lucky, the
+% \ref refers to the label whose change has been warned about.
+%
+% 2b. If you are working with *ednotes.sty*: ednotes.sty v1.1
+% does something similar with internal informations about each
+% note, and it delivers a similar message on screen and in .log.
+% It reports on three page numbers. However, the first
+% oscillation happens (I think) at most one page before the
+% reported ones.
+%
+% 3a. As indicated above, try to force a certain page break at
+% this passage through \pagebreak (or \nopagebreak?) -- or
+% change the position of a `figure' or `table' in code or in
+% output (brackets argument), if it seems to contribute to the
+% problem. Concerning \pagebreak (\nopagebreak), I personally
+% also think of using the optional argument in the brackets,
+% while I feel unable to judge the value of this. -- I also
+% recommend that you use \typeout near the \pagebreak or so to
+% remind yourself of the \pagebreak -- in case the \pagebreak
+% after some changes suddenly produces a very bad page break
+% and you don't examine the output with sufficient carefulness,
+% being in a hurry, e.g.
+%
+% 3b. With *ledmac*, you may experiment with the "ballast"
+% amount until that first oscillation stops.
+%
+%% * A minor WARNING: * (LaTeX version)
+%%
+% A remark as of 1995/07/13 in ltmiscen.dtx makes me wonder
+% whether the present package works with older versions of
+% LaTeX.
+%
+%% * CRITICAL EDITIONS: * (lineno.sty, ednotes.sty, ledmac)
+%%
+% 1. With Stephan I. B\"ottcher's lineno.sty and its extension
+% ednotes.sty, oscillating page breaking also results in wrong
+% pagewise numbering of lines and in wrongly placed-and-numbered
+% footnotes. I am thinking of refining lineno.sty in addition to
+% the present package. On the other hand, I conjecture that
+% wrong pagewise numbering is *always* (at least sufficiently
+% often) closely accompanied by oscillating cross-references, so
+% the present package may offer sufficient help. -- Well, sorry,
+% this may remain being true with respect to lineno.sty, but
+% since March 2005, ednotes.sty treats its internal line number
+% references in a way that makes them "invisible" to
+% lblchng1.sty. This is very necessary for huge editions with,
+% say, 10.000 notes or more, for a memory capacity reason.
+% ednotes.sty uses an own procedure to detect page number
+% changes, to which lblchng1.sty adds perhaps only little.
+%
+% 2. I guess that even ledmac users may find the present package
+% useful, to find out where they have to watch when trying to
+% adjust the "ballast" appropriately. However, its usefulness
+% depends on how dense LaTeX \label's appear in the edited text.
+% Indeed, it is the pages with the numerous critical footnotes
+% fall where oscillations are likely to occur. \label's may be
+% here when the comments refer to certain sections etc. of the
+% edited text, OK, but will they? The line number references
+% preceding the single notes (just on these "critical" -- in
+% two senses -- pages) might be much more helpful, yet they are,
+% with ledmac.sty, not implemented by \label. And it is wise not
+% to implement them by \label, similarly as with ednotes.sty
+% above. (ednotes.sty still uses \label, to be sure, but it
+% redefines \newlabel in a way that is specific to ednotes.sty's
+% way of storing data about the notes.)
+%
+%% * WONDERING REMARK: *
+%%
+% Oscillating label definitions do not necessarily result in
+% anything wrong. The page number in the label definition may
+% oscillate while not being used by any \pageref. -- I have no
+% idea at present what this tells us to do if it happens so ...
+%
+%% * ACKNOWLEDGEMENTs: *
+%%
+% This package is due to Roy Flechner's confidence in our
+% ednotes.sty and to frightening observations he reported to
+% us. Thanks also to Peter Wilson for moral support.
+
+%% Please send comments via http://contact-ednotes.sty.de.vu.
+
+%% * IMPLEMENTATION: * %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\NeedsTeXFormat{LaTeX2e}[1994/10/30]
+%% <- \@onelevel@sanitize; also \CheckCommand \reserved@a.
+\ProvidesPackage{lblchng1}[\filedate\space\fileversion\space
+ ^^Jexhibiting first changed label]
+
+%% * Main idea: *
+% Testing on label changes is done by \@testdef -- at least I
+% assume this here (and I will somewhat check it). I refine it
+% so it shows the label name and the page numbers -- clearly,
+% what could I do else? (Well, I could redefine \label so ...)
+%
+%% If LaTeX's \@testdef changes, the present package may better
+%% be updated:
+\CheckCommand*\@testdef[3]{%
+ \def\reserved@a{#3}\expandafter \ifx \csname #1@#2\endcsname
+ \reserved@a \else \@tempswatrue \fi}
+\def\@testdef#1#2#3{%% This is what I expect LaTeX to use.
+ \@ifundefined{#1@#2}\@tempswatrue{%% Like LaTeX:
+ \def\@tempa{#3}%
+ \expandafter
+ \ifx \csname #1@#2\endcsname \@tempa
+ \else \@tempswatrue
+%% v0.3: moved disabling \@newl@bel from here to below.
+ \fi %% But now:
+%% To be sure, I additionally assume that the page number is the
+%% second thing, and more. I have had bad experience with
+%% hyperref and thus do not assume that there are just two
+%% things in the last argument of \newlabel.
+ \def\@tempb##1##2##3\@nil##4{%
+ \def##4{##2}\@onelevel@sanitize##4}%
+%% Well, why not use some initially defined \@LC@extractpno
+%% instead of this \@tempb? %% TODO
+%% -- With modern large and fast TeX versions, one should not
+%% waste a second with such considerations. -- However:
+%% different effects concerning compatibility.
+ \expandafter \@tempb \@tempa \@nil\@tempa
+ \expandafter\expandafter\expandafter
+ \@tempb \csname#1@#2\endcsname \@nil\@tempb
+ \ifx\@tempa\@tempb \else
+ \typeout{^^JPackage `lblchng1':^^J%
+ *** Page number of label `#2' is changing: ***^^J%
+ \space\space\space\space
+ was \@tempb, will be \@tempa.^^JWatch whether
+ this stops and references get right.}%
+%% Further testing wouldn't change anything:
+ \def\@newl@bel{\@gobblefour\relax}\fi}}
+%% Warning: this could create an incompatibility with some other
+%% package or with some LaTeX version.
+%% Again: this extra line doesn't pay well nowadays.
+
+\endinput
+
+VERSION HISTORY:
+
+v0.1 2005/02/15 First release for Roy Flechner.
+v0.2b 2005/02/16 Attempt at \getpagewiselinenumbers -- in
+ vain. Improved explanations.
+v0.2 2005/02/17 Changed implementation back; but keep
+ completely disabling \newlabel after the
+ report. Only page numbers are reported.
+ (CTAN and ednotes.news received slightly
+ different explanations than Roy Flechner.)
+v0.3 2005/02/17 \@newl@ble turned off with page no. change
+ only. Doc. warns on compatibility.
+v0.31 2005/02/27 Additional line on screen.
+v0.32 2005/03/08 Adapted explanations to ednotes.sty v1.1;
+ warned about usefulness with critical
+ editions. Changed some headings.
+ Acknowledgements.
+v0.32a 2005/03/21 Minor corrections.
+v0.32c 2005/10/01 Another typo fix.
diff --git a/macros/latex/contrib/ednotes/lineno.pdf b/macros/latex/contrib/ednotes/lineno.pdf
new file mode 120000
index 0000000000..f9c5aa554a
--- /dev/null
+++ b/macros/latex/contrib/ednotes/lineno.pdf
@@ -0,0 +1 @@
+../lineno/lineno.pdf \ No newline at end of file
diff --git a/macros/latex/contrib/ednotes/lineno.sty b/macros/latex/contrib/ednotes/lineno.sty
new file mode 120000
index 0000000000..e1237aa9e4
--- /dev/null
+++ b/macros/latex/contrib/ednotes/lineno.sty
@@ -0,0 +1 @@
+../lineno/lineno.sty \ No newline at end of file
diff --git a/macros/latex/contrib/ednotes/lineno.tex b/macros/latex/contrib/ednotes/lineno.tex
new file mode 120000
index 0000000000..1999019713
--- /dev/null
+++ b/macros/latex/contrib/ednotes/lineno.tex
@@ -0,0 +1 @@
+../lineno/lineno.tex \ No newline at end of file
diff --git a/macros/latex/contrib/ednotes/lnosuppl.pdf b/macros/latex/contrib/ednotes/lnosuppl.pdf
new file mode 120000
index 0000000000..156457faed
--- /dev/null
+++ b/macros/latex/contrib/ednotes/lnosuppl.pdf
@@ -0,0 +1 @@
+../lineno/lnosuppl.pdf \ No newline at end of file
diff --git a/macros/latex/contrib/ednotes/ltabptch.sty b/macros/latex/contrib/ednotes/ltabptch.sty
new file mode 120000
index 0000000000..97da5876bf
--- /dev/null
+++ b/macros/latex/contrib/ednotes/ltabptch.sty
@@ -0,0 +1 @@
+../ltabptch/ltabptch.sty \ No newline at end of file
diff --git a/macros/latex/contrib/ednotes/ltabtest.tex b/macros/latex/contrib/ednotes/ltabtest.tex
new file mode 120000
index 0000000000..3d22890963
--- /dev/null
+++ b/macros/latex/contrib/ednotes/ltabtest.tex
@@ -0,0 +1 @@
+../ltabptch/ltabtest.tex \ No newline at end of file
diff --git a/macros/latex/contrib/ednotes/mfparptc.sty b/macros/latex/contrib/ednotes/mfparptc.sty
new file mode 100644
index 0000000000..e2008f199d
--- /dev/null
+++ b/macros/latex/contrib/ednotes/mfparptc.sty
@@ -0,0 +1,208 @@
+%% MFParPtc.sty---Uwe L"uck http://www.contact-ednotes.sty.de.vu.
+%% Modifies Alexander Rozhenko's manyfoot.sty.
+%%
+%% Copyright (C) 2003--2006 by Uwe L"uck--author-maintained.
+%%
+%% 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.
+%%
+%
+\NeedsTeXFormat{LaTeX2e}
+\ProvidesPackage{mfparptc}[2006/06/26 v0.41 %% TODO
+ ^^J\string"patch\string" for manyfoot.sty's paragraph footnotes
+ (ul)]
+%
+% The paragraphed-footnote style of Alexander Rozhenko's manyfoot.sty
+% derives, like the same style of Dominik Wujastyk's and John
+% Lavagnino's EDMAC.doc, from Donald Knuth's proposal on pp.
+% 398--400 of the TeXbook. However, the two packages improve this
+% proposal in different respects. EDMAC (i) adds to the TeXbook
+% macros penalties solving a page breaking problem and (ii) accounts
+% for some problems of line breaking and hyphenation in the
+% footnotes (see EDMAC.doc, Section
+% `Footnotes'--`Paragraphed footnotes'). manyfoot.sty does not deal
+% with these things.
+%
+% The present version of the "patch" rearms the latter with EDMAC's
+% remedies (maybe at the cost of \linebreak and \\, see below).
+%% TODO
+% We aim at manyfoot.sty v1.4 from 1998/12/19.
+%
+% Alex and me could not convince ourselves entirely of these
+% "patches". They are *experimental*. When we have made up our minds,
+% they may become part of other packages.
+%
+% Indeed, the present "patches" disable the \SplitNote macro
+% from manyfoot.sty. So you have to choose between \SplitNote
+% (not loading present package) and the EDMAC enhancements
+% (loading the present package).
+%
+% --If you want to use this package for working with ednotes.sty,
+% load the latter with option `edmacpara'--this loads the
+% present file at a suitable time. This is useful only unless
+% only `plain' options of `ednotes.sty' are called.
+% --If you don't work with ednotes.sty and want to use the present
+% file only for modifying manyfoot functionality, load the present
+% file after manyfoot.sty has been loaded. This is useful only if
+% some footnote layer has been declared with option `para' or
+% `para*'.
+%
+% Implementation:
+%
+%% Note: \Requirepackage[...]{manyfoot} would cause option clash.
+%
+% \MFL@fnotepara expected:
+% (Also tests whether manyfoot.sty has been loaded with option
+% `para' or `para*'.)
+\CheckCommand*\MFL@fnotepara[3]{\let\@thefnmark\@empty
+ \NCC@makefnmark{#2}%
+ \MFL@insert#1{\reset@font\footnotesize
+ \ifx\@thefnmark\@empty \@tempswafalse \else
+ \@tempswatrue
+ \protected@edef\@currentlabel{\@thefnmark}%
+ \fi
+ \color@begingroup
+ \if@tempswa
+ \setbox\@tempboxa\hbox{\@makefnmark}%
+ \ifMFL@paraindent
+ \@tempdima.8em \advance\@tempdima-\wd\@tempboxa
+ \ifdim \@tempdima<\z@ \@tempdima\z@ \fi
+ \else
+ \@tempdima\z@
+ \fi
+ \fi
+ \setbox\@tempboxa\hbox{%
+ \if@tempswa
+ \hskip\@tempdima\unhbox\@tempboxa\nobreak
+ \fi
+ \ignorespaces#3\unskip\strut
+ \ifMFL@split \penalty\m@ne\space \else
+ \penalty-10 \hskip\footglue
+ \fi
+ }%
+ \dp\@tempboxa\z@ \ht\@tempboxa\MFL@fudgefactor\wd\@tempboxa
+ \box\@tempboxa
+ \color@endgroup
+ }%
+}
+% For splitting footnote paragraphs EDMAC inserts a (low) \penalty
+% after \box\@tempboxa at Wayne Sullivan's suggestion, see
+% EDMAC.doc after \def\para@vfootnote.
+% Another patch is needed to get \language whatsit nodes and
+% \discretionary's---cf. EDMAC.doc's description of \para@vfootnote.
+% This is due to Michael Downes, Wayne Sullivan, and Donald Knuth.
+% The insert text is first typeset in an "infinitely" wide \vbox.
+% Some problems remain as in EDMAC. No \break should occur in the
+% insert text. We locally redefine \@M and \hfil hoping to repair
+% \\ and \linebreak (even \break!) (experimental---please report!) %% TODO
+% (EDMAC.doc refers to Michael Downes, `Line breaking in \unhboxed
+% Text', TUGboat 11 (1990), pp. 605--612.)
+% TODO: Might redefine \hfill and more; cf. Michael Downes' paper.
+\def\MFL@fnotepara#1#2#3{\let\@thefnmark\@empty
+ \NCC@makefnmark{#2}%
+ \MFL@insert#1{\reset@font\footnotesize
+ \ifx\@thefnmark\@empty \@tempswafalse \else
+ \@tempswatrue
+ \protected@edef\@currentlabel{\@thefnmark}%
+ \fi
+ \color@begingroup
+ \if@tempswa
+ \setbox\@tempboxa\hbox{\@makefnmark}%
+ \ifMFL@paraindent
+ \@tempdima.8em \advance\@tempdima-\wd\@tempboxa
+ \ifdim \@tempdima<\z@ \@tempdima\z@ \fi
+ \else
+ \@tempdima\z@
+ \fi
+ \fi
+ \setbox\@tempboxa\vbox{% <- PATCH!
+ \@parboxrestore % <- PATCH
+ \hsize\maxdimen \noindent % <- PATCH!
+% \setbox\@tempboxa\hbox{%
+ \if@tempswa
+ \hskip\@tempdima\unhbox\@tempboxa\nobreak
+ \fi
+ \mathchardef\@M9999 % <- PATCH!
+ \def\hfil{\hskip\linewidth\@minus\linewidth}% <- PATCH!
+ \ignorespaces#3\unskip\strut
+% \ifMFL@split \penalty\m@ne\space \else % PATCH: removed.
+% \penalty-10 \hskip\footglue % PATCH: reinserted below.
+% \fi
+ }%
+ \setbox\@tempboxa\hbox{% <- PATCH!
+% Here is a suitable variant of EDMAC.doc's \unvxh, due to Michael
+% Downes:
+ \setbox\z@\vbox{%
+ \unvbox\@tempboxa \global\setbox\@ne\lastbox}%
+ \unhbox\@ne \unskip \unskip \unpenalty
+ \ifMFL@split % Moved here from above.
+ \penalty\m@ne\space
+ \else
+ \penalty-10 \hskip\footglue
+ \fi
+ }%
+ \dp\@tempboxa\z@ \ht\@tempboxa\MFL@fudgefactor\wd\@tempboxa
+ \box\@tempboxa
+ \penalty\z@ % <- PATCH!
+ \color@endgroup
+ }%
+}
+% Like in EDMAC.doc, the additional penalty is removed by
+% \MFL@makehhbox which corresponds to \makehboxofhboxes.
+% \MFL@makehhbox differs from \makehboxofhboxes, however, in even
+% \unvbox'ing a note bundle from a minipage. It seems not to be easy
+% to tell a \penalty 0 placed by patched \MFL@fnotepara from another.
+% In this version we just hope that removing such other penalties
+% causes no damage---after all, the bundle was not supposed to be
+% splitted.
+\def\MFL@makehhbox{%
+ \loop
+ \unpenalty % <- PATCH!
+ \setbox\z@\lastbox
+ \ifhbox\z@
+ \setbox\@tempboxa\hbox{\box\z@\unhbox\@tempboxa}%
+ \repeat
+ \ifvbox\z@ \unvbox\z@ \MFL@makehhbox \fi
+}
+\endinput
+
+VERSION HISTORY:
+
+v0.1 2003/01/19 First. Sent to John Lavagnino + ...
+v0.2 2003/01/23 Corrected \Provides... file name;
+ supplied \vbox in \unvxh (bug fix!).
+v0.21 2003/02/27 Stressed problem with \linebreak and \\ in doc.
+v0.23 2003/02/28 Further comment on \CheckCommand,
+ improved explanation mentioning \para@vfootnote.
+v0.3 2003/03/01 Changed \@M and \hfil to enable \\ and \linebreak
+ in para-style.
+v0.31 2003/03/24 Reminded above that v0.2 was a real bug fix;
+ added ednotes.sty@web.de.
+v0.32 2003/03/26 Added TODO on Alex' provision. [!?? 2004/04/25]
+v0.33 2003/03/28 Added `experimental'; `missing' -> `bad' (hyph.)
+ 2004/01/29 Corrected, in the explanation for users, allusion
+ to problems to be solved (line breaking, not only
+ hyphenation) and added mention of \SplitNote
+ problem.
+v0.34 2004/04/25 Added copyright etc.; added missing `%' before
+ `manyfoot.sty does not deal [...]'. Made
+ `(loading ...)' more clear.
+ `patch...' -> `"patch..."'.
+v0.35 2004/05/10 Note on \RequirePackage[...]{manyfoot}; enlarged
+ on loading (Ednotes.sty); manyfoot -> Manyfoot.
+ 2004/05/20 Enhanced comment on \CheckCommand.
+ 2004/07/26 \string" with \Provides..., ^^J.
+v0.36 2004/08/21 Added \@parboxrestore--as a bug fix for `center'
+ environment.
+ 2004/08/23 LPPL v1.3.
+ 2004/08/31 Rearranged preamble concerning maintenance.
+v0.4 2004/10/07 Ednotes -> ednotes etc.; instructions:
+ ednotes option `edmacpara'.
+v0.4a 2004/11/07 LPPL v1.3a.
+v0.4b 2005/01/10 Contact via http.
+v0.41 2006/06/26 \MFL@makemark -> \MFL@makefnmark for nccfoots v1.2;
+ LPPL v1.3c.
diff --git a/macros/latex/contrib/ednotes/mfparxsp.sty b/macros/latex/contrib/ednotes/mfparxsp.sty
new file mode 100644
index 0000000000..9d2ea053a7
--- /dev/null
+++ b/macros/latex/contrib/ednotes/mfparxsp.sty
@@ -0,0 +1,63 @@
+%% MFParXSp.sty---Uwe L"uck http://www.contact-ednotes.sty.de.vu.
+%%
+%% mfparxsp.sty earlier defined \MFparaxbuffer.
+%% manyfoot version 1.7 (September 2004) defines
+%% \ExtraParaSkip instead, so former mfpaxsp.sty is
+%% ***obsolete***. You may use the present file to
+%% convert \MFparaxbuffer of your earlier document files
+%% into \ExtraParaSkip, or just to remind you of the change
+%% later. (On CTAN, the new manyfoot version is obtainable
+%% from directory /macros/latex/contrib/ncctools/.)
+%% See explanation of \ExtraParaSkip in ednotes.sty
+%% (CTAN: /macros/latex/contrib/ednotes).
+%%
+%% Copyright (C) 2004 by Uwe L"uck--author-maintained.
+%%
+%% 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.3 of the License, or any later version.
+%% We did our best to help you, but there is NO WARRANTY.
+%%
+%
+\NeedsTeXFormat{LaTeX2e}
+\ProvidesPackage{mfparxsp}[2005/01/10 v0.3b %% TODO
+ \string\MFparaxbuffer\space (ul)]
+%
+\PackageWarningNoLine{mfparxsp}{%
+%% Line number would be that of here.
+This package is obsolete.\MessageBreak
+Replace \string\MFparaxbuffer\space
+by \string\ExtraParaSkip\MessageBreak
+use manyfoot.sty version 1.7\MessageBreak
+and don't load mfparxsp.sty any more.\MessageBreak
+See ednotes.sty documentation%% Silly: full stop from LaTeX.
+}
+
+\let\MFparaxbuffer\ExtraParaSkip
+
+\endinput
+
+VERSION HISTORY:
+
+v0.1 2004/04/26 First. Sent to Florian Kragl and Christian.
+v0.2 2004/04/27 Previous version was wrong. Used \MFL@startpara
+ as a hook now. Sent to Florian Kragl, Alex Rozhenko
+ and Christian.
+v0.21 2004/05/10 Removed explanations on loading from Mfparptc.sty.
+ 2004/07/26 ^^J
+ 2004/08/31 `author-maintained'.
+v0.3 2004/09/21 "Compatibility mode" for Manyfoot.sty version 1.7;
+ removed earlier code and documentation; changed
+ .log display.
+ 2004/10/08 Changed explanation to users at top.
+v0.3a 2004/11/07 LPPL v1.3a.
+v0.3b 2005/01/10 Contact via http.
+
+*Florian Kragl's earlier suggestion:*
+In preamble, type
+ \setlength{\footnotesep}{<fns>}
+ \renewcommand*\footnoterule{\kern-<ra>\hrule\kern-<rb>}
+Here, find good values for <fns>, <ra>, and <rb> by trial and error.
+
+%% End of file `MFParXSp.sty'.
diff --git a/macros/latex/contrib/ednotes/perpage.sty b/macros/latex/contrib/ednotes/perpage.sty
new file mode 100644
index 0000000000..3f4d8e216f
--- /dev/null
+++ b/macros/latex/contrib/ednotes/perpage.sty
@@ -0,0 +1,159 @@
+%%
+%% This is file `perpage.sty',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% perpage.dtx (with options: `style')
+%%
+%% IMPORTANT NOTICE:
+%%
+%% For the copyright see the source file.
+%%
+%% Any modified versions of this file must be renamed
+%% with new filenames distinct from perpage.sty.
+%%
+%% For distribution of the original source see the terms
+%% for copying and modification in the file perpage.dtx.
+%%
+%% This generated file may be distributed as long as the
+%% original source files, as listed above, are part of the
+%% same distribution. (The sources need not necessarily be
+%% in the same archive or directory.)
+%%
+%% perpage is part of the bigfoot bundle for critical typesetting
+%% Copyright 2002, 03, 04, 05, 06 David Kastrup <dak@gnu.org>
+%%
+\NeedsTeXFormat{LaTeX2e}
+\def\next$#1: #2 #3${#2}
+\ProvidesPackage{perpage}[\next$Date: 2006/07/15 21:43:23 $
+ \next$Revision: 1.12 $ Reset/sort counters per page]
+\newcommand\AddAbsoluteCounter[1]
+{\@ifundefined{c@abs#1}{%
+ \expandafter\newcount\csname c@abs#1\endcsname
+ \global\value{abs#1}\@ne
+ \global\expandafter\let\csname cl@abs#1\endcsname\@empty
+ \expandafter\xdef\csname theabs#1\endcsname{%
+ \noexpand\number \csname c@abs#1\endcsname}%
+ \global\@namedef{c@pabs@#1}{\z@=\z@{%
+ \stepcounter{abs#1}%
+ \afterassignment}\count@}%
+ \@addtoreset{pabs@#1}{#1}}{}}
+\AddAbsoluteCounter{page}
+\def\theabspage{\ifx\thepage\relax
+ \noexpand\theabspage
+ \else
+ \number\c@abspage
+ \fi}
+\newcommand*\MakePerPage[2][\@ne]{%
+ \pp@makeperpage{#2}\c@pchk@{#1}}
+\newcommand*\MakeSorted[1]{%
+ \setcounter{#1}{\z@}%
+ \pp@makeperpage{#1}\c@schk@{\@ne}}
+\newcommand*\MakeSortedPerPage[2][\@ne]{%
+ \pp@makeperpage{#2}\c@spchk@{#1}}
+\@onlypreamble\MakePerPage
+\@onlypreamble\MakeSorted
+\@onlypreamble\MakeSortedPerPage
+\def\pp@makeperpage#1#2#3{%
+ \global\expandafter\mathchardef\csname c@pp@r@#1\endcsname=#3\relax
+ \global\@namedef{c@pchk@#1}{#2{#1}}%
+ \newcounter{pp@a@#1}%
+ \setcounter{pp@a@#1}{#3}%
+ \addtocounter{pp@a@#1}\m@ne
+ \@addtoreset{pchk@#1}{#1}%
+ \AtBeginDocument{\setcounter{pp@a@#1}\z@}%
+ \edef\next{\noexpand\AtEndDocument{\noexpand\setcounter{pp@a@#1}{%
+ \number\value{pp@a@#1}}}}\next}
+\@onlypreamble\pp@makeperpage
+\def\pp@chkvlist{%
+ \ifcase
+ \ifvmode
+ \ifx\lastnodetype\@undefined
+ \ifdim-\@m\p@=\prevdepth\ifdim\lastskip=\z@\ifnum\lastpenalty=\z@
+ \@ne
+ \fi\fi\fi
+ \else
+ \ifnum\lastnodetype=\m@ne \@ne \fi
+ \fi
+ \fi \z@
+ \or
+ \PackageWarning{perpage}{\string\stepcounter\space probably at start of
+ vertical list:^^JYou might need to use \string\leavevmode\space
+ before it to avoid vertical shifts}%
+ \fi}
+\def\pp@fetchctr#1{\expandafter\expandafter\expandafter\pp@fetchctrii
+ \csname pp@r@#1@\number\value{pp@a@#1}\endcsname
+ \@empty\@empty}
+
+\global\let\theperpage\@empty
+
+\def\pp@fetchctrii#1#2#3{\edef\pp@label{#1}%
+ \edef\pp@page{#2}%
+ \gdef\theperpage{#3}}
+\def\c@pchk@#1{\z@=\z@
+ \begingroup
+ \pp@fetchctr{#1}\let\next\pp@page
+ \addtocounter{pp@a@#1}\@ne
+ \pp@fetchctr{#1}%
+ \ifcase\ifx\next\pp@page\else\@ne\fi
+ \ifnum\value{#1}=\z@\@ne\fi\z@
+ \else
+ \setcounter{#1}{\value{pp@r@#1}}%
+ \fi
+ \pp@writectr\pp@pagectr{#1}{\noexpand\theabspage}}
+\def\pp@writectr#1#2#3{\edef\next{%
+ \string#1{#2}{\number\value{pp@a@#2}}{#3}{\noexpand\thepage}}%
+ \pp@chkvlist
+ \dimen@=\lastkern
+ \ifdim\dimen@=\z@ \else \unkern\fi
+ \protected@write\@auxout{}{\next}%
+ \ifdim\dimen@=\z@ \nobreak \else \kern\dimen@\fi
+ \afterassignment\endgroup\count@}
+\def\pp@pagectr#1#2#3#4{\@ifundefined{c@pp@a@#1}{}{%
+ \addtocounter{pp@a@#1}\@ne
+ \edef\next{\noexpand
+ \@newl@bel{pp@r@#1}{#2}{{\number\value{pp@a@#1}}{#3}%
+ {#4}}}\next}}
+\def\c@schk@#1{\z@=\z@
+ \begingroup
+ \addtocounter{pp@a@#1}\@ne
+ \ifnum\value{#1}=\@ne
+ \expandafter\xdef\csname pp@g@#1\endcsname{\number\value{pp@a@#1}}%
+ \edef\next{\noexpand\AtEndDocument{\global\let
+ \expandafter\noexpand\csname pp@g@#1@\number\value{pp@a@#1}\endcsname
+ \relax}}\next
+ \fi
+ \pp@fetchctr{#1}%
+ \ifx\pp@page\@empty
+ \else \setcounter{#1}{\pp@label}\fi
+ \pp@writectr\pp@spagectr{#1}{\csname pp@g@#1\endcsname}}%
+\def\pp@spagectr#1#2#3#4{\@ifundefined{c@pp@a@#1}{}{%
+ \count@0\csname pp@g@#1@#3\endcsname
+ \advance\count@\@ne
+ \expandafter\xdef\csname pp@g@#1@#3\endcsname{\number\count@}%
+ \edef\next{\noexpand
+ \@newl@bel{pp@r@#1}{#2}{{\number\count@}{#3}%
+ {#4}}}\next}}
+\def\c@spchk@#1{\z@=\z@
+ \begingroup
+ \addtocounter{pp@a@#1}\@ne
+ \pp@fetchctr{#1}%
+ \ifx\pp@page\@empty
+ \else \setcounter{#1}{\pp@label}\fi
+ \pp@writectr\pp@ppagectr{#1}{\noexpand\theabspage}}
+\def\pp@ppagectr#1#2#3#4{\@ifundefined{c@pp@a@#1}{}{%
+ \def\next{#3}%
+ \expandafter\ifx\csname pp@page@#1\endcsname\next
+ \addtocounter{pp@a@#1}\@ne
+ \else
+ \setcounter{pp@a@#1}{\value{pp@r@#1}}%
+ \fi
+ \global\expandafter\let\csname pp@page@#1\endcsname\next
+ \edef\next{\noexpand
+ \@newl@bel{pp@r@#1}{#2}{{\number\value{pp@a@#1}}{#3}%
+ {#4}}}\next}}
+
+\endinput
+%%
+%% End of file `perpage.sty'.
diff --git a/macros/latex/contrib/ednotes/ulineno.pdf b/macros/latex/contrib/ednotes/ulineno.pdf
new file mode 120000
index 0000000000..ebecb60c7d
--- /dev/null
+++ b/macros/latex/contrib/ednotes/ulineno.pdf
@@ -0,0 +1 @@
+../lineno/ulineno.pdf \ No newline at end of file
diff --git a/macros/latex/contrib/ednotes/ulineno.tex b/macros/latex/contrib/ednotes/ulineno.tex
new file mode 120000
index 0000000000..1c05855f15
--- /dev/null
+++ b/macros/latex/contrib/ednotes/ulineno.tex
@@ -0,0 +1 @@
+../lineno/ulineno.tex \ No newline at end of file
diff --git a/macros/latex/contrib/ednotes/varnrule.tex b/macros/latex/contrib/ednotes/varnrule.tex
new file mode 100644
index 0000000000..4e2d203314
--- /dev/null
+++ b/macros/latex/contrib/ednotes/varnrule.tex
@@ -0,0 +1,111 @@
+%% varnrule.tex -- demo for varying footnote rules with
+%% ednotes.sty (manyfoot feature now supported by ednotes
+%% -- search ednotes.sty for `Customizing *footnote rules*').
+%% Uwe Lueck http://contact-ednotes.sty.de.vu 2006/07/06
+
+%% Present task: Sergei Mariev wants to use ordinary (numbered)
+% footnotes as well as critical apparatuses. An ordinal footnote
+% rule should separate the main text from the footnotes in any
+% case. The additional footnotes should be separated by usual
+% footnote rules as well. However, there shouldn't be a rule
+% between the ordinary numbered footnotes and the remaining
+% ones.
+%
+\documentclass[12pt]{article}
+
+% Below \endinput here, there is a sample for experiencing the
+% manyfoot feature without ednotes ...:
+%
+%%%% \iffalse %% To switch to the mere manyfoot sample -- needs
+%%%% %% removing percent signs preceding corresponding
+%%%% %% \fi as well!
+
+\newcommand{\SelectAnoteRule}{[1]{no}}
+\newcommand{\SelectBnoteRule}{[0]{default}}
+% <- Priorities 1 and 0 will be overridden by priority 2
+% of the Standard LateX footnote rule,
+% so there will be a footnote rule between main text and the
+% footnotes in any case. Priority 1 above ensures that
+% there will never be a visible rule between ordinary footnotes
+% and the new A/B/C footnotes handled by manyfoot.
+% `no' corresponds to \newcommand{\nofootnoterule} below;
+% `default' refers to the standard footnote rule as stored
+% by manyfoot.
+% -- \newcommand{\Select... must come before loading ednotes.
+
+\usepackage[Bpara,Cpara]{ednotes}
+
+\renewcommand{\footnoterulepriority}{2}
+% <- setting default priority, especially for the ordinary LaTeX
+% footnotes. This priority is the maximal one here and thus
+% overrides all the remaining ones. So there will be a rule
+% between main text and the footnotes in any case.
+% -- The previous line must come /after/ loading ednotes.
+
+\newcommand{\nofootnoterule}{}
+% <- or \let\nofootnoterule\empty; or call it \emptyfootnoterule.
+% If so, use `empty' instead of `no' above.
+% -- This line may come anywhere before the first page
+% is output.
+
+\begin{document} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\linenumbers
+
+%% Remove or add some percent signs for playing:
+Some text.\footnote{Ordinary footnote.}
+% \Anote{A lemma.}{A note.}
+\Bnote{B lemma.}{B note.}
+\Cnote{C lemma.}{C note.}
+
+\end{document} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+
+Code demonstrating manyfoot's feature of customized footnote rules:
+
+%%%% \fi
+
+\nofiles
+
+\usepackage[para,ruled]{manyfoot}
+% <- I wasn't able to get the below -- much wanted -- results
+% without the `ruled' option -- may someone do better!?
+
+\renewcommand{\footnoterulepriority}{2}
+% <- setting default priority, especially for the ordinary LaTeX
+% footnotes. This priority is the maximal one here and thus
+% overrides all the remaining ones. So there will be a rule
+% between main text and the footnotes in any case.
+
+\newcommand{\nofootnoterule}{}
+% <- or \let\nofootnoterule\empty; or call it \emptyfootnoterule.
+% If so, use `empty' instead of `no' below.
+
+\SelectFootnoteRule[1]{no}
+\newfootnote[para]{A}
+% <- Priorities 1 here and 0 below will be overridden by priority
+% 2 of the Standard LateX footnote rule,
+% so there will be a footnote rule between main text and the
+% footnotes in any case. Priority 1 just above ensures that
+% there will never be a visible rule between ordinary footnotes
+% and the new ("level") footnotes handled by manyfoot.
+
+\SelectFootnoteRule[0]{default}
+% <- `default' refers to the standard footnote rule as stored
+% by manyfoot.
+\newfootnote[para]{B}
+\newfootnote[para]{C}
+% <- Notes in A, B, C will be separated by rules in the usual way.
+
+\begin{document} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+%% Remove or add some percent signs for playing:
+Some text.\footnote{Ordinary footnote.}%
+% \FootnotetextA{}{A}%
+\FootnotetextB{}{B}%
+\FootnotetextC{}{C}
+
+\end{document} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+End of varnrule.tex
+
diff --git a/macros/latex/contrib/ednotes/visible.txt b/macros/latex/contrib/ednotes/visible.txt
new file mode 100644
index 0000000000..f648cef761
--- /dev/null
+++ b/macros/latex/contrib/ednotes/visible.txt
@@ -0,0 +1,108 @@
+VISIBLE -- Advice for placing new LaTeX files.
+
+Author: Uwe L"uck, http://www.contact-ednotes.sty.de.vu,
+2004/10/18, updated 2008/04/02;
+aided by Karl Berry.
+
+--derived from a TUGboat (vol. 24) article on Ednotes.
+
+
+Once there was a *problem* with placing new LaTeX files --
+many people use MiKTeX nowadays which usually makes getting
+and installing packages quite easy. See http://www.miktex.org,
+or
+
+ http://www.tex.ac.uk/cgi-bin/texfaq2html?label=inst-miktex
+
+which also gives some hints in case you even have problems with
+MiKTeX. Don't read on this file if you are happy with this/
+with MiKTeX.
+
+
+* The problem: *
+
+E.g., a user downloads a LaTeX file from CTAN. Or: often there
+is a pair of a .dtx and an .ins file for producing a .sty file.
+("Run LaTeX on the .ins file ..." This may be difficult enough,
+but we assume now that the user manages this.) Typically the
+user is told to put the (.sty) file to a folder "where LaTeX
+can find it", or "visible to TeX". Indeed, the user cannot use
+the file otherwise. However, some users have had no idea how to
+arrange things so that (La)TeX finds the file.
+
+Unfortunately, the procedure for this is somewhat non-trivial
+indeed. It depends very much on the user's LaTeX installation,
+so it is difficult to indicate a procedure that helps everyone.
+
+
+* Principles for solutions: *
+
+Technically, the searching agent is the TeX program, not LaTeX
+--we choose our wordings accordingly here. LaTeX is rather a
+kind of input ("format") to the TeX program. (If this doesn't
+make sense to you, don't worry about it.)
+
+I think of three kinds of approaches:
+
+1. Put the file into the folder where the files you are editing
+are (call them "job files" here). This is easy; but if the user
+wants to use the file for another project pursued in a different
+folder, the approach would require another copy of the file--or
+a link! Therefore, it has been common to place macro (.sty) or
+similar files in folders that TeX searches independent of the
+folder containing the job files.
+
+2. Put the file into a folder that TeX has searched so far.
+
+3. Put the file anywhere (or into an extra folder newly created
+with care)--and extend the set of folders that TeX searches
+accordingly. The TeX installation ("shell") usually offers a
+facility for this--which unfortunately is not always known to
+the user.
+
+
+* Advice from TeX Users Groups: *
+
+I recommend to study the following web pages:
+
+ http://tug.ctan.org/installationadvice
+
+ http://www.tex.ac.uk/cgi-bin/texfaq2html?label=inst-wlcf
+
+These prefer approach 3 of the above, especially the TDS
+standard of arranging folders, see
+
+ http://www.tex.ac.uk/cgi-bin/texfaq2html?label=tds
+
+
+* Easy tricks that I prefer: *
+
+I must confess that I have never worked with the shells that are
+chosen as examples on these web pages. Moreover, some Windows
+users may find the examples little helpful. So my personal hints
+use approach 2 of the above.
+
+o Typically, the file is from CTAN folder
+ /tex-archive/macros/latex/contrib/, and you find a folder
+ .../latex/contrib/ in the installation at your workplace.
+ Then the latter should be a good guess for placing the new
+ file.
+
+o You may find a folder .../texinput/ (or TeXinput!?) which
+ should be another good guess.
+
+o Search your installation for files with the same file name
+ extension (usually `.sty'), try their folder.
+
+(Updates are a special case of the last idea, of course.)
+
+
+Ok, if all this doesn't help, you may ask at comp.text.tex
+or your local TeX guru, or send an email to texhax -- see
+
+ http://tug.org/mailman/listinfo/texhax
+
+
+Good luck!
+
+
diff --git a/macros/latex/contrib/ednotes/vplref.sty b/macros/latex/contrib/ednotes/vplref.sty
new file mode 120000
index 0000000000..83051c5f97
--- /dev/null
+++ b/macros/latex/contrib/ednotes/vplref.sty
@@ -0,0 +1 @@
+../lineno/vplref.sty \ No newline at end of file