%% %% This is file `cuted-xetex-bidi.def', %% generated with the docstrip utility. %% %% The original source files were: %% %% bidi.dtx (with options: `table,cuted-xetex-bidi.def') %% %% __________________________________________________ %% Vafa Khalighi %% tex-persian@vafa.ac %% %% Copyright (c) 2007--2022 Vafa Khalighi %% Copyright (c) 2018--2020 bidi-tex GitHub Organization %% %% 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{50574} %% \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{cuted-xetex-bidi.def}[2022/02/18 v0.7 bidi adaptations for cuted package for XeTeX engine] \def\RTL@outputdblcol{% \if@firstcolumn \global\@firstcolumnfalse \global\setbox\@leftcolumn\copy\@outputbox \splitmaxdepth\maxdimen \vbadness\maxdimen \setbox\@outputbox\vbox{\unvbox\@outputbox\unskip}% \setbox\@outputbox\vsplit\@outputbox to\maxdimen \toks@\expandafter{\topmark}% \xdef\@firstcoltopmark{\the\toks@}% \toks@\expandafter{\splitfirstmark}% \xdef\@firstcolfirstmark{\the\toks@}% \ifx\@firstcolfirstmark\@empty \global\let\@setmarks\relax \else \gdef\@setmarks{% \let\firstmark\@firstcolfirstmark \let\topmark\@firstcoltopmark}% \fi \else \global\@firstcolumntrue \setbox\@outputbox\vbox{% \hb@xt@\textwidth{% \hskip \columnwidth \hfil {\normalcolor\vrule \@width\columnseprule}% \hfil \hb@xt@\columnwidth{% \bidi@firstcolumn@status@write% \box\@leftcolumn \hss}% \hskip -\textwidth \hb@xt@\columnwidth{% \bidi@lastcolumn@status@write% \box\@outputbox \hss}% \hskip \columnsep \hskip \columnwidth }}% \ifvoid\hold@viper \else \setbox\@outputbox \vbox to\textheight{% \box\hold@viper \box\@outputbox \vss }% \fi \@combinedblfloats \@setmarks \@outputpage \begingroup \@dblfloatplacement \@startdblcolumn \@whilesw\if@fcolmade \fi{\@outputpage \@startdblcolumn}% \ifvoid\@viper \else \global\setbox\@viper\vbox{% \vskip-\stripsep \unvbox\@viper }% \@viperoutput \fi \endgroup \fi}% \def\LTR@outputdblcol{% \if@firstcolumn \global\@firstcolumnfalse \global\setbox\@leftcolumn\copy\@outputbox \splitmaxdepth\maxdimen \vbadness\maxdimen \setbox\@outputbox\vbox{\unvbox\@outputbox\unskip}% \setbox\@outputbox\vsplit\@outputbox to\maxdimen \toks@\expandafter{\topmark}% \xdef\@firstcoltopmark{\the\toks@}% \toks@\expandafter{\splitfirstmark}% \xdef\@firstcolfirstmark{\the\toks@}% \ifx\@firstcolfirstmark\@empty \global\let\@setmarks\relax \else \gdef\@setmarks{% \let\firstmark\@firstcolfirstmark \let\topmark\@firstcoltopmark}% \fi \else \global\@firstcolumntrue \setbox\@outputbox\vbox{% \hb@xt@\textwidth{% \hb@xt@\columnwidth{% \bidi@firstcolumn@status@write% \box\@leftcolumn \hss}% \hfil {\normalcolor\vrule \@width\columnseprule}% \hfil \hb@xt@\columnwidth{% \bidi@lastcolumn@status@write% \box\@outputbox \hss}}}% \ifvoid\hold@viper \else \setbox\@outputbox \vbox to\textheight{% \box\hold@viper \box\@outputbox \vss }% \fi \@combinedblfloats \@setmarks \@outputpage \begingroup \@dblfloatplacement \@startdblcolumn \@whilesw\if@fcolmade \fi{\@outputpage \@startdblcolumn}% \ifvoid\@viper \else \global\setbox\@viper\vbox{% \vskip-\stripsep \unvbox\@viper }% \@viperoutput \fi \endgroup \fi}% \def\@addviper{% \@insertfalse \def\var@@thecol@num{2}% \if@firstcolumn \def\var@@thecol@num{1}% \@reqcolroom=.5\@pageht \ht@viper=\@reqcolroom \advance\@reqcolroom by\ht\@viper \advance\@reqcolroom by\stripsep \else \@reqcolroom=\@colht \advance\@reqcolroom by\@pageht \ht@viper.5\@reqcolroom \@reqcolroom=\ht@viper \advance\@reqcolroom by\ht\@viper \advance\@reqcolroom by\stripsep \global\setbox\@holdpg\vbox{% \setbox\cuted@@tempbox@a\vbox{% \aftergroup\unvbox \unvcopy\@leftcolumn \unskip\unkern\unpenalty \setbox\@tempboxa\lastbox \ifdim\dimexpr\ht\@tempboxa+\wd\@tempboxa+\dp\@tempboxa>\z@ %% keeps lastbox \aftergroup\@leftcolumn \else %% removes lastbox \aftergroup\cuted@@tempbox@a \fi }% \unskip\unkern\unpenalty \on@stripcols@break \the\At@ViperColsBreak \unvbox\@holdpg }% \global\At@ViperColsBreak{}% \ht@viper=.5\ht\@holdpg \ifdim\ht@viper>\@colht \ht@viper=\@colht \fi \fi %% %% calculations for breaking %% \ifvoid\hold@viper \ht@hold@viper=\z@ \else \ht@hold@viper=\ht\hold@viper \fi \cuted@@tempdim@b\ht@viper \set@split@topskip@to\topskip \loop \xdef\saved@tempdimb{\the\cuted@@tempdim@b}% \setbox\cuted@@varbox@a\copy\@holdpg \setbox\cuted@@tempbox@a\vsplit\cuted@@varbox@a to\cuted@@tempdim@b %% set leftcolumn boxes \setbox\cuted@@tempbox@c\vbox{\unvbox\cuted@@tempbox@a}% \setbox\cuted@@tempbox@a\vbox to\cuted@@tempdim@b{\unvcopy\cuted@@tempbox@c}% \xdef\var@@leftcolumn@badness{\the\badness}% %% set rightcolumn boxes \setbox\cuted@@varbox@c\vbox{\unvbox\cuted@@varbox@a}% \setbox\cuted@@varbox@a\vbox to\cuted@@tempdim@b{\unvcopy\cuted@@varbox@c}% \xdef\var@@rightcolumn@badness{\the\badness}% %% analyzing split goodness \cuted@@tempdim@spread=\ht\cuted@@tempbox@c \advance\cuted@@tempdim@spread by\dp\cuted@@tempbox@c \advance\cuted@@tempdim@spread by-\ht\cuted@@varbox@c \advance\cuted@@tempdim@spread by-\dp\cuted@@varbox@c \cuted@@wlog@debug{CUTED [-----]% ^^JLeft: \the\ht\cuted@@tempbox@c +\the\dp\cuted@@tempbox@c\space/\var@@leftcolumn@badness ^^JRight: \the\ht\cuted@@varbox@c +\the\dp\cuted@@varbox@c\space/\var@@rightcolumn@badness ^^JSplit: \the\cuted@@tempdim@b ^^JExtra height: \the\cuted@@tempdim@spread }% \ifnum\var@@leftcolumn@badness<\cuted@@column@badness \ifnum\var@@rightcolumn@badness<\cuted@@column@badness \cuted@@tempdim@spread=\z@ \fi \fi \ifdim\cuted@@tempdim@spread<\z@ \if@left@column@spread \if@right@column@shrink \ifdim\dimexpr\cuted@@tempdim@spread+\pageshrink>\z@ \cuted@@tempdim@a=\dimexpr\ht\cuted@@tempbox@c-0.5\cuted@@tempdim@spread\relax \else \cuted@@tempdim@a=-\dimexpr\cuted@@tempdim@spread+.5\pageshrink\relax \fi \setbox\cuted@@varbox@a\vbox to\cuted@@tempdim@a{\unvcopy\cuted@@tempbox@c}% \ifnum\badness<\cuted@@column@badness \cuted@@tempdim@b=\cuted@@tempdim@a \cuted@@tempdim@spread=\z@ \fi \cuted@@wlog@debug{CUTED [leftcolumn badness]: \number\badness\space on \the\cuted@@tempdim@a}% \setbox\cuted@@varbox@a\vbox to\cuted@@tempdim@a{\unvcopy\cuted@@varbox@c}% \cuted@@wlog@debug{CUTED [rightcolumn badness]: \number\badness\space on \the\cuted@@tempdim@a}% \else \setbox\cuted@@varbox@a\vbox to\ht\cuted@@varbox@c{% \unvcopy\cuted@@tempbox@c }% \ifnum\badness<\cuted@@column@badness \@tempdimb=\ht\cuted@@varbox@c \cuted@@tempdim@spread=\z@ \fi \cuted@@wlog@debug{CUTED [leftcolumn badness]: \number\badness on \the\ht\cuted@@varbox@c}% \setbox\cuted@@varbox@a\vbox to\ht\cuted@@varbox@c{% \unvcopy\cuted@@varbox@c }% \cuted@@wlog@debug{CUTED [rightcolumn badness]: \number\badness on \the\ht\cuted@@varbox@c}% \fi \else \if@right@column@shrink \ifdim\dimexpr\cuted@@tempdim@spread+\pageshrink<\z@ \else \cuted@@tempdim@b=\ht\cuted@@tempbox@c \cuted@@tempdim@spread=\z@ \fi \fi \fi \else \ifdim\cuted@@tempdim@spread>\z@ \ifdim\dimexpr\@tempdimb+\p@\relax>\@colht \cuted@@tempdim@b=\@colht \cuted@@tempdim@spread=\z@ \fi \fi \fi \ifdim\cuted@@tempdim@spread<\z@ \advance\cuted@@tempdim@b 1\p@ \repeat \wlog{CUTED [- LAST -]% ^^JExtra skip:\the\cuted@@tempdim@spread ^^JLeft:\the\ht\cuted@@tempbox@c/\the\dp\cuted@@tempbox@c ^^JRight:\the\ht\cuted@@varbox@c/\the\dp\cuted@@varbox@c ^^JSplit: \saved@tempdimb ^^JOutput:\the\cuted@@tempdim@b ^^JPageshrink: \the\pageshrink ^^JPagestretch: \the\pagestretch ^^J@colht:\the\@colht }% %% %% final construction of the cuted page above strip %% \setbox\cuted@@tempbox@c\vsplit\@holdpg to\saved@tempdimb \setbox\cuted@@tempbox@a\vbox to\cuted@@tempdim@b{% \cuted@@tempdim@a=\dimexpr \cuted@@tempdim@b-\ht\cuted@@tempbox@c \relax \cuted@@tempdim@spread=\dp\cuted@@tempbox@c \unvbox\cuted@@tempbox@c \ifdim\cuted@@tempdim@spread>\dp\strutbox \else \vskip-\cuted@@tempdim@spread \fi \prevdepth\z@ \hrule\@height\cuted@@page@rule width\textwidth \vskip-\cuted@@page@rule \ifdim\cuted@@tempdim@a>\z@ \if@left@column@spread \else \vss \fi \else \ifdim\cuted@@tempdim@a<\z@ \if@left@column@shrink \else \vss \fi \fi \fi }% \wlog{CUTED [output]: \the\cuted@@tempdim@b ^^JCUTED [leftcolumn badness]: \number\badness }% \setbox\cuted@@varbox@a\vbox to\cuted@@tempdim@b{% \cuted@@tempdim@a=\dimexpr \cuted@@tempdim@b-\ht\@holdpg \relax \unvbox\@holdpg \ifdim\cuted@@tempdim@a>\z@ \if@right@column@spread \else \vss \fi \else \ifdim\cuted@@tempdim@a<\z@ \if@right@column@shrink \else \vss \fi \fi \fi }% \wlog{CUTED [rightcolumn badness]: \number\badness}% \setbox\cuted@@tempbox@var\vbox{% \hb@xt@\textwidth{% \if@RTLmain \hskip \columnwidth \hfil {\normalcolor\vrule \@width\columnseprule}% \hfil \hb@xt@\columnwidth{% \vbox to\ht@viper{\box\cuted@@tempbox@a\vss}% \hss }% \hskip -\textwidth \hb@xt@\columnwidth{% \vbox to\ht@viper{\box\cuted@@varbox@a\vss}% \hss }% \hskip \columnsep \hskip \columnwidth \else \hb@xt@\columnwidth{% \vbox to\ht@viper{\box\cuted@@tempbox@a\vss}% \hss }% \hfil {\normalcolor\vrule \@width\columnseprule}% \hfil \hb@xt@\columnwidth{% \vbox to\ht@viper{\box\cuted@@varbox@a\vss}% \hss }% \fi }% }% %% %% finalize cuted page %% \ifvoid\hold@viper \global\setbox\hold@viper\vbox{% \unvbox\cuted@@tempbox@var \penalty\interlinepenalty \vskip\stripsep \the\preCutedStrip \ifnum\outputpenalty<-\@Mii \vskip -\parskip \fi \outputpenalty\z@ }% \else \global\setbox\hold@viper\vbox{% \unvbox\hold@viper \cuted@@tempbox@var \penalty\interlinepenalty \vskip\stripsep \the\preCutedStrip \ifnum\outputpenalty<-\@Mii \vskip -\parskip \fi \outputpenalty\z@ }% \fi \ifdim\@colht>\@reqcolroom \global\setbox\hold@viper\vbox{% \unvbox\hold@viper \box\@viper \penalty\interlinepenalty \the\postCutedStrip \vskip\stripsep \ifnum\outputpenalty<-\@Mii \vskip -\parskip \fi \outputpenalty\z@ }% \@inserttrue \global\@firstcolumntrue \advance\ht@hold@viper by-\ht\hold@viper \global\advance\@colht by\ht@hold@viper \ifdim\@colht<2.5\baselineskip \@latex@warning@no@line {Optional argument of \noexpand\twocolumn too tall on page \thepage (\var@@thecol@num column)}% \@emptycol \if@firstcolumn \else \@emptycol \fi \global\@lastvipertrue \else \global\vsize\@colht \global\@colroom\@colht \check@floats\cuted@@tempdim@a \ifdim\cuted@@tempdim@a>\z@ \global\advance\@colroom by-\cuted@@tempdim@a \fi \ifdim\@colroom<\z@ \global\@colroom1\p@ \ifdim\cuted@@tempdim@a>\@colht \@latex@warning@no@line{TOP and/or BOT FLOAT's to large on \thepage (\var@@thecol@num column)}% \fi \@emptycol \if@firstcolumn \else \@emptycol \fi \global\@lastvipertrue \fi \fi \fi \if@insert \else \advance\ht@hold@viper by-\ht\hold@viper \global\advance\@colht by\ht@hold@viper \global\setbox\hold@viper\vbox{% \unvbox\hold@viper \set@split@topskip@to{\z@ plus2\p@}% \vsplit\@viper to\@colht \vss }% \vbox{}% \global\@firstcolumnfalse \newpage \fi } \endinput %% %% End of file `cuted-xetex-bidi.def'.