summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/tex/latex/reledmac/reledpar.sty
diff options
context:
space:
mode:
Diffstat (limited to 'Master/texmf-dist/tex/latex/reledmac/reledpar.sty')
-rw-r--r--Master/texmf-dist/tex/latex/reledmac/reledpar.sty2491
1 files changed, 2491 insertions, 0 deletions
diff --git a/Master/texmf-dist/tex/latex/reledmac/reledpar.sty b/Master/texmf-dist/tex/latex/reledmac/reledpar.sty
new file mode 100644
index 00000000000..c117a68534c
--- /dev/null
+++ b/Master/texmf-dist/tex/latex/reledmac/reledpar.sty
@@ -0,0 +1,2491 @@
+%%
+%% This is file `reledpar.sty',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% reledpar.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{reledpar}[2015/07/19 v2.0.0 reledmac extension for parallel texts]%
+
+\RequirePackage{xspace}%
+\newif\ifshiftedpstarts
+\DeclareOption{shiftedpstarts}{\shiftedpstartstrue}
+\DeclareOption{parledgroup}{\parledgrouptrue}
+\DeclareOption{widthliketwocolumns}{\widthliketwocolumnstrue}%
+\newif\ifsameparallelpagenumber%
+\DeclareOption{sameparallelpagenumber}{\sameparallelpagenumbertrue}%
+\ProcessOptions%
+\newdimen\Lcolwidth
+ \Lcolwidth=0.45\textwidth
+\newdimen\Rcolwidth
+ \Rcolwidth=0.45\textwidth
+\newcommand{\reledpar@error}[2]{\PackageError{reledpar}{#1}{#2}}
+\newcommand*{\led@err@TooManyPstarts}{%
+ \reledpar@error{Too many \string\pstart\space without printing.
+ Some text will be lost}{\@ehc}}
+\newcommand*{\led@err@BadLeftRightPstarts}[2]{%
+ \reledpar@error{The numbers of left (#1) and right (#2)
+ \string\pstart s do not match}{\@ehc}}
+\newcommand*{\led@err@LeftOnRightPage}{%
+ \reledpar@error{The left page has ended on a right page}{\@ehc}}
+\newcommand*{\led@err@RightOnLeftPage}{%
+ \reledpar@error{The right page has ended on a left page}{\@ehc}}
+\newcommand*{\led@err@Leftside@PreviousNotPrinted}{%
+ \reledpar@error{You call a new Leftside environment while the previous one has not been typeset by \string\Pages\space or \string\Columns}{\@ehc}}
+\newcommand*{\led@err@Rightside@PreviousNotPrinted}{%
+ \reledpar@error{You call a new Rightside environment while the previous one has not been typeset by \string\Pages\space or \string\Columns}{\@ehc}}
+\newcommand*{\led@err@Pages@InsideEnv}{%
+ \reledpar@error{\string\Pages\space must be called *outside* of the `pages` environment}{\@ehc}}
+\newcommand*{\led@err@Columns@InsideEnv}{%
+ \reledpar@error{\string\Columns\space must be called *outside* of the `pairs` environment}{\@ehc}}
+\newcommand{\led@error@fail@patch@thepage}{%
+ \reledpar@error{Fail to patch \string\@thepage\space command.}{\@ehc}%
+}%
+\newcommand{\led@error@fail@patch@pagenumbering}{%
+ \reledpar@error{Fail to patch \string\pagenumbering\space command.}{\@ehc}%
+}%
+\newcommand{\led@error@fail@patch@@outputpage}{%
+ \reledpar@error{Fail to patch \string\@outputpage\space command.}{\@ehc}%
+}%
+\newcount\section@numR
+ \section@numR=\z@
+ \pst@rtedLfalse
+\newif\ifpst@rtedR
+
+\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@
+ \gdef\normal@page@breakR{}
+ \gdef\l@prev@pbR{}
+ \gdef\l@prev@nopbR{}
+ \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}
+ \begingroup
+ \initnumbering@sectcountR
+ \gdef\eled@sectionsR@@{}%
+ \if@noeled@sec\else%
+ \makeatletter\InputIfFileExists{\jobname.eledsec\the\section@numR R}{}{}\makeatother%
+ \immediate\openout\eled@sectioningR@out=\jobname.eledsec\the\section@numR R\relax%
+ \fi%
+}
+\def\endnumberingR{%
+ \ifnumberingR
+ \global\numberingRfalse
+ \normal@pars
+ \ifnum\l@dnumpstartsR=0%
+ \led@err@NumberingWithoutPstart%
+ \fi%
+ \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
+ \endgroup
+ \if@noeled@sec\else%
+ \immediate\closeout\eled@sectioningR@out%
+ \fi%
+ }
+
+\newcounter{chapterR}
+\newcounter{sectionR}
+\newcounter{subsectionR}
+\newcounter{subsubsectionR}
+\newcommand{\initnumbering@sectcountR}{
+ \let\c@chapter\c@chapterR
+ \let\c@section\c@sectionR
+ \let\c@subsection\c@subsectionR
+ \let\c@subsubsection\c@subsubsectionR
+}
+\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
+ \begingroup%
+ \initnumbering@sectcountR%
+ \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}
+
+
+
+\newcommand*{\lineationR}[1]{{%
+ \ifnumbering
+ \led@err@LineationInNumbered
+ \else
+ \def\@tempa{#1}\def\@tempb{page}%
+ \ifx\@tempa\@tempb
+ \global\bypage@Rtrue
+ \global\bypstart@Rfalse
+ \unless\ifnocritical@%
+ \Xpstart[][false]%
+ \fi%
+ \else
+ \def\@tempb{pstart}%
+ \ifx\@tempa\@tempb
+ \global\bypage@Rfalse
+ \global\bypstart@Rtrue
+ \unless\ifnocritical@%
+ \Xpstart%
+ \fi%
+ \else
+ \def@tempb{section}
+ \ifx\@tempa\@tempb
+ \global\bypage@Rfalse%
+ \global\bypstart@Rfalse%
+ \unless\ifnocritical@%
+ \Xpstart[][false]%
+ \fi%
+ \else
+ \led@warn@BadLineation
+ \fi%
+ \fi
+ \fi
+ \fi}}
+\WithSuffix\newcommand\lineation*[1]{%
+ \lineation{#1}%
+ \lineationR{#1}%
+}%
+
+\newcount\line@marginR
+\line@marginR=\@ne
+
+\newcounter{firstlinenumR}
+ \setcounter{firstlinenumR}{5}
+\newcounter{linenumincrementR}
+ \setcounter{linenumincrementR}{5}
+\newcounter{firstsublinenumR}
+ \setcounter{firstsublinenumR}{5}
+\newcounter{sublinenumincrementR}
+ \setcounter{sublinenumincrementR}{5}
+
+\WithSuffix\newcommand\firstlinenum*[1]{%
+ \setcounter{firstlinenumR}{#1}%
+ \setcounter{firstlinenum}{#1}%
+}
+\WithSuffix\newcommand\linenumincrement*[1]{%
+ \setcounter{linenumincrementR}{#1}%
+ \setcounter{linenumincrement}{#1}%
+}
+\WithSuffix\newcommand\firstsublinenum*[1]{%
+ \setcounter{subfirstlinenumR}{#1}%
+ \setcounter{subfirstlinenum}{#1}%
+}
+\WithSuffix\newcommand\sublinenumincrement*[1]{%
+ \setcounter{sublinenumincrementR}{#1}%
+ \setcounter{sublinenumincrement}{#1}%
+}
+\newcommand{\setRlineflag}[1]{%
+ \gdef\@Rlineflag{#1}%
+}
+\setRlineflag{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}
+
+\newcount\page@numR
+
+\list@create{\linesinpar@listL}
+\list@create{\linesinpar@listR}
+\list@create{\maxlinesinpar@list}
+
+\newcommand{\list@clearing@regR}{%
+ \list@clear{\line@listR}%
+ \list@clear{\insertlines@listR}%
+ \list@clear{\actionlines@listR}%
+ \list@clear{\actions@listR}%
+ \list@clear{\linesinpar@listR}%
+ \list@clear{\linesonpage@listR}
+}
+\newcommand{\@nl@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}
+
+\newcount\last@page@numR
+ \last@page@numR=-10000
+
+
+
+
+\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}
+
+
+\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}
+
+\newcount\insert@countR
+\newcommand*{\@ref@regR}[2]{%
+ \global\advance\@edtext@level by 1%
+ \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\@lopR\@gobble
+ \let\page@action=\relax
+ \let\sub@action=\relax
+ \let\set@line@action=\relax
+ \let\@lab=\relax
+ \let\@lemma=\relax
+ \let\@sw\@gobblethree%
+ #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
+ \expandafter\list@create\expandafter{\csname sw@list@edtext@tmp@\the\@edtext@level\endcsname}%
+ \providebool{lemmacommand@\the\@edtext@level}%
+ \boolfalse{lemmacommand@\the\@edtext@level}%
+ #2
+ \ifnum\@edtext@level>0%
+ \def\create@this@edtext@level{\expandafter\list@create\expandafter{\csname sw@list@edtextR@\the\@edtext@level\endcsname}}%
+ \ifcsundef{sw@list@edtextR@\the\@edtext@level}{\create@this@edtext@level}{}%
+ \letcs{\@tmp}{sw@list@edtextR@\the\@edtext@level}%
+ \letcs{\@tmpp}{sw@list@edtext@tmp@\the\@edtext@level}%
+ \xright@appenditem{\expandonce\@tmpp}\to\@tmp%
+ \global\cslet{sw@list@edtextR@\the\@edtext@level}{\@tmp}%
+ \fi%
+ \global\advance\@edtext@level by -1%
+}
+\renewcommand*{\@pend}[1]{%
+ \ifbypstart@\global\line@num=0\fi%
+ \xright@appenditem{#1}\to\linesinpar@listL}
+\renewcommand*{\@pendR}[1]{%
+ \ifbypstart@R\global\line@numR=0\fi
+ \xright@appenditem{#1}\to\linesinpar@listR}
+
+\renewcommand*{\@lopL}[1]{%
+ \xright@appenditem{#1}\to\linesonpage@listL}
+\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
+ \immediate\write\linenum@outR{\string\line@list@version{\this@line@list@version}}%
+ \else
+ \if@minipage%
+ \leavevmode%
+ \fi%
+ \closeout\linenum@outR%
+ \openout\linenum@outR=#1%
+ \fi}
+
+\newcommand*{\new@lineL}{%
+ \write\linenum@out{\string\@nl[\the\c@page][\thepage]}}
+\newcommand*{\new@lineR}{%
+ \write\linenum@outR{\string\@nl[\the\c@page][\thepage]}}
+
+\newcommand{\newseries@par}[1]{%
+ \unless\ifnofamiliar@%
+ \csgdef{onlysideX@#1}{}%
+ \global\newbool{keepforsideX@#1}%
+ \fi%
+ \unless\ifnocritical@%
+ \global\newbool{keepforXside@#1}%
+ \csgdef{Xonlyside@#1}{}%
+ \fi%
+ \unless\ifnofamiliar@%
+ \expandafter\list@create\csname footnote#1@mk\endcsname%
+ \expandafter\newcommand\csname footnote#1nomk\endcsname[1]{%
+ \toggletrue{nomk@}%
+ \csuse{footnote#1}{##1}%
+ \togglefalse{nomk@}%
+ \letcs{\@tmp}{footnote#1@mk}%
+ \numdef\@tmpa{\csuse{c@footnote#1}}%
+ \global\xright@appenditem{\@tmpa}\to\@tmp%
+ \global\cslet{footnote#1@mk}{\@tmp}%
+ }%
+ \expandafter\newcommand\csname footnote#1mk\endcsname{%
+ \letcs{\@tmp}{footnote#1@mk}%
+ \gl@p\@tmp\to\@tmpa%
+ \global\cslet{footnote#1@mk}{\@tmp}%
+ \letcs{\old@footnote}{c@footnote#1}%
+ \setcounter{footnote#1}{\@tmpa}%
+ \protected@csxdef{@thefnmark#1}{\csuse{thefootnote#1}}%
+ \csuse{@footnotemark#1}%
+ \setcounter{footnote#1}{\old@footnote}%
+ \xspace%
+ }%
+ \fi
+}%
+\unless\ifnocritical@%
+ \newhookcommand@series{Xonlyside}%
+\fi%
+\unless\ifnofamiliar@%
+ \newhookcommand@series{onlysideX}%
+\fi
+
+\newcommand{\init@series@par}{%
+ \def\do##1{\newseries@par{##1}}%
+ \dolistloop{\@series}%
+}%
+\init@series@par%
+
+\list@create{\list@pstartL@pc}%
+\list@create{\list@pstartR@pc}%
+\def\dump@pstartL@pc{%
+ \xright@appenditem{\the\c@pstartL}\to\list@pstartL@pc%
+ \global\cslet{numberpstart@L\the\l@dnumpstartsL}{\ifnumberpstart}%
+}%
+
+\def\dump@pstartR@pc{%
+ \xright@appenditem{\the\c@pstartR}\to\list@pstartR@pc%
+ \global\cslet{numberpstart@R\the\l@dnumpstartsR}{\ifnumberpstart}%
+}%
+
+\def\restore@pstartL@pc{%
+ \ifx\list@pstartL@pc\empty\else%
+ \gl@p\list@pstartL@pc\to\@temp%
+ \global\c@pstartL=\@temp%
+ \fi%
+}%
+\def\restore@pstartR@pc{%
+ \ifx\list@pstartR@pc\empty\else%
+ \gl@p\list@pstartR@pc\to\@temp%
+ \global\c@pstartR=\@temp%
+ \fi%
+}%
+\newenvironment{pairs}{%}
+ \l@dpairingtrue
+ \l@dpagingfalse
+ \initnumbering@quote
+ \at@begin@pairs%
+}{%
+ \l@dpairingfalse
+}
+
+\newcommand{\AtBeginPairs}[1]{\xdef\at@begin@pairs{#1}}%
+\def\at@begin@pairs{}%
+
+\newenvironment{pages}{%
+ \l@dpairingtrue
+ \l@dpagingtrue
+ \initnumbering@quote
+ \setlength{\Lcolwidth}{\textwidth}%
+ \setlength{\Rcolwidth}{\textwidth}%
+}{%
+ \l@dpairingfalse
+ \l@dpagingfalse
+}
+
+ \newif\ifinstanzaL
+ \newif\ifinstanzaR
+\newenvironment{Leftside}{%
+ \expandafter\ifvoid\csname l@dLcolrawbox1\endcsname\else%
+ \led@err@Leftside@PreviousNotPrinted%
+ \fi%
+ \ledRcolfalse
+ \setcounter{pstartL}{1}
+ \let\pstart\pstartL
+ \let\thepstart\thepstartL
+ \let\pend\pendL
+ \let\memorydump\memorydumpL
+ \Leftsidehook
+ \let\old@startstanza\@startstanza
+ \def\@startstanza[##1]{\global\instanzaLtrue\old@startstanza[##1]}
+}{
+ \Leftsidehookend}
+\newcommand*{\Leftsidehook}{}
+\newcommand*{\Leftsidehookend}{}
+\newcommand*{\Rightsidehook}{}
+\newcommand*{\Rightsidehookend}{}
+
+\newenvironment{Rightside}{%
+ \expandafter\ifvoid\csname l@dRcolrawbox1\endcsname\else%
+ \led@err@Rightside@PreviousNotPrinted%
+ \fi%
+ \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\ledpb\ledpbR
+ \let\lednopb\lednopbR
+ \let\lineation\lineationR
+ \Rightsidehook
+ \let\old@startstanza\@startstanza
+ \def\@startstanza[##1]{\global\instanzaRtrue\old@startstanza[##1]}
+}{%
+ \ledRcolfalse
+ \Rightsidehookend
+}
+
+\newcount\num@linesR
+\newbox\one@lineR
+\newcount\par@lineR
+
+\newcounter{pstartL}
+\renewcommand{\thepstartL}{{\bfseries\@arabic\c@pstartL}. }
+\newcounter{pstartR}
+\renewcommand{\thepstartR}{{\bfseries\@arabic\c@pstartR}. }
+
+\newcommandx*{\pstartL}[1][1]{%
+ \if@nobreak%
+ \let\@oldnobreak\@nobreaktrue%
+ \else%
+ \let\@oldnobreak\@nobreakfalse%
+ \fi%
+ \@nobreaktrue%
+ \ifluatex%
+ \xdef\l@luatextextdir@L{\the\luatextextdir}%
+ \xdef\l@luatexpardir@L{\the\luatexpardir}%
+ \xdef\l@luatexbodydir@L{\the\luatexbodydir}%
+ \fi%
+ \ifnumbering \else%
+ \led@err@PstartNotNumbered%
+ \beginnumbering%
+ \fi%
+ \ifnumberedpar@%
+ \led@err@PstartInPstart%
+ \pend%
+ \fi%
+ \ifpst@rtedL\else%
+ \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%
+ \l@dzeropenalties%
+ \ifautopar\else%
+ \ifnumberpstart%
+ \ifsidepstartnum%
+ \else%
+ \thepstartL%
+ \fi%
+ \fi%
+ \fi%
+ \hsize=\Lcolwidth%
+ \numberedpar@true%
+ \iflabelpstart\protected@edef\@currentlabel%
+ {\p@pstartL\thepstartL}\fi%
+ \ifstrempty{#1}%
+ {\csgdef{before@pstartL@\the\l@dnumpstartsL}{\at@every@pstart}}%
+ {\csgdef{before@pstartL@\the\l@dnumpstartsL}{\noindent#1}}%
+ \at@every@pstart@call%
+ }
+\newcommandx*{\pstartR}[1][1]{%
+ \if@nobreak%
+ \let\@oldnobreak\@nobreaktrue%
+ \else%
+ \let\@oldnobreak\@nobreakfalse%
+ \fi%
+ \@nobreaktrue%
+ \ifluatex%
+ \xdef\l@luatextextdir@R{\the\luatextextdir}%
+ \xdef\l@luatexpardir@R{\the\luatexpardir}%
+ \xdef\l@luatexbodydir@R{\the\luatexbodydir}%
+ \fi%
+ \ifnumberingR \else%
+ \led@err@PstartNotNumbered%
+ \beginnumberingR%
+ \fi%
+ \ifnumberedpar@%
+ \led@err@PstartInPstart%
+ \pendR%
+ \fi%
+ \ifpst@rtedR\else%
+ \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%
+ \l@dzeropenalties%
+ \ifautopar\else%
+ \ifnumberpstart%
+ \ifsidepstartnum\else%
+ \thepstartR%
+ \fi%
+ \fi%
+ \fi%
+ \hsize=\Rcolwidth%
+ \numberedpar@true%
+ \iflabelpstart\protected@edef\@currentlabel%
+ {\p@pstartR\thepstartR}\fi%
+ \ifstrempty{#1}%
+ {\csgdef{before@pstartR@\the\l@dnumpstartsR}{\at@every@pstart}}%
+ {\csgdef{before@pstartR@\the\l@dnumpstartsR}{\noindent#1}}%
+ \at@every@pstart@call%
+ }
+\newcommandx*{\pendL}[1][1]{%
+ \ifnumbering \else%
+ \led@err@PendNotNumbered%
+ \fi%
+ \ifnumberedpar@ \else%
+ \led@err@PendNoPstart%
+ \fi%
+ \endgraf\global\num@lines=\prevgraf\egroup%
+ \global\par@line=0%
+ \endgroup%
+ \ignorespaces%
+ \@oldnobreak%
+ \dump@pstartL@pc%
+ \ifnumberpstart%
+ \addtocounter{pstartL}{1}%
+ \fi
+ \parledgroup@beforenotes@save{L}%
+ \ifstrempty{#1}%
+ {\csgdef{after@pendL@\the\l@dnumpstartsL}{\at@every@pend}}%
+ {\csgdef{after@pendL@\the\l@dnumpstartsL}{\noindent#1}}%
+ }
+\newcommandx*{\pendR}[1][1]{%
+ \ifnumberingR \else%
+ \led@err@PendNotNumbered%
+ \fi%
+ \ifnumberedpar@ \else%
+ \led@err@PendNoPstart%
+ \fi%
+ \endgraf\global\num@linesR=\prevgraf\egroup%
+ \global\par@lineR=0%
+ \endgroup%
+ \ignorespaces%
+ \@oldnobreak%
+ \dump@pstartR@pc%
+ \ifnumberpstart%
+ \addtocounter{pstartR}{1}%
+ \fi%
+ \parledgroup@beforenotes@save{R}%
+ \ifstrempty{#1}%
+ {\csgdef{after@pendR@\the\l@dnumpstartsR}{\at@every@pend}}%
+ {\csgdef{after@pendR@\the\l@dnumpstartsR}{\noindent#1}}%
+}
+
+\newcommand{\AtEveryPstartCall}[1]{\gdef\at@every@pstart@call{#1}}%
+\gdef\at@every@pstart@call{}%
+\newif\ifprint@last@after@pendL%
+\newif\ifprint@last@after@pendR%
+\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}{%
+ \letcs{\ifnumberpstart}{numberpstart@L\the\l@dpscL}%
+ \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}%
+ \IfStrEq{\splitfirstmarks\parledgroup@}{begin}{\parledgroup@notes@startL}{}%
+ \unvbox\one@line \global\setbox\one@line=\lastbox%
+ \getline@numL%
+ \ifnum\@lock>\@ne%
+ \inserthangingsymboltrue%
+ \else%
+ \inserthangingsymbolfalse%
+ \fi%
+ \setbox\l@dleftbox%
+ \hb@xt@ \Lcolwidth{%
+ \ifl@dhidenumber%
+ \global\l@dhidenumberfalse%
+ \f@x@l@cks%
+ \else%
+ \affixline@num%
+ \fi%
+ \xifinlist{\the\l@dpscL}{\eled@sections@@}%
+ {\add@inserts\affixside@note}%
+ {\print@lineL}}%
+ \add@penaltiesL%
+ \global\advance\@donereallinesL\@ne%
+ \global\advance\@donetotallinesL\@ne%
+\else%
+ \setbox\l@dleftbox \hb@xt@ \Lcolwidth{\hspace*{\Lcolwidth}}%
+ \global\advance\@donetotallinesL\@ne%
+\fi}
+
+\def\print@lineL{%
+ \affixpstart@numL%
+ \l@dld@ta %space kept for backward compatibility
+ \add@inserts\affixside@note%
+ \l@dlsn@te %space kept for backward compatibility
+ {\ledllfill\hb@xt@ \Lcolwidth{%
+ \do@insidelineLhook%
+ \ifluatex%
+ \luatextextdir\l@luatextextdir@L%
+ \fi%
+ \new@lineL%
+ \inserthangingsymbolL%
+ \l@dunhbox@line{\one@line}}\ledrlfill\l@drd@ta%
+ \l@drsn@te}}
+
+\def\print@eledsectionL{%%
+ \addtocounter{pstartL}{-1}%
+ \ifdefstring{\@eledsectnotoc}{L}{\ledsectnotoc}{}
+ \ifdefstring{\@eledsectmark}{L}{}{\ledsectnomark}
+ \numdef{\temp@}{\l@dpscL-1}%
+ \xifinlist{\temp@}{\eled@sections@@}{\@nobreaktrue}{\@nobreakfalse}%
+ \@eled@sectioningtrue%
+ \bgroup%
+ \ifluatex%
+ \luatextextdir\l@luatextextdir@L%
+ \luatexpardir\l@luatexpardir@L%
+ \luatexbodydir\l@luatexbodydir@L%
+ \ifdefstring{\l@luatextextdir@L}{TRT}{\@RTLtrue}{}%
+ \fi%
+ \csuse{eled@sectioning@\the\l@dpscL}%
+ \egroup%
+ \@eled@sectioningfalse%
+ \global\csundef{eled@sectioning@\the\l@dpscL}%
+ \if@RTL%
+ \hspace{-3\paperwidth}%
+ {\hbox{\l@dunhbox@line{\one@line}} \new@line}%
+ \else%
+ \hspace{3\paperwidth}%
+ {\new@line \hbox{\l@dunhbox@line{\one@line}}}%
+ \fi%
+ \vskip\eledsection@correcting@skip%
+}
+
+\newcommand*{\dolineLhook}[1]{\gdef\do@lineLhook{#1}}%
+\newcommand*{\dolineRhook}[1]{\gdef\do@lineRhook{#1}}%
+\newcommand*{\doinsidelineLhook}[1]{\gdef\do@insidelineLhook{#1}}%
+\newcommand*{\doinsidelineRhook}[1]{\gdef\do@insidelineRhook{#1}}%
+
+\newcommand*{\do@lineLhook}{}
+\newcommand*{\do@lineRhook}{}
+\newcommand*{\do@insidelineLhook}{}
+\newcommand*{\do@insidelineRhook}{}
+
+\newcommand*{\do@lineR}{%
+ \letcs{\ifnumberpstart}{numberpstart@R\the\l@dpscR}%
+ \ledRcol@true%
+ \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}%
+ \IfStrEq{\splitfirstmarks\parledgroup@}{begin}{\parledgroup@notes@startR}{}%
+ \unvbox\one@lineR \global\setbox\one@lineR=\lastbox%
+ \getline@numR%
+ \ifnum\@lockR>\@ne%
+ \inserthangingsymbolRtrue%
+ \else%
+ \inserthangingsymbolRfalse%
+ \fi%
+ \setbox\l@drightbox%
+ \hb@xt@ \Rcolwidth{%
+ \ifl@dhidenumber%
+ \global\l@dhidenumberfalse%
+ \f@x@l@cksR%
+ \else%
+ \affixline@numR%
+ \fi%
+ \xifinlist{\the\l@dpscR}{\eled@sectionsR@@}%
+ {\add@insertsR\affixside@noteR}%
+ {\print@lineR}%
+ }%
+ \add@penaltiesR%
+ \global\advance\@donereallinesR\@ne%
+ \global\advance\@donetotallinesR\@ne%
+\else%
+ \setbox\l@drightbox \hb@xt@ \Rcolwidth{\hspace*{\Rcolwidth}}%
+ \global\advance\@donetotallinesR\@ne%
+\fi%
+\ledRcol@false%
+}
+
+\def\print@lineR{%
+ \affixpstart@numR%
+ \l@dld@ta %space kept for backward compatibility
+ \add@insertsR\affixside@noteR%
+ \l@dlsn@te %space kept for backward compatibility
+ \ledllfill\hb@xt@ \Rcolwidth{%
+ \do@insidelineRhook%
+ \new@lineR%
+ \inserthangingsymbolR%
+ \ifluatex%
+ \luatextextdir\l@luatextextdir@R%
+ \fi%
+ \l@dunhbox@line{\one@lineR}}\ledrlfill\l@drd@ta%
+ \l@drsn@te%
+ }
+
+\def\print@eledsectionR{%
+ \addtocounter{pstartR}{-1}%
+ \initnumbering@sectcountR%
+ \ifdefstring{\@eledsectnotoc}{R}{\ledsectnotoc}{}%
+ \ifdefstring{\@eledsectmark}{R}{}{\ledsectnomark}%
+ \numdef{\temp@}{\l@dpscR-1}%
+ \xifinlist{\temp@}{\eled@sectionsR@@}{\@nobreaktrue}{\@nobreakfalse}%
+ \@eled@sectioningtrue%
+ \bgroup%
+ \ifluatex%
+ \luatextextdir\l@luatextextdir@R%
+ \luatexpardir\l@luatexpardir@R%
+ \luatexbodydir\l@luatexbodydir@R%
+ \ifdefstring{\l@luatextextdir@L}{TRT}{\@RTLtrue}{}%
+ \fi%
+ \csuse{eled@sectioning@\the\l@dpscR R}%
+ \egroup%
+ \@eled@sectioningfalse%
+ \global\csundef{eled@sectioning@\the\l@dpscR R}%
+ \if@RTL%
+ \hspace{-\paperwidth}%
+ {\hbox{\l@dunhbox@line{\one@lineR}} \new@lineR}%
+ \else%
+ \hspace{\paperwidth}%
+ {\new@lineR \hbox{\l@dunhbox@line{\one@lineR}}}%
+ \fi%
+ \vskip\eledsection@correcting@skip
+}
+\newcommand*{\getline@numR}{%
+ \global\advance\absline@numR \@ne
+ \do@actionsR
+ \do@ballastR
+ \ifledgroupnotesR@\else
+ \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
+ \fi
+}
+\newcommand*{\getline@numL}{%
+ \global\advance\absline@num \@ne
+ \do@actions
+ \do@ballast
+ \ifledgroupnotesL@\else
+ \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
+ \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}
+
+\newif\ifl@dskipversenumberR
+\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
+ \or% % 1008
+ \l@dskipversenumberRtrue%
+ \or% % 1009
+ \l@dhidenumbertrue%
+ \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}
+
+
+\newcommand*{\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}{%
+\ifledgroupnotesR@\else\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
+ \ifl@dskipversenumberR\else
+ \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
+ \fi
+ \f@x@l@cksR
+\fi
+\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}
+
+\newcommand\print@Xnotes@forpages[1]{%
+ \ifcsempty{Xonlyside@#1}{%
+ \csuse{#1footstart}{#1}%
+ \csuse{#1footgroup}{#1}%
+ }%
+ {%
+ \ifboolexpr{%
+ ((test {\ifcsstring{Xonlyside@#1}{L}} and not test{\ifnumodd{\c@page}})%
+ or%
+ (test {\ifcsstring{Xonlyside@#1}{R}} and test{\ifnumodd{\c@page}}))%
+ }%
+ {%
+ \correct@Xfootins@box{#1}%
+ \csuse{#1footstart}{#1}%
+ \csuse{#1footgroup}{#1}%
+ \global\count\csuse{#1footins}=0%
+ \global\skip\csuse{#1footins}=0pt%
+ \csuse{Xnotefontsize@#1}%
+ \global\advance\dimen\csuse{#1footins} by -\baselineskip%
+ \global\boolfalse{keepforXside@#1}%
+ }%
+ {%
+ \global\booltrue{keepforXside@#1}%
+ \global\count\csuse{#1footins}=\csuse{default@#1footins}%
+ \global\skip\csuse{#1footins}=\csuse{Xbeforenotes@#1}%
+ \bgroup%
+ \csuse{Xnotefontsize@#1}%
+ \global\advance\dimen\csuse{#1footins} by \baselineskip%
+ \egroup%
+ }%
+ }%
+}%
+\newcommand{\correct@Xfootins@box}[1]{%
+ \ifbool{keepforXside@#1}{%
+ \csuse{Xnotefontsize@#1}%
+ \splittopskip=0pt%
+ \global\setbox\csuse{#1footins}=\vbox{%
+ \vsplit\csuse{#1footins} to \dimexpr\ht\csuse{#1footins}-1pt\relax%
+ \vskip \dimexpr-0.5\baselineskip-0.5\lineskip-0.5pt\relax%
+ \unvbox\csuse{#1footins}%
+ }%
+ }{}%
+}%
+\newcommand\print@notesX@forpages[1]{%
+ \ifcsempty{onlysideX@#1}{%
+ \csuse{footstart#1}{#1}%
+ \csuse{footgroup#1}{#1}%
+ }%
+ {%
+ \ifboolexpr{%
+ ((test {\ifcsstring{onlysideX@#1}{L}} and not test{\ifnumodd{\c@page}})%
+ or%
+ (test {\ifcsstring{onlysideX@#1}{R}} and test{\ifnumodd{\c@page}}))%
+ }%
+ {%
+ \correct@footinsX@box{#1}%
+ \csuse{footstart#1}{#1}%
+ \csuse{footgroup#1}{#1}%
+ \global\count\csuse{footins#1}=0%
+ \global\skip\csuse{footins#1}=0pt%
+ \csuse{notefontsizeX@#1}%
+ \global\advance\dimen\csuse{footins#1} by -\baselineskip%
+ \global\boolfalse{keepforsideX@#1}%
+ }%
+ {%
+ \global\booltrue{keepforsideX@#1}%
+ \global\count\csuse{footins#1}=\csuse{default@footins#1}%
+ \global\skip\csuse{footins#1}=\csuse{beforenotesX@#1}%
+ \bgroup%
+ \csuse{notefontsizeX@#1}%
+ \global\advance\dimen\csuse{footins#1} by \baselineskip%
+ \egroup%
+ }%
+ }%
+}%
+\newcommand{\correct@footinsX@box}[1]{%
+ \ifbool{keepforsideX@#1}{%
+ \csuse{notefontsizeX@#1}%
+ \splittopskip=0pt%
+ \global\setbox\csuse{footins#1}=\vbox{%
+ \vsplit\csuse{footins#1} to \dimexpr\ht\csuse{footins#1}-1pt\relax%
+ \vskip \dimexpr-0.5\baselineskip-0.5\lineskip-0.5pt\relax%
+ \unvbox\csuse{footins#1}%
+ }%
+ }{}%
+}%
+\list@create{\labelref@listR}
+
+\def\l@dmake@labelsR#1|#2|#3|#4|#5{%
+ \expandafter\ifx\csname the@label#5\endcsname \relax\else
+ \led@warn@DuplicateLabel{#4}%
+ \fi
+ \expandafter\gdef\csname the@label#5\endcsname{#1|#2\@Rlineflag|#3|#4}%
+ \ignorespaces}
+\AtBeginDocument{%
+ \def\l@dmake@labelsR#1|#2|#3|#4|#5{}%
+}
+
+\WithSuffix\newcommand\sidenotemargin*[1]{%
+ \l@dgetsidenote@margin{#1}
+ \global\sidenote@marginR=\@l@dtempcntb
+ \global\sidenote@margin=\@l@dtempcntb
+}
+\newcount\sidenote@marginR
+\global\sidenote@margin=\@ne
+
+
+\newcommand*{\affixside@noteR}{%
+ \def\sidenotecontent@{}%
+ \numgdef{\itemcount@}{0}%
+ \def\do##1{%
+ \ifnumequal{\itemcount@}{0}%
+ {%
+ \appto\sidenotecontent@{##1}}% Not print not separator before the 1st note
+ {\appto\sidenotecontent@{\sidenotesep ##1}%
+ }%
+ \numgdef{\itemcount@}{\itemcount@+1}%
+ }%
+ \dolistloop{\l@dcsnotetext}%
+ \ifnumgreater{\itemcount@}{1}{\led@err@ManySidenotes}{}%
+ \gdef\@templ@d{}%
+ \gdef\@templ@n{\l@dcsnotetext\l@dcsnotetext@l\l@dcsnotetext@r}%
+ \ifx\@templ@d\@templ@n \else%
+ \if@twocolumn%
+ \if@firstcolumn%
+ \setl@dlp@rbox{##1}{\sidenotecontent@}%
+ \else%
+ \setl@drp@rbox{\sidenotecontent@}%
+ \fi%
+ \else%
+ \@l@dtempcntb=\sidenote@marginR%
+ \ifnum\@l@dtempcntb>\@ne%
+ \advance\@l@dtempcntb by\page@numR%
+ \fi%
+ \ifodd\@l@dtempcntb%
+ \setl@drp@rbox{\sidenotecontent@}%
+ \gdef\sidenotecontent@{}%
+ \numdef{\itemcount@}{0}%
+ \dolistloop{\l@dcsnotetext@l}%
+ \ifnumgreater{\itemcount@}{1}{\led@err@ManyLeftnotes}{}%
+ \setl@dlp@rbox{\sidenotecontent@}%
+ \else%
+ \setl@dlp@rbox{\sidenotecontent@}%
+ \gdef\sidenotecontent@{}%
+ \numdef{\itemcount@}{0}%
+ \dolistloop{\l@dcsnotetext@r}%
+ \ifnumgreater{\itemcount@}{1}{\led@err@ManyRightnotes}{}%
+ \setl@drp@rbox{\sidenotecontent@}%
+ \fi%
+ \fi%
+ \fi%
+}
+
+
+\newif\ifinserthangingsymbolR
+\newcommand{\inserthangingsymbolL}{%
+ \ifinserthangingsymbol%
+ \ifinstanzaL%
+ \hskip \@ifundefined{sza@0@}{0}{\expandafter%
+ \noexpand\csname sza@0@\endcsname}\stanzaindentbase%
+ \@hangingsymbol%
+ \fi%
+ \fi%
+}%
+\newcommand{\inserthangingsymbolR}{%
+ \ifinserthangingsymbolR%
+ \ifinstanzaR%
+ \hskip \@ifundefined{sza@0@}{0}{\expandafter%
+ \noexpand\csname sza@0@\endcsname}\stanzaindentbase%
+ \@hangingsymbol%
+ \fi%
+ \fi%
+}%
+
+ \chardef\next=\catcode`\&
+ \catcode`\&=\active
+
+\newenvironment{astanza}{%
+ \catcode`\&\active
+ \global\stanza@count\@ne\stanza@modulo\@ne
+ \ifnum\usenamecount{sza@0@}=\z@
+ \let\stanza@hang\relax
+ \let\endlock\relax
+ \else
+ \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\&{\@stopastanza}%
+ \pstart
+ \@astanza@line
+}{}
+
+\newcommandx{\@stopastanza}[1][1,usedefault]{%
+ \endlock\mbox{}%
+ \pend[#1]%
+}%
+\newcommand*{\@astanza@line}{%
+ \ifnum\value{stanzaindentsrepetition}=0
+ \parindent=\csname sza@\number\stanza@count
+ @\endcsname\stanzaindentbase
+ \else
+ \parindent=\csname sza@\number\stanza@modulo
+ @\endcsname\stanzaindentbase
+ \managestanza@modulo
+ \fi
+ \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}
+
+\newif\ifl@dusedbabel
+\patchcmd{\bbl@set@language}%
+ {\select@language{\languagename}}%
+ {\edef\languagename{#1}\select@language{\languagename}}%
+ {}%
+ {}%
+
+\newcommand*{\l@duselanguage}[1]{}
+\gdef\theledlanguageL{}
+\gdef\theledlanguageR{}
+
+\AtBeginDocument{%
+ \@ifundefined{xpg@main@language}{%
+ \@ifundefined{bbl@main@language}{%
+ \l@dusedbabelfalse
+ }{%
+ \l@dusedbabeltrue
+ \let\l@doldselectlanguage\selectlanguage
+ \let\l@doldbbl@set@language\bbl@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}%
+ }%
+ }
+ { \let\old@otherlanguage\otherlanguage%
+ \renewcommand{\otherlanguage}[2][]{%
+ \selectlanguage[#1]{#2}%
+ \ifledRcol \gdef\theledlanguageR{#2}%
+ \else \gdef\theledlanguageL{#2}%
+ \fi}%
+ \let\l@duselanguage\select@language%
+ \gdef\theledlanguageL{\xpg@main@language}%
+ \gdef\theledlanguageR{\xpg@main@language}%
+}}
+\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\if@pstarts
+\newcommand*{\check@pstarts}{%
+ \@pstartsfalse
+ \ifnum\l@dnumpstartsL>\l@dpscL
+ \@pstartstrue
+ \else
+ \ifnum\l@dnumpstartsR>\l@dpscR
+ \@pstartstrue
+ \fi
+ \fi
+}
+
+\newif\ifaraw@text
+\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@}
+
+\newsavebox{\@eledsectionL}%
+\newsavebox{\@eledsectionR}%
+\newcommand*{\Columns}{%
+ \ifl@dpairing%
+ \led@err@Columns@InsideEnv%
+ \fi%
+ \l@dprintingcolumnstrue%
+ \eledsection@correcting@skip=-\baselineskip% Correction for sections' titles
+ \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
+ \restore@pstartL@pc%
+ \restore@pstartR@pc%
+ \Columns@print@before@pstart%
+ \checkraw@text
+{ \loop\ifaraw@text
+ \l@duselanguage{\theledlanguageL}%
+ \do@lineL
+ \xifinlist{\the\l@dpscL}{\eled@sections@@}
+ {%
+ \ifdefstring{\@eledsectmark}{L}%
+ {\csuse{eled@sectmark@\the\l@dpscL}%
+ }{}%
+ \global\csundef{eled@sectmark@\the\l@dpscL}%
+ \savebox{\@eledsectionL}{\parbox[t][][t]{\Lcolwidth}{\vbox{}\print@eledsectionL}}%\vbox{}-> prevent alignment troubles with RTL language
+ }%
+ {}%
+ \l@duselanguage{\theledlanguageR}%
+ \do@lineR
+ \xifinlist{\the\l@dpscR}{\eled@sectionsR@@}
+ {%
+ \ifdefstring{\@eledsectmark}{R}%
+ {\csuse{eled@sectmark@\the\l@dpscR R}%
+ }{}%
+ \global\csundef{eled@sectmark@\the\l@dpscR R}%
+ \savebox{\@eledsectionR}{\parbox[t][][t]{\Rcolwidth}{\vbox{}\print@eledsectionR}}}%\vbox{}-> prevent alignment troubles with RTL language
+ {}%
+ \hb@xt@ \hsize{%
+ \ifdefstring{\columns@position}{L}{}{\hfill }%
+ \unhbox\l@dleftbox%
+ \ifhbox\@eledsectionL%
+ \usebox{\@eledsectionL}%
+ \fi%
+ \print@columnseparator%
+ \unhbox\l@drightbox%
+ \ifhbox\@eledsectionR%
+ \usebox{\@eledsectionR}%
+ \fi%
+ \ifdefstring{\columns@position}{R}{}{\hfill}%
+ }%
+ \checkraw@text
+ \checkverseL
+ \checkverseR
+ \checkpb@columns
+ \repeat}
+ \@writelinesinparL
+ \@writelinesinparR
+ \check@pstarts
+ \ifbypstart@%
+ \write\linenum@out{\string\@set[1]}
+ \resetprevline@
+ \fi
+ \ifbypstart@R
+ \write\linenum@outR{\string\@set[1]}
+ \resetprevline@
+ \fi
+ \Columns@print@after@pend%
+ \repeat
+ \flush@notes
+ \flush@notesR
+ \endgroup
+ \global\l@dpscL=\z@
+ \global\l@dpscR=\z@
+ \global\l@dnumpstartsL=\z@
+ \global\l@dnumpstartsR=\z@
+ \l@dprintingcolumnsfalse%
+ \ignorespaces
+ \global\instanzaLfalse
+ \global\instanzaRfalse}
+
+\def\print@columnseparator{%
+ \ifdim\beforecolumnseparator<0pt%
+ \hfill%
+ \else%
+ \hspace{\beforecolumnseparator}%
+ \fi%
+ \columnseparator%
+ \ifdim\aftercolumnseparator<0pt%
+ \hfill%
+ \else%
+ \hspace{\beforecolumnseparator}%
+ \fi%
+}%
+
+\newcommand{\checkpb@columns}{%
+ \newif\if@pb
+ \newif\if@nopb
+ \IfStrEq{\led@pb@setting}{before}{
+ \numdef{\next@absline}{\the\absline@num+1}%
+ \numdef{\next@abslineR}{\the\absline@numR+1}%
+ \xifinlistcs{\next@absline}{l@prev@pb}{\@pbtrue}{}%
+ \xifinlistcs{\next@abslineR}{l@prev@pbR}{\@pbtrue}{}
+ \xifinlistcs{\next@absline}{l@prev@nopb}{\@nopbtrue}{}%
+ \xifinlistcs{\next@abslineR}{l@prev@nopbR}{\@nopbtrue}{}
+ }{}
+ \IfStrEq{\led@pb@setting}{after}{
+ \xifinlistcs{\the\absline@num}{l@prev@pb}{\@pbtrue}{}%
+ \xifinlistcs{\the\absline@numR}{l@prev@pbR}{\@pbtrue}{}
+ \xifinlistcs{\the\absline@num}{l@prev@nopb}{\@nopbtrue}{}%
+ \xifinlistcs{\the\absline@numR}{l@prev@nopbR}{\@nopbtrue}{}
+ }{}
+\if@nopb\nopagebreak[4]\enlargethispage{\baselineskip}\fi
+\if@pb\pagebreak[4]\fi
+}
+\newcommand*{\columnseparator}{%
+ \smash{\rule[-0.2\baselineskip]{\columnrulewidth}{1.05\baselineskip}}}
+\newdimen\columnrulewidth
+ \columnrulewidth=\z@
+
+\newcommand*{\columnsposition}[1]{%
+ \xdef\columns@position{#1}%
+ }%
+\xdef\columns@position{R}%
+\newlength{\beforecolumnseparator}%
+\setlength{\beforecolumnseparator}{-2pt}%
+
+\newlength{\aftercolumnseparator}%
+\setlength{\aftercolumnseparator}{-2pt}%
+
+\newcommand{\setwidthliketwocolumns@L}{%
+ \newdimen\temp%
+ \temp=\hsize%
+ \hsize=\Lcolwidth%
+ \advance\hsize\Rcolwidth%
+ \advance\temp-\hsize%
+ \multiply\temp by 2%
+ \divide\temp by 3%
+ \advance\hsize\temp%
+}%
+
+\newcommand{\setpositionliketwocolumns@L}{%
+ \renewcommand{\ledrlfill}{\hfill}%
+}%
+
+\newcommand{\setnotespositionliketwocolumns@L}{%
+}%
+
+\newcommand{\setwidthliketwocolumns@C}{%
+ \newdimen\temp%
+ \temp=\hsize%
+ \hsize=\Lcolwidth%
+ \advance\hsize\Rcolwidth%
+ \advance\temp-\hsize%
+ \divide\temp by 2%
+ \advance\hsize\temp%
+}%
+
+\newcommand{\setpositionliketwocolumns@C}{%
+ \doinsidelinehook{\hfill}%
+ \renewcommand{\ledrlfill}{\hfill}%
+}%
+
+\newcommand{\setnotespositionliketwocolumns@C}{%
+ \newdimen\temp%
+ \newdimen\tempa%
+ \temp=\hsize%
+ \tempa=\Lcolwidth%
+ \advance\tempa\Rcolwidth%
+ \advance\temp-\tempa%
+ \divide\temp by 2%
+ \leftskip=\temp%
+ \rightskip=-\temp%
+}%
+
+\newcommand{\setwidthliketwocolumns@R}{%
+ \newdimen\temp%
+ \temp=\hsize%
+ \hsize=\Lcolwidth%
+ \advance\hsize\Rcolwidth%
+ \advance\temp-\hsize%
+ \multiply\temp by 2%
+ \divide\temp by 3%
+ \advance\hsize\temp%
+}%
+
+\newcommand{\setpositionliketwocolumns@R}{%
+ \doinsidelinehook{\hfill}%
+}%
+
+\newcommand{\setnotespositionliketwocolumns@R}{%
+ \newdimen\temp%
+ \newdimen\tempa%
+ \temp=\hsize%
+ \tempa=\Lcolwidth%
+ \advance\tempa\Rcolwidth%
+ \advance\temp-\tempa%
+ \divide\temp by 2%
+ \leftskip=\temp%
+ \rightskip=-\temp%
+}%
+
+\newcommand{\Columns@print@before@pstart}{%
+ \ifboolexpr{%
+ test{\ifcsstring{before@pstartL@\the\l@dpscL}{\at@every@pstart}}%
+ and test {\ifcsstring{before@pstartR@\the\l@dpscR}{\at@every@pstart}}%
+ and test {\ifdefempty{\at@every@pstart}}}%
+ {}%
+ {%
+ \hb@xt@ \hsize{%
+ \ifdefstring{\columns@position}{L}{}{\hfill }%
+ \par\parbox[t][][t]{\Lcolwidth}{%
+ \csuse{before@pstartL@\the\l@dpscL}%
+ }%
+ \print@columnseparator%
+ \parbox[t][][t]{\Rcolwidth}{%
+ \csuse{before@pstartR@\the\l@dpscR}%
+ }%
+ \ifdefstring{\columns@position}{R}{}{\hfill}%
+ }%
+ }%
+ \global\csundef{before@pstartL@\the\l@dpscL}%
+ \global\csundef{before@pstartR@\the\l@dpscR}%
+}%
+\newcommand{\Columns@print@after@pend}{%
+ \ifboolexpr{%
+ test{\ifcsstring{after@pendL@\the\l@dpscL}{\at@every@pend}}%
+ and test {\ifcsstring{after@pendR@\the\l@dpscR}{\at@every@pend}}%
+ and test {\ifdefempty{\at@every@pend}}}%
+ {}%
+ {%
+ \hb@xt@ \hsize{%
+ \ifdefstring{\columns@position}{L}{}{\hfill }%
+ \parbox[t][][t]{\Lcolwidth}{%
+ \csuse{after@pendL@\the\l@dpscL}%
+ }%
+ \print@columnseparator%
+ \parbox[t][][t]{\Rcolwidth}{%
+ \csuse{after@pendR@\the\l@dpscR}%
+ }%
+ \ifdefstring{\columns@position}{R}{}{\hfill}%
+ }%
+ }%
+ \global\csundef{after@pendL@\the\l@dpscL}%
+ \global\csundef{after@pendR@\the\l@dpscR}%
+}%
+\newcount\numpagelinesL
+\newcount\numpagelinesR
+\newcount\l@dminpagelines
+
+\newcommand*{\Pages}{%
+ \ifl@dpairing%
+ \led@err@Pages@InsideEnv%
+ \fi%
+ \eledsection@correcting@skip=-2\baselineskip% line correcting for section titles.
+ \parledgroup@notespacing@set@correction%
+ \typeout{}%
+ \typeout{*************************** PAGES ***************************}%
+ \ifnum\l@dnumpstartsL=\l@dnumpstartsR\else%
+ \led@err@BadLeftRightPstarts{\the\l@dnumpstartsL}{\the\l@dnumpstartsR}%
+ \fi%
+ \setlength{\Lcolwidth}{\textwidth}%
+ \setlength{\Rcolwidth}{\textwidth}%
+ \cleartol@devenpage%
+ \l@dprintingpagestrue%
+ \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%
+ \let\print@Xnotes\print@Xnotes@forpages%
+ \let\print@notesX\print@notesX@forpages%
+ \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%
+ \restore@pstartL@pc%
+ \restore@pstartR@pc%
+ \global\@donereallinesL=\z@%
+ \global\@donetotallinesL=\z@%
+ \global\@donereallinesR=\z@%
+ \global\@donetotallinesR=\z@%
+ \checkraw@text%
+{ \loop\ifaraw@text%
+ \checkpageL%
+ \l@duselanguage{\theledlanguageL}%
+{ \loop\ifl@dsamepage%
+ \ifdefstring{\@eledsectnotoc}{L}{\ledsectnotoc}{}%
+ \csuse{before@pstartL@\the\l@dpscL}%
+ \global\csundef{before@pstartL@\the\l@dpscL}%
+ \do@lineL%
+ \xifinlist{\the\l@dpscL}{\eled@sections@@}
+ {\print@eledsectionL}%
+ {}%
+ \advance\numpagelinesL \@ne%
+ \ifshiftedpstarts%
+ \ifdim\ht\l@dleftbox>0pt\hb@xt@%
+ \hsize{\ledstrutL\unhbox\l@dleftbox}%
+ \else%
+ \dimen0=\pagetotal%
+ \advance\dimen0 by \baselineskip%
+ \global\pagetotal=\dimen0%
+ \fi%
+ \else%
+ \parledgroup@correction@notespacing{L}
+ \hb@xt@ \hsize{\ledstrutL\unhbox\l@dleftbox}%
+ \fi%
+ \get@nextboxL%
+ \global\l@dskipversenumberfalse%
+ \ifprint@last@after@pendL%
+ \csuse{after@pendL@\the\l@dpscL}%
+ \global\csundef{after@pendL@\the\l@dpscL}%
+ \fi%
+ \checkpageL%
+ \checkverseL%
+ \checkpbL%
+ \repeat%
+ \ifl@dpagefull%
+ \@writelinesonpageL{\the\numpagelinesL}%
+ \else%
+ \@writelinesonpageL{1000}%
+ \fi%
+ \numpagelinesL \z@%
+ \parledgroup@correction@notespacing@init%
+ \clearl@dleftpage }%
+ \checkpageR%
+ \l@duselanguage{\theledlanguageR}%
+{ \loop\ifl@dsamepage%
+ \initnumbering@sectcountR%
+ \ifdefstring{\@eledsectnotoc}{R}{\ledsectnotoc}{}%
+ \csuse{before@pstartR@\the\l@dpscR}%
+ \global\csundef{before@pstartR@\the\l@dpscR}%
+ \do@lineR%
+ \xifinlist{\the\l@dpscR}{\eled@sectionsR@@}%
+ {\print@eledsectionR}%
+ {}%
+ \advance\numpagelinesR \@ne%
+ \ifshiftedpstarts%
+ \ifdim\ht\l@drightbox>0pt\hb@xt@%
+ \hsize{\ledstrutR\unhbox\l@drightbox}%
+ \else%
+ \dimen0=\pagetotal%
+ \advance\dimen0 by \baselineskip%
+ \global\pagetotal=\dimen0%
+ \fi%
+ \else%
+ \parledgroup@correction@notespacing{R}%
+ \hb@xt@ \hsize{\ledstrutR\unhbox\l@drightbox}%
+ \fi%
+ \get@nextboxR%
+ \global\l@dskipversenumberRfalse%
+ \ifprint@last@after@pendR%
+ \csuse{after@pendR@\the\l@dpscR}%
+ \global\csundef{after@pendR@\the\l@dpscR}%
+ \fi%
+ \checkpageR%
+ \checkverseR%
+ \checkpbR%
+ \repeat%
+ \ifl@dpagefull%
+ \@writelinesonpageR{\the\numpagelinesR}%
+ \else%
+ \@writelinesonpageR{1000}%
+ \fi%
+ \numpagelinesR=\z@%
+ \parledgroup@correction@notespacing@init%
+ \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%
+ \l@dprintingpagesfalse%
+ \finish@Pages@notes%Needed to prevent final notes overlap line number
+ \ignorespaces}
+
+\newcommand{\finish@Pages@notes}{%
+ \def\do##1{%
+ \ifnocritical@%
+ \global\newnamebox{##1footins}
+ \fi
+ \ifnofamiliar@%
+ \global\newnamebox{footins##1}
+ \fi
+ \ifvoid\csuse{##1footins}%
+ \ifvoid\csuse{footins##1}\else%
+ \newpage\null%
+ \listbreak%
+ \fi%
+ \else%
+ \newpage\null%
+ \listbreak%
+ \fi%
+ }%
+ \dolistloop{\@series}%
+}%
+\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}{%
+ \ifdim\pagetotal=0pt\hbox{}\fi%
+ \newpage%
+ \ifodd\c@page\else
+ \led@err@LeftOnRightPage
+ \hbox{}%
+ \cleardoublepage
+ \fi}
+
+\newcommand*{\clearl@drightpage}{%
+ \ifdim\pagetotal=0pt\hbox{}\fi%
+ \newpage%
+ \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%
+ \ifprint@last@after@pendL%
+ \l@dpagefullfalse%
+ \l@dsamepagefalse%
+ \print@last@after@pendLfalse%
+ \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%
+ \ifprint@last@after@pendR%
+ \l@dpagefullfalse%
+ \l@dsamepagefalse%
+ \print@last@after@pendRfalse%
+ \fi%
+ }%
+
+\newcommand{\checkpbL}{
+ \IfStrEq{\led@pb@setting}{after}{
+ \xifinlistcs{\the\absline@num}{l@prev@pb}{\l@dpagefulltrue\l@dsamepagefalse}{}
+ \xifinlistcs{\the\absline@num}{l@prev@nopb}{\l@dpagefullfalse\l@dsamepagetrue}{}
+ }{}
+ \IfStrEq{\led@pb@setting}{before}{
+ \numdef{\next@absline}{\the\absline@num+1}
+ \xifinlistcs{\next@absline}{l@prev@pb}{\l@dpagefulltrue\l@dsamepagefalse}{}
+ \xifinlistcs{\next@absline}{l@prev@nopb}{\l@dpagefullfalse\l@dsamepagetrue}{}
+ }{}
+}
+
+\newcommand{\checkpbR}{
+ \IfStrEq{\led@pb@setting}{after}{
+ \xifinlistcs{\the\absline@numR}{l@prev@pbR}{\l@dpagefulltrue\l@dsamepagefalse}{}
+ \xifinlistcs{\the\absline@numR}{l@prev@nopbR}{\l@dpagefullfalse\l@dsamepagetrue}{}
+ }{}
+ \IfStrEq{\led@pb@setting}{before}{
+ \numdef{\next@abslineR}{\the\absline@numR+1}
+ \xifinlistcs{\next@abslineR}{l@prev@pbR}{\l@dpagefulltrue\l@dsamepagefalse}{}
+ \xifinlistcs{\next@abslineR}{l@prev@nopbR}{\l@dpagefullfalse\l@dsamepagetrue}{}
+ }{}
+}
+\newcommand{\checkverseL}{
+\ifinstanzaL
+ \iflednopbinverse
+ \ifinserthangingsymbol
+ \numgdef{\prev@abslineverse}{\the\absline@num-1}
+ \IfStrEq{\led@pb@setting}{after}{\lednopbnum{\prev@abslineverse}}{}
+ \IfStrEq{\led@pb@setting}{before}{\ifnum\numpagelinesL<3\ledpbnum{\prev@abslineverse}\fi}{}
+ \fi
+ \fi
+\fi
+}
+\newcommand{\checkverseR}{
+\ifinstanzaR
+ \iflednopbinverse
+ \ifinserthangingsymbolR
+ \numgdef{\prev@abslineverse}{\the\absline@numR-1}
+ \IfStrEq{\led@pb@setting}{after}{\lednopbnumR{\prev@abslineverse}}{}
+ \IfStrEq{\led@pb@setting}{before}{\ifnum\numpagelinesR<3\ledpbnumR{\prev@abslineverse}\fi}{}
+ \fi
+ \fi
+\fi
+}
+\newdimen\ledthegoal
+\ifshiftedpstarts
+ \newcommand*{\@goalfraction}{0.95}
+\else
+ \newcommand*{\@goalfraction}{0.9}
+\fi
+
+\newcommand*{\check@goal}{%
+ \ledthegoal=\@goalfraction\pagegoal}
+\newcommand{\setgoalfraction}[1]{%
+ \xdef\@goalfraction{#1}%
+}
+\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
+ \parledgroup@notes@endL
+ \else
+ \ifnum\usenamecount{l@dmaxlinesinpar\the\l@dpscL}=\@donetotallinesL
+ \parledgroup@notes@endL
+ \fi
+ \ifwrittenlinesL\else
+ \@writelinesinparL
+ \writtenlinesLtrue
+ \fi
+ \ifnum\l@dnumpstartsL>\l@dpscL
+ \writtenlinesLfalse
+ \ifbypstart@
+ \global\line@num=0%
+ \resetprevline@%
+ \fi
+ \csuse{after@pendL@\the\l@dpscL}%
+ \global\csundef{after@pendL@\the\l@dpscL}%
+ \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
+ \global\pstartnumtrue%
+ \restore@pstartL@pc%
+ \parledgroup@notes@endL
+ \parledgroup@correction@notespacing@final{L}
+ \else
+ \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
+ \parledgroup@notes@endR
+ \else
+ \ifnum\usenamecount{l@dmaxlinesinpar\the\l@dpscR}=\@donetotallinesR
+ \parledgroup@notes@endR
+ \fi
+ \ifwrittenlinesR\else
+ \@writelinesinparR
+ \writtenlinesRtrue
+ \fi
+ \ifnum\l@dnumpstartsR>\l@dpscR
+ \writtenlinesRfalse
+ \ifbypstart@R
+ \global\line@numR=0%
+ \resetprevline@%
+ \fi
+ \csuse{after@pendR@\the\l@dpscR}%
+ \global\csundef{after@pendR@\the\l@dpscR}%
+ \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
+ \global\pstartnumRtrue%
+ \restore@pstartR@pc%
+ \parledgroup@notes@endR
+ \parledgroup@correction@notespacing@final{R}
+ \else
+ \print@last@after@pendRtrue%
+ \fi
+ \fi
+ \fi}
+
+
+
+
+\newcommand{\par@patch@thepage}{%
+ \ifsameparallelpagenumber%
+ \patchcmd{\thepage}%
+ {page}{sameparallelpage@number}%
+ {}%
+ {\led@error@fail@patch@thepage}%
+ \fi%
+}%
+\apptocmd{\pagenumbering}{%
+ \par@patch@thepage%
+ }%
+ {}%
+ {\led@error@fail@patch@pagenumbering}%
+
+\AtBeginDocument{\par@patch@thepage}%
+
+\AtBeginDocument{%
+ \apptocmd{\@outputpage}{%
+ \ifsameparallelpagenumber%
+ \ifl@dprintingpages%
+ \ifodd\c@page\else%
+ \stepcounter{sameparallelpage@number}%
+ \fi%
+ \else%
+ \stepcounter{sameparallelpage@number}%
+ \fi%
+ \else%
+ \stepcounter{sameparallelpage@number}%
+ \fi%
+ }%
+ {}%
+ {\led@error@fail@patch@@outputpage}%
+}
+\newcounter{sameparallelpage@number}%
+\setcounter{sameparallelpage@number}{1}%
+\pretocmd{\chapter}{%
+ \ifl@dprintingpages%
+ \vbox{}%
+ \fi%
+ }%
+ {}%
+ {}%
+\newcommand{\eledsectnotoc}[1]{\xdef\@eledsectnotoc{#1}}
+\eledsectnotoc{R}
+\newcommand{\eledsectmark}[1]{\xdef\@eledsectmark{#1}}
+\eledsectmark{L}
+\newskip\eledsection@correcting@skip
+\newwrite\eled@sectioningR@out
+\def\l@prev@pbR{}
+\def\l@prev@nopbR{}
+\newcommand{\ledpbR}{\write\linenum@outR{\string\led@pbR}}
+\newcommand{\ledpbnumR}[1]{\write\linenum@outR{\string\led@pbnumR{#1}}}
+\newcommand{\lednopbR}{\write\linenum@outR{\string\led@nopbR}}
+\newcommand{\lednopbnumR}[1]{\write\linenum@outR{\string\led@nopbnumR{#1}}}
+\newcommand{\led@pbR}{\listxadd{\l@prev@pbR}{\the\absline@numR}}
+\newcommand{\led@pbnumR}[1]{\listxadd{\l@prev@pbR}{#1}}
+\newcommand{\led@nopbR}{\listxadd{\l@prev@nopbR}{\the\absline@numR}}
+\newcommand{\led@nopbnumR}[1]{\listxadd{\l@prev@nopbR}{#1}}
+\newmarks\parledgroup@
+\newmarks\parledgroup@series
+\newmarks\parledgroup@type
+\newcommand{\parledgroup@notes@startL}{%
+ \ifnum\usenamecount{l@dmaxlinesinpar\the\l@dpscL}>0%
+ \IfStrEq{\splitfirstmarks\parledgroup@type}{footnoteX}{\csuse{bhooknoteX@\splitfirstmarks\parledgroup@series}}{}%
+ \IfStrEq{\splitfirstmarks\parledgroup@type}{Xfootnote}{\csuse{bhookXnote@\splitfirstmarks\parledgroup@series}}{}%
+ \fi%
+ \global\ledgroupnotesL@true%
+ \insert@noterule@ledgroup{L}%
+}
+\newcommand{\parledgroup@notes@startR}{%
+ \ifnum\usenamecount{l@dmaxlinesinpar\the\l@dpscR}>0%
+ \IfStrEq{\splitfirstmarks\parledgroup@type}{footnoteX}{\csuse{bhooknoteX@\splitfirstmarks\parledgroup@series}}{}%
+ \IfStrEq{\splitfirstmarks\parledgroup@type}{Xfootnote}{\csuse{bhookXnote@\splitfirstmarks\parledgroup@series}}{}%
+ \fi%
+ \global\ledgroupnotesR@true%
+ \insert@noterule@ledgroup{R}%
+}
+\newcommand{\parledgroup@notes@endL}{%
+ \global\ledgroupnotesL@false%
+}
+\newcommand{\parledgroup@notes@endR}{%
+ \global\ledgroupnotesR@false%
+}
+\newcommand{\insert@noterule@ledgroup}[1]{
+ \IfStrEq{\splitbotmarks\parledgroup@}{begin}{%
+ \IfStrEq{\splitbotmarks\parledgroup@type}{Xfootnote}{
+ \csuse{ifledgroupnotes#1@}
+ \vskip\skip\csuse{mp\splitbotmarks\parledgroup@series footins}
+ \csuse{\splitbotmarks\parledgroup@series footnoterule}
+ \fi
+ }
+ {}
+ \IfStrEq{\splitbotmarks\parledgroup@type}{footnoteX}{
+ \csuse{ifledgroupnotes#1@}
+ \vskip\skip\csuse{mpfootins\splitbotmarks\parledgroup@series}
+ \csuse{footnoterule\splitbotmarks\parledgroup@series}
+ \fi
+ }{}
+ }
+ {}
+}
+\newcommand{\setparledgroupnotespacing}[1]{\gdef\@parledgroupnotespacing{#1}}
+\newcommand{\@parledgroupnotespacing}{}
+\dimdef{\parledgroup@notespacing@correction}{0pt}
+\newcommand{\parledgroup@notespacing@set@correction}{%
+ {\@getfirstseries\csuse{Xnotefontsize@\@firstseries}%We suppose all the series has the same footnote size setup
+ \@parledgroupnotespacing\dimgdef{\temp@spacing}{\baselineskip}}%
+ \dimgdef{\parledgroup@notespacing@correction}{\baselineskip-\temp@spacing}%
+}
+\newcommand{\parledgroup@correction@notespacing@init}{
+ \dimdef{\parledgroup@notespacing@correction@accumulated}{0pt}
+ \dimdef{\parledgroup@notespacing@correction@modulo}{0pt}
+}
+\parledgroup@correction@notespacing@init
+\newcommand{\parledgroup@correction@notespacing@final}[1]{
+ \ifparledgroup
+ \vspace{\parledgroup@notespacing@correction@accumulated}
+ \parledgroup@correction@notespacing@init%
+ \ifstrequal{#1}{L}{
+ \numdef{\@checking}{\the\l@dpscL-1}
+ }{
+ \numdef{\@checking}{\the\l@dpscR-1}
+ }
+ \dimdef{\@beforenotes@current@diff}{\csuse{@parledgroup@beforenotes@\@checking L}-\csuse{@parledgroup@beforenotes@\@checking R}}%
+ \ifstrequal{#1}{L}%
+ {% Left
+ \ifdimgreater{\@beforenotes@current@diff}{0pt}{}{\vspace{-\@beforenotes@current@diff}}%
+ }%
+ {% Right
+ \ifdimgreater{\@beforenotes@current@diff}{0pt}{\vspace{\@beforenotes@current@diff}}{}
+ }%
+ \fi
+}
+\newcommand{\parledgroup@correction@notespacing}[1]{%
+ \csuse{ifledgroupnotes#1@}%
+ \vspace{-\parledgroup@notespacing@correction}%
+ \dimdef{\parledgroup@notespacing@correction@accumulated}{\parledgroup@notespacing@correction@accumulated+\parledgroup@notespacing@correction}%
+ \dimdef{\parledgroup@notespacing@correction@modulo}{\parledgroup@notespacing@correction@modulo+\parledgroup@notespacing@correction}%
+ \ifdimless{\parledgroup@notespacing@correction@modulo}{\baselineskip}{}{\advance\numpagelinesL -\@ne%
+ \dimdef{\parledgroup@notespacing@correction@modulo}{\parledgroup@notespacing@correction@modulo-\baselineskip}%
+ }% mean greater than equal
+ \fi%
+}
+\dimdef\parledgroup@beforenotesL{0pt}
+\dimdef\parledgroup@beforenotesR{0pt}
+\newcommand{\parledgroup@beforenotes@save}[1]{
+ \ifparledgroup
+ \csdimgdef{@parledgroup@beforenotes@\the\csuse{l@dnumpstarts#1}#1}{\csuse{parledgroup@beforenotes#1}}
+ \csdimgdef{parledgroup@beforenotes#1}{0pt}
+ \fi
+}
+
+\ifeledmaccompat@%
+
+ \unless\ifnocritical@
+ \let\onlyXside\Xonlyside
+ \fi
+\fi
+\endinput
+%%
+%% End of file `reledpar.sty'.