summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/source/latex/reledmac/reledmac.dtx
diff options
context:
space:
mode:
Diffstat (limited to 'Master/texmf-dist/source/latex/reledmac/reledmac.dtx')
-rw-r--r--Master/texmf-dist/source/latex/reledmac/reledmac.dtx378
1 files changed, 233 insertions, 145 deletions
diff --git a/Master/texmf-dist/source/latex/reledmac/reledmac.dtx b/Master/texmf-dist/source/latex/reledmac/reledmac.dtx
index fb5cf076d18..1bc89567a25 100644
--- a/Master/texmf-dist/source/latex/reledmac/reledmac.dtx
+++ b/Master/texmf-dist/source/latex/reledmac/reledmac.dtx
@@ -473,8 +473,12 @@
% \changes{v2.20.0}{2017/05/04}{Add second optional argument of \protect\cs{pstart}, \protect\cs{pend} and \protect\cs{stanza}.}
% \changes{v2.20.0}{2017/05/04}{Add third and fourth optional argument of \protect\cs{newverse}.}
% \changes{v2.21.0}{2017/06/04}{Fix bug when using formatting command in the argument of \protect\cs{edindex} inside \protect\cs{edtext}.}
-% \changes{v2.21.0}{2017/06/04}{Now, as explained in the handbook, an \protect\cs{edindex} inside \protect\cs{edtext} index only for main text, and not for critical footnotes.}
-% \changes{v2.21.0}{2017/06/04}{Add the possibility of nested \protect\cs{sameword}.}
+% \changes{v2.21.0}{2017/06/04}{Now, as explained in the handbook, an \protect\cs{edindex} inside \protect\cs{edtext} only creates index reference to main text, and not to the critical footnote.}
+% \changes{v2.21.0}{2017/06/04}{Add the possibility of nested \protect\cs{sameword}.}
+% \changes{v2.22.0}{2017/06/08}{Fix bug added in v2.16.0 when using \protect\cs{Xtxtbeforenotes} with paragraphed or normal footnotes.}
+% \changes{v2.22.0}{2017/06/08}{Fix bug with three and two columns critical footnotes, broken in v.~2.17.6.}
+% \changes{v2.22.0}{2017/06/08}{Add \protect\cs{txtbeforenotesX} hook.}
+% \changes{v2.22.0}{2017/06/08}{Add \protect\cs{txtbeforenotesonlyonceX} and \protect\cs{Xtxtbeforenotesonlyonce} hooks.}
% Typeset scholarly editions with \LaTeX\thanks{This file (\dtxfilename)
% has version number \fileversion, last revised \filedate.}}
%
@@ -1596,9 +1600,9 @@
%
%\fbox{%
% \fbox{%
-% $1_{\mathrm{inlemma}}$
-% \fbox{$2$}
-% $3_2$%
+% $1_{\mathrm{inlemma}}$
+% \fbox{$2$}
+% $3_2$%
% }\textsuperscript{$1$\ldots$3$}%
% 4
% $5_1$
@@ -1678,12 +1682,12 @@
%
% \subsubsection{Sameword for a group of words}
% Sometime, a group of words, and not only a single word, occurs multiple times.
-% In this case, you have two solutions.
+% In this case, you have two possibilities.
%
-% First, you can consider only individual words, and not groups of word.
-% See this example:
+% First, you can consider only the individual words, and not groups of word.
+% For example:
% \begin{verbatim}
-%\sameword{per} \sameword{causam}
+%\sameword{per} \sameword{causam}
%tamen scire
%\edtext{\sameword{causam}}{\Bfootnote{fnote}}
%est
@@ -1704,12 +1708,12 @@
% \pend
% \endnumbering
% \end{ledgroup}
-% Here, there no ambiguity about which \enquote{per causam} we speak.
+% Here, it is not ambiguous what \enquote{per causam} refers to.
%
-% However, we may consider that as \enquote{per causam} is the lemma of the second note, there should be only one number for the whole lemma.
-% In this case we can mark all the \enquote{per causam} groups.
+% However, we may think that as \enquote{per causam} is the lemma of the second note, there should be only one number for the whole lemma.
+% In this case we can mark all \enquote{per causam} groups.
% But as \enquote{causam} is also called as lemma in note~1 and ~3, we need to use nested \cs{sameword}.
-% Consequently, we need to use \cs{lemma} for the \cs{edtext} linked to \enquote{per causam}, as we don't want to have number for individual word.
+% Consequently, we need to use \cs{lemma} for the \cs{edtext} linked to \enquote{per causam}, as we don't want to number each individual word.
%
% \begin{verbatim}
%\sameword{per \sameword{causam}} tamen scire
@@ -2480,7 +2484,7 @@
% \subsection{Options for block of notes}
%
% \subsubsection{Grouping notes by line}
-% \DescribeMacro{Xgroupbyline}
+% \DescribeMacro{\Xgroupbyline}
% If you do not use \cs{Xarrangement}\arg{paragraph}, you may want to group all the critical footnotes related to the same line in the same paragraph.
% In this case, use \cs{Xgroupbyline}\oarg{series}.
%
@@ -2497,8 +2501,13 @@
% \subsubsection{Text before notes}
% \changes{v1.1.0}{2012/09/12}{New options for block of notes.}
% \DescribeMacro{\Xtxtbeforenotes}
-% You can add text before critical notes with \protect\cs{Xtxtbeforenotes}\oarg{s}\marg{text}.
+% You can add text before critical footnotes with \protect\cs{Xtxtbeforenotes}\oarg{s}\marg{text}.
+% \DescribeMacro{\txtbeforenotesX}
+% You can add text before familiar footnotes with \protect\cs{txtbeforenotesX}\oarg{s}\marg{text}.
%
+% \DescribeMacro{\Xtxtbeforenotesonlyonce}
+% \DescribeMacro{\txtbeforenotesonlyonceX} By default, such texts are inserted at the beginning of the groups of notes on each pages.
+% You can add \cs{Xtxtbeforenotesonlyonce} (for critical footnotes) and \cs{txtbeforenotesonlyonceX} (for familiar footnotes) to insert them only the first time notes are typeset.
% \subsubsection{Code before notes}
%\DescribeMacro{\Xbhookgroup}
%\DescribeMacro{\bhookgroupX}
@@ -2671,7 +2680,7 @@
% is ended by an ampersand (\verb+&+), and the stanza itself is ended
% by putting \verb?\&? at the end of the last line.
%
-% If you need to add brackets directly after \verb?\stanza?, \verb+&+ or \verb?\&?, add \cs{norelax}, as in other case the brackets will be interpreted as delimitation for optional argument (cf.~\reff{contentverse})
+% If you need to add brackets directly after \verb?\stanza?, \verb+&+ or \verb?\&?, add \cs{norelax}. Otherwise, the brackets will be interpreted as delimitation of an optional argument (cf.~\reff{contentverse})
%
%
% \subsection{Define stanza indents}
@@ -3997,7 +4006,7 @@
% \begin{macrocode}
%<*code>
\NeedsTeXFormat{LaTeX2e}
-\ProvidesPackage{reledmac}[2017/06/04 v2.21.0 typesetting critical editions]%
+\ProvidesPackage{reledmac}[2017/06/08 v2.22.0 typesetting critical editions]%
% \end{macrocode}
%
% \subsection{Package options}
@@ -5149,7 +5158,7 @@
% \end{macrocode}
% In other case, it is an error.
% \begin{macrocode}
- \else
+ \else
\led@warn@BadLineation
\fi
\fi
@@ -7670,12 +7679,12 @@
% \item \textbf{At the first run}, each \protect\cs{sameword} command increments an \protect\package{etoolbox} counter the name of which contains the argument of the \protect\cs{sameword} commands.
% \item Then this counter, associated with the argument of \protect\cs{sameword} is stored with the \protect\cs{@sw} command in the auxiliary file of the current \macpackage section (the \verb+.1+, \verb+.2+… file).
% \item \textbf{When this auxiliary file is read at the second run}, different operations are achieved:
-% \begin{enumerate}
-% \item Get the rank of each \protect\cs{sameword} in a line (relative rank) from the rank of each \protect\cs{sameword} in all the numbered section (absolute rank):
-% \begin{itemize}
-% \item For each paired \protect\cs{sameword} argument and absolute line number, a counter is defined. Its value corresponds to the number of times \protect\cs{sameword}\marg{argument} is called from the beginning of the lineation to the end of the current line. We also store the same data for the preceding absolute line number, if it does not have \protect\cs{sameword}\marg{argument}.
-% \item For each \protect\cs{sameword} having the same argument, we subtract from its absolute rank the number stored for the paired \protect\cs{sameword} argument and previous absolute line number. Consequently, we obtain the relative rank.
-% \item See the following example which explains how, for same \protect\cs{sameword}, absolute ranks are transformed to relative ranks.
+% \begin{enumerate}
+% \item Get the rank of each \protect\cs{sameword} in a line (relative rank) from the rank of each \protect\cs{sameword} in all the numbered section (absolute rank):
+% \begin{itemize}
+% \item For each paired \protect\cs{sameword} argument and absolute line number, a counter is defined. Its value corresponds to the number of times \protect\cs{sameword}\marg{argument} is called from the beginning of the lineation to the end of the current line. We also store the same data for the preceding absolute line number, if it does not have \protect\cs{sameword}\marg{argument}.
+% \item For each \protect\cs{sameword} having the same argument, we subtract from its absolute rank the number stored for the paired \protect\cs{sameword} argument and previous absolute line number. Consequently, we obtain the relative rank.
+% \item See the following example which explains how, for same \protect\cs{sameword}, absolute ranks are transformed to relative ranks.
% \begin{verbatim}
% At line 1:
% absolute rank 1 becomes relative rank 1-0 = 1
@@ -7691,7 +7700,7 @@
% absolute rank 4 becomes relative rank 4-3 = 1
% 4 is stored for this \sameword and line 4
% \end{verbatim}
-% \end{itemize}
+% \end{itemize}
% \item Create lists of lists of \protect\cs{sameword} by depth of \protect\cs{edtext}.
% That is: create a list for \protect\cs{edtext}s of level~1, a list for \protect\cs{edtext}s of level~2, a list for \protect\cs{edtext}s of level~3 etc.
% For each \protect\cs{edtext} in these lists, we store all of the relative ranks of \protect\cs{saweword} which are called as lemma information. That is: 1) either called in the first argument of \protect\cs{sameword}, or, 2) called in the \protect\cs{lemma} macro of the second argument of \protect\cs{sameword} AND marked by the optional argument of \protect\cs{saweword} in first argument of \protect\cs{edtext}.
@@ -7702,13 +7711,13 @@
%
%\let\up\textsuperscript
%bar\up{1} \fbox{%
-% \fbox{foo\up{1} foo\up{2} bar\up{2} foo\up{3}} (A)(B)
-% foo\up{4} bar\up{3}%
-% } (C)
-% \fbox{%
-% \fbox{foo\up{5}} (D)
-% bar\up{4}
-% } (E)
+% \fbox{foo\up{1} foo\up{2} bar\up{2} foo\up{3}} (A)(B)
+% foo\up{4} bar\up{3}%
+% } (C)
+% \fbox{%
+% \fbox{foo\up{5}} (D)
+% bar\up{4}
+% } (E)
%
% In this example, all lemma information for \protect\cs{edtext} is framed. The text in parenthesis is the content of critical notes associated to the preceding frame.
% As you can see, we have two levels of \protect\cs{edtext}.
@@ -7729,8 +7738,8 @@
% \item At the second run, when a critical note is printed:
% \begin{itemize}
% \item The \protect\cs{sameword} command is let \protect\cs{sameword@inedtext}.
-% \item At each call of this \protect\cs{sameword@inedtext}, we step to the next element of the list associated to the note. Let it be $r$.
-% \item For the word marked by \protect\cs{sameword}, we calculate how many time it is called in its line. To do it:
+% \item At each call of this \protect\cs{sameword@inedtext}, we step to the next element of the list associated to the note. Let it be $r$.
+% \item For the word marked by \protect\cs{sameword}, we calculate how many time it is called in its line. To do it:
% \begin{itemize}
% \item We get the absolute line number of the current \protect\cs{sameword}. This absolute line number was stored with a list of relative ranks for the current \protect\cs{edtext}. That means, in the previous example, that if the absolute line number of \protect\cs{edtext} was 1, that critical notes (A) and (B) were not associated with $\{1,2,2,3\}$ but with $\{(1,1),(2,1),(2,1),(3,1)\}$. Such a method of knowing the absolute line number associated to a \protect\cs{sameword} is required because a \protect\cs{edtext} can overlap many lines, but \protect\cs{sameword} can't get it.
% \item When reading the auxiliary file, we get the value associated to the pair composed by the current marked word and the current absolute line number. To this value, we subtract the value associated to the pair composed by the current marked word and the previous absolute line number. Let the result be $n$.
@@ -8383,6 +8392,7 @@
% \begin{macrocode}
\if@firstlineofpage%
\set@Xtxtbeforenotes%
+ \set@txtbeforenotesX%
\global\@firstlineofpagefalse%
\fi%
% \end{macrocode}
@@ -8448,6 +8458,7 @@
\def\print@eledsection{%
\if@firstlineofpage%
\set@Xtxtbeforenotes%
+ \set@txtbeforenotesX%
\global\@firstlineofpagefalse%
\fi%
\ifdefstring{\ms@data@position}{msdata-regular}{%
@@ -8722,33 +8733,33 @@
% \begin{macrocode}
\newcommand*{\do@actions@fixedcode}{%
\ifcase\@l@dtempcnta
- \or% % 1001 = starting sublineation
+ \or% % 1001 = starting sublineation
\global\sublines@true
- \or% % 1002 = ending sublineation
+ \or% % 1002 = ending sublineation
\global\sublines@false
- \or% % 1003 = starting locking number
+ \or% % 1003 = starting locking number
\global\@lock=\@ne
- \or% % 1004 = ending locking number
+ \or% % 1004 = ending locking number
\ifnum\@lock=\tw@
\global\@lock=\thr@@
\else
\global\@lock=\z@
\fi
- \or% % 1005 = starting locking subnumber
+ \or% % 1005 = starting locking subnumber
\global\sub@lock=\@ne
- \or% % 1006 = ending locking subnumber
+ \or% % 1006 = ending locking subnumber
\ifnum\sub@lock=\tw@
\global\sub@lock=\thr@@
\else
\global\sub@lock=\z@
\fi
- \or% % 1007 = skipping numbering
+ \or% % 1007 = skipping numbering
\l@dskipnumbertrue
- \or% % 1008 = skipping numbering in stanza
+ \or% % 1008 = skipping numbering in stanza
\l@dskipversenumbertrue%
- \or% % 1009 = hiding number
+ \or% % 1009 = hiding number
\l@dhidenumbertrue
- \or% % 1010 = inserting msdata
+ \or% % 1010 = inserting msdata
\add@msdata%
\else
\led@warn@BadAction
@@ -9289,12 +9300,29 @@
% \end{macro}
% \subsection{Text before notes}
% \begin{macro}{\set@Xtxtbeforenotes}
-% The \cs{set@Xtxtbeforenotes} macro resets the Xtxtbeforesnotes@\meta{series}@typeset boolean to false. Just before the first note of the \meta{series} in a page, the Xtextbeforenotes will be inserted.
+% The \cs{set@Xtxtbeforenotes} macro resets the Xtxtbeforesnotes@\meta{series}@typeset boolean to false. Just before the first note of the \meta{series} in a page, the \cs{Xtextbeforenotes} will be inserted.
% \begin{macrocode}
\newcommand{\set@Xtxtbeforenotes}{%
\unless\ifnocritical@%
\def\do##1{%
- \global\togglefalse{Xtxtbeforesnotes@##1@typeset}%
+ \nottoggle{Xtxtbeforenotesonlyonce@##1}{%
+ \global\togglefalse{Xtxtbeforesnotes@##1@typeset}%
+ }{}%
+ }%
+ \dolistloop{\@series}%
+ \fi%
+}%
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\set@txtbeforenotesX}
+% The \cs{set@txtbeforenotesX} does the same for the \cs{textbeforenotesX}.
+% \begin{macrocode}
+\newcommand{\set@txtbeforenotesX}{%
+ \unless\ifnofamiliar@%
+ \def\do##1{%
+ \nottoggle{txtbeforenotesonlyonceX@##1}{%
+ \global\togglefalse{txtbeforesnotesX@##1@typeset}%
+ }{}%
}%
\dolistloop{\@series}%
\fi%
@@ -9302,9 +9330,12 @@
% \end{macrocode}
% \end{macro}
% \begin{macro}{\insert@Xtxtbeforenotes}
-% \cs{insert@Xtxtbeforenotes}\marg{series}, called when inserting a note, will insert the text before the note if it is not already inserted.
+% \begin{macro}{\insert@txtbeforenotesX}
+% \cs{insert@Xtxtbeforenotes}\marg{series}, called when inserting a familiar footnote, will insert the text before the note if it is not already inserted.
% For paragraphed footnotes, it will insert it as a component of the first footnote.
% For other types of footnotes, it will insert it as a regular footnote.
+%
+% \cs{insert@txtbeforenotesX} is the same for familiar footnotes.
% \begin{macrocode}
\newcommand{\insert@Xtxtbeforenotes}[1]{%
\nottoggle{Xtxtbeforesnotes@#1@typeset}{%
@@ -9315,7 +9346,9 @@
{\expandafter\insert\csname#1footins\endcsname%
\bgroup%
\noindent%
- \csuse{\csuse{series@display#1}@begin@insert}{#1}%
+ \ifcsdef{\csuse{series@display#1}@begin@insert}{%
+ \csuse{\csuse{series@display#1}@begin@insert}{#1}%
+ }{}%
\strut\csuse{Xnotefontsize@#1}\csuse{Xtxtbeforenotes@#1}%
\egroup%
}%
@@ -9323,8 +9356,32 @@
}%
{}%
}%
+
+
+\newcommand{\insert@txtbeforenotesX}[1]{%
+ \nottoggle{txtbeforesnotesX@#1@typeset}{%
+ \global\toggletrue{txtbeforesnotesX@#1@typeset}%
+ \ifcsvoid{txtbeforenotesX@#1}{}{%
+ \ifcsstring{series@displayX#1}{paragraph}%
+ {\noindent\csuse{txtbeforenotesX@#1}}%
+ {\expandafter\insert\csname footins#1\endcsname%
+ \bgroup%
+ \noindent%
+ \ifcsdef{\csuse{series@displayX#1}@begin@insert}{%
+ \csuse{\csuse{series@displayX#1}@begin@insert}{#1}%
+ }{}%
+ \strut\csuse{notefontsizeX@#1}\csuse{txtbeforenotesX@#1}%
+ \egroup%
+ }%
+ }%
+ }%
+ {}%
+}%
+
+
% \end{macrocode}
% \end{macro}
+% \end{macro}
% \section{Critical footnotes}
% \label{footnotes}
%
@@ -9634,6 +9691,16 @@
}%
% \end{macrocode}
% \end{macro}
+% \begin{macro}{\beforeinsertion@X}
+% \begin{macrocode}
+\newcommand{\beforeinsertion@X}[1]{%
+ \if@ledgroup\else%
+ \insert@txtbeforenotesX{#1}%
+ \fi%
+ \csuse{beforeinsertingX@#1}%
+}%
+% \end{macrocode}
+% \end{macro}
% \begin{macro}{\X@atbegininsertion}
% \begin{macrocode}
\newcommand{\X@atbegininsertion}[1]{%
@@ -10424,6 +10491,7 @@
%
% \begin{macrocode}
\notbool{parapparatus@}{\newcommand*}{\newcommand}{\threecolfootfmt}[4]{%
+ \Xstorelineinfo{#1}{#4}%
\threecol@begin@insert{#4}%
\hspace{\parindent}%
\printlinefootnote{#1}{#4}%
@@ -10572,6 +10640,7 @@
% \end{macrocode}
% \begin{macrocode}
\notbool{parapparatus@}{\newcommand*}{\newcommand}{\twocolfootfmt}[4]{% 4th arg is optional, for backward compatibility
+ \Xstorelineinfo{#1}{#4}%
\twocol@begin@insert{#4}%
\hspace{\parindent}%
\printlinefootnote{#1}{#4}%
@@ -11572,7 +11641,7 @@
% \meta{text}.
% \begin{macrocode}
\notbool{parapparatus@}{\newcommand*}{\newcommand}{\normalvfootnoteX}[2]{%
- \csuse{beforeinsertingX@#1}%
+ \beforeinsertion@X{#1}%
\insert\@nameuse{footins#1}\bgroup
\reset@font%
\hsize=\expandafter\dimexpr\csuse{widthX@#1}\relax%
@@ -11915,7 +11984,7 @@
% \protect\cs{twocolvfootnoteX}\marg{series}
% \begin{macrocode}
\notbool{parapparatus@}{\newcommand*}{\newcommand}{\twocolvfootnoteX}[2]{%
- \csuse{beforeinsertingX@#1}%
+ \beforeinsertion@X{#1}%
\insert\csname footins#1\endcsname\bgroup%
\hsize=\expandafter\dimexpr\csuse{widthX@#1}\relax%
\noindent\csuse{bhooknoteX@#1}%
@@ -12040,7 +12109,7 @@
% \protect\cs{threecolvfootnoteX}\marg{series}\marg{text}
% \begin{macrocode}
\notbool{parapparatus@}{\newcommand*}{\newcommand}{\threecolvfootnoteX}[2]{%
- \csuse{beforeinsertingX@#1}%
+ \beforeinsertion@X{#1}%
\insert\csname footins#1\endcsname\bgroup%
\hsize=\expandafter\dimexpr\csuse{widthX@#1}\relax%
\noindent\csuse{bhooknoteX@#1}%
@@ -12203,6 +12272,7 @@
\footsplitskips
\setbox0=\vbox{\hsize=\maxdimen%
\let\bidi@RTL@everypar\@empty%
+ \insert@txtbeforenotesX{#1}%
\noindent\csuse{bhooknoteX@#1}%
\@nameuse{footfmt#1}{#1}{#2}}%
\setbox0=\hbox{\unvxhX{0}{#1}}%
@@ -12396,7 +12466,7 @@
\newcommand*{\ledsetnormalparstuff@common}{%
\ifluatex%
\ifdefstring{\footnote@luatextextdir}{TLT}{}%
- {\textdir\footnote@luatextextdir}%
+ {\textdir\footnote@luatextextdir}%
\pardir\footnote@luatexpardir%
\fi%
\csuse{\csuse{footnote@dir}}%
@@ -13308,6 +13378,7 @@
\csgdef{Xtxtbeforenotes@#1}{}
\newtoggle{Xtxtbeforesnotes@#1@typeset}%Not directly used by user, but internal
+ \newtoggle{Xtxtbeforenotesonlyonce@#1}%
\csgdef{Xmaxhnotes@#1}{0.8\vsize}
\newtoggle{Xnoteswidthliketwocolumns@#1}%
@@ -13476,6 +13547,9 @@
\csgdef{parafootsepX@#1}{}%
\csgdef{afternoteX@#1}{1em plus.4em minus.4em}
\csgdef{widthX@#1}{\hsize}%
+ \csgdef{txtbeforenotesX@#1}{}%
+ \newtoggle{txtbeforesnotesX@#1@typeset}%Not directly used by user, but internal
+ \newtoggle{txtbeforenotesonlyonceX@#1}%
% End of for familiar footnotes.
% \subsubsection{Create inserts, needed to add notes in foot}
% As regards inserts, see chapter 15 of the TeXBook by D. Knuth.
@@ -13532,9 +13606,9 @@
\xdef\footnote@luatexpardir{\the\pardir}%
\fi%
\if@ledgroup%
- \led@set@index@fornote{#1}%
- \fi%
- \csuse{vfootnote#1}{#1}{\expandonce\content}\m@mmf@prepare%
+ \led@set@index@fornote{#1}%
+ \fi%
+ \csuse{vfootnote#1}{#1}{\expandonce\content}\m@mmf@prepare%
\ifbool{indtl@innote}%
{\let\index\orig@@index}%
{}%
@@ -13996,6 +14070,7 @@
\newhookcommand@series{Xafterlemmaseparator}
\newhookcommand@series{Xinplaceoflemmaseparator}
\newhookcommand@series{Xtxtbeforenotes}
+ \newhooktoggle@series{Xtxtbeforenotesonlyonce}%
\newhookcommand@series@reload{Xafterrule}{critical}
\newhooktoggle@series{Xnumberonlyfirstinline}
\newhooktoggle@series{Xnumberonlyfirstintwolines}
@@ -14067,6 +14142,8 @@
\newhookcommand@series@reload{notefontsizeX}{familiar}
\newhookcommand@series{afternoteX}
\newhookcommand@series{parafootsepX}
+ \newhookcommand@series{txtbeforenotesX}%
+ \newhooktoggle@series{txtbeforenotesonlyonceX}%
\newhookcommand@series@reload{widthX}{familiar}%
\ifundef{\hsizeX}%
{%
@@ -15971,7 +16048,18 @@
}%
\newcommand{\mp@append@notesX}[1]{%
\ifvoid\csuse{mpfootins#1}\else%
- \csuse{mpfootgroup#1}{#1}%
+ \ifcsstring{series@displayX#1}{paragraph}{}{%
+ \setbox\@nameuse{mpfootins#1}=\vbox{%
+ \csuse{notefontsizeX@#1}%
+ \ifcsdef{hsize\csuse{series@display#1}X@#1}{%
+ \hsize\csuse{hsize\csuse{series@display#1}X@#1}%
+ }{}%
+ \noindent\csuse{txtbeforenotesX@#1}%
+ \unvbox\@nameuse{mpfootins#1}%
+ \@parboxrestore%
+ }%
+ }%
+ \csuse{mpfootgroup#1}{#1}%
\fi%
}%
% \end{macrocode}
@@ -16387,15 +16475,15 @@
\IfSubStr[1]{\@tmp}{|}{\get@index@command#2+}{\get@index@command#2|+}%
\get@edindex@ledinnote@command%
\expandafter\protected@write\@indexfile{}%
- {\string\indexentry{\@index@txt|(\@ledinnote@command}{\thestartpageline}
- }%
+ {\string\indexentry{\@index@txt|(\@ledinnote@command}{\thestartpageline}
+ }%
\expandafter\protected@write\@indexfile{}%
- {\string\indexentry{\@index@txt|)\@ledinnote@command}{\theendpageline}
+ {\string\indexentry{\@index@txt|)\@ledinnote@command}{\theendpageline}
}%
\else%
\protected@write\@indexfile{}%
- {\string\indexentry{#2}{\thepageline}
- }%
+ {\string\indexentry{#2}{\thepageline}
+ }%
\fi%
\fi%
\endgroup
@@ -17345,8 +17433,8 @@
\csxdef{footnote@luatextextdir}{\the\textdir}%
\csxdef{footnote@luatexpardir}{\the\pardir}%
\fi%
- \csdef{@this@crossref@start}{\add@msd@c:start:msdata}%
- \csdef{@this@crossref@end}{\add@msd@c:end:msdata}%
+ \csdef{@this@crossref@start}{\add@msd@c:start:msdata}%
+ \csdef{@this@crossref@end}{\add@msd@c:end:msdata}%
\noexpand\csuse{v\@msdata@series footnote}{\@msdata@series}{{\expandonce\l@d@nums}{\ms@data@label}{\expandonce\@data}}%
\reset@msd@options@iffullpage%
}%
@@ -17390,8 +17478,8 @@
\csxdef{footnote@luatextextdir}{\the\textdir}%
\csxdef{footnote@luatexpardir}{\the\pardir}%
\fi%
- \csdef{@this@crossref@start}{\add@msd@cR:start:msdata}%
- \csdef{@this@crossref@end}{\add@msd@cR:end:msdata}%
+ \csdef{@this@crossref@start}{\add@msd@cR:start:msdata}%
+ \csdef{@this@crossref@end}{\add@msd@cR:end:msdata}%
\noexpand\csuse{v\@msdata@series footnote}{\@msdata@series}{{\expandonce\l@d@nums}{\ms@data@label}{\expandonce\@data}}%
\reset@msd@options@iffullpage%
}%
@@ -17451,8 +17539,8 @@
\csxdef{footnote@luatextextdir}{\the\textdir}%
\csxdef{footnote@luatexpardir}{\the\pardir}%
\fi%
- \csdef{@this@crossref@start}{\add@msd@c:start:msdata}%
- \csdef{@this@crossref@end}{\add@msd@c:end:msdata}%
+ \csdef{@this@crossref@start}{\add@msd@c:start:msdata}%
+ \csdef{@this@crossref@end}{\add@msd@c:end:msdata}%
\noexpand\csuse{v\@msdata@series footnote}{\@msdata@series}{{\expandonce\l@d@nums}{\ms@data@label}{\expandonce\@data}}%
\reset@msd@options@iffullpage%
}%
@@ -17495,8 +17583,8 @@
\csxdef{footnote@luatextextdir}{\the\textdir}%
\csxdef{footnote@luatexpardir}{\the\pardir}%
\fi%
- \csdef{@this@crossref@start}{\add@msd@cR:start:msdata}%
- \csdef{@this@crossref@end}{\add@msd@cR:end:msdata}%
+ \csdef{@this@crossref@start}{\add@msd@cR:start:msdata}%
+ \csdef{@this@crossref@end}{\add@msd@cR:end:msdata}%
\noexpand\csuse{v\@msdata@series footnote}{\@msdata@series}{{\expandonce\l@d@nums}{\ms@data@label}{\expandonce\@data}}%
\reset@msd@options@iffullpage%
}%
@@ -19729,82 +19817,82 @@
% \begin{macrocode}
\ifeledmaccompat@%
- \newcommand{\footnormalX}[1]{\arrangementX[#1]{normal}}%
- \newcommand{\footparagraphX}[1]{\arrangementX[#1]{paragraph}}%
- \newcommand{\foottwocolX}[1]{\arrangementX[#1]{twocol}}%
- \newcommand{\footthreecolX}[1]{\XarrangementX[#1]{threecol}}%
-
- \unless\ifnocritical@
- \newcommand{\footnormal}[1]{\Xarrangement[#1]{normal}}%
- \newcommand{\footparagraph}[1]{\Xarrangement[#1]{paragraph}}%
- \newcommand{\foottwocol}[1]{\Xarrangement[#1]{twocol}}%
- \newcommand{\footthreecol}[1]{\Xarrangement[#1]{threecol}}%
- \let\hsizetwocol\Xhsizetwocol
- \let\hsizethreecol\Xhsizethreecol
- \let\bhookXnote\Xbhooknote
- \let\boxsymlinenum\Xboxsymlinenum
- \let\symlinenum\Xsymlinenum
- \let\beforenumberinfootnote\Xbeforenumber
- \let\afternumberinfootnote\Xafternumber
- \let\beforeXsymlinenum\Xbeforesymlinenum
- \let\afterXsymlinenum\Xaftersymlinenum
- \let\inplaceofnumber\Xinplaceofnumber
- \let\Xlemmaseparator\lemmaseparator
- \let\afterlemmaseparator\Xafterlemmaseparator
- \let\beforelemmaseparator\Xbeforelemmaseparator
- \let\inplaceoflemmaseparator\Xinplaceoflemmaseparator
- \let\txtbeforeXnotes\Xtxtbeforenotes
- \let\afterXrule\Xafterrule
- \let\numberonlyfirstinline\Xnumberonlyfirstinline
- \let\numberonlyfirstintwolines\Xnumberonlyfirstintwolines
- \let\nonumberinfootnote\Xnonumberinfootnote
- \let\pstartinfootnote\Xpstart
- \let\pstartinfootnoteeverytime\Xpstarteverytime
- \let\onlyXpstart\Xonlypstart
- \let\Xnonumberinfootnote\Xnonumber
- \let\nonbreakableafternumber\Xnonbreakableafternumber
- \let\maxhXnotes\Xmaxhnotes
- \let\beforeXnotes\Xbeforenotes
- \let\boxlinenum\Xboxlinenum
- \let\boxlinenumalign\Xboxlinenumaligm
- \let\boxstartlinenum\Xboxstartlinenum
- \let\boxendlinenum\Xboxendlinenum
- \let\twolines\Xtwolines
- \let\morethantwolines\Xmorethantwolines
- \let\twolinesbutnotmore\Xtwolinesbutnotmore
- \let\twolinesonlyinsamepage\Xtwolinesonlyinsamepage
- \fi
-
- \unless\ifnofamiliar@
- \let\notesXwidthliketwocolumns\noteswidthliketwocolumnsX
- \fi
- \newcommandx{\parafootsep}[2][1,usedefault]{%
- \Xparafootsep[#1]{#2}%
- \parafootsepX[#1]{#2}
- }%
-
- \newcommandx{\afternote}[2][1,usedefault]{%
- \Xafternote[#1]{#2}%
- \afternoteX[#1]{#2}%
- }%
-
- \unless\ifnoend@
- \let\XendXtwolines\Xendtwolines
- \let\XendXmorethantwolines\Xendmorethantwolines
- \let\bhookXendnote\Xendbhooknote
- \let\boxXendlinenum\Xendboxlinenum%
- \let\boxXendlinenumalign\Xendboxlinenumalign%
- \let\boxXendstartlinenum\Xendboxstartlinenum%
- \let\boxXendendlinenum\Xendboxendlinenum%
- \let\XendXlemmaseparator\Xendlemmaseparator
- \let\XendXbeforelemmaseparator\Xendbeforelemmaseparator
- \let\XendXafterlemmaseparator\Xendafterlemmaseparator
- \let\XendXinplaceoflemmaseparator\Xendinplaceoflemmaseparator
- \fi
-
- \AtBeginDocument{%
- \ifdef\lineref{}{\let\lineref\edlineref}%
- }%
+ \newcommand{\footnormalX}[1]{\arrangementX[#1]{normal}}%
+ \newcommand{\footparagraphX}[1]{\arrangementX[#1]{paragraph}}%
+ \newcommand{\foottwocolX}[1]{\arrangementX[#1]{twocol}}%
+ \newcommand{\footthreecolX}[1]{\XarrangementX[#1]{threecol}}%
+
+ \unless\ifnocritical@
+ \newcommand{\footnormal}[1]{\Xarrangement[#1]{normal}}%
+ \newcommand{\footparagraph}[1]{\Xarrangement[#1]{paragraph}}%
+ \newcommand{\foottwocol}[1]{\Xarrangement[#1]{twocol}}%
+ \newcommand{\footthreecol}[1]{\Xarrangement[#1]{threecol}}%
+ \let\hsizetwocol\Xhsizetwocol
+ \let\hsizethreecol\Xhsizethreecol
+ \let\bhookXnote\Xbhooknote
+ \let\boxsymlinenum\Xboxsymlinenum
+ \let\symlinenum\Xsymlinenum
+ \let\beforenumberinfootnote\Xbeforenumber
+ \let\afternumberinfootnote\Xafternumber
+ \let\beforeXsymlinenum\Xbeforesymlinenum
+ \let\afterXsymlinenum\Xaftersymlinenum
+ \let\inplaceofnumber\Xinplaceofnumber
+ \let\Xlemmaseparator\lemmaseparator
+ \let\afterlemmaseparator\Xafterlemmaseparator
+ \let\beforelemmaseparator\Xbeforelemmaseparator
+ \let\inplaceoflemmaseparator\Xinplaceoflemmaseparator
+ \let\txtbeforeXnotes\Xtxtbeforenotes
+ \let\afterXrule\Xafterrule
+ \let\numberonlyfirstinline\Xnumberonlyfirstinline
+ \let\numberonlyfirstintwolines\Xnumberonlyfirstintwolines
+ \let\nonumberinfootnote\Xnonumberinfootnote
+ \let\pstartinfootnote\Xpstart
+ \let\pstartinfootnoteeverytime\Xpstarteverytime
+ \let\onlyXpstart\Xonlypstart
+ \let\Xnonumberinfootnote\Xnonumber
+ \let\nonbreakableafternumber\Xnonbreakableafternumber
+ \let\maxhXnotes\Xmaxhnotes
+ \let\beforeXnotes\Xbeforenotes
+ \let\boxlinenum\Xboxlinenum
+ \let\boxlinenumalign\Xboxlinenumaligm
+ \let\boxstartlinenum\Xboxstartlinenum
+ \let\boxendlinenum\Xboxendlinenum
+ \let\twolines\Xtwolines
+ \let\morethantwolines\Xmorethantwolines
+ \let\twolinesbutnotmore\Xtwolinesbutnotmore
+ \let\twolinesonlyinsamepage\Xtwolinesonlyinsamepage
+ \fi
+
+ \unless\ifnofamiliar@
+ \let\notesXwidthliketwocolumns\noteswidthliketwocolumnsX
+ \fi
+ \newcommandx{\parafootsep}[2][1,usedefault]{%
+ \Xparafootsep[#1]{#2}%
+ \parafootsepX[#1]{#2}
+ }%
+
+ \newcommandx{\afternote}[2][1,usedefault]{%
+ \Xafternote[#1]{#2}%
+ \afternoteX[#1]{#2}%
+ }%
+
+ \unless\ifnoend@
+ \let\XendXtwolines\Xendtwolines
+ \let\XendXmorethantwolines\Xendmorethantwolines
+ \let\bhookXendnote\Xendbhooknote
+ \let\boxXendlinenum\Xendboxlinenum%
+ \let\boxXendlinenumalign\Xendboxlinenumalign%
+ \let\boxXendstartlinenum\Xendboxstartlinenum%
+ \let\boxXendendlinenum\Xendboxendlinenum%
+ \let\XendXlemmaseparator\Xendlemmaseparator
+ \let\XendXbeforelemmaseparator\Xendbeforelemmaseparator
+ \let\XendXafterlemmaseparator\Xendafterlemmaseparator
+ \let\XendXinplaceoflemmaseparator\Xendinplaceoflemmaseparator
+ \fi
+
+ \AtBeginDocument{%
+ \ifdef\lineref{}{\let\lineref\edlineref}%
+ }%
\fi%