summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/tex/xelatex/bidi/footnote-xetex-bidi.def
diff options
context:
space:
mode:
Diffstat (limited to 'Master/texmf-dist/tex/xelatex/bidi/footnote-xetex-bidi.def')
-rw-r--r--Master/texmf-dist/tex/xelatex/bidi/footnote-xetex-bidi.def360
1 files changed, 360 insertions, 0 deletions
diff --git a/Master/texmf-dist/tex/xelatex/bidi/footnote-xetex-bidi.def b/Master/texmf-dist/tex/xelatex/bidi/footnote-xetex-bidi.def
new file mode 100644
index 00000000000..340780058c4
--- /dev/null
+++ b/Master/texmf-dist/tex/xelatex/bidi/footnote-xetex-bidi.def
@@ -0,0 +1,360 @@
+%%
+%% This is file `footnote-xetex-bidi.def',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% bidi.dtx (with options: `table,footnote-xetex-bidi.def')
+%%
+%% __________________________________________________
+%% Copyright (c) 2009--2016 Vafa Khalighi <persian-tex@tug.org>
+%%
+%% It may be distributed and/or modified under the LaTeX Project Public License,
+%% version 1.3c or higher (your choice). The latest version of
+%% this license is at: http://www.latex-project.org/lppl.txt
+%%
+%% This work is “author-maintained” (as per LPPL maintenance status)
+%% by Vafa Khalighi.
+%%
+%%
+%% \CheckSum{46416}
+%% \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
+%% Digits \0\1\2\3\4\5\6\7\8\9
+%% Exclamation \! Double quote \" Hash (number) \#
+%% Dollar \$ Percent \% Ampersand \&
+%% Acute accent \' Left paren \( Right paren \)
+%% Asterisk \* Plus \+ Comma \,
+%% Minus \- Point \. Solidus \/
+%% Colon \: Semicolon \; Less than \<
+%% Equals \= Greater than \> Question mark \?
+%% Commercial at \@ Left bracket \[ Backslash \\
+%% Right bracket \] Circumflex \^ Underscore \_
+%% Grave accent \` Left brace \{ Vertical bar \|
+%% Right brace \} Tilde \~}
+%%
+\ProvidesFile{footnote-xetex-bidi.def}[2015/11/14 v0.9 bidi footnote macros for XeTeX engine]
+\if@RTLmain\@RTL@footnotetrue\else\@RTL@footnotefalse\fi
+\newif\ifbidi@autofootnoterule
+\def\bidi@mpfootnoterule{\footnoterule}
+\newcounter{footdir@label}
+\renewcommand*{\thefootdir@label}{footdir@\the\value{footdir@label}}
+\newcommand*{\footdir@write}{%
+ \stepcounter{footdir@label}%
+ \zref@labelbyprops{\thefootdir@label}{abspage}%
+}
+\newif\iffootdir@debug
+\newcommand*{\debugfootnotedirection}{\footdir@debugtrue}
+\newtoks\footdir@toks
+\newcommand*{\footdir@debug}[1]{%
+ \iffootdir@debug
+ \typeout{[footdir] #1}%
+ \fi
+}
+\@ifpackagelater{zref-abspage}{2012/10/27}{%
+ \newcommand*{\footdir@LeftRightElse}{%
+ \ltx@ifundefined{footdir@\the\value{zabspage}}{%
+ \footdir@debug{abspage \the\value{zabspage}: else}%
+ \ltx@thirdofthree
+ }{%
+ \if\csname footdir@\the\value{zabspage}\endcsname L%
+ \footdir@debug{abspage \the\value{zabspage}: left}%
+ \expandafter\ltx@firstofthree
+ \else
+ \footdir@debug{abspage \the\value{zabspage}: right}%
+ \expandafter\ltx@secondofthree
+ \fi
+ }%
+ }%
+}{%
+ \providecommand*{\c@zabspage}{\c@abspage}%
+ \newcommand*{\footdir@LeftRightElse}{%
+ \footdir@write
+ \zifrefundefined{\thefootdir@label}{%
+ \footdir@debug{abspage ??: else}%
+ \ltx@thirdofthree
+ }{%
+ \edef\footdir@abspage{%
+ \zref@extractdefault{\thefootdir@label}{abspage}{0}%
+ }%
+ \ltx@ifundefined{footdir@\footdir@abspage}{%
+ \footdir@debug{\footdir@abspage: else}%
+ \ltx@thirdofthree
+ }{%
+ \if\csname footdir@\footdir@abspage\endcsname L%
+ \footdir@debug{\footdir@abspage: left}%
+ \expandafter\ltx@firstofthree
+ \else
+ \footdir@debug{\footdir@abspage: right}%
+ \expandafter\ltx@secondofthree
+ \fi
+ }%
+ }%
+ }%
+}
+\newcommand*{\footdir@fntext}[1]{%
+ \zifrefundefined{\thefootdir@label}{%
+ }{%
+ \edef\footdir@name{%
+ footdir@\zref@extractdefault{\thefootdir@label}{abspage}{0}%
+ }%
+ \@ifundefined{\footdir@name}{%
+ \expandafter\gdef\csname\footdir@name\endcsname{#1}%
+ }{}%
+ }%
+}
+
+\newcommand*{\footdir@temp}[3]{%
+ \@ifdefinable{#1}{%
+ \let#1#2%
+ \renewcommand{#2}[1]{%
+ \footdir@write
+ \footdir@fntext{#3}%
+ \stepcounter{footdir@label}%
+ \footdir@fntext{#3}%
+ \footdir@toks{##1}%
+ \footdir@toks\expandafter{%
+ \the\expandafter\footdir@toks
+ \expandafter
+ \zref@labelbyprops\expandafter{\thefootdir@label}{abspage}%
+ }%
+ \expandafter#1\expandafter{\the\footdir@toks}%
+ }%
+ }%
+}
+
+\def\right@footnoterule{%
+ \kern-3\p@
+ \hbox to \columnwidth{\hskip .6\columnwidth \hrulefill }
+ \kern2.6\p@}
+\def\left@footnoterule{\kern-3\p@
+ \hrule \@width .4\columnwidth \kern 2.6\p@}
+\def\textwidth@footnoterule{\kern-3\p@
+ \hrule \@width \columnwidth \kern 2.6\p@}
+\def\leftfootnoterule{%
+\bidi@autofootnoterulefalse%
+\def\footnoterule{\left@footnoterule}}
+\let\LRfootnoterule=\leftfootnoterule
+\def\rightfootnoterule{%
+\bidi@autofootnoterulefalse%
+\def\footnoterule{\right@footnoterule}}
+\def\textwidthfootnoterule{%
+\bidi@autofootnoterulefalse%
+\def\footnoterule{\textwidth@footnoterule}}
+
+\def\auto@footnoterule{%
+\footdir@LeftRightElse%
+\left@footnoterule%
+\right@footnoterule%
+\left@footnoterule%
+}
+
+\def\autofootnoterule{%
+\bidi@autofootnoteruletrue%
+\def\footnoterule{\auto@footnoterule}%
+}
+
+\newcommand*{\SplitFootnoteRule}{%
+ \gdef\split@prev{0}
+ \let\pagefootnoterule\footnoterule
+ \let\mpfootnoterule\footnoterule
+ \def\splitfootnoterule{\kern-3\p@ \hrule \kern2.6\p@}
+ \def\footnoterule{\relax
+ \ifx \@listdepth\@mplistdepth
+ \mpfootnoterule
+ \else
+ \ifnum\split@prev=\z@
+ \pagefootnoterule
+ \else
+ \splitfootnoterule
+ \fi
+ \xdef\split@prev{\the\insertpenalties}%
+ \fi
+ }%
+}
+
+\def\RTLfootnote{\@ifnextchar[\@xRTLfootnote{\stepcounter\@mpfn
+ \protected@xdef\@thefnmark{\thempfn}%
+ \@footnotemark\@RTLfootnotetext}}
+\def\@xRTLfootnote[#1]{%
+ \begingroup
+ \csname c@\@mpfn\endcsname #1\relax
+ \unrestored@protected@xdef\@thefnmark{\thempfn}%
+ \endgroup
+ \@footnotemark\@RTLfootnotetext}
+\def\LTRfootnote{\@ifnextchar[\@xLTRfootnote{\stepcounter\@mpfn
+ \protected@xdef\@thefnmark{\thempfn}%
+ \@footnotemark\@LTRfootnotetext}}
+\def\@xLTRfootnote[#1]{%
+ \begingroup
+ \csname c@\@mpfn\endcsname #1\relax
+ \unrestored@protected@xdef\@thefnmark{\thempfn}%
+ \endgroup
+ \@footnotemark\@LTRfootnotetext}
+
+\def\setfootnoteRL{\@RTL@footnotetrue}
+\def\unsetfootnoteRL{\@RTL@footnotefalse}
+\def\setfootnoteLR{\unsetfootnoteRL}
+
+\long\def\@footnotetext#1{\insert\footins{%
+ \if@RTL@footnote\@RTLtrue\else\@RTLfalse\fi%
+ \reset@font\footnotesize
+ \interlinepenalty\interfootnotelinepenalty
+ \splittopskip\footnotesep
+ \splitmaxdepth \dp\strutbox \floatingpenalty \@MM
+ \hsize\columnwidth \@parboxrestore
+ \protected@edef\@currentlabel{%
+ \csname p@footnote\endcsname\@thefnmark
+ }%
+ \color@begingroup
+ \@makefntext{%
+ \rule\z@\footnotesep\ignorespaces#1\@finalstrut\strutbox}%
+ \color@endgroup}}%
+
+\long\def\@RTLfootnotetext#1{\insert\footins{%
+ \@RTLtrue%
+ \reset@font\footnotesize
+ \interlinepenalty\interfootnotelinepenalty
+ \splittopskip\footnotesep
+ \splitmaxdepth \dp\strutbox \floatingpenalty \@MM
+ \hsize\columnwidth \@parboxrestore
+ \protected@edef\@currentlabel{%
+ \csname p@footnote\endcsname\@thefnmark
+ }%
+ \color@begingroup
+ \@makefntext{%
+ \rule\z@\footnotesep\ignorespaces#1\@finalstrut\strutbox}%
+ \color@endgroup}}%
+
+\long\def\@LTRfootnotetext#1{\insert\footins{%
+ \@RTLfalse%
+ \reset@font\footnotesize
+ \interlinepenalty\interfootnotelinepenalty
+ \splittopskip\footnotesep
+ \splitmaxdepth \dp\strutbox \floatingpenalty \@MM
+ \hsize\columnwidth \@parboxrestore
+ \protected@edef\@currentlabel{%
+ \csname p@footnote\endcsname\@thefnmark
+ }%
+ \color@begingroup
+ \@makefntext{%
+ \rule\z@\footnotesep\ignorespaces#1\@finalstrut\strutbox}%
+ \color@endgroup}}%
+
+\AtBeginDocument{%
+\if@RTL@footnote
+ \newcommand*{\bidi@footdir@footnote}{R}
+\else
+ \newcommand*{\bidi@footdir@footnote}{L}
+\fi%
+}
+
+\footdir@temp\footdir@ORG@bidi@footnotetext\@footnotetext{\bidi@footdir@footnote}%
+\footdir@temp\footdir@ORG@bidi@RTLfootnotetext\@RTLfootnotetext{R}%
+\footdir@temp\footdir@ORG@bidi@LTRfootnotetext\@LTRfootnotetext{L}%
+
+\long\def\@mpRTLfootnotetext#1{%
+ \ifbidi@autofootnoterule\ifnum\c@mpfootnote=\@ne\global\let\bidi@mpfootnoterule\right@footnoterule\fi\fi%
+ \global\setbox\@mpfootins\vbox{\@RTLtrue%
+ \unvbox\@mpfootins
+ \reset@font\footnotesize
+ \hsize\columnwidth
+ \@parboxrestore
+ \protected@edef\@currentlabel
+ {\csname p@mpfootnote\endcsname\@thefnmark}%
+ \color@begingroup
+ \@makefntext{%
+ \rule\z@\footnotesep\ignorespaces#1\@finalstrut\strutbox}%
+ \color@endgroup}}
+\long\def\@mpLTRfootnotetext#1{%
+ \ifbidi@autofootnoterule\ifnum\c@mpfootnote=\@ne\global\let\bidi@mpfootnoterule\left@footnoterule\fi\fi%
+ \global\setbox\@mpfootins\vbox{\@RTLfalse%
+ \unvbox\@mpfootins
+ \reset@font\footnotesize
+ \hsize\columnwidth
+ \@parboxrestore
+ \protected@edef\@currentlabel
+ {\csname p@mpfootnote\endcsname\@thefnmark}%
+ \color@begingroup
+ \@makefntext{%
+ \rule\z@\footnotesep\ignorespaces#1\@finalstrut\strutbox}%
+ \color@endgroup}}
+\long\def\@mpfootnotetext#1{%
+ \ifbidi@autofootnoterule\ifnum\c@mpfootnote=\@ne\if@RTL@footnote\global\let\bidi@mpfootnoterule\right@footnoterule\else\global\let\bidi@mpfootnoterule\left@footnoterule\fi\fi\fi%
+ \global\setbox\@mpfootins\vbox{\if@RTL@footnote\@RTLtrue\else\@RTLfalse\fi%
+ \unvbox\@mpfootins
+ \reset@font\footnotesize
+ \hsize\columnwidth
+ \@parboxrestore
+ \protected@edef\@currentlabel
+ {\csname p@mpfootnote\endcsname\@thefnmark}%
+ \color@begingroup
+ \@makefntext{%
+ \rule\z@\footnotesep\ignorespaces#1\@finalstrut\strutbox}%
+ \color@endgroup}}
+\def\@iiiminipage#1#2[#3]#4{%
+ \leavevmode
+ \@pboxswfalse
+ \if@RTLtab\@bidi@list@minipage@parbox@not@nobtrue\fi
+ \if@RTL\if#1t\@bidi@list@minipage@parboxtrue\else\if#1b\@bidi@list@minipage@parboxtrue\fi\fi\fi
+ \setlength\@tempdima{#4}%
+ \def\@mpargs{{#1}{#2}[#3]{#4}}%
+ \setbox\@tempboxa\vbox\bgroup
+ \color@begingroup
+ \hsize\@tempdima
+ \textwidth\hsize \columnwidth\hsize
+ \@parboxrestore
+ \def\@mpfn{mpfootnote}\def\thempfn{\thempfootnote}\c@mpfootnote\z@
+ \let\@footnotetext\@mpfootnotetext
+ \let\@LTRfootnotetext\@mpLTRfootnotetext
+ \let\@RTLfootnotetext\@mpRTLfootnotetext
+ \let\@listdepth\@mplistdepth \@mplistdepth\z@
+ \@minipagerestore
+ \@setminipage}
+\def\endminipage{%
+ \par
+ \unskip
+ \ifvoid\@mpfootins\else
+ \vskip\skip\@mpfootins
+ \normalcolor
+ \bidi@mpfootnoterule
+ \unvbox\@mpfootins
+ \fi
+ \@minipagefalse %% added 24 May 89
+ \color@endgroup
+ \egroup
+ \expandafter\@iiiparbox\@mpargs{\unvbox\@tempboxa}}
+\def\LTRthanks#1{\footnotemark
+ \protected@xdef\@thanks{\@thanks
+ \protect\LTRfootnotetext[\the\c@footnote]{#1}}%
+}
+\def\LTRfootnotetext{%
+ \@ifnextchar [\@xLTRfootnotenext
+ {\protected@xdef\@thefnmark{\thempfn}%
+ \@LTRfootnotetext}}
+\def\@xLTRfootnotenext[#1]{%
+ \begingroup
+ \csname c@\@mpfn\endcsname #1\relax
+ \unrestored@protected@xdef\@thefnmark{\thempfn}%
+ \endgroup
+ \@LTRfootnotetext}
+\def\RTLthanks#1{\footnotemark
+ \protected@xdef\@thanks{\@thanks
+ \protect\RTLfootnotetext[\the\c@footnote]{#1}}%
+}
+\let\@thanks\@empty
+\def\RTLfootnotetext{%
+ \@ifnextchar [\@xRTLfootnotenext
+ {\protected@xdef\@thefnmark{\thempfn}%
+ \@RTLfootnotetext}}
+\def\@xRTLfootnotenext[#1]{%
+ \begingroup
+ \csname c@\@mpfn\endcsname #1\relax
+ \unrestored@protected@xdef\@thefnmark{\thempfn}%
+ \endgroup
+ \@RTLfootnotetext}
+\leftfootnoterule
+\endinput
+%%
+%% End of file `footnote-xetex-bidi.def'.