diff options
Diffstat (limited to 'Master/texmf-dist/tex/xelatex/bidi/extrafootnotefeatures-xetex-bidi.def')
-rw-r--r-- | Master/texmf-dist/tex/xelatex/bidi/extrafootnotefeatures-xetex-bidi.def | 164 |
1 files changed, 95 insertions, 69 deletions
diff --git a/Master/texmf-dist/tex/xelatex/bidi/extrafootnotefeatures-xetex-bidi.def b/Master/texmf-dist/tex/xelatex/bidi/extrafootnotefeatures-xetex-bidi.def index cbcbe45359b..87745e523f6 100644 --- a/Master/texmf-dist/tex/xelatex/bidi/extrafootnotefeatures-xetex-bidi.def +++ b/Master/texmf-dist/tex/xelatex/bidi/extrafootnotefeatures-xetex-bidi.def @@ -20,7 +20,7 @@ %% by Vafa Khalighi. %% %% -%% \CheckSum{55452} +%% \CheckSum{55412} %% \CharacterTable %% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z %% Lower-case \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z @@ -37,12 +37,11 @@ %% Grave accent \` Left brace \{ Vertical bar \| %% Right brace \} Tilde \~} %% -\ProvidesFile{extrafootnotefeatures-xetex-bidi.def}[2022/07/08 v2.1 bidi extra footnote features for XeTeX engine] +\ProvidesFile{extrafootnotefeatures-xetex-bidi.def}[2022/07/10 v2.2 bidi extra footnote features for XeTeX engine] \newdimen\bidi@columnwidth \def\bidi@floathook{% \bidi@columnwidth\columnwidth } -\newif\if@bidi@void@footins \newif\if@bidi@void@@mpfootins \newcommand*{\@bidi@before@Hy@hyperfootnotes}{% \if@bidi@csundef{ifHy@hyperfootnotes}{}{% @@ -262,33 +261,10 @@ \bidi@normal@footmarkwidth \bidi@ensure@newcommand{\m@mdoextrafeet}{\extrafeetins} \bidi@ensure@newcommand*{\extrafeetins}{% - \setbox\@outputbox \vbox{% - \boxmaxdepth \@maxdepth - \unvbox\@outputbox - \ifvoid\footinsv@r - \ifvoid\footinsv@l - \else - \@footstartv@l - \@LTRfootgroupv@l - \fi - \else - \@footstartv@r - \@footgroupv@r - \ifvoid\footinsv@l - \else - \@@footstart@@v@l - \@LTRfootgroupv@l - \fi - \fi - \ifvoid\@bidi@copyins@ - \else - \vskip \skip\@bidi@copyins@ - \color@begingroup - \normalcolor - \unvbox \@bidi@copyins@ - \color@endgroup - \fi - \extrafeetinshook}} + \bidi@joinfootnotes\footinsv@r\@footstartv@r\@footgroupv@r + \bidi@joinfootnotes\footinsv@l\@footstartv@l\@LTRfootgroupv@l + \bidi@joinfootnotes\@bidi@copyins@{}{\unvbox\@bidi@copyins@}% + \extrafeetinshook} \bidi@ensure@newcommand{\extrafeetinshook}{} \bidi@ensure@newcommand{\foottextfont}{\footnotesize} \bidi@ensure@newcommand{\LTRfoottextfont}{\footnotesize} @@ -301,6 +277,29 @@ \splittopskip=\footnotesep \splitmaxdepth=\dp\strutbox \@parboxrestore} +\def\bidi@ifmulticol#1#2{\@tempswafalse + \ifnum\col@number>\@ne + \ifnum\count\footins>1999 \@tempswatrue \fi + \fi + \if@tempswa #1\else #2\fi +} +\def\bidi@joinfootnotes#1#2#3{% + \ifvoid#1 + \else + \@tempskipa\skip#1% + \bidi@ifmulticol{\divide\@tempskipa\col@number}{}% + \edef\bidi@footskip{\vskip\the\@tempskipa\relax}% + \ifvoid\footins + \global\setbox\footins\vbox{#2#3}% + \else + \global\setbox\footins\vbox{% + \unvbox\footins + \bidi@footskip + #2#3% + }% + \fi + \fi +} \bidi@ensure@newcommand{\m@mdoextrafeetmini}{% \extrafeetminihook} \bidi@ensure@newcommand{\extrafeetendmini}{% @@ -349,22 +348,11 @@ \expandafter\@iiiparbox\@mpargs{\unvbox\@tempboxa}} \bidi@ensure@newcommand{\m@make@footstart}[1]{% \@namedef{@footstart#1}{% - \if@bidi@void@footins - \bidi@mopfn@bottom - \fi \leftskip=\z@ \rightskip=\z@ \parindent=\z@ - \vskip\skip\footins - \if@bidi@void@footins - \footnoterule - \fi}} -\newcommand{\bidi@make@footstart@@}[1]{% - \@namedef{@@footstart@@#1}{% - \leftskip=\z@ - \rightskip=\z@ - \parindent=\z@ - \vskip\skip\footins}} + }% +} \newinsert\footinsv@r \skip\footinsv@r\bigskipamount \count\footinsv@r=1000 % no magnifcation @@ -375,18 +363,15 @@ \count\footinsv@l=1000 % no magnifcation \dimen\footinsv@l=\footinsdim \m@make@footstart{v@l} -\bidi@make@footstart@@{v@l} \bidi@ensure@newcommand{\@footgroupv@r}{} \newinsert\@mpfootinsv@r \newinsert\@mpfootinsv@l \bidi@ensure@newcommand{\mp@footgroupv@r}{} \newcount\m@m@k \newdimen\m@m@h \bidi@ensure@newcommand*{\m@mrigidbalance}[3]{\setbox0=\box#1 \m@m@k=#2 \m@m@h=#3 - \hsize\bidi@columnwidth \@@line{\beginR\splittopskip=\m@m@h \vbadness=\@M \hfilneg \valign{##\vfill\cr\m@mdosplits}\endR}} \newcommand*{\bidi@LTRrigidbalance}[3]{\setbox0=\box#1 \m@m@k=#2 \m@m@h=#3 - \hsize\bidi@columnwidth \@@line{\splittopskip=\m@m@h \vbadness=\@M \hfilneg \valign{##\vfill\cr\m@mdosplits}}} \bidi@ensure@newcommand*{\m@mdosplits}{\ifnum\m@m@k>0 \noalign{\hfil}\m@msplitoff @@ -520,11 +505,13 @@ \bidi@ensure@newcommand{\m@make@twocol@footgroup}[1]{% \@namedef{@twocol@footgroup#1}{{% \def\baselinestretch{\m@m@footnote@spacing}% + \hsize\bidi@columnwidth \@nameuse{foottextfont#1} \splittopskip=\ht\strutbox \m@mrigidbalance{\@nameuse{footins#1}}{\tw@}{\splittopskip}}}} \newcommand{\bidi@make@twocol@LTRfootgroup}[1]{% \@namedef{@twocol@LTRfootgroup#1}{{% \def\baselinestretch{\m@m@footnote@spacing}% + \hsize\bidi@columnwidth \@nameuse{foottextfont#1} \splittopskip=\ht\strutbox \bidi@LTRrigidbalance{\@nameuse{footins#1}}{\tw@}{\splittopskip}}}} \bidi@ensure@newcommand{\m@make@mptwocol@footgroup}[1]{% @@ -656,11 +643,13 @@ \bidi@ensure@newcommand{\m@make@threecol@footgroup}[1]{% \@namedef{@threecol@footgroup#1}{{% \def\baselinestretch{\m@m@footnote@spacing}% + \hsize\bidi@columnwidth \@nameuse{foottextfont#1} \splittopskip=\ht\strutbox \m@mrigidbalance{\@nameuse{footins#1}}{\thr@@}{\splittopskip}}}} \newcommand{\bidi@make@threecol@LTRfootgroup}[1]{% \@namedef{@threecol@LTRfootgroup#1}{{% \def\baselinestretch{\m@m@footnote@spacing}% + \hsize\bidi@columnwidth \@nameuse{foottextfont#1} \splittopskip=\ht\strutbox \bidi@LTRrigidbalance{\@nameuse{footins#1}}{\thr@@}{\splittopskip}}}} \bidi@ensure@newcommand{\m@make@mpthreecol@footgroup}[1]{% @@ -798,11 +787,13 @@ \bidi@ensure@newcommand{\m@make@fourcol@footgroup}[1]{% \@namedef{@fourcol@footgroup#1}{{% \def\baselinestretch{\m@m@footnote@spacing}% + \hsize\bidi@columnwidth \@nameuse{foottextfont#1} \splittopskip=\ht\strutbox \m@mrigidbalance{\@nameuse{footins#1}}{4}{\splittopskip}}}} \newcommand{\bidi@make@fourcol@LTRfootgroup}[1]{% \@namedef{@fourcol@LTRfootgroup#1}{{% \def\baselinestretch{\m@m@footnote@spacing}% + \hsize\bidi@columnwidth \@nameuse{foottextfont#1} \splittopskip=\ht\strutbox \bidi@LTRrigidbalance{\@nameuse{footins#1}}{4}{\splittopskip}}}} \bidi@ensure@newcommand{\m@make@mpfourcol@footgroup}[1]{% @@ -940,11 +931,13 @@ \bidi@ensure@newcommand{\m@make@fivecol@footgroup}[1]{% \@namedef{@fivecol@footgroup#1}{{% \def\baselinestretch{\m@m@footnote@spacing}% + \hsize\bidi@columnwidth \@nameuse{foottextfont#1} \splittopskip=\ht\strutbox \m@mrigidbalance{\@nameuse{footins#1}}{5}{\splittopskip}}}} \newcommand{\bidi@make@fivecol@LTRfootgroup}[1]{% \@namedef{@fivecol@LTRfootgroup#1}{{% \def\baselinestretch{\m@m@footnote@spacing}% + \hsize\bidi@columnwidth \@nameuse{foottextfont#1} \splittopskip=\ht\strutbox \bidi@LTRrigidbalance{\@nameuse{footins#1}}{5}{\splittopskip}}}} \bidi@ensure@newcommand{\m@make@mpfivecol@footgroup}[1]{% @@ -1082,11 +1075,13 @@ \bidi@ensure@newcommand{\m@make@sixcol@footgroup}[1]{% \@namedef{@sixcol@footgroup#1}{{% \def\baselinestretch{\m@m@footnote@spacing}% + \hsize\bidi@columnwidth \@nameuse{foottextfont#1} \splittopskip=\ht\strutbox \m@mrigidbalance{\@nameuse{footins#1}}{6}{\splittopskip}}}} \newcommand{\bidi@make@sixcol@LTRfootgroup}[1]{% \@namedef{@sixcol@LTRfootgroup#1}{{% \def\baselinestretch{\m@m@footnote@spacing}% + \hsize\bidi@columnwidth \@nameuse{foottextfont#1} \splittopskip=\ht\strutbox \bidi@LTRrigidbalance{\@nameuse{footins#1}}{6}{\splittopskip}}}} \bidi@ensure@newcommand{\m@make@mpsixcol@footgroup}[1]{% @@ -1224,11 +1219,13 @@ \bidi@ensure@newcommand{\m@make@sevencol@footgroup}[1]{% \@namedef{@sevencol@footgroup#1}{{% \def\baselinestretch{\m@m@footnote@spacing}% + \hsize\bidi@columnwidth \@nameuse{foottextfont#1} \splittopskip=\ht\strutbox \m@mrigidbalance{\@nameuse{footins#1}}{7}{\splittopskip}}}} \newcommand{\bidi@make@sevencol@LTRfootgroup}[1]{% \@namedef{@sevencol@LTRfootgroup#1}{{% \def\baselinestretch{\m@m@footnote@spacing}% + \hsize\bidi@columnwidth \@nameuse{foottextfont#1} \splittopskip=\ht\strutbox \bidi@LTRrigidbalance{\@nameuse{footins#1}}{7}{\splittopskip}}}} \bidi@ensure@newcommand{\m@make@mpsevencol@footgroup}[1]{% @@ -1366,11 +1363,13 @@ \bidi@ensure@newcommand{\m@make@eightcol@footgroup}[1]{% \@namedef{@eightcol@footgroup#1}{{% \def\baselinestretch{\m@m@footnote@spacing}% + \hsize\bidi@columnwidth \@nameuse{foottextfont#1} \splittopskip=\ht\strutbox \m@mrigidbalance{\@nameuse{footins#1}}{8}{\splittopskip}}}} \newcommand{\bidi@make@eightcol@LTRfootgroup}[1]{% \@namedef{@eightcol@LTRfootgroup#1}{{% \def\baselinestretch{\m@m@footnote@spacing}% + \hsize\bidi@columnwidth \@nameuse{foottextfont#1} \splittopskip=\ht\strutbox \bidi@LTRrigidbalance{\@nameuse{footins#1}}{8}{\splittopskip}}}} \bidi@ensure@newcommand{\m@make@mpeightcol@footgroup}[1]{% @@ -1508,11 +1507,13 @@ \bidi@ensure@newcommand{\m@make@ninecol@footgroup}[1]{% \@namedef{@ninecol@footgroup#1}{{% \def\baselinestretch{\m@m@footnote@spacing}% + \hsize\bidi@columnwidth \@nameuse{foottextfont#1} \splittopskip=\ht\strutbox \m@mrigidbalance{\@nameuse{footins#1}}{9}{\splittopskip}}}} \newcommand{\bidi@make@ninecol@LTRfootgroup}[1]{% \@namedef{@ninecol@LTRfootgroup#1}{{% \def\baselinestretch{\m@m@footnote@spacing}% + \hsize\bidi@columnwidth \@nameuse{foottextfont#1} \splittopskip=\ht\strutbox \bidi@LTRrigidbalance{\@nameuse{footins#1}}{9}{\splittopskip}}}} \bidi@ensure@newcommand{\m@make@mpninecol@footgroup}[1]{% @@ -1650,11 +1651,13 @@ \bidi@ensure@newcommand{\m@make@tencol@footgroup}[1]{% \@namedef{@tencol@footgroup#1}{{% \def\baselinestretch{\m@m@footnote@spacing}% + \hsize\bidi@columnwidth \@nameuse{foottextfont#1} \splittopskip=\ht\strutbox \m@mrigidbalance{\@nameuse{footins#1}}{10}{\splittopskip}}}} \newcommand{\bidi@make@tencol@LTRfootgroup}[1]{% \@namedef{@tencol@LTRfootgroup#1}{{% \def\baselinestretch{\m@m@footnote@spacing}% + \hsize\bidi@columnwidth \@nameuse{foottextfont#1} \splittopskip=\ht\strutbox \bidi@LTRrigidbalance{\@nameuse{footins#1}}{10}{\splittopskip}}}} \bidi@ensure@newcommand{\m@make@mptencol@footgroup}[1]{% @@ -1718,10 +1721,8 @@ \count\footinsv@l=1000\relax \bidi@make@para@LTRfootgroup{v@l}% \m@make@para@footstart{v@l}% - \bidi@make@para@footstart@@{v@l}% \let\@LTRfootgroupv@l\@para@LTRfootgroupv@l \let\@footstartv@l\@para@footstartv@l - \let\@@footstart@@v@l\@@para@footstart@@v@l \let\@mpfootnotetext\@mpparafootnotetext \let\@mpLTRfootnotetext\@mpparaLTRfootnotetext \let\@mpRTLfootnotetext\@mpparaRTLfootnotetext @@ -1773,10 +1774,8 @@ \count\footinsv@l=1000\relax \bidi@make@para@LTRfootgroup{v@l}% \m@make@para@footstart{v@l}% - \bidi@make@para@footstart@@{v@l}% \let\@LTRfootgroupv@l\@para@LTRfootgroupv@l \let\@footstartv@l\@para@footstartv@l - \let\@@footstart@@v@l\@@para@footstart@@v@l \if@RTL@footnote \let\@mpfootnotetext\m@mold@mpfootnotetext \else @@ -1921,6 +1920,8 @@ \m@mungebox}\m@mmf@prepare} \bidi@ensure@newcommand{\m@make@para@footgroup}[1]{% \@namedef{@para@footgroup#1}{% + \advance\@tempskipa -\bidi@paraskip + \edef\bidi@footskip{\vskip\the\@tempskipa\relax}% \unvbox\@nameuse{footins#1} \@RTLtrue \m@mmakehboxofhboxes @@ -1932,6 +1933,8 @@ \noindent\unhbox0\par}} \bidi@ensure@newcommand{\bidi@make@para@LTRfootgroup}[1]{% \@namedef{@para@LTRfootgroup#1}{% + \advance\@tempskipa -\bidi@paraskip + \edef\bidi@footskip{\vskip\the\@tempskipa\relax}% \unvbox\@nameuse{footins#1} \@RTLfalse \m@mmakehboxofhboxes @@ -1961,22 +1964,12 @@ \noindent\unhbox0\par}} \bidi@ensure@newcommand{\m@make@para@footstart}[1]{% \@namedef{@para@footstart#1}{% - \if@bidi@void@footins - \bidi@mopfn@bottom - \fi + \global\advance\skip\@nameuse{footins#1}\bidi@paraskip \leftskip=\z@ \rightskip=\z@ \parindent=\z@ - \vskip\skip\footins - \if@bidi@void@footins - \footnoterule - \fi}} -\bidi@ensure@newcommand{\bidi@make@para@footstart@@}[1]{% -\@namedef{@@para@footstart@@#1}{% - \leftskip=\z@ - \rightskip=\z@ - \parindent=\z@ - \vskip\skip\footins}} + }% +} \bidi@ensure@newcommand*{\m@m@makecolfloats}{% \xdef\@freelist{\@freelist\@midlist}% \global\let\@midlist\@empty @@ -2022,28 +2015,24 @@ } \gdef\mem@makecol{% \m@m@makecolintro + \m@mdoextrafeet \ifvoid\footins - \global\@bidi@void@footinstrue \setbox\@outputbox \box\@cclv \else - \global\@bidi@void@footinsfalse \m@mopfootnote \fi - \m@mdoextrafeet \m@m@makecolfloats \m@m@makecoltext \global \maxdepth \@maxdepth} \gdef\bidi@makecolbf{% \m@m@makecolintro + \m@mdoextrafeet \setbox\@outputbox \box\@cclv \m@m@makecolfloats \ifvoid\footins - \global\@bidi@void@footinstrue \else - \global\@bidi@void@footinsfalse \bidi@mopfootnotebf \fi - \m@mdoextrafeet \m@m@makecoltext \global \maxdepth \@maxdepth} \newcommand{\FeetAboveFloat}{\gdef\@makecol{\mem@makecol}} @@ -2052,8 +2041,45 @@ \newcommand\FeetBelowRagged{\let\bidi@mopfn@bottom\relax} \FeetAboveFloat \FeetBelowRagged +\def\bidi@reinserts#1{\ifvoid#1\else + \ifnum\count\@currbox>\z@ + \advance\@pageht \ht#1% + \advance\@pageht \skip#1% + \advance\@pageht \dp#1% + \fi + \insert#1{\unvbox#1}% + \fi +} +\def\bidi@init@multi@footins#1{% + \multiply\count#1\col@number + \multiply\skip#1\col@number +} +\def\bidi@reinsert@footnotes#1{\ifvoid#1\else + \insert#1{}\fi} \AtBeginDocument{% + \bidi@preto\@doclearpage\m@mdoextrafeet + \g@addto@macro\@reinserts{% + \bidi@reinserts\footinsv@r + \bidi@reinserts\footinsv@l + } \bidi@floathook + \g@addto@macro\@floatplacement{% + \bidi@ifmulticol{}{\bidi@floathook}% + }% + \if@bidi@csundef{multi@column@out}{% + \@onlypreamble\bidi@init@multi@footins + \let\bidi@ifmulticol\@secondoftwo + }{% + \bidi@preto\multi@column@out\m@mdoextrafeet + \g@addto@macro\init@mult@footins{% + \bidi@init@multi@footins\footinsv@r + \bidi@init@multi@footins\footinsv@l + }% + \g@addto@macro\reinsert@footnotes{% + \bidi@reinsert@footnotes\footinsv@r + \bidi@reinsert@footnotes\footinsv@l + }% + }% } \endinput %% |