%% %% 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}[2017/09/25 v1.24.12 LaTeX port of EDMAC]% \newif\ifledfinal \newif\ifoldprintnpnumspace@ \newif\ifnocritical@% \newif\if@noeled@sec% \newif\ifnoend@% \newif\ifnofamiliar@% \newif\ifnoledgroup@% \newif\ifparapparatus@ \newif\ifnoquotation@ \newif\iflednopbinverse \newif\ifparledgroup \newif\ifwidthliketwocolumns% \newif\ifledsecnolinenumber \newif\ifxindy@ \newif\ifxindyhyperref@ \parapparatus@false \RequirePackage{xkeyval} \DeclareOptionX{series}[A,B,C,D,E,Z]{\xdef\default@series{#1}} \DeclareOptionX{noeledsec}{\@noeled@sectrue} \DeclareOptionX{nocritical}{\nocritical@true}% \DeclareOptionX{nofamiliar}{\nofamiliar@true}% \DeclareOptionX{noledgroup}{\noledgroup@true}% \DeclareOptionX{noend}{% \let\l@dend@open\@gobble% \let\l@d@end\relax \let\l@dend@close\relax% \global\let\l@dend@stuff=\relax% \global\chardef\l@d@end=16% \noend@true% }% \DeclareOptionX{noquotation}{\noquotation@true} \DeclareOptionX{oldprintnpnumspace}{\oldprintnpnumspace@true} \DeclareOptionX{final}{\ledfinaltrue} \DeclareOptionX{draft}{\ledfinalfalse} \DeclareOptionX{parapparatus}{\parapparatus@true} \DeclareOptionX{nopbinverse}{\lednopbinversetrue} \DeclareOptionX{ledsecnolinenumber}{\ledsecnolinenumbertrue} \DeclareOptionX{widthliketwocolumns}{\widthliketwocolumnstrue}% \DeclareOptionX{xindy}[eledmac-markup-attr.xdy]{% \AtBeginDocument{\immediate\openout\eledmac@xindy@out=#1}% \newwrite\eledmac@xindy@out% \xindy@true% \gdef\eledmacmarkuplocrefdepth{:depth 1}% \AtEndDocument{\immediate\closeout\eledmac@xindy@out}% }% \DeclareOptionX{xindy+hyperref}{% \xindyhyperref@true% }% \ExecuteOptionsX{series}% \ExecuteOptionsX{final} \newif\ifnoreledmac \DeclareOptionX{noreledmac}{\noreledmactrue} \ProcessOptionsX*\relax \RequirePackage{xargs} \RequirePackage{etoolbox} \@ifl@t@r\fmtversion{2015/10/01} {}% {\RequirePackage{etex}% \csname reserveinserts\endcsname{32}% } \RequirePackage{suffix} \RequirePackage{xstring} \RequirePackage{ifluatex} \RequirePackage{ragged2e} \RequirePackage{ragged2e} \RequirePackage{ifxetex}% \ifx\directlua\undefined\else% \directlua{tex.enableprimitives("",{"textdir","pardir","bodydir"})} \fi \newif\ifl@dmemoir \@ifclassloaded{memoir}{\l@dmemoirtrue}{\l@dmemoirfalse} \newif\ifl@imakeidx \@ifpackageloaded{imakeidx}{\l@imakeidxtrue}{}%False is the default value \newif\ifl@indextools% \@ifpackageloaded{indextools}{% \l@indextoolstrue% \l@imakeidxtrue% \let\imki@wrindexentry\indtl@wrindexentry% }{}%False is the default value. We consider indextools as a variant of imakeidx. That's why we set `l@imakeidx` to true. We also let \imki@wrindexentry to \indtl@wrindexentry \ifdef{\if@RTL}{}{\newif\if@RTL} \ifdef{\if@RTL}{}{\newif\if@RTL} \newcommand{\eledmac@warning}[1]{\PackageWarning{eledmac}{#1}} \newcommand{\eledmac@error}[2]{\PackageError{eledmac}{#1}{#2}} \ifnoreledmac\else% \eledmac@error{Using package `eledmac' is deprecated. We suggest\MessageBreak using `reledmac' instead. If you want to continue\MessageBreak with `eledmac', you can disable this message by\MessageBreak adding the option `noreledmac' when loading `eledmac'}{\@ehc} \fi% \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@err@edtextoutsidepstart}{% \eledmac@error{\string\edtext\space outside numbered paragraph (\pstart\ldots\pend)}{\@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@Obsolete}[1]{% \eledmac@warning{Line-list file #1 was obsolete. We have not read it. Please run LaTeX again.}} \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@err@NumberingWithoutPstart}{% \eledmac@error{\string\beginnumbering...\string\endnumbering\space without \string\pstart}{\@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@AppLabelOutEdtext}[1]{% \eledmac@warning{\string\applabel\space outside of \string\edtext\space `#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@warn@AddfootinsXObsolete}{% \eledmac@warning{AddfootinsX is obsolete in eledmac 1.0. Use newseries instead.}% }% \newcommand{\led@warn@AddfootinsObsolete}{% \eledmac@warning{Addfootins is obsolete in eledmac 1.0. Use newseries instead.}% }% \newcommand{\led@warn@SeriesStillExist}[1]{% \eledmac@warning{Series #1 is still existing !}% }% \newcommand{\led@err@ManySidenotes}{% \ifledRcol@% \eledmac@warning{\itemcount@\space sidenotes on line \the\line@numR\space p. \the\page@numR}% \else% \eledmac@warning{\itemcount@\space sidenotes on line \the\line@num\space p. \the\page@num}% \fi% }% \newcommand{\led@err@ManyLeftnotes}{% \ifledRcol@% \eledmac@warning{\itemcount@\space leftnotes on line \the\line@numR\space p. \the\page@numR}% \else% \eledmac@warning{\itemcount@\space leftnotes on line \the\line@num\space p. \the\page@num}% \fi% }% \newcommand{\led@err@ManyRightnotes}{% \ifledRcol@% \eledmac@warning{\itemcount@\space rightnotes on line \the\line@numR\space p. \the\page@numR}% \else% \eledmac@warning{\itemcount@\space rightnotes on line \the\line@num\space p. \the\page@num}% \fi% }% \newcommand{\led@war@noeledsecDeprecated}[0]{% \eledmac@warning{\string\noeledsec\space deprecated. Use `noeledsec` option instead.}% }% \newcommand{\led@war@ledsetnormalparstuffDeprecated}{% \eledmac@warning{\string\ledsetnormalparstuff\space deprecated. Look at \string\Xledsetnormalparstuff\space and \ledsetnormalparstuffX\space instead.}% }% \newcommand{\led@war@ledxxxDeprecated}[1]{% \eledmac@warning{\string\led#1\space deprecated. Look at \string\e#1 instead.}% }% \newcommand{\led@war@noendnotesDeprecated}[0]{% \eledmac@warning{\string\noendnotes\space deprecated. Use `noend` option instead.}% }% \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}} \newcommand{\led@err@EdtextWithoutFootnote}{% \eledmac@error{edtext without Xfootnote. Check syntaxis.}{\@ehd}% }% \newcommand{\led@err@FootnoteWithoutEdtext}{% \eledmac@error{Xfootnote without edtext. Check syntax.}{\@ehd}% }% \newcommand{\led@error@ImakeidxAfterEledmac}{% \eledmac@error{Imakeidx must be loaded before eledmac.}{\@ehd}% }% \newcommand{\led@error@IndextoolsAfterEledmac}{% \eledmac@error{Indextools must be loaded before eledmac.}{\@ehd}% }% \providecommand*{\@gobblethree}[3]{} \providecommand*{\@gobblefour}[4]{} \providecommand*{\@gobblefive}[5]{} \ifledfinal \newcommand*{\showlemma}[1]{#1} \else \newcommand*{\showlemma}[1]{\underline{#1}} \fi \let\linenumberlist=\empty \newcount\@l@dtempcnta \newcount\@l@dtempcntb \newcount\section@num \section@num=0 \let\extensionchars=\empty \newif\ifnumbering \newif\ifl@dpairing \newif\ifl@dpaging% \newif\ifl@dprintingpages% \newif\ifl@dprintingcolumns% \newif\ifpst@rtedL \newcount\l@dnumpstartsL \newif\ifledRcol \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} \ifl@dpairing \global\l@dnumpstartsL \z@ \global\pst@rtedLfalse \else \begingroup \global\@afterindenttrue%In order to retablish normal feature if the \begingroup was not here \initnumbering@sectcmd \ifwidthliketwocolumns% \csuse{setwidthliketwocolumns@\columns@position}% \csuse{setpositionliketwocolumns@\columns@position}% \fi% \fi \gdef\eled@sections@@{}% \if@noeled@sec\else% \makeatletter\InputIfFileExists{\jobname.eledsec\the\section@num}{}{}\makeatother% \immediate\openout\eled@sectioning@out=\jobname.eledsec\the\section@num\relax% \fi% } \newcommand*{\initnumbering@reg}{% \global\pst@rtedLfalse \global\l@dnumpstartsL \z@ \global\absline@num \z@ \gdef\normal@page@break{} \gdef\l@prev@pb{} \gdef\l@prev@nopb{} \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@ \resetprevpage@num } \def\endnumbering{% \ifnumbering \global\numberingfalse \normal@pars \ifnum\l@dnumpstartsL=0% \led@err@NumberingWithoutPstart% \fi% \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 \if@noeled@sec\else% \immediate\closeout\eled@sectioning@out% \fi% \ifl@dpairing\else \global\l@dnumpstartsL=\z@% \endgroup \fi } \newcommand{\pausenumbering}{% \ifautopar\global\autopar@pausetrue\fi% \endnumbering\global\numberingtrue} \newcommand*{\resumenumbering}{% \ifnumbering \ifautopar@pause\autopar\fi \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 \ifl@dpairing\else% \begingroup% \initnumbering@sectcmd% \ifwidthliketwocolumns% \csuse{setwidthliketwocolumns@\columns@position}% \csuse{setpositionliketwocolumns@\columns@position}% \fi% \fi% \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 \unless\ifnocritical@% \pstartinfootnote[][false]% \fi% \else \def\@tempb{pstart}% \ifx\@tempa\@tempb \global\bypage@false \global\bypstart@true \unless\ifnocritical@% \pstartinfootnote% \fi% \else \def\@tempb{section} \ifx\@tempa\@tempb \global\bypage@false \global\bypstart@false \unless\ifnocritical@% \pstartinfootnote[][false]% \fi% \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}{% \bgroup% \ifluatex% \textdir TLT% \fi% \numlabfont\linenumrep{\line@num}% \ifsublines@ \ifnum\subline@num>0\relax \unskip\fullstop\sublinenumrep{\subline@num}% \fi \fi% \egroup% }% \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\led@toksa \newtoks\led@toksb \global\led@toksa={\\} \long\def\xright@appenditem#1\to#2{% \global\led@toksb=\expandafter{#2}% \xdef#2{\the\led@toksb\the\led@toksa\expandafter{#1}}% \global\led@toksb={}} \long\def\xleft@appenditem#1\to#2{% \global\led@toksb=\expandafter{#2}% \xdef#2{\the\led@toksa\expandafter{#1}\the\led@toksb}% \global\led@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@}{% \def\do##1{\global\csundef{prevline##1}}% \dolistloop{\@series}% } \newcommand*{\resetprevpage@num}{% \def\do##1{\ifcsdef{prevpage##1@num}{\global\csname prevpage##1@num\endcsname=0}{}}% \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{\line@list@version}[1]{% \IfStrEq{#1}{\this@line@list@version}% {}% {\ifledRcol% \led@warn@Obsolete{\jobname.\extensionchars\the\section@num}% \else% \led@warn@Obsolete{\jobname.\extensionchars\the\section@num}% \fi% \endinput% }% }% \newcommand{\@nl}[2]{% \fix@page{#1}% \@nl@reg} \newcommand*{\@nl@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} \newcount\last@page@num \last@page@num=-10000 \newcommand*{\fix@page}[1]{% \ifnum #1=\last@page@num \else \ifbypage@ \csxdef{lastlinenumberon@\the\last@page@num}{\the\line@num}% \line@num=\z@ \subline@num=\z@ \fi \page@num=#1\relax \last@page@num=#1\relax \def\next@page@num{#1}% \listxadd{\normal@page@break}{\the\absline@num} \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}{% \ifledRcol% \xright@appenditem{\the\absline@numR}\to\actionlines@listR \xright@appenditem{-1007}\to\actions@listR \else% \xright@appenditem{\the\absline@num}\to\actionlines@list% \xright@appenditem{-1007}\to\actions@list% \fi% }% \newcommand*{\n@num@stanza}{% \ifledRcol% \xright@appenditem{\the\absline@numR}\to\actionlines@listR% \xright@appenditem{-1008}\to\actions@listR% \else% \xright@appenditem{\the\absline@num}\to\actionlines@list%% \xright@appenditem{-1008}\to\actions@list% \fi% } \newif\ifl@dhidenumber \newcommand*{\hidenumbering}{ \ifledRcol% \write\linenum@outR{\string\hide@num}% \else% \write\linenum@out{\string\hide@num}% \fi% }% \newcommand*{\hide@num}{% \ifledRcol% \xright@appenditem{\the\absline@numR}\to\actionlines@listR% \xright@appenditem{-1009}\to\actions@listR% \else% \xright@appenditem{\the\absline@num}\to\actionlines@list%% \xright@appenditem{-1009}\to\actions@list% \fi% } \newcount\insert@count \newcommand*{\dummy@ref}[2]{#2} \newcommand*{\@ref}[2]{% \@ref@reg{#1}{#2}} \newcommand*{\@ref@reg}[2]{% \global\insert@count=#1\relax \global\advance\@edtext@level by 1% \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\@lopL\@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@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 \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@edtext@\the\@edtext@level\endcsname}}% \ifcsundef{sw@list@edtext@\the\@edtext@level}{\create@this@edtext@level}{}% \letcs{\@tmp}{sw@list@edtext@\the\@edtext@level}% \letcs{\@tmpp}{sw@list@edtext@tmp@\the\@edtext@level} \xright@appenditem{\expandonce\@tmpp}\to\@tmp% \global\cslet{sw@list@edtext@\the\@edtext@level}{\@tmp}% \fi% \global\advance\@edtext@level by -1% } \newwrite\linenum@out \newif\iffirst@linenum@out@ \first@linenum@out@true \newcommand{\this@line@list@version}{2}% \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% \immediate\write\linenum@out{\string\line@list@version{\this@line@list@version}}% \else \if@minipage% \leavevmode% \fi% \closeout\linenum@out% \openout\linenum@out=#1\relax% \fi} \newcommand*{\new@line}{% \IfStrEq{\led@pb@setting}{after}% {\xifinlist{\the\absline@num}{\l@prev@nopb}% {\xifinlist{\the\absline@num}{\normal@page@break}% {\numgdef{\@next@page}{\thepage+1}% \write\linenum@out{\string\@nl[\@next@page][\@next@page]}% }% {\write\linenum@out{\string\@nl[\the\c@page][\thepage]}}% }% {\write\linenum@out{\string\@nl[\the\c@page][\thepage]}}}% {}% \IfStrEq{\led@pb@setting}{before}% {\numdef{\next@absline}{\the\absline@num+1}% \xifinlist{\next@absline}{\l@prev@nopb}% {\xifinlist{\the\absline@num}{\normal@page@break}% {\numgdef{\nc@page}{\c@page+1}% \write\linenum@out{\string\@nl[\nc@page][\nc@page]}% }% {\write\linenum@out{\string\@nl[\the\c@page][\thepage]}}% }% {\write\linenum@out{\string\@nl[\the\c@page][\thepage]}}% }% {}% \IfStrEqCase{\led@pb@setting}{{before}{\relax}{after}{\relax}}[\write\linenum@out{\string\@nl[\the\c@page][\thepage]}]% } \newif\if@noneed@Footnote% \newcommand*{\flag@start}{% \ifledRcol% \edef\next{\write\linenum@outR{% \string\@ref[\the\insert@countR][}}% \next% \ifnum\insert@countR<1% \if@noneed@Footnote\else% \led@err@EdtextWithoutFootnote% \fi% \fi% \else% \edef\next{\write\linenum@out{% \string\@ref[\the\insert@count][}}% \next% \ifnum\insert@count<1% \if@noneed@Footnote\else% \led@err@EdtextWithoutFootnote% \fi% \fi% \fi}% \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 \newif\ifl@dskipversenumber% \newcommand*{\skipnumbering}{% \leavevmode% \ifledRcol% \ifinstanza% \write\linenum@outR{\string\n@num@stanza}% \else% \write\linenum@outR{\string\n@num}% \fi% \advanceline{-1}% \else% \ifinstanza% \write\linenum@out{\string\n@num@stanza}% \else% \write\linenum@out{\string\n@num}% \fi% \advanceline{-1}% \fi% }% \list@create{\end@lemmas} \long\def\dummy@text#1#2/{#1} \newcommand{\dummy@edtext}[2]{#1} \newcommand{\dummy@edtext@showlemma}[2]{\showlemma{#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\sameword\sameword@inedtext% \let\edtext=\dummy@edtext \l@dtabnoexpands \morenoexpands} \let\morenoexpands=\relax \newcommand{\@tag}{} \newcount\@edtext@level% \@edtext@level=0% \long\def\critext#1#2/{\edtext{#1}{#2}}% \newcommand{\edtext}[2]{\leavevmode% \ifnumberedpar@% \global\advance\@edtext@level by 1% \global\@lemmacommand@false% \begingroup% \ifledRcol% \ifcsundef{sw@list@edtextR@\the\@edtext@level}% {\global\let\sw@inthisedtext\empty}% {\ifcsempty{sw@list@edtextR@\the\@edtext@level}% {\global\let\sw@inthisedtext\empty}% {\expandafter\gl@p\csname sw@list@edtextR@\the\@edtext@level\endcsname\to\sw@inthisedtext}% }% \else% \ifcsundef{sw@list@edtext@\the\@edtext@level}% {\global\let\sw@inthisedtext\empty}% {\ifcsempty{sw@list@edtext@\the\@edtext@level}% {\global\let\sw@inthisedtext\empty}% {\expandafter\gl@p\csname sw@list@edtext@\the\@edtext@level\endcsname\to\sw@inthisedtext}% }% \fi% \global\renewcommand{\@tag}{% \no@expands #1% }% \set@line% \ifledRcol \global\insert@countR \z@% \else \global\insert@count \z@ \fi% \ignorespaces #2\relax% \@ifundefined{xpg@main@language}{%if not polyglossia \flag@start}% {\if@RTL\flag@end\else\flag@start\fi% }% \if@lemmacommand@% \ifledRcol% \write\linenum@outR{\string\@lemma}% \else% \write\linenum@out{\string\@lemma}% \fi% \fi% \endgroup% \showlemma{#1}% \ifx\end@lemmas\empty \else% \gl@p\end@lemmas\to\x@lemma% \x@lemma% \global\let\x@lemma=\relax% \fi% \@ifundefined{xpg@main@language}{%if not polyglossia \flag@end}% {\if@RTL\flag@start\else\flag@end\fi% With polyglossia, you must track whether the language reads left to right (English) or right to left (Arabic). }% \global\@noneed@Footnotefalse% \global\advance\@edtext@level by -1% \global\@lemmacommand@false% \else% \showlemma{#1} (\textbf{\textsc{Edtext outside numbered paragraph}})\led@err@edtextoutsidepstart% \fi% }% \newcommand*{\flag@end}{% \ifledRcol% \write\linenum@outR{]}% \else% \write\linenum@out{]}% \fi}% \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} \unless\ifnocritical@ \newcommand*{\lemma}[1]{% \global\@lemmacommand@true% \global\renewcommand{\@tag}{% \no@expands #1% }% \ignorespaces% }% \newcommand{\@lemma}{% \booltrue{lemmacommand@\the\@edtext@level}% }% \fi \newif\if@lemmacommand@% \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}} \newcommand{\get@sw@txt}[1]{% \ifxetex% \xdef\sw@txt{#1}% \else% \expandafter\xdef\expandafter\sw@txt\expandafter{\detokenize{#1}}% \fi% }% \newcommandx{\sameword}[2][1,usedefault]{% \leavevmode% \get@sw@txt{#2}% \unless\ifledRcol% \csnumgdef{sw@\sw@txt}{\csuse{sw@\sw@txt}+1}% \protected@write\linenum@out{}{\string\@sw{\sw@txt}{\csuse{sw@\sw@txt}}{#1}}% \else% \csnumgdef{sw@\sw@txt@R}{\csuse{sw@\sw@txt@R}+1}% \protected@write\linenum@outR{}{\string\@sw{\sw@txt}{\csuse{sw@\sw@txt@R}}{#1}}% \fi% #2% }% \newif\if@addsw% \newcommand{\@sw}[3]{% \get@sw@txt{#1}% \unless\ifledRcol% \csxdef{sw@\sw@txt @\the\absline@num @\the\section@num}{#2}% \numdef{\prev@line}{\the\absline@num-1}% \ifcsundef{sw@\sw@txt @\prev@line @\the\section@num}{% \csnumgdef{sw@\sw@txt @\prev@line @\the\section@num}{#2-1}% }{}% \numdef{\the@sw}{#2-\csuse{sw@\sw@txt @\prev@line @\the\section@num}}% \else% \csxdef{sw@\sw@txt @\the\absline@numR @\the\section@numR @R}{#2}% \numdef{\prev@line}{\the\absline@numR-1}% \ifcsundef{sw@\sw@txt @\prev@line @\the\section@numR @R}{% \csnumgdef{sw@\sw@txt @\prev@line @\the\section@numR @R}{#2-1}% }{}% \numdef{\the@sw}{#2-\csuse{sw@\sw@txt @\prev@line @\the\section@numR @R}}% \fi% \@tempcnta=\@edtext@level \@whilenum{\@tempcnta>0}\do{% \ifcsdef{sw@list@edtext@tmp@\the\@tempcnta}% {% \@addswfalse% \notbool{lemmacommand@\the\@tempcnta}% {\@addswtrue}% {\IfStrEq{#3}{inlemma}% {\@addswtrue}% {% \def\do##1{% \ifnumequal{##1}{\the\@tempcnta}% {\@addswtrue\listbreak}% {}% }% \docsvlist{#3}% }% }% \if@addsw% \letcs{\@tmp}{sw@list@edtext@tmp@\the\@tempcnta}% \ifledRcol% \xright@appenditem{{\the@sw}{\the\absline@numR}}\to\@tmp% \else% \xright@appenditem{{\the@sw}{\the\absline@num}}\to\@tmp% \fi% \cslet{sw@list@edtext@tmp@\the\@tempcnta}{\@tmp}% \fi% }% {}% \advance\@tempcnta by -1% }% }% \newcommandx{\sameword@inedtext}[2][1,usedefault]{% \get@sw@txt{#2}% \unless\ifledRcol@% \ifx\sw@list@inedtext\empty% \def\the@sw{999}% \def\this@absline{-99}% \else% \gl@p\sw@list@inedtext\to\@tmp% \edef\the@sw{\expandafter\@firstoftwo\@tmp}% \edef\this@absline{\expandafter\@secondoftwo\@tmp}% \fi% \ifcsdef{sw@\sw@txt @\this@absline @\the\section@num}{% \numdef{\prev@line}{\this@absline-1}% \numdef{\sw@atthisline}{\csuse{sw@\sw@txt @\this@absline @\the\section@num}-\csuse{sw@\sw@txt @\prev@line @\the\section@num}}% }% {\numdef{\sw@atthisline}{0}}% \ifnumgreater{\sw@atthisline}{1}% {\showwordrank{#2}{\the@sw}}% {#2}% \else% \ifx\sw@list@inedtext\empty% \def\the@sw{999}% \def\this@absline{-99}% \else% \gl@p\sw@list@inedtext\to\@tmp% \edef\the@sw{\expandafter\@firstoftwo\@tmp}% \edef\this@absline{\expandafter\@secondoftwo\@tmp}% \fi% \ifcsdef{sw@\sw@txt @\this@absline @\the\section@numR @R}{% \numdef{\prev@line}{\this@absline-1}% \numdef{\sw@atthisline}{\csuse{sw@\sw@txt @\this@absline @\the\section@numR @R}-\csuse{sw@\sw@txt @\prev@line @\the\section@numR @R}}% }% {\numdef{\sw@atthisline}{0}}% \ifnumgreater{\sw@atthisline}{1}% {\showwordrank{#2}{\the@sw}}% {#2}% \fi% }% \newcommand{\showwordrank}[2]{% #1\textsuperscript{#2}% }% \newbox\raw@text \newif\ifnumberedpar@ \newcount\num@lines \newbox\one@line \newcount\par@line \newcommand{\AtEveryPstart}[1]{% \ifstrempty{#1}% {\xdef\at@every@pstart{}}% {\xdef\at@every@pstart{\noindent\unexpanded{#1}}}% }% \xdef\at@every@pstart{}% \newcounter{pstart} \renewcommand{\thepstart}{{\bfseries\@arabic\c@pstart}. } \newif\ifnumberpstart \numberpstartfalse \newif\iflabelpstart \labelpstartfalse \newcommandx*{\pstart}[1][1]{% \normal@pars% \ifstrempty{#1}{\at@every@pstart}{\noindent#1}% \ifautopar% \autopar% \fi% \ifluatex% \edef\l@luatextextdir@L{\the\textdir}% \fi% \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\advance \l@dnumpstartsL\@ne \global\setbox\raw@text=\vbox\bgroup% \ifautopar\else% \ifnumberpstart% \ifinstanza\else% \ifsidepstartnum\else% \thepstart% \fi% \fi% \fi% \fi% \numberedpar@true% \iflabelpstart\protected@edef\@currentlabel% {\p@pstart\thepstart} \fi% \l@dzeropenalties% } \newcommandx*{\pend}[1][1]{\ifnumbering \else% \led@err@PendNotNumbered% \fi% \global\l@dskipversenumberfalse% \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}% \normal@pars% \ifstrempty{#1}{\at@every@pend}{\noindent#1}% \ifautopar% \autopar% \fi% } \newcommand{\AtEveryPend}[1]{% \ifstrempty{#1}% {\xdef\at@every@pend{}}% {\xdef\at@every@pend{\noindent\unexpanded{#1}}}% }% \xdef\at@every@pend{}% \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} \newif\ifautopar@pause \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 \IfStrEq{\led@pb@setting}{before}{\led@check@pb\led@check@nopb}{} \ifnum\@lock>\@ne \inserthangingsymboltrue \else \inserthangingsymbolfalse \fi \check@pb@in@verse \ifl@dhidenumber% \global\l@dhidenumberfalse% \f@x@l@cks% \else% \affixline@num% \fi% \xifinlist{\the\l@dnumpstartsL}{\eled@sections@@}% {\print@eledsection}% {\print@line}% \IfStrEq{\led@pb@setting}{after}{\led@check@pb\led@check@nopb}{} }% \def\print@line{ \affixpstart@num% \hb@xt@ \linewidth{% \do@insidelinehook% \l@dld@ta% \add@inserts\affixside@note% \l@dlsn@te {\ledllfill\hb@xt@ \wd\one@line{\new@line% \ifluatex% \textdir\l@luatextextdir@L% \fi% \inserthangingsymbol %Space keept for backward compatibility \l@dunhbox@line{\one@line}}% \ledrlfill\l@drd@ta% \l@drsn@te }}% \add@penalties% } \def\print@eledsection{% \add@inserts\affixside@note% \numdef{\temp@}{\l@dnumpstartsL-1}% \xifinlist{\temp@}{\eled@sections@@}{\@nobreaktrue}{\@nobreakfalse}% \@eled@sectioningtrue% \csuse{eled@sectioning@\the\l@dnumpstartsL}% \@eled@sectioningfalse% \global\csundef{eled@sectioning@\the\l@dnumpstartsL}% \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-\baselineskip% } \newcommand*{\dolinehook}[1]{\gdef\do@linehook{#1}}% \newcommand*{\doinsidelinehook}[1]{\gdef\do@insidelinehook{#1}}% \newcommand*{\do@linehook}{} \newcommand*{\do@insidelinehook}{} \newcommand*{\l@demptyd@ta}{% \gdef\l@dld@ta{}% \gdef\l@drd@ta{}% \gdef\l@dcsnotetext@l{}% \gdef\l@dcsnotetext@r{}% \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 \or% % 1008 \l@dskipversenumbertrue% \or% % 1009 \l@dhidenumbertrue \else \led@warn@BadAction \fi} \newcommand*{\affixline@num}{% \ifledgroupnotesL@\else \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 \ifl@dskipversenumber\else \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 \fi \fi \f@x@l@cks \fi \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]{% \def\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 } \newcommandx*{\footnotelang@lua}[1][1=L,usedefault]{% \ifstrequal{#1}{L}{% \xright@appenditem{{\csxdef{footnote@luatextextdir}{\the\textdir}}}\to\inserts@list%Know the dir of lemma \global\advance\insert@count \@ne% \xright@appenditem{{\csxdef{footnote@luatexpardir}{\the\pardir}}}\to\inserts@list%Know the dir of lemma \global\advance\insert@count \@ne% }% {% \xright@appenditem{{\csxdef{footnote@luatextextdir}{\the\textdir}}}\to\inserts@listR%Know the dir of lemma \global\advance\insert@countR \@ne% \xright@appenditem{{\csxdef{footnote@luatexpardir}{\the\pardir}}}\to\inserts@listR%Know the dir of lemma \global\advance\insert@countR \@ne% }% } \newcommandx*{\footnotelang@poly}[1][1=L,usedefault]{% \ifstrequal{#1}{L}{% \if@RTL% \xright@appenditem{{\csxdef{footnote@dir}{@RTLtrue}}}\to\inserts@list%Know the language used in the lemma \global\advance\insert@count \@ne% \else \xright@appenditem{{\csxdef{footnote@dir}{@RTLfalse}}}\to\inserts@list%Know the language of lemma \global\advance\insert@count \@ne% \fi% \xright@appenditem{{\csxdef{footnote@lang}{\expandonce\languagename}}}\to\inserts@list%Know the language of lemma \global\advance\insert@count \@ne% }% {% \if@RTL \xright@appenditem{{\csxdef{footnote@dir}{@RTLtrue}}}\to\inserts@listR%Know the language of lemma \global\advance\insert@countR \@ne% \else \xright@appenditem{{\csxdef{footnote@dir}{@RTLfalse}}}\to\inserts@listR%Know the language of lemma \global\advance\insert@countR \@ne% \fi \xright@appenditem{{\csxdef{footnote@lang}{\expandonce\languagename}}}\to\inserts@listR%Know the language of lemma \global\advance\insert@countR \@ne% }% } \notbool{parapparatus@}{\newcommand*}{\newcommand}{\normalvfootnote}[2]{% \insert\csname #1footins\endcsname\bgroup \csuse{bhookXnote@#1} \csuse{Xnotefontsize@#1} \footsplitskips \ifl@dpairing\ifl@dpaging\else% \setXnoteswidthliketwocolumns@{#1}% \fi\fi% \setXnotespositionliketwocolumns@{#1}% \spaceskip=\z@skip \xspaceskip=\z@skip \csname #1footfmt\endcsname #2[#1]\egroup} \newcommand*{\footsplitskips}{% \interlinepenalty=\interfootnotelinepenalty \unless\ifl@dprintingpages% \floatingpenalty=\@MM% \fi% \splittopskip=\ht\strutbox \splitmaxdepth=\dp\strutbox \leftskip=\z@skip \rightskip=\z@skip} \notbool{parapparatus@}{\newcommand*}{\newcommand}{\mpnormalvfootnote}[2]{% \global\setbox\@nameuse{mp#1footins}\vbox{% \unvbox\@nameuse{mp#1footins} \csuse{bhookXnote@#1} \csuse{Xnotefontsize@#1} \hsize\columnwidth \@parboxrestore \color@begingroup \csname #1footfmt\endcsname #2[#1]\color@endgroup}} \newcommand*{\ledsetnormalparstuff}{% \led@war@ledsetnormalparstuffDeprecated% \ifluatex% \textdir\footnote@luatextextdir% \pardir\footnote@luatexpardir% \fi% \csuse{\csuse{footnote@dir}}% \normal@pars% \noindent \parfillskip \z@ \@plus 1fil}% \newcommand*{\ledsetnormalparstuff@common}{% \ifluatex% \textdir\footnote@luatextextdir% \pardir\footnote@luatexpardir% \fi% \csuse{\csuse{footnote@dir}}% \normal@pars% \parfillskip \z@ \@plus 1fil}% \newcommand*{\Xledsetnormalparstuff}[1]{% \ledsetnormalparstuff@common% \nottoggle{Xparindent@#1}{\noindent}{}%\noindent and and not \parindent=0pt to avoid to break the (bad) change made when moving from ledmac to eledmac }% \newcommand*{\ledsetnormalparstuffX}[1]{% \ledsetnormalparstuff@common% \nottoggle{parindentX@#1}{\noindent}{}%\noindent and and not \parindent=0pt to avoid to break the (bad) change made when moving from ledmac to eledmac }% \notbool{parapparatus@}{\newcommandx*}{\newcommandx}{\normalfootfmt}[4][4=Z]{% 4th arg is optional, for backward compatibility \Xledsetnormalparstuff{#4}% \hangindent=\csuse{Xhangindent@#4} \strut{\printlinefootnote{#1}{#4}}% {\nottoggle{Xlemmadisablefontselection@#4}{\select@lemmafont#1|#2}{#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}\relax% }}% #3\strut\par} \def\endashchar{\textnormal{--}} \newcommand*{\fullstop}{\textnormal{.}} \newcommand*{\rbracket}{\textnormal{% \csuse{text\csuse{footnote@lang}}{% \ifluatex% \ifdefstring{\footnote@luatextextdir}{TRT}{\thinspace[}{\thinspace]}% \else% \thinspace]% \fi}% }% } \newcommand{\printpstart}[0]{% \ifboolexpr{bool{l@dpairing} or bool{l@dprintingpages} or bool{l@dprintingcolumns}}{% \ifledRcol% \thepstartR% \else% \thepstartL% \fi% }{% \thepstart% }% } \newif\ifl@d@pnum \newif\ifl@d@ssub \newif\ifl@d@elin \newif\ifl@d@esl \newif\ifl@d@dash \newif\ifl@d@twolines% \newif\ifl@d@morethantwolines% \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}% \newif\ifistwofollowinglines@% \newcommand{\setistwofollowinglines}[4]{% \ifcsdef{lastlinenumberon@#1}% {\numdef{\tmp}{\csuse{lastlinenumberon@#1}}}% {\numdef{\tmp}{0}}% \istwofollowinglines@false% \ifnumequal{#4-#2}{1}% {\istwofollowinglines@true}% {\ifbypage@% \ifnumequal{#3-#1}{1}% {% \ifnumequal{#2}{\tmp}% {\ifnumequal{#4}{1}{\istwofollowinglines@true}{}}% {}% }% {}% \fi% }% }% \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% \ifl@d@dash% \ifboolexpr{togl{fulllines@} or test{\ifcsempty{twolines@\@currentseries}}}% {}% {% \setistwofollowinglines{#1}{#2}{#4}{#5}% \ifboolexpr{% (% togl {twolinesbutnotmore@\@currentseries}% and not% (% bool {istwofollowinglines@}% )% )% or% (% (not test{\ifnumequal{#1}{#4}})% and togl{twolinesonlyinsamepage@\@currentseries}% )% }% {}% {% \l@d@dashfalse% \l@d@twolinestrue% \l@d@elinfalse% \l@d@eslfalse% \ifcsempty{morethantwolines@\@currentseries}% {}% {\ifistwofollowinglines@\else% \l@d@morethantwolinestrue% \fi% }% }% }% \fi% }% \def\printlines#1|#2|#3|#4|#5|#6|#7|{% \begingroup% \ifluatex% \textdir TLT% \fi% \setprintlines{#1}{#2}{#3}{#4}{#5}{#6}% \ifdimequal{\csuse{boxstartlinenum@\@currentseries}}{0pt}% {\bgroup}% {\leavevmode\hbox to \csuse{boxstartlinenum@\@currentseries}\bgroup\hfill}% \ifl@d@pnum #1\fullstop\fi \linenumrep{#2} \ifl@d@ssub \fullstop \sublinenumrep{#3}\fi \egroup% \ifdimequal{\csuse{boxendlinenum@\@currentseries}}{0pt}% {\bgroup}% {\hbox to \csuse{boxendlinenum@\@currentseries}\bgroup}% \ifl@d@twolines% \ifl@d@morethantwolines% \csuse{morethantwolines@\@currentseries}% \else% \csuse{twolines@\@currentseries}% \fi% \else% \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% \fi% \ifdimequal{\csuse{boxendlinenum@\@currentseries}}{0pt}% {}% {\hfill}%Prevent underfull hbox \egroup% \endgroup% }% \newcommand*{\normalfootstart}[1]{% \ifdimequal{0pt}{\preXnotes@}{}% {% \iftoggle{preXnotes@}{% \togglefalse{preXnotes@}% \skip\csname #1footins\endcsname=% \dimexpr\csuse{preXnotes@}+\csuse{afterXrule@#1}\relax% }% {}% }% \vskip\skip\csname #1footins\endcsname% \leftskip0pt \rightskip0pt \ifl@dpairing\else% \hsize=\old@hsize% \fi% \setXnoteswidthliketwocolumns@{#1}% \setXnotespositionliketwocolumns@{#1}% \print@Xfootnoterule{#1}% \noindent\leavevmode} \let\normalfootnoterule=\footnoterule \newcommand*{\normalfootgroup}[1]{% {\csuse{Xnotefontsize@#1}\noindent\csuse{txtbeforeXnotes@#1}}% \unvbox\csname #1footins\endcsname% \hsize=\old@hsize% }% \newcommand*{\mpnormalfootgroup}[1]{{ \vskip\skip\@nameuse{mp#1footins} \ifl@dpairing\ifparledgroup% \leavevmode\marks\parledgroup@{begin}% \marks\parledgroup@series{#1}% \marks\parledgroup@type{Xfootnote}% \fi\fi\normalcolor% \ifparledgroup% \ifl@dpairing% \else% \setXnoteswidthliketwocolumns@{#1}% \setXnotespositionliketwocolumns@{#1}% \print@Xfootnoterule{#1}%% \fi% \else% \setXnoteswidthliketwocolumns@{#1}% \setXnotespositionliketwocolumns@{#1}% \print@Xfootnoterule{#1}%% \fi% \setlength{\parindent}{0pt} {\csuse{Xnotefontsize@#1}\csuse{txtbeforeXnotes@#1}} \unvbox\csname mp#1footins\endcsname}} \newcommand*{\ledfootinsdim}{0.8\vsize} % kept for backward compatibility, should'nt be used anymore. \newtoggle{preXnotes@} \toggletrue{preXnotes@} \newcommand{\preXnotes@}{0pt} \newcommand*{\preXnotes}[1]{\renewcommand{\preXnotes@}{#1}} \newtoggle{prenotesX@} \toggletrue{prenotesX@} \newcommand{\prenotesX@}{0pt} \newcommand*{\prenotesX}[1]{\renewcommand{\prenotesX@}{#1}} \newcommand*{\footnormal}[1]{% \csgdef{series@display#1}{normal} \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 \csxdef{default@#1footins}{1000}%Use this to confine the notes to one side only \dimen\csname #1footins\endcsname=\csuse{maxhXnotes@#1} \skip\csname #1footins\endcsname=\csuse{beforeXnotes@#1}% \advance\skip\csname #1footins\endcsname by\csuse{afterXrule@#1}% \ifnoledgroup@\else% \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=\csuse{maxhXnotes@#1} \skip\csname mp#1footins\endcsname=\csuse{beforeXnotes@#1}% \advance\skip\csname mp#1footins\endcsname by\csuse{afterXrule@#1}% \fi } \newcommand*{\footparagraph}[1]{% \csgdef{series@display#1}{paragraph} \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 \csxdef{default@#1footins}{1000}%Use this to confine the notes to one side only \dimen\csname #1footins\endcsname=\csuse{maxhXnotes@#1} \skip\csname #1footins\endcsname=\csuse{beforeXnotes@#1}% \advance\skip\csname #1footins\endcsname by\csuse{afterXrule@#1}% \para@footsetup{#1} \ifnoledgroup@\else \expandafter\let\csname mpv#1footnote\endcsname=\mppara@vfootnote \expandafter\let\csname mp#1footgroup\endcsname=\mppara@footgroup \count\csname mp#1footins\endcsname=1000 \dimen\csname mp#1footins\endcsname=\csuse{maxhXnotes@#1} \skip\csname mp#1footins\endcsname=\csuse{beforeXnotes@#1}% \advance\skip\csname mp#1footins\endcsname by\csuse{afterXrule@#1}% \fi } \providecommand{\footfudgefiddle}{64} \newcommand*{\para@footsetup}[1]{{\csuse{Xnotefontsize@#1} \setXnoteswidthliketwocolumns@{#1}% \dimen0=\baselineskip \multiply\dimen0 by 1024 \divide \dimen0 by \columnwidth \multiply\dimen0 by \footfudgefiddle\relax \csxdef{#1footfudgefactor}{% \expandafter\strip@pt\dimen0 }}} \newcommand*{\parafootstart}[1]{% \rightskip=0pt \leftskip=0pt \parindent=0pt \ifdimequal{0pt}{\preXnotes@}{}% {% \iftoggle{preXnotes@}{% \togglefalse{preXnotes@}% \skip\csname #1footins\endcsname=% \dimexpr\csuse{preXnotes@}+\csuse{afterXrule@#1}\relax% }% {}% }% \vskip\skip\csname #1footins\endcsname% \setXnoteswidthliketwocolumns@{#1}% \setXnotespositionliketwocolumns@{#1}% \print@Xfootnoterule{#1}% \let\bidi@RTL@everypar\@empty% \noindent\leavevmode} \newcommand*{\para@vfootnote}[2]{% \insert\csname #1footins\endcsname \bgroup \csuse{bhookXnote@#1} \csuse{Xnotefontsize@#1} \footsplitskips \setbox0=\vbox{\hsize=\maxdimen% \let\bidi@RTL@everypar\@empty% \noindent\csname #1footfmt\endcsname#2[#1]}% \setbox0=\hbox{\unvxh0[#1]}% \dp0=0pt \ht0=\csname #1footfudgefactor\endcsname\wd0 \if@RTL\noindent \leavevmode\fi\box0% \penalty0 \egroup} \newcommand*{\mppara@vfootnote}[2]{% \global\setbox\@nameuse{mp#1footins}\vbox{% \unvbox\@nameuse{mp#1footins}% \csuse{bhookXnote@#1} \csuse{Xnotefontsize@#1} \footsplitskips \setbox0=\vbox{\hsize=\maxdimen% \let\bidi@RTL@everypar\@empty% \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}% \Xledsetnormalparstuff{#4}% \printlinefootnote{#1}{#4}% {\nottoggle{Xlemmadisablefontselection@#4}{\select@lemmafont#1|#2}{#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 \ifcsstring{Xragged@#1}{L}{\RaggedLeft}{}% \ifcsstring{Xragged@#1}{R}{\RaggedRight}{}% \makehboxofhboxes \setbox0=\hbox{{\csuse{Xnotefontsize@#1}\csuse{txtbeforeXnotes@#1}}\unhbox0 \removehboxes}% \csuse{Xnotefontsize@#1} \noindent\unhbox0\par% \global\hsize=\old@hsize% }% \newcommand*{\mppara@footgroup}[1]{{% \setXnoteswidthliketwocolumns@{#1}% \vskip\skip\@nameuse{mp#1footins} \ifl@dpairing\ifparledgroup% \leavevmode\marks\parledgroup@{begin}% \marks\parledgroup@series{#1}% \marks\parledgroup@type{Xfootnote}% \fi\fi\normalcolor \ifparledgroup% \ifl@dpairing% \else% \setXnoteswidthliketwocolumns@{#1}% \setXnotespositionliketwocolumns@{#1}% \print@Xfootnoterule{#1}%% \fi% \else% \setXnoteswidthliketwocolumns@{#1}% \setXnotespositionliketwocolumns@{#1}% \print@Xfootnoterule{#1}% \fi% \unvbox\csname mp#1footins\endcsname \ifcsstring{Xragged@#1}{L}{\RaggedLeft}{}% \ifcsstring{Xragged@#1}{R}{\RaggedRight}{}% \makehboxofhboxes \setbox0=\hbox{{\csuse{Xnotefontsize@#1}\csuse{txtbeforeXnotes@#1}}\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}% {\IfStrEq{\csuse{symlinenum@#1}}{\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]{% \csgdef{series@display#1}{threecol} \expandafter\let\csname v#1footnote\endcsname=\threecolvfootnote \expandafter\let\csname #1footfmt\endcsname=\threecolfootfmt \expandafter\let\csname #1footgroup\endcsname=\threecolfootgroup \dimen\csname #1footins\endcsname=\csuse{maxhXnotes@#1}% \skip\csname #1footins\endcsname=\csuse{beforeXnotes@#1}% \advance\skip\csname #1footins\endcsname by\csuse{afterXrule@#1}% \threecolfootsetup{#1} \ifnoledgroup@\else \expandafter\let\csname mpv#1footnote\endcsname=\mpnormalvfootnote \expandafter\let\csname mp#1footgroup\endcsname=\mpthreecolfootgroup \skip\csname mp#1footins\endcsname=\csuse{beforeXnotes@#1}% \advance\skip\csname mp#1footins\endcsname by\csuse{afterXrule@#1}% \mpthreecolfootsetup{#1} \fi } \newcommand*{\threecolfootsetup}[1]{% \count\csname #1footins\endcsname 333 \csxdef{default@#1footins}{333}%Use this to confine the notes to one side only \multiply\dimen\csname #1footins\endcsname \thr@@} \newcommand*{\mpthreecolfootsetup}[1]{% \count\csname mp#1footins\endcsname 333 \multiply\dimen\csname mp#1footins\endcsname \thr@@} \notbool{parapparatus@}{\newcommand*}{\newcommand}{\threecolvfootnote}[2]{% \insert\csname #1footins\endcsname\bgroup \csuse{Xnotefontsize@#1} \footsplitskips \csname #1footfmt\endcsname #2[#1]\egroup} \notbool{parapparatus@}{\newcommandx*}{\newcommandx}{\threecolfootfmt}[4][4=Z]{% \normal@pars \hsize \csuse{hsizethreecol@#4} \nottoggle{Xparindent@#4}{\parindent=\z@}{} \tolerance=5000 \hangindent=\csuse{Xhangindent@#4} \leavevmode \csuse{Xcolalign@#4}% \strut{\printlinefootnote{#1}{#4}}% {\nottoggle{Xlemmadisablefontselection@#4}{\select@lemmafont#1|#2}{#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]{{\csuse{Xnotefontsize@#1}% \noindent\csuse{txtbeforeXnotes@#1}\par% \splittopskip=\ht\strutbox \expandafter \rigidbalance\csname #1footins\endcsname \thr@@ \splittopskip}} \newcommand*{\mpthreecolfootgroup}[1]{{% \vskip\skip\@nameuse{mp#1footins} \ifl@dpairing\ifparledgroup% \leavevmode\marks\parledgroup@{begin}% \marks\parledgroup@series{#1}% \marks\parledgroup@type{Xfootnote}% \fi\fi\normalcolor \ifparledgroup% \ifl@dpairing% \else% \setXnoteswidthliketwocolumns@{#1}% \setXnotespositionliketwocolumns@{#1}% \print@Xfootnoterule{#1}% \fi% \else% \setXnoteswidthliketwocolumns@{#1}% \setXnotespositionliketwocolumns@{#1}% \print@Xfootnoterule{#1}% \fi% {\csuse{Xnotefontsize@#1}\noindent\csuse{txtbeforeXnotes@#1}}\par \splittopskip=\ht\strutbox \expandafter \rigidbalance\csname mp#1footins\endcsname \thr@@ \splittopskip}} \newcommand*{\foottwocol}[1]{% \csgdef{series@display#1}{twocol} \expandafter\let\csname v#1footnote\endcsname=\twocolvfootnote \expandafter\let\csname #1footfmt\endcsname=\twocolfootfmt \expandafter\let\csname #1footgroup\endcsname=\twocolfootgroup \dimen\csname #1footins\endcsname=\csuse{maxhXnotes@#1}% \skip\csname #1footins\endcsname=\csuse{beforeXnotes@#1}% \advance\skip\csname #1footins\endcsname by\csuse{afterXrule@#1}% \twocolfootsetup{#1} \ifnoledgroup@\else \expandafter\let\csname mpv#1footnote\endcsname=\mpnormalvfootnote \expandafter\let\csname mp#1footgroup\endcsname=\mptwocolfootgroup \skip\csname mp#1footins\endcsname=\csuse{beforeXnotes@#1}% \advance\skip\csname mp#1footins\endcsname by\csuse{afterXrule@#1}% \mptwocolfootsetup{#1} \fi } \newcommand*{\twocolfootsetup}[1]{% \count\csname #1footins\endcsname 500 \csxdef{default@#1footins}{500}%Use this to confine the notes to one side only \multiply\dimen\csname #1footins\endcsname \tw@} \notbool{parapparatus@}{\newcommand*}{\newcommand}{\twocolvfootnote}[2]{\insert\csname #1footins\endcsname\bgroup \csuse{Xnotefontsize@#1} \footsplitskips \csname #1footfmt\endcsname #2[#1]\egroup} \notbool{parapparatus@}{\newcommandx*}{\newcommandx}{\twocolfootfmt}[4][4=Z]{% 4th arg is optional, for backward compatibility \normal@pars \hsize \csuse{hsizetwocol@#4} \nottoggle{Xparindent@#4}{\parindent=\z@}{} \tolerance=5000 \hangindent=\csuse{Xhangindent@#4} \leavevmode \csuse{Xcolalign@#4}% \strut{\printlinefootnote{#1}{#4}}% {\nottoggle{Xlemmadisablefontselection@#4}{\select@lemmafont#1|#2}{#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} \noindent\csuse{txtbeforeXnotes@#1}\par% \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} \ifl@dpairing\ifparledgroup% \leavevmode\marks\parledgroup@{begin}% \marks\parledgroup@series{#1}% \marks\parledgroup@type{Xfootnote}% \fi\fi\normalcolor \ifparledgroup% \ifl@dpairing% \else% \setXnoteswidthliketwocolumns@{#1}% \setXnotespositionliketwocolumns@{#1}% \print@Xfootnoterule{#1}% \fi% \else% \setXnoteswidthliketwocolumns@{#1}% \setXnotespositionliketwocolumns@{#1}% \print@Xfootnoterule{#1}% \fi% {\csuse{Xnotefontsize@#1}\noindent\csuse{txtbeforeXnotes@#1}}\par \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}{}{% \apptocmd{\@footnotetext}{\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} } \pretocmd{\@footnotetext}{% \ifnumberedpar@ \edtext{}{\l@dbfnote{#1}}% \else }{}{} \apptocmd{\@footnotetext}{\fi}{}{}% \newcommand{\l@dbfnote}[1]{% \ifnumberedpar@ \gdef\@tag{#1\relax}% \xright@appenditem{\noexpand\vl@dbfnote{{\expandonce\@tag}}{\@thefnmark}}% \to\inserts@list \global\advance\insert@count \@ne \fi\ignorespaces} \newcommand{\vl@dbfnote}[2]{% \def\@thefnmark{#2}% \@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}}}} \notbool{parapparatus@}{\newcommand*}{\newcommand}{\normalvfootnoteX}[2]{% \insert\@nameuse{footins#1}\bgroup \csuse{bhooknoteX@#1} \csuse{notefontsizeX@#1} \footsplitskips \ifl@dpairing\ifl@dpaging\else% \setnotesXwidthliketwocolumns@{#1}% \fi\fi% \setnotesXpositionliketwocolumns@{#1}% \spaceskip=\z@skip \xspaceskip=\z@skip \csuse{\csuse{footnote@dir}}\@nameuse{footfmt#1}{#1}{#2}\egroup} \newcommand*{\mpnormalvfootnoteX}[2]{% \global\setbox\@nameuse{mpfootins#1}\vbox{% \unvbox\@nameuse{mpfootins#1} \csuse{bhooknoteX@#1} \csuse{notefontsizeX@#1} \hsize\columnwidth \@parboxrestore \color@begingroup \@nameuse{footfmt#1}{#1}{#2}\color@endgroup}} \notbool{parapparatus@}{\newcommand*}{\newcommand}{\normalfootfmtX}[2]{% \ifluatex% \textdir\footnote@luatextextdir% \pardir\footnote@luatexpardir% \par% \fi% \protected@edef\@currentlabel{% \@nameuse{@thefnmark#1}% }% \ledsetnormalparstuffX{#1}% \hangindent=\csuse{hangindentX@#1}% {{\csuse{notenumfontX@#1}\@nameuse{footfootmark#1}}\strut% #2\strut\par}} \newcommand*{\normalfootfootmarkX}[1]{% \textsuperscript{\@nameuse{@thefnmark#1}}} \newcommand*{\normalfootstartX}[1]{% \ifdimequal{0pt}{\prenotesX@}{}% {% \iftoggle{prenotesX@}{% \togglefalse{prenotesX@}% \skip\csname footins#1\endcsname=% \dimexpr\csuse{prenotesX@}+\csuse{afterruleX@#1}\relax% }% {}% }% \vskip\skip\csname footins#1\endcsname% \leftskip=\z@ \rightskip=\z@ \ifl@dpairing\else% \hsize=\old@hsize% \fi% \setnotesXwidthliketwocolumns@{#1}% \setnotesXpositionliketwocolumns@{#1}% \print@footnoteXrule{#1}% }% \let\normalfootnoteruleX=\footnoterule \newcommand*{\normalfootgroupX}[1]{% \unvbox\@nameuse{footins#1}% \hsize=\old@hsize% }% \newcommand*{\mpnormalfootgroupX}[1]{% \vskip\skip\@nameuse{mpfootins#1} \ifl@dpairing\ifparledgroup% \leavevmode\marks\parledgroup@{begin}% \marks\parledgroup@series{#1}% \marks\parledgroup@type{footnoteX}% \fi\fi\normalcolor \ifparledgroup% \ifl@dpairing% \else% \setnotesXwidthliketwocolumns@{#1}% \setnotesXpositionliketwocolumns@{#1}% \print@footnoteXrule{#1}% \fi% \else% \setnotesXwidthliketwocolumns@{#1}% \setnotesXpositionliketwocolumns@{#1}% \print@footnoteXrule{#1}% \fi% \unvbox\@nameuse{mpfootins#1}} \newcommand{\normalbfnoteX}[2]{% \ifnumberedpar@ \protected@xdef\thisfootnote{\csuse{thefootnote#1}}% \xright@appenditem{\noexpand\vbfnoteX{#1}{#2}{\expandonce\thisfootnote}}% \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]{% \csgdef{series@displayX#1}{normalX} \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 \csxdef{default@footins#1}{1000}%Use to have note only for one side \dimen\csname footins#1\endcsname=\csuse{maxhnotesX@#1} \skip\csname footins#1\endcsname=\csuse{beforenotesX@#1}% \advance\skip\csname footins#1\endcsname by\csuse{afterruleX@#1}% \ifnoledgroup@\else% \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=\csuse{maxhnotesX@#1} \skip\csname mpfootins#1\endcsname=\csuse{beforenotesX@#1}% \advance\skip\csname mpfootins#1\endcsname by\csuse{afterruleX@#1}% \fi } \newcommand*{\foottwocolX}[1]{% \csgdef{series@displayX#1}{twocolX} \expandafter\let\csname regvfootnote#1\endcsname=\twocolvfootnoteX \expandafter\let\csname footfmt#1\endcsname=\twocolfootfmtX \expandafter\let\csname footgroup#1\endcsname=\twocolfootgroupX \dimen\csname footins#1\endcsname=\csuse{maxhnotesX@#1}% \skip\csname footins#1\endcsname=\csuse{beforenotesX@#1}% \advance\skip\csname footins#1\endcsname by \csuse{afterruleX@#1}\relax% \twocolfootsetupX{#1} \ifnoledgroup@\else% \expandafter\let\csname mpvfootnote#1\endcsname=\mpnormalvfootnoteX \expandafter\let\csname mpfootgroup#1\endcsname=\mptwocolfootgroupX \skip\csname mpfootins#1\endcsname=\csuse{beforenotesX@#1}% \advance\skip\csname mpfootins#1\endcsname by\csuse{afterruleX@#1} \mptwocolfootsetupX{#1} \fi% } \newcommand*{\twocolfootsetupX}[1]{% \count\csname footins#1\endcsname 500 \csxdef{default@footins#1}{500}%Use this to confine the notes to one side only \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@} \notbool{parapparatus@}{\newcommand*}{\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} \notbool{parapparatus@}{\newcommand*}{\newcommand}{\twocolfootfmtX}[2]{% \protected@edef\@currentlabel{% \@nameuse{@thefnmark#1}% }% \normal@pars \hangindent=\csuse{hangindentX@#1}% \hsize \csuse{hsizetwocolX@#1} \nottoggle{parindentX@#1}{\parindent=\z@}{} \tolerance=5000\relax \leavevmode \csuse{colalignX@#1}% {\csuse{notenumfontX@#1}\@nameuse{footfootmark#1}\strut% #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} \ifl@dpairing\ifparledgroup% \leavevmode\marks\parledgroup@{begin}% \marks\parledgroup@series{#1}% \marks\parledgroup@type{footnoteX}% \fi\fi\normalcolor \ifparledgroup% \ifl@dpairing% \else% \setnotesXwidthliketwocolumns@{#1}% \setnotesXpositionliketwocolumns@{#1}% \print@footnoteXrule{#1}% \fi% \else% \setnotesXwidthliketwocolumns@{#1}% \setnotesXpositionliketwocolumns@{#1}% \print@footnoteXrule{#1}% \fi% \splittopskip=\ht\strutbox \expandafter \rigidbalance\csname mpfootins#1\endcsname \tw@ \splittopskip}} \newcommand*{\footthreecolX}[1]{% \csgdef{series@displayX#1}{threecolX} \expandafter\let\csname regvfootnote#1\endcsname=\threecolvfootnoteX \expandafter\let\csname footfmt#1\endcsname=\threecolfootfmtX \expandafter\let\csname footgroup#1\endcsname=\threecolfootgroupX \dimen\csname footins#1\endcsname=\csuse{maxhnotesX@#1}% \skip\csname footins#1\endcsname=\csuse{beforenotesX@#1}% \advance\skip\csname footins#1\endcsname by \csuse{afterruleX@#1}\relax% \threecolfootsetupX{#1} \ifnoledgroup@\else% \expandafter\let\csname mpvfootnote#1\endcsname=\mpnormalvfootnoteX \expandafter\let\csname mpfootgroup#1\endcsname=\mpthreecolfootgroupX \skip\csname mpfootins#1\endcsname=\csuse{beforenotesX@#1}% \advance\skip\csname mpfootins#1\endcsname by\csuse{afterruleX@#1} \mpthreecolfootsetupX{#1} \fi% } \newcommand*{\threecolfootsetupX}[1]{% \count\csname footins#1\endcsname 333 \csxdef{default@footins#1}{333}%Use this to confine the notes to one side only \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@@} \notbool{parapparatus@}{\newcommand*}{\newcommand}{\threecolvfootnoteX}[2]{% \insert\csname footins#1\endcsname\bgroup \csuse{notefontsizeX@#1} \footsplitskips \@nameuse{footfmt#1}{#1}{#2}\egroup} \notbool{parapparatus@}{\newcommand*}{\newcommand}{\threecolfootfmtX}[2]{% \protected@edef\@currentlabel{% \@nameuse{@thefnmark#1}% }% \hangindent=\csuse{hangindentX@#1}% \normal@pars \hsize \csuse{hsizethreecolX@#1} \nottoggle{parindentX@#1}{\parindent=\z@}{} % \tolerance=5000\relax \leavevmode \csuse{colalignX@#1}% {\csuse{notenumfontX@#1}\@nameuse{footfootmark#1}\strut% #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} \ifl@dpairing\ifparledgroup \leavevmode\marks\parledgroup@{begin}% \marks\parledgroup@series{#1}% \marks\parledgroup@type{footnoteX}% \fi\fi\normalcolor \ifparledgroup% \ifl@dpairing% \else% \setnotesXwidthliketwocolumns@{#1}% \setnotesXpositionliketwocolumns@{#1}% \print@footnoteXrule{#1}% \fi% \else% \setnotesXwidthliketwocolumns@{#1}% \setnotesXpositionliketwocolumns@{#1}% \print@footnoteXrule{#1}% \fi% \splittopskip=\ht\strutbox \expandafter \rigidbalance\csname mpfootins#1\endcsname \thr@@ \splittopskip}} \newcommand*{\footparagraphX}[1]{% \csgdef{series@displayX#1}{paragraphX}% \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 \csxdef{default@footins#1}{1000}%Use this to confine the notes to one side only \dimen\csname footins#1\endcsname=\csuse{maxhnotesX@#1} \skip\csname footins#1\endcsname=\csuse{beforenotesX@#1}% \advance\skip\csname footins#1\endcsname by\csuse{afterruleX@#1}% \para@footsetupX{#1} \ifnoledgroup@\else \expandafter\let\csname mpvfootnote#1\endcsname=\mppara@vfootnoteX \expandafter\let\csname mpfootgroup#1\endcsname=\mppara@footgroupX \count\csname mpfootins#1\endcsname=1000 \dimen\csname mpfootins#1\endcsname=\csuse{maxhnotesX@#1} \skip\csname mpfootins#1\endcsname=\csuse{beforenotesX@#1}% \advance\skip\csname mpfootins#1\endcsname by\csuse{afterruleX@#1}% \fi } \newcommand*{\para@footsetupX}[1]{{\csuse{notefontsizeX@#1} \setnotesXwidthliketwocolumns@{#1}% \dimen0=\baselineskip \multiply\dimen0 by 1024 \divide\dimen0 by \columnwidth \multiply\dimen0 by \footfudgefiddle\relax% \expandafter \xdef\csname footfudgefactor#1\endcsname{% \expandafter\strip@pt\dimen0 }}} \newcommand*{\parafootstartX}[1]{% \ifdimequal{0pt}{\prenotesX@}{}% {% \iftoggle{prenotesX@}{% \togglefalse{prenotesX@}% \skip\csname footins#1\endcsname=% \dimexpr\csuse{prenotesX@}+\csuse{afterruleX@#1}\relax% }% {}% }% \vskip\skip\csname footins#1\endcsname% \leftskip=\z@ \rightskip=\z@ \parindent=\z@ \vskip\skip\@nameuse{footins#1}% \setnotesXwidthliketwocolumns@{#1}% \setnotesXpositionliketwocolumns@{#1}% \print@footnoteXrule{#1}% } \newcommand*{\para@vfootnoteX}[2]{% \insert\csname footins#1\endcsname \bgroup \csuse{bhooknoteX@#1} \csuse{notefontsizeX@#1} \footsplitskips \setbox0=\vbox{\hsize=\maxdimen% \let\bidi@RTL@everypar\@empty% \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{bhooknoteX@#1} \csuse{notefontsizeX@#1} \footsplitskips \setbox0=\vbox{\hsize=\maxdimen% \let\bidi@RTL@everypar\@empty% \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]{% \protected@edef\@currentlabel{% \@nameuse{@thefnmark#1}% }% \insertparafootsep{#1}% \ledsetnormalparstuffX{#1}% {\csuse{notenumfontX@#1}\csuse{notenumfontX@#1}\@nameuse{footfootmark#1}\strut% #2\penalty-10}} \newcommand*{\para@footgroupX}[1]{% \unvbox\csname footins#1\endcsname \ifcsstring{raggedX@#1}{L}{\RaggedLeft}{}% \ifcsstring{raggedX@#1}{R}{\RaggedRight}{}% \makehboxofhboxes \setbox0=\hbox{\unhbox0 \removehboxes}% \csuse{notefontsizeX@#1} \noindent\unhbox0\par} \newcommand*{\mppara@footgroupX}[1]{{% \setnotesXwidthliketwocolumns@{#1}% \vskip\skip\@nameuse{mpfootins#1} \ifl@dpairing\ifparledgroup \leavevmode% \leavevmode\marks\parledgroup@{begin}% \marks\parledgroup@series{#1}% \marks\parledgroup@type{footnoteX}% \fi\fi\normalcolor \ifparledgroup% \ifl@dpairing% \else% \setnotesXwidthliketwocolumns@{#1}% \setnotesXpositionliketwocolumns@{#1}% \print@footnoteXrule{#1}% \fi% \else% \setnotesXwidthliketwocolumns@{#1}% \setnotesXpositionliketwocolumns@{#1}% \print@footnoteXrule{#1}% \fi% \unvbox\csname mpfootins#1\endcsname \ifcsstring{raggedX@#1}{L}{\RaggedLeft}{}% \ifcsstring{raggedX@#1}{R}{\RaggedRight}{}% \makehboxofhboxes \setbox0=\hbox{\unhbox0 \removehboxes}% \csuse{notefontsizeX@#1} \noindent\unhbox0\par}} \newdimen\old@hsize% \AtBeginDocument{\old@hsize=\hsize}% \newcommand{\setXnoteswidthliketwocolumns@}[1]{% \global\let\hsize@fornote=\hsize% \global\old@hsize=\hsize% \iftoggle{Xnoteswidthliketwocolumns@#1}% {% \csuse{setwidthliketwocolumns@\columns@position}% \global\let\hsize@fornote=\hsize% }% {}% \let\hsize=\hsize@fornote% \let\columnwidth=\hsize@fornote% }% \newcommand{\setnotesXwidthliketwocolumns@}[1]{% \global\let\hsize@fornote=\hsize% \global\old@hsize=\hsize% \iftoggle{notesXwidthliketwocolumns@#1}% {% \csuse{setwidthliketwocolumns@\columns@position}% \global\let\hsize@fornote=\hsize% }% {}% \let\hsize=\hsize@fornote% \let\columnwidth=\hsize@fornote% }% \newcommand{\setXnotespositionliketwocolumns@}[1]{% \iftoggle{Xnoteswidthliketwocolumns@#1}{% \csuse{setnotespositionliketwocolumns@\columns@position}% }{}% }% \newcommand{\setnotesXpositionliketwocolumns@}[1]{% \iftoggle{notesXwidthliketwocolumns@#1}{% \csuse{setnotespositionliketwocolumns@\columns@position}% }{}% }% \def\@fnpos{familiar-critical} \def\@mpfnpos{critical-familiar} \newcommand{\fnpos}[1]{\xdef\@fnpos{#1}} \newcommand{\mpfnpos}[1]{\xdef\@mpfnpos{#1}} \newcommand{\print@Xfootnoterule}[1]{% \vskip-\csuse{afterXrule@#1}%Because count in \dimen\csuse{#1footins} \nointerlineskip% \moveleft-\leftskip\vbox{\csuse{#1footnoterule}}% \nointerlineskip% \vskip\csuse{afterXrule@#1}% }% \newcommand{\print@footnoteXrule}[1]{% \vskip-\csuse{afterruleX@#1}%Because count in \dimen\csuse{footins#1} \nointerlineskip% \moveleft-\leftskip\vbox{\csuse{footnoterule#1}}% \nointerlineskip% \vskip\csuse{afterruleX@#1}% }% \gdef\firstXseries@{} \newcommand{\prepare@preXnotes}[1]{% \ifdimequal{0pt}{\preXnotes@}% {}% {% \IfStrEq{\firstXseries@}{}{% \global\skip\csuse{#1footins}=\preXnotes@% \global\advance\skip\csname #1footins\endcsname by\csuse{afterXrule@#1}% \gdef\firstXseries@{#1}% }% {% \ifseriesbefore{#1}{\firstXseries@}% {% \global\skip\csuse{#1footins}=\csuse{beforeXnotes@\firstXseries@}% \global\advance\skip\csname #1footins\endcsname by\csuse{afterXrule@#1}% \gdef\firstXseries@{#1}% }% {}% }% }% } \gdef\firstseriesX@{} \newcommand{\prepare@prenotesX}[1]{% \ifdimequal{0pt}{\prenotesX@}% {}% {% \IfStrEq{\firstseriesX@}{}{% \global\skip\csuse{footins#1}=\prenotesX@% \global\advance\skip\csname footins#1\endcsname by\csuse{afterruleX@#1}% \gdef\firstseriesX@{#1}% }% {% \ifseriesbefore{#1}{\firstseriesX@}% {% \global\skip\csuse{footins#1}=\csuse{beforenotesX@\firstseriesX@}% \global\advance\skip\csname footins#1\endcsname by\csuse{afterruleX@#1}% \gdef\firstXseries@{#1}% }% {}% }% }% } \newcommand\print@notesX[1]{% \csuse{footstart#1}{#1}% \csuse{footgroup#1}{#1}% }% \newcommand*{\doxtrafeeti}{% \unless\ifnofamiliar@% \gdef\firstseriesX@{}% \setbox\@outputbox \vbox{% \unvbox\@outputbox% \def\do##1{% \ifvoid\csuse{footins##1}\else% \global\skip\csuse{footins##1}=\csuse{beforenotesX@##1}% \global\advance\skip\csuse{footins##1} by\csuse{afterruleX@##1}% \print@notesX{##1}% \fi% }% \dolistloop{\@series}}% \fi% }% \newcommand{\doreinxtrafeeti}{% \unless\ifnofamiliar@% \def\do##1{% \ifvoid\csuse{footins##1}\else \insert% \csuse{footins##1} {\unvbox\csuse{footins##1}}% \fi% }% \dolistloop{\@series}% \fi% }% \newcommand*{\addfootinsX}[1]{% \led@warn@AddfootinsXObsolete% \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}% } \ifbool{noend@}{}{%Used instead of \ifnoend@ to prevent expansion problem \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}}} \global\notbool{parapparatus@}{}{\long}\def\endprint#1#2#3#4#5{{% \ifXendinsertsep@% \hskip\csuse{Xendafternote@#4}% \csuse{Xendsep@#4}% \else% \iftoggle{Xendparagraph@#4}% {\global\Xendinsertsep@true}% {}% \fi% \xdef\@currentseries{#4}% \def\do##1{% \toggletrue{##1@}% }% \notblank{#5}{\docsvlist{#5}}{}% \csuse{bhookXendnote@#4}% \csuse{Xendnotefontsize@#4}% {% \csuse{Xendnotenumfont@#4}% \ifdimequal{\csuse{boxXendlinenum@#4}}{0pt}% {\printendlines#1|}% {\leavevmode% \hbox to \csuse{boxXendlinenum@#4}% {% \IfSubStr{RC}{\csuse{boxXendlinenumalign@#4}}{\hfill}{}% \printendlines#1|% \IfSubStr{LC}{\csuse{boxXendlinenumalign@#4}}{\hfill}{}% }}% }% \enspace{% \nottoggle{Xendlemmadisablefontselection@#4}% {\select@lemmafont#1|#2}% {#2}% }% \ifboolexpr{% togl {nosep@}% or test{\ifcsempty{Xendlemmaseparator@#4}}% }% {\hskip\csuse{Xendinplaceoflemmaseparator@#4}}% {\nobreak% \hskip\csuse{Xendbeforelemmaseparator@#4}% \csuse{Xendlemmaseparator@#4}% \hskip\csuse{Xendafterlemmaseparator@#4}% }% #3% \nottoggle{Xendparagraph@#4}{\par}{}% \togglefalse{fulllines@}% \togglefalse{nosep@}% }}% \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% \ifl@d@dash% \ifboolexpr{togl{fulllines@} or test{\ifcsempty{Xendtwolines@\@currentseries}}}% {}% {% \setistwofollowinglines{#1}{#2}{#4}{#5}% \ifboolexpr{% (% togl {Xendtwolinesbutnotmore@\@currentseries}% and not% (% bool {istwofollowinglines@}% )% )% or% (% (not test{\ifnumequal{#1}{#4}})% and togl{Xendtwolinesonlyinsamepage@\@currentseries}% )% }% {}% {% \l@d@dashfalse% \l@d@twolinestrue% \l@d@elinfalse% \l@d@eslfalse% \ifcsempty{Xendmorethantwolines@\@currentseries}% {}% {\ifistwofollowinglines@\else% \l@d@morethantwolinestrue% \fi% }% }% }% \fi% }% \def\printendlines#1|#2|#3|#4|#5|#6|#7|{\begingroup \setprintendlines{#1}{#2}{#3}{#4}{#5}{#6}% \ifdimequal{\csuse{boxXendstartlinenum@\@currentseries}}{0pt}% {\bgroup}% {\leavevmode\hbox to \csuse{boxXendstartlinenum@\@currentseries}\bgroup\hfill}% \printnpnum{#1}% \ifoldprintnpnumspace@\space\fi% \linenumrep{#2}% \ifl@d@ssub \fullstop \sublinenumrep{#3}\fi \egroup% \ifdimequal{\csuse{boxXendendlinenum@\@currentseries}}{0pt}% {\bgroup}% {\hbox to \csuse{boxXendendlinenum@\@currentseries}\bgroup}% \ifl@d@twolines% \ifl@d@morethantwolines% \csuse{Xendmorethantwolines@\@currentseries}% \else% \csuse{Xendtwolines@\@currentseries}% \fi% \else% \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% \fi% \ifdimequal{\csuse{boxXendendlinenum@\@currentseries}}{0pt}% {}% {\hfill}%Prevent underfull hbox \egroup% \endgroup% }% \newcommand*{\printnpnum}[1]{p.#1) } \newif\ifXendinsertsep@% \newcommand*{\doendnotes}[1]{\l@dend@close \begingroup \makeatletter \expandafter\let\csname #1end\endcsname=\endprint \input\jobname.end \global\Xendinsertsep@false% \endgroup} \newcommand*{\doendnotesbysection}[1]{% \l@dend@close% \global\expandafter\advance\csname #1end@bysection\endcsname by 1% \begingroup% \makeatletter% \def\l@d@section##1{% \ifnumequal{##1}{\csname #1end@bysection\endcsname}% {\cslet{#1end}{\endprint}}% {\cslet{#1end}{\@gobblefive}}% }% \input\jobname.end% \global\Xendinsertsep@false% \endgroup% }% \newcommand*{\noendnotes}{% \led@war@noendnotesDeprecated% \global\let\l@dend@stuff=\relax% \global\chardef\l@d@end=16% }% }% \newcommand{\newseries}[1]{% \def\do##1{\newseries@{##1}}% \docsvlist{#1} } \newcommand{\@series}{} \newcommand{\newseries@}[1]{ \xifinlist{#1}{\@series}{\led@warn@SeriesStillExist{#1}}% {% \ifdefined\newseries@eledpar% \newseries@eledpar{#1}% \fi% \unless\ifnocritical@ \newtoggle{Xparindent@#1} \newtoggle{Xlemmadisablefontselection@#1} \csgdef{Xhangindent@#1}{0pt}% \csgdef{Xragged@#1}{}% \csgdef{hsizetwocol@#1}{0.45 \hsize}% \csgdef{hsizethreecol@#1}{.3 \hsize}% \csgdef{Xcolalign@#1}{\raggedright}% \csgdef{Xnotenumfont@#1}{\notenumfont}% \csgdef{Xnotefontsize@#1}{\notefontsetup}% \csgdef{bhookXnote@#1}{}% \csgdef{boxlinenum@#1}{0pt}% \csgdef{boxlinenumalign@#1}{L}% \csgdef{boxstartlinenum@#1}{0pt}% \csgdef{boxendlinenum@#1}{0pt}% \csgdef{boxsymlinenum@#1}{0pt}% \newtoggle{numberonlyfirstinline@#1}% \newtoggle{numberonlyfirstintwolines@#1}% \csgdef{twolines@#1}{}% \csgdef{morethantwolines@#1}{}% \newtoggle{twolinesbutnotmore@#1}% \newtoggle{twolinesonlyinsamepage@#1}% \newtoggle{onlypstartinfootnote@#1}% \newtoggle{pstartinfootnoteeverytime@#1}% \newtoggle{pstartinfootnote@#1}% \csgdef{symlinenum@#1}{\symplinenum}% \newtoggle{nonumberinfootnote@#1}% \csgdef{beforenumberinfootnote@#1}{0pt}% \csgdef{afternumberinfootnote@#1}{0.5em}% \newtoggle{nonbreakableafternumber@#1}% \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{beforeXnotes@#1}{1.2em \@plus .6em \@minus .6em} \csgdef{afterXrule@#1}{0pt} \csgdef{txtbeforeXnotes@#1}{} \csgdef{maxhXnotes@#1}{\ledfootinsdim} \newtoggle{Xnoteswidthliketwocolumns@#1}% \expandafter\newinsert\csname #1footins\endcsname% \unless\ifnoledgroup@% \expandafter\newinsert\csname mp#1footins\endcsname% \fi% \global\notbool{parapparatus@}{\expandafter\newcommand\expandafter *}{\expandafter\newcommand}\csname #1footnote\endcsname[2][]{% \ifnum\@edtext@level>0% \begingroup% \newcommand{\content}{##2}% \ifnumberedpar@% \ifledRcol% \ifluatex% \footnotelang@lua[R]% \fi% \@ifundefined{xpg@main@language}%if polyglossia {}% {\footnotelang@poly[R]}% \footnoteoptions@[R]{##1}{true}% \xright@appenditem{% \noexpand\prepare@preXnotes{#1}% \noexpand\prepare@edindex@fornote{\l@d@nums}% \unexpanded{\def\sw@list@inedtext}{\expandafter\unexpanded\expandafter{\sw@inthisedtext}}%The value of the \sw@inthisedtext of current edtext will be pushed to \sw@list@inedtext when the notes are expanded. \noexpand\csuse{v#1footnote}{#1}% {{\l@d@nums}{\expandonce\@tag}{\expandonce\content}}% }\to\inserts@listR \footnoteoptions@[R]{##1}{false}% \global\advance\insert@countR \@ne% \else% \ifluatex% \footnotelang@lua% \fi% \@ifundefined{xpg@main@language}%if polyglossia {}% {\footnotelang@poly}% \footnoteoptions@{##1}{true}% \xright@appenditem{% \noexpand\prepare@preXnotes{#1}% \noexpand\prepare@edindex@fornote{\l@d@nums}% \unexpanded{\def\sw@list@inedtext}{\expandafter\unexpanded\expandafter{\sw@inthisedtext}}%The value of the \sw@inthisedtext of current edtext will be pushed to \sw@list@inedtext when the notes are expanded. \noexpand\csuse{v#1footnote}{#1}% {{\l@d@nums}{\expandonce\@tag}{\expandonce\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% \endgroup% \else% \led@err@FootnoteWithoutEdtext% \fi% \ignorespaces% } \global\csletcs{#1@@footnote}{#1footnote} \footnormal{#1} \fi \unless\ifnofamiliar@ \newtoggle{parindentX@#1} \csgdef{hangindentX@#1}{0pt}% \csgdef{raggedX@#1}{}% \csgdef{hsizetwocolX@#1}{0.45 \hsize}% \csgdef{hsizethreecolX@#1}{.3 \hsize}% \csgdef{colalignX@#1}{\raggedright}% \csgdef{notenumfontX@#1}{\notenumfont}% \csgdef{notefontsizeX@#1}{\notefontsetup}% \csgdef{bhooknoteX@#1}{}% \csgdef{afterruleX@#1}{0pt} \csgdef{beforenotesX@#1}{1.2em \@plus .6em \@minus .6em} \csgdef{maxhnotesX@#1}{\ledfootinsdim}% \newtoggle{notesXwidthliketwocolumns@#1}% \expandafter\newinsert\csname footins#1\endcsname% \unless\ifnoledgroup@% \expandafter\newinsert\csname mpfootins#1\endcsname% \fi% \global\expandafter\newcommand\csname footnote#1\endcsname[1]{% \begingroup% \prepare@prenotesX{#1}% \newcommand{\content}{##1}% \stepcounter{footnote#1}% \protected@csxdef{@thefnmark#1}{\csuse{thefootnote#1}}% \nottoggle{nomk@}%Nomk is set to true when using \footnoteXnomk with eledpar {\csuse{@footnotemark#1}}% {}% \ifluatex% \xdef\footnote@luatextextdir{\the\textdir}% \xdef\footnote@luatexpardir{\the\pardir}% \fi% \csuse{vfootnote#1}{#1}{\expandonce\content}\m@mmf@prepare% \endgroup% } \newcounter{footnote#1} \global\expandafter\renewcommand\csname thefootnote#1\endcsname{\arabic{footnote#1}} \footnormalX{#1} \fi \csgdef{parafootsep@#1}{\parafootftmsep}% \csgdef{afternote@#1}{1em plus.4em minus.4em}% \unless\ifnoend@ \global\expandafter\newcommandx\csname #1endnote\endcsname[2][1,usedefault]{% \bgroup% \newlinechar='40% \global\@noneed@Footnotetrue% \newcommand{\content}{##2}% \immediate\write\l@d@end{% \expandafter\string\csname #1end\endcsname% {\ifnumberedpar@\l@d@nums\fi}% {\ifnumberedpar@\expandonce\@tag\fi}% {\expandonce\content}% {#1}% {##1}% \@percentchar% }% \egroup% \ignorespaces% }% \global\cslet{#1end}{\@gobblefive} \global\expandafter\newcount\csname #1end@bysection\endcsname% \csgdef{Xendtwolines@#1}{}% \csgdef{Xendmorethantwolines@#1}{}% \newtoggle{Xendtwolinesbutnotmore@#1}{}% \newtoggle{Xendtwolinesonlyinsamepage@#1}{}% \newtoggle{Xendlemmadisablefontselection@#1}% \csgdef{Xendnotenumfont@#1}{\notenumfont}% \csgdef{Xendnotefontsize@#1}{\notefontsetup}% \csgdef{bhookXendnote@#1}{}% \csgdef{boxXendlinenum@#1}{0pt}% \csgdef{boxXendlinenumalign@#1}{L}% \csgdef{boxXendstartlinenum@#1}{0pt}% \csgdef{boxXendendlinenum@#1}{0pt}% \csgdef{Xendlemmaseparator@#1}{}% \csgdef{Xendbeforelemmaseparator@#1}{0em}% \csgdef{Xendafterlemmaseparator@#1}{0.5em}% \csgdef{Xendinplaceoflemmaseparator@#1}{0.5em}% \newtoggle{Xendparagraph@#1}% \csgdef{Xendafternote@#1}{1em plus.4em minus.4em}% \csgdef{Xendsep@#1}{}% \fi% \listxadd{\@series}{#1} } }% End of \newseries \expandafter\newseries\expandafter{\default@series} \newcommand{\seriesatbegin}[1]{% \StrDel{\@series}{#1}[\@series]% \edef\@new{}% \listeadd{\@new}{#1}% \listeadd{\@new}{\@series}% \xdef\@series{\@new}% } \newcommand{\seriesatend}[1]{% \StrDel{\@series}{#1}[\@series]% \edef\@new{}% \listeadd{\@new}{\@series}% \listeadd{\@new}{#1}% \xdef\@series{\@new}% } \newcommand{\ifseriesbefore}[4]{% \StrPosition{\@series}{#1}[\@first]% \StrPosition{\@series}{#2}[\@second]% \ifnumgreater{\@second}{\@first}{#3}{#4}% } \newcommandx{\settoggle@series}[5][4,5,usedefault]{% \def\do##1{% \global\settoggle{#2@##1}{#3}% \ifstrequal{#4}{reload}% {% \csuse{foot\csuse{series@display##1}}{##1}% \csuse{foot\csuse{series@displayX##1}}{##1}% }% {}% }% \ifstrempty{#1}{% \dolistloop{\@series}% \ifstrempty{#5}{}{% \docsvlist{#5}% } }% {% \docsvlist{#1}% }% } \newcommandx{\setcommand@series}[5][4,5,usedefault]{% \def\do##1{ \csgdef{#2@##1}{#3} \ifstrequal{#4}{reload}{ \csuse{foot\csuse{series@display##1}}{##1} \csuse{foot\csuse{series@displayX##1}}{##1} }{}} \ifstrempty{#1}{% \dolistloop{\@series}% \ifstrempty{#5}{}{% \docsvlist{#5} } }% {% \docsvlist{#1}% }% }% \newcommandx{\newhookcommand@series}[2][2,usedefault]{% \global\expandafter\newcommand\expandafter*\csname #1\endcsname[2][]{% \setcommand@series{##1}{#1}{##2}[][#2]% }% \ifstrempty{#2}{}{% \def\do##1{% \global\expandafter\newcommand\expandafter*\csname #1##1\endcsname[1]{% \csuse{#1}[##1]{####1}% }% }% \docsvlist{#2}% }% } \newcommandx{\newhooktoggle@series}[2][2,usedefault]{% \global\expandafter\newcommandx\expandafter*\csname #1\endcsname[2][1,2={true},usedefault]{% \settoggle@series{##1}{#1}{##2}[][#2]% }% \ifstrempty{#2}{}{% \def\do##1{% \global\expandafter\newcommand\expandafter*\csname #1##1\endcsname{% \csuse{#1}[##1]% }% }% \docsvlist{#2}% }% } \newcommand{\newhooktoggle@series@reload}[1]{% \global\expandafter\newcommandx\expandafter*\csname #1\endcsname[2][1,2={true},usedefault]{% \settoggle@series{##1}{#1}{##2}[reload]% }% }% \newcommand{\newhookcommand@series@reload}[1]{% \global\expandafter\newcommand\expandafter*\csname #1\endcsname[2][]{% \setcommand@series{##1}{#1}{##2}[reload]% }% } \unless\ifnocritical@ \newhooktoggle@series{Xparindent} \newhookcommand@series{twolines}[appref] \newhookcommand@series{morethantwolines}[appref] \newhooktoggle@series{twolinesbutnotmore}[appref] \newhooktoggle@series{twolinesonlyinsamepage}[appref] \newhookcommand@series{Xhangindent} \newhookcommand@series{Xragged} \newhookcommand@series{hsizetwocol} \newhookcommand@series{hsizethreecol} \newhookcommand@series{Xcolalign}% \newhookcommand@series{Xnotenumfont} \newhookcommand@series{bhookXnote} \newhookcommand@series{boxsymlinenum}% \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{txtbeforeXnotes} \newhookcommand@series@reload{afterXrule} \newhooktoggle@series{numberonlyfirstinline} \newhooktoggle@series{numberonlyfirstintwolines} \newhooktoggle@series{nonumberinfootnote} \newhooktoggle@series{pstartinfootnote} \newhooktoggle@series{pstartinfootnoteeverytime}% \newhooktoggle@series{onlypstartinfootnote} \newhooktoggle@series{nonbreakableafternumber} \newhooktoggle@series{Xlemmadisablefontselection} \newhookcommand@series@reload{maxhXnotes} \newhookcommand@series@reload{beforeXnotes} \newhooktoggle@series@reload{Xnoteswidthliketwocolumns}% \newhookcommand@series{Xnotefontsize} \newhookcommand@series{boxlinenum}% \newhookcommand@series{boxlinenumalign}% \newhookcommand@series{boxstartlinenum}% \newhookcommand@series{boxendlinenum}% \fi \unless\ifnofamiliar@ \newhooktoggle@series{parindentX} \newhookcommand@series{hangindentX} \newhookcommand@series{raggedX} \newhookcommand@series{hsizetwocolX} \newhookcommand@series{hsizethreecolX} \newhookcommand@series{colalignX}% \newhookcommand@series{notenumfontX} \newhookcommand@series{bhooknoteX} \newhookcommand@series@reload{beforenotesX} \newhookcommand@series@reload{maxhnotesX} \newhooktoggle@series@reload{notesXwidthliketwocolumns}% \newhookcommand@series@reload{afterruleX} \newhookcommand@series{notefontsizeX} \fi \newhookcommand@series{parafootsep} \newhookcommand@series{afternote} \unless\ifnoend@ \newhookcommand@series{Xendtwolines}[apprefwithpage] \newhookcommand@series{Xendmorethantwolines}[apprefwithpage] \newhooktoggle@series{Xendtwolinesbutnotmore}[apprefwithpage] \newhooktoggle@series{Xendtwolinesonlyinsamepage}[apprefwithpage] \newhookcommand@series{Xendnotenumfont} \newhookcommand@series{bhookXendnote} \newhookcommand@series{boxXendlinenum}% \newhookcommand@series{boxXendlinenumalign}% \newhookcommand@series{boxXendstartlinenum}% \newhookcommand@series{boxXendendlinenum}% \newhookcommand@series{Xendnotefontsize} \newhooktoggle@series{Xendlemmadisablefontselection} \newhookcommand@series{Xendlemmaseparator} \newhookcommand@series{Xendbeforelemmaseparator} \newhookcommand@series{Xendafterlemmaseparator} \newhookcommand@series{Xendinplaceoflemmaseparator} \newhooktoggle@series{Xendparagraph} \newhookcommand@series{Xendafternote} \newhookcommand@series{Xendsep} \fi \newcommand*{\notenumfont}{\normalfont} \newcommand*{\notefontsetup}{\footnotesize} \newif\ifledplinenum \ledplinenumtrue \newcommand*{\symplinenum}{} \newtoggle{fulllines@}% \newtoggle{nonum@} \newtoggle{nosep@} \newtoggle{nomk@}% \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]{% \def\extractline@##1|##2|##3|##4|##5|##6|##7|{##2}% \def\extractsubline@##1|##2|##3|##4|##5|##6|##7|{##3}% \def\extractendline@##1|##2|##3|##4|##5|##6|##7|{##5}% \def\extractendsubline@##1|##2|##3|##4|##5|##6|##7|{##6}% \iftoggle{numberonlyfirstintwolines@#2}{% \edef\lineinfo@{\extractline@ #1| - \extractsubline@ #1| - \extractendline@ #1| - \extractendsubline@ #1|}% }% {% \edef\lineinfo@{\extractline@ #1| - \extractsubline@ #1|}% }% \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. \ifcsequal{prevline#2}{lineinfo@}%Try it {% \IfStrEq{\csuse{symlinenum@#2}}{}% {% \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}}}% }% {% \printlinefootnotearea{#1}{#2}% }% }% {% \printlinefootnotearea{#1}{#2}% }% }% {% \printlinefootnotearea{#1}{#2}% }% \csxdef{prevline#2}{\lineinfo@}% }% }% }% }% } \newcommand{\printlinefootnotearea}[2]{% \printbeforenumberinfootnote{#2}% \csuse{Xnotenumfont@#2}% \boxfootnotenumbers{#1}{#2}% \printafternumberinfootnote{#2}% }% \newcommand{\boxfootnotenumbers}[2]{% \ifdimequal{\csuse{boxlinenum@#2}}{0pt}{% \printlinefootnotenumbers{#1}{#2}% }% {% \hbox to \csuse{boxlinenum@#2}% {% \IfSubStr{RC}{\csuse{boxlinenumalign@#2}}{\hfill}{}% \printlinefootnotenumbers{#1}{#2}% \IfSubStr{LC}{\csuse{boxlinenumalign@#2}}{\hfill}{}% }% }% }% \newcommand{\printlinefootnotenumbers}[2]{% \xdef\@currentseries{#2}% \ifboolexpr{% (togl{pstartinfootnote@#2} and bool{numberpstart})% or togl{pstartinfootnoteeverytime@#2}}% {\printpstart}{}% \iftoggle{onlypstartinfootnote@#2}{}{\printlines#1|}% }% \newcommand{\printbeforenumberinfootnote}[1]{% \hspace{\csuse{beforenumberinfootnote@#1}}% }% \newcommand{\printafternumberinfootnote}[1]{% \iftoggle{nonbreakableafternumber@#1}{\nobreak}{}% \hspace{\csuse{afternumberinfootnote@#1}}% }% \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} \AtBeginDocument{\@ifpackageloaded{footmisc}{}{\newif\ifFN@bottom}} \newcommand*{\l@ddofootinsert}{% \ifvoid\footins \setbox\@outputbox \box\@cclv \else \setbox\@outputbox \vbox {% \boxmaxdepth \@maxdepth \@tempdima\dp\@cclv \unvbox \@cclv \ifFN@bottom\vfill\fi\vskip \skip\footins% If the option bottom of loadmisc package is loaded \color@begingroup \normalcolor \footnoterule \unvbox \footins \color@endgroup }% \fi \l@ddoxtrafeet } \newcommand*{\l@ddoxtrafeet}{% \IfStrEq{familiar-critical}{\@fnpos} {\doxtrafeeti\doxtrafeetii}% {% \IfStrEq{critical-familiar}{\@fnpos}% {\doxtrafeetii\doxtrafeeti}% {\doxtrafeeti\doxtrafeetii}% }% }% \newcommand*{\doxtrafeetii}{% \setbox\@outputbox \vbox{% \unvbox\@outputbox \@opxtrafeetii}} \newcommand\print@Xnotes[1]{% \csuse{#1footstart}{#1}% \csuse{#1footgroup}{#1}%% }% \newcommand*{\@opxtrafeetii}{% \unless\ifnocritical@% \gdef\firstXseries@{}% \def\do##1{% \ifvoid\csuse{##1footins}\else% \global\skip\csuse{##1footins}=\csuse{beforeXnotes@##1}% \global\advance\skip\csuse{##1footins} by\csuse{afterXrule@##1}% \print@Xnotes{##1}% \fi% }% \dolistloop{\@series}% \fi% }% \newcommand*{\l@ddodoreinxtrafeet}{% \doreinxtrafeeti \doreinxtrafeetii} \newcommand*{\doreinxtrafeetii}{% \unless\ifnocritical@% \def\do##1{% \ifvoid\csuse{##1footins}\else% \insert\csuse{##1footins}{\unvbox\csuse{##1footins}}% \fi}% \dolistloop{\@series} \fi% } \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]{% \led@warn@AddfootinsObsolete% \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}{%% \def\do#1{% \unless\ifnocritical@% \ifvoid\csuse{#1footins}\else\@mem@nofootfalse\fi% \fi% \unless\ifnofamiliar@% \ifvoid\csuse{footins#1}\else\@mem@nofootfalse\fi% \fi% } \dolistloop{\@series}% \@led@extranofeet% }% }{% \newcommand*{\@led@testifnofoot}{% \@led@nofoottrue% \ifvoid\footins\else% \@led@nofootfalse% \fi% \def\do##1{% \unless\ifnocritical@% \ifvoid\csuse{##1footins}\else% \@led@nofootfalse% \fi% \fi% \unless\ifnofamiliar@% \ifvoid\csuse{footins##1}\else% \@led@nofootfalse% \fi% \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]{% \ifl@dpairing\ifautopar% \strut% \fi\fi% \@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|\the\c@pstartR|{#1}}% \ifdef{\hypertarget}{\Hy@raisedlink{\hypertarget{#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|\the\c@pstart|{#1}}% \ifdef{\hypertarget}{\Hy@raisedlink{\hypertarget{#1}{}}}{}% \fi% \@esphack}% \newcounter{line}% \newcounter{subline}% \newcommand{\advancelabel@refs}{% \setcounter{line}{\expandafter\labelrefsparseline\label@refs}% \stepcounter{line}% \ifsublines@% \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|#5{% \expandafter\ifx\csname the@label#5\endcsname \relax\else \led@warn@DuplicateLabel{#5}% \fi \expandafter\gdef\csname the@label#5\endcsname{#1|#2|#3|#4}% \ignorespaces} \AtBeginDocument{% \def\l@dmake@labels#1|#2|#3|#4|#5{}% } \newcommand*{\@lab}{\xright@appenditem {\linenumrep{\line@num}|% \ifsublines@ \sublinenumrep{\subline@num}\else 0\fi}\to\labelref@list} \newcommand*{\applabel}[1]{% \ifnum\@edtext@level>0% \ifcsundef{the@label#1}{% \csdef{the@label#1}{applabel}% }% {% \led@warn@DuplicateLabel{#1 (applabel)}% }% \expandafter\l@dp@rsefootspec\l@d@nums|% \@bsphack% \ifledRcol% \protected@write\@auxout{}% {\string\l@dmake@labelsR\space\l@dparsedstartpage|\l@dparsedstartline|\l@dparsedstartsub|\the\c@pstartR|{#1:start}}% \ifdef{\hypertarget}{\Hy@raisedlink{\hypertarget{#1:start}{}}}{}% \protected@write\@auxout{}% {\string\l@dmake@labelsR\space\l@dparsedendpage|\l@dparsedendline|\l@dparsedendsub|\the\c@pstartR|{#1:end}}% \else% \protected@write\@auxout{}% {\string\l@dmake@labels\space\l@dparsedstartpage|\l@dparsedstartline|\l@dparsedstartsub|\the\c@pstart|{#1:start}}% \ifdef{\hypertarget}{\Hy@raisedlink{\hypertarget{#1:start}{}}}{}% \protected@write\@auxout{}% {\string\l@dmake@labels\space\l@dparsedendpage|\l@dparsedendline|\l@dparsedendsub|\the\c@pstart|{#1:end}}% \fi% \@esphack% \else% \led@warn@AppLabelOutEdtext{#1}% \fi% }% \newrobustcmd{\wrap@edcrossref}[2]{% \ifdef{\hyperlink}% {\hyperlink{#1}{#2}}% {#2}% } \newcommand*{\edpageref}[1]{\l@dref@undefined{#1}\wrap@edcrossref{#1}{\l@dgetref@num{1}{#1}}} \newcommand*{\xpageref}[1]{\l@dgetref@num{1}{#1}} \newcommand*{\edlineref}[1]{\l@dref@undefined{#1}\wrap@edcrossref{#1}{\l@dgetref@num{2}{#1}}}% \AtBeginDocument{% \ifdef\lineref{}{\let\lineref\edlineref}% }% \newcommand*{\xlineref}[1]{\l@dgetref@num{2}{#1}}% \newcommand*{\sublineref}[1]{\l@dref@undefined{#1}\wrap@edcrossref{#1}{\l@dgetref@num{3}{#1}}} \newcommand*{\xsublineref}[1]{\l@dgetref@num{3}{#1}} \newcommand*{\pstartref}[1]{\l@dref@undefined{#1}\wrap@edcrossref{#1}{\l@dgetref@num{4}{#1}}} \newcommand*{\xpstartref}[1]{\l@dgetref@num{4}{#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|#5{% \ifcase #5% \or #1% \or #2% \or #3% \or #4% \fi} \newcommand*{\xxref}[2]{% {% \expandafter\ifx\csname the@label#1\endcsname \relax% \expandafter\let\csname the@@label#1\endcsname\zz@@@% \else% \expandafter\def\csname the@@label#1\endcsname{\l@dgetref@num{1}{#1}|\l@dgetref@num{2}{#1}|\l@dgetref@num{3}{#1}}% \fi% \expandafter\ifx\csname the@label#2\endcsname \relax% \expandafter\let\csname the@@label#2\endcsname\zz@@@% \else% \expandafter\def\csname the@@label#2\endcsname{\l@dgetref@num{1}{#2}|\l@dgetref@num{2}{#2}|\l@dgetref@num{3}{#2}}% \fi% \ifdefined\Rlineflag% \StrDel{\csuse{the@@label#1}}{\Rlineflag}[\@tempa]% \StrDel{\csuse{the@@label#2}}{\Rlineflag}[\@tempb]% \else% \letcs{\@tempa}{the@@label#1}% \letcs{\@tempb}{the@@label#2}% \fi% \linenum{\@tempa|% \@tempb}}}% \xdef\twolines@appref{}% \xdef\morethantwolines@appref{}% \newtoggle{twolinesbutnotmore@appref}% \newtoggle{twolinesonlyinsamepage@appref}% \xdef\Xendtwolines@apprefwithpage{}% \xdef\Xendmorethantwolines@apprefwithpage{}% \newtoggle{Xendtwolinesbutnotmore@apprefwithpage}% \newtoggle{Xendtwolinesonlyinsamepage@apprefwithpage}% \xdef\boxstartlinenum@appref{0pt} \xdef\boxendlinenum@appref{0pt} \xdef\boxXendstartlinenum@apprefwithpage{0pt} \xdef\boxXendendlinenum@apprefwithpage{0pt} \newcommand\apprefprefixsingle{}% \newcommand\apprefprefixmore{}% \newcommandx{\appref}[2][1,usedefault]{% \IfStrEq{#1}{fulllines}% {\toggletrue{fulllines@}}% {}% \xdef\@currentseries{appref}% \ifdefempty{\apprefprefixmore}% {\apprefprefixsingle}% {% \IfEq{\xlineref{#2:start}}{\xlineref{#2:end}}% {\apprefprefixsingle}% {\apprefprefixmore}% }% \printlines\xpageref{#2:start}|\xlineref{#2:start}|\xsublineref{#2:start}|\xpageref{#2:end}|\xlineref{#2:end}|\xsublineref{#2:end}||% \togglefalse{fulllines@}% }% \newcommandx{\apprefwithpage}[2][1,usedefault]{% \IfStrEq{#1}{fulllines}% {\toggletrue{fulllines@}}% {}% \xdef\@currentseries{apprefwithpage}% \printendlines\xpageref{#2:start}|\xlineref{#2:start}|\xsublineref{#2:start}|\xpageref{#2:end}|\xlineref{#2:end}|\xsublineref{#2:end}||% \togglefalse{fulllines@}% }% \newcommand*{\edmakelabel}[2]{\expandafter\xdef\csname the@label#1\endcsname{#2}} \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 \ifledRcol \global\sidenote@marginR=\@l@dtempcntb \else \global\sidenote@margin=\@l@dtempcntb \fi \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*{\ledinnernote}[1]{% \ifodd\c@page% Do not use \page@num, because it is not yet calculated when command is called \ledleftnote{#1}% \else% \ledrightnote{#1}% \fi% } \newcommand*{\ledouternote}[1]{% \ifodd\c@page% Do not use \page@num, because it is not yet calculated when command is called \ledrightnote{#1}% \else% \ledleftnote{#1}% \fi% } \newcommand*{\ledsidenote}[1]{\edtext{}{\l@dcsnote{#1}}} \newif\ifrightnoteup \rightnoteuptrue \newcommand*{\l@dlsnote}[1]{% \begingroup% \newcommand{\content}{#1}% \ifnumberedpar@ \ifledRcol% \xright@appenditem{\noexpand\vl@dlsnote{\expandonce\content}}% \to\inserts@listR \global\advance\insert@countR \@ne% \else% \xright@appenditem{\noexpand\vl@dlsnote{\expandonce\content}}% \to\inserts@list \global\advance\insert@count \@ne% \fi \fi\ignorespaces\endgroup} \newcommand*{\l@drsnote}[1]{% \begingroup% \newcommand{\content}{#1}% \ifnumberedpar@ \ifledRcol% \xright@appenditem{\noexpand\vl@drsnote{\expandonce\content}}% \to\inserts@listR \global\advance\insert@countR \@ne% \else% \xright@appenditem{\noexpand\vl@drsnote{\expandonce\content}}% \to\inserts@list \global\advance\insert@count \@ne% \fi \fi\ignorespaces\endgroup} \newcommand*{\l@dcsnote}[1]{% \begingroup% \newcommand{\content}{#1}% \ifnumberedpar@ \ifledRcol% \xright@appenditem{\noexpand\vl@dcsnote{\expandonce\content}}% \to\inserts@listR \global\advance\insert@countR \@ne% \else% \xright@appenditem{\noexpand\vl@dcsnote{\expandonce\content}}% \to\inserts@list \global\advance\insert@count \@ne% \fi \fi\ignorespaces\endgroup} \newcommand*{\vl@dlsnote}[1]{% \ifledRcol@% \@l@dtempcntb=\sidenote@marginR% \ifnum\@l@dtempcntb>\@ne% \advance\@l@dtempcntb by\page@numR% \fi% \else% \@l@dtempcntb=\sidenote@margin% \ifnum\@l@dtempcntb>\@ne% \advance\@l@dtempcntb by\page@num% \fi% \fi% \ifodd\@l@dtempcntb% \listgadd{\l@dcsnotetext@l}{#1}% \else% \listgadd{\l@dcsnotetext}{#1}% \fi } \newcommand*{\vl@drsnote}[1]{% \ifledRcol@% \@l@dtempcntb=\sidenote@marginR% \ifnum\@l@dtempcntb>\@ne% \advance\@l@dtempcntb by\page@numR% \fi% \else% \@l@dtempcntb=\sidenote@margin% \ifnum\@l@dtempcntb>\@ne% \advance\@l@dtempcntb by\page@num% \fi% \fi% \ifodd\@l@dtempcntb% \listgadd{\l@dcsnotetext}{#1}% \else% \listgadd{\l@dcsnotetext@r}{#1}% \fi% } \newcommand*{\vl@dcsnote}[1]{\listgadd{\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}} \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{\sidenotesep}{, } \newcommand*{\affixside@note}{% \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@margin% \ifnum\@l@dtempcntb>\@ne% \advance\@l@dtempcntb by\page@num% \fi% \ifodd\@l@dtempcntb% \setl@drp@rbox{\sidenotecontent@}% \gdef\sidenotecontent@{}% \numgdef{\itemcount@}{0}% \dolistloop{\l@dcsnotetext@l}% \ifnumgreater{\itemcount@}{1}{\led@err@ManyLeftnotes}{}% \setl@dlp@rbox{\sidenotecontent@}% \else% \setl@dlp@rbox{\sidenotecontent@}% \gdef\sidenotecontent@{}% \numgdef{\itemcount@}{0}% \dolistloop{\l@dcsnotetext@r}% \ifnumgreater{\itemcount@}{1}{\led@err@ManyRightnotes}{}% \setl@drp@rbox{\sidenotecontent@}% \fi% \fi% \fi% } \ifnoledgroup@\else% \newcommand*{\l@dfeetbeginmini}{\l@dedbeginmini\l@dfambeginmini} \newcommand*{\l@dfeetendmini}{% \IfStrEq{critical-familiar}{\@mpfnpos}% {\l@dedendmini\l@dfamendmini}% {% \IfStrEq{familiar-critical}{\@mpfnpos}% {\l@dfamendmini\l@dedendmini}% {\l@dedendmini\l@dfamendmini}% }% }% \newcommand*{\l@dedbeginmini}{% \unless\ifnocritical@% \def\do##1{\csletcs{v##1footnote}{mpv##1footnote}}% \dolistloop{\@series}% \fi% } \newcommand*{\l@dedendmini}{% \unless\ifnocritical@% \ifl@dpairing% \ifledRcol% \flush@notesR% \else% \flush@notes% \fi% \fi \def\do##1{% \ifvoid\csuse{mp##1footins}\else% \ifl@dpairing\ifparledgroup% \ifledRcol% \dimgdef{\parledgroup@beforenotesR}{\parledgroup@beforenotesR+\skip\@nameuse{mp##1footins}}% \else% \dimgdef{\parledgroup@beforenotesL}{\parledgroup@beforenotesL+\skip\@nameuse{mp##1footins}}% \fi% \fi\fi% \csuse{mp##1footgroup}{##1}% \fi}% \dolistloop{\@series}% \fi% }% \newcommand*{\l@dfambeginmini}{% \unless\ifnofamiliar@% \def\do##1{\csletcs{vfootnote##1}{mpvfootnote##1}}% \dolistloop{\@series}% \fi% }% \newcommand*{\l@dfamendmini}{% \unless\ifnofamiliar@% \def\do##1{\ifvoid\csuse{mpfootins##1}\else\csuse{mpfootgroup##1}{##1}\fi}% \dolistloop{\@series}% \fi% }% \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 \ifparledgroup \ifl@dpairing \ifledRcol \dimgdef{\parledgroup@beforenotesR}{\parledgroup@beforenotesR+\skip\@mpfootins} \else \dimgdef{\parledgroup@beforenotesL}{\parledgroup@beforenotesL+\skip\@mpfootins} \fi \fi \fi \unvbox\@mpfootins} \newenvironment{ledgroup}{% \resetprevpage@num% \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% } \fi% \newif\ifledgroupnotesL@ \newif\ifledgroupnotesR@ \AtBeginDocument{% \unless\ifl@imakeidx% \@ifpackageloaded{imakeidx}{\led@error@ImakeidxAfterEledmac}{}% \fi% \unless\ifl@indextools% \@ifpackageloaded{indextools}{\led@error@indextoolsAfterEledmac}{}% \fi% } \newcommand{\pagelinesep}{-} \newcommand{\edindexlab}{$&} \newcounter{labidx} \setcounter{labidx}{0} \newcommand{\doedindexlabel}{\stepcounter{labidx}% \edlabel{\edindexlab\thelabidx}} \newcommand{\thepageline}{% \thepage\pagelinesep\xlineref{\edindexlab\thelabidx}} \newcommand{\thestartpageline}{\l@dparsedstartpage\pagelinesep\l@dparsedstartline} \newcommand{\theendpageline}{\l@dparsedendpage\pagelinesep\l@dparsedendline} \newif\if@edindex@fornote@ \newcommand{\prepare@edindex@fornote}[1]{% \l@dp@rsefootspec#1|% \@edindex@fornote@true% } \newcommand{\get@edindex@ledinnote@command}{% \ifxindy@% \gdef\@ledinnote@command{% ledinnote\thelabidx% }% \ifxindyhyperref@% \immediate\write\eledmac@xindy@out{% (define-attributes ("ledinnote\thelabidx"))^^J \space\space(markup-locref^^J \eledmacmarkuplocrefdepth^^J :open "\string\ledinnote[\edindexlab\thelabidx]{\@index@command}{"^^J :close "}"^^J :attr "ledinnote\thelabidx"^^J ) }% \else% \immediate\write\eledmac@xindy@out{% (define-attributes ("ledinnote\thelabidx"))^^J \space\space(markup-locref^^J \eledmacmarkuplocrefdepth^^J :open "\string\ledinnote{\@index@command}{"^^J :close "}"^^J :attr "ledinnote\thelabidx"^^J ) }% \fi% \else% \gdef\@ledinnote@command{% ledinnote[\edindexlab\thelabidx]{\@index@command}% }% \fi% } \def\get@index@command#1|#2+{% \gdef\@index@txt{#1}% \gdef\@index@command{#2}% \xdef\@index@parenthesis{}% \IfBeginWith{\@index@command}{(}{% \StrGobbleLeft{\@index@command}{1}[\@index@command@]% \global\let\@index@command\@index@command@% \xdef\@index@parenthesis{(}% }{}% \IfBeginWith{\@index@command}{)}{% \StrGobbleLeft{\@index@command}{1}[\@index@command@]% \global\let\@index@command\@index@command@% \xdef\@index@parenthesis{)}% }{}% } \newcommandx{\ledinnote}[3][1,usedefault]{% \ifboolexpr{% test{\ifdefequal{\iftrue}{\ifHy@hyperindex}}% or% bool {xindyhyperref@}% }% {% \csuse{#2}{\hyperlink{#1}{\ledinnotemark{#3}}}% }% {% \csuse{#2}{\ledinnotemark{#3}}% }% }% \newcommand{\ledinnotehyperpage}[2]{\csuse{#1}{\ledinnotemark{\hyperpage{#2}}}}% \newcommand{\ledinnotemark}[1]{#1\emph{n}}% \def\create@edindex@for@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\\% \if@edindex@fornote@% \protected@write\@auxout{}% {\string\@@wrindexm@m{\@idxfile}{##1|(ledinnotehyperpage}{\thestartpageline}}% \protected@write\@auxout{}% {\string\@@wrindexm@m{\@idxfile}{##1|)ledinnotehyperpage}{\theendpageline}}% \else% \protected@write\@auxout{}% {\string\@@wrindexm@m{\@idxfile}{##1|hyperpage}{\thepageline}}% \fi% \else \def\Hy@temp@A{##2}% \ifx\Hy@temp@A\HyInd@ParenLeft \if@edindex@fornote@% \protected@write\@auxout{}% {\string\@@wrindexm@m{\@idxfile}{##1|(ledinnotehyperpage{##2}}{\thestartpageline}}% \protected@write\@auxout{}% {\string\@@wrindexm@m{\@idxfile}{##1|)ledinnotehyperpage{##2}}{\theendpageline}}% \else% \protected@write\@auxout{}% {\string\@@wrindexm@m{\@idxfile}{##1|##2hyperpage}{\thepageline}}% \fi% \else \if@edindex@fornote@% \protected@write\@auxout{}% {\string\@@wrindexm@m{\@idxfile}{##1|(ledinnote{##2}}{\thestartpageline}}% \protected@write\@auxout{}% {\string\@@wrindexm@m{\@idxfile}{##1|)ledinnote{##2}}{\theendpageline}}% \else% \protected@write\@auxout{}% {\string\@@wrindexm@m{\@idxfile}{##1|##2}{\thepageline}}% \fi% \fi \fi \endgroup \@esphack} } \def\create@edindex@notfor@memoir{ \newcommandx{\@wredindex}[2][1=\expandonce\jobname,usedefault]{%#1 = the index name, #2 = the text \global\let\old@Rlineflag\Rlineflag% \gdef\Rlineflag{}% \ifl@imakeidx% \if@edindex@fornote@% \IfSubStr[1]{##2}{|}{\get@index@command##2+}{\get@index@command##2|+}% \get@edindex@ledinnote@command% \expandafter\imki@wrindexentry{##1}{\@index@txt|(\@ledinnote@command}{\thestartpageline}% \expandafter\imki@wrindexentry{##1}{\@index@txt|)\@ledinnote@command}{\theendpageline}% \else% \get@edindex@hyperref{##2}% \imki@wrindexentry{##1}{\@index@txt\@edindex@hyperref}{\thepageline}% \fi% \else% \if@edindex@fornote@% \IfSubStr[1]{##2}{|}{\get@index@command##2+}{\get@index@command##2|+}% \get@edindex@ledinnote@command% \expandafter\protected@write\@indexfile{}% {\string\indexentry{\@index@txt|(\@ledinnote@command}{\thestartpageline} }% \expandafter\protected@write\@indexfile{}% {\string\indexentry{\@index@txt|)\@ledinnote@command}{\theendpageline} }% \else% \protected@write\@indexfile{}% {\string\indexentry{##2}{\thepageline} }% \fi% \fi% \endgroup \global\let\Rlineflag\old@Rlineflag% \@esphack} \pretocmd{\makeindex}{% \def\edindex{\@bsphack \doedindexlabel \begingroup \@sanitize \@wredindex}}{}{} \newcommand{\edindex}[1]{\@bsphack\@esphack} } \@ifclassloaded{memoir}{% \@ifpackageloaded{imakeidx}% {\create@edindex@notfor@memoir}% {% \@ifpackageloaded{indextools}% {\create@edindex@notfor@memoir}% {\create@edindex@for@memoir}% }% }% {\create@edindex@notfor@memoir}% \newcommand{\hyperlinkformat}[3]{% \ifstrempty{#1}% {\hyperlink{#2}{#3}}% {\csuse{#1}{\hyperlink{#2}{#3}}% }} \newcommand{\hyperlinkR}[2]{% \hyperlink{#1}{#2\Rlineflag}% }% \newcommand{\hyperlinkformatR}[3]{% \hyperlinkformat{#1}{#2}{#3\Rlineflag}% }% \newcommand{\get@edindex@hyperref}[1]{% \edef\temp@{% \catcode`\ =9 %space need for catcode #1% \catcode`\ =10 % space need for catcode }% \ifdefequal{\iftrue}{\ifHy@hyperindex}{% \IfSubStr{\temp@}{|}% {\get@index@command#1+% \ifledRcol% \gdef\@edindex@hyperref{|\@index@parenthesis %space kept hyperlinkformatR{\@index@command}% {\edindexlab\thelabidx}}% \else% \gdef\@edindex@hyperref{|\@index@parenthesis %space kept hyperlinkformat{\@index@command}% {\edindexlab\thelabidx}}% \fi% }% {\get@index@command#1|+% \ifledRcol% \gdef\@edindex@hyperref{|hyperlinkR{\edindexlab\thelabidx}}% \else% \gdef\@edindex@hyperref{|hyperlink{\edindexlab\thelabidx}}% \fi% }% }% {\ifxindyhyperref@% \IfSubStr{\temp@}{|}% {\get@index@command#1+}% {\get@index@command#1|+}% \gdef\@edindex@hyperref{|eledmac\thelabidx}% \IfStrEq{\@index@parenthesis}{(}% {% \csxdef{xindyparenthesis@\@index@txt}{\thelabidx}% \gdef\@edindex@hyperref{|(eledmac\thelabidx}% }% {}% \IfStrEq{\@index@parenthesis}{)}% {% \xdef\@edindex@hyperref{|)eledmac\csuse{xindyparenthesis@\@index@txt}}% \global\csundef{xindyparenthesis@\@index@txt}% }% {% \immediate\write\eledmac@xindy@out{% (define-attributes ("eledmac\thelabidx"))^^J \space\space(markup-locref^^J \eledmacmarkuplocrefdepth^^J :open "\string\hyperlink% \ifledRcol R\fi% {\edindexlab\thelabidx}% {\ifdefempty{\@index@command}% {}% {\@backslashchar\@index@command}% {"^^J :close "}}"^^J :attr "eledmac\thelabidx"^^J ) }% }% \else% \gdef\@index@txt{#1}% \gdef\@edindex@hyperref{}% \fi% }% } \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 \newif\ifinserthangingsymbol \newcommand{\inserthangingsymbol}{% \ifinserthangingsymbol% \ifinstanza% \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 } \newcommand{\stanzaindent}[1]{% \hspace{\dimexpr#1\stanzaindentbase-\parindent\relax}% \ignorespaces% }% \WithSuffix\newcommand\stanzaindent*[1]{% \stanzaindent{#1}% \global\advance\stanza@modulo-\@ne% \ifnum\stanza@modulo=0% \global\stanza@modulo=\value{stanzaindentsrepetition}% \fi% \ignorespaces% }% \newcommandx{\stanza@line}[1][1]{ \ifnum\value{stanzaindentsrepetition}=0 \parindent=\csname sza@\number\stanza@count @\endcsname\stanzaindentbase \else \parindent=\csname sza@\number\stanza@modulo @\endcsname\stanzaindentbase \managestanza@modulo \fi \pstart[#1]\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\@startstanza[#1]{% \noexpand\instanzatrue\expandafter \begingroup\startstanzahook% \catcode`\noexpand\&\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\falseverse{% \noexpand\led@war@FalseverseDeprecated% \global\advance\stanza@modulo-\@ne% \global\advance\stanza@count-\@ne% \relax\noexpand&\leavevmode\skipnumbering} \def\noexpand&{% \noexpand\newverse[][]}% \def\noexpand\&{\noexpand\@stopstanza}% \noexpand\stanza@line[#1]} \newcommandx{\stanza}[1][1,usedefault]{\@startstanza[#1]} \newcommandx{\@stopstanza}[1][1,usedefault]{% \unskip% \endlock% \pend[#1]% \endgroup% \instanzafalse% \endstanzaextra% } \newcommandx*{\newverse}[2][1,2,usedefault]{% \unskip% \endlock\pend[#1]\sza@penalty\global% \advance\stanza@count\@ne\stanza@line[#2]% } \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% } \newcommand{\disable@familiarnotes}{% \unless\ifnofamiliar@% \def\do##1{% \csletcs{footnote@@##1}{footnote##1}% \expandafter\renewcommand \csname footnote##1\endcsname[1]{% \protected@csxdef{@thefnmark##1}{\csuse{thefootnote##1}}% \csuse{@footnotemark##1}% }% }% \dolistloop{\@series}% \fi% }% \newcommand{\restore@familiarnotes}{% \unless\ifnofamiliar@% \def\do##1{% \csletcs{footnote##1}{footnote@@##1}% }% \dolistloop{\@series}% \fi% }% \newcommand{\disable@sidenotes}{% \let\@@ledrightnote\ledrightnote% \let\@@ledleftnote\ledleftnote% \let\@@ledsidenote\ledsidenote% \let\ledrightnote\@gobble% \let\ledleftnote\@gobble% \let\ledsidenote\@gobble% }% \newcommand{\restore@sidenotes}{% \let\ledrightnote\@@ledrightnote% \let\ledleftnote\@@ledleftnote% \let\ledsidenote\@@ledsidenote% }% \newcommand{\disable@notes}{% \disable@sidenotes% \disable@familiarnotes% }% \newcommand{\restore@notes}{% \restore@sidenotes% \restore@familiarnotes% }% \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@dgobbleoptarg}[2][]{\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% \def\do##1{\global\csletcs{##1footnote}{l@dgobbledarg}} \dolistloop{\@series}% \let\edindex\nulledindex% \let\linenum\@gobble} \newcommand{\l@drestoreforcritext}{% \def\do##1{\csdef{##1footnote}##1##2/{\csuse{##1@@footnote}{##1}{##2}}} \dolistloop{\@series}% \let\edindex\xedindex} \newcommand{\l@dmodforedtext}{% \let\edtext\relax \def\do##1{\global\csletcs{##1footnote}{l@dgobbleoptarg}}% \dolistloop{\@series}% \let\edindex\nulledindex \let\linenum\@gobble} \newcommand{\l@drestoreforedtext}{% \def\do##1{\global\csletcs{##1footnote}{##1@@footnote}} \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 \def\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% \disable@notes% \setbox\hilfsbox=\hbox{$\displaystyle{#1}$}% \restore@notes% \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% \disable@notes% \setbox\hilfsbox=\hbox{#1}% \restore@notes% \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% \disable@notes% \setbox\hilfsbox=\hbox{$\displaystyle{#1}$}% \restore@notes% \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% \disable@notes% \setbox\hilfsbox=\hbox{#1}% \restore@notes% \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% \disable@notes% \setbox\hilfsbox=\hbox{$\displaystyle{#1}$}% \restore@notes% \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% \disable@notes% \setbox\hilfsbox=\hbox{#1}% \restore@notes% \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 \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]{% \disable@notes% \disablel@dtabfeet% \l@dcolcount=0% \nullsetzen% \l@dcolcount=0 \measuretrow #1\\&\\% \restore@notes% \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 \newcommand{\initnumbering@sectcmd}{ \newcommand{\ledsection}[2][]{% \led@war@ledxxxDeprecated{section}% \leavevmode\pend\vspace{3.5ex \@plus 1ex \@minus .2ex}\ifl@dpairing\else\skipnumbering\fi%% \pstart% \leavevmode\ifledsecnolinenumber\skipnumbering\fi\section[##1]{##2}\leavevmode\vspace{2.3ex \@plus.2ex}\skipnumbering\pend% \vspace{-2\parskip}\vspace{-2\baselineskip}% \ifautopar\else\pstart\fi } \WithSuffix\newcommand\ledsection*[1]{% \led@war@ledxxxDeprecated{section*}% \leavevmode\pend\vspace{3.5ex \@plus 1ex \@minus .2ex}\ifl@dpairing\else\skipnumbering\fi% \pstart% \leavevmode\ifledsecnolinenumber\skipnumbering\fi\section*{##1}\leavevmode\vspace{2.3ex \@plus.2ex}\skipnumbering\pend% \vspace{-2\parskip}\vspace{-2\baselineskip}% \ifautopar\else\pstart\fi } \newcommand{\ledsubsection}[2][]{% \led@war@ledxxxDeprecated{subsection}% \leavevmode\pend\vspace{3.5ex \@plus 1ex \@minus .2ex}\ifl@dpairing\else\skipnumbering\fi% \pstart% \leavevmode\ifledsecnolinenumber\skipnumbering\fi\subsection[##1]{##2}\leavevmode\vspace{1.5ex \@plus .2ex}\skipnumbering\pend% \vspace{-2\parskip}\vspace{-2\baselineskip}% \ifautopar\else\pstart\fi } \WithSuffix\newcommand\ledsubsection*[1]{% \led@war@ledxxxDeprecated{subsection*}% \leavevmode\pend\vspace{3.5ex \@plus 1ex \@minus .2ex}\ifl@dpairing\else\skipnumbering\fi% \pstart% \leavevmode\ifledsecnolinenumber\skipnumbering\fi\subsection*{##1}\leavevmode\vspace{1.5ex \@plus .2ex}\skipnumbering\pend% \vspace{-2\parskip}\vspace{-2\baselineskip}% \ifautopar\else\pstart\fi } \newcommand{\ledsubsubsection}[2][]{% \led@war@ledxxxDeprecated{subsubsection}% \leavevmode\pend\vspace{3.5ex \@plus 1ex \@minus .2ex}\ifl@dpairing\else\skipnumbering\fi% \pstart% \leavevmode\ifledsecnolinenumber\skipnumbering\fi\subsubsection[##1]{##2}\leavevmode\vspace{1.5ex \@plus .2ex}\skipnumbering\pend% \vspace{-2\parskip}\vspace{-2\baselineskip}% \ifautopar\else\pstart\fi } \WithSuffix\newcommand\ledsubsubsection*[1]{% \led@war@ledxxxDeprecated{subsubsection*}% \leavevmode\pend\vspace{3.5ex \@plus 1ex \@minus .2ex}\ifl@dpairing\else\skipnumbering\fi% \pstart% \leavevmode\ifledsecnolinenumber\skipnumbering\fi\subsubsection*{##1}\leavevmode\vspace{1.5ex \@plus .2ex}\skipnumbering\pend% \vspace{-2\parskip}\vspace{-2\baselineskip}% \ifautopar\else\pstart\fi } \newcommand\ledchapter[2][]{% \led@war@ledxxxDeprecated{chapter}% \ifl@dmemoir% \gdef\ch@pt@c{##1}% \fi% ~\pend\skipnumbering% \pstart% \@patchforledchapter\chapter[##1]{##2}% \pend\pstart} \WithSuffix\newcommand\ledchapter*[1]{% \led@war@ledxxxDeprecated{chapter*}% ~\pend\skipnumbering% \pstart% \@patchforledchapter\chapter*{##1}\pend% \pstart} \def\@patchforledchapter{ \patchcmd{\@makeschapterhead}{1\par}{1}{}{} \pretocmd{\@makeschapterhead}{\par}{}{} \apptocmd{\@makeschapterhead}{\par}{}{} \patchcmd{\@makeschapterhead}{\vskip 40\p@}{}{}{} \patchcmd{\@makechapterhead}{1\par}{1}{}{} \pretocmd{\@makechapterhead}{\par}{}{} \apptocmd{\@makechapterhead}{\par}{}{} \patchcmd{\@makechapterhead}{\vskip 40\p@}{}{}{} \apptocmd{\@chapter}{\par\leavevmode\vspace{40 \p@}\skipnumbering}{}{} \apptocmd{\@schapter}{\par\leavevmode\vspace{40 \p@}\skipnumbering}{}{} \newcommand\beforeledchapter{\pend\cleardoublepage\pstart} \patchcmd{\chapter}{\cleardoublepage}{\relax}{}{} \patchcmd{\chapter}{\clearpage}{\relax}{}{} } \ifnoquotation@\else \renewcommand{\quotation}{\par\leavevmode% \parindent=1.5em% \skipnumbering% \ifautopar% \vskip-\parskip% \else% \vskip\topsep% \fi% \global\leftskip=\leftmargin% \global\rightskip=\leftmargin% } \renewcommand{\endquotation}{\par% \global\leftskip=0pt% \global\rightskip=0pt% \leavevmode% \skipnumbering% \ifautopar% \vskip-\parskip% \else% \vskip\topsep% \fi% } \renewcommand{\quote}{\par\leavevmode% \parindent=0pt% \skipnumbering% \ifautopar% \vskip-\parskip% \else% \vskip\topsep% \fi% \global\leftskip=\leftmargin% \global\rightskip=\leftmargin% } \renewcommand{\endquote}{\par% \global\leftskip=0pt% \global\rightskip=0pt% \leavevmode% \skipnumbering% \ifautopar% \vskip-\parskip% \else% \vskip\topsep% \fi% } \fi } \newcommand{\ledsectnotoc}{\let\addcontentsline\@gobblethree} \newcommand{\ledsectnomark}{% \let\chaptermark\@gobble% \let\sectionmark\@gobble% \let\subsectionmark\@gobble% } \catcode`\#=12 \notbool{@noeled@sec}{% \ifl@dmemoir \newcommand\beforeeledchapter{\clearforchapter} \else \newcommand\beforeeledchapter{\if@openright\cleardoublepage\else\clearpage\fi} \fi \newif\if@eled@sectioning \def\print@rightmargin@eledsection{% \if@eled@sectioning% \begingroup% \if@RTL% \let\llap\rlap% \let\leftlinenum\rightlinenum% \let\leftlinenumR\rightlinenumR% \let\l@drd@ta\l@dld@ta% \let\l@drsn@te\l@dlsn@te% \fi% \hfill\l@drd@ta \csuse{LR}{\l@drsn@te}% \endgroup% \fi% }% \def\print@leftmargin@eledsection{% \if@eled@sectioning% \leavevmode% \begingroup% \if@RTL% \let\rlap\llap% \let\rightlinenum\leftlinenum% \let\rightlinenumR\leftlinenumR% \let\l@dld@ta\l@drd@ta% \let\l@dlsn@te\l@drsn@te% \fi% \l@dld@ta\csuse{LR}{\l@dlsn@te}% \endgroup% \fi% }% \AtBeginDocument{% \patchcmd{\chapter}{\clearforchapter}{% \if@eled@sectioning\else% \ifl@dprintingpages\else% \clearforchapter% \fi% \fi% } {} {} \pretocmd{\M@sect} {\let\old@edtext=\edtext% \let\edtext=\dummy@edtext@showlemma% } {} {} \apptocmd{\M@sect} {\let\edtext=\old@edtext} {} {} \patchcmd{\M@sect} { #9} { #9% \print@rightmargin@eledsection% } {} {} \patchcmd{\M@sect} {\hskip #3\relax} {\hskip #3\relax% \print@leftmargin@eledsection% } {} {} \patchcmd{\@mem@old@ssect} {#5} {#5% \print@leftmargin@eledsection% } {} {} \patchcmd{\@mem@old@ssect} {\hskip #1} {\hskip #1% \print@rightmargin@eledsection% } {} {} \patchcmd{\chapter}{\if@openright\cleardoublepage\else\clearpage\fi}{% \if@eled@sectioning\else% \ifl@dprintingpages\else% \if@openright\cleardoublepage\else\clearpage\fi%No clearpage inside a \eledsection: will keep critical notes from printing on the title page. \fi% \fi% }% {}% {}% \patchcmd{\@makechapterhead} {#1} {\print@leftmargin@eledsection% #1% \print@rightmargin@eledsection% } {} {} \patchcmd{\@makechapterhead}% For BIDI {\if@RTL\raggedleft\else\raggedright\fi}% {\if@eled@sectioning\else% \if@RTL\raggedleft\else\raggedright\fi% \fi% }% {}% {}% \patchcmd{\@makeschapterhead} {#1} {\print@leftmargin@eledsection% #1% \print@rightmargin@eledsection% } {} {} \pretocmd{\@sect} {\let\old@edtext=\edtext \let\edtext=\dummy@edtext@showlemma% } {} {} \apptocmd{\@sect} {\let\edtext=\old@edtext} {} {} \pretocmd{\@ssect} {\let\old@edtext=\edtext% \let\edtext=\dummy@edtext@showlemma% } {} {} \apptocmd{\@ssect} {\let\edtext=\old@edtext} {} {} \@ifpackageloaded{nameref}{ \patchcmd{\NR@sect} {#8} {#8% \print@rightmargin@eledsection% } {} {} \patchcmd{\NR@sect} {\hskip #3\relax} {\hskip #3\relax% \print@leftmargin@eledsection% } {} {} \patchcmd{\NR@ssect} {#5} {#5% \print@rightmargin@eledsection% } {} {} \patchcmd{\NR@ssect} {\hskip #1} {\hskip #1% \print@leftmargin@eledsection% } {} {} }% { \patchcmd{\@sect} {#8} {#8% \print@rightmargin@eledsection% } {} {} \patchcmd{\@sect} {\hskip #3\relax} {\hskip #3\relax% \print@leftmargin@eledsection% } {} {} \patchcmd{\@ssect} {#5} {#5% \print@rightmargin@eledsection% } {} {} \patchcmd{\@ssect} {\hskip #1} {\hskip #1% \print@leftmargin@eledsection% } {} {} }% } {}}% \protect\catcode`\#=6 %Space NEEDS by \catcode \notbool{@noeled@sec}{% \newwrite\eled@sectioning@out \newcommand{\noeledsec}{% \led@war@noeledsecDeprecated% \global\@noeled@sectrue% }% \newcommand{\eledchapter}[2][]{% #2% \ifledRcol% \immediate\write\eled@sectioningR@out{% \string\eled@chapter{#1}{\unexpanded{#2}}{\the\l@dnumpstartsR}{}{R} }% \else% \immediate\write\eled@sectioning@out{% \string\eled@chapter{#1}{\unexpanded{#2}}{\the\l@dnumpstartsL}{}{} }% \fi% } \newcommand{\eledsection}[2][]{% #2% \ifledRcol% \immediate\write\eled@sectioningR@out{% \string\eled@section{#1}{\unexpanded{#2}}{\the\l@dnumpstartsR}{}{R} }% \else% \immediate\write\eled@sectioning@out{% \string\eled@section{#1}{\unexpanded{#2}}{\the\l@dnumpstartsL}{}{} }% \fi% } \newcommand{\eledsubsection}[2][]{% #2% \ifledRcol% \immediate\write\eled@sectioningR@out{% \string\eled@subsection{#1}{\unexpanded{#2}}{\the\l@dnumpstartsR}{}{R} }% \else% \immediate\write\eled@sectioning@out{% \string\eled@subsection{#1}{\unexpanded{#2}}{\the\l@dnumpstartsL}{}{} }% \fi% } \newcommand{\eledsubsubsection}[2][]{% #2% \ifledRcol% \immediate\write\eled@sectioningR@out{% \string\eled@subsubsection{#1}{\unexpanded{#2}}{\the\l@dnumpstartsR}{}{R} }% \else% \immediate\write\eled@sectioning@out{% \string\eled@subsubsection{#1}{\unexpanded{#2}}{\the\l@dnumpstartsL}{}{} }% \fi% } \WithSuffix\newcommand\eledchapter*[2][]{% #2% \ifledRcol% \immediate\write\eled@sectioningR@out{% \string\eled@chapter{#1}{\unexpanded{#2}}{\the\l@dnumpstartsR}{*}{R} }% \else% \immediate\write\eled@sectioning@out{% \string\eled@chapter{#1}{\unexpanded{#2}}{\the\l@dnumpstartsL}{*}{} }% \fi% } \WithSuffix\newcommand\eledsection*[2][]{% #2% \ifledRcol% \immediate\write\eled@sectioningR@out{% \string\eled@section{#1}{\unexpanded{#2}}{\the\l@dnumpstartsR}{*}{R} }% \else% \immediate\write\eled@sectioning@out{% \string\eled@section{#1}{\unexpanded{#2}}{\the\l@dnumpstartsL}{*}{} }% \fi% } \WithSuffix\newcommand\eledsubsection*[2][]{% #2% \ifledRcol% \immediate\write\eled@sectioningR@out{% \string\eled@subsection{#1}{\unexpanded{#2}}{\the\l@dnumpstartsR}{*}{R} }% \else% \immediate\write\eled@sectioning@out{% \string\eled@subsection{#1}{\unexpanded{#2}}{\the\l@dnumpstartsL}{*}{} }% \fi% } \WithSuffix\newcommand\eledsubsubsection*[2][]{% #2% \ifledRcol% \immediate\write\eled@sectioningR@out{% \string\eled@subsubsection{#1}{\unexpanded{#2}}{\the\l@dnumpstartsR}{*}{R} }% \else% \immediate\write\eled@sectioning@out{% \string\eled@subsubsection{#1}{\unexpanded{#2}}{\the\l@dnumpstartsL}{*}{} }% \fi% } \def\eled@chapter#1#2#3#4#5{% \ifstrempty{#4}% {% \ifstrempty{#1}% {% \global\csdef{eled@sectioning@#3#5}{\let\edtext=\dummy@edtext@showlemma\chapter{#2}}% \global\csdef{eled@sectmark@#3#5}{\let\edtext=\dummy@edtext{}\chaptermark{#2}}% }%Need for \pairs, because of using parbox. {% \global\csdef{eled@sectioning@#3#5}{\let\edtext=\dummy@edtext@showlemma\chapter[#1]{#2}}% \global\csdef{eled@sectmark@#3#5}{\let\edtext=\dummy@edtext{}\chaptermark{#2}}%Need for \pairs, because of using parbox. }% }% {% \ifstrempty{#1}% {\global\csdef{eled@sectioning@#3#5}{\let\edtext=\dummy@edtext@showlemma\chapter*{#2}}}% {\global\csdef{eled@sectioning@#3#5}{\let\edtext=\dummy@edtext@showlemma\chapter*[#1]{#2}}}%Bug in LaTeX! }% \listcsgadd{eled@sections#5@@}{#3}% } \def\eled@section#1#2#3#4#5{% \ifstrempty{#4}% {\ifstrempty{#1}% {% \global\csdef{eled@sectioning@#3#5}{\section{#2}}% \global\csdef{eled@sectmark@#3#5}{\let\edtext=\dummy@edtext{}\sectionmark{#2}}%Need for \pairs, because of using parbox. }% {% \global\csdef{eled@sectioning@#3#5}{\section[#1]{#2}}% \global\csdef{eled@sectmark@#3#5}{\let\edtext=\dummy@edtext{}\sectionmark{#1}}%Need for \pairs, because of using parbox. }% }% {\ifstrempty{#1}% {\global\csdef{eled@sectioning@#3#5}{\section*{#2}}}% {\global\csdef{eled@sectioning@#3#5}{\section*[#1]{#2}}}%Bug in LaTeX! } \listcsgadd{eled@sections#5@@}{#3}% } \def\eled@subsection#1#2#3#4#5{% \ifstrempty{#4}% {\ifstrempty{#1}% {% \global\csdef{eled@sectioning@#3#5}{\subsection{#2}}% \global\csdef{eled@sectmark@#3#5}{\let\edtext=\dummy@edtext{}\csuse{subsectionmark}{#2}}%Need for \pairs, because of using parbox. \csuse in case of \subsectionmark is not defined (book) }% {% \global\csdef{eled@sectioning@#3#5}{\subsection[#1]{#2}}% \global\csdef{eled@sectmark@#3#5}{\let\edtext=\dummy@edtext{}\csuse{subsectionmark}{#1}}%Need for \pairs, because of using parbox. \csuse in case of \subsectionmark is not defined (book) }% }% {\ifstrempty{#1}% {\global\csdef{eled@sectioning@#3#5}{\subsection*{#2}}}% {\global\csdef{eled@sectioning@#3#5}{\subsection*[#1]{#2}}}%Bug in LaTeX! } \listcsgadd{eled@sections#5@@}{#3}% } \def\eled@subsubsection#1#2#3#4#5{% \ifstrempty{#4}% {\ifstrempty{#1}% {\global\csdef{eled@sectioning@#3#5}{\subsubsection{#2}}}% {\global\csdef{eled@sectioning@#3#5}{\subsubsection[#1]{#2}}}% }% {\ifstrempty{#1}% {\global\csdef{eled@sectioning@#3#5}{\subsubsection*{#2}}}% {\global\csdef{eled@sectioning@#3#5}{\subsubsection*[#1]{#2}}}%Bug in LaTeX! } \listcsgadd{eled@sections#5@@}{#3}% } }{} \def\normal@page@break{} \def\l@prev@pb{} \def\l@prev@nopb{} \newcommand{\ledpb}{\write\linenum@out{\string\led@pb}} \newcommand{\ledpbnum}[1]{\write\linenum@out{\string\led@pbnum{#1}}} \newcommand{\lednopb}{\write\linenum@out{\string\led@nopb}} \newcommand{\lednopbnum}[1]{\write\linenum@out{\string\led@nopbnum{#1}}} \newcommand{\led@pb}{\listxadd{\l@prev@pb}{\the\absline@num}} \newcommand{\led@pbnum}[1]{\listxadd{\l@prev@pb}{#1}} \newcommand{\led@nopb}{\listxadd{\l@prev@nopb}{\the\absline@num}} \newcommand{\led@nopbnum}[1]{\listxadd{\l@prev@nopb}{#1}} \def\led@pb@setting{before} \newcommand{\ledpbsetting}[1]{\gdef\led@pb@setting{#1}} \newcommand{\led@check@pb}{\xifinlist{\the\absline@num}{\l@prev@pb}{\pagebreak[4]}{}} \newcommand{\led@check@nopb}{% \IfStrEq{\led@pb@setting}{before}{% \xifinlist{\the\absline@num}{\l@prev@nopb}% {\numdef{\abs@prevline}{\the\absline@num-1}% \xifinlist{\abs@prevline}{\normal@page@break}% {\nopagebreak[4]\enlargethispage{\baselineskip}}% {}}% {}}% {}% {}% \IfStrEq{\led@pb@setting}{after}{% \xifinlist{\the\absline@num}{\l@prev@nopb}{% \xifinlist{\the\absline@num}{\normal@page@break}% {\nopagebreak[4]\enlargethispage{\baselineskip}}% {}% }% {}}% {}% {}% } \newcommand{\check@pb@in@verse}{% \ifinstanza\iflednopbinverse\ifinserthangingsymbol% Using stanzas and enabling page breaks in verse control, while on a hanging verse. \ifnum\page@num=\last@page@num\else%If we have change page \IfStrEq{\led@pb@setting}{before}{% \numgdef{\abs@line@verse}{\the\absline@num-1}% \ledpbnum{\abs@line@verse}% }{}% \IfStrEq{\led@pb@setting}{after}{% \numgdef{\abs@line@verse}{\the\absline@num-1}% \lednopbnum{\abs@line@verse}% }{}% \fi% \fi\fi\fi% } \endinput %% %% End of file `eledmac.sty'.