summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/tex/latex/eledmac
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2012-09-18 23:43:55 +0000
committerKarl Berry <karl@freefriends.org>2012-09-18 23:43:55 +0000
commit1437f86d9a9ab519f98066f49b87beb08c1881ea (patch)
tree5525cf554edaf06815c6d7f8e57a746f2f6ac7b3 /Master/texmf-dist/tex/latex/eledmac
parent7d3fe67946edf779c9af7cf56549b46e86255fe1 (diff)
new altex package eledmac/eledpar (18sep12)
git-svn-id: svn://tug.org/texlive/trunk@27726 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/tex/latex/eledmac')
-rw-r--r--Master/texmf-dist/tex/latex/eledmac/eledmac.sty3475
-rw-r--r--Master/texmf-dist/tex/latex/eledmac/eledpar.sty2014
2 files changed, 5489 insertions, 0 deletions
diff --git a/Master/texmf-dist/tex/latex/eledmac/eledmac.sty b/Master/texmf-dist/tex/latex/eledmac/eledmac.sty
new file mode 100644
index 00000000000..3c8c433b41c
--- /dev/null
+++ b/Master/texmf-dist/tex/latex/eledmac/eledmac.sty
@@ -0,0 +1,3475 @@
+%%
+%% This is file `eledmac.sty',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% eledmac.dtx (with options: `code')
+%%
+%% Author: Author: Peter Wilson ; Herries Press herries dot press at earthlink dot net ; Maïeul Rouquette maieul at maieul dot net
+%% Copyright 2004, 2005 Peter R. Wilson
+%% 2011- Maïeul Rouquette
+%% This work may be distributed and/or modified under the
+%% conditions of the LaTeX Project Public License, either
+%% version 1.3 of this license or (at your option) any
+%% later version.
+%% The latest version of the license is in
+%% http://www.latex-project.org/lppl.txt
+%% and version 1.3 or later is part of all distributions of
+%% LaTeX version 2003/06/01 or later.
+%%
+%% This work has the LPPL maintenance status "maintained".
+%%
+%% This work consists of the files listed in the README file.
+
+
+\NeedsTeXFormat{LaTeX2e}
+\ProvidesPackage{eledmac}[2012/09/16 v1.0.1 LaTeX port of EDMAC]
+
+\newif\ifledfinal
+\DeclareOption{final}{\ledfinaltrue}
+\DeclareOption{draft}{\ledfinalfalse}
+\ExecuteOptions{final}
+\ProcessOptions*\relax
+
+\RequirePackage{xargs}
+\RequirePackage{etoolbox}
+\ifledfinal
+ \newcommand*{\showlemma}[1]{#1}
+\else
+ \newcommand*{\showlemma}[1]{\underline{#1}}
+\fi
+
+\let\linenumberlist=\empty
+
+\newcount\@l@dtempcnta \newcount\@l@dtempcntb
+\newif\ifl@dmemoir
+\@ifclassloaded{memoir}{\l@dmemoirtrue}{\l@dmemoirfalse}
+
+\newcommand{\eledmac@warning}[1]{\PackageWarning{eledmac}{#1}}
+\newcommand{\eledmac@error}[2]{\PackageError{eledmac}{#1}{#2}}
+\newcommand*{\led@err@NumberingStarted}{%
+ \eledmac@error{Numbering has already been started}{\@ehc}}
+\newcommand*{\led@err@NumberingNotStarted}{%
+ \eledmac@error{Numbering was not started}{\@ehc}}
+\newcommand*{\led@err@NumberingShouldHaveStarted}{%
+ \eledmac@error{Numbering should already have been started}{\@ehc}}
+\newcommand*{\led@mess@NotesChanged}{%
+ \typeout{eledmac reminder: }%
+ \typeout{ The number of the footnotes in this section
+ has changed since the last run.}%
+ \typeout{ You will need to run LaTeX two more times
+ before the footnote placement}%
+ \typeout{ and line numbering in this section are
+ correct.}}
+\newcommand*{\led@mess@SectionContinued}[1]{%
+ \message{Section #1 (continuing the previous section)}}
+\newcommand*{\led@err@LineationInNumbered}{%
+ \eledmac@error{You can't use \string\lineation\space within
+ a numbered section}{\@ehc}}
+\newcommand*{\led@warn@BadLineation}{%
+ \eledmac@warning{Bad \string\lineation\space argument}}
+\newcommand*{\led@warn@BadLinenummargin}{%
+ \eledmac@warning{Bad \string\linenummargin\space argument}}
+\newcommand*{\led@warn@BadLockdisp}{%
+ \eledmac@warning{Bad \string\lockdisp\space argument}}
+\newcommand*{\led@warn@BadSublockdisp}{%
+ \eledmac@warning{Bad \string\sublockdisp\space argument}}
+\newcommand*{\led@warn@NoLineFile}[1]{%
+ \eledmac@warning{Can't find line-list file #1}}
+\newcommand*{\led@warn@BadAdvancelineSubline}{%
+ \eledmac@warning{\string\advanceline\space produced a sub-line
+ number less than zero.}}
+\newcommand*{\led@warn@BadAdvancelineLine}{%
+ \eledmac@warning{\string\advanceline\space produced a line
+ number less than zero.}}
+\newcommand*{\led@warn@BadSetline}{%
+ \eledmac@warning{Bad \string\setline\space argument}}
+\newcommand*{\led@warn@BadSetlinenum}{%
+ \eledmac@warning{Bad \string\setlinenum\space argument}}
+\newcommand*{\led@err@PstartNotNumbered}{%
+ \eledmac@error{\string\pstart\space must be used within a
+ numbered section}{\@ehc}}
+\newcommand*{\led@err@PstartInPstart}{%
+ \eledmac@error{\string\pstart\space encountered while another
+ \string\pstart\space was in effect}{\@ehc}}
+\newcommand*{\led@err@PendNotNumbered}{%
+ \eledmac@error{\string\pend\space must be used within a
+ numbered section}{\@ehc}}
+\newcommand*{\led@err@PendNoPstart}{%
+ \eledmac@error{\string\pend\space must follow a \string\pstart}{\@ehc}}
+\newcommand*{\led@err@AutoparNotNumbered}{%
+ \eledmac@error{\string\autopar\space must be used within a
+ numbered section}{\@ehc}}
+\newcommand*{\led@warn@BadAction}{%
+ \eledmac@warning{Bad action code, value \next@action.}}
+\newcommand*{\led@warn@DuplicateLabel}[1]{%
+ \eledmac@warning{Duplicate definition of label `#1' on page \the\pageno.}}
+\newcommand*{\led@warn@RefUndefined}[1]{%
+ \eledmac@warning{Reference `#1' on page \the\pageno\space undefined.
+ Using `000'.}}
+\newcommand*{\led@warn@NoMarginpars}{%
+ \eledmac@warning{You can't use \string\marginpar\space in numbered text}}
+\newcommand*{\led@warn@BadSidenotemargin}{%
+ \eledmac@warning{Bad \string\sidenotemmargin\space argument}}
+\newcommand*{\led@warn@NoIndexFile}[1]{%
+ \eledmac@warning{Undefined index file #1}}
+\newcommand*{\led@err@TooManyColumns}{%
+ \eledmac@error{Too many columns}{\@ehc}}
+\newcommand*{\led@err@UnequalColumns}{%
+ \eledmac@error{Number of columns is not equal to the number
+ in the previous row (or \protect\\ \space forgotten?)}{\@ehc}}
+\newcommand*{\led@err@LowStartColumn}{%
+ \eledmac@error{Start column is too low}{\@ehc}}
+\newcommand*{\led@err@HighEndColumn}{%
+ \eledmac@error{End column is too high}{\@ehc}}
+\newcommand*{\led@err@ReverseColumns}{%
+ \eledmac@error{Start column is greater than end column}{\@ehc}}
+\newcount\section@num
+\section@num=0
+\let\extensionchars=\empty
+\newif\ifnumbering
+\newif\ifl@dpairing
+ \l@dpairingfalse
+\newif\ifpst@rtedL
+ \pst@rtedLfalse
+\newcount\l@dnumpstartsL
+\newif\ifledRcol
+\newif\ifnumberingR
+\newcommand*{\beginnumbering}{%
+ \ifnumbering
+ \led@err@NumberingStarted
+ \endnumbering
+ \fi
+ \global\numberingtrue
+ \global\advance\section@num \@ne
+ \initnumbering@reg
+ \message{Section \the\section@num }%
+ \line@list@stuff{\jobname.\extensionchars\the\section@num}%
+ \l@dend@stuff
+ \setcounter{pstart}{1}
+}
+\newcommand*{\initnumbering@reg}{%
+ \global\pst@rtedLfalse
+ \global\l@dnumpstartsL \z@
+ \global\absline@num \z@
+ \global\line@num \z@
+ \global\subline@num \z@
+ \global\@lock \z@
+ \global\sub@lock \z@
+ \global\sublines@false
+ \global\let\next@page@num=\relax
+ \global\let\sub@change=\relax
+ \resetprevline@
+ }
+
+\def\endnumbering{%
+ \ifnumbering
+ \global\numberingfalse
+ \normal@pars
+ \ifl@dpairing
+ \global\pst@rtedLfalse
+ \else
+ \ifx\insertlines@list\empty\else
+ \global\noteschanged@true
+ \fi
+ \ifx\line@list\empty\else
+ \global\noteschanged@true
+ \fi
+ \fi
+ \ifnoteschanged@
+ \led@mess@NotesChanged
+ \fi
+ \else
+ \led@err@NumberingNotStarted
+ \fi
+ \autoparfalse}
+\newcommand{\pausenumbering}{%
+ \endnumbering\global\numberingtrue}
+\newcommand*{\resumenumbering}{%
+ \ifnumbering
+ \global\pst@rtedLtrue
+ \global\advance\section@num \@ne
+ \led@mess@SectionContinued{\the\section@num}%
+ \line@list@stuff{\jobname.\extensionchars\the\section@num}%
+ \l@dend@stuff
+ \else
+ \led@err@NumberingShouldHaveStarted
+ \endnumbering
+ \beginnumbering
+ \fi}
+
+\newif\ifbypage@
+\newif\ifbypstart@
+\newcommand*{\lineation}[1]{{%
+ \ifnumbering
+ \led@err@LineationInNumbered
+ \else
+ \def\@tempa{#1}\def\@tempb{page}%
+ \ifx\@tempa\@tempb
+ \global\bypage@true
+ \global\bypstart@false
+ \else
+ \def\@tempb{pstart}%
+ \ifx\@tempa\@tempb
+ \global\bypage@false
+ \global\bypstart@true
+ \else
+ \def\@tempb{section}
+ \ifx\@tempa\@tempb
+ \global\bypage@false
+ \global\bypstart@false
+ \else
+ \led@warn@BadLineation
+ \fi
+ \fi
+ \fi
+ \fi}}
+\newcount\line@margin
+\newcommand*{\linenummargin}[1]{{%
+ \l@dgetline@margin{#1}%
+ \ifnum\@l@dtempcntb>\m@ne
+ \global\line@margin=\@l@dtempcntb
+ \fi}}
+\newcommand*{\l@dgetline@margin}[1]{%
+ \def\@tempa{#1}\def\@tempb{left}%
+ \ifx\@tempa\@tempb
+ \@l@dtempcntb \z@
+ \else
+ \def\@tempb{right}%
+ \ifx\@tempa\@tempb
+ \@l@dtempcntb \@ne
+ \else
+ \def\@tempb{outer}%
+ \ifx\@tempa\@tempb
+ \@l@dtempcntb \tw@
+ \else
+ \def\@tempb{inner}%
+ \ifx\@tempa\@tempb
+ \@l@dtempcntb \thr@@
+ \else
+ \led@warn@BadLinenummargin
+ \@l@dtempcntb \m@ne
+ \fi
+ \fi
+ \fi
+ \fi}
+
+\newcounter{firstlinenum}
+ \setcounter{firstlinenum}{5}
+\newcounter{linenumincrement}
+ \setcounter{linenumincrement}{5}
+\newcounter{firstsublinenum}
+ \setcounter{firstsublinenum}{5}
+\newcounter{sublinenumincrement}
+ \setcounter{sublinenumincrement}{5}
+
+\newcommand*{\firstlinenum}[1]{\setcounter{firstlinenum}{#1}}
+\newcommand*{\linenumincrement}[1]{\setcounter{linenumincrement}{#1}}
+\newcommand*{\firstsublinenum}[1]{\setcounter{firstsublinenum}{#1}}
+\newcommand*{\sublinenumincrement}[1]{\setcounter{sublinenumincrement}{#1}}
+
+\newcount\lock@disp
+\newcommand{\lockdisp}[1]{{%
+ \l@dgetlock@disp{#1}%
+ \ifnum\@l@dtempcntb>\m@ne
+ \global\lock@disp=\@l@dtempcntb
+ \else
+ \led@warn@BadLockdisp
+ \fi}}
+\newcommand*{\l@dgetlock@disp}[1]{
+ \def\@tempa{#1}\def\@tempb{first}%
+ \ifx\@tempa\@tempb
+ \@l@dtempcntb \z@
+ \else
+ \def\@tempb{last}%
+ \ifx\@tempa\@tempb
+ \@l@dtempcntb \@ne
+ \else
+ \def\@tempb{all}%
+ \ifx\@tempa\@tempb
+ \@l@dtempcntb \tw@
+ \else
+ \@l@dtempcntb \m@ne
+ \fi
+ \fi
+ \fi}
+
+\newcount\sublock@disp
+\newcommand{\sublockdisp}[1]{{%
+ \l@dgetlock@disp{#1}%
+ \ifnum\@l@dtempcntb>\m@ne
+ \global\sublock@disp=\@l@dtempcntb
+ \else
+ \led@warn@BadSublockdisp
+ \fi}}
+
+\newcommand*{\linenumberstyle}[1]{%
+ \def\linenumrep##1{\@nameuse{@#1}{##1}}}
+\newcommand*{\sublinenumberstyle}[1]{%
+ \def\sublinenumrep##1{\@nameuse{@#1}{##1}}}
+\linenumberstyle{arabic}
+ \let\linenumr@p\linenumrep
+\sublinenumberstyle{arabic}
+ \let\sublinenumr@p\sublinenumrep
+
+\newlength{\linenumsep}
+ \setlength{\linenumsep}{1pc}
+\newcommand*{\numlabfont}{\normalfont\scriptsize}
+\newcommand*{\ledlinenum}{%
+ \numlabfont\linenumrep{\line@num}%
+ \ifsublines@
+ \ifnum\subline@num>0\relax
+ \unskip\fullstop\sublinenumrep{\subline@num}%
+ \fi
+ \fi}
+\newcommand*{\leftlinenum}{%
+ \ledlinenum
+ \kern\linenumsep}
+\newcommand*{\rightlinenum}{%
+ \kern\linenumsep
+ \ledlinenum}
+
+\newcommand*{\list@create}[1]{\global\let#1=\empty}
+\newcommand*{\list@clear}[1]{\global\let#1=\empty}
+\newtoks\@toksa \newtoks\@toksb
+\global\@toksa={\\}
+\long\def\xright@appenditem#1\to#2{%
+ \global\@toksb=\expandafter{#2}%
+ \xdef#2{\the\@toksb\the\@toksa\expandafter{#1}}%
+ \global\@toksb={}}
+\long\def\xleft@appenditem#1\to#2{%
+ \global\@toksb=\expandafter{#2}%
+ \xdef#2{\the\@toksa\expandafter{#1}\the\@toksb}%
+ \global\@toksb={}}
+\def\gl@p#1\to#2{\expandafter\gl@poff#1\gl@poff#1#2}
+\long\def\gl@poff\\#1#2\gl@poff#3#4{\gdef#4{#1}\gdef#3{#2}}
+
+\newcount\line@num
+\newcount\subline@num
+\newif\ifsublines@
+\newcount\absline@num
+\newcount\@lock
+\newcount\sub@lock
+\list@create{\line@list}
+\list@create{\insertlines@list}
+\list@create{\actionlines@list}
+\list@create{\actions@list}
+
+\newcount\page@num
+\newcount\endpage@num
+\newcount\endline@num
+\newcount\endsubline@num
+\newif\ifnoteschanged@
+\newcommand*{\resetprevline@}{%
+ \renewcommand{\do}[1]{\global\csundef{prevline##1}}%
+ \dolistloop{\@series}%
+}
+\newread\@inputcheck
+\newcommand*{\read@linelist}[1]{%
+ \list@clearing@reg
+ \get@linelistfile{#1}%
+ \endgroup
+
+ \global\page@num=\m@ne
+ \ifx\actionlines@list\empty
+ \gdef\next@actionline{1000000}%
+ \else
+ \gl@p\actionlines@list\to\next@actionline
+ \gl@p\actions@list\to\next@action
+ \fi}
+
+\newcommand*{\list@clearing@reg}{%
+ \list@clear{\line@list}%
+ \list@clear{\insertlines@list}%
+ \list@clear{\actionlines@list}%
+ \list@clear{\actions@list}}
+\newcommand*{\get@linelistfile}[1]{%
+ \InputIfFileExists{#1}{%
+ \global\noteschanged@false
+ \begingroup
+ \catcode`\[=1 \catcode`\]=2
+ \makeatletter \catcode`\^^M=9}{%
+ \led@warn@NoLineFile{#1}%
+ \global\noteschanged@true
+ \begingroup}%
+}
+
+\newcommand{\@l}[2]{%
+ \fix@page{#1}%
+ \@l@reg}
+\newcommand*{\@l@reg}{%
+ \ifx\l@dchset@num\relax \else
+ \advance\absline@num \@ne
+ \set@line@action
+ \let\l@dchset@num=\relax
+ \advance\absline@num \m@ne
+ \advance\line@num \m@ne
+ \fi
+ \advance\absline@num \@ne
+ \ifx\next@page@num\relax \else
+ \page@action
+ \let\next@page@num=\relax
+ \fi
+ \ifx\sub@change\relax \else
+ \ifnum\sub@change>\z@
+ \sublines@true
+ \else
+ \sublines@false
+ \fi
+ \sub@action
+ \let\sub@change=\relax
+ \fi
+ \ifcase\@lock
+ \or
+ \@lock \tw@
+ \or \or
+ \@lock \z@
+ \fi
+ \ifcase\sub@lock
+ \or
+ \sub@lock \tw@
+ \or \or
+ \sub@lock \z@
+ \fi
+ \ifsublines@
+ \ifnum\sub@lock<\tw@
+ \advance\subline@num \@ne
+ \fi
+ \else
+ \ifnum\@lock<\tw@
+ \advance\line@num \@ne \subline@num \z@
+ \fi
+ \fi}
+
+\newcommand*{\@page}[1]{%
+ \ifbypage@
+ \line@num \z@ \subline@num \z@
+ \fi
+ \page@num=#1\relax
+ \def\next@page@num{#1}}
+
+\newcount\last@page@num
+ \last@page@num=-10000
+\newcommand*{\fix@page}[1]{%
+ \ifnum #1=\last@page@num
+ \else
+ \ifbypage@
+ \line@num=\z@ \subline@num=\z@
+ \fi
+ \page@num=#1\relax
+ \last@page@num=#1\relax
+ \def\next@page@num{#1}%
+ \fi}
+
+\newcommand*{\@pend}[1]{}
+\newcommand*{\@pendR}[1]{}
+\newcommand*{\@lopL}[1]{}
+\newcommand*{\@lopR}[1]{}
+
+\newcommand*{\sub@on}{\ifsublines@
+ \let\sub@change=\relax
+ \else
+ \def\sub@change{1}%
+ \fi}
+\newcommand*{\sub@off}{\ifsublines@
+ \def\sub@change{-1}%
+ \else
+ \let\sub@change=\relax
+ \fi}
+
+\newcommand*{\@adv}[1]{\ifsublines@
+ \advance\subline@num by #1\relax
+ \ifnum\subline@num<\z@
+ \led@warn@BadAdvancelineSubline
+ \subline@num \z@
+ \fi
+ \else
+ \advance\line@num by #1\relax
+ \ifnum\line@num<\z@
+ \led@warn@BadAdvancelineLine
+ \line@num \z@
+ \fi
+ \fi
+ \set@line@action}
+
+\newcommand*{\@set}[1]{\ifsublines@
+ \subline@num=#1\relax
+ \else
+ \line@num=#1\relax
+ \fi
+ \set@line@action}
+
+\newcommand*{\l@d@set}[1]{%
+ \line@num=#1\relax
+ \advance\line@num \@ne
+ \def\l@dchset@num{#1}}
+\let\l@dchset@num\relax
+
+
+\newcommand*{\page@action}{%
+ \xright@appenditem{\the\absline@num}\to\actionlines@list
+ \xright@appenditem{\next@page@num}\to\actions@list}
+\newcommand*{\set@line@action}{%
+ \xright@appenditem{\the\absline@num}\to\actionlines@list
+ \ifsublines@
+ \@l@dtempcnta=-\subline@num
+ \else
+ \@l@dtempcnta=-\line@num
+ \fi
+ \advance\@l@dtempcnta by -5000
+ \xright@appenditem{\the\@l@dtempcnta}\to\actions@list}
+\newcommand*{\sub@action}{%
+ \xright@appenditem{\the\absline@num}\to\actionlines@list
+ \ifsublines@
+ \xright@appenditem{-1001}\to\actions@list
+ \else
+ \xright@appenditem{-1002}\to\actions@list
+ \fi}
+\newcommand*{\lock@on}{\futurelet\next\do@lockon}
+\newcommand*{\do@lockon}{%
+ \ifx\next\lock@off
+ \global\let\lock@off=\skip@lockoff
+ \else
+ \do@lockonL
+ \fi}
+\newcommand*{\do@lockonL}{%
+ \xright@appenditem{\the\absline@num}\to\actionlines@list
+ \ifsublines@
+ \xright@appenditem{-1005}\to\actions@list
+ \ifnum\sub@lock=\z@
+ \sub@lock \@ne
+ \else
+ \ifnum\sub@lock=\thr@@
+ \sub@lock \@ne
+ \fi
+ \fi
+ \else
+ \xright@appenditem{-1003}\to\actions@list
+ \ifnum\@lock=\z@
+ \@lock \@ne
+ \else
+ \ifnum\@lock=\thr@@
+ \@lock \@ne
+ \fi
+ \fi
+ \fi}
+
+\newcommand*{\do@lockoffL}{%
+ \xright@appenditem{\the\absline@num}\to\actionlines@list
+ \ifsublines@
+ \xright@appenditem{-1006}\to\actions@list
+ \ifnum\sub@lock=\tw@
+ \sub@lock \thr@@
+ \else
+ \sub@lock \z@
+ \fi
+ \else
+ \xright@appenditem{-1004}\to\actions@list
+ \ifnum\@lock=\tw@
+ \@lock \thr@@
+ \else
+ \@lock \z@
+ \fi
+ \fi}
+\newcommand*{\do@lockoff}{\do@lockoffL}
+\newcommand*{\skip@lockoff}{\global\let\lock@off=\do@lockoff}
+\global\let\lock@off=\do@lockoff
+
+\newcommand*{\n@num}{\n@num@reg}
+\newcommand*{\n@num@reg}{%
+ \xright@appenditem{\the\absline@num}\to\actionlines@list
+ \xright@appenditem{-1007}\to\actions@list}
+
+\newcount\insert@count
+\newcommand*{\dummy@ref}[2]{#2}
+\newcommand*{\@ref}[2]{%
+ \@ref@reg{#1}{#2}}
+\newcommand*{\@ref@reg}[2]{%
+ \global\insert@count=#1\relax
+ \loop\ifnum\insert@count>\z@
+ \xright@appenditem{\the\absline@num}\to\insertlines@list
+ \global\advance\insert@count \m@ne
+ \repeat
+ \begingroup
+ \let\@ref=\dummy@ref
+ \let\page@action=\relax
+ \let\sub@action=\relax
+ \let\set@line@action=\relax
+ \let\@lab=\relax
+ #2
+ \global\endpage@num=\page@num
+ \global\endline@num=\line@num
+ \global\endsubline@num=\subline@num
+ \endgroup
+ \xright@appenditem%
+ {\the\page@num|\the\line@num|%
+ \ifsublines@ \the\subline@num \else 0\fi|%
+ \the\endpage@num|\the\endline@num|%
+ \ifsublines@ \the\endsubline@num \else 0\fi}\to\line@list
+ #2}
+
+\newwrite\linenum@out
+\newif\iffirst@linenum@out@
+ \first@linenum@out@true
+\newcommand*{\line@list@stuff}[1]{%
+ \read@linelist{#1}%
+ \iffirst@linenum@out@
+ \immediate\closeout\linenum@out
+ \global\first@linenum@out@false
+ \immediate\openout\linenum@out=#1\relax
+ \else
+ \closeout\linenum@out
+ \openout\linenum@out=#1\relax
+ \fi}
+
+\newcommand*{\new@line}{\write\linenum@out{\string\@l[\the\c@page][\thepage]}}
+\newcommand*{\flag@start}{%
+ \edef\next{\write\linenum@out{%
+ \string\@ref[\the\insert@count][}}%
+ \next}
+\newcommand*{\flag@end}{\write\linenum@out{]}}
+\newcommand*{\page@start}{}
+
+\newcommand*{\startsub}{\dimen0\lastskip
+ \ifdim\dimen0>0pt \unskip \fi
+ \write\linenum@out{\string\sub@on}%
+ \ifdim\dimen0>0pt \hskip\dimen0 \fi}
+\def\endsub{\dimen0\lastskip
+ \ifdim\dimen0>0pt \unskip \fi
+ \write\linenum@out{\string\sub@off}%
+ \ifdim\dimen0>0pt \hskip\dimen0 \fi}
+
+\newcommand*{\advanceline}[1]{\write\linenum@out{\string\@adv[#1]}}
+\newcommand*{\setline}[1]{%
+ \ifnum#1<\z@
+ \led@warn@BadSetline
+ \else
+ \write\linenum@out{\string\@set[#1]}%
+ \fi}
+
+\newcommand*{\setlinenum}[1]{%
+ \ifnum#1<\z@
+ \led@warn@BadSetlinenum
+ \else
+ \write\linenum@out{\string\l@d@set[#1]}%
+ \fi}
+
+\newcommand*{\startlock}{\write\linenum@out{\string\lock@on}}
+\def\endlock{\write\linenum@out{\string\lock@off}}
+
+\newif\ifl@dskipnumber
+ \l@dskipnumberfalse
+\newcommand*{\skipnumbering}{\skipnumbering@reg}
+\newcommand*{\skipnumbering@reg}{%
+ \write\linenum@out{\string\n@num}%
+ \advanceline{-1}}
+
+\list@create{\end@lemmas}
+\long\def\dummy@text#1#2/{#1}
+\newcommand{\dummy@edtext}[2]{#1}
+\newcommand*{\no@expands}{%
+ \let\select@@lemmafont=0%
+ \let\startsub=\relax \let\endsub=\relax
+ \let\startlock=\relax \let\endlock=\relax
+ \let\edlabel=\@gobble
+ \let\setline=\@gobble \let\advanceline=\@gobble
+ \let\critext=\dummy@text
+ \let\edtext=\dummy@edtext
+ \l@dtabnoexpands
+ \morenoexpands}
+\let\morenoexpands=\relax
+
+\newcommand{\@tag}{}
+\long\def\critext#1#2/{\leavevmode
+ \begingroup
+ \global\renewcommand{\@tag}{\no@expands #1}%%
+ \set@line
+ \global\insert@count=0
+ \ignorespaces #2\relax
+ \flag@start
+ \endgroup
+ \showlemma{#1}%
+ \ifx\end@lemmas\empty \else
+ \gl@p\end@lemmas\to\x@lemma
+ \x@lemma
+ \global\let\x@lemma=\relax
+ \fi
+ \flag@end}
+\newcommand{\edtext}[2]{\leavevmode
+ \begingroup
+ \global\renewcommand{\@tag}{\no@expands #1}%%
+ \set@line
+ \global\insert@count=0
+ \ignorespaces #2\relax
+ \flag@start
+ \endgroup
+ \showlemma{#1}%
+ \ifx\end@lemmas\empty \else
+ \gl@p\end@lemmas\to\x@lemma
+ \x@lemma
+ \global\let\x@lemma=\relax
+ \fi
+ \flag@end}
+
+\newif\ifnumberline
+\numberlinetrue
+\newcommand*{\set@line}{%
+ \ifx\line@list\empty
+ \global\noteschanged@true
+ \xdef\l@d@nums{000|000|000|000|000|000|\edfont@info}%
+ \else
+ \gl@p\line@list\to\@tempb
+ \xdef\l@d@nums{\@tempb|\edfont@info}%
+ \global\let\@tempb=\undefined
+ \fi}
+
+\newcommand*{\edfont@info}{\f@encoding/\f@family/\f@series/\f@shape}
+
+\newcommand*{\lemma}[1]{\global\renewcommand{\@tag}{\no@expands #1}}
+\newcommand*{\linenum}[1]{%
+ \xdef\@tempa{#1|||||||\noexpand\\\l@d@nums}%
+ \global\let\l@d@nums=\empty
+ \expandafter\line@set\@tempa|\\\ignorespaces}
+\def\line@set#1|#2\\#3|#4\\{%
+ \gdef\@tempb{#1}%
+ \ifx\@tempb\empty
+ \l@d@add{#3}%
+ \else
+ \l@d@add{#1}%
+ \fi
+ \gdef\@tempb{#4}%
+ \ifx\@tempb\empty\else
+ \l@d@add{|}\line@set#2\\#4\\%
+ \fi}
+\newcommand{\l@d@add}[1]{\xdef\l@d@nums{\l@d@nums#1}}
+
+\newbox\raw@text
+\newif\ifnumberedpar@
+\newcount\num@lines
+\newbox\one@line
+\newcount\par@line
+
+\newcounter{pstart}
+\renewcommand{\thepstart}{{\bfseries\@arabic\c@pstart}. }
+\newif\ifnumberpstart
+\numberpstartfalse
+\newcommand*{\pstart}{
+\if@nobreak
+\let\@oldnobreak\@nobreaktrue
+\else
+\let\@oldnobreak\@nobreakfalse
+\fi
+\@nobreaktrue
+\ifnumbering \else
+ \led@err@PstartNotNumbered
+ \beginnumbering
+ \fi
+ \ifnumberedpar@
+ \led@err@PstartInPstart
+ \pend
+ \fi
+ \list@clear{\inserts@list}%
+ \global\let\next@insert=\empty
+ \begingroup\normal@pars
+ \global\setbox\raw@text=\vbox\bgroup\ifautopar\else\ifnumberpstart\ifinstanza\else\ifsidepstartnum\else\thepstart\fi\fi\fi\fi
+ \numberedpar@true}
+\newcommand*{\pend}{\ifnumbering \else
+ \led@err@PendNotNumbered
+ \fi
+ \ifnumberedpar@ \else
+ \led@err@PendNoPstart
+ \fi
+ \l@dzeropenalties
+ \endgraf\global\num@lines=\prevgraf\egroup
+ \global\par@line=0
+ \csnumdef{pstartline}{0}
+ \loop\ifvbox\raw@text
+ \csnumdef{pstartline}{\pstartline+1}%
+ \do@line
+ \ifbypstart@%
+ \ifnumequal{\pstartline}{1}{\setline{1}\resetprevline@}{}%
+ \fi
+ \repeat
+ \flush@notes
+ \endgroup
+ \ignorespaces
+ \ifnumberpstart
+ \pstartnumtrue
+ \fi
+ \@oldnobreak
+ \addtocounter{pstart}{1}}
+
+\newcommand*{\l@dzeropenalties}{%
+ \brokenpenalty \z@ \clubpenalty \z@
+ \displaywidowpenalty \z@ \interlinepenalty \z@ \predisplaypenalty \z@
+ \postdisplaypenalty \z@ \widowpenalty \z@}
+
+\newif\ifautopar
+\autoparfalse
+\newcommand*{\autopar}{
+ \ifledRcol
+ \ifnumberingR \else
+ \led@err@AutoparNotNumbered
+ \beginnumberingR
+ \fi
+ \else
+ \ifnumbering \else
+ \led@err@AutoparNotNumbered
+ \beginnumbering
+ \fi
+ \fi
+ \autopartrue
+ \everypar={\setbox0=\lastbox
+ \endgraf \vskip-\parskip
+ \pstart \noindent \kern\wd0 \ifnumberpstart\ifinstanza\else\thepstart\fi\fi
+ \let\par=\pend}%
+ \ignorespaces}
+\newcommand*{\normal@pars}{\everypar={}\let\par\endgraf}
+
+ \newcommand*{\l@dunhbox@line}[1]{\unhbox #1}
+ \newcommand*{\do@line}{%
+ {\vbadness=10000
+ \splittopskip=\z@
+ \do@linehook
+\l@demptyd@ta
+ \global\setbox\one@line=\vsplit\raw@text to\baselineskip}%
+ \unvbox\one@line \global\setbox\one@line=\lastbox
+ \getline@num
+ \ifnum\@lock>\@ne
+ \inserthangingsymboltrue
+ \else
+ \inserthangingsymbolfalse
+ \fi
+ \affixline@num
+ \affixpstart@num
+ \hb@xt@ \linewidth{\inserthangingsymbol\l@dld@ta\add@inserts\affixside@note
+ \l@dlsn@te
+ {\ledllfill\hb@xt@ \wd\one@line{\new@line\l@dunhbox@line{\one@line}}\ledrlfill\l@drd@ta%
+ \l@drsn@te
+ }}}%
+\newcommand*{\do@linehook}{}
+\newcommand*{\l@demptyd@ta}{%
+ \gdef\l@dld@ta{}%
+ \gdef\l@drd@ta{}%
+ \gdef\l@dcsnotetext{}}
+
+\newcommand{\l@dlsn@te}{%
+ \hb@xt@ \z@{\hss\box\l@dlp@rbox\kern\ledlsnotesep}}
+\newcommand{\l@drsn@te}{%
+ \hb@xt@ \z@{\kern\ledrsnotesep\box\l@drp@rbox\hss}}
+
+\newcommand*{\ledllfill}{\hfil}
+\newcommand*{\ledrlfill}{}
+
+\newcommand*{\getline@num}{%
+ \global\advance\absline@num \@ne
+ \do@actions
+ \do@ballast
+ \ifnumberline
+ \ifsublines@
+ \ifnum\sub@lock<\tw@
+ \global\advance\subline@num \@ne
+ \fi
+ \else
+ \ifnum\@lock<\tw@
+ \global\advance\line@num \@ne
+ \global\subline@num \z@
+ \fi
+ \fi
+ \fi
+ }
+\newcount\ballast@count
+\newcounter{ballast}
+ \setcounter{ballast}{0}
+\newcommand*{\do@ballast}{\global\ballast@count \z@
+ \begingroup
+ \advance\absline@num \@ne
+ \ifnum\next@actionline=\absline@num
+ \ifnum\next@action>-1001\relax
+ \global\advance\ballast@count by -\c@ballast
+ \fi
+ \fi
+ \endgroup}
+\newcommand*{\do@actions}{%
+ \global\let\do@actions@next=\relax
+ \ifnum\absline@num<\next@actionline\else
+ \ifnum\next@action>-1001
+ \global\page@num=\next@action
+ \ifbypage@
+ \global\line@num=\z@ \global\subline@num=\z@
+ \resetprevline@
+ \fi
+ \else
+ \ifnum\next@action<-4999
+ \@l@dtempcnta=-\next@action
+ \advance\@l@dtempcnta by -5001
+ \ifsublines@
+ \global\subline@num=\@l@dtempcnta
+ \else
+ \global\line@num=\@l@dtempcnta
+ \fi
+ \else
+ \@l@dtempcnta=-\next@action
+ \advance\@l@dtempcnta by -1000
+ \do@actions@fixedcode
+ \fi
+ \fi
+ \ifx\actionlines@list\empty
+ \gdef\next@actionline{1000000}%
+ \else
+ \gl@p\actionlines@list\to\next@actionline
+ \gl@p\actions@list\to\next@action
+ \global\let\do@actions@next=\do@actions
+ \fi
+ \fi
+\do@actions@next}
+
+\newcommand*{\do@actions@fixedcode}{%
+ \ifcase\@l@dtempcnta
+ \or% % 1001
+ \global\sublines@true
+ \or% % 1002
+ \global\sublines@false
+ \or% % 1003
+ \global\@lock=\@ne
+ \or% % 1004
+ \ifnum\@lock=\tw@
+ \global\@lock=\thr@@
+ \else
+ \global\@lock=\z@
+ \fi
+ \or% % 1005
+ \global\sub@lock=\@ne
+ \or% % 1006
+ \ifnum\sub@lock=\tw@
+ \global\sub@lock=\thr@@
+ \else
+ \global\sub@lock=\z@
+ \fi
+ \or% % 1007
+ \l@dskipnumbertrue
+ \else
+ \led@warn@BadAction
+ \fi}
+
+\newcommand*{\affixline@num}{%
+\ifnumberline
+\ifl@dskipnumber
+ \global\l@dskipnumberfalse
+\else
+ \ifsublines@
+ \@l@dtempcntb=\subline@num
+ \ifnum\subline@num>\c@firstsublinenum
+ \@l@dtempcnta=\subline@num
+ \advance\@l@dtempcnta by-\c@firstsublinenum
+ \divide\@l@dtempcnta by\c@sublinenumincrement
+ \multiply\@l@dtempcnta by\c@sublinenumincrement
+ \advance\@l@dtempcnta by\c@firstsublinenum
+ \else
+ \@l@dtempcnta=\c@firstsublinenum
+ \fi
+ \ch@cksub@l@ck
+ \else
+ \@l@dtempcntb=\line@num
+ \ifx\linenumberlist\empty
+ \ifnum\line@num>\c@firstlinenum
+ \@l@dtempcnta=\line@num
+ \advance\@l@dtempcnta by-\c@firstlinenum
+ \divide\@l@dtempcnta by\c@linenumincrement
+ \multiply\@l@dtempcnta by\c@linenumincrement
+ \advance\@l@dtempcnta by\c@firstlinenum
+ \else
+ \@l@dtempcnta=\c@firstlinenum
+ \fi
+ \else
+ \@l@dtempcnta=\line@num
+ \edef\rem@inder{,\linenumberlist,\number\line@num,}%
+ \edef\sc@n@list{\def\noexpand\sc@n@list
+ ####1,\number\@l@dtempcnta,####2|{\def\noexpand\rem@inder{####2}}}%
+ \sc@n@list\expandafter\sc@n@list\rem@inder|%
+ \ifx\rem@inder\empty\advance\@l@dtempcnta\@ne\fi
+ \fi
+ \ch@ck@l@ck
+ \fi
+ \ifnum\@l@dtempcnta=\@l@dtempcntb
+ \if@twocolumn
+ \if@firstcolumn
+ \gdef\l@dld@ta{\llap{{\leftlinenum}}}%
+ \else
+ \gdef\l@drd@ta{\rlap{{\rightlinenum}}}%
+ \fi
+ \else
+ \@l@dtempcntb=\line@margin
+ \ifnum\@l@dtempcntb>\@ne
+ \advance\@l@dtempcntb \page@num
+ \fi
+ \ifodd\@l@dtempcntb
+ \gdef\l@drd@ta{\rlap{{\rightlinenum}}}%
+ \else
+ \gdef\l@dld@ta{\llap{{\leftlinenum}}}%
+ \fi
+ \fi
+ \else
+%% #1%
+ \fi
+ \f@x@l@cks
+\fi
+\fi
+}
+
+\newcommand*{\ch@cksub@l@ck}{%
+ \ifcase\sub@lock
+ \or
+ \ifnum\sublock@disp=\@ne
+ \@l@dtempcntb=\z@ \@l@dtempcnta=\@ne
+ \fi
+ \or
+ \ifnum\sublock@disp=\tw@ \else
+ \@l@dtempcntb=\z@ \@l@dtempcnta=\@ne
+ \fi
+ \or
+ \ifnum\sublock@disp=\z@
+ \@l@dtempcntb=\z@ \@l@dtempcnta=\@ne
+ \fi
+ \fi}
+\newcommand*{\ch@ck@l@ck}{%
+ \ifcase\@lock
+ \or
+ \ifnum\lock@disp=\@ne
+ \@l@dtempcntb=\z@ \@l@dtempcnta=\@ne
+ \fi
+ \or
+ \ifnum\lock@disp=\tw@ \else
+ \@l@dtempcntb=\z@ \@l@dtempcnta=\@ne
+ \fi
+ \or
+ \ifnum\lock@disp=\z@
+ \@l@dtempcntb=\z@ \@l@dtempcnta=\@ne
+ \fi
+ \fi}
+\newcommand*{\f@x@l@cks}{%
+ \ifcase\@lock
+ \or
+ \global\@lock=\tw@
+ \or \or
+ \global\@lock=\z@
+ \fi
+ \ifcase\sub@lock
+ \or
+ \global\sub@lock=\tw@
+ \or \or
+ \global\sub@lock=\z@
+ \fi}
+
+\newcommand{\pageparbreak}{\pend\newpage\pstart\noindent}
+
+
+\newif\ifsidepstartnum
+\newcommand*{\affixpstart@num}{%
+ \ifsidepstartnum
+ \if@twocolumn
+ \if@firstcolumn
+ \gdef\l@dld@ta{\llap{{\leftpstartnum}}}%
+ \else
+ \gdef\l@drd@ta{\rlap{{\rightpstartnum}}}%
+ \fi
+ \else
+ \@l@dtempcntb=\line@margin
+ \ifnum\@l@dtempcntb>\@ne
+ \advance\@l@dtempcntb \page@num
+ \fi
+ \ifodd\@l@dtempcntb
+ \gdef\l@drd@ta{\rlap{{\rightpstartnum}}}%
+ \else
+ \gdef\l@dld@ta{\llap{{\leftpstartnum}}}%
+ \fi
+ \fi
+ \fi
+
+}
+
+\newif\ifpstartnum
+\pstartnumtrue
+\newcommand*{\leftpstartnum}{
+ \ifpstartnum\thepstart
+ \kern\linenumsep\fi
+ \global\pstartnumfalse
+}
+\newcommand*{\rightpstartnum}{
+ \ifpstartnum
+ \kern\linenumsep
+ \thepstart
+ \fi
+ \global\pstartnumfalse
+}
+\list@create{\inserts@list}
+\newcommand*{\add@inserts}{%
+ \global\let\add@inserts@next=\relax
+ \ifx\inserts@list\empty \else
+ \ifx\next@insert\empty
+ \ifx\insertlines@list\empty
+ \global\noteschanged@true
+ \gdef\next@insert{100000}%
+ \else
+ \gl@p\insertlines@list\to\next@insert
+ \fi
+ \fi
+ \ifnum\next@insert=\absline@num
+ \gl@p\inserts@list\to\@insert
+ \@insert
+ \global\let\@insert=\undefined
+ \global\let\next@insert=\empty
+ \global\let\add@inserts@next=\add@inserts
+ \fi
+\fi
+\add@inserts@next}
+
+\newcommand*{\add@penalties}{\@l@dtempcnta=\ballast@count
+ \ifnum\num@lines>\@ne
+ \global\advance\par@line \@ne
+ \ifnum\par@line=\@ne
+ \advance\@l@dtempcnta \clubpenalty
+ \fi
+ \@l@dtempcntb=\par@line \advance\@l@dtempcntb \@ne
+ \ifnum\@l@dtempcntb=\num@lines
+ \advance\@l@dtempcnta \widowpenalty
+ \fi
+ \ifnum\par@line<\num@lines
+ \advance\@l@dtempcnta \interlinepenalty
+ \fi
+ \fi
+ \ifnum\@l@dtempcnta=\z@
+ \relax
+ \else
+ \ifnum\@l@dtempcnta>-10000
+ \penalty\@l@dtempcnta
+ \else
+ \penalty -10000
+ \fi
+ \fi}
+
+\newcommand*{\flush@notes}{%
+ \@xloop
+ \ifx\inserts@list\empty \else
+ \gl@p\inserts@list\to\@insert
+ \@insert
+ \global\let\@insert=\undefined
+ \repeat}
+
+\def\@xloop#1\repeat{%
+ \def\body{#1\expandafter\body\fi}%
+ \body}
+
+ \def\select@lemmafont#1|#2|#3|#4|#5|#6|#7|{\select@@lemmafont#7|}
+ \def\select@@lemmafont#1/#2/#3/#4|%
+ {\fontencoding{#1}\fontfamily{#2}\fontseries{#3}\fontshape{#4}%
+ \selectfont}
+
+\newcommandx*{\footnoteoptions@}[3][1=L,usedefault]{%
+ \renewcommand{\do}[1]{%
+ \ifstrequal{#1}{L}{% In Leftside
+ \xright@appenditem{\global\noexpand\settoggle{##1@}{#3}}\to\inserts@list% Switch toogle, in all case
+ \global\advance\insert@count \@ne% Increment the left insert counter.
+ }%
+ {%
+ \xright@appenditem{\global\noexpand\settoggle{##1@}{#3}}\to\inserts@listR% Switch toogle, in all case
+ \global\advance\insert@countR \@ne% Increment the right insert counter insert.
+ }%
+ }%
+ \notblank{#2}{\docsvlist{#2}}{}% Parsing all options
+}
+\newcommand*{\normalvfootnote}[2]{%
+ \insert\csname #1footins\endcsname\bgroup
+ \csuse{Xnotefontsize@#1}
+ \footsplitskips
+ \spaceskip=\z@skip \xspaceskip=\z@skip
+ \csname #1footfmt\endcsname #2[#1]\egroup}
+\newcommand*{\footsplitskips}{%
+ \interlinepenalty=\interfootnotelinepenalty
+ \floatingpenalty=\@MM
+ \splittopskip=\ht\strutbox \splitmaxdepth=\dp\strutbox
+ \leftskip=\z@skip \rightskip=\z@skip}
+
+\newcommand*{\mpnormalvfootnote}[2]{%
+ \global\setbox\@nameuse{mp#1footins}\vbox{%
+ \unvbox\@nameuse{mp#1footins}
+ \csuse{Xnotefontsize@#1}
+ \hsize\columnwidth
+ \@parboxrestore
+ \color@begingroup
+ \csname #1footfmt\endcsname #2[#1]\color@endgroup}}
+
+\newcommand*{\ledsetnormalparstuff}{%
+ \normal@pars
+ \parindent \z@ \parfillskip \z@ \@plus 1fil}
+\newcommandx*{\normalfootfmt}[4][4=Z]{% 4th arg is optional, for backward compatibility
+ \ledsetnormalparstuff%
+ \hangindent=\csuse{Xhangindent@#4}
+ \strut{\printlinefootnote{#1}{#4}}%
+ {\select@lemmafont#1|#2}%
+ \iftoggle{nosep@}{\hskip\csuse{inplaceoflemmaseparator@#4}}{\ifcsempty{lemmaseparator@#4}%
+ {\hskip\csuse{inplaceoflemmaseparator@#4}}%
+ {\nobreak\hskip\csuse{beforelemmaseparator@#4}\csuse{lemmaseparator@#4}\hskip\csuse{afterlemmaseparator@#4}%
+ }}%
+ #3\strut\par}
+\def\endashchar{\textnormal{--}}
+\newcommand*{\fullstop}{\textnormal{.}}
+\newcommand*{\rbracket}{\textnormal{\thinspace]}}
+
+\newif\ifl@d@pnum
+ \l@d@pnumfalse
+\newif\ifl@d@ssub
+ \l@d@ssubfalse
+\newif\ifl@d@elin
+ \l@d@elinfalse
+\newif\ifl@d@esl
+ \l@d@eslfalse
+\newif\ifl@d@dash
+ \l@d@dashfalse
+\newcommand*{\l@dparsefootspec}[3]{\l@dp@rsefootspec#1|}
+\def\l@dp@rsefootspec#1|#2|#3|#4|#5|#6|#7|{%
+ \gdef\l@dparsedstartpage{#1}%
+ \gdef\l@dparsedstartline{#2}%
+ \gdef\l@dparsedstartsub{#3}%
+ \gdef\l@dparsedendpage{#4}%
+ \gdef\l@dparsedendline{#5}%
+ \gdef\l@dparsedendsub{#6}%
+}
+\def\l@dparsedstartpage{0}%
+\def\l@dparsedstartline{0}%
+\def\l@dparsedstartsub{0}%
+\def\l@dparsedendpage{0}%
+\def\l@dparsedendline{0}%
+\def\l@dparsedendsub{0}%
+
+\newcommand*{\setprintlines}[6]{%
+ \l@d@pnumfalse \l@d@dashfalse
+ \ifbypage@
+ \ifnum#4=#1 \else
+ \l@d@pnumtrue
+ \l@d@dashtrue
+ \fi
+ \fi
+ \ifl@d@pnum \l@d@elintrue \else \l@d@elinfalse \fi
+ \ifnum#2=#5 \else
+ \l@d@elintrue
+ \l@d@dashtrue
+ \fi
+ \l@d@ssubfalse
+ \ifnum#3=0 \else
+ \l@d@ssubtrue
+ \fi
+ \l@d@eslfalse
+ \ifnum#6=0 \else
+ \ifnum#6=#3
+ \ifl@d@elin \l@d@esltrue \else \l@d@eslfalse \fi
+ \else
+ \l@d@esltrue
+ \l@d@dashtrue
+ \fi
+ \fi}
+\def\printlines#1|#2|#3|#4|#5|#6|#7|{\begingroup
+ \ifbypstart@%
+ \ifl@dpairing%
+ \ifledRcol%
+ \thepstartR%
+ \else%
+ \thepstartL%
+ \fi%
+ \else%
+ \thepstart%
+ \fi%
+ \fi%
+ \setprintlines{#1}{#2}{#3}{#4}{#5}{#6}%
+ \ifl@d@pnum #1\fullstop\fi
+ \linenumrep{#2}
+ \ifl@d@ssub \fullstop \sublinenumrep{#3}\fi
+ \ifl@d@dash \endashchar\fi
+ \ifl@d@pnum #4\fullstop\fi
+ \ifl@d@elin \linenumrep{#5}\fi
+ \ifl@d@esl \ifl@d@elin \fullstop\fi \sublinenumrep{#6}\fi
+\endgroup}
+\newcommand*{\normalfootstart}[1]{%
+ \vskip\skip\csname #1footins\endcsname
+ \leftskip0pt \rightskip0pt
+ \csname #1footnoterule\endcsname}
+\let\normalfootnoterule=\footnoterule
+\newcommand*{\normalfootgroup}[1]{\unvbox\csname #1footins\endcsname}
+
+\newcommand*{\mpnormalfootgroup}[1]{{
+ \vskip\skip\@nameuse{mp#1footins}
+ \normalcolor
+ \@nameuse{#1footnoterule}
+ \unvbox\csname mp#1footins\endcsname}}
+
+\newcommand*{\ledfootinsdim}{0.8\vsize}
+
+\newcommand*{\footnormal}[1]{%
+ \expandafter\let\csname #1footstart\endcsname=\normalfootstart
+ \expandafter\let\csname v#1footnote\endcsname=\normalvfootnote
+ \expandafter\let\csname #1footfmt\endcsname=\normalfootfmt
+ \expandafter\let\csname #1footgroup\endcsname=\normalfootgroup
+ \expandafter\let\csname #1footnoterule\endcsname=%
+ \normalfootnoterule
+ \count\csname #1footins\endcsname=1000
+ \dimen\csname #1footins\endcsname=\ledfootinsdim
+ \skip\csname #1footins\endcsname=1.2em \@plus .6em \@minus .6em
+ \expandafter\let\csname mpv#1footnote\endcsname=\mpnormalvfootnote
+ \expandafter\let\csname mp#1footgroup\endcsname=\mpnormalfootgroup
+ \count\csname mp#1footins\endcsname=1000
+ \dimen\csname mp#1footins\endcsname=\ledfootinsdim
+ \skip\csname mp#1footins\endcsname=1.2em \@plus .6em \@minus .6em
+}
+
+\newcommand*{\footparagraph}[1]{%
+ \expandafter\newcount\csname prevpage#1@num\endcsname
+ \expandafter\let\csname #1footstart\endcsname=\parafootstart
+ \expandafter\let\csname v#1footnote\endcsname=\para@vfootnote
+ \expandafter\let\csname #1footfmt\endcsname=\parafootfmt
+ \expandafter\let\csname #1footgroup\endcsname=\para@footgroup
+ \count\csname #1footins\endcsname=1000
+ \para@footsetup{#1}
+ \expandafter\let\csname mpv#1footnote\endcsname=\mppara@vfootnote
+ \expandafter\let\csname mp#1footgroup\endcsname=\mppara@footgroup
+ \count\csname mp#1footins\endcsname=1000
+}
+\providecommand{\footfudgefiddle}{64}
+\newcommand*{\para@footsetup}[1]{{\csuse{Xnotefontsize@#1}
+ \dimen0=\baselineskip
+ \multiply\dimen0 by 1024
+ \divide \dimen0 by \columnwidth \multiply\dimen0 by \footfudgefiddle\relax
+ \expandafter
+ \xdef\csname #1footfudgefactor\endcsname{%
+ \expandafter\strip@pt\dimen0 }}}
+
+\newcommand*{\parafootstart}[1]{%
+ \rightskip=0pt \leftskip=0pt \parindent=0pt
+ \vskip\skip\csname #1footins\endcsname
+ \csname #1footnoterule\endcsname}
+\newcommand*{\para@vfootnote}[2]{%
+ \insert\csname #1footins\endcsname
+ \bgroup
+ \csuse{Xnotefontsize@#1}
+ \footsplitskips
+ \setbox0=\vbox{\hsize=\maxdimen
+ \noindent\csname #1footfmt\endcsname#2[#1]}%
+ \setbox0=\hbox{\unvxh0[#1]}%
+ \dp0=0pt
+ \ht0=\csname #1footfudgefactor\endcsname\wd0
+ \box0
+ \penalty0
+ \egroup}
+
+\newcommand*{\mppara@vfootnote}[2]{%
+ \global\setbox\@nameuse{mp#1footins}\vbox{%
+ \unvbox\@nameuse{mp#1footins}%
+ \csuse{Xnotefontsize@#1}
+ \footsplitskips
+ \setbox0=\vbox{\hsize=\maxdimen
+ \noindent\color@begingroup\csname #1footfmt\endcsname #2[#1]\color@endgroup}%
+ \setbox0=\hbox{\unvxh0[#1]}%
+ \dp0=\z@
+ \ht0=\csname #1footfudgefactor\endcsname\wd0
+ \box0
+ \penalty0
+}}
+
+\newcommandx*{\unvxh}[2][2=Z]{% 2th is optional for retro-compatibility
+ \setbox0=\vbox{\unvbox#1%
+ \global\setbox1=\lastbox}%
+ \unhbox1
+ \unskip % remove \rightskip,
+ \unskip % remove \parfillskip,
+ \unpenalty % remove \penalty of 10000,
+ \hskip\csuse{afternote@#2}} % but add the glue to go between the notes
+
+\newcommandx*{\parafootfmt}[4][4=Z]{%
+ \insertparafootsep{#4}%
+ \ledsetnormalparstuff%
+ \printlinefootnote{#1}{#4}%
+ {\select@lemmafont#1|#2}%
+ \iftoggle{nosep@}{\hskip\csuse{inplaceoflemmaseparator@#4}}{\ifcsempty{lemmaseparator@#4}%
+ {\hskip\csuse{inplaceoflemmaseparator@#4}}%
+ {\nobreak\hskip\csuse{beforelemmaseparator@#4}\csuse{lemmaseparator@#4}\hskip\csuse{afterlemmaseparator@#4}%
+ }}%
+ #3\penalty-10 }
+\newcommand*{\para@footgroup}[1]{%
+ \unvbox\csname #1footins\endcsname
+ \makehboxofhboxes
+ \setbox0=\hbox{\unhbox0 \removehboxes}%
+ \csuse{Xnotefontsize@#1}
+ \noindent\unhbox0\par}
+
+\newcommand*{\mppara@footgroup}[1]{{%
+ \vskip\skip\@nameuse{mp#1footins}
+ \normalcolor
+ \@nameuse{#1footnoterule}%
+ \unvbox\csname mp#1footins\endcsname
+ \makehboxofhboxes
+ \setbox0=\hbox{\unhbox0 \removehboxes}%
+ \csuse{Xnotefontsize@#1}
+ \noindent\unhbox0\par}}
+
+\newcommand*{\makehboxofhboxes}{\setbox0=\hbox{}%
+ \loop
+ \unpenalty
+ \setbox2=\lastbox
+ \ifhbox2
+ \setbox0=\hbox{\box2\unhbox0}%
+ \repeat}
+
+\newcommand*{\removehboxes}{\setbox0=\lastbox
+ \ifhbox0{\removehboxes}\unhbox0 \fi}
+
+\newcommand{\insertparafootsep}[1]{%
+ \ifnumequal{\csuse{prevpage#1@num}}{\page@num}%
+ {\ifcsdef{prevline#1}% Be sur \prevline#1 exists.
+ {\ifnumequal{\csuse{prevline#1}}{\line@num}%
+ {\ifcsempty{symplinenum}{\csuse{parafootsep@#1}}{}}%
+ {\csuse{parafootsep@#1}}%
+ }%
+ {\csuse{parafootsep@#1}}%
+ }%
+ {}%
+ \global\csname prevpage#1@num\endcsname=\page@num%
+}
+\newcount\@k \newdimen\@h
+\newcommand*{\rigidbalance}[3]{\setbox0=\box#1 \@k=#2 \@h=#3
+ \@@line{\splittopskip=\@h \vbadness=\@M \hfilneg
+ \valign{##\vfil\cr\dosplits}}}
+
+\newcommand*{\dosplits}{\ifnum\@k>0 \noalign{\hfil}\splitoff
+ \global\advance\@k-1\cr\dosplits\fi}
+
+\newcommand*{\splitoff}{\dimen0=\ht0
+ \divide\dimen0 by\@k \advance\dimen0 by\@h
+ \setbox2 \vsplit0 to \dimen0
+ \unvbox2 }
+
+\newcommand*{\footthreecol}[1]{%
+ \expandafter\let\csname v#1footnote\endcsname=\threecolvfootnote
+ \expandafter\let\csname #1footfmt\endcsname=\threecolfootfmt
+ \expandafter\let\csname #1footgroup\endcsname=\threecolfootgroup
+ \threecolfootsetup{#1}
+ \expandafter\let\csname mpv#1footnote\endcsname=\mpnormalvfootnote
+ \expandafter\let\csname mp#1footgroup\endcsname=\mpthreecolfootgroup
+ \mpthreecolfootsetup{#1}
+}
+
+\newcommand*{\threecolfootsetup}[1]{%
+ \count\csname #1footins\endcsname 333
+ \multiply\dimen\csname #1footins\endcsname \thr@@}
+\newcommand*{\mpthreecolfootsetup}[1]{%
+ \count\csname mp#1footins\endcsname 333
+ \multiply\dimen\csname mp#1footins\endcsname \thr@@}
+
+\newcommand*{\threecolvfootnote}[2]{%
+ \insert\csname #1footins\endcsname\bgroup
+ \csuse{Xnotefontsize@#1}
+ \footsplitskips
+ \csname #1footfmt\endcsname #2[#1]\egroup}
+\newcommandx*{\threecolfootfmt}[4][4=Z]{%
+ \normal@pars
+ \hsize \csuse{hsizethreecol@#4}
+ \parindent=0pt
+ \tolerance=5000
+ \raggedright
+ \hangindent=\csuse{Xhangindent@#4}
+ \leavevmode
+ \strut{\printlinefootnote{#1}{#4}}%
+ {\select@lemmafont#1|#2}%
+ \iftoggle{nosep@}{\hskip\csuse{inplaceoflemmaseparator@#4}}{\ifcsempty{lemmaseparator@#4}%
+ {\hskip\csuse{inplaceoflemmaseparator@#4}}%
+ {\nobreak\hskip\csuse{beforelemmaseparator@#4}\csuse{lemmaseparator@#4}\hskip\csuse{afterlemmaseparator@#4}%
+ }}%
+ #3\strut\par\allowbreak}
+\newcommand*{\threecolfootgroup}[1]{{\notefontsetup
+ \splittopskip=\ht\strutbox
+ \expandafter
+ \rigidbalance\csname #1footins\endcsname \thr@@ \splittopskip}}
+\newcommand*{\mpthreecolfootgroup}[1]{{%
+ \vskip\skip\@nameuse{mp#1footins}
+ \normalcolor
+ \@nameuse{#1footnoterule}
+ \splittopskip=\ht\strutbox
+ \expandafter
+ \rigidbalance\csname mp#1footins\endcsname \thr@@ \splittopskip}}
+
+\newcommand*{\foottwocol}[1]{%
+ \expandafter\let\csname v#1footnote\endcsname=\twocolvfootnote
+ \expandafter\let\csname #1footfmt\endcsname=\twocolfootfmt
+ \expandafter\let\csname #1footgroup\endcsname=\twocolfootgroup
+ \twocolfootsetup{#1}
+ \expandafter\let\csname mpv#1footnote\endcsname=\mpnormalvfootnote
+ \expandafter\let\csname mp#1footgroup\endcsname=\mptwocolfootgroup
+ \mptwocolfootsetup{#1}
+}
+
+\newcommand*{\twocolfootsetup}[1]{%
+ \count\csname #1footins\endcsname 500
+ \multiply\dimen\csname #1footins\endcsname \tw@}
+\newcommand*{\twocolvfootnote}[2]{\insert\csname #1footins\endcsname\bgroup
+ \csuse{Xnotefontsize@#1}
+ \footsplitskips
+ \csname #1footfmt\endcsname #2[#1]\egroup}
+\newcommandx*{\twocolfootfmt}[4][4=Z]{% 4th arg is optional, for backward compatibility
+ \normal@pars
+ \hsize \csuse{hsizetwocol@#4}
+ \parindent=0pt
+ \tolerance=5000
+ \raggedright
+ \hangindent=\csuse{Xhangindent@#4}
+ \leavevmode
+ \strut{\printlinefootnote{#1}{#4}}%
+ {\select@lemmafont#1|#2}%
+ \iftoggle{nosep@}{\hskip\csuse{inplaceoflemmaseparator@#4}}{\ifcsempty{lemmaseparator@#4}%
+ {\hskip\csuse{inplaceoflemmaseparator@#4}}%
+ {\nobreak\hskip\csuse{beforelemmaseparator@#4}\csuse{lemmaseparator@#4}\hskip\csuse{afterlemmaseparator@#4}%
+ }}%
+ #3\strut\par\allowbreak}
+\newcommand*{\twocolfootgroup}[1]{{\csuse{Xnotefontsize@#1}
+ \splittopskip=\ht\strutbox
+ \expandafter
+ \rigidbalance\csname #1footins\endcsname \tw@ \splittopskip}}
+
+\newcommand*{\mptwocolfootsetup}[1]{%
+ \count\csname mp#1footins\endcsname 500
+ \multiply\dimen\csname mp#1footins\endcsname \tw@}
+\newcommand*{\mptwocolfootgroup}[1]{{%
+ \vskip\skip\@nameuse{mp#1footins}
+ \normalcolor
+ \@nameuse{#1footnoterule}
+ \splittopskip=\ht\strutbox
+ \expandafter
+ \rigidbalance\csname mp#1footins\endcsname \tw@ \splittopskip}}
+
+\providecommand*{\multiplefootnotemarker}{3sp}
+\providecommand*{\multfootsep}{\textsuperscript{\normalfont,}}
+
+\providecommand*{\m@mmf@prepare}{%
+ \kern-\multiplefootnotemarker
+ \kern\multiplefootnotemarker\relax}
+\providecommand*{\m@mmf@check}{%
+ \ifdim\lastkern=\multiplefootnotemarker\relax
+ \edef\@x@sf{\the\spacefactor}%
+ \unkern
+ \multfootsep
+ \spacefactor\@x@sf\relax
+ \fi}
+
+\@ifclassloaded{memoir}{}{%
+\let\l@dold@footnotetext\@footnotetext
+\renewcommand{\@footnotetext}[1]{%
+ \l@dold@footnotetext{#1}%
+ \m@mmf@prepare}
+\renewcommand*{\@footnotemark}{%
+ \leavevmode
+ \ifhmode
+ \edef\@x@sf{\the\spacefactor}%
+ \m@mmf@check
+ \nobreak
+ \fi
+ \@makefnmark
+ \m@mmf@prepare
+ \ifhmode\spacefactor\@x@sf\fi
+ \relax}
+}
+
+\let\l@doldold@footnotetext\@footnotetext
+\renewcommand{\@footnotetext}[1]{%
+ \ifnumberedpar@
+ \edtext{}{\l@dbfnote{#1}}%
+ \else
+ \l@doldold@footnotetext{#1}%
+ \fi}
+\newcommand{\l@dbfnote}[1]{%
+ \ifnumberedpar@
+ \xright@appenditem{\noexpand\vl@dbfnote{{#1}}{\@thefnmark}}%
+ \to\inserts@list
+ \global\advance\insert@count \@ne
+ \fi\ignorespaces}
+\newcommand{\vl@dbfnote}[2]{%
+ \def\@thefnmark{#2}%
+ \l@doldold@footnotetext{#1}}
+
+\newcommand*{\prebodyfootmark}{%
+ \leavevmode
+ \ifhmode
+ \edef\@x@sf{\the\spacefactor}%
+ \m@mmf@check
+ \nobreak
+ \fi}
+\newcommand{\postbodyfootmark}{%
+ \m@mmf@prepare
+ \ifhmode\spacefactor\@x@sf\fi\relax}
+
+\newcommand*{\normal@footnotemarkX}[1]{%
+ \prebodyfootmark
+ \@nameuse{bodyfootmark#1}%
+ \postbodyfootmark}
+
+\newcommand*{\normalbodyfootmarkX}[1]{%
+ \hbox{\textsuperscript{\normalfont\@nameuse{@thefnmark#1}}}}
+\newcommand*{\normalvfootnoteX}[2]{%
+ \insert\@nameuse{footins#1}\bgroup
+ \csuse{notefontsizeX@#1}
+ \footsplitskips
+ \spaceskip=\z@skip \xspaceskip=\z@skip
+ \@nameuse{footfmt#1}{#1}{#2}\egroup}
+
+\newcommand*{\mpnormalvfootnoteX}[2]{%
+ \global\setbox\@nameuse{mpfootins#1}\vbox{%
+ \unvbox\@nameuse{mpfootins#1}
+ \csuse{notefontsizeX@#1}
+ \hsize\columnwidth
+ \@parboxrestore
+ \color@begingroup
+ \@nameuse{footfmt#1}{#1}{#2}\color@endgroup}}
+
+\newcommand*{\normalfootfmtX}[2]{%
+ \ledsetnormalparstuff
+ \hangindent=\csuse{hangindentX@#1}%
+ {{\csuse{notenumfontX@#1}\@nameuse{footfootmark#1}}\strut%\enspace
+ #2\strut\par}}
+
+\newcommand*{\normalfootfootmarkX}[1]{%
+ \textsuperscript{\@nameuse{@thefnmark#1}}}
+
+\newcommand*{\normalfootstartX}[1]{%
+ \vskip\skip\@nameuse{footins#1}%
+ \leftskip=\z@
+ \rightskip=\z@
+ \@nameuse{footnoterule#1}}
+
+\let\normalfootnoteruleX=\footnoterule
+
+\newcommand*{\normalfootgroupX}[1]{%
+ \unvbox\@nameuse{footins#1}}
+
+\newcommand*{\mpnormalfootgroupX}[1]{%
+ \vskip\skip\@nameuse{mpfootins#1}
+ \normalcolor
+ \@nameuse{footnoterule#1}
+ \unvbox\@nameuse{mpfootins#1}}
+
+\newcommand{\normalbfnoteX}[2]{%
+ \ifnumberedpar@
+ \xright@appenditem{\noexpand\vbfnoteX{#1}{#2}{\@nameuse{thefootnote#1}}}%
+ \to\inserts@list
+ \global\advance\insert@count \@ne
+ \fi\ignorespaces}
+
+\newcommand{\vbfnoteX}[3]{%
+ \@namedef{@thefnmark#1}{#3}%
+ \@nameuse{regvfootnote#1}{#1}{#2}}
+
+\newcommand{\vnumfootnoteX}[2]{%
+ \ifnumberedpar@
+ \edtext{}{\normalbfnoteX{#1}{#2}}%
+ \else
+ \@nameuse{regvfootnote#1}{#1}{#2}%
+ \fi}
+
+\newcommand*{\footnormalX}[1]{%
+ \expandafter\let\csname footstart#1\endcsname=\normalfootstartX
+ \@namedef{@footnotemark#1}{\normal@footnotemarkX{#1}}
+ \@namedef{bodyfootmark#1}{\normalbodyfootmarkX{#1}}
+ \expandafter\let\csname regvfootnote#1\endcsname=\normalvfootnoteX
+ \expandafter\let\csname vfootnote#1\endcsname=\vnumfootnoteX
+ \expandafter\let\csname footfmt#1\endcsname=\normalfootfmtX
+ \@namedef{footfootmark#1}{\normalfootfootmarkX{#1}}
+ \expandafter\let\csname footgroup#1\endcsname=\normalfootgroupX
+ \expandafter\let\csname footnoterule#1\endcsname=\normalfootnoteruleX
+ \count\csname footins#1\endcsname=1000
+ \dimen\csname footins#1\endcsname=\ledfootinsdim
+ \skip\csname footins#1\endcsname=1.2em \@plus .6em \@minus .6em
+ \expandafter\let\csname mpvfootnote#1\endcsname=\mpnormalvfootnoteX
+ \expandafter\let\csname mpfootgroup#1\endcsname=\mpnormalfootgroupX
+ \count\csname mpfootins#1\endcsname=1000
+ \dimen\csname mpfootins#1\endcsname=\ledfootinsdim
+ \skip\csname mpfootins#1\endcsname=1.2em \@plus .6em \@minus .6em
+}
+
+\newcommand*{\foottwocolX}[1]{%
+ \expandafter\let\csname regvfootnote#1\endcsname=\twocolvfootnoteX
+ \expandafter\let\csname footfmt#1\endcsname=\twocolfootfmtX
+ \expandafter\let\csname footgroup#1\endcsname=\twocolfootgroupX
+ \twocolfootsetupX{#1}
+ \expandafter\let\csname mpvfootnote#1\endcsname=\mpnormalvfootnoteX
+ \expandafter\let\csname mpfootgroup#1\endcsname=\mptwocolfootgroupX
+ \mptwocolfootsetupX{#1}}
+
+\newcommand*{\twocolfootsetupX}[1]{%
+ \count\csname footins#1\endcsname 500
+ \multiply\dimen\csname footins#1\endcsname by \tw@}
+\newcommand*{\mptwocolfootsetupX}[1]{%
+ \count\csname mpfootins#1\endcsname 500
+ \multiply\dimen\csname mpfootins#1\endcsname by \tw@}
+
+\newcommand*{\twocolvfootnoteX}[2]{%
+ \insert\csname footins#1\endcsname\bgroup
+ \csuse{notefontsizeX@#1}
+ \footsplitskips
+ \spaceskip=\z@skip \xspaceskip=\z@skip
+ \@nameuse{footfmt#1}{#1}{#2}\egroup}
+
+\newcommand*{\twocolfootfmtX}[2]{%
+ \normal@pars
+ \hangindent=\csuse{hangindentX@#1}%
+ \hsize \csuse{hsizetwocolX@#1}
+ \parindent=\z@
+%%% \parfillskip=0pt \@plus 1fil
+ \tolerance=5000\relax
+ \raggedright
+ \leavevmode
+ {\csuse{notenumfontX@#1}\@nameuse{footfootmark#1}\strut%\enspace
+ #2\strut\par}\allowbreak}
+
+\newcommand*{\twocolfootgroupX}[1]{{\csuse{notefontsizeX@#1}
+ \splittopskip=\ht\strutbox
+ \expandafter
+ \rigidbalance\csname footins#1\endcsname \tw@ \splittopskip}}
+\newcommand*{\mptwocolfootgroupX}[1]{{%
+ \vskip\skip\@nameuse{mpfootins#1}
+ \normalcolor
+ \@nameuse{footnoterule#1}
+ \splittopskip=\ht\strutbox
+ \expandafter
+ \rigidbalance\csname mpfootins#1\endcsname \tw@ \splittopskip}}
+
+\newcommand*{\footthreecolX}[1]{%
+ \expandafter\let\csname regvfootnote#1\endcsname=\threecolvfootnoteX
+ \expandafter\let\csname footfmt#1\endcsname=\threecolfootfmtX
+ \expandafter\let\csname footgroup#1\endcsname=\threecolfootgroupX
+ \threecolfootsetupX{#1}
+ \expandafter\let\csname mpvfootnote#1\endcsname=\mpnormalvfootnoteX
+ \expandafter\let\csname mpfootgroup#1\endcsname=\mpthreecolfootgroupX
+ \mpthreecolfootsetupX{#1}}
+
+\newcommand*{\threecolfootsetupX}[1]{%
+ \count\csname footins#1\endcsname 333
+ \multiply\dimen\csname footins#1\endcsname by \thr@@}
+\newcommand*{\mpthreecolfootsetupX}[1]{%
+ \count\csname mpfootins#1\endcsname 333
+ \multiply\dimen\csname mpfootins#1\endcsname by \thr@@}
+
+\newcommand*{\threecolvfootnoteX}[2]{%
+ \insert\csname footins#1\endcsname\bgroup
+ \csuse{notefontsizeX@#1}
+ \footsplitskips
+ \@nameuse{footfmt#1}{#1}{#2}\egroup}
+
+\newcommand*{\threecolfootfmtX}[2]{%
+ \hangindent=\csuse{hangindentX@#1}%
+ \normal@pars
+ \hsize \csuse{hsizethreecolX@#1}
+ \parindent=\z@
+%%% \parfillskip=0pt \@plus 1fil
+ \tolerance=5000\relax
+ \raggedright
+ \leavevmode
+ {\csuse{notenumfontX@#1}\@nameuse{footfootmark#1}\strut%\enspace
+ #2\strut\par}\allowbreak}
+
+\newcommand*{\threecolfootgroupX}[1]{{\csuse{notefontsizeX@#1}
+ \splittopskip=\ht\strutbox
+ \expandafter
+ \rigidbalance\csname footins#1\endcsname \thr@@ \splittopskip}}
+\newcommand*{\mpthreecolfootgroupX}[1]{{%
+ \vskip\skip\@nameuse{mpfootins#1}
+ \normalcolor
+ \@nameuse{footnoterule#1}
+ \splittopskip=\ht\strutbox
+ \expandafter
+ \rigidbalance\csname mpfootins#1\endcsname \thr@@ \splittopskip}}
+
+\newcommand*{\footparagraphX}[1]{%
+ \expandafter\newcount\csname prevpage#1@num\endcsname
+ \expandafter\let\csname footstart#1\endcsname=\parafootstartX
+ \expandafter\let\csname regvfootnote#1\endcsname=\para@vfootnoteX
+ \expandafter\let\csname footfmt#1\endcsname=\parafootfmtX
+ \expandafter\let\csname footgroup#1\endcsname=\para@footgroupX
+ \expandafter\let\csname footnoterule#1\endcsname=\normalfootnoteruleX
+ \count\csname footins#1\endcsname=1000
+ \expandafter\let\csname mpvfootnote#1\endcsname=\mppara@vfootnoteX
+ \expandafter\let\csname mpfootgroup#1\endcsname=\mppara@footgroupX
+ \count\csname mpfootins#1\endcsname=1000
+ \para@footsetupX{#1}}
+
+\newcommand*{\para@footsetupX}[1]{{\csuse{notefontsizeX@#1}
+ \dimen0=\baselineskip
+ \multiply\dimen0 by 1024
+ \divide\dimen0 by \hsize \multiply\dimen0 by \footfudgefiddle\relax
+ \expandafter
+ \xdef\csname footfudgefactor#1\endcsname{%
+ \expandafter\strip@pt\dimen0 }}}
+
+\newcommand*{\parafootstartX}[1]{%
+ \vskip\skip\@nameuse{footins#1}%
+ \leftskip=\z@
+ \rightskip=\z@
+ \parindent=\z@
+ \vskip\skip\@nameuse{footins#1}%
+ \@nameuse{footnoterule#1}}
+
+\newcommand*{\para@vfootnoteX}[2]{%
+ \insert\csname footins#1\endcsname
+ \bgroup
+ \csuse{notefontsizeX@#1}
+ \footsplitskips
+ \setbox0=\vbox{\hsize=\maxdimen
+ \noindent\@nameuse{footfmt#1}{#1}{#2}}%
+ \setbox0=\hbox{\unvxh0[#1]}%
+ \dp0=\z@
+ \ht0=\csname footfudgefactor#1\endcsname\wd0
+ \box0
+ \penalty0
+ \egroup}
+\newcommand*{\mppara@vfootnoteX}[2]{%
+ \global\setbox\@nameuse{mpfootins#1}\vbox{%
+ \unvbox\@nameuse{mpfootins#1}
+ \csuse{notefontsizeX@#1}
+ \footsplitskips
+ \setbox0=\vbox{\hsize=\maxdimen
+ \noindent\color@begingroup\@nameuse{footfmt#1}{#1}{#2}\color@endgroup}%
+ \setbox0=\hbox{\unvxh0[#1]}%
+ \dp0=\z@
+ \ht0=\csname footfudgefactor#1\endcsname\wd0
+ \box0
+ \penalty0}}
+
+\newcommand*{\parafootfmtX}[2]{%
+ \insertparafootsep{#1}%
+ \ledsetnormalparstuff
+ {\csuse{notenumfontX@#1}\csuse{notenumfontX@#1}\@nameuse{footfootmark#1}\strut%\enspace
+ #2\penalty-10}}
+
+\newcommand*{\para@footgroupX}[1]{%
+ \unvbox\csname footins#1\endcsname
+ \makehboxofhboxes
+ \setbox0=\hbox{\unhbox0 \removehboxes}%
+ \csuse{notefontsizeX@#1}
+ \noindent\unhbox0\par}
+\newcommand*{\mppara@footgroupX}[1]{{%
+ \vskip\skip\@nameuse{mpfootins#1}
+ \normalcolor
+ \@nameuse{footnoterule#1}
+ \unvbox\csname mpfootins#1\endcsname
+ \makehboxofhboxes
+ \setbox0=\hbox{\unhbox0 \removehboxes}%
+ \csuse{notefontsizeX@#1}
+ \noindent\unhbox0\par}}
+
+
+\newcommand*{\doxtrafeeti}{%
+ \setbox\@outputbox \vbox{%
+ \unvbox\@outputbox
+ \renewcommand{\do}[1]{\ifvoid\csuse{footins##1}\else\csuse{footstart##1}{##1}\csuse{footgroup##1}{##1}\fi}
+ \dolistloop{\@series}%
+ }}
+
+\newcommand{\doreinxtrafeeti}{%
+ \renewcommand{\do}[1]{\ifvoid\csuse{footins##1}\else\insert\csuse{footins##1}{\unvbox\csuse{footins##1}}\fi}%
+ \dolistloop{\@series}%
+ }
+
+\newcommand*{\addfootinsX}[1]{%
+ \eledmac@warning{AddfootinsX is obsolete in eledmac 1.0. Use newseries instead.}%
+ \footnormalX{#1}%
+ \g@addto@macro{\doxtrafeeti}{%
+ \setbox\@outputbox \vbox{%
+ \unvbox\@outputbox
+ \ifvoid\@nameuse{footins#1}\else
+ \@nameuse{footstart#1}{#1}\@nameuse{footgroup#1}{#1}\fi}}%as
+ \g@addto@macro{\doreinxtrafeeti}{%
+ \ifvoid\@nameuse{footins#1}\else
+ \insert\@nameuse{footins#1}{\unvbox\@nameuse{footins#1}}\fi}%
+ \g@addto@macro{\l@dfambeginmini}{%
+ \expandafter\expandafter\expandafter\let\expandafter\expandafter
+ \csname footnote#1\endcsname \csname mpfootnote#1\endcsname}%
+ \g@addto@macro{\l@dfamendmini}{%
+ \ifvoid\@nameuse{mpfootins#1}\else\@nameuse{mpfootgroup#1}{#1}\fi}%
+}
+\newcommand{\newseries}[1]{%
+ \renewcommand{\do}[1]{\newseries@{##1}}%
+ \docsvlist{#1}
+}
+\newcommand{\@series}{}
+\newcommand{\newseries@}[1]{
+ \xifinlist{#1}{\@series}{\eledmac@warning{Series #1 is still existing !}}
+ {%
+ \csgdef{Xhangindent@#1}{0pt}%
+ \csgdef{hangindentX@#1}{0pt}
+ \csgdef{hsizetwocol@#1}{0.45 \hsize}%
+ \csgdef{hsizetwocolX@#1}{0.45 \hsize}%
+ \csgdef{hsizethreecol@#1}{.3 \hsize}%
+ \csgdef{hsizethreecolX@#1}{.3 \hsize}%
+ \csgdef{Xnotenumfont@#1}{\notenumfont}%
+ \csgdef{Xendnotenumfont@#1}{\notenumfont}%
+ \csgdef{notenumfontX@#1}{\notenumfont}%
+ \csgdef{Xnotefontsize@#1}{\notefontsetup}%
+ \csgdef{notefontsizeX@#1}{\notefontsetup}%
+ \csgdef{Xendnotefontsize@#1}{\notefontsetup}%
+ \csgdef{boxlinenum@#1}{0pt}%
+ \csgdef{boxsymlinenum@#1}{0pt}%
+ \newtoggle{numberonlyfirstinline@#1}%
+ \csgdef{symlinenum@#1}{\symplinenum}%
+ \newtoggle{nonumberinfootnote@#1}%
+ \csgdef{beforenumberinfootnote@#1}{0pt}%
+ \csgdef{afternumberinfootnote@#1}{0.5em}%
+ \csgdef{beforesymlinenum@#1}{\csuse{beforenumberinfootnote@#1}}%
+ \csgdef{aftersymlinenum@#1}{\csuse{afternumberinfootnote@#1}}%
+ \csgdef{inplaceofnumber@#1}{1em}%
+ \global\cslet{lemmaseparator@#1}{\rbracket}%
+ \csgdef{beforelemmaseparator@#1}{0em}%
+ \csgdef{afterlemmaseparator@#1}{0.5em}%
+ \csgdef{inplaceoflemmaseparator@#1}{1em}%
+ \csgdef{afternote@#1}{1em plus.4em minus.4em}%
+ \csgdef{parafootsep@#1}{\parafootftmsep}%
+
+ \expandafter\newinsert\csname mpfootins#1\endcsname
+ \expandafter\newinsert\csname footins#1\endcsname
+ \expandafter\newinsert\csname #1footins\endcsname
+ \expandafter\newinsert\csname mp#1footins\endcsname
+
+ \global\expandafter\newcommand\expandafter *\csname #1footnote\endcsname[2][]{%
+ \begingroup%
+ \newcommand{\content}{##2}%
+ \ifnumberedpar@
+ \ifledRcol%
+ \footnoteoptions@[R]{##1}{true}%
+ \xright@appenditem{\noexpand\csuse{v#1footnote}{#1}%
+ {{\l@d@nums}{\csexpandonce{@tag}}{\csexpandonce{content}}}}\to\inserts@listR
+ \footnoteoptions@[R]{##1}{false}%
+ \global\advance\insert@countR \@ne%
+ \else%
+ \footnoteoptions@{##1}{true}%
+ \xright@appenditem{\noexpand\csuse{v#1footnote}{#1}%
+ {{\l@d@nums}{\csexpandonce{@tag}}{\csexpandonce{content}}}}\to\inserts@list
+ \global\advance\insert@count \@ne%
+ \footnoteoptions@{##1}{false}%
+ \fi
+ \else
+ \csuse{v#1footnote}{#1}{{0|0|0|0|0|0|0}{}{##1}}%
+ \fi%
+ \ignorespaces%
+ \endgroup
+ }
+ \footnormal{#1}
+
+ \global\expandafter\newcommand\csname footnote#1\endcsname[1]{%
+ \begingroup%
+ \newcommand{\content}{##1}%
+ \stepcounter{footnote#1}%
+ \protected@csxdef{@thefnmark#1}{\csuse{thefootnote#1}}%
+ \csuse{@footnotemark#1}%
+ \csuse{vfootnote#1}{#1}{\csexpandonce{content}}\m@mmf@prepare%
+ \endgroup%
+ }
+ \newcounter{footnote#1}
+ \global\expandafter\renewcommand\csname thefootnote#1\endcsname{\arabic{footnote#1}}
+ \footnormalX{#1}
+
+ \global\expandafter\newcommand\csname #1endnote\endcsname[2]{{\newlinechar='40
+ \newcommand{\content}{##1}%
+ \immediate\write\l@d@end{\expandafter\string\csname #1end\endcsname%
+ {\ifnumberedpar@\l@d@nums\fi}%
+ {\ifnumberedpar@\csexpandonce{@tag}\fi}{\csexpandonce{content}}{#1}}}\ignorespaces%
+ }
+
+ \global\csletcs{#1end}{@gobblethree}
+
+ \global\csletcs{#1@@footnote}{#1footnote}
+
+ \listxadd{\@series}{#1}
+}
+}% End of \newseries
+\newseries{A,B,C,D,E,Z}
+\newcommand{\settoggle@series}[3]{%
+ \renewcommand{\do}[1]{\settoggle{#2@##1}{#3}}
+ \ifstrempty{#1}{%
+ \dolistloop{\@series}%
+ }%
+ {%
+ \docsvlist{#1}%
+ }%
+}
+\newcommand{\setcommand@series}[3]{%
+ \renewcommand{\do}[1]{\csgdef{#2@##1}{#3}}
+ \ifstrempty{#1}{%
+ \dolistloop{\@series}%
+ }%
+ {%
+ \docsvlist{#1}%
+ }%
+}%
+\newcommand{\newhookcommand@series}[1]{%
+ \global\expandafter\newcommand\expandafter*\csname #1\endcsname[2][]{\csuse{setcommand@series}{##1}{#1}{##2}}%
+}
+\newhookcommand@series{Xhangindent}
+
+\newhookcommand@series{hangindentX}
+
+\newhookcommand@series{hsizetwocol}
+
+\newhookcommand@series{hsizethreecol}
+
+\newhookcommand@series{hsizetwocolX}
+
+\newhookcommand@series{hsizethreecolX}
+
+\newhookcommand@series{Xnotenumfont}
+
+\newhookcommand@series{Xendnotenumfont}
+
+\newhookcommand@series{notenumfontX}
+
+\newhookcommand@series{Xnotefontsize}
+
+\newhookcommand@series{notefontsizeX}
+
+\newhookcommand@series{Xendnotefontsize}
+
+\newhookcommand@series{boxlinenum}
+
+\newhookcommand@series{boxsymlinenum}
+
+\newhookcommand@series{parafootsep}
+
+\newhookcommand@series{symlinenum}
+
+\newhookcommand@series{beforenumberinfootnote}
+
+\newhookcommand@series{afternumberinfootnote}
+
+\newhookcommand@series{beforesymlinenum}
+
+\newhookcommand@series{aftersymlinenum}
+
+\newhookcommand@series{inplaceofnumber}
+
+\newhookcommand@series{lemmaseparator}
+
+\newhookcommand@series{beforelemmaseparator}
+
+\newhookcommand@series{afterlemmaseparator}
+
+\newhookcommand@series{inplaceoflemmaseparator}
+
+\newhookcommand@series{afternote}
+
+\newcommand{\newhooktoggle@series}[1]{%
+ \global\expandafter\newcommandx\expandafter*\csname #1\endcsname[2][1,2={true},usedefault]{\settoggle@series{##1}{#1}{##2}}%
+}
+\newhooktoggle@series{numberonlyfirstinline}
+\newhooktoggle@series{nonumberinfootnote}
+\newcommand*{\notenumfont}{\normalfont}
+\newcommand*{\notefontsetup}{\footnotesize}
+\newif\ifledplinenum
+ \ledplinenumtrue
+\newcommand*{\symplinenum}{}
+\newtoggle{nonum@}
+\newtoggle{nosep@}
+\newcommandx*{\nolemmaseparator}[1][1]{\lemmaseparator[#1]{}}
+\newskip\ipn@skip
+\newcommand*{\interparanoteglue}[1]{%
+ {\notefontsetup\global\ipn@skip=#1 \relax}}
+\interparanoteglue{1em plus.4em minus.4em}
+\newcommand{\parafootftmsep}{}
+\newcommand{\printlinefootnote}[2]{%
+ \iftoggle{nonum@}{%Try if the line number must printed for this specific not (by default, yes)
+ \hspace{\csuse{inplaceofnumber@#2}}%
+ }%
+ {%
+ {%
+ \iftoggle{nonumberinfootnote@#2}%Try if the line number must printed (by default, yes)
+ {%
+ \hspace{\csuse{inplaceofnumber@#2}}%
+ }%
+ {%
+ {\iftoggle{numberonlyfirstinline@#2}% If for this series the line number must be printed only in the first time.
+ {%
+ \ifcsdef{prevline#2}%
+ {%Be sure the \prevline exists.
+ \ifnumequal{\csuse{prevline#2}}{\line@num}%Try it
+ {%
+ \ifcsempty{symlinenum@#2}% Try if a symbol is define
+ {%
+ \hspace{\csuse{inplaceofnumber@#2}}%
+ }%
+ {\hspace{\csuse{beforesymlinenum@#2}}\csuse{Xnotenumfont@#2}%
+ \ifdimequal{\csuse{boxsymlinenum@#2}}{0pt}%
+ {\csuse{symlinenum@#2}}%
+{\hbox to \csuse{boxsymlinenum@#2}{\csuse{symlinenum@#2}\hfill}}%
+ \hspace{\csuse{aftersymlinenum@#2}}}%
+ }%
+ {%
+ \hspace{\csuse{beforenumberinfootnote@#2}}\csuse{Xnotenumfont@#2}%
+ \ifdimequal{\csuse{boxlinenum@#2}}{0pt}{%
+ \printlines#1|}%
+ {%
+ \hbox to \csuse{boxlinenum@#2}{\printlines#1|\hfill}%
+ }%
+ \hspace{\csuse{afternumberinfootnote@#2}}%
+ }%
+ }%
+ {%
+ \hspace{\csuse{beforenumberinfootnote@#2}}\csuse{Xnotenumfont@#2}%
+ \ifdimequal{\csuse{boxlinenum@#2}}{0pt}{%
+ \printlines#1|}%
+ {%
+ \hbox to \csuse{boxlinenum@#2}{\printlines#1|\hfill}%
+ }%
+ \hspace{\csuse{afternumberinfootnote@#2}}%
+ }%
+ }%
+ {%
+ \hspace{\csuse{beforenumberinfootnote@#2}}\csuse{Xnotenumfont@#2}%
+ \ifdimequal{\csuse{boxlinenum@#2}}{0pt}{%
+ \printlines#1|}%
+ {%
+ \hbox to \csuse{boxlinenum@#2}{\printlines#1|\hfill}%
+ }%
+ \hspace{\csuse{afternumberinfootnote@#2}}%
+ }%
+ \csnumgdef{prevline#2}{\line@num}%
+ }%
+ }%
+ }%
+ }%
+}
+\countdef\pageno=0 \pageno=1
+\newcommand*{\advancepageno}{\ifnum\pageno<\z@ \global\advance\pageno\m@ne
+ \else\global\advance\pageno\@ne\fi}
+
+\providecommand{\m@m@makecolfloats}{%
+ \xdef\@freelist{\@freelist\@midlist}%
+ \global \let \@midlist \@empty
+ \@combinefloats}
+\providecommand{\m@m@makecoltext}{%
+ \ifvbox\@kludgeins
+ \@makespecialcolbox
+ \else
+ \setbox\@outputbox \vbox to\@colht {%
+ \@texttop
+ \dimen@ \dp\@outputbox
+ \unvbox\@outputbox
+ \vskip -\dimen@
+ \@textbottom}%
+ \fi}
+\providecommand{\m@m@makecolintro}{}
+
+\gdef\l@d@makecol{%
+ \l@ddofootinsert
+ \m@m@makecolfloats
+ \m@m@makecoltext
+ \global \maxdepth \@maxdepth}
+
+\newcommand*{\l@ddofootinsert}{%
+%%% \page@start
+ \ifvoid\footins
+ \setbox\@outputbox \box\@cclv
+ \else
+ \setbox\@outputbox \vbox {%
+ \boxmaxdepth \@maxdepth
+ \@tempdima\dp\@cclv
+ \unvbox \@cclv
+ \vskip \skip\footins
+ \color@begingroup
+ \normalcolor
+ \footnoterule
+ \unvbox \footins
+ \color@endgroup
+ }%
+ \fi
+ \l@ddoxtrafeet
+}
+
+\newcommand*{\l@ddoxtrafeet}{%
+ \doxtrafeeti
+ \doxtrafeetii}
+
+\newcommand*{\doxtrafeetii}{%
+ \setbox\@outputbox \vbox{%
+ \unvbox\@outputbox
+ \@opxtrafeetii}}
+\newcommand*{\@opxtrafeetii}{%
+ \renewcommand{\do}[1]{\ifvoid\csuse{##1footins}\else\csuse{##1footstart}{##1}\csuse{##1footgroup}{##1}\fi}
+ \dolistloop{\@series}}
+\newcommand*{\l@ddodoreinxtrafeet}{%
+ \doreinxtrafeeti
+ \doreinxtrafeetii}
+
+\newcommand*{\doreinxtrafeetii}{%
+ \renewcommand{\do}[1]{\ifvoid\csuse{##1footins}\else\insert\csuse{##1ootins}{\unvbox\csuse{##1footins}}\fi}
+ \dolistloop{\@series}
+}
+
+\gdef \l@d@reinserts{%
+ \ifvoid\footins\else\insert\footins{\unvbox\footins}\fi
+ \l@ddodoreinxtrafeet
+ \ifvbox\@kludgeins\insert\@kludgeins{\unvbox\@kludgeins}\fi
+}
+
+\@ifclassloaded{memoir}{%
+ \g@addto@macro{\m@mdoextrafeet}{\l@ddoxtrafeet}%
+ \g@addto@macro{\m@mdodoreinextrafeet}{\l@ddodoreinxtrafeet}%
+ }{%
+ \gdef\@makecol{\l@d@makecol}%
+ \gdef\@reinserts{\l@d@reinserts}%
+}
+
+\newcommand*{\addfootins}[1]{%
+ \eledmac@warning{addfootins is deprecated, use newseries instead}
+ \footnormal{#1}
+ \g@addto@macro{\@opxtrafeetii}{%
+ \ifvoid\@nameuse{#1footins}\else
+ \@nameuse{#1footstart{#1}}\@nameuse{#1footgroup}{#1}\fi}
+ \g@addto@macro{\doreinxtrafeetii}{%
+ \ifvoid\@nameuse{#1footins}\else
+ \insert\@nameuse{#1footins}{\unvbox\@nameuse{#1footins}}\fi}
+ \g@addto@macro{\l@dedbeginmini}{%
+ \expandafter\let\csname #1footnote\endcsname = \@nameuse{mp#1footnote}}
+ \g@addto@macro{\l@dedendmini}{%
+ \ifvoid\@nameuse{mp#1footins}\else\@nameuse{mpfootgroup#1{#1}}\fi}
+}
+\newif\if@led@nofoot
+\newcommand*{\@led@extranofeet}{}
+
+\@ifclassloaded{memoir}{%
+\g@addto@macro{\@mem@extranofeet}{%
+ \renewcommand{\do}[1]{\ifvoid\cuse{##1footins}\else\@mem@nofootfalse\fi%
+ \ifvoid\csuse{footins##1}\else\@mem@nofootfalse\fi%
+ }
+ \dolistloop{\@series}%
+ \@led@extranofeet}
+}{%
+\newcommand*{\@led@testifnofoot}{%
+ \@led@nofoottrue
+ \ifvoid\footins\else\@led@nofootfalse\fi
+ \renewcommand{\do}[1]{\ifvoid\csuse{##1footins}\else\@led@nofootfalse\fi%
+ \ifvoid\csuse{footins##1}\else\@led@nofootfalse\fi}%
+ \dolistloop{\@series}
+ \@led@extranofeet}
+
+\renewcommand{\@doclearpage}{%
+ \@led@testifnofoot
+ \if@led@nofoot
+ \setbox\@tempboxa\vsplit\@cclv to\z@ \unvbox\@tempboxa
+ \setbox\@tempboxa\box\@cclv
+ \xdef\@deferlist{\@toplist\@botlist\@deferlist}%
+ \global \let \@toplist \@empty
+ \global \let \@botlist \@empty
+ \global \@colroom \@colht
+ \ifx \@currlist\@empty
+ \else
+ \@latexerr{Float(s) lost}\@ehb
+ \global \let \@currlist \@empty
+ \fi
+ \@makefcolumn\@deferlist
+ \@whilesw\if@fcolmade \fi{\@opcol\@makefcolumn\@deferlist}%
+ \if@twocolumn
+ \if@firstcolumn
+ \xdef\@dbldeferlist{\@dbltoplist\@dbldeferlist}%
+ \global \let \@dbltoplist \@empty
+ \global \@colht \textheight
+ \begingroup
+ \@dblfloatplacement
+ \@makefcolumn\@dbldeferlist
+ \@whilesw\if@fcolmade \fi{\@outputpage
+ \@makefcolumn\@dbldeferlist}%
+ \endgroup
+ \else
+ \vbox{}\clearpage
+ \fi
+ \fi
+ \else
+ \setbox\@cclv\vbox{\box\@cclv\vfil}%
+ \l@d@makecol\@opcol
+ \clearpage
+ \fi}
+}
+
+\list@create{\labelref@list}
+%% \newcommand*{\zz@@@}{000|000|000} % set three counters to zero in one go
+\newcommand*{\zz@@@}{000|000} % set two counters to zero in one go
+
+\newcommand*{\edlabel}[1]{\@bsphack
+ \write\linenum@out{\string\@lab}%
+ \ifx\labelref@list\empty
+ \xdef\label@refs{\zz@@@}%
+ \else
+ \gl@p\labelref@list\to\label@refs
+ \ifvmode
+ \advancelabel@refs
+ \fi
+ \fi
+ \protected@write\@auxout{}%
+ {\string\l@dmake@labels\space\thepage|\label@refs|{#1}}%
+ \@esphack}
+
+\newcommand{\advancelabel@refs}{%
+ \newcounter{line}%
+ \setcounter{line}{\expandafter\labelrefsparseline\label@refs}%
+ \stepcounter{line}%
+ \ifsublines@%
+ \newcounter{subline}%
+ \setcounter{subline}{\expandafter\labelrefsparsesubline\label@refs}%
+ \stepcounter{subline}{1}%
+ \def\label@refs{\theline|\thesubline}%
+ \else%
+ \def\label@refs{\theline|0}%
+\fi%
+}
+\def\labelrefsparseline#1|#2{#1}
+\def\labelrefsparsesubline#1|#2{#2}
+\newcommand*{\l@dmake@labels}{}
+\def\l@dmake@labels#1|#2|#3|#4{%
+ \expandafter\ifx\csname the@label#4\endcsname \relax\else
+ \led@warn@DuplicateLabel{#4}%
+ \fi
+ \expandafter\gdef\csname the@label#4\endcsname{#1|#2|#3}%
+ \ignorespaces}
+
+\AtBeginDocument{%
+ \def\l@dmake@labels#1|#2|#3|#4{}%
+}
+
+\newcommand*{\@lab}{\xright@appenditem
+ {\linenumrep{\line@num}|%
+ \ifsublines@ \sublinenumrep{\subline@num}\else 0\fi}\to\labelref@list}
+
+\newcommand*{\edpageref}[1]{\l@dref@undefined{#1}\l@dgetref@num{1}{#1}}
+\newcommand*{\xpageref}[1]{\l@dgetref@num{1}{#1}}
+
+\newcommand*{\lineref}[1]{\l@dref@undefined{#1}\l@dgetref@num{2}{#1}}
+\newcommand*{\xlineref}[1]{\l@dgetref@num{2}{#1}}
+
+\newcommand*{\sublineref}[1]{\l@dref@undefined{#1}\l@dgetref@num{3}{#1}}
+\newcommand*{\xsublineref}[1]{\l@dgetref@num{3}{#1}}
+
+\newcommand*{\l@dref@undefined}[1]{%
+ \expandafter\ifx\csname the@label#1\endcsname\relax
+ \led@warn@RefUndefined{#1}%
+ \fi}
+
+\newcommand*{\l@dgetref@num}[2]{%
+ \expandafter
+ \ifx\csname the@label#2\endcsname \relax
+ 000%
+ \else
+ \expandafter\expandafter\expandafter
+ \l@dlabel@parse\csname the@label#2\endcsname|#1%
+ \fi}
+
+\newcommand*{\l@dlabel@parse}{}
+\def\l@dlabel@parse#1|#2|#3|#4{%
+ \ifcase #4\relax
+ \or #1%
+ \or #2%
+ \or #3%
+ \fi}
+
+\newcommand*{\xxref}[2]{%
+ {\expandafter\ifx\csname the@label#1\endcsname
+ \relax \expandafter\let\csname the@label#1\endcsname\zz@@@\fi
+ \expandafter\ifx\csname the@label#2\endcsname \relax
+ \expandafter\let\csname the@label#2\endcsname\zz@@@\fi
+ \linenum{\csname the@label#1\endcsname|%
+ \csname the@label#2\endcsname}}}
+
+\newcommand*{\edmakelabel}[2]{\expandafter\xdef\csname the@label#1\endcsname{#2}}
+
+\newwrite\l@d@end
+\newif\ifl@dend@
+\newcommand{\l@dend@open}[1]{\global\l@dend@true\immediate\openout\l@d@end=#1\relax}
+\newcommand{\l@dend@close}{\global\l@dend@false\immediate\closeout\l@d@end}
+
+\newcommand{\l@dend@stuff}{%
+ \ifl@dend@\relax\else
+ \l@dend@open{\jobname.end}%
+ \fi
+ \immediate\write\l@d@end{\string\l@d@section{\the\section@num}}}
+
+\def\endprint#1#2#3#4{{\csuse{Xendnotefontsize@#4}{\csuse{Xendnotenumfont@#4}\printendlines#1|}%
+ \enspace{\select@lemmafont#1|#2}\enskip#3\par}}
+\providecommand*{\@gobblethree}[3]{}
+
+\let\l@d@section=\@gobble
+
+\newcommand*{\setprintendlines}[6]{%
+ \l@d@pnumfalse \l@d@dashfalse
+ \ifnum#4=#1 \else
+ \l@d@pnumtrue
+ \l@d@dashtrue
+ \fi
+ \ifl@d@pnum \l@d@elintrue \else \l@d@elinfalse \fi
+ \ifnum#2=#5 \else
+ \l@d@elintrue
+ \l@d@dashtrue
+ \fi
+ \l@d@ssubfalse
+ \ifnum#3=0 \else
+ \l@d@ssubtrue
+ \fi
+ \l@d@eslfalse
+ \ifnum#6=0 \else
+ \ifnum#6=#3
+ \ifl@d@elin \l@d@esltrue \else \l@d@eslfalse \fi
+ \else
+ \l@d@esltrue
+ \l@d@dashtrue
+ \fi
+ \fi}
+\def\printendlines#1|#2|#3|#4|#5|#6|#7|{\begingroup
+ \setprintendlines{#1}{#2}{#3}{#4}{#5}{#6}%
+ \printnpnum{#1} \linenumrep{#2}%
+ \ifl@d@ssub \fullstop \sublinenumrep{#3}\fi
+ \ifl@d@dash \endashchar\fi
+ \ifl@d@pnum \printnpnum{#4}\fi
+ \ifl@d@elin \linenumrep{#5}\fi
+ \ifl@d@esl \ifl@d@elin \fullstop\fi \sublinenumrep{#6}\fi
+\endgroup}
+
+\newcommand*{\printnpnum}[1]{p.#1) }
+
+\newcommand*{\doendnotes}[1]{\l@dend@close
+ \begingroup
+ \makeatletter
+ \expandafter\let\csname #1end\endcsname=\endprint
+ \input\jobname.end
+ \endgroup}
+\newcommand*{\noendnotes}{\global\let\l@dend@stuff=\relax
+ \global\chardef\l@d@end=16 }
+\let\l@dold@xympar\@xympar
+\renewcommand{\@xympar}{%
+ \ifnumberedpar@
+ \led@warn@NoMarginpars
+ \@esphack
+ \else
+ \l@dold@xympar
+ \fi}
+
+\newcount\sidenote@margin
+\newcommand*{\sidenotemargin}[1]{{%
+ \l@dgetsidenote@margin{#1}%
+ \ifnum\@l@dtempcntb>\m@ne
+ \global\sidenote@margin=\@l@dtempcntb
+ \fi}}
+\newcommand*{\l@dgetsidenote@margin}[1]{%
+ \def\@tempa{#1}\def\@tempb{left}%
+ \ifx\@tempa\@tempb
+ \@l@dtempcntb \z@
+ \else
+ \def\@tempb{right}%
+ \ifx\@tempa\@tempb
+ \@l@dtempcntb \@ne
+ \else
+ \def\@tempb{outer}%
+ \ifx\@tempa\@tempb
+ \@l@dtempcntb \tw@
+ \else
+ \def\@tempb{inner}%
+ \ifx\@tempa\@tempb
+ \@l@dtempcntb \thr@@
+ \else
+ \led@warn@BadSidenotemargin
+ \@l@dtempcntb \m@ne
+ \fi
+ \fi
+ \fi
+ \fi}
+\sidenotemargin{right}
+
+\newbox\l@dlp@rbox
+\newbox\l@drp@rbox
+
+\newdimen\ledlsnotewidth \ledlsnotewidth=\marginparwidth
+\newdimen\ledrsnotewidth \ledrsnotewidth=\marginparwidth
+\newdimen\ledlsnotesep \ledlsnotesep=\linenumsep
+\newdimen\ledrsnotesep \ledrsnotesep=\linenumsep
+\newcommand*{\ledlsnotefontsetup}{\raggedleft\footnotesize}
+\newcommand*{\ledrsnotefontsetup}{\raggedright\footnotesize}
+
+\newcommand*{\ledleftnote}[1]{\edtext{}{\l@dlsnote{#1}}}
+\newcommand*{\ledrightnote}[1]{\edtext{}{\l@drsnote{#1}}}
+\newcommand*{\ledsidenote}[1]{\edtext{}{\l@dcsnote{#1}}}
+
+\newif\ifrightnoteup
+ \rightnoteuptrue
+\newcommand*{\l@dlsnote}[1]{%
+ \begingroup%
+ \newcommand{\content}{#1}%
+ \ifnumberedpar@
+ \xright@appenditem{\noexpand\vl@dlsnote{\csexpandonce{content}}}%
+ \to\inserts@list
+ \global\advance\insert@count \@ne
+ \fi\ignorespaces\endgroup}
+\newcommand*{\l@drsnote}[1]{%
+ \begingroup%
+ \newcommand{\content}{#1}%
+ \ifnumberedpar@
+ \xright@appenditem{\noexpand\vl@drsnote{\csexpandonce{content}}}%
+ \to\inserts@list
+ \global\advance\insert@count \@ne
+ \fi\ignorespaces\endgroup}
+\newcommand*{\l@dcsnote}[1]{\begingroup%
+ \newcommand{\content}{#1}%
+ \ifnumberedpar@
+ \xright@appenditem{\noexpand\vl@dcsnote{\csexpandonce{content}}}%
+ \to\inserts@list
+ \global\advance\insert@count \@ne
+ \fi\ignorespaces\endgroup}
+
+\newcommand*{\vl@dlsnote}[1]{\setl@dlp@rbox{#1}}
+\newcommand*{\vl@drsnote}[1]{\setl@drp@rbox{#1}}
+\newcommand*{\vl@dcsnote}[1]{\gdef\l@dcsnotetext{#1}}
+
+\newcommand*{\setl@dlp@rbox}[1]{%
+ {\parindent\z@\hsize=\ledlsnotewidth\ledlsnotefontsetup
+ \global\setbox\l@dlp@rbox
+ \ifleftnoteup
+ =\vbox to\z@{\vss #1}%
+ \else
+ =\vbox to 0.70\baselineskip{\strut#1\vss}%
+ \fi}}
+%% \global\setbox\l@dlp@rbox=\vbox to\z@{#3\vss}}}% aligns on top line
+\newcommand*{\setl@drp@rbox}[1]{%
+ {\parindent\z@\hsize=\ledrsnotewidth\ledrsnotefontsetup
+ \global\setbox\l@drp@rbox
+ \ifrightnoteup
+ =\vbox to\z@{\vss#1}%
+ \else
+ =\vbox to0.7\baselineskip{\strut#1\vss}%
+ \fi}}
+\newif\ifleftnoteup
+ \leftnoteuptrue
+\newcommand*{\savel@dcsnote}[3]{%
+ \gdef\l@dcsnotetext{#3}}
+
+\newcommand*{\affixside@note}{%
+ \gdef\@templ@d{}%
+ \ifx\@templ@d\l@dcsnotetext \else
+ \if@twocolumn
+ \if@firstcolumn
+ \setl@dlp@rbox{\l@dcsnotetext}%
+ \else
+ \setl@drp@rbox{\l@dcsnotetext}%
+ \fi
+ \else
+ \@l@dtempcntb=\sidenote@margin
+ \ifnum\@l@dtempcntb>\@ne
+ \advance\@l@dtempcntb by\page@num
+ \fi
+ \ifodd\@l@dtempcntb
+ \setl@drp@rbox{\l@dcsnotetext}%
+ \else
+ \setl@dlp@rbox{\l@dcsnotetext}%
+ \fi
+ \fi
+ \fi}
+
+\newcommand*{\l@dfeetbeginmini}{\l@dedbeginmini\l@dfambeginmini}
+\newcommand*{\l@dfeetendmini}{\l@dedendmini\l@dfamendmini}
+
+\newcommand*{\l@dedbeginmini}{%
+ \renewcommand{\do}[1]{\csletcs{v##1footnote}{mpv##1footnote}}%
+ \dolistloop{\@series}%
+ }
+\newcommand*{\l@dedendmini}{%
+ \ifl@dpairing
+ \ifledRcol
+ \flush@notesR
+ \else
+ \flush@notes
+ \fi
+ \fi
+ \renewcommand{\do}[1]{\ifvoid\csuse{mp##1footins}\else\csuse{mp##1footgroup}{##1}\fi}%
+ \dolistloop{\@series}%
+ }
+
+\newcommand*{\l@dfambeginmini}{%
+ \renewcommand{\do}[1]{\csletcs{vfootnote##1}{mpvfootnote##1}}%
+ \dolistloop{\@series}}
+\newcommand*{\l@dfamendmini}{%
+ \renewcommand{\do}[1]{\ifvoid\csuse{mpfootins##1}\else\csuse{mpfootgroup##1}{##1}\fi}%
+ \dolistloop{\@series}}
+\def\@iiiminipage#1#2[#3]#4{%
+ \leavevmode
+ \@pboxswfalse
+ \setlength\@tempdima{#4}%
+ \def\@mpargs{{#1}{#2}[#3]{#4}}%
+ \setbox\@tempboxa\vbox\bgroup
+ \color@begingroup
+ \hsize\@tempdima
+ \textwidth\hsize \columnwidth\hsize
+ \@parboxrestore
+ \def\@mpfn{mpfootnote}\def\thempfn{\thempfootnote}\c@mpfootnote\z@
+ \let\@footnotetext\@mpfootnotetext
+ \l@dfeetbeginmini% added
+ \let\@listdepth\@mplistdepth \@mplistdepth\z@
+ \@minipagerestore
+ \@setminipage}
+
+\def\endminipage{%
+ \par
+ \unskip
+ \ifvoid\@mpfootins\else
+ \l@dunboxmpfoot
+ \fi
+ \l@dfeetendmini% added
+ \@minipagefalse
+ \color@endgroup
+ \egroup
+ \expandafter\@iiiparbox\@mpargs{\unvbox\@tempboxa}}
+
+\newcommand*{\l@dunboxmpfoot}{%
+ \vskip\skip\@mpfootins
+ \normalcolor
+ \footnoterule
+ \unvbox\@mpfootins}
+
+\newenvironment{ledgroup}{%
+ \def\@mpfn{mpfootnote}\def\thempfn{\thempfootnote}\c@mpfootnote\z@
+ \let\@footnotetext\@mpfootnotetext
+ \l@dfeetbeginmini%
+}{%
+ \par
+ \unskip
+ \ifvoid\@mpfootins\else
+ \l@dunboxmpfoot
+ \fi
+ \l@dfeetendmini%
+}
+
+\newenvironment{ledgroupsized}[2][l]{%
+ \hsize #2\relax
+%% \textwidth #2\relax
+%% \columnwidth #2\relax
+ \let\ledllfill\hfil
+ \let\ledrlfill\hfil
+ \def\@tempa{#1}\def\@tempb{l}%
+ \ifx\@tempa\@tempb
+ \let\ledllfill\relax
+ \else
+ \def\@tempb{r}%
+ \ifx\@tempa\@tempb
+ \let\ledrlfill\relax
+ \fi
+ \fi
+ \def\@mpfn{mpfootnote}\def\thempfn{\thempfootnote}\c@mpfootnote\z@
+ \let\@footnotetext\@mpfootnotetext
+ \l@dfeetbeginmini%
+}{%
+ \par
+ \unskip
+ \ifvoid\@mpfootins\else
+ \l@dunboxmpfoot
+ \fi
+ \l@dfeetendmini%
+}
+
+\newcommand{\pagelinesep}{-}
+\newcommand{\edindexlab}{$&}
+\newcounter{labidx}
+\setcounter{labidx}{0}
+
+\newcommand{\doedindexlabel}{\stepcounter{labidx}%
+ \edlabel{\edindexlab\thelabidx}}
+
+\newcommand{\thepageline}{%
+ \thepage\pagelinesep\lineref{\edindexlab\thelabidx}}
+
+\@ifclassloaded{memoir}{%
+ \g@addto@macro{\makememindexhook}{%
+ \def\edindex{\@bsphack%
+ \@ifnextchar [{\l@d@index}{\l@d@index[\jobname]}}}
+ \newcommand{\edindex}[2][\jobname]{\@bsphack\@esphack}
+ \def\l@d@index[#1]{%
+ \@ifundefined{#1@idxfile}%
+ {\ifreportnoidxfile
+ \led@warn@NoIndexFile{#1}%
+ \fi
+ \begingroup
+ \@sanitize
+ \@nowrindex}%
+ {\def\@idxfile{#1}%
+ \doedindexlabel
+ \begingroup
+ \@sanitize
+ \l@d@wrindexm@m}}
+ \newcommand{\l@d@wrindexm@m}[1]{\l@d@@wrindexhyp#1||\\}
+ \def\l@d@@wrindexhyp#1|#2|#3\\{%
+ \ifshowindexmark\@showidx{#1}\fi
+ \ifx\\#2\\%
+ \protected@write\@auxout{}%
+ {\string\@@wrindexm@m{\@idxfile}{#1|hyperpage}{\thepageline}}%
+ \else
+ \def\Hy@temp@A{#2}%
+ \ifx\Hy@temp@A\HyInd@ParenLeft
+ \protected@write\@auxout{}%
+ {\string\@@wrindexm@m{\@idxfile}{#1|#2hyperpage}{\thepageline}}%
+ \else
+ \protected@write\@auxout{}%
+ {\string\@@wrindexm@m{\@idxfile}{#1|#2}{\thepageline}}%
+ \fi
+ \fi
+ \endgroup
+ \@esphack}
+}{%
+ \g@addto@macro{\makeindex}{%
+ \def\edindex{\@bsphack
+ \doedindexlabel
+ \begingroup
+ \@sanitize
+ \@wredindex}}
+ \newcommand{\edindex}[1]{\@bsphack\@esphack}
+ \newcommand{\@wredindex}[1]{%
+ \protected@write\@indexfile{}%
+ {\string\indexentry{#1}{\thepageline}}%
+ \endgroup
+ \@esphack}
+}
+
+\AtBeginDocument{\@ifpackageloaded{hyperref}{}{%
+ \def\l@d@@wrindexhyp#1||\\{%
+ \ifshowindexmark\@showidx{#1}\fi
+ \protected@write\@auxout{}%
+ {\string\@@wrindexm@m{\@idxfile}{#1}{\thepageline}}%
+ \endgroup
+ \@esphack}}}
+
+\newtoks\@emptytoks
+
+\newtoks\l@denvbody
+
+\newcommand{\addtol@denvbody}[1]{%
+ \global\l@denvbody\expandafter{\the\l@denvbody#1}}
+
+\newcommand{\l@dcollect@body}[1]{%
+ \l@denvbody{\expandafter#1\expandafter{\the\l@denvbody}}%
+ \edef\processl@denvbody{\the\l@denvbody\noexpand\end{\@currenvir}}%
+ \l@denvbody\@emptytoks \def\l@dbegin@stack{b}%
+ \begingroup
+ \expandafter\let\csname\@currenvir\endcsname\l@dcollect@@body
+ \edef\processl@denvbody{\expandafter\noexpand\csname\@currenvir\endcsname}%
+ \processl@denvbody}
+
+\def\l@dpush@begins#1\begin#2{%
+ \ifx\end#2\else b\expandafter\l@dpush@begins\fi}
+
+\def\l@dcollect@@body#1\end#2{%
+ \edef\l@dbegin@stack{\l@dpush@begins#1\begin\end
+ \expandafter\@gobble\l@dbegin@stack}%
+ \ifx\@empty\l@dbegin@stack
+ \endgroup
+ \@checkend{#2}%
+ \addtol@denvbody{#1}%
+ \else
+ \addtol@denvbody{#1\end{#2}}%
+ \fi
+ \processl@denvbody % A little tricky! Note the grouping
+}
+
+\newcommand*{\hangingsymbol}{}
+\newif\ifinstanza
+\instanzafalse
+\newif\ifinserthangingsymbol
+\newcommand{\inserthangingsymbol}{%
+\ifinserthangingsymbol%
+ \ifinstanza%
+ \hfill\hangingsymbol%
+ \fi%
+\fi%
+}
+\newcommand*{\ampersand}{\char`\&}
+
+ \chardef\body=\catcode`\@
+ \catcode`\@=11
+ \chardef\next=\catcode`\&
+ \catcode`\&=\active
+
+ \newcount\stanza@count
+ \newlength{\stanzaindentbase}
+ \setlength{\stanzaindentbase}{20pt}
+
+\def\strip@szacnt#1,#2|{\def\@tempb{#1}\def\@tempa{#2|}}
+\newcommand*{\setstanzavalues}[2]{\def\@tempa{#2,,|}%
+ \stanza@count\z@
+ \def\next{\expandafter\strip@szacnt\@tempa
+ \ifx\@tempb\empty\let\next\relax\else
+ \expandafter\mathchardef\csname #1@\number\stanza@count
+ @\endcsname\@tempb\relax
+ \advance\stanza@count\@ne\fi\next}%
+ \next}
+
+\newcommand*{\setstanzaindents}[1]{\setstanzavalues{sza}{#1}}
+\newcommand*{\setstanzapenalties}[1]{\setstanzavalues{szp}{#1}}
+
+\newcounter{stanzaindentsrepetition}
+\newcount\stanza@modulo
+
+\newcommand*{\managestanza@modulo}[0]{
+ \advance\stanza@modulo\@ne
+ \ifnum\stanza@modulo>\value{stanzaindentsrepetition}
+ \stanza@modulo\@ne
+ \fi
+}
+\def\stanza@line{
+ \ifnum\value{stanzaindentsrepetition}=0
+ \parindent=\csname sza@\number\stanza@count
+ @\endcsname\stanzaindentbase
+ \else
+ \managestanza@modulo
+ \parindent=\csname sza@\number\stanza@modulo
+ @\endcsname\stanzaindentbase
+ \fi
+ \pstart\stanza@hang\ignorespaces}
+\xdef\stanza@hang{\noexpand\leavevmode\noexpand\startlock
+ \hangindent\expandafter
+ \noexpand\csname sza@0@\endcsname\stanzaindentbase
+ \hangafter\@ne}
+\def\sza@penalty{\count@\csname szp@\number\stanza@count @\endcsname
+ \ifnum\count@>\@M\advance\count@-\@M\penalty-\else
+ \penalty\fi\count@}
+\let\startstanzahook\relax
+\let\endstanzaextra\relax
+\xdef\stanza{\noexpand\instanzatrue\expandafter
+ \begingroup\startstanzahook%
+ \catcode`\&\active\global\stanza@count\@ne\stanza@modulo\@ne
+ \noexpand\ifnum\expandafter\noexpand
+ \csname sza@0@\endcsname=\z@\let\noexpand\stanza@hang\relax
+ \let\noexpand\endlock\relax\noexpand\else\interlinepenalty
+ \@M\rightskip\z@ plus 1fil\relax\noexpand\fi\noexpand\ifnum
+ \expandafter\noexpand\csname szp@0@\endcsname=\z@
+ \let\noexpand\sza@penalty\relax\noexpand\fi \def\noexpand&{%
+ \noexpand\endlock\noexpand\pend\noexpand\sza@penalty\global
+ \advance\stanza@count\@ne\noexpand\stanza@line}\def\noexpand
+ \&{\noexpand\endlock\noexpand\pend\endgroup\noexpand\instanzafalse\expandafter\endstanzaextra}%
+ \noexpand\stanza@line}
+
+\newcommand*{\flagstanza}[2][\stanzaindentbase]{%
+ \hskip -#1\llap{#2}\hskip #1\ignorespaces}
+
+ \catcode`\&=\next
+ \catcode`\@=\body
+%% \let\ampersand=\&
+ \setstanzavalues{szp}{0}
+
+\newcommand*{\l@dtabnoexpands}{%
+ \let\rtab=0%
+ \let\ctab=0%
+ \let\ltab=0%
+ \let\rtabtext=0%
+ \let\ltabtext=0%
+ \let\ctabtext=0%
+ \let\edbeforetab=0%
+ \let\edaftertab=0%
+ \let\edatab=0%
+ \let\edatabell=0%
+ \let\edatleft=0%
+ \let\edatright=0%
+ \let\edvertline=0%
+ \let\edvertdots=0%
+ \let\edrowfill=0%
+}
+
+\newcount\l@dampcount
+ \l@dampcount=1\relax
+\newcount\l@dcolcount
+ \l@dcolcount=0\relax
+
+\newbox\hilfsbox
+\newskip\hilfsskip
+\newbox\Hilfsbox
+\newcount\hilfscount
+
+\newdimen\dcoli
+\newdimen\dcolii
+\newdimen\dcoliii
+\newdimen\dcoliv
+\newdimen\dcolv
+\newdimen\dcolvi
+\newdimen\dcolvii
+\newdimen\dcolviii
+\newdimen\dcolix
+\newdimen\dcolx
+\newdimen\dcolxi
+\newdimen\dcolxii
+\newdimen\dcolxiii
+\newdimen\dcolxiv
+\newdimen\dcolxv
+\newdimen\dcolxvi
+\newdimen\dcolxvii
+\newdimen\dcolxviii
+\newdimen\dcolxix
+\newdimen\dcolxx
+\newdimen\dcolxxi
+\newdimen\dcolxxii
+\newdimen\dcolxxiii
+\newdimen\dcolxxiv
+\newdimen\dcolxxv
+\newdimen\dcolxxvi
+\newdimen\dcolxxvii
+\newdimen\dcolxxviii
+\newdimen\dcolxxix
+\newdimen\dcolxxx
+\newdimen\dcolerr % added for error handling
+
+\newcommand{\l@dcolwidth}{\ifcase \the\l@dcolcount \dcoli %???
+ \or \dcoli \or \dcolii \or \dcoliii
+ \or \dcoliv \or \dcolv \or \dcolvi
+ \or \dcolvii \or \dcolviii \or \dcolix \or \dcolx
+ \or \dcolxi \or \dcolxii \or \dcolxiii
+ \or \dcolxiv \or \dcolxv \or \dcolxvi
+ \or \dcolxvii \or \dcolxviii \or \dcolxix \or \dcolxx
+ \or \dcolxxi \or \dcolxxii \or \dcolxxiii
+ \or \dcolxxiv \or \dcolxxv \or \dcolxxvi
+ \or \dcolxxvii \or \dcolxxviii \or \dcolxxix \or \dcolxxx
+ \else \dcolerr \fi}
+
+\newcommand*{\stepl@dcolcount}{\advance\l@dcolcount\@ne
+ \ifnum\l@dcolcount>30\relax
+ \led@err@TooManyColumns
+ \fi}
+
+\newcommand{\l@dsetmaxcolwidth}{%
+ \ifdim\l@dcolwidth < \wd\hilfsbox
+ \l@dcolwidth = \wd\hilfsbox
+ \else \relax \fi}
+
+\let\EDTEXT=\edtext
+\newcommand{\xedtext}[2]{\EDTEXT{#1}{#2}}
+\let\CRITEXT=\critext
+\long\def\xcritext #1#2/{\CRITEXT{#1}{#2}/}
+\let\EDLABEL=\edlabel
+\newcommand*{\xedlabel}[1]{\EDLABEL{#1}}
+\let\EDINDEX=\edindex
+\ifl@dmemoir
+ \newcommand{\xedindex}{\@bsphack%
+ \@ifnextchar [{\l@d@index}{\l@d@index[\jobname]}}
+ \newcommand{\nulledindex}[2][\jobname]{\@bsphack\@esphack}
+\else
+ \newcommand{\xedindex}{\@bsphack%
+ \doedindexlabel
+ \begingroup
+ \@sanitize
+ \@wredindex}
+ \newcommand{\nulledindex}[1]{\@bsphack\@esphack}
+\fi
+
+\let\@line@@num=\linenum
+\def\l@dgobbledarg #1/{\relax}
+\newcommand*{\l@dgobblearg}[1]{\relax}
+
+\let\Relax=\relax
+\let\NEXT=\next
+\newcount\@hilfs@count
+
+\def\measuremcell #1&{%
+ \ifx #1\\ \ifnum\l@dcolcount=0\let\NEXT\relax%
+ \else\l@dcheckcols%
+ \l@dcolcount=0%
+ \let\NEXT\measuremcell%
+ \fi%
+ \else\setbox\hilfsbox=\hbox{$\displaystyle{#1}$}%
+ \stepl@dcolcount%
+ \l@dsetmaxcolwidth%
+ \let\NEXT\measuremcell%
+ \fi\NEXT}
+
+\def\measuretcell #1&{%
+ \ifx #1\\ \ifnum\l@dcolcount=0\let\NEXT\relax%
+ \else\l@dcheckcols%
+ \l@dcolcount=0%
+ \let\NEXT\measuretcell%
+ \fi%
+ \else\setbox\hilfsbox=\hbox{#1}%
+ \stepl@dcolcount%
+ \l@dsetmaxcolwidth%
+ \let\NEXT\measuretcell%
+ \fi\NEXT}
+
+\def\measuremrow #1\\{%
+ \ifx #1&\let\NEXT\relax%
+ \else\measuremcell #1&\\&\\&%
+ \let\NEXT\measuremrow%
+ \fi\NEXT}
+\def\measuretrow #1\\{%
+ \ifx #1&\let\NEXT\relax%
+ \else\measuretcell #1&\\&\\&%
+ \let\NEXT\measuretrow%
+ \fi\NEXT}
+
+\newskip\edtabcolsep
+\global\edtabcolsep=10pt
+
+\let\NEXT\relax
+\let\Next=\next
+\newcommand{\variab}{\relax}
+
+\newcommand*{\l@dcheckcols}{%
+ \ifnum\l@dcolcount=1\relax
+ \else
+ \ifnum\l@dampcount=1\relax
+ \else
+ \ifnum\l@dcolcount=\l@dampcount\relax
+ \else
+ \l@d@err@UnequalColumns
+ \fi
+ \fi
+ \l@dampcount=\l@dcolcount
+ \fi}
+
+\newcommand{\l@dmodforcritext}{%
+ \let\critext\relax%
+ \renewcommand{\do}[1]{\global\csletcs{##1footnote}{l@dgobbledarg}}
+ \dolistloop{\@series}%
+ \let\edindex\nulledindex%
+ \let\linenum\@gobble}
+\newcommand{\l@drestoreforcritext}{%
+ \renewcommand{\do}[1]{\csdef{##1footnote}##1##2/{\csuse{##1@@footnote}{##1}{##2}}}
+ \dolistloop{\@series}%
+ \let\edindex\xedindex}
+
+\newcommand{\l@dmodforedtext}{%
+ \let\edtext\relax
+ \renewcommand{\do}[1]{\global\csletcs{##1footnote}{l@dgobblearg}}
+ \dolistloop{\@series}%
+ \let\edindex\nulledindex
+ \let\linenum\@gobble}
+\newcommand{\l@drestoreforedtext}{%
+ \renewcommand{\do}[1]{\csgdef{##1footnote}##1{\csuse{##1@@footnote}{##1}}}
+ \dolistloop{\@series}%
+ \let\edindex\xedindex}
+\newcommand{\l@dnullfills}{%
+ \def\edlabel##1{}%
+ \def\edrowfill##1##2##3{}%
+}
+\newcommand{\l@drestorefills}{%
+ \def\edrowfill##1##2##3{\@EDROWFILL@{##1}{##2}{##3}}%
+}
+
+\newcommand{\letsforverteilen}{%
+ \let\critext\xcritext
+ \let\edtext\xedtext
+ \let\edindex\xedindex
+ \renewcommand{\do}[1]{\global\csletcs{##1footnote}{##1@@footnote}}
+ \dolistloop{\@series}%
+ \let\linenum\@line@@num
+ \hilfsskip=\l@dcolwidth%
+ \advance\hilfsskip by -\wd\hilfsbox
+ \def\edlabel##1{\xedlabel{##1}}}
+
+\def\setmcellright #1&{\def\edlabel##1{}%
+ \let\edindex\nulledindex
+ \ifx #1\\ \ifnum\l@dcolcount=0%\removelastskip
+ \let\Next\relax%
+ \else\l@dcolcount=0%
+ \let\Next=\setmcellright%
+ \fi%
+ \else%
+ \disablel@dtabfeet%
+ \stepl@dcolcount%
+ \setbox\hilfsbox=\hbox{$\displaystyle{#1}$}%
+ \letsforverteilen%
+ \hskip\hilfsskip$\displaystyle{#1}$%
+ \hskip\edtabcolsep%
+ \let\Next=\setmcellright%
+ \fi\Next}
+
+\def\settcellright #1&{\def\edlabel##1{}%
+ \let\edindex\nulledindex
+ \ifx #1\\ \ifnum\l@dcolcount=0%\removelastskip
+ \let\Next\relax%
+ \else\l@dcolcount=0%
+ \let\Next=\settcellright%
+ \fi%
+ \else%
+ \disablel@dtabfeet%
+ \stepl@dcolcount%
+ \setbox\hilfsbox=\hbox{#1}%
+ \letsforverteilen%
+ \hskip\hilfsskip#1%
+ \hskip\edtabcolsep%
+ \let\Next=\settcellright%
+ \fi\Next}
+\def\setmcellleft #1&{\def\edlabel##1{}%
+ \let\edindex\nulledindex
+ \ifx #1\\ \ifnum\l@dcolcount=0 \let\Next\relax%
+ \else\l@dcolcount=0%
+ \let\Next=\setmcellleft%
+ \fi%
+ \else \disablel@dtabfeet%
+ \stepl@dcolcount%
+ \setbox\hilfsbox=\hbox{$\displaystyle{#1}$}%
+ \letsforverteilen
+ $\displaystyle{#1}$\hskip\hilfsskip\hskip\edtabcolsep%
+ \let\Next=\setmcellleft%
+ \fi\Next}
+
+\def\settcellleft #1&{\def\edlabel##1{}%
+ \let\edindex\nulledindex
+ \ifx #1\\ \ifnum\l@dcolcount=0 \let\Next\relax%
+ \else\l@dcolcount=0%
+ \let\Next=\settcellleft%
+ \fi%
+ \else \disablel@dtabfeet%
+ \stepl@dcolcount%
+ \setbox\hilfsbox=\hbox{#1}%
+ \letsforverteilen
+ #1\hskip\hilfsskip\hskip\edtabcolsep%
+ \let\Next=\settcellleft%
+ \fi\Next}
+\def\setmcellcenter #1&{\def\edlabel##1{}%
+ \let\edindex\nulledindex
+ \ifx #1\\ \ifnum\l@dcolcount=0\let\Next\relax%
+ \else\l@dcolcount=0%
+ \let\Next=\setmcellcenter%
+ \fi%
+ \else \disablel@dtabfeet%
+ \stepl@dcolcount%
+ \setbox\hilfsbox=\hbox{$\displaystyle{#1}$}%
+ \letsforverteilen%
+ \hskip 0.5\hilfsskip$\displaystyle{#1}$\hskip0.5\hilfsskip%
+ \hskip\edtabcolsep%
+ \let\Next=\setmcellcenter%
+ \fi\Next}
+
+\def\settcellcenter #1&{\def\edlabel##1{}%
+ \let\edindex\nulledindex
+ \ifx #1\\ \ifnum\l@dcolcount=0 \let\Next\relax%
+ \else\l@dcolcount=0%
+ \let\Next=\settcellcenter%
+ \fi%
+ \else \disablel@dtabfeet%
+ \stepl@dcolcount%
+ \setbox\hilfsbox=\hbox{#1}%
+ \letsforverteilen%
+ \hskip 0.5\hilfsskip #1\hskip 0.5\hilfsskip%
+ \hskip\edtabcolsep%
+ \let\Next=\settcellcenter%
+ \fi\Next}
+
+\let\NEXT=\relax
+
+\def\setmrowright #1\\{%
+ \ifx #1& \let\NEXT\relax
+ \else \centerline{\setmcellright #1&\\&\\&}
+ \let\NEXT=\setmrowright
+ \fi\NEXT}
+\def\settrowright #1\\{%
+ \ifx #1& \let\NEXT\relax
+ \else \centerline{\settcellright #1&\\&\\&}
+ \let\NEXT=\settrowright
+ \fi\NEXT}
+
+\def\setmrowleft #1\\{%
+ \ifx #1&\let\NEXT\relax
+ \else \centerline{\setmcellleft #1&\\&\\&}
+ \let\NEXT=\setmrowleft
+ \fi\NEXT}
+\def\settrowleft #1\\{%
+ \ifx #1& \let\NEXT\relax
+ \else \centerline{\settcellleft #1&\\&\\&}
+ \let\NEXT=\settrowleft
+ \fi\NEXT}
+
+\def\setmrowcenter #1\\{%
+ \ifx #1& \let\NEXT\relax%
+ \else \centerline{\setmcellcenter #1&\\&\\&}
+ \let\NEXT=\setmrowcenter
+ \fi\NEXT}
+\def\settrowcenter #1\\{%
+ \ifx #1& \let\NEXT\relax
+ \else \centerline{\settcellcenter #1&\\&\\&}
+ \let\NEXT=\settrowcenter
+ \fi\NEXT}
+
+\newcommand{\nullsetzen}{%
+ \stepl@dcolcount%
+ \l@dcolwidth=0pt%
+ \ifnum\l@dcolcount=30\let\NEXT\relax%
+ \l@dcolcount=0\relax
+ \else\let\NEXT\nullsetzen%
+ \fi\NEXT}
+
+\newcommand{\edatleft}[3][\@empty]{%
+ \ifx#1\@empty
+ \vbox to 10pt{\vss\hbox{$\left#2\vrule width0pt height #3
+ depth 0pt \right. $\hss}\vfil}
+ \else
+ \vbox to 4pt{\vss\hbox{$#1\left#2\vrule width0pt height #3
+ depth 0pt \right. $}\vfil}
+ \fi}
+\newcommand{\edatright}[3][\@empty]{%
+ \ifx#1\@empty
+ \vbox to 10pt{\vss\hbox{$\left.\vrule width0pt height #3
+ depth 0pt \right#2 $\hss}\vfil}
+ \else
+ \vbox to 4pt{\vss\hbox{$\left.\vrule width0pt height #3
+ depth 0pt \right#2 #1 $}\vfil}
+ \fi}
+
+\newcommand{\edvertline}[1]{\vbox to 8pt{\vss\hbox{\vrule height #1}\vfil}}
+
+\newcommand{\edvertdots}[1]{\vbox to 1pt{\vss\vbox to #1%
+ {\cleaders\hbox{$\m@th\hbox{.}\vbox to 0.5em{ }$}\vfil}}}
+
+\newdimen\edfilldimen
+\edfilldimen=0pt
+
+\newcounter{addcolcount}
+ \renewcommand{\theaddcolcount}{\roman{addcolcount}}
+\newcommand{\l@dtabaddcols}[2]{%
+ \l@dcheckstartend{#1}{#2}%
+ \ifl@dstartendok
+ \setcounter{addcolcount}{#1}%
+ \@whilenum \value{addcolcount}<#2\relax \do
+ {\advance\edfilldimen by \the \csname dcol\theaddcolcount\endcsname
+ \advance\edfilldimen by \edtabcolsep
+ \stepcounter{addcolcount}}%
+ \advance\edfilldimen by \the \csname dcol\theaddcolcount\endcsname
+ \fi
+}
+
+\newif\ifl@dstartendok
+\newcommand{\l@dcheckstartend}[2]{%
+ \l@dstartendoktrue
+ \ifnum #1<\@ne
+ \l@dstartendokfalse
+ \led@err@LowStartColumn
+ \fi
+ \ifnum #2>30\relax
+ \l@dstartendokfalse
+ \led@err@HighEndColumn
+ \fi
+ \ifnum #1>#2\relax
+ \l@dstartendokfalse
+ \led@err@ReverseColumns
+%%% \eledmac@error{Start column is greater than end column}{\@ehc}%
+ \fi
+}
+
+\newcommand*{\edrowfill}[3]{%
+ \l@dtabaddcols{#1}{#2}%
+ \hb@xt@ \the\l@dcolwidth{\hb@xt@ \the\edfilldimen{#3}\hss}}
+\let\@edrowfill@=\edrowfill
+\def\@EDROWFILL@#1#2#3{\@edrowfill@{#1}{#2}{#3}}
+
+\newcommand{\leftltab}[1]{%
+ \hb@xt@\z@{\vbox{\edtabindent%
+ \moveleft\Hilfsskip\hbox{\ #1}}\hss}}
+
+\newcommand{\leftrtab}[2]{%
+ #2\hb@xt@\z@{\vbox{\edtabindent%
+ \advance\Hilfsskip by\dcoli%
+ \moveleft\Hilfsskip\hbox{\ #1}}\hss}}
+
+\newcommand{\leftctab}[2]{%
+ \hb@xt@\z@{\vbox{\edtabindent\l@dcolcount=\l@dampcount%
+ \advance\Hilfsskip by 0.5\dcoli%
+ \setbox\hilfsbox=\hbox{\def\edlabel##1{}%
+ \disablel@dtabfeet$\displaystyle{#2}$}%
+ \advance\Hilfsskip by -0.5\wd\hilfsbox%
+ \moveleft\Hilfsskip\hbox{\ #1}}\hss}%
+ #2}
+
+\newcommand{\rightctab}[2]{%
+ \setbox\hilfsbox=\hbox{\def\edlabel##1{}%
+ \disablel@dtabfeet#2}\l@dampcount=\l@dcolcount%
+ #1\hb@xt@\z@{\vbox{\edtabindent\l@dcolcount=\l@dampcount%
+ \advance\Hilfsskip by 0.5\l@dcolwidth%
+ \advance\Hilfsskip by -\wd\hilfsbox%
+ \setbox\hilfsbox=\hbox{\def\edlabel##1{}%
+ \disablel@dtabfeet$\displaystyle{#1}$}%
+ \advance\Hilfsskip by -0.5\wd\hilfsbox%
+ \advance\Hilfsskip by \edtabcolsep%
+ \moveright\Hilfsskip\hbox{ #2}}\hss}%
+ }
+
+\newcommand{\rightltab}[2]{%
+ \setbox\hilfsbox=\hbox{\def\edlabel##1{}%
+ \disablel@dtabfeet#2}\l@dampcount=\l@dcolcount%
+ #1\hb@xt@\z@{\vbox{\edtabindent\l@dcolcount=\l@dampcount%
+ \advance\Hilfsskip by\l@dcolwidth%
+ \advance\Hilfsskip by-\wd\hilfsbox%
+ \setbox\hilfsbox=\hbox{\def\edlabel##1{}%
+ \disablel@dtabfeet$\displaystyle{#1}$}%
+ \advance\Hilfsskip by-\wd\hilfsbox%
+ \advance\Hilfsskip by\edtabcolsep%
+ \moveright\Hilfsskip\hbox{ #2}}\hss}%
+ }
+
+\newcommand{\rightrtab}[2]{%
+ \setbox\hilfsbox=\hbox{\def\edlabel##1{}%
+ \disablel@dtabfeet#2}%
+ #1\hb@xt@\z@{\vbox{\edtabindent%
+ \advance\Hilfsskip by-\wd\hilfsbox%
+ \advance\Hilfsskip by\edtabcolsep%
+ \moveright\Hilfsskip\hbox{ #2}}\hss}%
+ }
+
+\newcommand{\rtab}[1]{%
+ \l@dnullfills
+ \def\edbeforetab##1##2{\leftrtab{##1}{##2}}%
+ \def\edaftertab##1##2{\rightrtab{##1}{##2}}%
+ \measurembody{#1}%
+ \l@drestorefills
+ \variab
+ \setmrowright #1\\&\\%
+ \enablel@dtabfeet}
+
+\newcommand{\measurembody}[1]{%
+ \disablel@dtabfeet%
+ \l@dcolcount=0%
+ \nullsetzen%
+ \l@dcolcount=0
+ \measuremrow #1\\&\\%
+ \global\l@dampcount=1}
+
+\newcommand{\rtabtext}[1]{%
+ \l@dnullfills
+ \measuretbody{#1}%
+ \l@drestorefills
+ \variab
+ \settrowright #1\\&\\%
+ \enablel@dtabfeet}
+
+\newcommand{\measuretbody}[1]{%
+ \disablel@dtabfeet%
+ \l@dcolcount=0%
+ \nullsetzen%
+ \l@dcolcount=0
+ \measuretrow #1\\&\\%
+ \global\l@dampcount=1}
+
+\newcommand{\ltab}[1]{%
+ \l@dnullfills
+ \def\edbeforetab##1##2{\leftltab{##1}{##2}}%
+ \def\edaftertab##1##2{\rightltab{##1}{##2}}%
+ \measurembody{#1}%
+ \l@drestorefills
+ \variab
+ \setmrowleft #1\\&\\%
+ \enablel@dtabfeet}
+
+\newcommand{\ltabtext}[1]{%
+ \l@dnullfills
+ \measuretbody{#1}%
+ \l@drestorefills
+ \variab
+ \settrowleft #1\\&\\%
+ \enablel@dtabfeet}
+
+\newcommand{\ctab}[1]{%
+ \l@dnullfills
+ \def\edbeforetab##1##2{\leftctab{##1}{##2}}%
+ \def\edaftertab##1##2{\rightctab{##1}{##2}}%
+ \measurembody{#1}%
+ \l@drestorefills
+ \variab
+ \setmrowcenter #1\\&\\%
+ \enablel@dtabfeet}
+
+\newcommand{\ctabtext}[1]{%
+ \l@dnullfills
+ \measuretbody{#1}%
+ \l@drestorefills
+ \variab
+ \settrowcenter #1\\&\\%
+ \enablel@dtabfeet}
+
+\newcommand{\spreadtext}[1]{%\l@dcolcount=\l@dampcount%
+ \hb@xt@ \the\l@dcolwidth{\hbox{#1}\hss}}
+\newcommand{\spreadmath}[1]{%
+ \hb@xt@ \the\l@dcolwidth{\hbox{$\displaystyle{#1}$}\hss}}
+
+\def\tabellzwischen #1&{%
+ \ifx #1\\ \let\NEXT\relax \l@dcolcount=0
+ \else \stepl@dcolcount%
+ \l@dcolwidth = #1 mm
+ \let\NEXT=\tabellzwischen
+ \fi \NEXT }
+
+\def\edatabell #1\\{%
+ \tabellzwischen #1&\\&}
+\def\Setzen #1&{%
+ \ifx #1\relax \let\NEXT=\relax
+ \else \stepl@dcolcount%
+ \let\tabelskip=\l@dcolwidth
+ \EDTAB #1|
+ \let\NEXT=\Setzen
+ \fi\NEXT}
+
+\def\EDATAB #1\\{%
+ \ifx #1\Relax \centerline{\Setzen #1\relax&}
+ \let\Next\relax
+ \else \centerline{\Setzen #1&\relax&}
+ \let\Next=\EDATAB
+ \fi\Next}
+\newcommand{\edatab}[1]{%
+ \variab%
+ \EDATAB #1\\\Relax\\}
+
+\newskip\HILFSskip
+\newskip\Hilfsskip
+
+\newcommand{\EDTABINDENT}{%
+ \ifnum\l@dcolcount=30\let\NEXT\relax\l@dcolcount=0%
+ \else\stepl@dcolcount%
+ \advance\Hilfsskip by\l@dcolwidth%
+ \ifdim\l@dcolwidth=0pt\advance\hilfscount\@ne
+ \else\advance\Hilfsskip by \the\hilfscount\edtabcolsep%
+ \hilfscount=1\fi%
+ \let\NEXT=\EDTABINDENT%
+ \fi\NEXT}%
+\newcommand{\edtabindent}{%
+ \l@dcolcount=0\relax
+ \Hilfsskip=0pt%
+ \hilfscount=1\relax
+ \EDTABINDENT%
+ \hilfsskip=\hsize%
+ \advance\hilfsskip -\Hilfsskip%
+ \Hilfsskip=0.5\hilfsskip%
+ }%
+
+\def\EDTAB #1|#2|{%
+ \setbox\tabhilfbox=\hbox{$\displaystyle{#1}$}%
+ \setbox\tabHilfbox=\hbox{$\displaystyle{#2}$}%
+ \advance\tabelskip -\wd\tabhilfbox%
+ \advance\tabelskip -\wd\tabHilfbox%
+ \unhbox\tabhilfbox\hskip\tabelskip%
+ \unhbox\tabHilfbox}%
+
+\def\EDTABtext #1|#2|{%
+ \setbox\tabhilfbox=\hbox{#1}%
+ \setbox\tabHilfbox=\hbox{#2}%
+ \advance\tabelskip -\wd\tabhilfbox%
+ \advance\tabelskip -\wd\tabHilfbox%
+ \unhbox\tabhilfbox\hskip\tabelskip%
+ \unhbox\tabHilfbox}%
+\newbox\tabhilfbox
+\newbox\tabHilfbox
+
+\newenvironment{edarrayl}{\l@dcollect@body\ltab}{}
+\newenvironment{edarrayc}{\l@dcollect@body\ctab}{}
+\newenvironment{edarrayr}{\l@dcollect@body\rtab}{}
+
+\newenvironment{edtabularl}{\l@dcollect@body\ltabtext}{}
+\newenvironment{edtabularc}{\l@dcollect@body\ctabtext}{}
+\newenvironment{edtabularr}{\l@dcollect@body\rtabtext}{}
+
+\newcommand{\usingcritext}{%
+ \def\disablel@dtabfeet{\l@dmodforcritext}%
+ \def\enablel@dtabfeet{\l@drestoreforcritext}}
+\newcommand{\usingedtext}{%
+ \def\disablel@dtabfeet{\l@dmodforedtext}%
+ \def\enablel@dtabfeet{\l@drestoreforedtext}}
+
+\usingedtext
+
+\endinput
+%%
+%% End of file `eledmac.sty'.
diff --git a/Master/texmf-dist/tex/latex/eledmac/eledpar.sty b/Master/texmf-dist/tex/latex/eledmac/eledpar.sty
new file mode 100644
index 00000000000..eeed6e1bdef
--- /dev/null
+++ b/Master/texmf-dist/tex/latex/eledmac/eledpar.sty
@@ -0,0 +1,2014 @@
+%%
+%% This is file `eledpar.sty',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% eledpar.dtx (with options: `code')
+%%
+%% Author: Author: Peter Wilson ; Herries Press herries dot press at earthlink dot net ; Maïeul Rouquette maieul at maieul dot net
+%% Copyright 2004, 2005 Peter R. Wilson
+%% 2011- Maïeul Rouquette
+%% This work may be distributed and/or modified under the
+%% conditions of the LaTeX Project Public License, either
+%% version 1.3 of this license or (at your option) any
+%% later version.
+%% The latest version of the license is in
+%% http://www.latex-project.org/lppl.txt
+%% and version 1.3 or later is part of all distributions of
+%% LaTeX version 2003/06/01 or later.
+%%
+%% This work has the LPPL maintenance status "maintained".
+%%
+%% This work consists of the files listed in the README file.
+%%
+
+\NeedsTeXFormat{LaTeX2e}
+\ProvidesPackage{eledpar}[2012/09/16 v1.0.1 eledmac extension for parallel texts]
+
+\newif\ifshiftedverses
+\shiftedversesfalse
+\DeclareOption{shiftedverses}{\shiftedversestrue}
+\ProcessOptions
+ \l@dpairingfalse
+\newif\ifl@dpaging
+ \l@dpagingfalse
+ \ledRcolfalse
+\newdimen\Lcolwidth
+ \Lcolwidth=0.45\textwidth
+\newdimen\Rcolwidth
+ \Rcolwidth=0.45\textwidth
+
+\newcommand*{\led@err@TooManyPstarts}{%
+ \eledmac@error{Too many \string\pstart\space without printing.
+ Some text will be lost}{\@ehc}}
+\newcommand*{\led@err@BadLeftRightPstarts}[2]{%
+ \eledmac@error{The numbers of left (#1) and right (#2)
+ \string\pstart s do not match}{\@ehc}}
+\newcommand*{\led@err@LeftOnRightPage}{%
+ \eledmac@error{The left page has ended on a right page}{\@ehc}}
+\newcommand*{\led@err@RightOnLeftPage}{%
+ \eledmac@error{The right page has ended on a left page}{\@ehc}}
+\newcount\section@numR
+ \section@numR=\z@
+ \pst@rtedLfalse
+\newif\ifpst@rtedR
+ \pst@rtedRfalse
+
+\providecommand*{\beginnumbering}{%
+ \ifnumbering
+ \led@err@NumberingStarted
+ \endnumbering
+ \fi
+ \global\l@dnumpstartsL \z@
+ \global\pst@rtedLfalse
+ \global\numberingtrue
+ \global\advance\section@num \@ne
+ \initnumbering@reg
+ \message{Section \the\section@num}%
+ \line@list@stuff{\jobname.\extensionchars\the\section@num}%
+ \l@dend@stuff}
+\newcommand*{\beginnumberingR}{%
+ \ifnumberingR
+ \led@err@NumberingStarted
+ \endnumberingR
+ \fi
+ \global\l@dnumpstartsR \z@
+ \global\pst@rtedRfalse
+ \global\numberingRtrue
+ \global\advance\section@numR \@ne
+ \global\absline@numR \z@
+ \global\line@numR \z@
+ \global\@lockR \z@
+ \global\sub@lockR \z@
+ \global\sublines@false
+ \global\let\next@page@numR\relax
+ \global\let\sub@change\relax
+ \message{Section \the\section@numR R }%
+ \line@list@stuffR{\jobname.\extensionchars\the\section@numR R}%
+ \l@dend@stuff
+ \setcounter{pstartR}{1}
+}
+
+\def\endnumberingR{%
+ \ifnumberingR
+ \global\numberingRfalse
+ \normal@pars
+ \ifl@dpairing
+ \global\pst@rtedRfalse
+ \else
+ \ifx\insertlines@listR\empty\else
+ \global\noteschanged@true
+ \fi
+ \ifx\line@listR\empty\else
+ \global\noteschanged@true
+ \fi
+ \fi
+ \ifnoteschanged@
+ \led@mess@NotesChanged
+ \fi
+ \else
+ \led@err@NumberingNotStarted
+ \fi}
+
+\newcommand*{\pausenumberingR}{%
+ \endnumberingR\global\numberingRtrue}
+\newcommand*{\resumenumberingR}{%
+ \ifnumberingR
+ \global\pst@rtedRtrue
+ \global\advance\section@numR \@ne
+ \led@mess@SectionContinued{\the\section@numR R}%
+ \line@list@stuffR{\jobname.\extensionchars\the\section@numR R}%
+ \l@dend@stuff
+ \else
+ \led@err@numberingShouldHaveStarted
+ \endnumberingR
+ \beginnumberingR
+ \fi}
+
+\newcommand*{\memorydumpL}{%
+ \endnumbering
+ \numberingtrue
+ \global\pst@rtedLtrue
+ \global\advance\section@num \@ne
+ \led@mess@SectionContinued{\the\section@num}%
+ \line@list@stuff{\jobname.\extensionchars\the\section@num}%
+ \l@dend@stuff}
+\newcommand*{\memorydumpR}{%
+ \endnumberingR
+ \numberingRtrue
+ \global\pst@rtedRtrue
+ \global\advance\section@numR \@ne
+ \led@mess@SectionContinued{\the\section@numR R}%
+ \line@list@stuffR{\jobname.\extensionchars\the\section@numR R}%
+ \l@dend@stuff}
+
+%% \changes{v0.11}{2012/06/11}{Lineation can be by pstart (like in eledmac 0.15).}
+\newif\ifbypage@R
+\newif\ifbypstart@R
+ \bypage@Rfalse
+ \bypstart@Rfalse
+\newcommand*{\lineationR}[1]{{%
+ \ifnumbering
+ \led@err@LineationInNumbered
+ \else
+ \def\@tempa{#1}\def\@tempb{page}%
+ \ifx\@tempa\@tempb
+ \global\bypage@Rtrue
+ \global\bypstart@Rfalse
+ \else
+ \def\@tempb{pstart}%
+ \ifx\@tempa\@tempb
+ \global\bypage@Rfalse
+ \global\bypstart@Rtrue
+ \else
+ \def@tempb{section}
+ \ifx\@tempa\@tempb
+ \global\bypage@Rfalse
+ \global\bypstart@Rfalse
+ \else
+ \led@warn@BadLineation
+ \fi
+ \fi
+ \fi
+ \fi}}
+\newcount\line@marginR
+\renewcommand*{\linenummargin}[1]{{%
+ \l@dgetline@margin{#1}%
+ \ifnum\@l@dtempcntb>\m@ne
+ \ifledRcol
+ \global\line@marginR=\@l@dtempcntb
+ \else
+ \global\line@margin=\@l@dtempcntb
+ \fi
+ \fi}}
+\line@marginR=\@ne
+
+\newcounter{firstlinenumR}
+ \setcounter{firstlinenumR}{5}
+\newcounter{linenumincrementR}
+ \setcounter{linenumincrementR}{5}
+\newcounter{firstsublinenumR}
+ \setcounter{firstsublinenumR}{5}
+\newcounter{sublinenumincrementR}
+ \setcounter{sublinenumincrementR}{5}
+
+\providecommand*{\firstlinenum}{}
+\providecommand*{\linenumincrement}{}
+\providecommand*{\firstsublinenum}{}
+\providecommand*{\sublinenumincrement}{}
+\renewcommand*{\firstlinenum}[1]{%
+ \ifledRcol \setcounter{firstlinenumR}{#1}%
+ \else \setcounter{firstlinenum}{#1}%
+ \fi}
+\renewcommand*{\linenumincrement}[1]{%
+ \ifledRcol \setcounter{linenumincrementR}{#1}%
+ \else \setcounter{linenumincrement}{#1}%
+ \fi}
+\renewcommand*{\firstsublinenum}[1]{%
+ \ifledRcol \setcounter{firstsublinenumR}{#1}%
+ \else \setcounter{firstsublinenum}{#1}%
+ \fi}
+\renewcommand*{\sublinenumincrement}[1]{%
+ \ifledRcol \setcounter{sublinenumincrementR}{#1}%
+ \else \setcounter{sublinenumincrement}{#1}%
+ \fi}
+
+\newcommand*{\Rlineflag}{R}
+
+\newcommand*{\linenumrepR}[1]{\@arabic{#1}}
+\newcommand*{\sublinenumrepR}[1]{\@arabic{#1}}
+
+\newcommand*{\leftlinenumR}{%
+ \l@dlinenumR
+ \kern\linenumsep}
+\newcommand*{\rightlinenumR}{%
+ \kern\linenumsep
+ \l@dlinenumR}
+\newcommand*{\l@dlinenumR}{%
+ \numlabfont\linenumrepR{\line@numR}\Rlineflag%
+ \ifsublines@
+ \ifnum\subline@num>\z@
+ \unskip\fullstop\sublinenumrepR{\subline@numR}%
+ \fi
+ \fi}
+
+\newcount\line@numR
+\newcount\subline@numR
+\newcount\absline@numR
+
+\list@create{\line@listR}
+\list@create{\insertlines@listR}
+\list@create{\actionlines@listR}
+\list@create{\actions@listR}
+
+\list@create{\linesinpar@listL}
+\list@create{\linesinpar@listR}
+\list@create{\maxlinesinpar@list}
+
+\newcount\page@numR
+
+\renewcommand*{\read@linelist}[1]{%
+ \ifledRcol
+ \list@clear{\line@listR}%
+ \list@clear{\insertlines@listR}%
+ \list@clear{\actionlines@listR}%
+ \list@clear{\actions@listR}%
+ \list@clear{\linesinpar@listR}%
+ \list@clear{\linesonpage@listR}
+ \else
+ \list@clearing@reg
+ \list@clear{\linesinpar@listL}%
+ \list@clear{\linesonpage@listL}%
+ \fi
+ \list@clear{\maxlinesinpar@list}
+ \get@linelistfile{#1}%
+ \endgroup
+ \ifledRcol
+ \global\page@numR=\m@ne
+ \ifx\actionlines@listR\empty
+ \gdef\next@actionlineR{1000000}%
+ \else
+ \gl@p\actionlines@listR\to\next@actionlineR
+ \gl@p\actions@listR\to\next@actionR
+ \fi
+ \else
+ \global\page@num=\m@ne
+ \ifx\actionlines@list\empty
+ \gdef\next@actionline{1000000}%
+ \else
+ \gl@p\actionlines@list\to\next@actionline
+ \gl@p\actions@list\to\next@action
+ \fi
+ \fi}
+
+\newcommand{\@l@regR}{%
+ \ifx\l@dchset@num\relax \else
+ \advance\absline@numR \@ne
+ \set@line@action
+ \let\l@dchset@num\relax
+ \advance\absline@numR \m@ne
+ \advance\line@numR \m@ne% % do we need this?
+ \fi
+ \advance\absline@numR \@ne
+ \ifx\next@page@numR\relax \else
+ \page@action
+ \let\next@page@numR\relax
+ \fi
+ \ifx\sub@change\relax \else
+ \ifnum\sub@change>\z@
+ \sublines@true
+ \else
+ \sublines@false
+ \fi
+ \sub@action
+ \let\sub@change\relax
+ \fi
+ \ifcase\@lockR
+ \or
+ \@lockR \tw@
+ \or\or
+ \@lockR \z@
+ \fi
+ \ifcase\sub@lockR
+ \or
+ \sub@lockR \tw@
+ \or\or
+ \sub@lockR \z@
+ \fi
+ \ifsublines@
+ \ifnum\sub@lockR<\tw@
+ \advance\subline@numR \@ne
+ \fi
+ \else
+ \ifnum\@lockR<\tw@
+ \advance\line@numR \@ne \subline@numR \z@
+ \fi
+ \fi}
+
+\renewcommand*{\@l}[2]{%
+ \fix@page{#1}%
+ \ifledRcol
+ \@l@regR
+ \else
+ \@l@reg
+ \fi}
+
+\newcount\last@page@numR
+ \last@page@numR=-10000
+\renewcommand*{\fix@page}[1]{%
+ \ifledRcol
+ \ifnum #1=\last@page@numR
+ \else
+ \ifbypage@R
+ \line@numR \z@ \subline@numR \z@
+ \fi
+ \page@numR=#1\relax
+ \last@page@numR=#1\relax
+ \def\next@page@numR{#1}%
+ \fi
+ \else
+ \ifnum #1=\last@page@num
+ \else
+ \ifbypage@
+ \line@num \z@ \subline@num \z@
+ \fi
+ \page@num=#1\relax
+ \last@page@num=#1\relax
+ \def\next@page@num{#1}%
+ \fi
+ \fi}
+
+\renewcommand*{\@adv}[1]{%
+ \ifsublines@
+ \ifledRcol
+ \advance\subline@numR by #1\relax
+ \ifnum\subline@numR<\z@
+ \led@warn@BadAdvancelineSubline
+ \subline@numR \z@
+ \fi
+ \else
+ \advance\subline@num by #1\relax
+ \ifnum\subline@num<\z@
+ \led@warn@BadAdvancelineSubline
+ \subline@num \z@
+ \fi
+ \fi
+ \else
+ \ifledRcol
+ \advance\line@numR by #1\relax
+ \ifnum\line@numR<\z@
+ \led@warn@BadAdvancelineLine
+ \line@numR \z@
+ \fi
+ \else
+ \advance\line@num by #1\relax
+ \ifnum\line@num<\z@
+ \led@warn@BadAdvancelineLine
+ \line@num \z@
+ \fi
+ \fi
+ \fi
+ \set@line@action}
+
+\renewcommand*{\@set}[1]{%
+ \ifledRcol
+ \ifsublines@
+ \subline@numR=#1\relax
+ \else
+ \line@numR=#1\relax
+ \fi
+ \set@line@action
+ \else
+ \ifsublines@
+ \subline@num=#1\relax
+ \else
+ \line@num=#1\relax
+ \fi
+ \set@line@action
+ \fi}
+
+\renewcommand*{\l@d@set}[1]{%
+ \ifledRcol
+ \line@numR=#1\relax
+ \advance\line@numR \@ne
+ \def\l@dchset@num{#1}
+ \else
+ \line@num=#1\relax
+ \advance\line@num \@ne
+ \def\l@dchset@num{#1}
+ \fi}
+\let\l@dchset@num\relax
+
+\renewcommand*{\page@action}{%
+ \ifledRcol
+ \xright@appenditem{\the\absline@numR}\to\actionlines@listR
+ \xright@appenditem{\next@page@numR}\to\actions@listR
+ \else
+ \xright@appenditem{\the\absline@num}\to\actionlines@list
+ \xright@appenditem{\next@page@num}\to\actions@list
+ \fi}
+\renewcommand*{\set@line@action}{%
+ \ifledRcol
+ \xright@appenditem{\the\absline@numR}\to\actionlines@listR
+ \ifsublines@
+ \@l@dtempcnta=-\subline@numR
+ \else
+ \@l@dtempcnta=-\line@numR
+ \fi
+ \advance\@l@dtempcnta by -5000\relax
+ \xright@appenditem{\the\@l@dtempcnta}\to\actions@listR
+ \else
+ \xright@appenditem{\the\absline@num}\to\actionlines@list
+ \ifsublines@
+ \@l@dtempcnta=-\subline@num
+ \else
+ \@l@dtempcnta=-\line@num
+ \fi
+ \advance\@l@dtempcnta by -5000\relax
+ \xright@appenditem{\the\@l@dtempcnta}\to\actions@list
+ \fi}
+
+\renewcommand*{\sub@action}{%
+ \ifledRcol
+ \xright@appenditem{\the\absline@numR}\to\actionlines@listR
+ \ifsublines@
+ \xright@appenditem{-1001}\to\actions@listR
+ \else
+ \xright@appenditem{-1002}\to\actions@listR
+ \fi
+ \else
+ \xright@appenditem{\the\absline@num}\to\actionlines@list
+ \ifsublines@
+ \xright@appenditem{-1001}\to\actions@list
+ \else
+ \xright@appenditem{-1002}\to\actions@list
+ \fi
+ \fi}
+
+\newcount\@lockR
+\newcount\sub@lockR
+
+\newcommand*{\do@lockonR}{%
+ \xright@appenditem{\the\absline@numR}\to\actionlines@listR
+ \ifsublines@
+ \xright@appenditem{-1005}\to\actions@listR
+ \ifnum\sub@lockR=\z@
+ \sub@lockR \@ne
+ \else
+ \ifnum\sub@lockR=\thr@@
+ \sub@lockR \@ne
+ \fi
+ \fi
+ \else
+ \xright@appenditem{-1003}\to\actions@listR
+ \ifnum\@lockR=\z@
+ \@lockR \@ne
+ \else
+ \ifnum\@lockR=\thr@@
+ \@lockR \@ne
+ \fi
+ \fi
+ \fi}
+
+\renewcommand*{\do@lockon}{%
+ \ifx\next\lock@off
+ \global\let\lock@off=\skip@lockoff
+ \else
+ \ifledRcol
+ \do@lockonR
+ \else
+ \do@lockonL
+ \fi
+ \fi}
+
+\newcommand{\do@lockoffR}{%
+ \xright@appenditem{\the\absline@numR}\to\actionlines@listR
+ \ifsublines@
+ \xright@appenditem{-1006}\to\actions@listR
+ \ifnum\sub@lockR=\tw@
+ \sub@lockR \thr@@
+ \else
+ \sub@lockR \z@
+ \fi
+ \else
+ \xright@appenditem{-1004}\to\actions@listR
+ \ifnum\@lockR=\tw@
+ \@lockR \thr@@
+ \else
+ \@lockR \z@
+ \fi
+ \fi}
+
+\renewcommand*{\do@lockoff}{%
+ \ifledRcol
+ \do@lockoffR
+ \else
+ \do@lockoffL
+ \fi}
+\global\let\lock@off=\do@lockoff
+
+\providecommand*{\n@num}{}
+\renewcommand*{\n@num}{%
+ \ifledRcol
+ \xright@appenditem{\the\absline@numR}\to\actionlines@listR
+ \xright@appenditem{-1007}\to\actions@listR
+ \else
+ \n@num@reg
+ \fi}
+
+\newcount\insert@countR
+\renewcommand*{\@ref}[2]{%
+ \ifledRcol
+ \global\insert@countR=#1\relax
+ \loop\ifnum\insert@countR>\z@
+ \xright@appenditem{\the\absline@numR}\to\insertlines@listR
+ \global\advance\insert@countR \m@ne
+ \repeat
+ \begingroup
+ \let\@ref=\dummy@ref
+ \let\page@action=\relax
+ \let\sub@action=\relax
+ \let\set@line@action=\relax
+ \let\@lab=\relax
+ #2
+ \global\endpage@num=\page@numR
+ \global\endline@num=\line@numR
+ \global\endsubline@num=\subline@numR
+ \endgroup
+ \xright@appenditem%
+ {\the\page@numR|\the\line@numR|%
+ \ifsublines@ \the\subline@numR \else 0\fi|%
+ \the\endpage@num|\the\endline@num|%
+ \ifsublines@ \the\endsubline@num \else 0\fi}\to\line@listR
+ #2
+ \else
+ \@ref@reg{#1}{#2}%
+ \fi}
+\providecommand*{\@pend}[1]{}
+\renewcommand*{\@pend}[1]{%
+ \ifbypstart@\global\line@num=0\fi%
+ \xright@appenditem{#1}\to\linesinpar@listL}
+\providecommand*{\@pendR}[1]{}
+\renewcommand*{\@pendR}[1]{%
+ \ifbypstart@R\global\line@numR=0\fi
+ \xright@appenditem{#1}\to\linesinpar@listR}
+
+\providecommand*{\@lopL}[1]{}
+\renewcommand*{\@lopL}[1]{%
+ \xright@appenditem{#1}\to\linesonpage@listL}
+\providecommand*{\@lopR}[1]{}
+\renewcommand*{\@lopR}[1]{%
+ \xright@appenditem{#1}\to\linesonpage@listR}
+
+\newwrite\linenum@outR
+\newif\iffirst@linenum@out@R
+ \first@linenum@out@Rtrue
+\newcommand*{\line@list@stuffR}[1]{%
+ \read@linelist{#1}%
+ \iffirst@linenum@out@R
+ \immediate\closeout\linenum@outR
+ \global\first@linenum@out@Rfalse
+ \immediate\openout\linenum@outR=#1
+ \else
+ \closeout\linenum@outR
+ \openout\linenum@outR=#1
+ \fi}
+
+\newcommand*{\new@lineR}{%
+ \write\linenum@outR{\string\@l[\the\c@page][\thepage]}}
+\renewcommand*{\flag@start}{%
+ \ifledRcol
+ \edef\next{\write\linenum@outR{%
+ \string\@ref[\the\insert@countR][}}%
+ \next
+ \else
+ \edef\next{\write\linenum@out{%
+ \string\@ref[\the\insert@count][}}%
+ \next
+ \fi}
+\renewcommand*{\flag@end}{%
+ \ifledRcol
+ \write\linenum@outR{]}%
+ \else
+ \write\linenum@out{]}%
+ \fi}
+\renewcommand*{\startsub}{\dimen0\lastskip
+ \ifdim\dimen0>0pt \unskip \fi
+ \ifledRcol \write\linenum@outR{\string\sub@on}%
+ \else \write\linenum@out{\string\sub@on}%
+ \fi
+ \ifdim\dimen0>0pt \hskip\dimen0 \fi}
+\def\endsub{\dimen0\lastskip
+ \ifdim\dimen0>0pt \unskip \fi
+ \ifledRcol \write\linenum@outR{\string\sub@off}%
+ \else \write\linenum@out{\string\sub@off}%
+ \fi
+ \ifdim\dimen0>0pt \hskip\dimen0 \fi}
+
+\renewcommand*{\advanceline}[1]{%
+ \ifledRcol \write\linenum@outR{\string\@adv[#1]}%
+ \else \write\linenum@out{\string\@adv[#1]}%
+ \fi}
+\renewcommand*{\setline}[1]{%
+ \ifnum#1<\z@
+ \led@warn@BadSetline
+ \else
+ \ifledRcol \write\linenum@outR{\string\@set[#1]}%
+ \else \write\linenum@out{\string\@set[#1]}%
+ \fi
+ \fi}
+\renewcommand*{\setlinenum}[1]{%
+ \ifnum#1<\z@
+ \led@warn@BadSetlinenum
+ \else
+ \ifledRcol \write\linenum@outR{\string\l@d@set[#1]}
+ \else \write\linenum@out{\string\l@d@set[#1]} \fi
+ \fi}
+
+\renewcommand*{\startlock}{%
+ \ifledRcol \write\linenum@outR{\string\lock@on}%
+ \else \write\linenum@out{\string\lock@on}%
+ \fi}
+\def\endlock{%
+ \ifledRcol \write\linenum@outR{\string\lock@off}%
+ \else \write\linenum@out{\string\lock@off}%
+ \fi}
+
+\renewcommand*{\skipnumbering}{%
+ \ifledRcol \write\linenum@outR{\string\n@num}%
+ \advanceline{-1}%
+ \else
+ \skipnumbering@reg
+ \fi}
+
+\long\def\critext#1#2/{\leavevmode
+ \begingroup
+ \renewcommand{\@tag}{\no@expands #1}%
+ \set@line
+ \ifledRcol \global\insert@countR \z@
+ \else \global\insert@count \z@ \fi
+ \ignorespaces #2\relax
+ \flag@start
+ \endgroup
+ \showlemma{#1}%
+ \ifx\end@lemmas\empty \else
+ \gl@p\end@lemmas\to\x@lemma
+ \x@lemma
+ \global\let\x@lemma=\relax
+ \fi
+ \flag@end}
+\renewcommand{\edtext}[2]{\leavevmode
+ \begingroup
+ \renewcommand{\@tag}{\no@expands #1}%
+ \set@line
+ \ifledRcol \global\insert@countR \z@
+ \else \global\insert@count \z@ \fi
+ \ignorespaces #2\relax
+ \flag@start
+ \endgroup
+ \showlemma{#1}%
+ \ifx\end@lemmas\empty \else
+ \gl@p\end@lemmas\to\x@lemma
+ \x@lemma
+ \global\let\x@lemma=\relax
+ \fi
+ \flag@end}
+
+\renewcommand*{\set@line}{%
+ \ifledRcol
+ \ifx\line@listR\empty
+ \global\noteschanged@true
+ \xdef\l@d@nums{000|000|000|000|000|000|\edfont@info}%
+ \else
+ \gl@p\line@listR\to\@tempb
+ \xdef\l@d@nums{\@tempb|\edfont@info}%
+ \global\let\@tempb=\undefined
+ \fi
+ \else
+ \ifx\line@list\empty
+ \global\noteschanged@true
+ \xdef\l@d@nums{000|000|000|000|000|000|\edfont@info}%
+ \else
+ \gl@p\line@list\to\@tempb
+ \xdef\l@d@nums{\@tempb|\edfont@info}%
+ \global\let\@tempb=\undefined
+ \fi
+ \fi}
+
+\newenvironment{pairs}{%}
+ \l@dpairingtrue
+ \l@dpagingfalse
+}{%
+ \l@dpairingfalse
+}
+\newenvironment{pages}{%
+ \let\oldchapter\chapter
+ \let\chapter\chapterinpages
+ \l@dpairingtrue
+ \l@dpagingtrue
+ \setlength{\Lcolwidth}{\textwidth}%
+ \setlength{\Rcolwidth}{\textwidth}%
+}{%
+ \l@dpairingfalse
+ \l@dpagingfalse
+ \let\chapter\oldchapter
+}
+\newcommand{\chapterinpages}{\thispagestyle{plain}%
+ \global\@topnum\z@
+ \@afterindentfalse
+ \secdef\@chapter\@schapter}
+
+ \newif\ifinstanzaL
+ \newif\ifinstanzaR
+\newenvironment{Leftside}{%
+ \ledRcolfalse
+ \let\beginnumbering\beginnumbering\setcounter{pstartL}{1}
+ \let\pstart\pstartL
+ \let\thepstart\thepstartL
+ \let\pend\pendL
+ \let\memorydump\memorydumpL
+ \Leftsidehook
+ \let\oldstanza\stanza
+ \renewcommand{\stanza}{\oldstanza\global\instanzaLtrue}
+}{
+ \let\stanza\oldstanza
+ \Leftsidehookend}
+\newcommand*{\Leftsidehook}{}
+\newcommand*{\Leftsidehookend}{}
+\newcommand*{\Rightsidehook}{}
+\newcommand*{\Rightsidehookend}{}
+
+\newenvironment{Rightside}{%
+ \ledRcoltrue
+ \let\beginnumbering\beginnumberingR
+ \let\endnumbering\endnumberingR
+ \let\pausenumbering\pausenumberingR
+ \let\resumenumbering\resumenumberingR
+ \let\memorydump\memorydumpR
+ \let\thepstart\thepstartR
+ \let\pstart\pstartR
+ \let\pend\pendR
+ \let\lineation\lineationR
+ \Rightsidehook
+ \let\oldstanza\stanza
+ \renewcommand{\stanza}{\oldstanza\global\instanzaRtrue}
+}{%
+ \ledRcolfalse
+ \let\stanza\oldstanza
+ \Rightsidehookend
+}
+
+\newcount\num@linesR
+\newbox\one@lineR
+\newcount\par@lineR
+
+\newcounter{pstartL}
+\newcounter{pstartLold}
+\renewcommand{\thepstartL}{{\bfseries\@arabic\c@pstartL}. }
+\newcounter{pstartR}
+\newcounter{pstartRold}
+\renewcommand{\thepstartR}{{\bfseries\@arabic\c@pstartR}. }
+
+\newcommand*{\pstartL}{
+\if@nobreak
+\let\@oldnobreak\@nobreaktrue
+\else
+\let\@oldnobreak\@nobreakfalse
+\fi
+\@nobreaktrue
+ \ifnumbering \else
+ \led@err@PstartNotNumbered
+ \beginnumbering
+ \fi
+ \ifnumberedpar@
+ \led@err@PstartInPstart
+ \pend
+ \fi
+ \ifpst@rtedL\else
+ \setcounter{pstartLold}{\value{pstartL}}%
+ \list@clear{\inserts@list}%
+ \global\let\next@insert=\empty
+ \global\pst@rtedLtrue
+ \fi
+ \begingroup\normal@pars
+ \global\advance\l@dnumpstartsL \@ne
+ \ifnum\l@dnumpstartsL>\l@dc@maxchunks
+ \led@err@TooManyPstarts
+ \global\l@dnumpstartsL=\l@dc@maxchunks
+ \fi
+ \global\setnamebox{l@dLcolrawbox\the\l@dnumpstartsL}=\vbox\bgroup\ifautopar\else\ifnumberpstart\ifsidepstartnum\else\thepstartL\fi\fi\fi%
+ \hsize=\Lcolwidth
+ \numberedpar@true}
+\newcommand*{\pstartR}{
+\if@nobreak
+\let\@oldnobreak\@nobreaktrue
+\else
+\let\@oldnobreak\@nobreakfalse
+\fi
+\@nobreaktrue
+ \ifnumberingR \else
+ \led@err@PstartNotNumbered
+ \beginnumberingR
+ \fi
+ \ifnumberedpar@
+ \led@err@PstartInPstart
+ \pendR
+ \fi
+ \ifpst@rtedR\else
+ \setcounter{pstartRold}{\value{pstartR}}%
+ \list@clear{\inserts@listR}%
+ \global\let\next@insertR=\empty
+ \global\pst@rtedRtrue
+ \fi
+ \begingroup\normal@pars
+ \global\advance\l@dnumpstartsR \@ne
+ \ifnum\l@dnumpstartsR>\l@dc@maxchunks
+ \led@err@TooManyPstarts
+ \global\l@dnumpstartsR=\l@dc@maxchunks
+ \fi
+ \global\setnamebox{l@dRcolrawbox\the\l@dnumpstartsR}=\vbox\bgroup\ifautopar\else\ifnumberpstart\ifsidepstartnum\else\thepstartR\fi\fi\fi%
+ \hsize=\Rcolwidth
+ \numberedpar@true}
+\newcommand*{\pendL}{\ifnumbering \else
+ \led@err@PendNotNumbered
+ \fi
+ \ifnumberedpar@ \else
+ \led@err@PendNoPstart
+ \fi
+ \l@dzeropenalties
+ \endgraf\global\num@lines=\prevgraf\egroup
+ \global\par@line=0
+ \endgroup
+ \ignorespaces
+ \@oldnobreak
+\ifnumberpstart
+\addtocounter{pstartL}{1}
+\fi}
+
+\newcommand*{\pendR}{\ifnumberingR \else
+ \led@err@PendNotNumbered
+ \fi
+ \ifnumberedpar@ \else
+ \led@err@PendNoPstart
+ \fi
+ \l@dzeropenalties
+ \endgraf\global\num@linesR=\prevgraf\egroup
+ \global\par@lineR=0
+ \endgroup
+ \ignorespaces
+ \@oldnobreak
+\ifnumberpstart
+\addtocounter{pstartR}{1}
+\fi
+}
+
+\newbox\l@dleftbox
+\newbox\l@drightbox
+
+\newcount\countLline
+ \countLline \z@
+\newcount\countRline
+ \countRline \z@
+
+\newcount\@donereallinesL
+\newcount\@donetotallinesL
+\newcount\@donereallinesR
+\newcount\@donetotallinesR
+
+\newcommand*{\do@lineL}{%
+ \advance\countLline \@ne
+ \ifvbox\namebox{l@dLcolrawbox\the\l@dpscL}%
+ {\vbadness=10000
+ \splittopskip=\z@
+ \do@lineLhook
+ \l@demptyd@ta
+ \global\setbox\one@line=\vsplit\namebox{l@dLcolrawbox\the\l@dpscL}
+ to\baselineskip}%
+ \unvbox\one@line \global\setbox\one@line=\lastbox
+ \getline@numL
+\ifnum\@lock>\@ne\inserthangingsymboltrue\else\inserthangingsymbolfalse\fi
+ \setbox\l@dleftbox
+ \hb@xt@ \Lcolwidth{%
+ \affixpstart@numL
+ \affixline@num
+ \l@dld@ta
+ \add@inserts
+ \affixside@note
+ \l@dlsn@te
+ {\ledllfill\hb@xt@ \wd\one@line{\inserthangingsymbolL\new@line\l@dunhbox@line{\one@line}}\correcthangingL\ledrlfill\l@drd@ta%
+ \l@drsn@te
+ }}%
+ \add@penaltiesL
+ \global\advance\@donereallinesL\@ne
+ \global\advance\@donetotallinesL\@ne
+\else
+ \setbox\l@dleftbox \hb@xt@ \Lcolwidth{\hspace*{\Lcolwidth}}%
+ \global\advance\@donetotallinesL\@ne
+\fi}
+
+\newcommand*{\do@lineLhook}{}
+\newcommand*{\do@lineRhook}{}
+
+\newcommand*{\do@lineR}{%
+ \advance\countRline \@ne
+ \ifvbox\namebox{l@dRcolrawbox\the\l@dpscR}%
+ {\vbadness=10000
+ \splittopskip=\z@
+ \do@lineRhook
+ \l@demptyd@ta
+ \global\setbox\one@lineR=\vsplit\namebox{l@dRcolrawbox\the\l@dpscR}
+ to\baselineskip}%
+ \unvbox\one@lineR \global\setbox\one@lineR=\lastbox
+ \getline@numR
+\ifnum\@lockR>\@ne\inserthangingsymbolRtrue\else\inserthangingsymbolRfalse\fi
+ \setbox\l@drightbox
+ \hb@xt@ \Rcolwidth{%
+ \affixpstart@numR
+ \affixline@numR
+ \l@dld@ta
+ \add@insertsR
+ \affixside@noteR
+ \l@dlsn@te
+ {\correcthangingR\ledllfill\hb@xt@ \wd\one@lineR{\inserthangingsymbolR\new@lineR\l@dunhbox@line{\one@lineR}}\ledrlfill\l@drd@ta%
+ \l@drsn@te
+ }}%
+ \add@penaltiesR
+ \global\advance\@donereallinesR\@ne
+ \global\advance\@donetotallinesR\@ne
+\else
+ \setbox\l@drightbox \hb@xt@ \Rcolwidth{\hspace*{\Rcolwidth}}
+ \global\advance\@donetotallinesR\@ne
+\fi}
+
+\newcommand*{\getline@numR}{%
+ \global\advance\absline@numR \@ne
+ \do@actionsR
+ \do@ballastR
+\ifnumberline
+ \ifsublines@
+ \ifnum\sub@lockR<\tw@
+ \global\advance\subline@numR \@ne
+ \fi
+ \else
+ \ifnum\@lockR<\tw@
+ \global\advance\line@numR \@ne
+ \global\subline@numR \z@
+ \fi
+ \fi
+\fi
+}
+\newcommand*{\getline@numL}{%
+\global\advance\absline@num \@ne
+ \do@actions
+ \do@ballast
+\ifnumberline
+ \ifsublines@
+ \ifnum\sub@lock<\tw@
+ \global\advance\subline@num \@ne
+ \fi
+ \else
+ \ifnum\@lock<\tw@
+ \global\advance\line@num \@ne
+ \global\subline@num \z@
+ \fi
+ \fi
+\fi
+}
+
+\newcommand*{\do@ballastR}{\global\ballast@count=\z@
+ \begingroup
+ \advance\absline@numR \@ne
+ \ifnum\next@actionlineR=\absline@numR
+ \ifnum\next@actionR>-1001
+ \global\advance\ballast@count by -\c@ballast
+ \fi
+ \fi
+ \endgroup}
+\newcommand*{\do@actions@fixedcodeR}{%
+ \ifcase\@l@dtempcnta%
+ \or% % 1001
+ \global\sublines@true
+ \or% % 1002
+ \global\sublines@false
+ \or% % 1003
+ \global\@lockR=\@ne
+ \or% % 1004
+ \ifnum\@lockR=\tw@
+ \global\@lockR=\thr@@
+ \else
+ \global\@lockR=\z@
+ \fi
+ \or% % 1005
+ \global\sub@lockR=\@ne
+ \or% % 1006
+ \ifnum\sub@lockR=\tw@
+ \global\sub@lockR=\thr@@
+ \else
+ \global\sub@lockR=\z@
+ \fi
+ \or% % 1007
+ \l@dskipnumbertrue
+ \else
+ \led@warn@BadAction
+ \fi}
+
+\newcommand*{\do@actionsR}{%
+ \global\let\do@actions@nextR=\relax
+ \@l@dtempcntb=\absline@numR
+ \ifnum\@l@dtempcntb<\next@actionlineR\else
+ \ifnum\next@actionR>-1001\relax
+ \global\page@numR=\next@actionR
+ \ifbypage@R
+ \global\line@numR \z@ \global\subline@numR \z@
+ \fi
+ \else
+ \ifnum\next@actionR<-4999\relax % 9/05 added relax here
+ \@l@dtempcnta=-\next@actionR
+ \advance\@l@dtempcnta by -5001\relax
+ \ifsublines@
+ \global\subline@numR=\@l@dtempcnta
+ \else
+ \global\line@numR=\@l@dtempcnta
+ \fi
+ \else
+ \@l@dtempcnta=-\next@actionR
+ \advance\@l@dtempcnta by -1000\relax
+ \do@actions@fixedcodeR
+ \fi
+ \fi
+ \ifx\actionlines@listR\empty
+ \gdef\next@actionlineR{1000000}%
+ \else
+ \gl@p\actionlines@listR\to\next@actionlineR
+ \gl@p\actions@listR\to\next@actionR
+ \global\let\do@actions@nextR=\do@actionsR
+ \fi
+ \fi
+ \do@actions@nextR}
+
+
+\providecommand*{\l@dcalcnum}[3]{%
+ \ifnum #1 > #2\relax
+ \@l@dtempcnta = #1\relax
+ \advance\@l@dtempcnta by -#2\relax
+ \divide\@l@dtempcnta by #3\relax
+ \multiply\@l@dtempcnta by #3\relax
+ \advance\@l@dtempcnta by #2\relax
+ \else
+ \@l@dtempcnta=#2\relax
+ \fi}
+
+\newcommand*{\ch@cksub@l@ckR}{%
+ \ifcase\sub@lockR
+ \or
+ \ifnum\sublock@disp=\@ne
+ \@l@dtempcntb \z@ \@l@dtempcnta \@ne
+ \fi
+ \or
+ \ifnum\sublock@disp=\tw@
+ \else
+ \@l@dtempcntb \z@ \@l@dtempcnta \@ne
+ \fi
+ \or
+ \ifnum\sublock@disp=\z@
+ \@l@dtempcntb \z@ \@l@dtempcnta \@ne
+ \fi
+ \fi}
+
+\newcommand*{\ch@ck@l@ckR}{%
+ \ifcase\@lockR
+ \or
+ \ifnum\lock@disp=\@ne
+ \@l@dtempcntb \z@ \@l@dtempcnta \@ne
+ \fi
+ \or
+ \ifnum\lock@disp=\tw@
+ \else
+ \@l@dtempcntb \z@ \@l@dtempcnta \@ne
+ \fi
+ \or
+ \ifnum\lock@disp=\z@
+ \@l@dtempcntb \z@ \@l@dtempcnta \@ne
+ \fi
+ \fi}
+
+\newcommand*{\f@x@l@cksR}{%
+ \ifcase\@lockR
+ \or
+ \global\@lockR \tw@
+ \or \or
+ \global\@lockR \z@
+ \fi
+ \ifcase\sub@lockR
+ \or
+ \global\sub@lockR \tw@
+ \or \or
+ \global\sub@lockR \z@
+ \fi}
+
+\newcommand*{\affixline@numR}{%
+\ifnumberline
+\ifl@dskipnumber
+ \global\l@dskipnumberfalse
+\else
+ \ifsublines@
+ \@l@dtempcntb=\subline@numR
+ \l@dcalcnum{\subline@numR}{\c@firstsublinenumR}{\c@sublinenumincrementR}%
+ \ch@cksub@lockR
+ \else
+ \@l@dtempcntb=\line@numR
+ \ifx\linenumberlist\empty
+ \l@dcalcnum{\line@numR}{\c@firstlinenumR}{\c@linenumincrementR}%
+ \else
+ \@l@dtempcnta=\line@numR
+ \edef\rem@inder{,\linenumberlist,\number\line@numR,}%
+ \edef\sc@n@list{\def\noexpand\sc@n@list
+ ####1,\number\@l@dtempcnta,####2|{\def\noexpand\rem@inder{####2}}}%
+ \sc@n@list\expandafter\sc@n@list\rem@inder|%
+ \ifx\rem@inder\empty\advance\@l@dtempcnta\@ne\fi
+ \fi
+ \ch@ck@l@ckR
+ \fi
+ \ifnum\@l@dtempcnta=\@l@dtempcntb
+ \if@twocolumn
+ \if@firstcolumn
+ \gdef\l@dld@ta{\llap{{\leftlinenumR}}}%
+ \else
+ \gdef\l@drd@ta{\rlap{{\rightlinenumR}}}%
+ \fi
+ \else
+ \@l@dtempcntb=\line@marginR
+ \ifnum\@l@dtempcntb>\@ne
+ \advance\@l@dtempcntb by\page@numR
+ \fi
+ \ifodd\@l@dtempcntb
+ \gdef\l@drd@ta{\rlap{{\rightlinenumR}}}%
+ \else
+ \gdef\l@dld@ta{\llap{{\leftlinenumR}}}%
+ \fi
+ \fi
+ \fi
+ \f@x@l@cksR
+\fi
+\fi}
+
+\newcommand*{\affixpstart@numL}{%
+\ifsidepstartnum
+\if@twocolumn
+ \if@firstcolumn
+ \gdef\l@dld@ta{\llap{{\leftpstartnumL}}}%
+ \else
+ \gdef\l@drd@ta{\rlap{{\rightpstartnumL}}}%
+ \fi
+ \else
+ \@l@dtempcntb=\line@margin
+ \ifnum\@l@dtempcntb>\@ne
+ \advance\@l@dtempcntb \page@num
+ \fi
+ \ifodd\@l@dtempcntb
+ \gdef\l@drd@ta{\rlap{{\rightpstartnumL}}}%
+ \else
+ \gdef\l@dld@ta{\llap{{\leftpstartnumL}}}%
+ \fi
+ \fi
+\fi
+}
+\newcommand*{\affixpstart@numR}{%
+\ifsidepstartnum
+\if@twocolumn
+ \if@firstcolumn
+ \gdef\l@dld@ta{\llap{{\leftpstartnumR}}}%
+ \else
+ \gdef\l@drd@ta{\rlap{{\rightpstartnumR}}}%
+ \fi
+ \else
+ \@l@dtempcntb=\line@marginR
+ \ifnum\@l@dtempcntb>\@ne
+ \advance\@l@dtempcntb \page@numR
+ \fi
+ \ifodd\@l@dtempcntb
+ \gdef\l@drd@ta{\rlap{{\rightpstartnumR}}}%
+ \else
+ \gdef\l@dld@ta{\llap{{\leftpstartnumR}}}%
+ \fi
+ \fi
+\fi
+}
+
+\newcommand*{\leftpstartnumL}{
+\ifpstartnum
+\thepstartL
+\kern\linenumsep\global\pstartnumfalse\fi
+}
+\newcommand*{\rightpstartnumL}{
+\ifpstartnum\kern\linenumsep
+\thepstartL
+\global\pstartnumfalse\fi
+}
+\newif\ifpstartnumR
+\pstartnumRtrue
+\newcommand*{\leftpstartnumR}{
+\ifpstartnumR
+\thepstartR
+\kern\linenumsep\global\pstartnumRfalse\fi
+}
+\newcommand*{\rightpstartnumR}{
+\ifpstartnumR\kern\linenumsep
+\thepstartR
+\global\pstartnumRfalse\fi
+}
+\list@create{\inserts@listR}
+\newcommand*{\add@insertsR}{%
+ \global\let\add@inserts@nextR=\relax
+ \ifx\inserts@listR\empty \else
+ \ifx\next@insertR\empty
+ \ifx\insertlines@listR\empty
+ \global\noteschanged@true
+ \gdef\next@insertR{100000}%
+ \else
+ \gl@p\insertlines@listR\to\next@insertR
+ \fi
+ \fi
+ \ifnum\next@insertR=\absline@numR
+ \gl@p\inserts@listR\to\@insertR
+ \@insertR
+ \global\let\@insertR=\undefined
+ \global\let\next@insertR=\empty
+ \global\let\add@inserts@nextR=\add@insertsR
+ \fi
+ \fi
+ \add@inserts@nextR}
+
+\newcommand*{\add@penaltiesL}{}
+\newcommand*{\add@penaltiesR}{}
+
+\newcommand*{\flush@notesR}{%
+ \@xloop
+ \ifx\inserts@listR\empty \else
+ \gl@p\inserts@listR\to\@insertR
+ \@insertR
+ \global\let\@insertR=\undefined
+ \repeat}
+
+\def\printlinesR#1|#2|#3|#4|#5|#6|#7|{\begingroup
+ \setprintlines{#1}{#2}{#3}{#4}{#5}{#6}%
+ \ifl@d@pnum #1\fullstop\fi
+ \ifledplinenum \linenumr@p{#2}\Rlineflag\else \symplinenum\fi
+ \ifl@d@ssub \fullstop \sublinenumr@p{#3}\fi
+ \ifl@d@dash \endashchar\fi
+ \ifl@d@pnum #4\fullstop\fi
+ \ifl@d@elin \linenumr@p{#5}\Rlineflag\fi
+ \ifl@d@esl \ifl@d@elin \fullstop\fi \sublinenumr@p{#6}\fi
+\endgroup}
+
+\let\ledsavedprintlines\printlines
+
+\list@create{\labelref@listR}
+
+\renewcommand*{\edlabel}[1]{\@bsphack
+ \ifledRcol
+ \write\linenum@outR{\string\@lab}%
+ \ifx\labelref@listR\empty
+ \xdef\label@refs{\zz@@@}%
+ \else
+ \gl@p\labelref@listR\to\label@refs
+ \fi
+ \ifvmode
+ \advancelabel@refs
+ \fi
+ \protected@write\@auxout{}%
+ {\string\l@dmake@labelsR\space\thepage|\label@refs|{#1}}%
+ \else
+ \write\linenum@out{\string\@lab}%
+ \ifx\labelref@list\empty
+ \xdef\label@refs{\zz@@@}%
+ \else
+ \gl@p\labelref@list\to\label@refs
+ \fi
+ \ifvmode
+ \advancelabel@refs
+ \fi
+ \protected@write\@auxout{}%
+ {\string\l@dmake@labels\space\thepage|\label@refs|{#1}}%
+ \fi
+ \@esphack}
+
+\def\l@dmake@labelsR#1|#2|#3|#4{%
+ \expandafter\ifx\csname the@label#4\endcsname \relax\else
+ \led@warn@DuplicateLabel{#4}%
+ \fi
+ \expandafter\gdef\csname the@label#4\endcsname{#1|#2\Rlineflag|#3}%
+ \ignorespaces}
+\AtBeginDocument{%
+ \def\l@dmake@labelsR#1|#2|#3|#4{}%
+}
+
+\renewcommand*{\@lab}{%
+ \ifledRcol
+ \xright@appenditem{\linenumr@p{\line@numR}|%
+ \ifsublines@ \sublinenumr@p{\subline@numR}\else 0\fi}%
+ \to\labelref@listR
+ \else
+ \xright@appenditem{\linenumr@p{\line@num}|%
+ \ifsublines@ \sublinenumr@p{\subline@num}\else 0\fi}%
+ \to\labelref@list
+ \fi}
+
+\newcount\sidenote@marginR
+\renewcommand*{\sidenotemargin}[1]{{%
+ \l@dgetsidenote@margin{#1}%
+ \ifnum\@l@dtempcntb>\m@ne
+ \ifledRcol
+ \global\sidenote@marginR=\@l@dtempcntb
+ \else
+ \global\sidenote@margin=\@l@dtempcntb
+ \fi
+ \fi}}
+\sidenotemargin{right}
+\global\sidenote@margin=\@ne
+
+\renewcommand*{\l@dlsnote}[1]{%
+ \ifnumberedpar@
+ \ifledRcol%
+ \xright@appenditem{\noexpand\vl@dlsnote{#1}}%
+ \to\inserts@listR
+ \else%
+ \xright@appenditem{\noexpand\vl@dlsnote{#1}}%
+ \to\inserts@list
+ \global\advance\insert@count \@ne%
+ \fi
+ \fi\ignorespaces}
+\renewcommand*{\l@drsnote}[1]{%
+ \ifnumberedpar@
+ \ifledRcol%
+ \xright@appenditem{\noexpand\vl@drsnote{#1}}%
+ \to\inserts@listR
+ \global\advance\insert@countR \@ne%
+ \else%
+ \xright@appenditem{\noexpand\vl@drsnote{#1}}%
+ \to\inserts@list
+ \global\advance\insert@count \@ne%
+ \fi
+ \fi\ignorespaces}
+\renewcommand*{\l@dcsnote}[1]{%
+ \ifnumberedpar@
+ \ifledRcol%
+ \xright@appenditem{\noexpand\vl@dcsnote{#1}}%
+ \to\inserts@listR
+ \global\advance\insert@countR \@ne%
+ \else%
+ \xright@appenditem{\noexpand\vl@dcsnote{#1}}%
+ \to\inserts@list
+ \global\advance\insert@count \@ne%
+ \fi
+ \fi\ignorespaces}
+
+\newcommand*{\affixside@noteR}{%
+ \gdef\@templ@d{}%
+ \ifx\@templ@d\l@dcsnotetext \else
+ \if@twocolumn
+ \if@firstcolumn
+ \setl@dlp@rbox{\l@dcsnotetext}%
+ \else
+ \setl@drp@rbox{\l@dcsnotetext}%
+ \fi
+ \else
+ \@l@dtempcntb=\sidenote@marginR
+ \ifnum\@l@dtempcntb>\@ne
+ \advance\@l@dtempcntb by\page@num
+ \fi
+ \ifodd\@l@dtempcntb
+ \setl@drp@rbox{\l@dcsnotetext}%
+ \else
+ \setl@dlp@rbox{\l@dcsnotetext}%
+ \fi
+ \fi
+ \fi}
+
+\renewcommand{\l@dbfnote}[1]{%
+ \ifnumberedpar@
+ \ifledRcol%
+ \xright@appenditem{\noexpand\vl@dbfnote{{#1}}{\@thefnmark}}%
+ \to\inserts@listR
+ \global\advance\insert@countR \@ne%
+ \else%
+ \xright@appenditem{\noexpand\vl@dbfnote{{#1}}{\@thefnmark}}%
+ \to\inserts@list
+ \global\advance\insert@count \@ne%
+ \fi
+ \fi\ignorespaces}
+
+\renewcommand{\normalbfnoteX}[2]{%
+ \ifnumberedpar@
+ \ifledRcol%
+ \xright@appenditem{\noexpand\vbfnoteX{#1}{#2}{\@nameuse{thefootnote#1}}}%
+ \to\inserts@listR
+ \global\advance\insert@countR \@ne%
+ \else%
+ \xright@appenditem{\noexpand\vbfnoteX{#1}{#2}{\@nameuse{thefootnote#1}}}%
+ \to\inserts@list
+ \global\advance\insert@count \@ne%
+ \fi
+ \fi\ignorespaces}
+
+
+\newif\ifinserthangingsymbolR
+\newcommand{\inserthangingsymbolL}{%
+\ifinserthangingsymbol%
+\ifinstanzaL%
+\hfill\hangingsymbol%
+\fi%
+\fi}
+\newcommand{\inserthangingsymbolR}{%
+\ifinserthangingsymbolR%
+\ifinstanzaR%
+\hfill\hangingsymbol%
+\fi%
+\fi}
+\newcommand{\correcthangingL}{%
+\ifl@dpaging\else%
+\ifinstanzaL%
+\ifinserthangingsymbol%
+\hskip \@ifundefined{sza@0@}{0}{\expandafter%
+ \noexpand\csname sza@0@\endcsname}\stanzaindentbase%
+\fi%
+\fi%
+\fi}
+
+\newcommand{\correcthangingR}{%
+\ifl@dpaging\else%
+\ifinstanzaR%
+\ifinserthangingsymbolR%
+\hskip \@ifundefined{sza@0@}{0}{\expandafter%
+ \noexpand\csname sza@0@\endcsname}\stanzaindentbase%
+\fi%
+\fi%
+\fi}
+ \chardef\next=\catcode`\&
+ \catcode`\&=\active
+
+\newenvironment{astanza}{%
+ \startstanzahook
+ \catcode`\&\active
+ \global\stanza@count\@ne
+ \ifnum\usenamecount{sza@0@}=\z@
+ \let\stanza@hang\relax
+ \let\endlock\relax
+ \else
+%%% \interlinepenalty\@M % this screws things up, but I don't know why
+ \rightskip\z@ plus 1fil\relax
+ \fi
+ \ifnum\usenamecount{szp@0@}=\z@
+ \let\sza@penalty\relax
+ \fi
+ \def&{%
+ \endlock\mbox{}%
+ \sza@penalty
+ \global\advance\stanza@count\@ne
+ \@astanza@line}%
+ \def\&{%
+ \endlock\mbox{}
+ \pend
+ \endstanzaextra}%
+ \pstart
+ \@astanza@line
+}{}
+
+\newcommand*{\@astanza@line}{%
+ \parindent=\csname sza@\number\stanza@count @\endcsname\stanzaindentbase
+ \par
+ \stanza@hang%\mbox{}%
+ \ignorespaces}
+
+ \catcode`\&=\next
+
+\providecommand*{\newnamebox}[1]{%
+ \expandafter\newbox\csname #1\endcsname}
+\providecommand*{\setnamebox}[1]{%
+ \expandafter\setbox\csname #1\endcsname}
+\providecommand*{\unhnamebox}[1]{%
+ \expandafter\unhbox\csname #1\endcsname}
+\providecommand*{\unvnamebox}[1]{%
+ \expandafter\unvbox\csname #1\endcsname}
+\providecommand*{\namebox}[1]{%
+ \csname #1\endcsname}
+
+\providecommand*{\newnamecount}[1]{%
+ \expandafter\newcount\csname #1\endcsname}
+\providecommand*{\usenamecount}[1]{%
+ \csname #1\endcsname}
+
+\newcount\l@dc@maxchunks
+\newcommand{\maxchunks}[1]{\l@dc@maxchunks=#1}
+ \maxchunks{5120}
+
+\newcount\l@dnumpstartsR
+
+\newcount\l@dpscL
+\newcount\l@dpscR
+
+\newcommand*{\l@dsetuprawboxes}{%
+ \@l@dtempcntb=\l@dc@maxchunks
+ \loop\ifnum\@l@dtempcntb>\z@
+ \newnamebox{l@dLcolrawbox\the\@l@dtempcntb}
+ \newnamebox{l@dRcolrawbox\the\@l@dtempcntb}
+ \advance\@l@dtempcntb \m@ne
+ \repeat}
+
+\newcommand*{\l@dsetupmaxlinecounts}{%
+ \@l@dtempcntb=\l@dc@maxchunks
+ \loop\ifnum\@l@dtempcntb>\z@
+ \newnamecount{l@dmaxlinesinpar\the\@l@dtempcntb}
+ \advance\@l@dtempcntb \m@ne
+ \repeat}
+\newcommand*{\l@dzeromaxlinecounts}{%
+ \begingroup
+ \@l@dtempcntb=\l@dc@maxchunks
+ \loop\ifnum\@l@dtempcntb>\z@
+ \global\usenamecount{l@dmaxlinesinpar\the\@l@dtempcntb}=\z@
+ \advance\@l@dtempcntb \m@ne
+ \repeat
+ \endgroup}
+
+\AtBeginDocument{%
+ \l@dsetuprawboxes
+ \l@dsetupmaxlinecounts
+ \l@dzeromaxlinecounts
+ \l@dnumpstartsL=\z@
+ \l@dnumpstartsR=\z@
+ \l@dpscL=\z@
+ \l@dpscR=\z@}
+
+\newif\ifl@dusedbabel
+ \l@dusedbabelfalse
+\newif\ifl@dsamelang
+ \l@dsamelangtrue
+\newcommand*{\l@dchecklang}{%
+ \l@dsamelangfalse
+ \edef\@tempa{\theledlanguageL}\edef\@temp{\theledlanguageR}%
+ \ifx\@tempa\@tempb
+ \l@dsamelangtrue
+ \fi}
+
+\newcommand*{\l@dbbl@set@language}[1]{%
+ \edef\languagename{#1}%
+ \select@language{\languagename}%
+ \if@filesw
+ \protected@write\@auxout{}{\string\select@language{\languagename}}%
+ \addtocontents{toc}{\string\select@language{\languagename}}%
+ \addtocontents{lof}{\string\select@language{\languagename}}%
+ \addtocontents{lot}{\string\select@language{\languagename}}%
+ \fi}
+
+\providecommand{\selectlanguage}[1]{}
+\newcommand*{\l@duselanguage}[1]{}
+\gdef\theledlanguageL{}
+\gdef\theledlanguageR{}
+
+\AtBeginDocument{%
+ \@ifundefined{xpg@main@language}{%
+ \@ifundefined{bbl@main@language}{%
+ \l@dusedbabelfalse
+ \renewcommand*{\selectlanguage}[1]{}}{%
+ \l@dusedbabeltrue
+ \let\l@doldselectlanguage\selectlanguage
+ \let\l@doldbbl@set@language\bbl@set@language
+ \let\bbl@set@language\l@dbbl@set@language
+ \renewcommand{\selectlanguage}[1]{%
+ \l@doldselectlanguage{#1}%
+ \ifledRcol \gdef\theledlanguageR{#1}%
+ \else \gdef\theledlanguageL{#1}%
+ \fi}
+ \renewcommand*{\l@duselanguage}[1]{%
+ \l@doldselectlanguage{#1}}
+ \gdef\theledlanguageL{\bbl@main@language}%
+ \gdef\theledlanguageR{\bbl@main@language}%
+ }%
+ }
+ { \apptocmd{\xpg@set@language}{%
+ \ifledRcol \gdef\theledlanguageR{#1}%
+ \else \gdef\theledlanguageL{#1}%
+ \fi}%
+ \let\l@duselanguage\xpg@set@language
+ \gdef\theledlanguageL{\xpg@main@language}%
+ \gdef\theledlanguageR{\xpg@main@language}%
+}}
+\newcommand*{\Columns}{%
+ \setcounter{pstartL}{\value{pstartLold}}
+ \setcounter{pstartR}{\value{pstartRold}}
+ \ifnum\l@dnumpstartsL=\l@dnumpstartsR\else
+ \led@err@BadLeftRightPstarts{\the\l@dnumpstartsL}{\the\l@dnumpstartsR}%
+ \fi
+ \begingroup
+ \l@dzeropenalties
+ \endgraf\global\num@lines=\prevgraf
+ \global\num@linesR=\prevgraf
+ \global\par@line=\z@
+ \global\par@lineR=\z@
+ \global\l@dpscL=\z@
+ \global\l@dpscR=\z@
+ \check@pstarts
+ \loop\if@pstarts
+ \global\pstartnumtrue
+ \global\pstartnumRtrue
+ \global\advance\l@dpscL \@ne
+ \global\advance\l@dpscR \@ne
+ \checkraw@text
+ \l@dchecklang
+{ \loop\ifaraw@text
+ \ifl@dsamelang
+ \do@lineL
+ \do@lineR
+ \else
+ \l@duselanguage{\theledlanguageL}%
+ \do@lineL
+ \l@duselanguage{\theledlanguageR}%
+ \do@lineR
+ \fi
+ \hb@xt@ \hsize{%
+ \hfill \unhbox\l@dleftbox
+ \hfill \columnseparator \hfill
+ \unhbox\l@drightbox
+ }%
+ \checkraw@text
+ \repeat}
+ \@writelinesinparL
+ \@writelinesinparR
+ \check@pstarts
+ \ifbypstart@
+ \write\linenum@out{\string\@set[1]}
+ \resetprevline@
+ \fi
+ \ifbypstart@R
+ \write\linenum@outR{\string\@set[1]}
+ \resetprevline@
+ \fi
+ \addtocounter{pstartL}{1}
+ \addtocounter{pstartR}{1}
+ \repeat
+ \flush@notes
+ \flush@notesR
+ \endgroup
+ \global\l@dpscL=\z@
+ \global\l@dpscR=\z@
+ \global\l@dnumpstartsL=\z@
+ \global\l@dnumpstartsR=\z@
+ \ignorespaces
+ \global\instanzaLfalse
+ \global\instanzaRfalse}
+
+\newcommand*{\columnseparator}{%
+ \smash{\rule[-0.2\baselineskip]{\columnrulewidth}{1.05\baselineskip}}}
+\newdimen\columnrulewidth
+ \columnrulewidth=\z@
+
+\newif\if@pstarts
+\newcommand*{\check@pstarts}{%
+ \@pstartsfalse
+ \ifnum\l@dnumpstartsL>\l@dpscL
+ \@pstartstrue
+ \else
+ \ifnum\l@dnumpstartsR>\l@dpscR
+ \@pstartstrue
+ \fi
+ \fi
+}
+
+\newif\ifaraw@text
+ \araw@textfalse
+\newcommand*{\checkraw@text}{%
+ \araw@textfalse
+ \ifvbox\namebox{l@dLcolrawbox\the\l@dpscL}
+ \araw@texttrue
+ \else
+ \ifvbox\namebox{l@dRcolrawbox\the\l@dpscR}
+ \araw@texttrue
+ \fi
+ \fi
+}
+
+\newcommand*{\@writelinesinparL}{%
+ \edef\next{%
+ \write\linenum@out{\string\@pend[\the\@donereallinesL]}}%
+ \next
+ \global\@donereallinesL \z@}
+\newcommand*{\@writelinesinparR}{%
+ \edef\next{%
+ \write\linenum@outR{\string\@pendR[\the\@donereallinesR]}}%
+ \next
+ \global\@donereallinesR \z@}
+
+\newcount\numpagelinesL
+\newcount\numpagelinesR
+\newcount\l@dminpagelines
+
+\newcommand*{\Pages}{%
+ \setcounter{pstartL}{\value{pstartLold}}
+ \setcounter{pstartR}{\value{pstartRold}}
+ \typeout{}
+ \typeout{*************************** PAGES ***************************}
+ \ifnum\l@dnumpstartsL=\l@dnumpstartsR\else
+ \led@err@BadLeftRightPstarts{\the\l@dnumpstartsL}{\the\l@dnumpstartsR}%
+ \fi
+ \cleartol@devenpage
+ \begingroup
+ \l@dzeropenalties
+ \endgraf\global\num@lines=\prevgraf
+ \global\num@linesR=\prevgraf
+ \global\par@line=\z@
+ \global\par@lineR=\z@
+ \global\l@dpscL=\z@
+ \global\l@dpscR=\z@
+ \writtenlinesLfalse
+ \writtenlinesRfalse
+ \check@pstarts
+ \loop\if@pstarts
+ \global\advance\l@dpscL \@ne
+ \global\advance\l@dpscR \@ne
+ \getlinesfromparlistL
+ \getlinesfromparlistR
+ \l@dcalc@maxoftwo{\@cs@linesinparL}{\@cs@linesinparR}%
+ {\usenamecount{l@dmaxlinesinpar\the\l@dpscL}}%
+ \check@pstarts
+ \repeat
+ \global\l@dpscL=\z@
+ \global\l@dpscR=\z@
+ \getlinesfrompagelistL
+ \getlinesfrompagelistR
+ \l@dcalc@minoftwo{\@cs@linesonpageL}{\@cs@linesonpageR}%
+ {\l@dminpagelines}%
+ \check@pstarts
+ \if@pstarts
+ \global\advance\l@dpscL \@ne
+ \global\advance\l@dpscR \@ne
+ \global\@donereallinesL=\z@
+ \global\@donetotallinesL=\z@
+ \global\@donereallinesR=\z@
+ \global\@donetotallinesR=\z@
+ \checkraw@text
+{ \loop\ifaraw@text
+ \checkpageL
+ \l@duselanguage{\theledlanguageL}%
+%%% \begingroup
+{ \loop\ifl@dsamepage
+
+ \do@lineL
+ \advance\numpagelinesL \@ne
+ \ifshiftedverses
+ \ifdim\ht\l@dleftbox>0pt\hb@xt@ \hsize{\ledstrutL\unhbox\l@dleftbox}\fi%
+ \else
+ \hb@xt@ \hsize{\ledstrutL\unhbox\l@dleftbox}%
+ \fi
+
+ \get@nextboxL
+ \checkpageL
+ \repeat
+ \ifl@dpagefull
+ \@writelinesonpageL{\the\numpagelinesL}%
+ \else
+ \@writelinesonpageL{1000}%
+ \fi
+ \numpagelinesL \z@
+ \clearl@dleftpage }%
+ \checkpageR
+ \l@duselanguage{\theledlanguageR}%
+{ \loop\ifl@dsamepage
+ \do@lineR
+ \advance\numpagelinesR \@ne
+ \ifshiftedverses
+ \ifdim\ht\l@drightbox>0pt\hb@xt@ \hsize{\ledstrutR\unhbox\l@drightbox}\fi%
+ \else
+ \hb@xt@ \hsize{\ledstrutR\unhbox\l@drightbox}%
+ \fi
+ \get@nextboxR
+ \checkpageR
+ \repeat
+ \ifl@dpagefull
+ \@writelinesonpageR{\the\numpagelinesR}%
+ \else
+ \@writelinesonpageR{1000}%
+ \fi
+ \numpagelinesR=\z@
+ \clearl@drightpage}
+ \checkraw@text
+ \ifaraw@text
+ \getlinesfrompagelistL
+ \getlinesfrompagelistR
+ \l@dcalc@minoftwo{\@cs@linesonpageL}{\@cs@linesonpageR}%
+ {\l@dminpagelines}%
+ \fi
+ \repeat}
+ \fi
+ \flush@notes
+ \flush@notesR
+ \endgroup
+ \global\l@dpscL=\z@
+ \global\l@dpscR=\z@
+ \global\l@dnumpstartsL=\z@
+ \global\l@dnumpstartsR=\z@
+ \global\instanzaLfalse
+ \global\instanzaRfalse
+ \ignorespaces}
+
+\newcommand*{\ledstrutL}{\strut}
+\newcommand*{\ledstrutR}{\strut}
+
+\providecommand{\cleartoevenpage}[1][\@empty]{%
+ \clearpage
+ \ifodd\c@page\hbox{}#1\clearpage\fi}
+\newcommand*{\cleartol@devenpage}{%
+ \ifdim\pagetotal<\topskip% on an empty page
+ \else
+ \clearpage
+ \fi
+ \ifodd\c@page\hbox{}\clearpage\fi}
+\newcommand*{\clearl@dleftpage}{%
+ \clearpage
+ \ifodd\c@page\else
+ \led@err@LeftOnRightPage
+ \hbox{}%
+ \cleardoublepage
+ \fi}
+\newcommand*{\clearl@drightpage}{%
+ \clearpage
+ \ifodd\c@page
+ \led@err@RightOnLeftPage
+ \hbox{}%
+ \cleartoevenpage
+ \fi}
+
+\newcommand*{\getlinesfromparlistL}{%
+ \ifx\linesinpar@listL\empty
+ \gdef\@cs@linesinparL{0}%
+ \else
+ \gl@p\linesinpar@listL\to\@cs@linesinparL
+ \fi}
+\newcommand*{\getlinesfromparlistR}{%
+ \ifx\linesinpar@listR\empty
+ \gdef\@cs@linesinparR{0}%
+ \else
+ \gl@p\linesinpar@listR\to\@cs@linesinparR
+ \fi}
+
+\newcommand*{\getlinesfrompagelistL}{%
+ \ifx\linesonpage@listL\empty
+ \gdef\@cs@linesonpageL{1000}%
+ \else
+ \gl@p\linesonpage@listL\to\@cs@linesonpageL
+ \fi}
+\newcommand*{\getlinesfrompagelistR}{%
+ \ifx\linesonpage@listR\empty
+ \gdef\@cs@linesonpageR{1000}%
+ \else
+ \gl@p\linesonpage@listR\to\@cs@linesonpageR
+ \fi}
+
+\newcommand*{\@writelinesonpageL}[1]{%
+ \edef\next{\write\linenum@out{\string\@lopL{#1}}}%
+ \next}
+\newcommand*{\@writelinesonpageR}[1]{%
+ \edef\next{\write\linenum@outR{\string\@lopR{#1}}}%
+ \next}
+
+\newcommand*{\l@dcalc@maxoftwo}[3]{%
+ \ifnum #2>#1\relax
+ #3=#2\relax
+ \else
+ #3=#1\relax
+ \fi}
+\newcommand*{\l@dcalc@minoftwo}[3]{%
+ \ifnum #2<#1\relax
+ #3=#2\relax
+ \else
+ #3=#1\relax
+ \fi}
+
+\newif\ifl@dsamepage
+ \l@dsamepagetrue
+\newif\ifl@dpagefull
+\newcommand*{\checkpageL}{%
+ \l@dpagefulltrue
+ \l@dsamepagetrue
+ \check@goal
+ \ifdim\pagetotal<\ledthegoal
+ \ifnum\numpagelinesL<\l@dminpagelines
+ \else
+ \l@dsamepagefalse
+ \l@dpagefullfalse
+ \fi
+ \else
+ \l@dsamepagefalse
+ \l@dpagefulltrue
+ \fi}
+\newcommand*{\checkpageR}{%
+ \l@dpagefulltrue
+ \l@dsamepagetrue
+ \check@goal
+ \ifdim\pagetotal<\ledthegoal
+ \ifnum\numpagelinesR<\l@dminpagelines
+ \else
+ \l@dsamepagefalse
+ \l@dpagefullfalse
+ \fi
+ \else
+ \l@dsamepagefalse
+ \l@dpagefulltrue
+ \fi}
+
+\newdimen\ledthegoal
+\ifshiftedverses
+ \newcommand*{\goalfraction}{0.95}
+\else
+ \newcommand*{\goalfraction}{0.9}
+\fi
+
+\newcommand*{\check@goal}{%
+ \ledthegoal=\goalfraction\pagegoal}
+
+\newif\ifwrittenlinesL
+\newif\ifwrittenlinesR
+
+\newcommand*{\get@nextboxL}{%
+ \ifvbox\namebox{l@dLcolrawbox\the\l@dpscL}% box is not empty
+ \else% box is empty
+ \ifnum\usenamecount{l@dmaxlinesinpar\the\l@dpscL}>\@donetotallinesL
+ \else
+ \ifwrittenlinesL
+ \else
+ \@writelinesinparL
+ \writtenlinesLtrue
+ \fi
+ \ifnum\l@dnumpstartsL>\l@dpscL
+ \writtenlinesLfalse
+ \ifbypstart@
+ \ifnum\value{pstartL}<\value{pstartLold}
+ \else
+ \global\line@num=0
+ \resetprevline@
+ \fi
+ \fi
+ \addtocounter{pstartL}{1}
+ \global\pstartnumtrue
+ \l@dcalc@maxoftwo{\the\usenamecount{l@dmaxlinesinpar\the\l@dpscL}}%
+ {\the\@donetotallinesL}%
+ {\usenamecount{l@dmaxlinesinpar\the\l@dpscL}}%
+ \global\@donetotallinesL \z@
+ \global\advance\l@dpscL \@ne
+ \fi
+ \fi
+ \fi}
+\newcommand*{\get@nextboxR}{%
+ \ifvbox\namebox{l@dRcolrawbox\the\l@dpscR}% box is not empty
+ \else% box is empty
+ \ifnum\usenamecount{l@dmaxlinesinpar\the\l@dpscR}>\@donetotallinesR
+ \else
+ \ifwrittenlinesR
+ \else
+ \@writelinesinparR
+ \writtenlinesRtrue
+ \fi
+ \ifnum\l@dnumpstartsR>\l@dpscR
+ \writtenlinesRfalse
+ \ifbypstart@R
+ \ifnum\value{pstartR}<\value{pstartRold}
+ \else
+ \global\line@numR=0
+ \resetprevline@
+ \fi
+ \fi
+ \addtocounter{pstartR}{1}
+ \global\pstartnumRtrue
+ \l@dcalc@maxoftwo{\the\usenamecount{l@dmaxlinesinpar\the\l@dpscR}}%
+ {\the\@donetotallinesR}%
+ {\usenamecount{l@dmaxlinesinpar\the\l@dpscR}}%
+ \global\@donetotallinesR \z@
+ \global\advance\l@dpscR \@ne
+ \fi
+ \fi
+ \fi}
+
+
+\endinput
+%%
+%% End of file `eledpar.sty'.