summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/tex/xelatex/bidi/extrafootnotefeatures-xetex-bidi.def
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2022-07-10 19:56:46 +0000
committerKarl Berry <karl@freefriends.org>2022-07-10 19:56:46 +0000
commita31dc532904cd2de5848b0461eaabee03cd7b936 (patch)
treee589da4075c385ce6548d825d9382cc1a4311e41 /Master/texmf-dist/tex/xelatex/bidi/extrafootnotefeatures-xetex-bidi.def
parentc28b2c26338005646a3d21b463e4777fdf010992 (diff)
bidi (10jul22)
git-svn-id: svn://tug.org/texlive/trunk@63863 c570f23f-e606-0410-a88d-b1316a301751
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.def164
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
%%