From 270f51a641098929ca9083788eb12f01203014cd Mon Sep 17 00:00:00 2001 From: Karl Berry Date: Mon, 4 Mar 2019 22:12:40 +0000 Subject: reledmac (4mar19) git-svn-id: svn://tug.org/texlive/trunk@50229 c570f23f-e606-0410-a88d-b1316a301751 --- Master/texmf-dist/tex/latex/reledmac/reledmac.sty | 159 ++++++++++++++-------- 1 file changed, 104 insertions(+), 55 deletions(-) (limited to 'Master/texmf-dist/tex') diff --git a/Master/texmf-dist/tex/latex/reledmac/reledmac.sty b/Master/texmf-dist/tex/latex/reledmac/reledmac.sty index 08eb6ab09c6..4aa20e12ee1 100644 --- a/Master/texmf-dist/tex/latex/reledmac/reledmac.sty +++ b/Master/texmf-dist/tex/latex/reledmac/reledmac.sty @@ -35,7 +35,7 @@ %% \NeedsTeXFormat{LaTeX2e} -\ProvidesPackage{reledmac}[2019/02/22 v2.31.0 typesetting critical editions]% +\ProvidesPackage{reledmac}[2019/03/03 v2.31.1 typesetting critical editions]% \RequirePackage{xkeyval} \newif\ifparledgroup \newif\ifsameparallelpagenumber% @@ -2557,6 +2557,7 @@ \newcommand{\add@Xgroupbyline}{% \unless\ifnocritical@% \def\do##1{%Looping on the series + \let\olddo\do%Save the old \do macro, that is this macro itself! \def\do####1{%Looping on the ##1@forinserting command \ifcsdef{##1@forinserting@####1}{% \X@beforeinsertion{##1}% @@ -2566,6 +2567,7 @@ \insert\csname ##1footins\endcsname% \fi% {% + \nottoggle{Xparindent@##1}{\parindent=\z@}{}% \ifcsdef{Xhsize\csuse{series@display##1}@##1}% {\hsize \csuse{Xhsize\csuse{series@display##1}@##1}}% {}% @@ -2590,6 +2592,7 @@ \dolistcsloop{##1@forinserting}% }{}% \global\csundef{##1@forinserting}% + \let\do\olddo%Restore old do }% \dolistloop{\@series}% \fi% @@ -2811,6 +2814,7 @@ \notbool{parapparatus@}{\newcommand*}{\newcommand}{\normalvfootnote@inserted}[2]{% \nottoggle{Xgroupbyline@#1}{\noindent}{}\csuse{Xbhooknote@#1}% \csuse{Xnotefontsize@#1}% + \iftoggle{Xgroupbyline@#1}{\strut}{}% \footsplitskips \ifl@dpairing\ifl@dpaging\else% \setXnoteswidthliketwocolumns@{#1}% @@ -2858,8 +2862,7 @@ \notbool{parapparatus@}{\newcommand*}{\newcommand}{\normalfootfmt}[4]{% \Xstorelineinfo{#1}{#4}% \nottoggle{Xgroupbyline@#4}{\Xledsetnormalparstuff{#4}}{}% - \hangindent=\csuse{Xhangindent@#4}% - \everypar{\hangindent=\csuse{Xhangindent@#4}}% + \Xsethangindent{#4}% \nottoggle{Xgroupbyline@#4}{\rule\z@\splittopskip}{}% {\printlinefootnote{#1}{#4}}% \print@lemma{#1}{#2}{#4}% @@ -3184,8 +3187,7 @@ {}% \nottoggle{Xparindent@#1}{\parindent=\z@}{}% \tolerance=5000% - \hangindent=\csuse{Xhangindent@#1}% - \everypar{\hangindent=\csuse{Xhangindent@#1}}% + \Xsethangindent{#1}% \@tempdima=\parindent% \csuse{Xcolalign@#1}% \parindent=\@tempdima% @@ -3280,8 +3282,7 @@ \hsize \csuse{Xhsizetwocol@#1}% \nottoggle{Xparindent@#1}{\parindent=\z@}{}% \tolerance=5000% - \hangindent=\csuse{Xhangindent@#1}% - \everypar{\hangindent=\csuse{Xhangindent@#1}}% + \Xsethangindent{#1}% \@tempdima=\parindent% \csuse{Xcolalign@#1}% \parindent=\@tempdima% @@ -3326,6 +3327,24 @@ \expandafter \Xrigidbalance\csname mp#1footins\endcsname \tw@ \splittopskip}} +\newcommand{\Xsethangindent}[1]{% + \if@RTL% + \hangindent=-\csuse{Xhangindent@#1}% + \everypar{\hangindent=-\csuse{Xhangindent@#1}}% + \else% + \hangindent=\csuse{Xhangindent@#1}% + \everypar{\hangindent=\csuse{Xhangindent@#1}}% + \fi% +}% +\newcommand{\sethangindentX}[1]{% + \if@RTL% + \hangindent=-\csuse{hangindentX@#1}% + \everypar{\hangindent=-\csuse{hangindentX@#1}}% + \else% + \hangindent=\csuse{hangindentX@#1}% + \everypar{\hangindent=\csuse{hangindentX@#1}}% + \fi% +}% \def\endashchar{\textnormal{--}} @@ -3717,48 +3736,51 @@ \iftoggle{Xgroupbylineseparetwolines@#1}{% \l@dparsefootspec#2% \ifcsdef{#1@forinserting@\l@dparsedendpage-\l@dparsedendline-\l@dparsedendsub}% - {% - \csgappto% - {#1@forinserting@\l@dparsedendpage-\l@dparsedendline-\l@dparsedendsub}% - {% - \ifcsempty{Xsymlinenum@#1}% - {\csuse{Xparafootsep@#1}}% - {}% - #3{#1}{#2}% - \hskip\csuse{Xafternote@#1}\relax% - }% - }% - {% - \csdef% - {#1@forinserting@\l@dparsedendpage-\l@dparsedendline-\l@dparsedendsub}% - {% - #3{#1}{#2}% + {% + \csgappto{#1@forinserting@\l@dparsedendpage-\l@dparsedendline-\l@dparsedendsub}{% \hskip\csuse{Xafternote@#1}\relax% }% - }% - \listcsxadd{#1@forinserting}{\l@dparsedendpage-\l@dparsedendline-\l@dparsedendsub}% - }{% - \ifcsdef{#1@forinserting@all}{% - \csgappto% - {#1@forinserting@all}% - {% + }% + {}% + \add@hooktoggle@specific@to@cs{#1@forinserting@\l@dparsedendpage-\l@dparsedendline-\l@dparsedendsub}% + \add@hookarg@specific@to@cs{#1@forinserting@\l@dparsedendpage-\l@dparsedendline-\l@dparsedendsub}% + \csxappto% + {#1@forinserting@\l@dparsedendpage-\l@dparsedendline-\l@dparsedendsub}% + {% + \keep@this@crossref@forinserting% + \unexpanded{% \ifcsempty{Xsymlinenum@#1}% {\csuse{Xparafootsep@#1}}% {}% #3{#1}{#2}% - \hskip\csuse{Xafternote@#1}\relax% }% - }% + }% + \listcsxadd{#1@forinserting}{\l@dparsedendpage-\l@dparsedendline-\l@dparsedendsub}% + }{% + \ifcsdef{#1@forinserting@all}{% + \csgappto% + {#1@forinserting@all}% + {\hskip\csuse{Xafternote@#1}\relax}% + }{}% + \add@hooktoggle@specific@to@cs{#1@forinserting@all}% + \add@hookarg@specific@to@cs{#1@forinserting@all}% + \csxappto% + {#1@forinserting@all}% {% - \csdef% - {#1@forinserting@all}% - {% - #3{#1}{#2}% - \hskip\csuse{Xafternote@#1}\relax% - }% + \keep@this@crossref@forinserting% + \unexpanded{% + \ifcsempty{Xsymlinenum@#1}% + {\csuse{Xparafootsep@#1}}% + {}% + #3{#1}{#2}% + }% }% - \listcsgadd{#1@forinserting}{all}% }% + \listcsgadd{#1@forinserting}{all}% +}% +\newcommand{\keep@this@crossref@forinserting}{% + \unexpanded{\gdef\@this@crossref@start}{\@this@crossref@start}% + \unexpanded{\gdef\@this@crossref@end}{\@this@crossref@end}% }% \providecommand*{\multiplefootnotemarker}{3sp} \providecommand*{\multfootsep}{\textsuperscript{\normalfont,}} @@ -3941,8 +3963,7 @@ \@nameuse{@thefnmark#1}% }% \ledsetnormalparstuffX{#1}% - \hangindent=\csuse{hangindentX@#1}% - \everypar{\hangindent=\csuse{hangindentX@#1}}% + \sethangindentX{#1}% \rule\z@\splittopskip% {{\csuse{notenumfontX@#1}\wrapped@footfootmarkX{#1}}% \csuse{wrapcontentX@#1}{#2}% @@ -4150,8 +4171,7 @@ \@nameuse{@thefnmark#1}% }% \normal@pars% - \hangindent=\csuse{hangindentX@#1}% - \everypar{\hangindent=\csuse{hangindentX@#1}}% + \sethangindentX{#1}% \hsize \csuse{hsizetwocolX@#1}% \nottoggle{parindentX@#1}{\parindent=\z@}{}% \tolerance=5000\relax% @@ -4234,8 +4254,7 @@ \protected@edef\@currentlabel{% \@nameuse{@thefnmark#1}% }% - \hangindent=\csuse{hangindentX@#1}% - \everypar{\hangindent=\csuse{hangindentX@#1}}% + \sethangindentX{#1}% \normal@pars% \hsize \csuse{hsizethreecolX@#1}% \nottoggle{parindentX@#1}{\parindent=\z@}{}% @@ -4656,8 +4675,6 @@ \def\@this@crossref@end{#7:end}% \printlineendnote{#1}{#4}% \IfStrEq{#6}{R}{\ledRcol@false}{}% - \undef\@this@crossref@start% - \undef\@this@crossref@end% \nottoggle{Xendlemmadisablefontselection@#4}% {\select@lemmafont#1|}% {}% @@ -5167,8 +5184,6 @@ {{\l@d@nums}{\expandonce\@tag}{\expandonce\content}}% \noexpand\Xnote@false% \unexpanded{\advance\@edindex@fornote@\m@ne}% - \unexpanded{\undef\@this@crossref@start}% - \unexpanded{\undef\@this@crossref@end}% \ifbool{indtl@innote}% {\unexpanded{\let\index\orig@@index}}% {}% @@ -5207,8 +5222,6 @@ \noexpand\csuse{v#1footnote}% {#1}% {{\l@d@nums}{\expandonce\@tag}{\expandonce\content}}% - \unexpanded{\undef\@this@crossref@start}% - \unexpanded{\undef\@this@crossref@end}% \noexpand\Xnote@false% \unexpanded{\advance\@edindex@fornote@\m@ne}% \ifbool{indtl@innote}% @@ -5726,13 +5739,53 @@ \newhooktoggle@series{Xendnoidenticallinenumannotation}[apprefwithpage,SErefwithpage]% \newcommand{\newhooktoggle@specific}[1]{% \newtoggle{#1@}% + \listgadd{\hooktoggle@specific}{#1}% \define@key[mac]{truefootnoteoption}{#1}[]{\global\settoggle{#1@}{true}}%When enabling footnote option \define@key[mac]{falsefootnoteoption}{#1}[]{\global\settoggle{#1@}{false}} } \newcommand{\newhookarg@specific}[1]{% + \listgadd{\hookarg@specific}{#1}% \define@key[mac]{truefootnoteoption}{#1}{\csgdef{#1@}{##1}}%When enabling footnote option \define@key[mac]{falsefootnoteoption}{#1}{\global\csundef{#1@}}%When disabling footnote option } +\def\hooktoggle@specific{}% +\newcommand{\add@hooktoggle@specific@to@cs}[1]{% + \def\do##1{% + \iftoggle{##1@}{% + \ifcsdef{#1}{% + \csgappto{#1}{\toggletrue{##1@}}% + }{% + \csgdef{#1}{\toggletrue{##1@}}% + }% + }{% + \ifcsdef{#1}{% + \csgappto{#1}{\togglefalse{##1@}}% + }{% + \csgdef{#1}{\togglefalse{##1@}}% + }% + }% + }% + \dolistloop{\hooktoggle@specific}% +}% +\def\hookarg@specific{}% +\newcommand{\add@hookarg@specific@to@cs}[1]{% + \def\do##1{% + \ifcsvoid{##1@}{}{% + \ifcsdef{#1}{% + \csxappto{#1}{% + \noexpand\csdef% + {##1@}{\csname##1@\endcsname}% + }% + }{% + \csxdef{#1}{% + \noexpand\csdef% + {##1@}{\csname##1@\endcsname}% + }% + }% + }% + }% + \dolistloop{\hookarg@specific}% +}% \newhooktoggle@specific{fulllines}% \newhooktoggle@specific{nonum} \newhooktoggle@specific{nosep} @@ -6449,8 +6502,6 @@ \xdef\annot@start{\xannotationref{#2:start}}% \xdef\annot@end{\xannotationref{#2:end}}% \printlines\xpageref{#2:start}|\xlineref{#2:start}|\xsublineref{#2:start}|\xpageref{#2:end}|\xlineref{#2:end}|\xsublineref{#2:end}|\relax|\xflagref{#2:start}|% - \undef\@this@crossref@end% - \undef\@this@crossref@start% }% \def\do##1{% \setkeys[mac]{falsefootnoteoption}{##1}% @@ -6473,8 +6524,6 @@ \def\@this@crossref@start{#2:start}% \def\@this@crossref@end{#2:end}% \printendlines\xpageref{#2:start}|\xlineref{#2:start}|\xsublineref{#2:start}|\xpageref{#2:end}|\xlineref{#2:end}|\xsublineref{#2:end}|\relax|\xflagref{#2:start}|% - \undef\@this@crossref@end% - \undef\@this@crossref@start% }% \def\do##1{% \setkeys[mac]{falsefootnoteoption}{##1}% -- cgit v1.2.3