summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/tex/latex/ednotes
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2006-01-12 23:54:35 +0000
committerKarl Berry <karl@freefriends.org>2006-01-12 23:54:35 +0000
commitc75be2f02e012b1a8ccd57e540c78bcfeb0d9a42 (patch)
tree656fb89e34f7306ee91e48c989dc07def29d00c2 /Master/texmf-dist/tex/latex/ednotes
parent74afab51373336875080fafee169c9b078efdb2e (diff)
ednotes
git-svn-id: svn://tug.org/texlive/trunk@847 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/tex/latex/ednotes')
-rw-r--r--Master/texmf-dist/tex/latex/ednotes/edcntwd0.sty306
-rw-r--r--Master/texmf-dist/tex/latex/ednotes/ednotes.sty1267
-rw-r--r--Master/texmf-dist/tex/latex/ednotes/lblchng1.sty260
-rw-r--r--Master/texmf-dist/tex/latex/ednotes/mfparptc.sty207
-rw-r--r--Master/texmf-dist/tex/latex/ednotes/mfparxsp.sty63
5 files changed, 2103 insertions, 0 deletions
diff --git a/Master/texmf-dist/tex/latex/ednotes/edcntwd0.sty b/Master/texmf-dist/tex/latex/ednotes/edcntwd0.sty
new file mode 100644
index 00000000000..913a5416588
--- /dev/null
+++ b/Master/texmf-dist/tex/latex/ednotes/edcntwd0.sty
@@ -0,0 +1,306 @@
+%% EdCntWd0.sty--count word occurrences with ednotes.sty.
+\def\fileversion{0.32} \def\filedate{2005/05/01} %% TODO
+
+%% Copyright (C) 2004 Uwe L\"uck & Christian Tapp (direction)
+%% 2005 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.3a 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 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 \jobname.aux. With these informations from
+% \jobname.aux, 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 not prints and 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.
+
+\newcount\c@CW@repword
+% \newcounter{repword} %% Don't need \the...
+\def\@CW@stepcnt#1{\advance#1\@ne}
+\def\@CW@emptylist{\@eltt} %% Need bound for table rows.
+\newcount\c@CW@par
+\newif\if@CW@pardef \global\@CW@pardeffalse
+
+\def\@CW@cntwi{%
+ \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
+%% \@CW@placeindexlist has, after starting \@eltt, rows of form
+%% <PLACE>\@elt<INDEX>\@eltt .
+ \global\@CW@stepcnt\c@CW@par
+ \@ifundefined{CWp\romannumeral\c@CW@par}%
+ {\G@refundefinedtrue \global\@CW@pardeffalse}%
+ {%
+ \global\@CW@pardeftrue
+ \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@}%
+ \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
+}
+\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}
+
+\@ifdefinable\countword{\global\let\countword\@CW@cntwi}
+
+\newcommand*\@CW@cntwii[2][\@nil]{%
+ \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}
+
+\newcount\c@CW@nrepword
+
+\newcommand*\@CW@cntwl[2][]{%% First argument just gobbled,
+%% using place number instead.
+ #2%
+ \if@CW@pardef
+ \global\@CW@stepcnt\c@CW@nrepword
+ \ifnum\c@CW@repword>\@CW@numberofwords\relax
+ \G@refundefinedtrue
+ \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}%
+ \fi
+ \fi
+ \else
+ \CWtextscript?%
+ \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.
+
+\addlemmaexpands{\let\countword\@CW@cntwl
+ \global\c@CW@nrepword\c@CW@repword}
+
+\global\let\@CW@wordlist\@empty
+
+\newcommand*\CWClosePar{% %% TODO: -> doc.!? Useful?
+ \ifx\@CW@wordlist\@empty \else
+ \immediate\write\@mainaux{%
+ \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\@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.
+[not sent, not tested]
diff --git a/Master/texmf-dist/tex/latex/ednotes/ednotes.sty b/Master/texmf-dist/tex/latex/ednotes/ednotes.sty
new file mode 100644
index 00000000000..087a658fae1
--- /dev/null
+++ b/Master/texmf-dist/tex/latex/ednotes/ednotes.sty
@@ -0,0 +1,1267 @@
+%% Macro package `ednotes.sty' for LaTeX2e,
+%% copyright (C) 2002--2005 Uwe L\"uck & Christian Tapp (direction)
+%% http://www.contact-ednotes.sty.de.vu
+%% --author-maintained,
+%% for critical editions
+%% (varying J. Lavagnino's and D. Wujastyk's EDMAC).
+%%
+\def\fileversion{1.2} \def\filedate{2005/10/01} %% TODO
+%
+%% This file can be redistributed and/or modified under
+%% the terms of the LaTeX Project Public License; either
+%% version 1.3a of the License, or any later version.
+%% The latest version of this license is in
+%%
+%% http://www.latex-project.org/lppl.txt
+%%
+%% We did our best to help you, but there is NO WARRANTY.
+%%
+%% 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' 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.)
+% *"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'.
+% 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:* (important change v1.1!)
+% Appearance of notes is directed by macros \extrafootnoterule,
+% \linesfmt etc. occurring in the following lines
+% (each starting with \renewcommand).
+% 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.)
+% 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}
+% \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.)
+%
+% *A problem:*
+% 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). Yet the messages may suffice. Just look at the
+% final messages on screen or in .log.
+%
+% *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 contributed to now `manyfoot.sty's \ExtraParaSkip as
+% described above. v1.1 is due to problems that Roy Flechner
+% reported. v1.12 is due to
+%
+\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.]
+%
+%% 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 ...
+ \PackageWarning{ednotes}{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
+ \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
+ \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
+ \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
+ \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
+ \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
+ \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
+ \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
+ \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{mfparptc}[2004/08/21]}}
+% <- `center' bug fix.
+%
+% Load `edcntwd0.sty' after `lineno.sty':
+\DeclareOption{countoccurrences}{%
+ \AtEndOfPackage{\RequirePackage{edcntwd0}[2004/07/28]}}
+% <- pagewise numbering.
+%
+% `edtable' options remain "unkown" 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}{\PackageWarning{ednotes}%
+ {Package Option `ruled' is redundant}}
+\DeclareOption{para}{\PackageWarning{ednotes}%
+ {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}
+%% TODO: Leave choice to user!?
+%% TODO: 2004/10/20 v1.7!? (\ExtraParaSkip)
+%% -- cf. reminder about `mfparxsp.sty' below.
+%% 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}{%
+ \PackageWarning{ednotes}{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
+\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{\addlemmaexpands}{\g@addto@macro\@EN@lemmaexpands}
+\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.
+%
+% Our sphack for going around control sequences in text:
+% %% TODO: improve for repetition!? But seems to suffice.
+\def\@EN@sphack{\relax
+ \ifhmode\ifdim\lastskip>\z@\ignorespaces\fi\fi}
+%
+% Basic handling of \Anote etc.:
+\long\def\@EN@note#1#2{% #1 note family, #2 lemma.
+% %% TODO: \long!?
+ \def\@EN@notefam{#1}%
+ \@EN@process #2\<\>\@nil
+}
+%
+% Lemma versions and preparing label:
+\long\def\@EN@process#1\<#2\>#3\@nil{% %% TODO: \long!?
+% 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
+% \let\@EN@lemmatag\@EN@lemmaarg
+ \@EN@mathlemmatag
+ \else
+ \@EN@simplelemmatag
+% %% TODO: this case is the rare one, so put it into an extra
+% %% macro for efficiency!?
+ \def\@EN@tempa{#3}%
+ \ifx\@EN@tempa\@empty % \<, but no \> from user.
+ % #2 ends on \<, \>\@nil gobbled.
+ \@EN@withdummy#2\@nil
+ \else
+ % #3 ends on dummy \<\>.
+ \@EN@killresume\@EN@withdummy#2\@EN@sphack\@nil#3%
+ % This \@EN@sphack replacing \> in main text.
+ \fi
+ \fi
+ \global\advance\c@EN@label\@ne
+% 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}}%
+ \expandafter\expandafter\expandafter \@EN@tempa
+ \expandafter \@EN@notefam \expandafter {\@EN@lemmatag}%
+}
+\long\def\@EN@withdummy#1\<{\@EN@finishlemma#1\@nil} %% TODO: \long!?
+% #1 contains \@nil separating arguments.
+% Variant of LaTeX's \@ifnextchar---don't gobble spaces:
+\def\@EN@finishlemma{\futurelet\@let@token\@EN@finlem}
+\def\@EN@finlem{%
+ \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{% %% TODO: \long!?
+ \@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@killresume#1\>{#1} %% TODO: \long!?
+\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.
+%
+\newcount\c@EN@label
+%
+% .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; use especially LaTeX's mechanisms for
+% undefined references, therefore `r@':
+ \@ifundefined{r@#1}%
+ {\differentlines{\ref{#1}}{\ref{#1}}}%
+ {\expandafter\expandafter\expandafter
+ \@EN@extract\csname r@#1\endcsname
+ \@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}%
+ {\@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:
+ \@EN@lemmaarg %% TODO: should not end on space.
+ \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@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
+%% TODO: \long below!? Cf. properly expanding versions.
+\long\def\@EN@lemmawonote#1#2#3{\@EN@sphack#2\@EN@sphack}
+\def\@EN@gobblenotelabel#1#2{\@EN@sphack}
+\long\def\@EN@gobbledonote#1#2{\@EN@sphack}
+\long\def\@EN@notinnote#1{\@EN@sphack}
+\addlemmaexpands{%
+ \let\@EN@note\@EN@lemmawonote
+ \let\@EN@notelabel\@EN@gobblenotelabel
+ \let\donote\@EN@gobbledonote
+% \let\notinnote\@gobble
+ \let\notinnote\@EN@notinnote
+ \let\pause\notinnote \let\resume\notinnote
+ \let\label\notinnote \let\linelabel\notinnote
+}
+%% TODO: cf. EDMAC's tag (fonts? accents? -- lineno.sty commands?)
+\let\notinnote\@firstofone
+%
+% 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 \>.
+% %% TODO: \long below!? -> lemma.
+\def\@EN@notelabel#1#2{% #1 note family, #2 label.
+ \def\@EN@notefam{#1}%
+ \def\@EN@laplabel{#2}%
+ \let\@EN@lemmaarg\@empty
+ \long\def\@EN@next##1\donote##2##3{% %% TODO: \long!? Alex!?
+ \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
+ }%
+ \@EN@next
+% 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
+% }%
+}
+\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: \long!? Alex!?
+ % %% 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}%
+ % %% TODO: \let [pre-defined] for efficiency!?
+ \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{% %% TODO: \long!?
+ \@EN@getlabel\resume
+ {\@nnil
+ \let\@EN@next\@EN@donote
+ \else
+ \ifx\@EN@tempa\@EN@laplabel
+ \long\def\@EN@next####1\resume\@nil %% TODO: \long!?
+ % %% 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}
+%
+%% TODO: \afterassignment possible anywhere?
+%% TODO: \AtBeginDocument: \misplaced\< etc.
+%% TODO: remove testing \typeout's.
+% 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 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:
+ \expandafter\expandafter\expandafter \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
+ \expandafter\expandafter\expandafter
+ \@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. ^^J*** Page numbers
+ \@tempa\space turned into \@EN@tempa.^^J***
+ Watch whether they come to rest and references
+ get right.^^J}%
+ \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!?
+%
+%
+%% 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: 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...
+
diff --git a/Master/texmf-dist/tex/latex/ednotes/lblchng1.sty b/Master/texmf-dist/tex/latex/ednotes/lblchng1.sty
new file mode 100644
index 00000000000..379a7a56541
--- /dev/null
+++ b/Master/texmf-dist/tex/latex/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/Master/texmf-dist/tex/latex/ednotes/mfparptc.sty b/Master/texmf-dist/tex/latex/ednotes/mfparptc.sty
new file mode 100644
index 00000000000..562aed7030e
--- /dev/null
+++ b/Master/texmf-dist/tex/latex/ednotes/mfparptc.sty
@@ -0,0 +1,207 @@
+%% MFParPtc.sty---Uwe L"uck http://www.contact-ednotes.sty.de.vu.
+%% Modifies Alexander Rozhenko's manyfoot.sty.
+%%
+%% Copyright (C) 2003--2004 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.3a of the License, or any later version.
+%% The latest version of this license is in
+%% http://www.latex-project.org/lppl.txt
+%% We did our best to help you, but there is NO WARRANTY.
+%%
+%
+\NeedsTeXFormat{LaTeX2e}
+\ProvidesPackage{mfparptc}[2005/01/10 v0.4b %% 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@makemark{#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@makemark{#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.
+
diff --git a/Master/texmf-dist/tex/latex/ednotes/mfparxsp.sty b/Master/texmf-dist/tex/latex/ednotes/mfparxsp.sty
new file mode 100644
index 00000000000..9d2ea053a77
--- /dev/null
+++ b/Master/texmf-dist/tex/latex/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'.