summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/tex/latex/bidi/bidituftefloat.sty
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2016-05-02 23:39:30 +0000
committerKarl Berry <karl@freefriends.org>2016-05-02 23:39:30 +0000
commit4141c4aa83d1ead340876cdc2b8408b754bd9b69 (patch)
treeb48928c20ceb05f7a9b8bfc92b1755f20e73fb7a /Master/texmf-dist/tex/latex/bidi/bidituftefloat.sty
parenta2e546fd16ad80846377eeb25715c877e57d69c3 (diff)
bidi (2may16)
git-svn-id: svn://tug.org/texlive/trunk@40842 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/tex/latex/bidi/bidituftefloat.sty')
-rw-r--r--Master/texmf-dist/tex/latex/bidi/bidituftefloat.sty601
1 files changed, 601 insertions, 0 deletions
diff --git a/Master/texmf-dist/tex/latex/bidi/bidituftefloat.sty b/Master/texmf-dist/tex/latex/bidi/bidituftefloat.sty
new file mode 100644
index 00000000000..7ea0985f5ac
--- /dev/null
+++ b/Master/texmf-dist/tex/latex/bidi/bidituftefloat.sty
@@ -0,0 +1,601 @@
+%%
+%% This is file `bidituftefloat.sty',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% bidi.dtx (with options: `table,bidituftefloat.sty')
+%%
+%% __________________________________________________
+%% 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{46409}
+%% \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{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}
+\endinput
+%%
+%% End of file `bidituftefloat.sty'.