%PDF- %PDF-
| Direktori : /proc/self/root/data/old/usr/share/texlive/texmf-dist/tex/latex/bidi/ |
| Current File : //proc/self/root/data/old/usr/share/texlive/texmf-dist/tex/latex/bidi/bidituftefloat.sty |
%%
%% This is file `bidituftefloat.sty',
%% generated with the docstrip utility.
%%
%% The original source files were:
%%
%% bidi.dtx (with options: `bidituftefloat.sty')
%%
%% ______________________________________
%% Copyright © 2009–2013 Persian TeX Group
%%
%% License information appended.
%%
%%
\NeedsTeXFormat{LaTeX2e}
\ProvidesPackage{bidituftefloat}[2011/06/14 v0.1
bidi implementation of tufte float]
\RequirePackage{xifthen}
\newcommand{\@bidituftefloat@pkgname}{bidituftefloat}
\newcommand{\bidituftefloatError}[2]{\PackageError{\@bidituftefloat@pkgname}{#1}{#2}}
\newcommand{\bidituftefloatDebugInfoNL}[1]{\ifthenelse{\boolean{@bidituftefloat@debug}}{\bidituftefloatInfoNL{#1}}{}}
\newcommand{\bidituftefloatInfoNL}[1]{\PackageInfo{\@bidituftefloat@pkgname}{#1\@gobble}}
\newboolean{@bidituftefloat@RTLgeometry}
\setboolean{@bidituftefloat@RTLgeometry}{true}
\DeclareOption{RTLgeometry}{\setboolean{@bidituftefloat@RTLgeometry}{true}}
\DeclareOption{LTRgeometry}{\setboolean{@bidituftefloat@RTLgeometry}{false}}
\newboolean{@bidituftefloat@afourpaper}
\DeclareOption{a4paper}{\setboolean{@bidituftefloat@afourpaper}{true}}
\newboolean{@bidituftefloat@bfivepaper}
\DeclareOption{b5paper}{\setboolean{@bidituftefloat@bfivepaper}{true}}
\newboolean{@bidituftefloat@symmetric}
\newboolean{@bidituftefloat@twoside}
\DeclareOption{twoside}{%
\@twosidetrue \@mparswitchtrue%
\setboolean{@bidituftefloat@twoside}{true}%
\setboolean{@bidituftefloat@symmetric}{true}%
}
\DeclareOption{oneside}{%
\@twosidefalse \@mparswitchfalse%
\setboolean{@bidituftefloat@twoside}{false}%
\setboolean{@bidituftefloat@symmetric}{false}%
}
\@ifclassloaded{book}{\ExecuteOptions{twoside}}{}
\newboolean{@bidituftefloat@debug}
\newcommand*{\@bidituftefloat@caption@justification}{\@bidituftefloat@justification@autodetect}
\ProcessOptions
%% Globally sets the length
\newcommand*{\gsetlength}[2]{%
\setlength{#1}{#2}%
\global#1=#1\relax%
}
%% Globally sets a boolean
\newcommand*{\gsetboolean}[2]{% based on code from ifthen pkg
\lowercase{\def\@tempa{#2}}%
\@ifundefined{@tempswa\@tempa}%
{\PackageError{ifthen}{You can only set a boolean to `true' or `false'}\@ehc}%
{\@ifundefined{#1\@tempa}%
{\PackageError{ifthen}{Boolean #1 undefined}\@ehc}%
{\global\csname#1\@tempa\endcsname}%
}%
}
%% Set the font sizes and baselines to match bidituftefloat's books
\renewcommand\normalsize{%
\@setfontsize\normalsize\@xpt{14}%
\abovedisplayskip 10\p@ \@plus2\p@ \@minus5\p@
\abovedisplayshortskip \z@ \@plus3\p@
\belowdisplayshortskip 6\p@ \@plus3\p@ \@minus3\p@
\belowdisplayskip \abovedisplayskip
\let\@listi\@listI}
\normalbaselineskip=14pt
\normalsize
\renewcommand\footnotesize{%
\@setfontsize\footnotesize\@viiipt{10}%
\abovedisplayskip 6\p@ \@plus2\p@ \@minus4\p@
\abovedisplayshortskip \z@ \@plus\p@
\belowdisplayshortskip 3\p@ \@plus\p@ \@minus2\p@
\def\@listi{\leftmargin\leftmargini
\topsep 3\p@ \@plus\p@ \@minus\p@
\parsep 2\p@ \@plus\p@ \@minus\p@
\itemsep \parsep}%
\belowdisplayskip \abovedisplayskip
}
%% Paragraph indentation and separation for marginal text
\newcommand{\@bidituftefloat@margin@par}{%
\setlength{\RaggedRightParindent}{0.5pc}%
\setlength{\JustifyingParindent}{0.5pc}%
\setlength{\parindent}{0.5pc}%
\setlength{\parskip}{0pt}%
}
\RequirePackage{ragged2e}
\ifthenelse{\boolean{@bidituftefloat@RTLgeometry}}{%
\RequirePackage[letterpaper,right=1in,top=1in,headsep=2\baselineskip,textwidth=26pc,marginparsep=2pc,marginparwidth=12pc,textheight=44\baselineskip,headheight=\baselineskip]{geometry}
\ifthenelse{\boolean{@bidituftefloat@afourpaper}}
{\geometry{a4paper,right=24.8mm,top=27.4mm,headsep=2\baselineskip,textwidth=107mm,marginparsep=8.2mm,marginparwidth=49.4mm,textheight=49\baselineskip,headheight=\baselineskip}}
{}
\ifthenelse{\boolean{@bidituftefloat@bfivepaper}}
{\geometry{paperwidth=176mm,paperheight=250mm,right=14.66mm,top=13.88mm,textwidth=102.66mm,marginparsep=7.33mm,marginparwidth=36.66mm,textheight=38\baselineskip,includehead}}
{}}{%
\RequirePackage[letterpaper,left=1in,top=1in,headsep=2\baselineskip,textwidth=26pc,marginparsep=2pc,marginparwidth=12pc,textheight=44\baselineskip,headheight=\baselineskip]{geometry}
\ifthenelse{\boolean{@bidituftefloat@afourpaper}}
{\geometry{a4paper,left=24.8mm,top=27.4mm,headsep=2\baselineskip,textwidth=107mm,marginparsep=8.2mm,marginparwidth=49.4mm,textheight=49\baselineskip,headheight=\baselineskip}}
{}
\ifthenelse{\boolean{@bidituftefloat@bfivepaper}}
{\geometry{paperwidth=176mm,paperheight=250mm,left=14.66mm,top=13.88mm,textwidth=102.66mm,marginparsep=7.33mm,marginparwidth=36.66mm,textheight=38\baselineskip,includehead}}
{}}
\ifthenelse{\boolean{@bidituftefloat@symmetric}}
{}
{\geometry{asymmetric}}% forces internal LaTeX `twoside'
\setlength\marginparpush{10pt}
%% Font for margin items
\newcommand{\@bidituftefloat@marginfont}{\normalfont\footnotesize}
\newcommand*{\@bidituftefloat@caption@font}{\@bidituftefloat@marginfont}
\newcommand*{\setcaptionfont}[1]{\renewcommand*{\@bidituftefloat@caption@font}{#1}}
\newcommand{\@bidituftefloat@justification}{\justifying}%
\setlength\abovedisplayskip{6pt plus 2pt minus 4pt}
\setlength\belowdisplayskip{6pt plus 2pt minus 4pt}
\newboolean{@bidituftefloat@changepage}
\IfFileExists{changepage.sty}{%
\bidituftefloatDebugInfoNL{Found changepage.sty}
\RequirePackage[strict]{changepage}
\setboolean{@bidituftefloat@changepage}{true}
}{%
\bidituftefloatDebugInfoNL{Found chngpage.sty}
\RequirePackage[strict]{chngpage}
\setboolean{@bidituftefloat@changepage}{false}
}
\newboolean{@bidituftefloat@odd@page}
\setboolean{@bidituftefloat@odd@page}{true}
\newcommand*{\@bidituftefloat@checkoddpage}{%
\checkoddpage%
\ifthenelse{\boolean{@bidituftefloat@changepage}}{%
\ifoddpage%
\setboolean{@bidituftefloat@odd@page}{true}%
\else%
\setboolean{@bidituftefloat@odd@page}{false}%
\fi%
}{%
\ifcpoddpage%
\setboolean{@bidituftefloat@odd@page}{true}%
\else%
\setboolean{@bidituftefloat@odd@page}{false}%
\fi%
}%
}
\newlength{\@bidituftefloat@overhang}% used by the fullwidth environment and the running heads
\newlength{\@bidituftefloat@fullwidth}
\newlength{\@bidituftefloat@caption@fill}
\newcommand{\bidituftefloatRecalculate}{%
\setlength{\@bidituftefloat@overhang}{\marginparwidth}
\addtolength{\@bidituftefloat@overhang}{\marginparsep}
\setlength{\@bidituftefloat@fullwidth}{\textwidth}
\addtolength{\@bidituftefloat@fullwidth}{\marginparsep}
\addtolength{\@bidituftefloat@fullwidth}{\marginparwidth}
\setlength{\@bidituftefloat@caption@fill}{\textwidth}
\addtolength{\@bidituftefloat@caption@fill}{\marginparsep}
}
\AtBeginDocument{\bidituftefloatRecalculate}
\RequirePackage{optparams}% provides multiple optional arguments for commands
\RequirePackage{placeins}
\newsavebox{\@bidituftefloat@margin@floatbox}
\newenvironment{@bidituftefloat@margin@float}[2][-1.2ex]%
{\FloatBarrier% process all floats before this point so the figure/table numbers stay in order.
\begin{lrbox}{\@bidituftefloat@margin@floatbox}%
\begin{minipage}{\marginparwidth}%
\@bidituftefloat@caption@font%
\def\@captype{#2}%
\hbox{}\vspace*{#1}%
\@bidituftefloat@caption@justification%
\@bidituftefloat@margin@par%
\noindent%
}
{\end{minipage}%
\end{lrbox}%
\marginpar{\usebox{\@bidituftefloat@margin@floatbox}}%
}
\newenvironment{marginfigure}[1][-1.2ex]%
{\begin{@bidituftefloat@margin@float}[#1]{figure}}
{\end{@bidituftefloat@margin@float}}
\newenvironment{margintable}[1][-1.2ex]%
{\begin{@bidituftefloat@margin@float}[#1]{table}}
{\end{@bidituftefloat@margin@float}}
\newcommand*{\@bidituftefloat@justification@autodetect}{\justifying}%
\newcommand{\@bidituftefloat@float@debug@info}{}% contains debug info generated as the float is processed
\newcommand{\@bidituftefloat@float@debug}[1]{% adds debug info to the queue for output
\ifthenelse{\equal{\@bidituftefloat@float@debug@info}{}}%
{\def\@bidituftefloat@float@debug@info{#1}}%
{\g@addto@macro\@bidituftefloat@float@debug@info{\MessageBreak#1}}%
}
\newcommand{\floatalignment}{x}% holds the current float alignment (t, b, h, p)
\newcommand{\setfloatalignment}[1]{\global\def\floatalignment{#1}\@bidituftefloat@float@debug{Forcing position: [#1]}}% manually sets the float alignment
\newboolean{@bidituftefloat@float@recto}
\newcommand{\forcerectofloat}{\gsetboolean{@bidituftefloat@float@recto}{true}\@bidituftefloat@float@debug{Forcing page: [recto]}}
\newcommand{\forceversofloat}{\gsetboolean{@bidituftefloat@float@recto}{false}\@bidituftefloat@float@debug{Forcing page: [verso]}}
\newsavebox{\@bidituftefloat@figure@box}
\newsavebox{\@bidituftefloat@caption@box}
\let\@bidituftefloat@orig@float\@float
\let\@bidituftefloat@orig@endfloat\end@float
\newlength{\@bidituftefloat@caption@vertical@offset}
\setlength{\@bidituftefloat@caption@vertical@offset}{0pt}
\newcommand{\@bidituftefloat@stored@shortcaption}{}
\newcommand{\@bidituftefloat@stored@caption}{}
\newcommand{\@bidituftefloat@stored@label}{}
\long\def\@bidituftefloat@caption[#1][#2]#3{%
\ifthenelse{\isempty{#1}}%
{\gdef\@bidituftefloat@stored@shortcaption{#3}}%
{\gdef\@bidituftefloat@stored@shortcaption{#1}}%
\gsetlength{\@bidituftefloat@caption@vertical@offset}{-#2}% we want a positive offset to lower captions
\gdef\@bidituftefloat@stored@caption{#3}%
}
\newcommand{\@bidituftefloat@label}[1]{%
\gdef\@bidituftefloat@stored@label{#1}%
}
\newcommand{\@bidituftefloat@fps}{}
\newboolean{@bidituftefloat@float@star}
\newlength{\@bidituftefloat@float@contents@width}
\newenvironment{@bidituftefloat@float}[3][htbp]%
{% begin @bidituftefloat@float
% Should this float be full-width or just text-width?
\ifthenelse{\equal{#3}{star}}%
{\gsetboolean{@bidituftefloat@float@star}{true}}%
{\gsetboolean{@bidituftefloat@float@star}{false}}%
% Check page side (recto/verso) and store detected value -- can be overriden in environment contents
\@bidituftefloat@checkoddpage%
\ifthenelse{\boolean{@bidituftefloat@odd@page}}%
{\gsetboolean{@bidituftefloat@float@recto}{true}\@bidituftefloat@float@debug{Detected page: [recto/odd]}}%
{\gsetboolean{@bidituftefloat@float@recto}{false}\@bidituftefloat@float@debug{Detected page: [verso/even]}}%
% If the float placement specifier is 'b' and only 'b', then bottom-align the mini-pages, otherwise top-align them.
\renewcommand{\@bidituftefloat@fps}{#1}%
\@bidituftefloat@float@debug{Allowed positions: [#1]}%
\ifthenelse{\equal{#1}{b}\OR\equal{#1}{B}}%
{\renewcommand{\floatalignment}{b}\@bidituftefloat@float@debug{Presumed position: [bottom]}}%
{\renewcommand{\floatalignment}{t}\@bidituftefloat@float@debug{Presumed position: [top]}}%
% Capture the contents of the \caption and \label commands to use later
\global\let\@bidituftefloat@orig@caption\caption%
\global\let\@bidituftefloat@orig@label\label%
\renewcommand{\caption}{\optparams{\@bidituftefloat@caption}{[][0pt]}}%
\renewcommand{\label}[1]{\@bidituftefloat@label{##1}}%
% Handle subfigure package compatibility
\ifthenelse{\boolean{@bidituftefloat@packages@subfigure}}{%
% don't move the label while inside a \subfigure or \subtable command
\global\let\label\@bidituftefloat@orig@label%
}{}% subfigure package is not loaded
\@bidituftefloat@orig@float{#2}[#1]%
\ifthenelse{\boolean{@bidituftefloat@float@star}}%
{\setlength{\@bidituftefloat@float@contents@width}{\@bidituftefloat@fullwidth}}%
{\setlength{\@bidituftefloat@float@contents@width}{\textwidth}}%
\begin{lrbox}{\@bidituftefloat@figure@box}%
\begin{minipage}[\floatalignment]{\@bidituftefloat@float@contents@width}\hbox{}%
}{% end @bidituftefloat@float
\par\hbox{}\vspace{-\baselineskip}\ifthenelse{\prevdepth>0}{\vspace{-\prevdepth}}{}% align baselines of boxes
\end{minipage}%
\end{lrbox}%
% build the caption box
\begin{lrbox}{\@bidituftefloat@caption@box}%
\begin{minipage}[\floatalignment]{\marginparwidth}\hbox{}%
\ifthenelse{\NOT\equal{\@bidituftefloat@stored@caption}{}}{\@bidituftefloat@orig@caption[\@bidituftefloat@stored@shortcaption]{\@bidituftefloat@stored@caption}}{}%
\ifthenelse{\NOT\equal{\@bidituftefloat@stored@label}{}}{\@bidituftefloat@orig@label{\@bidituftefloat@stored@label}}{}%
\par\vspace{-\prevdepth}%% TODO: DOUBLE-CHECK FOR SAFETY
\end{minipage}%
\end{lrbox}%
% now typeset the stored boxes
\begin{fullwidth}%
\begin{minipage}[\floatalignment]{\linewidth}%
\ifthenelse{\boolean{@bidituftefloat@float@star}}%
{\@bidituftefloat@float@fullwidth[\@bidituftefloat@caption@vertical@offset]{\@bidituftefloat@figure@box}{\@bidituftefloat@caption@box}}%
{\@bidituftefloat@float@textwidth[\@bidituftefloat@caption@vertical@offset]{\@bidituftefloat@figure@box}{\@bidituftefloat@caption@box}}%
\end{minipage}%
\end{fullwidth}%
\@bidituftefloat@orig@endfloat% end original LaTeX float environment
% output debug info
\ifthenelse{\boolean{@bidituftefloat@debug}}{%
\typeout{^^J^^J----------- bidituftefloat package float information ----------}%
\ifthenelse{\equal{\@bidituftefloat@stored@label}{}}%
{\typeout{Warning: Float unlabeled!}}%
{\typeout{Float label: [\@bidituftefloat@stored@label]}}%
\typeout{Page number: [\thepage]}%
\def\MessageBreak{^^J}%
\typeout{\@bidituftefloat@float@debug@info}%
\ifthenelse{\boolean{@bidituftefloat@symmetric}}%
{\typeout{Symmetric: [true]}}%
{\typeout{Symmetric: [false]}}%
\typeout{----------------------------------------------------^^J^^J}%
}{}%
% reset commands and temp boxes and captions
\gdef\@bidituftefloat@float@debug@info{}%
\let\caption\@bidituftefloat@orig@caption%
\let\label\@bidituftefloat@orig@label%
\begin{lrbox}{\@bidituftefloat@figure@box}\hbox{}\end{lrbox}%
\begin{lrbox}{\@bidituftefloat@caption@box}\hbox{}\end{lrbox}%
\gdef\@bidituftefloat@stored@shortcaption{}%
\gdef\@bidituftefloat@stored@caption{}%
\gdef\@bidituftefloat@stored@label{}%
\gsetlength{\@bidituftefloat@caption@vertical@offset}{0pt}% reset caption offset
}
\newcommand{\@bidituftefloat@float@textwidth}[3][0pt]{%
\ifthenelse{\NOT\boolean{@bidituftefloat@symmetric}\OR\boolean{@bidituftefloat@float@recto}}{%
% asymmetric or page is odd, so caption is on the right
\hbox{%
\usebox{#2}%
\hspace{\marginparsep}%
\smash{\raisebox{#1}{\usebox{#3}}}%
}
\@bidituftefloat@float@debug{Caption position: [right]}%
}{% symmetric pages and page is even, so caption is on the left
\hbox{%
\smash{\raisebox{#1}{\usebox{#3}}}%
\hspace{\marginparsep}%
\usebox{#2}%
}
\@bidituftefloat@float@debug{Caption position: [left]}%
}%
}
\newcommand{\@bidituftefloat@float@fullwidth}[3][0pt]{%
\ifthenelse{\equal{\floatalignment}{b}}%
{% place caption above figure
\ifthenelse{\NOT\boolean{@bidituftefloat@symmetric}\OR\boolean{@bidituftefloat@float@recto}}%
{\hfill\smash{\raisebox{#1}{\usebox{#3}}}\par\usebox{#2}\@bidituftefloat@float@debug{Caption position: [above right]}}% caption on the right
{\smash{\raisebox{#1}{\usebox{#3}}}\hfill\par\usebox{#2}\@bidituftefloat@float@debug{Caption position: [above left]}}% caption on the left
}{% place caption below figure
\ifthenelse{\NOT\boolean{@bidituftefloat@symmetric}\OR\boolean{@bidituftefloat@float@recto}}%
{\usebox{#2}\par\hfill\smash{\raisebox{#1}{\usebox{#3}}}\@bidituftefloat@float@debug{Caption position: [below right]}}% caption on the right
{\usebox{#2}\par\smash{\raisebox{#1}{\usebox{#3}}}\hfill\@bidituftefloat@float@debug{Caption position: [below left]}}% caption on the left
}%
}
\renewenvironment{figure}[1][htbp]%
{\ifvmode\else\unskip\fi\begin{@bidituftefloat@float}[#1]{figure}{}}
{\end{@bidituftefloat@float}}
\renewenvironment{table}[1][htbp]
{\ifvmode\else\unskip\fi\begin{@bidituftefloat@float}[#1]{table}{}}
{\end{@bidituftefloat@float}}
\renewenvironment{figure*}[1][htbp]%
{\ifvmode\else\unskip\fi\begin{@bidituftefloat@float}[#1]{figure}{star}}
{\end{@bidituftefloat@float}}
\renewenvironment{table*}[1][htbp]%
{\ifvmode\else\unskip\fi\begin{@bidituftefloat@float}[#1]{table}{star}}
{\end{@bidituftefloat@float}}
\newenvironment{fullwidth}
{\ifthenelse{\boolean{@bidituftefloat@symmetric}}%
{\ifthenelse{\boolean{@bidituftefloat@changepage}}{\begin{adjustwidth*}{}{-\@bidituftefloat@overhang}}{\begin{adjustwidth}[]{}{-\@bidituftefloat@overhang}}}%
{\begin{adjustwidth}{}{-\@bidituftefloat@overhang}}%
}%
{\ifthenelse{\boolean{@bidituftefloat@symmetric}}%
{\ifthenelse{\boolean{@bidituftefloat@changepage}}{\end{adjustwidth*}}{\end{adjustwidth}}}%
{\end{adjustwidth}}%
}
\long\def\@caption#1[#2]#3{%
\par%
\addcontentsline{\csname ext@#1\endcsname}{#1}%
{\protect\numberline{\csname the#1\endcsname}{\ignorespaces #2}}%
\begingroup%
\@parboxrestore%
\if@minipage%
\@setminipage%
\fi%
\@bidituftefloat@caption@font\@bidituftefloat@caption@justification%
\noindent\csname fnum@#1\endcsname: \ignorespaces#3\par%
%\@makecaption{\csname fnum@#1\endcsname}{\ignorespaces #3}\par
\endgroup}
%%
\DeclareRobustCommand{\@biditufteheading@newlinetospace}{%
\@ifstar{\@biditufteheading@newlinetospace@i}{\@biditufteheading@newlinetospace@i}%
}
\def\@biditufteheading@newlinetospace@i{%
\ifdim\lastskip>\z@\else\space\fi
\ignorespaces%
}
\DeclareRobustCommand{\newlinetospace}[1]{%
\let\@biditufteheading@orig@cr\\% save the original meaning of \\
\def\\{\@biditufteheading@newlinetospace}% turn \\ and \\* into \space
\let\newline\\% turn \newline into \space
#1%
\let\\\@biditufteheading@orig@cr% revert to original meaning of \\
}
\RequirePackage{fancyhdr}
\pagestyle{fancy}
\AtBeginDocument{%
\ifthenelse{\boolean{@bidituftefloat@symmetric}}
{\fancyhfoffset[LE,RO]{\@bidituftefloat@overhang}}
{\fancyhfoffset[RE,RO]{\@bidituftefloat@overhang}}
}
\renewcommand{\headrulewidth}{0pt}
\renewcommand{\footrulewidth}{0pt}
\fancyhf{} % clear header and footer fields
\ifthenelse{\boolean{@bidituftefloat@symmetric}}
{\fancyhead[LE]{\thepage\quad\textsl{\newlinetospace{\plainauthor}}}%
\fancyhead[RO]{\textsl{\newlinetospace{\plaintitle}}\quad\thepage}}%
{\fancyhead[RE,RO]{\textsl{\newlinetospace{\plaintitle}}\quad\thepage}}%
\fancypagestyle{plain}{
\fancyhf{} % clear header and footer fields
% Uncomment the following five lines of code if you want the opening page
% of the chapter to express the folio in the lower outside corner.
% \ifthenelse{\boolean{@bidituftefloat@symmetric}}
% {\fancyfoot[LE,RO]{\thepage}}
% {\fancyfoot[RE,RO]{\thepage}}
}
\fancypagestyle{empty}{
\fancyhf{} % clear header and footer fields
}
\def\morefloats{% provides a total of 52 floats
\ifthenelse{\isundefined{\bx@S}}{%
\bidituftefloatDebugInfoNL{Adding 34 more float slots.}
\newinsert\bx@S
\newinsert\bx@T
\newinsert\bx@U
\newinsert\bx@V
\newinsert\bx@W
\newinsert\bx@X
\newinsert\bx@Y
\newinsert\bx@Z
\newinsert\bx@a
\newinsert\bx@b
\newinsert\bx@c
\newinsert\bx@d
\newinsert\bx@e
\newinsert\bx@f
\newinsert\bx@g
\newinsert\bx@h
\newinsert\bx@i
\newinsert\bx@j
\newinsert\bx@k
\newinsert\bx@l
\newinsert\bx@m
\newinsert\bx@n
\newinsert\bx@o
\newinsert\bx@p
\newinsert\bx@q
\newinsert\bx@r
\newinsert\bx@s
\newinsert\bx@t
\newinsert\bx@u
\newinsert\bx@v
\newinsert\bx@w
\newinsert\bx@x
\newinsert\bx@y
\newinsert\bx@z
\gdef\@freelist{\@elt\bx@A\@elt\bx@B\@elt\bx@C\@elt\bx@D\@elt\bx@E
\@elt\bx@F\@elt\bx@G\@elt\bx@H\@elt\bx@I\@elt\bx@J
\@elt\bx@K\@elt\bx@L\@elt\bx@M\@elt\bx@N
\@elt\bx@O\@elt\bx@P\@elt\bx@Q\@elt\bx@R
\@elt\bx@S\@elt\bx@T\@elt\bx@U\@elt\bx@V
\@elt\bx@W\@elt\bx@X\@elt\bx@Y\@elt\bx@Z
\@elt\bx@a\@elt\bx@b\@elt\bx@c\@elt\bx@d\@elt\bx@e
\@elt\bx@f\@elt\bx@g\@elt\bx@h\@elt\bx@i\@elt\bx@j
\@elt\bx@k\@elt\bx@l\@elt\bx@m\@elt\bx@n
\@elt\bx@o\@elt\bx@p\@elt\bx@q\@elt\bx@r
\@elt\bx@s\@elt\bx@t\@elt\bx@u\@elt\bx@v
\@elt\bx@w\@elt\bx@x\@elt\bx@y\@elt\bx@z}%
}{% we've already added another 34 floats, so we'll add 26 more, but that's it!
\ifthenelse{\isundefined{\bx@AA}}{%
\bidituftefloatDebugInfoNL{Adding 26 more float slots.}
\newinsert\bx@AA
\newinsert\bx@BB
\newinsert\bx@CC
\newinsert\bx@DD
\newinsert\bx@EE
\newinsert\bx@FF
\newinsert\bx@GG
\newinsert\bx@HH
\newinsert\bx@II
\newinsert\bx@JJ
\newinsert\bx@KK
\newinsert\bx@LL
\newinsert\bx@MM
\newinsert\bx@NN
\newinsert\bx@OO
\newinsert\bx@PP
\newinsert\bx@QQ
\newinsert\bx@RR
\newinsert\bx@SS
\newinsert\bx@TT
\newinsert\bx@UU
\newinsert\bx@VV
\newinsert\bx@WW
\newinsert\bx@XX
\newinsert\bx@YY
\newinsert\bx@ZZ
\gdef\@freelist{\@elt\bx@A\@elt\bx@B\@elt\bx@C\@elt\bx@D\@elt\bx@E
\@elt\bx@F\@elt\bx@G\@elt\bx@H\@elt\bx@I\@elt\bx@J
\@elt\bx@K\@elt\bx@L\@elt\bx@M\@elt\bx@N
\@elt\bx@O\@elt\bx@P\@elt\bx@Q\@elt\bx@R
\@elt\bx@S\@elt\bx@T\@elt\bx@U\@elt\bx@V
\@elt\bx@W\@elt\bx@X\@elt\bx@Y\@elt\bx@Z
\@elt\bx@a\@elt\bx@b\@elt\bx@c\@elt\bx@d\@elt\bx@e
\@elt\bx@f\@elt\bx@g\@elt\bx@h\@elt\bx@i\@elt\bx@j
\@elt\bx@k\@elt\bx@l\@elt\bx@m\@elt\bx@n
\@elt\bx@o\@elt\bx@p\@elt\bx@q\@elt\bx@r
\@elt\bx@s\@elt\bx@t\@elt\bx@u\@elt\bx@v
\@elt\bx@w\@elt\bx@x\@elt\bx@y\@elt\bx@z
\@elt\bx@AA\@elt\bx@BB\@elt\bx@CC\@elt\bx@DD\@elt\bx@EE
\@elt\bx@FF\@elt\bx@GG\@elt\bx@HH\@elt\bx@II\@elt\bx@JJ
\@elt\bx@KK\@elt\bx@LL\@elt\bx@MM\@elt\bx@NN
\@elt\bx@OO\@elt\bx@PP\@elt\bx@QQ\@elt\bx@RR
\@elt\bx@SS\@elt\bx@TT\@elt\bx@UU\@elt\bx@VV
\@elt\bx@WW\@elt\bx@XX\@elt\bx@YY\@elt\bx@ZZ}%
}{%
\bidituftefloatError{You may only call \string\morefloats\space twice. See the\MessageBreak bidituftefloat package documentation for other workarounds}
{There are already 78 float slots allocated. Try using \string\FloatBarrier\space or\MessageBreak \string\clearpage\space to place some floats before creating more.}
}%
}%
}
\newboolean{@bidituftefloat@packages@subfigure}
\setboolean{@bidituftefloat@packages@subfigure}{false}
\AtBeginDocument{%
\@ifpackageloaded{subfigure}
{\gsetboolean{@bidituftefloat@packages@subfigure}{true}}
{\gsetboolean{@bidituftefloat@packages@subfigure}{false}}%
}
\AtBeginDocument{%
\@ifpackageloaded{float}{%
% Save the redefined float environment (instead of the LaTeX float environment)
\let\@bidituftefloat@orig@float\@float
\let\@bidituftefloat@orig@endfloat\end@float
% Define Tuftian float styles (with the caption in the margin)
\newcommand{\floatc@bidituftefloatplain}[2]{%
\begin{lrbox}{\@bidituftefloat@caption@box}%
\begin{minipage}[\floatalignment]{\marginparwidth}\hbox{}%
\@bidituftefloat@caption@font{\@fs@cfont #1:} #2\par%
\end{minipage}%
\end{lrbox}%
\smash{\hspace{\@bidituftefloat@caption@fill}\usebox{\@bidituftefloat@caption@box}}%
}
\newcommand{\fs@bidituftefloatplain}{%
\def\@fs@cfont{\@bidituftefloat@caption@font}%
\let\@fs@capt\floatc@bidituftefloatplain%
\def\@fs@pre{}%
\def\@fs@post{}%
\def\@fs@mid{}%
\let\@fs@iftopcapt\iftrue%
}
\let\fs@bidituftefloatplaintop=\fs@bidituftefloatplain
\let\floatc@bidituftefloatplaintop=\floatc@bidituftefloatplain
\newcommand\floatc@bidituftefloatruled[2]{%
{\@fs@cfont #1} #2\par%
}
\newcommand\fs@bidituftefloatruled{%
\def\@fs@cfont{\@bidituftefloat@caption@font}%
\let\@fs@capt\floatc@bidituftefloatplain%
\def\@fs@pre{\hrule height.8pt depth0pt width\textwidth \kern2pt}%
\def\@fs@post{\kern2pt\hrule width\textwidth\relax}%
\def\@fs@mid{}%
\let\@fs@iftopcapt\iftrue%
}
\newcommand\fs@bidituftefloatboxed{%
\def\@fs@cfont{}%
\let\@fs@capt\floatc@bidituftefloatplain%
\def\@fs@pre{%
\setbox\@currbox\vbox{\hbadness10000
\moveleft3.4pt\vbox{\advance\hsize by6.8pt
\hrule \hbox to\hsize{\vrule\kern3pt
\vbox{\kern3pt\box\@currbox\kern3pt}\kern3pt\vrule}\hrule}}
}%
\def\@fs@mid{\kern2pt}%
\def\@fs@post{}%
\let\@fs@iftopcapt\iftrue%
}
}{%
% Nothing to do
}
}
\AtBeginDocument{%
\@ifpackageloaded{algorithm}{%
% Set the float style to the Tuftian version
\ifthenelse{\equal{\ALG@floatstyle}{plain}\OR\equal{\ALG@floatstyle}{ruled}\OR\equal{\ALG@floatstyle}{boxed}}{%
\bidituftefloatInfoNL{Switching algorithm float style from \ALG@floatstyle\MessageBreak to bidituftefloat\ALG@floatstyle}%
\floatstyle{bidituftefloat\ALG@floatstyle}%
\restylefloat{algorithm}%
}{}%
}{%
% Nothing to do
}
}
\PassOptionsToPackage{caption=false}{subfig}
%%
%% Copyright © 2009–2013 Persian TeX Group <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 “maintained” (as per LPPL maintenance status)
%% by Persian TeX Group.
%%
%%
%%
%%
%% End of file `bidituftefloat.sty'.