summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/source/latex/reledmac
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2017-06-09 22:33:35 +0000
committerKarl Berry <karl@freefriends.org>2017-06-09 22:33:35 +0000
commite9d55e61177e246f9e8824676ebedb475b9df028 (patch)
treed7d7d84289ec0fab9e6e8432c899c9d947bac55a /Master/texmf-dist/source/latex/reledmac
parent4a29a4d67989a64f1aeab28d89711da8d2e0a09a (diff)
reledmac (9jun17)
git-svn-id: svn://tug.org/texlive/trunk@44545 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/source/latex/reledmac')
-rw-r--r--Master/texmf-dist/source/latex/reledmac/reledmac.dtx378
-rw-r--r--Master/texmf-dist/source/latex/reledmac/reledpar.dtx39
2 files changed, 255 insertions, 162 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%
diff --git a/Master/texmf-dist/source/latex/reledmac/reledpar.dtx b/Master/texmf-dist/source/latex/reledmac/reledpar.dtx
index ff0fd4be971..d5ed0d69426 100644
--- a/Master/texmf-dist/source/latex/reledmac/reledpar.dtx
+++ b/Master/texmf-dist/source/latex/reledmac/reledpar.dtx
@@ -304,6 +304,7 @@
% \changes{v2.17.3}{2017/04/20}{Fix bug when using multiple sidenotes on the same line, on right side.}
% \changes{v2.17.4}{2017/04/28}{Fix bugs with sublines in parallel typesetting.}
% \changes{v2.18.0}{2017/05/04}{Compatibility with v2.20.0 of \protect\reledmac.}
+% \changes{v2.19.0}{2017/06/08}{Compatibility with v2.22.0 of \protect\reledmac.}
% ^^A PW added following as the definitions are at some unknown elsewhere
%
% \newcommand{\egstart}{%
@@ -694,8 +695,8 @@
%synchronization settings in \parpackage:
%\begin{enumerate}
%\item Regarding the number of lines a pair of chunks may have:
-% \begin{enumerate}
-% \item 'shiftedpstarts' setting merely moves any added blank lines from
+% \begin{enumerate}
+% \item 'shiftedpstarts' setting merely moves any added blank lines from
%the bottom of the chunks to the bottom of the page. It does not allow
%to have more lines on a given page as it just removes the blank lines
%between the chunks and does nothing more. To understand better how
@@ -706,18 +707,18 @@
%inserted at the bottom of the chunks, also taking them away from the
%total amount of lines the page may have. This allows to get more lines
%on the pages. However, please note that:
-% \begin{itemize}
-% \item Blank lines are taken into account as \parpackage moves from one to
+% \begin{itemize}
+% \item Blank lines are taken into account as \parpackage moves from one to
%the following chunk of text, so that every pair of chunks may always
%start on the same facing pages.
-% \item Consequently, blank lines continue to be taken into account in
+% \item Consequently, blank lines continue to be taken into account in
%the calculation of the amount of lines a given pair of pages may have.
%This is why when a longer chunk runs from one page to another the
%shorter corresponding one also runs across pages, even if this may
%result in some blank vertical space being left on the first page.
-% \end{itemize}
-% \end{enumerate}
-% \item As regards the number of lines per page, including blank ones, the
+% \end{itemize}
+% \end{enumerate}
+% \item As regards the number of lines per page, including blank ones, the
%\option{nomaxlines} setting disregards the rule that forces two facing pages
%to have the same numbers of lines. So it allows to have more text on
%the pages. Then, by a complex mechanism it is ensured that two
@@ -944,7 +945,7 @@
% You must use the \DescribeMacro{\numberpstarttrue}\protect\cs{numberpstarttrue} command to have it.
% You can stop the numbering with \DescribeMacro{\numberpstartfalse}\protect\cs{numberpstartfalse}.
%
-% You can modify the number by changing the values of \verb+pstartL+ and \verb+pstartR+ counter (for left and right side, respectivly). For example:
+% You can modify the number by changing the values of the \verb+pstartL+ and \verb+pstartR+ counters (for left and right side, respectivly). For example:
% \begin{verbatim}
% \setcounter{pstartL}{0}% To reset the counter of pstart for Left side.
% \end{verbatim}
@@ -1281,7 +1282,7 @@
% \begin{macrocode}
%<*code>
\NeedsTeXFormat{LaTeX2e}
-\ProvidesPackage{reledpar}[2017/05/04 v2.18.0 reledmac extension for parallel texts]%
+\ProvidesPackage{reledpar}[2017/06/08 v2.19.0 reledmac extension for parallel texts]%
% \end{macrocode}
% \subsection{Package's requirement}
@@ -1734,11 +1735,11 @@
\gdef\eled@sectionsR@@{}%
\if@noeled@sec\else%
\makeatletter%
- \InputIfFileExists%
- {\l@auxdir\jobname.eledsec\the\section@numR R}%
- {}%
- {\led@warn@NoFile{\l@auxdir\jobname.eledsec\the\section@numR R}}%
- \makeatother%
+ \InputIfFileExists%
+ {\l@auxdir\jobname.eledsec\the\section@numR R}%
+ {}%
+ {\led@warn@NoFile{\l@auxdir\jobname.eledsec\the\section@numR R}}%
+ \makeatother%
\immediate\openout\eled@sectioningR@out=\l@auxdir\jobname.eledsec\the\section@numR R\relax%
\fi%
}
@@ -3786,6 +3787,7 @@
{%
\if@firstlineofpage%
\set@Xtxtbeforenotes%
+ \set@txtbeforenotesX%
\global\@firstlineofpagefalse%
\fi%
\ifdefstring{\ms@data@position}{msdata-regular}{%
@@ -3835,6 +3837,7 @@
\l@dld@ta%
\if@firstlineofpage%
\set@Xtxtbeforenotes%
+ \set@txtbeforenotesX%
\global\@firstlineofpagefalse%
\fi%
\ifdefstring{\ms@data@position}{msdata-regular}{%
@@ -3973,6 +3976,7 @@
{%
\if@firstlineofpageR%
\set@Xtxtbeforenotes%
+ \set@txtbeforenotesX%
\global\@firstlineofpageRfalse%
\fi%
\ifdefstring{\ms@data@position}{msdata-regular}{%
@@ -4024,6 +4028,7 @@
\l@dld@ta%
\if@firstlineofpageR%
\set@Xtxtbeforenotes%
+ \set@txtbeforenotesX%
\global\@firstlineofpageRfalse%
\fi%
\ifdefstring{\ms@data@position}{msdata-regular}{%
@@ -4193,9 +4198,9 @@
\l@dskipnumbertrue
\or% % 1008 = skipping numbering in stanza
\l@dskipversenumberRtrue%
- \or% % 1009 = hiding number
+ \or% % 1009 = hiding number
\l@dhidenumbertrue%
- \or% % 1010 = inserting msdata
+ \or% % 1010 = inserting msdata
\add@msdata%
\else%
\led@warn@BadAction