diff options
author | Karl Berry <karl@freefriends.org> | 2016-05-02 23:39:30 +0000 |
---|---|---|
committer | Karl Berry <karl@freefriends.org> | 2016-05-02 23:39:30 +0000 |
commit | 4141c4aa83d1ead340876cdc2b8408b754bd9b69 (patch) | |
tree | b48928c20ceb05f7a9b8bfc92b1755f20e73fb7a /Master/texmf-dist/tex/xelatex/bidi/biditools.sty | |
parent | a2e546fd16ad80846377eeb25715c877e57d69c3 (diff) |
bidi (2may16)
git-svn-id: svn://tug.org/texlive/trunk@40842 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/tex/xelatex/bidi/biditools.sty')
-rw-r--r-- | Master/texmf-dist/tex/xelatex/bidi/biditools.sty | 1163 |
1 files changed, 0 insertions, 1163 deletions
diff --git a/Master/texmf-dist/tex/xelatex/bidi/biditools.sty b/Master/texmf-dist/tex/xelatex/bidi/biditools.sty deleted file mode 100644 index 362ab4f2dd9..00000000000 --- a/Master/texmf-dist/tex/xelatex/bidi/biditools.sty +++ /dev/null @@ -1,1163 +0,0 @@ -%% -%% This is file `biditools.sty', -%% generated with the docstrip utility. -%% -%% The original source files were: -%% -%% bidi.dtx (with options: `table,biditools.sty') -%% -%% __________________________________________________ -%% Copyright (c) 2009--2015 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{46182} -%% \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 \~} -%% -\NeedsTeXFormat{LaTeX2e} -\ProvidesPackage{biditools}[2015/11/14 v0.8 Programming tools for bidi package] -\providecommand{\@bidi@saveprimitive}[2]{\begingroup\escapechar`\\\relax - \edef\@tempa{\string#1}\edef\@tempb{\meaning#1}% - \ifx\@tempa\@tempb \global\let#2#1% - \else - \edef\@tempb{\meaning#2}% - \ifx\@tempa\@tempb - \else - \@latex@error{Unable to properly define \string#2; primitive - \noexpand#1no longer primitive}\@eha - \fi - \fi - \endgroup} -\newtoks\@bidi@envbody -\newtoks\@bidi@emptytoks -\def\bidi@addto@envbody#1{\global\@bidi@envbody\expandafter{\the\@bidi@envbody#1}} -\def\bidi@collect@body#1{% - \@bidi@envbody{\expandafter#1\expandafter{\the\@bidi@envbody}}% - \edef\bidi@process@envbody{\the\@bidi@envbody\noexpand\end{\@currenvir}}% - \@bidi@envbody\@bidi@emptytoks \def\begin@bidi@stack{b}% - \begingroup - \expandafter\let\csname\@currenvir\endcsname\bidi@collect@@body - \edef\bidi@process@envbody{\expandafter\noexpand\csname\@currenvir\endcsname}% - \bidi@process@envbody -} -\def\bidi@push@begins#1\begin#2{% - \ifx\end#2\else b\expandafter\bidi@push@begins\fi -} -\def\bidi@collect@@body#1\end#2{% - \edef\begin@bidi@stack{\bidi@push@begins#1\begin\end \expandafter\@gobble\begin@bidi@stack}% - \ifx\@empty\begin@bidi@stack - \endgroup - \@checkend{#2}% - \bidi@addto@envbody{#1}% - \else - \bidi@addto@envbody{#1\end{#2}}% - \fi - \bidi@process@envbody % A little tricky! Note the grouping -} -\long\def\bidi@addto@long@envbody#1{\global\@bidi@envbody\expandafter{\the\@bidi@envbody#1}} -\long\def\bidi@collect@long@body#1{% - \@bidi@envbody{\expandafter#1\expandafter{\the\@bidi@envbody}}% - \edef\bidi@process@envbody{\the\@bidi@envbody\noexpand\end{\@currenvir}}% - \@bidi@envbody\@bidi@emptytoks \def\begin@bidi@stack{b}% - \begingroup - \expandafter\let\csname\@currenvir\endcsname\bidi@collect@long@@body - \edef\bidi@process@envbody{\expandafter\noexpand\csname\@currenvir\endcsname}% - \bidi@process@envbody -} -\long\def\bidi@push@long@begins#1\begin#2{% - \ifx\end#2\else b\expandafter\bidi@push@long@begins\fi -} -\long\def\bidi@collect@long@@body#1\end#2{% - \edef\begin@bidi@stack{\bidi@push@long@begins#1\begin\end \expandafter\@gobble\begin@bidi@stack}% - \ifx\@empty\begin@bidi@stack - \endgroup - \@checkend{#2}% - \bidi@addto@long@envbody{#1}% - \else - \bidi@addto@long@envbody{#1\end{#2}}% - \fi - \bidi@process@envbody % A little tricky! Note the grouping -} -\long\def\bidi@new@ifnextchar#1#2#3{% - \let\reserved@d= #1% - \def\reserved@a{#2}\def\reserved@b{#3}% - \futurelet\@let@token\bidi@new@ifnch -} -\def\bidi@new@ifnch{% - \ifx\@let@token\reserved@d \let\reserved@b\reserved@a \fi - \reserved@b -} -\def\bidi@matrix@check#1{% - \expandafter\ifx\csname\@currenvir\endcsname#1% - \else\bidi@matrix@error#1% - \expandafter\@gobble - \fi -} -\def\bidi@matrix@error#1{% - \PackageError{biditools}{% -Old form `\string#1' should be \string\begin{\expandafter\@gobble\string#1}% - }{% -`\string#1{...}' is old bidi package syntax whose use is -ill-advised in the old versions of bidi package.% - }% -} -\def\@tagsextension{clo} -\def\@definitionfileextension{def} -\def\@texfileextension{tex} -\def\@iftagsloaded{\@ifl@aded\@tagsextension} -\def\@ifdefinitionfileloaded{\@ifl@aded\@definitionfileextension} -\def\@iftexfileloaded{\@ifl@aded\@texfileextension} -\def\eqnewif#1#2{% - \count@\escapechar \escapechar\m@ne - \let#1\iffalse - \let#2\iffalse - \eq@if#1#2\iftrue - \eq@if#1#2\iffalse - \escapechar\count@} -\def\eq@if#1#2#3{% - \expandafter\def\csname\expandafter\@gobbletwo\string#1% - \expandafter\@gobbletwo\string#3\endcsname - {\let#1#3% - \let#2#3}% - \expandafter\def\csname\expandafter\@gobbletwo\string#2% - \expandafter\@gobbletwo\string#3\endcsname - {\let#2#3% - \let#1#3}} -\def\@bidi@removefromreset#1#2{{% - \expandafter\let\csname c@#1\endcsname\@bidi@removefromreset - \def\@elt##1{% - \expandafter\ifx\csname c@##1\endcsname\@bidi@removefromreset - \else - \noexpand\@elt{##1}% - \fi}% - \expandafter\xdef\csname cl@#2\endcsname{% - \csname cl@#2\endcsname}}} -\newcommand*{\if@bidi@csdef}[1]{% - \ifcsname#1\endcsname - \expandafter\@firstoftwo - \else - \expandafter\@secondoftwo - \fi} -\newcommand*{\if@bidi@csundef}[1]{% - \ifcsname#1\endcsname - \expandafter\ifx\csname#1\endcsname\relax - \expandafter\expandafter - \expandafter\@firstoftwo - \else - \expandafter\expandafter - \expandafter\@secondoftwo - \fi - \else - \expandafter\@firstoftwo - \fi} -\newcommand{\if@bidi@def}[1]{% - \ifdefined#1% - \expandafter\@firstoftwo - \else - \expandafter\@secondoftwo - \fi} -\newcommand{\if@bidi@undef}[1]{% - \ifdefined#1% - \ifx#1\relax - \expandafter\expandafter - \expandafter\@firstoftwo - \else - \expandafter\expandafter - \expandafter\@secondoftwo - \fi - \else - \expandafter\@firstoftwo - \fi} -\newcommand{\if@bidi@blank}[1]{% from url.sty - \bidi@ifblank@i#1&&\@secondoftwo\@firstoftwo:} -\long\def\bidi@ifblank@i#1#2#4#5:{#4} -\newcommand{\bidi@notblank}[1]{% - \bidi@ifblank@i#1&&\@firstoftwo\@secondoftwo:} -\newcommand{\if@bidi@defmacro}{} -\long\edef\if@bidi@defmacro#1{% - \noexpand\expandafter\noexpand\bidi@ifdefmacro - \noexpand\meaning#1\detokenize{macro}:&} -\edef\bidi@ifdefmacro{% - \def\noexpand\bidi@ifdefmacro##1\detokenize{macro}:##2&} -\bidi@ifdefmacro{\bidi@notblank{#2}} -\newcommand*{\if@bidi@csmacro}[1]{% - \if@bidi@csdef{#1} - {\expandafter\if@bidi@defmacro\csname#1\endcsname} - {\@secondoftwo}} -\newcommand{\if@bidi@defprimitive}[1]{% - \ifprimitive#1% - \expandafter\@firstoftwo - \else - \expandafter\@secondoftwo - \fi} -\newcommand{\if@bidi@csprimitive}[1]{% - \begingroup\expandafter\expandafter\expandafter\endgroup% - \expandafter\ifprimitive\csname#1\endcsname% - \expandafter\@firstoftwo - \else - \expandafter\@secondoftwo - \fi} -\newcommand*{\bidi@csdefcs}[2]{% -\expandafter\@ifdefinable \csname#1\endcsname{% -\expandafter\def\csname#1\expandafter\endcsname{\csname#2\endcsname}}} -\newcommand*{\bidi@csletcs}[2]{% -\expandafter\@ifdefinable \csname#1\endcsname{% -\expandafter\let\csname#1\expandafter\endcsname\csname#2\endcsname}} -\newcommand*{\bidi@cslet}[2]{% -\expandafter\@ifdefinable \csname#1\endcsname{% -\expandafter\let\csname#1\endcsname#2}} -\newcommand{\bidi@namelongdef}[1]{% - \long\expandafter\def\csname #1\endcsname} -\def\bidi@ensure@newcommand{\@star@or@long\bidi@ensure@new@command} -\def\bidi@ensure@new@command#1{% - \begingroup \escapechar\m@ne\xdef\@gtempa{{\string#1}}\endgroup - \expandafter\if@bidi@csundef\@gtempa - {\new@command#1}{\relax% - \let\@ifdefinable\@rc@ifdefinable% - \new@command#1}} -\def\bidi@ensure@newlength#1{\if@bidi@undef#1{\newskip#1}{}} - -\protected\def\bidi@error{\PackageError{bidi}} -\protected\def\bidi@warning{\PackageWarning{bidi}} -\protected\def\bidi@info{\PackageInfo{bidi}} - -\newcommand*{\bidi@newrobustcmd}{} -\protected\def\bidi@newrobustcmd{\@star@or@long\bidi@new@command} - -\def\bidi@new@command#1{\@testopt{\bidi@newcommand#1}0} - -\def\bidi@newcommand#1[#2]{% - \@ifnextchar[%] - {\bidi@xargdef#1[#2]} - {\ifx\l@ngrel@x\relax - \let\l@ngrel@x\protected - \else - \protected\def\l@ngrel@x{\protected\long}% - \fi - \@argdef#1[#2]}} - -\long\def\bidi@xargdef#1[#2][#3]#4{% - \@ifdefinable#1{% - \expandafter\protected - \expandafter\def - \expandafter#1% - \expandafter{% - \expandafter\@testopt - \csname\string#1\endcsname{#3}}% - \expandafter\@yargdef\csname\string#1\endcsname\tw@{#2}{#4}}} - -\bidi@newrobustcmd*{\bidi@renewrobustcmd}{\@star@or@long\bidi@renew@command} - -\def\bidi@renew@command#1{% - \if@bidi@undef{#1} - {\bidi@error{\string#1 undefined}\@ehc} - {}% - \let\@ifdefinable\@rc@ifdefinable - \bidi@new@command#1} - -\bidi@newrobustcmd*{\bidi@providerobustcmd}{\@star@or@long\bidi@provide@command} - -\def\bidi@provide@command#1{% - \if@bidi@undef{#1} - {\def\reserved@a{\bidi@new@command#1}} - {\def\reserved@a{\bidi@renew@command\reserved@a}}% - \reserved@a} - -\newcommand*{\bidi@csuse}[1]{% - \ifcsname#1\endcsname - \csname#1\expandafter\endcsname - \fi} - -\newcommand{\bidi@expandonce}[1]{% - \unexpanded\expandafter{#1}} - -\def\bidi@protected{% - \let\@@protect\protect - \let\protect\@unexpandable@protect - \afterassignment\restore@protect} - -\bidi@newrobustcmd{\bidi@appto}[2]{% - \if@bidi@undef{#1} - {\edef#1{\unexpanded{#2}}} - {\edef#1{\bidi@expandonce#1\unexpanded{#2}}}} -\bidi@newrobustcmd{\bidi@eappto}[2]{% - \if@bidi@undef{#1} - {\edef#1{#2}} - {\edef#1{\bidi@expandonce#1#2}}} -\bidi@newrobustcmd{\bidi@gappto}[2]{% - \if@bidi@undef{#1} - {\xdef#1{\unexpanded{#2}}} - {\xdef#1{\bidi@expandonce#1\unexpanded{#2}}}} -\bidi@newrobustcmd{\bidi@xappto}[2]{% - \if@bidi@undef{#1} - {\xdef#1{#2}} - {\xdef#1{\bidi@expandonce#1#2}}} - -\bidi@newrobustcmd*{\bidi@protected@eappto}{\bidi@protected\bidi@eappto} -\bidi@newrobustcmd*{\bidi@protected@xappto}{\bidi@protected\bidi@xappto} - -\bidi@newrobustcmd{\bidi@preto}[2]{% - \if@bidi@undef{#1} - {\edef#1{\unexpanded{#2}}} - {\edef#1{\unexpanded{#2}\bidi@expandonce#1}}} -\bidi@newrobustcmd{\bidi@epreto}[2]{% - \if@bidi@undef{#1} - {\edef#1{#2}} - {\edef#1{#2\bidi@expandonce#1}}} -\bidi@newrobustcmd{\bidi@gpreto}[2]{% - \if@bidi@undef{#1} - {\xdef#1{\unexpanded{#2}}} - {\xdef#1{\unexpanded{#2}\bidi@expandonce#1}}} -\bidi@newrobustcmd{\bidi@xpreto}[2]{% - \if@bidi@undef{#1} - {\xdef#1{#2}} - {\xdef#1{#2\bidi@expandonce#1}}} - -\bidi@newrobustcmd*{\bidi@protected@epreto}{\bidi@protected\bidi@epreto} -\bidi@newrobustcmd*{\bidi@protected@xpreto}{\bidi@protected\bidi@xpreto} - -\bidi@newrobustcmd*{\bidi@csappto}[1]{\expandafter\bidi@appto\csname#1\endcsname} -\bidi@newrobustcmd*{\bidi@cseappto}[1]{\expandafter\bidi@eappto\csname#1\endcsname} -\bidi@newrobustcmd*{\bidi@csgappto}[1]{\expandafter\bidi@gappto\csname#1\endcsname} -\bidi@newrobustcmd*{\bidi@csxappto}[1]{\expandafter\bidi@xappto\csname#1\endcsname} -\bidi@newrobustcmd*{\bidi@protected@cseappto}{\bidi@protected\bidi@cseappto} -\bidi@newrobustcmd*{\bidi@protected@csxappto}{\bidi@protected\bidi@csxappto} - -\bidi@newrobustcmd*{\bidi@cspreto}[1]{\expandafter\bidi@preto\csname#1\endcsname} -\bidi@newrobustcmd*{\bidi@csepreto}[1]{\expandafter\bidi@epreto\csname#1\endcsname} -\bidi@newrobustcmd*{\bidi@csgpreto}[1]{\expandafter\bidi@gpreto\csname#1\endcsname} -\bidi@newrobustcmd*{\bidi@csxpreto}[1]{\expandafter\bidi@xpreto\csname#1\endcsname} -\bidi@newrobustcmd*{\bidi@protected@csepreto}{\bidi@protected\bidi@csepreto} -\bidi@newrobustcmd*{\bidi@protected@csxpreto}{\bidi@protected\bidi@csxpreto} - -\bidi@newrobustcmd{\if@bidi@patchable}{% - \bidi@dbg@trce\if@bidi@patchable - \begingroup - \@makeother\#% - \@ifstar\bidi@ifpatchable@i\bidi@ifpatchable} - -\long\def\bidi@ifpatchable#1#2{% - \endgroup - \bidi@dbg@init#1% - \if@bidi@undef{#1} - {\bidi@dbg@fail{def}\@secondoftwo} - {\bidi@dbg@info{def}% - \if@bidi@defmacro{#1} - {\bidi@dbg@info{mac}% - \bidi@ifscanable{#1} - {\bidi@ifhashcheck{#2} - {\bidi@dbg@info{tok}% - \bidi@ifpattern#1{#2} - {\bidi@dbg@info{pat}% - \bidi@dbg@info{pos}\@firstoftwo} - {\bidi@dbg@fail{pat}\@secondoftwo}} - {\bidi@dbg@fail{hsh}\@secondoftwo}} - {\bidi@dbg@fail{tok}\@secondoftwo}} - {\bidi@dbg@fail{mac}\@secondoftwo}}} - -\long\def\bidi@ifpatchable@i#1{% - \endgroup - \bidi@dbg@init#1% - \if@bidi@undef{#1} - {\bidi@dbg@fail{def}\@secondoftwo} - {\bidi@dbg@info{def}% - \if@bidi@defmacro{#1} - {\bidi@dbg@info{mac}% - \if@bidi@defparam{#1} - {\bidi@dbg@info{prm}% - \bidi@ifscanable{#1} - {\bidi@dbg@info{tok}% - \bidi@dbg@info{pos}\@firstoftwo} - {\bidi@dbg@fail{tok}\@secondoftwo}} - {\bidi@dbg@info{prl}% - \if@bidi@defprotected{#1} - {\bidi@dbg@info{pro}} - {}% - \bidi@dbg@info{pos}\@firstoftwo}} - {\bidi@dbg@fail{mac}\@secondoftwo}}} - -\bidi@newrobustcmd*{\bidi@patchcmd}{% - \bidi@dbg@trce\bidi@patchcmd - \begingroup - \@makeother\#% - \bidi@@patchcmd} - -\newcommand{\bidi@@patchcmd}[4][########1]{% - \bidi@ifpatchable#2{#3} - {\bidi@dbg@succ{ret}% - \begingroup - \edef\bidi@resrvda{% - \def\noexpand\bidi@resrvda####1\detokenize{macro:}####2->####3&{% - #1\def\string\bidi@resrvda\space####2{\noexpand\bidi@resrvdb####3&}}% - \def\noexpand\bidi@resrvdb####1\detokenize{#3}####2&{% - ####1\detokenize{#4}####2}% - \edef\noexpand\bidi@resrvda{% - \noexpand\bidi@resrvda\meaning#2&}}% - \bidi@resrvda - \bidi@patchcmd@scantoks\bidi@resrvda - \let#2\bidi@resrvda - \bidi@undef\bidi@resrvda - \@firstoftwo} - {\@secondoftwo}} - -\def\bidi@patchcmd@scantoks#1{% - \edef\bidi@resrvda{\endgroup - \unexpanded{\makeatletter\scantokens}{#1}% - \catcode\number`\@=\the\catcode`\@\relax}% - \bidi@resrvda} - -\newcommand\bidi@isloaded[2][]{ - \expandafter\ifx\csname if@bidi@#2loaded@\endcsname\relax - \expandafter\newif\csname if@bidi@#2loaded@\endcsname - \fi - \@ifpackageloaded{#2} - {\csname @bidi@#2loaded@true\endcsname #1} - {\csname @bidi@#2loaded@false\endcsname}} - -\protected\def\bidi@ifscanable#1{% - \begingroup - \edef\bidi@resrvda{% - \def\noexpand\bidi@resrvda####1\detokenize{macro}:####2->####3&{% - ####1\def\string\bidi@resrvda####2{####3}}% - \edef\noexpand\bidi@resrvda{\noexpand\bidi@resrvda\meaning#1&}}% - \bidi@resrvda - \makeatletter - \scantokens\expandafter{\bidi@resrvda}% - \expandafter\endgroup\ifx#1\bidi@resrvda - \expandafter\@firstoftwo - \else - \expandafter\@secondoftwo - \fi} - -\protected\long\def\bidi@ifhashcheck#1{% - \begingroup - \edef\bidi@resrvda{\detokenize{#1}}% - \expandafter\endgroup - \expandafter\bidi@ifhashcheck@i\meaning\bidi@resrvda&} - -\edef\bidi@ifhashcheck@i#1&{% - \noexpand\expandafter - \noexpand\bidi@ifhashcheck@ii - \noexpand\strip@prefix#1\string#\string#&} - -\edef\bidi@ifhashcheck@ii{% - \def\noexpand\bidi@ifhashcheck@ii##1\string#\string###2&} -\bidi@ifhashcheck@ii{\if@bidi@blank{#2}} - -\protected\long\def\bidi@ifpattern#1#2{% - \begingroup - \edef\bidi@resrvda{% - \def\noexpand\bidi@resrvda####1\detokenize{#2}####2&{% - \endgroup\noexpand\noexpand\noexpand\if@bidi@blank{####2}}% - \edef\noexpand\bidi@resrvda{\noexpand\bidi@resrvda - \expandafter\strip@prefix\meaning#1\detokenize{#2}&}% - \noexpand\bidi@resrvda} - \bidi@resrvda\@secondoftwo\@firstoftwo} - -\newcommand{\if@bidi@defparam}{} -\long\edef\if@bidi@defparam#1{% - \noexpand\expandafter\noexpand\bidi@ifdefparam - \noexpand\meaning#1\detokenize{macro}:->&} -\edef\bidi@ifdefparam{% - \def\noexpand\bidi@ifdefparam##1\detokenize{macro}:##2->##3&} -\bidi@ifdefparam{\bidi@notblank{#2}} - -\newcommand{\if@bidi@defprotected}{} -\long\edef\if@bidi@defprotected#1{% - \noexpand\expandafter\noexpand\bidi@ifdefprotected - \noexpand\meaning#1\string\protected&} -\edef\bidi@ifdefprotected{% - \def\noexpand\bidi@ifdefprotected##1\string\protected##2&} -\bidi@ifdefprotected{\bidi@notblank{#2}} - -\bidi@newrobustcmd{\bidi@undef}[1]{\let#1\bidi@undefined} - -\let\bidi@dbg@trce\@gobble -\let\bidi@dbg@init\@gobble -\let\bidi@dbg@info\@gobble -\let\bidi@dbg@succ\@gobble -\let\bidi@dbg@fail\@gobble - -\bidi@newrobustcmd*{\bidi@apptocmd}{% - \bidi@dbg@trce\bidi@apptocmd - \begingroup - \@makeother\#% - \bidi@hooktocmd\bidi@append} - -\bidi@newrobustcmd*{\bidi@pretocmd}{% - \bidi@dbg@trce\bidi@pretocmd - \begingroup - \@makeother\#% - \bidi@hooktocmd\bidi@prepend} - -\long\def\bidi@hooktocmd#1#2#3{% - \endgroup - \bidi@dbg@init#2% - \if@bidi@undef{#2} - {\bidi@dbg@fail{def}\@secondoftwo} - {\bidi@dbg@info{def}% - \if@bidi@defmacro{#2} - {\bidi@dbg@info{mac}% - \if@bidi@defparam{#2} - {\bidi@dbg@info{prm}% - \bidi@ifscanable{#2} - {\bidi@ifhashcheck{#3} - {\bidi@dbg@info{tok}% - \bidi@dbg@succ{ret}% - \bidi@hooktocmd@i#1#2{#3}% - \@firstoftwo} - {\bidi@dbg@fail{hsh}\@secondoftwo}} - {\bidi@dbg@fail{tok}\@secondoftwo}} - {\bidi@dbg@info{prl}% - \if@bidi@defprotected{#2} - {\bidi@dbg@info{pro}% - \bidi@dbg@succ{red}% - \protected} - {\bidi@dbg@succ{red}}% - \edef#2{#1{\bidi@expandonce#2}{\unexpanded{#3}}}% - \@firstoftwo}} - {\bidi@dbg@fail{mac}\@secondoftwo}}} - -\long\def\bidi@hooktocmd@i#1#2#3{% - \begingroup - \edef\bidi@resrvda{% - \def\noexpand\bidi@resrvda####1\detokenize{macro}:####2->####3&{% - ####1\def\string\bidi@resrvda\space####2{#1{####3}{\detokenize{#3}}}}% - \edef\noexpand\bidi@resrvda{% - \noexpand\bidi@resrvda\meaning#2&}}% - \bidi@resrvda - \bidi@patchcmd@scantoks\bidi@resrvda - \let#2\bidi@resrvda - \bidi@undef\bidi@resrvda} - -\long\def\bidi@append#1#2{#1#2} -\long\def\bidi@prepend#1#2{#2#1} - -\bidi@newrobustcmd*{\bidi@AtEndPreamble}{\bidi@gappto\bidi@endpreamblehook} -\newcommand*{\bidi@endpreamblehook}{} - -\bidi@preto\document{% - \endgroup - \let\bidi@AtEndPreamble\@firstofone - \bidi@endpreamblehook - \protected\def\bidi@AtEndPreamble{\@notprerr\@gobble}% - \bidi@undef\bidi@endpreamblehook - \begingroup} - -\bidi@newrobustcmd*{\bidi@AfterPreamble}{\AtBeginDocument} -\bidi@AtEndPreamble{\let\bidi@AfterPreamble\@firstofone} - -\bidi@newrobustcmd*{\bidi@AfterEndPreamble}{\bidi@gappto\bidi@afterendpreamblehook} -\newcommand*{\bidi@afterendpreamblehook}{} - -\bidi@appto\document{% - \let\bidi@AfterEndPreamble\@firstofone - \bidi@afterendpreamblehook - \protected\def\bidi@AfterEndPreamble{\@notprerr\@gobble}% - \bidi@undef\bidi@afterendpreamblehook - \ignorespaces} - -\AtEndDocument{\let\bidi@AfterEndPreamble\@gobble} - -\bidi@newrobustcmd*{\bidi@AfterEndDocument}{\bidi@gappto\bidi@afterenddocumenthook} -\newcommand*{\bidi@afterenddocumenthook}{} - -\bidi@patchcmd\enddocument - {\deadcycles} - {\let\bidi@AfterEndDocument\@firstofone - \bidi@afterenddocumenthook - \deadcycles} - {} - {\let\bidi@@end\@@end - \def\@@end{% - \let\bidi@AfterEndDocument\@firstofone - \bidi@afterenddocumenthook - \bidi@@end}} - -\bidi@newrobustcmd{\bidi@AtBeginEnvironment}[1]{% - \bidi@csgappto{@bidi@begin@#1@hook}} - -\bidi@patchcmd\begin - {\csname #1\endcsname} - {\bidi@csuse{@bidi@begin@#1@hook}% - \csname #1\endcsname} - {} - {\bidi@warning{% - Patching '\string\begin' failed!\MessageBreak - '\string\bidi@AtBeginEnvironment' will not work\@gobble}} - -\bidi@newrobustcmd{\bidi@AtEndEnvironment}[1]{% - \bidi@csgappto{@bidi@end@#1@hook}} - -\bidi@patchcmd\end - {\csname end#1\endcsname} - {\bidi@csuse{@bidi@end@#1@hook}% - \csname end#1\endcsname} - {} - {\bidi@warning{% - Patching '\string\end' failed!\MessageBreak - '\string\bidi@AtEndEnvironment' will not work\@gobble}} - -\bidi@newrobustcmd{\bidi@BeforeBeginEnvironment}[1]{% - \bidi@csgappto{@bidi@beforebegin@#1@hook}} - -\bidi@pretocmd\begin - {\bidi@csuse{@bidi@beforebegin@#1@hook}} - {} - {\bidi@warning{% - Patching '\string\begin' failed!\MessageBreak - '\string\bidi@BeforeBeginEnvironment' will not work\@gobble}} - -\bidi@newrobustcmd{\bidi@AfterEndEnvironment}[1]{% - \bidi@csgappto{@bidi@afterend@#1@hook}} - -\bidi@patchcmd\end - {\if@ignore} - {\bidi@csuse{@bidi@afterend@#1@hook}% - \if@ignore} - {} - {\bidi@warning{% - Patching '\string\end' failed!\MessageBreak - '\string\bidi@AfterEndEnvironment' will not work\@gobble}} - -\CheckCommand{\InputIfFileExists}[2]{% - \IfFileExists{#1}% - {#2\@addtofilelist{#1}\@@input \@filef@und}} - -\renewcommand{\InputIfFileExists}[2]{% - \begingroup\expandafter\expandafter\expandafter\endgroup - \expandafter\ifx\csname #1-@bidi@alias\endcsname\relax - \expandafter\@secondoftwo - \else - \bidi@replacefile@msg{\csname #1-@bidi@alias\endcsname}{#1}% - \expandafter\@firstoftwo - \fi - {% - \expandafter\InputIfFileExists\expandafter{\csname - #1-@bidi@alias\endcsname}{#2}% - }% - {\IfFileExists{#1}{% - \bidi@load@hook{before}{#1}% - #2\@addtofilelist{#1}% - \@@input \@filef@und - \bidi@load@hook{after}{#1}% - }}% -} - -\newcommand*{\bidi@@loadwithoptions}{} -\newcommand*{\bidi@loadwithoptions}{} -\let\bidi@loadwithoptions\@loadwithoptions - -\renewcommand*{\@loadwithoptions}[3]{% - \begingroup\expandafter\expandafter\expandafter\endgroup - \expandafter\ifx\csname #3.#1-@bidi@aliasname\endcsname\relax - \def\bidi@@loadwithoptions{\bidi@loadwithoptions{#1}{#2}{#3}}% - \else - \bidi@replacefile@msg{\csname #3.#1-@bidi@aliasname\endcsname.#1}{#3.#1}% - \def\bidi@@loadwithoptions{% - \@loadwithoptions{#1}{#2}{\csname #3.#1-@bidi@aliasname\endcsname}% - }% - \fi - \bidi@@loadwithoptions -} - -\newcommand*{\bidi@onefilewithoptions}{} -\let\bidi@onefilewithoptions\@onefilewithoptions -\def\@onefilewithoptions#1[#2][#3]#4{% - \begingroup\expandafter\expandafter\expandafter\endgroup - \expandafter\ifx\csname #1.#4-@bidi@aliasname\endcsname\relax - \def\bidi@@onefilewithoptions{\bidi@onefilewithoptions{#1}}% - \else - \bidi@replacefile@msg{\csname #1.#4-@bidi@aliasname\endcsname.#4}{#1.#4}% - \edef\bidi@@onefilewithoptions{% - \noexpand\@onefilewithoptions{\csname #1.#4-@bidi@aliasname\endcsname}}% - \fi - \bidi@@onefilewithoptions[{#2}][{#3}]{#4}% - \bidi@load@hook{lateafter}{#1.#4}% -} - -\newcommand*{\bidi@ReplaceInput}[2]{% - \expandafter\edef\csname #1-@bidi@alias\endcsname{#2}% -} - -\newcommand*{\bidi@UnReplaceInput}[1]{% - \ifcsname #1-@bidi@alias\endcsname - \expandafter\let\csname #1-@bidi@alias\endcsname\relax - \fi -} - -\newcommand*{\@bidi@replacefilewithext}[3]{% - \expandafter\edef\csname #1.#3-@bidi@aliasname\endcsname{#2}% - } -\newcommand*{\bidi@ReplacePackage}[2]{% - \@bidi@replacefilewithext{#1}{#2}\@pkgextension -} -\newcommand*{\bidi@ReplaceClass}[2]{% - \@bidi@replacefilewithext{#1}{#2}\@clsextension -} -\newcommand*{\@bidi@unreplacefilewithext}[2]{% - \ifcsname #1.#2-@bidi@aliasname\endcsname - \expandafter\let\csname #1.#2-@bidi@aliasname\endcsname\relax - \fi -} -\newcommand*{\bidi@UnReplacePackage}[1]{% - \@bidi@unreplacefilewithext{#1}\@pkgextension -} -\newcommand*{\bidi@UnReplaceClass}[1]{% - \@bidi@unreplacefilewithext{#1}\@clsextension -} -\newcommand*{\bidi@replacefile@msg}[2]{% - \PackageInfo{biditools}{inputing `#1' instead of `#2'}% -} - -\newcommand*{\bidi@load@hook}[2]{% - \@ifundefined{#2-@#1}{}{% - \@nameuse{#2-@#1}% - \expandafter\let\csname #2-@#1\endcsname=\relax}} -\newcommand*{\bidi@set@load@hook}[2]{% - \@ifundefined{#2-@#1}{\@namedef{#2-@#1}{}}{}% - \expandafter\g@addto@macro\csname #2-@#1\endcsname} -\newcommand*{\bidi@BeforeFile}{\bidi@set@load@hook{before}} -\newcommand*{\bidi@AfterFile}{\bidi@set@load@hook{after}} -\newcommand*{\bidi@BeforeClass}[1]{% - \bidi@set@load@hook{before}{#1.\@clsextension}} -\newcommand*{\bidi@AfterClass}{% - \@ifstar {\@s@bidi@AfterClass}{% - \@ifnextchar +\@@bidi@AfterClass{% - \@ifnextchar !\@@@bidi@AfterClass\@bidi@AfterClass - }% - }% -} - -\newcommand*{\@@@bidi@AfterClass}[2]{% - \begingroup\ifx\csname #2.\@clsextension-h@@k\endcsname\relax - \aftergroup\@s@bidi@AfterClass - \else - \aftergroup\bidi@AfterAtEndOfClass - \fi - \endgroup{#2}% -} - -\newcommand*{\bidi@AfterAtEndOfClass}[1]{% - \bidi@set@load@hook{lateafter}{#1.\@clsextension}} -\newcommand*{\@@bidi@AfterClass}[2]{% - \begingroup - \expandafter\ifx\csname #2.\@clsextension-h@@k\endcsname\relax - \aftergroup\@s@bidi@AfterClass - \else - \aftergroup\@bidi@AfterClass - \fi - \endgroup{#2}% -} - -\newcommand*{\@bidi@AfterClass}[1]{% - \bidi@set@load@hook{after}{#1.\@clsextension}} -\newcommand*{\@s@bidi@AfterClass}[1]{% - \begingroup - \@ifclassloaded{#1}{% - \aftergroup\@secondoftwo - }{% - \aftergroup\@bidi@AfterClass - }% - \endgroup - {#1}% -} - -\newcommand*{\bidi@BeforePackage}[1]{% - \bidi@set@load@hook{before}{#1.\@pkgextension}} -\newcommand*{\bidi@AfterPackage}{% - \@ifstar {\@s@bidi@AfterPackage}{% - \@ifnextchar +\@@bidi@AfterPackage{% - \@ifnextchar !\@@@bidi@AfterPackage\@bidi@AfterPackage - }% - }% -} -\newcommand*{\@@@bidi@AfterPackage}[2]{% - \begingroup\ifx\csname #2.\@pkgextension-h@@k\endcsname\relax - \aftergroup\@s@bidi@AfterPackage - \else - \aftergroup\bidi@AfterAtEndOfPackage - \fi - \endgroup{#2}% -} -\newcommand*{\bidi@AfterAtEndOfPackage}[1]{% - \bidi@set@load@hook{lateafter}{#1.\@pkgextension}} -\newcommand*{\@@bidi@AfterPackage}[2]{% - \begingroup - \expandafter\ifx\csname #2.\@pkgextension-h@@k\endcsname\relax - \aftergroup\@s@bidi@AfterPackage - \else - \aftergroup\@bidi@AfterPackage - \fi - \endgroup{#2}% -} -\newcommand*{\@bidi@AfterPackage}[1]{% - \bidi@set@load@hook{after}{#1.\@pkgextension}} -\newcommand*{\@s@bidi@AfterPackage}[1]{% - \begingroup - \@ifpackageloaded{#1}{% - \aftergroup\@secondoftwo - }{% - \aftergroup\@bidi@AfterPackage - }% - \endgroup - {#1}% -} - -\newcommand*{\bidi@excludedpackages}{} -\let\bidi@excludedpackages\@empty -\newcommand*{\bidi@saved@RequirePackage}{} -\newcommand*{\bidi@PreventPackageFromLoading}{% - \@ifstar{\@bidi@PreventPackageFromLoading\PackageInfo}% - {\@bidi@PreventPackageFromLoading\PackageWarning}% -} -\newcommand*{\@bidi@PreventPackageFromLoading}[1]{% - \@ifnextchar [%] - {\@@bidi@PreventPackageFromLoading#1}{\@@bidi@PreventPackageFromLoading#1[]}% -} -\newcommand*{\@@bidi@PreventPackageFromLoading}{} - -\def\@@bidi@PreventPackageFromLoading#1[#2]#3{% - \edef\reserved@b{\zap@space#3 \@empty}% - \ifx \reserved@b\@empty - #1{biditools}{% - \string\bidi@PreventPackageFromLoading\space with empty packages\MessageBreak - argument ignored% - }% - \else - \ifx\bidi@excludedpackages\@empty - \let\bidi@saved@RequirePackage\RequirePackage - \let\RequirePackage\bidi@RequirePackage - \def\reserved@a##1##{% - \@latex@error - {\noexpand \usepackage before \string\documentclass}% - {\noexpand \usepackage may only appear in the document - preamble, i.e.,\MessageBreak - between \noexpand\documentclass and - \string\begin{document}.}% - \@gobble}% - \ifx\reserved@a\usepackage\else - \ifx\usepackage\bidi@saved@RequirePackage\else - \PackageWarning{biditools}{% - Maybe serious problem: unexpected definition of\MessageBreak - \string\usepackage - }% - \fi - \let\usepackage\RequirePackage - \fi - \fi - \expandafter\@for \expandafter\reserved@a\expandafter:\expandafter=% - \reserved@b\do {% - \ifx\reserved@a\@empty - #1{biditools}{% - empty package argument for - \string\bidi@PreventPackageFromLoading\MessageBreak - ignored% - }% - \else - \expandafter\@ifpackageloaded\expandafter{\reserved@a}{% - #1{biditools}{% - package `\reserved@a' already loaded.\MessageBreak - Cannot prevent it from beeing loaded% - }% - }{% - \edef\bidi@excludedpackages{\bidi@excludedpackages,% - \reserved@a}% - \if\relax\detokenize{#2}\relax\else - \@ifundefined{bidi@exclude@package@\reserved@a @do}{% - \@namedef{bidi@exclude@package@\reserved@a @do}{}% - }{}% - \expandafter\def - \csname bidi@exclude@package@\reserved@a - @do\expandafter\expandafter\expandafter\endcsname - \expandafter\expandafter\expandafter{% - \csname bidi@exclude@package@\reserved@a @do\endcsname - #2% - }% - \fi - }% - \fi - }% - \ifx\bidi@excludedpackages\@empty - \bidi@ResetPreventPackageFromLoading - \fi - \fi -} - -\@onlypreamble\bidi@PreventPackageFromLoading -\newcommand*{\bidi@ResetPreventPackageFromLoading}{% - \let\bidi@excludedpackages\@empty - \ifx\RequirePackage\bidi@RequirePackage - \ifx\usepackage\RequirePackage - \let\usepackage\bidi@saved@RequirePackage - \fi - \let\RequirePackage\bidi@saved@RequirePackage - \fi -} -\@onlypreamble\bidi@ResetPreventPackageFromLoading -\newcommand*{\bidi@StorePreventPackageFromLoading}[1]{% - \let#1\bidi@excludedpackages -} -\@onlypreamble\bidi@StorePreventPackageFromLoading -\newcommand*{\bidi@UnPreventPackageFromLoading}{% - \@ifstar {\@tempswatrue\@bidi@UnPreventPackageFromLoading}% - {\@tempswafalse\@bidi@UnPreventPackageFromLoading}% -} - -\newcommand*{\@bidi@UnPreventPackageFromLoading}[1]{% - \edef\reserved@b{\zap@space#1 \@empty}% - \if@tempswa - \@for\reserved@a:=\reserved@b\do {% - \ifx\reserved@a\@empty \else - \ifcsname bidi@exclude@package@\reserved@a @do\endcsname - \expandafter\let - \csname bidi@exclude@package@\reserved@a @do\endcsname - \undefined - \fi - \fi - }% - \fi - \ifcsname bidi@excludedpackages\endcsname - \let\reserved@a\bidi@excludedpackages - \let\bidi@excludedpackages\@empty - \expandafter\@for\expandafter\reserved@c - \expandafter:\expandafter=\reserved@a - \do{% - \ifx\reserved@c\@empty\else - \@expandtwoargs\in@{,\reserved@c,}{,\reserved@b,}% - \ifin@ - \else - \edef\bidi@excludedpackages{% - \bidi@excludedpackages,\reserved@c - }% - \fi - \fi - }% - \ifx\bidi@excludedpackages\@empty\bidi@ResetPreventPackageFromLoading\fi - \fi -} - -\newcommand*{\bidi@RequirePackage}[2][]{% - \let\reserved@c\@empty - \let\reserved@d\@empty - \edef\reserved@b{\zap@space#2 \@empty}% - \expandafter\@for\expandafter\reserved@b\expandafter:\expandafter=\reserved@b - \do {% - \begingroup - \@tempswatrue - \@for\reserved@a:=\bidi@excludedpackages\do {% - \ifx\reserved@a\reserved@b - \@tempswafalse - \fi - }% - \if@tempswa - \xdef\reserved@c{\reserved@c,\reserved@b}% - \else - \ifx\reserved@b\@empty\else - \PackageInfo{biditools}{Excluding package `\reserved@b'\MessageBreak - from loading}% - \@ifundefined{bidi@exclude@package@\reserved@b @do}{% - }{% - \expandafter\g@addto@macro\expandafter\reserved@d - \csname bidi@exclude@package@\reserved@b @do\endcsname - }% - \fi - \fi - \endgroup - }% - \ifx\reserved@c\@empty - \let\reserved@a\bidi@gobbleopt - \else - \edef\reserved@a{\noexpand\bidi@saved@RequirePackage[#1]{% - \expandafter\@gobble\reserved@c\@empty}}% - \fi - \expandafter\reserved@d - \reserved@a -} - -\newcommand{\bidi@gobbleopt}[1][]{} -\AtEndDocument{% - \let\bidi@saved@checkend=\@checkend - \renewcommand*{\@checkend}[1]{% - \def\reserved@a{#1}\def\reserved@b{document}% - \bidi@saved@checkend{#1}% - \ifx\reserved@a\reserved@b - \let\bidi@saved@clearpage=\clearpage - \renewcommand*{\clearpage}{\bidi@saved@clearpage - \bidi@hook@bcma - \bidi@restore@newpage - \let\clearpage=\bidi@saved@clearpage}% - \fi% - \let\bidi@saved@dofilelist\@dofilelist - \def\@dofilelist{% - \bidi@hook@acma - \let\@dofilelist\bidi@saved@dofilelist - \bidi@saved@dofilelist - }% - }% -} - -\newcommand*{\bidi@saved@checkend}{} -\newcommand*{\bidi@saved@dofilelist}{} -\newcommand*{\bidi@redefine@newpage}{% - \let\bidi@saved@newpage\newpage - \def\bidi@restore@newpage{% - \renewcommand*{\newpage}{% - \PackageWarningNoLine{% - biditools% - }{% - \string\newpage\space at main aux file!\MessageBreak - You have output material at the main aux file.\MessageBreak - Note, that the \string\bidi@BeforeClosingMainAux\space commands\MessageBreak - are processed before the output from aux file% - }% - \let\newpage\bidi@saved@newpage - \newpage - }% - }% - \renewcommand*{\newpage}{% - \PackageError{% - biditools% - }{% - \string\newpage\space at \string\bidi@BeforeClosingMainAux - }{% - You should never use \string\newpage\space or - \string\clear(double)page or other output material at the\MessageBreak - argument of \string\bidi@BeforeClosingMainAux!\MessageBreak - If you'll continue, the \string\newpage\space will be ignored to - avoid corruption of\MessageBreak - every prior use of \string\bidi@BeforeClosingMainAux. - }% - }% -} - -\newcommand*{\bidi@restore@newpage}{} -\newcommand*{\bidi@hook@bcma}{} -\newcommand*{\bidi@hook@acma}{} -\newcommand*{\bidi@BeforeClosingMainAux}{% - \ifx\bidi@hook@bcma\@empty - \gdef\bidi@hook@bcma{% - \renewcommand*{\bidi@BeforeClosingMainAux}[1]{####1}% - \let\protected@write\bidi@protected@immediate@write - \bidi@redefine@newpage - }% - \fi - \g@addto@macro\bidi@hook@bcma% -} - -\newcommand*{\bidi@AfterReadingMainAux}{% - \ifx\bidi@hook@acma\@empty - \gdef\bidi@hook@acma{% - \renewcommand*{\bidi@AfterReadingMainAux}[1]{####1}% - \let\protected@write\bidi@protected@immediate@write - }% - \fi - \g@addto@macro\bidi@hook@acma% -} - -\long\def\bidi@protected@immediate@write#1#2#3{% - \begingroup - #2% - \let\protect\@unexpandable@protect - \edef\reserved@a{\immediate\write#1{#3}}% - \reserved@a - \endgroup - \if@nobreak\ifvmode\nobreak\fi\fi -} - -\def\bidi@patch@counter{0}% -\if@bidi@csundef{numexpr}{% - \def\bidi@patch@stepcounter{% - \begingroup - \count@\bidi@patch@counter\relax - \advance\count@\@ne\relax - \edef\x{\endgroup - \noexpand\def\noexpand\bidi@patch@counter{\the\count@}% - }% - \x - }% -}{% - \def\bidi@patch@stepcounter{% - \edef\bidi@patch@counter{% - \the\numexpr\bidi@patch@counter+\@ne\relax - }% - }% -} -\def\bidi@patch@list{} -\def\bidi@patch@Add{% - \bidi@appto\bidi@patch@list -} -\def\bidi@patch@AfterPackage#1{% - \@ifpackageloaded{#1}{% - \@firstofone - }{% - \bidi@patch@AfterPackage{#1}% - }% -} -\def\bidi@patch@AfterPackage#1{% - \edef\bidi@patch@temp{#1}% - \bidi@patch@stepcounter - \expandafter\bidi@patch@@AfterPackage - \csname bidi@patch@\bidi@patch@counter\expandafter\endcsname{% - \bidi@patch@temp - }% -} -\def\bidi@patch@@AfterPackage#1#2#3{% - \begingroup - \toks@{#3}% - \xdef\bidi@patch@gtemp{% - \noexpand\@ifpackageloaded{#2}{% - \noexpand\let\noexpand#1\noexpand\relax - \the\toks@ - }{}% - }% - \endgroup - \let#1\bidi@patch@gtemp - \bidi@patch@Add#1% - \bidi@patch@try{bidi@AfterPackage}{#2}#1% -} - -\def\bidi@patch@try#1#2#3{% - \if@bidi@csundef{#1}{}{% - \csname #1\endcsname{#2}{#3}% - }% -} - -\AtBeginDocument{\bidi@patch@list} - -\bidi@AtEndPreamble{\bidi@patch@list}% - -\bidi@AfterEndPreamble{% - \let\bidi@patch@OrgIfPackageLoaded\@ifpackageloaded - \let\bidi@patch@OrgIfPackageLater\@ifpackagelater - \let\bidi@patch@OrgIfClassLoaded\@ifclassloaded - \let\bidi@patch@OrgIfClassLater\@ifclasslater - \bidi@patch@list - \let\@ifpackageloaded\bidi@patch@OrgIfPackageLoaded - \let\@ifpackagelater\bidi@patch@OrgIfPackageLater - \let\@ifclassloaded\bidi@patch@OrgIfClassLoaded - \let\@ifclasslater\bidi@patch@OrgIfClassLater -}% -\endinput -%% -%% End of file `biditools.sty'. |