diff options
Diffstat (limited to 'Master/texmf-dist/tex/latex/adjustbox/adjustbox.sty')
-rw-r--r-- | Master/texmf-dist/tex/latex/adjustbox/adjustbox.sty | 1124 |
1 files changed, 556 insertions, 568 deletions
diff --git a/Master/texmf-dist/tex/latex/adjustbox/adjustbox.sty b/Master/texmf-dist/tex/latex/adjustbox/adjustbox.sty index 819c1cbbb99..7ce9d94a77e 100644 --- a/Master/texmf-dist/tex/latex/adjustbox/adjustbox.sty +++ b/Master/texmf-dist/tex/latex/adjustbox/adjustbox.sty @@ -1,7 +1,5 @@ -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%% Copyright (C) 2011 by Martin Scharrer <martin@scharrer.me> -%% ------------------------------------------------------------------ +%% Copyright (C) 2011-2012 by Martin Scharrer <martin@scharrer-online.de> +%% ---------------------------------------------------------------------- %% This work may be distributed and/or modified under the %% conditions of the LaTeX Project Public License, either version 1.3 %% of this license or (at your option) any later version. @@ -18,36 +16,39 @@ %% and the derived file adjustbox.sty. %% \ProvidesPackage{adjustbox}[% - 2011/11/14 - v0.8 + 2012/05/16 + v0.9 Adjusting TeX boxes (trim, clip, ...)] \RequirePackage{xkeyval} -\def\adjbox@defaultunit{bp} -\DeclareOptionX<adjbox>{defaultunit}{% - \def\adjbox@defaultunit{#1}% - \begingroup - \def\@tempa{none}% - \expandafter\endgroup - \ifx\@tempa\adjbox@defaultunit - \def\adjbox@default{\adjsetlength}% - \fi -} +\RequirePackage{adjcalc} \def\adjbox@fam{adjbox} -\DeclareOptionX<adjbox>{export}{\def\adjbox@fam{Gin}} -\DeclareOptionX<adjbox>{Export}{\AtEndOfPackage{\let\includegraphics\adjincludegraphics}} -\DeclareOptionX<adjbox>{patch}{\AtEndOfPackage{\RequirePackage{adjgrfx}}} -\DeclareOptionX<adjbox>{minimal}{\let\adjbox@maybeend\endinput} -\def\adjbox@driver{adj\Gin@driver} -\DeclareOptionX<adjbox>{pgf}{\def\adjbox@driver{adjpgf.def}} -\DeclareOptionX<adjbox>{PGF}{\def\adjbox@driver{adjpgf.def}\adjcalc@pgfmath} -\DeclareOptionX<adjbox>*{\PassOptionsToPackage\CurrentOption{graphicx}} -\let\adjbox@maybeend\relax -\input{adjcalc.sty} -\disable@keys{adjbox}{patch,export,PGF,minimal} +\DeclareOptionX<Adjbox>{export}{\def\adjbox@fam{Gin}} +\DeclareOptionX<Adjbox>{Export}{\AtEndOfPackage{\let\includegraphics\adjincludegraphics}} +\DeclareOptionX<Adjbox>{patch}{% + \PackageWarning{adjustbox}{% + The 'patch' option is now deprecated.\MessageBreak + Use the new \string\adjustimage\space or \string\adjincludegraphics\space macros instead% + \@gobble + }% +} +\DeclareOptionX<Adjbox>{minimal}{\let\adjustbox@minimal\endinput} +\DeclareOptionX<Adjbox>{pgfmath}{\AtEndOfPackage{\RequirePackage{pgf}\adjcalcset{pgfmath}}} +\DeclareOptionX<Adjbox>{calc}{\AtEndOfPackage{\RequirePackage{calc}\adjcalcset{calc}}} +\DeclareOptionX<Adjbox>{etex}{\AtEndOfPackage{\adjcalcset{etex}}} +\DeclareOptionX<Adjbox>{defaultunit}{\AtEndOfPackage{\adjcalcset{defaultunit={#1}}}} +\DeclareOptionX<Adjbox>{pgf}{\PassOptionsToPackage{pgf}{trimclip}} +\DeclareOptionX<Adjbox>{PGF}{\PassOptionsToPackage{pgf}{trimclip}\AtEndOfPackage{\RequirePackage{pgf}\adjcalcset{pgfmath}}} +\DeclareOptionX*{% + \IfFileExists{tc-\CurrentOption.def}{% + \PassOptionsToPackage\CurrentOption{trimclip}% + }{% + \PassOptionsToPackage\CurrentOption{graphicx}% + }% +} +\ProcessOptionsX*<Adjbox>\relax +\RequirePackage{trimclip} \RequirePackage{graphicx}[1999/02/16] -\RequirePackage{collectbox}[2011/08/22] -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\RequirePackage{collectbox}[2012/05/13] \newcommand*\adjustboxset{% \@ifstar {\adjbox@addkeysafter}% @@ -81,112 +82,15 @@ \fi } \let\adjbox@keysafter\@empty -\define@key{adjbox}{viewport}{% - \def\adjustbox@content{% - \adjbox@parse@v{#1}% - \adjbox@@viewport - \adjustbox@@@trimclip - }% -} -\define@key{adjbox}{trim}{% - \def\adjustbox@content{% - \adjbox@parse@v{#1}% - \adjustbox@@@trimclip - }% -} -\def\adjustbox@@@trimclip{% - \ifGin@clip - \expandafter\@clipbox - \else - \expandafter\@trimbox - \fi - \adjbox@tllx - \adjbox@tlly - \adjbox@turx - \adjbox@tury - \collectedbox - \usebox\collectedbox -} -\def\adjbox@parse@v#1{% - \adjbox@parse@@v#1 {} {} {} \\% -} -\def\adjbox@parse@@v#1 #2 #3 #4 #5\\{% - \adjbox@default\adjbox@tllx{#1}% - \ifx\@nnil#2\@nnil - \adjbox@tlly\adjbox@tllx - \adjbox@turx\adjbox@tllx - \adjbox@tury\adjbox@tlly - \else - \adjbox@default\adjbox@tlly{#2}% - \ifx\@nnil#3\@nnil - \adjbox@turx\adjbox@tllx - \adjbox@tury\adjbox@tlly - \else - \adjbox@default\adjbox@turx{#3}% - \adjbox@default\adjbox@tury{#4}% - \fi - \fi -}% -%%\newdimen\adjbox@llx -%%\newdimen\adjbox@lly -%%\newdimen\adjbox@urx -%%\newdimen\adjbox@ury -\newdimen\adjbox@tllx -\newdimen\adjbox@tlly -\newdimen\adjbox@turx -\newdimen\adjbox@tury -\def\adjbox@@viewport{% - %\advance\adjbox@tllx by -\z@ - \advance\adjbox@tlly by \dp\collectedbox - \advance\adjbox@turx by -\wd\collectedbox - \advance\adjbox@tury by -\ht\collectedbox - \adjbox@turx=-\adjbox@turx - \adjbox@tury=-\adjbox@tury -} -\newcommand\trimbox{% - \collectboxcheckenv{trimbox}% - \@ifstar - \trimbox@s - \trimbox@ -} -\def\trimbox@#1{% - \collectbox{\trimbox@@\@trimbox{#1}}% -} -\def\trimbox@s#1{% - \collectbox{\trimbox@@{\adjbox@@viewport\@trimbox}{#1}}% -} -\def\trimbox@@#1#2{% - \adjbox@parse@v{#2}% - #1% - \adjbox@tllx - \adjbox@tlly - \adjbox@turx - \adjbox@tury - \collectedbox - \usebox\collectedbox -} -\expandafter\newcommand\expandafter*\csname trimbox*\endcsname{% - \@collectboxisenv{trimbox*}% - \trimbox@s -} -\newcommand\clipbox{% - \collectboxcheckenv{clipbox}% - \@ifstar - \clipbox@s - \clipbox@ -} -\def\clipbox@#1{% - \collectbox{\trimbox@@\@clipbox{#1}}% -} -\def\clipbox@s#1{% - \collectbox{\trimbox@@{\adjbox@@viewport\@clipbox}{#1}}% -} -\expandafter\newcommand\expandafter*\csname clipbox*\endcsname{% - \@collectboxisenv{clipbox*}% - \clipbox@s -} \newcommand\adjustbox[1]{% + \begingroup + \edef\adjbox@line{\the\inputlineno}% + \let\collectbox@mode\relax + \let\collectbox@noindent\relax \collectboxcheckenv{adjustbox}% + \ifcollectboxenv\else + \let\adjustbox@noindent\relax + \fi \begingroup \adjbox@setkeys{#1}% \expandafter\expandafter\expandafter @@ -208,6 +112,7 @@ \def\adjbox@setkeys{% \setkeys*{ADJBOX}% } +\let\adjustbox@noindent\noindent \def\adjustbox@#1{% \adjbox@Width\width \adjbox@Height\height @@ -221,9 +126,11 @@ \@tempswatrue \toks@{{\adjustbox@content}}% \def\setlength{\adjsetlength}% - \setkeys{adjbox,Gin}{#1}% + \setkeys{adjbox,Gin,adjcalc}{#1}% \adjbox@esetsize + \adjustbox@noindent \the\toks@ + \endgroup } \def\adjustbox@content{% \usebox\collectedbox @@ -252,57 +159,283 @@ \newcommand*\adjincludegraphics[2][]{% \adjustbox{#1}{\Gin@clipfalse\Gin@i{#2}}% } -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\def\@trimbox#1#2#3#4#5{% - \setbox#5=\hbox{% - \adjsetlength\@tempdima{#1}% - \hskip-\@tempdima - \adjsetlength\@tempdima{\dp#5 - (#2)}% - \adjsetlength\@tempdimb{\wd#5 - (#3)}% - \adjsetlength\@tempdimc{\ht#5 - (#4)}% - \dp#5=\@tempdima - \wd#5=\@tempdimb - \ht#5=\@tempdimc - \ifdim\dp#5<\z@ - \raise\dp#5% - \else - \ifdim\ht#5<\z@ - \lower\ht#5% - \fi\fi - \box#5% +{\csname adjustbox@minimal\endcsname} +\def\adjbox@Gin@add#1{% + \def\@tempa{#1}% + \toks@\expandafter\expandafter\expandafter{\expandafter\@tempa\expandafter{\the\toks@}}% +} +\def\adjbox@Gin@Add{% + \Gin@esetsize + \@tempswatrue + \adjbox@Gin@add +} +\def\adjbox@Gin@sizeadd#1#2#3\relax{% + \ifx\@nnil#3\@nnil + \adjbox@Gin@add{#1{#2}{#2}}% + \else + \adjbox@Gin@add{#1{#2}{#3}}% + \fi +} +\define@key{adjbox}{viewport}{% + \def\adjustbox@content{% + \@trimclip{% + \ifGin@clip + \expandafter\@clipvpbox + \else + \expandafter\@viewportbox + \fi + }{#1}% }% - \ifdim\dp#5<\z@ \dp#5=\z@ \fi - \ifdim\wd#5<\z@ \wd#5=\z@ \fi - \ifdim\ht#5<\z@ \ht#5=\z@ \fi -} -\def\@clipbox#1#2#3#4#5{% - \@trimbox{#1}{#2}{#3}{#4}{#5}% - \@cliptoboxdim{#5}% -} -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\InputIfFileExists{\adjbox@driver}{% - \PackageInfo{adjustbox}{Using driver '\adjbox@driver'.}% -}{% - \input{adjpgf.def}% - \PackageInfo{adjustbox}{Using fall-back PGF driver.} } -\adjbox@maybeend -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\newcommand*\phantombox[3]{% - \begingroup +\define@key\adjbox@fam{Viewport}{% + \adjbox@Gin@Add{\trimbox@s{#1}}% +} +\define@key{adjbox}{trim}{% + \def\adjustbox@content{% + \@trimclip{% + \ifGin@clip + \expandafter\@clipbox + \else + \expandafter\@trimbox + \fi + }{#1}% + }% +} +\define@key\adjbox@fam{Trim}{% + \adjbox@Gin@Add{\trimbox@{#1}}% +} +\define@key\adjbox@fam{Clip}{% + \adjbox@Gin@Add{\clipbox@{#1}}% +} +\define@key\adjbox@fam{Clip*}{% + \adjbox@Gin@Add{\clipbox@s{#1}}% +} +\define@key\adjbox@fam{margin}{% + \adjbox@Gin@Add{\marginbox@{#1}}% +} +\define@key\adjbox@fam{margin*}{% + \adjbox@Gin@Add{\marginbox@s{#1}}% +} +\define@key\adjbox@fam{padding}{% + \adjbox@Gin@Add{\marginbox@{#1}}% +} +\define@key\adjbox@fam{padding*}{% + \adjbox@Gin@Add{\marginbox@s{#1}}% +} +\define@key\adjbox@fam{scale}{% + \@ifnextchar\bgroup{% + \adjbox@scale@xy + }{% + \adjbox@scale@x + }#1\@nnil +} +\def\adjbox@scale@x#1\@nnil{% + \adjbox@scale@xy{#1}{#1}\@nnil% +} +\def\adjbox@scale@xy#1#2\@nnil{% + \if@tempswa + \adjbox@Gin@add{\Gscale@box{#1}[{#2}]}% + \else + \def\Gin@req@sizes{% + \def\Gin@scalex{#1}\def\Gin@scaley{#2}% + \Gin@req@height\Gin@scaley\Gin@nat@height + \Gin@req@width\Gin@scalex\Gin@nat@width}% + \fi + \@tempswatrue +} +\define@key\adjbox@fam{reflect}[]{% + \adjbox@scale@xy{-1}{1}\@nnil +} +\expandafter\let\csname KV@\adjbox@fam @rotate\endcsname\KV@Gin@angle +\def\adjbox@halign#1#2#3{% + \Gin@esetsize + \@tempswatrue \adjsetlength\@tempdima{#1}% - \adjsetlength\@tempdimb{#2}% - \adjsetlength\@tempdimc{#3}% - \setbox\collectedbox\hbox{}% - \wd\collectedbox\@tempdima - \ht\collectedbox\@tempdimb - \dp\collectedbox\@tempdimc + \edef\@tempa{\leavevmode\hb@xt@\the\@tempdima}% + \toks@\expandafter\expandafter\expandafter{\expandafter\@tempa\expandafter{\expandafter#2\the\toks@#3}}% +} +\define@key\adjbox@fam{center}[\linewidth]{% + \adjbox@halign{#1}\hss\hss +} +\define@key\adjbox@fam{left}[\linewidth]{% + \adjbox@halign{#1}\relax\hss +} +\define@key\adjbox@fam{right}[\linewidth]{% + \adjbox@halign{#1}\hss\relax +} +\define@key\adjbox@fam{outer}[\linewidth]{% + \def\@tempa{\adjbox@halign{#1}}% + \if@twoside + \adjbox@ifoddpage + {\@tempa\hss\relax}% + {\@tempa\relax\hss}% + \else + \@tempa\hss\hss + \fi +} +\define@key\adjbox@fam{inner}[\linewidth]{% + \def\@tempa{\adjbox@halign{#1}}% + \if@twoside + \adjbox@ifoddpage + {\@tempa\relax\hss}% + {\@tempa\hss\relax}% + \else + \@tempa\hss\hss + \fi +} +\def\adjbox@ifoddpage{% + \begingroup + \adjbox@checkoddpage + \expandafter\endgroup + \ifoddpage + \expandafter\@firstoftwo + \else + \expandafter\@secondoftwo + \fi +} +\def\adjbox@checkoddpage{% + \ifodd\c@page + \oddpagetrue + \else + \oddpagefalse + \fi +}% +\newif\ifoddpage +\AtBeginDocument{% + \@ifpackageloaded{changepage}{\let\adjbox@checkoddpage\checkoddpage}% + {\@ifpackageloaded{chngpage}{\let\adjbox@checkoddpage\checkoddpage}{}}% +}% +\define@key\adjbox@fam{raise}{% + \@ifnextchar\bgroup{% + \adjbox@raise + }{% + \adjbox@raise{#1}{}{}% + }#1{}{}{}\@nnil +} +\def\adjbox@raise#1#2#3#4\@nnil{% + \adjbox@Gin@Add{\adjbox@raisebox{#1}{#2}{#3}}% +} +\define@key\adjbox@fam{valign}{% + \csname adjbox@valign@#1\endcsname +} +\def\adjbox@raisebox#1#2#3{% + \collectbox{\adjbox@@raisebox{#1}{#2}{#3}}% +} +\def\adjbox@@raisebox#1#2#3{% + \ifx\@nnil#1\@nnil + \setbox\@tempboxa\copy\collectedbox + \else + \adjsetlength\@tempdima{#1}% + \setbox\@tempboxa\hbox{\raise\@tempdima\copy\collectedbox}% + \fi + \ifx\@nnil#2\@nnil\else + \adjsetlength\@tempdima{#2}% + \ht\@tempboxa\@tempdima + \fi + \ifx\@nnil#3\@nnil\else + \adjsetlength\@tempdima{#3}% + \dp\@tempboxa\@tempdima + \fi + \box\@tempboxa +} +\def\adjboxvtop{\ht\strutbox} +\def\adjboxvcenter{1ex} +\def\adjboxvbottom{-\dp\strutbox} +\def\adjbox@valign@t{% + \adjbox@Gin@Add{\adjbox@raisebox{-\height+\adjboxvtop}{}{}}% +} +\def\adjbox@valign@T{% + \adjbox@Gin@Add{\adjbox@raisebox{-\height}{}{}}% +} +\def\adjbox@valign@M{% + \adjbox@Gin@Add{\adjbox@raisebox{.5\depth-.5\height}{}{}}% +} +\def\adjbox@valign@m{% + \adjbox@Gin@Add{\adjbox@raisebox{.5\depth-.5\height+\adjboxvcenter}{}{}}% +} +\def\adjbox@valign@c{% + \adjbox@Gin@Add{\@collectbox\adjbox@vcenter}% +} +\def\adjbox@vcenter{% \leavevmode - \box\collectedbox - \endgroup + \hbox{% + $\vcenter{\hbox{\BOXCONTENT}}\m@th$ + }% +} +\def\adjbox@valign@b{% + \adjbox@Gin@Add{\adjbox@raisebox{\depth+\adjboxvbottom}{}{}}% +} +\def\adjbox@valign@B{% + \adjbox@Gin@Add{\adjbox@raisebox{\depth}{}{}}% +} +\define@key\adjbox@fam{set height}{% + \adjbox@Gin@Add{\adjbox@raisebox{}{#1}{}}% +} +\define@key\adjbox@fam{set depth}{% + \adjbox@Gin@Add{\adjbox@raisebox{}{}{#1}}% +} +\define@key\adjbox@fam{set vsize}{% + \adjbox@Gin@Add{\adjbox@raisebox{}#1}% +} +\define@key\adjbox@fam{vspace}{% + \adjbox@vskip#1 {} \@nnil{}% +} +\define@key\adjbox@fam{vspace*}{% + \adjbox@vskip#1 {} \@nnil*% +} +\def\adjbox@vskip#1 #2 #3\@nnil#4{% + \ifx\@nnil#2\@nnil + \adjust@addcode{\par\vspace#4{#1}\noindent}{\par\vspace#4{#1}}% + \else + \adjust@addcode{\par\vspace#4{#1}\noindent}{\par\vspace#4{#2}}% + \fi +} +\define@key\adjbox@fam{min width}{% + \adjbox@Gin@Add{\@minsizebox\height{#1}!}% +} +\define@key\adjbox@fam{max width}{% + \adjbox@Gin@Add{\@maxsizebox\height{#1}!}% +} +\define@key\adjbox@fam{min height}{% + \adjbox@Gin@Add{\@minsizebox\height!{#1}}% +} +\define@key\adjbox@fam{max height}{% + \adjbox@Gin@Add{\@maxsizebox\height!{#1}}% +} +\define@key\adjbox@fam{min totalheight}{% + \adjbox@Gin@Add{\@minsizebox\totalheight!{#1}}% +} +\define@key\adjbox@fam{max totalheight}{% + \adjbox@Gin@Add{\@maxsizebox\totalheight!{#1}}% +} +\define@key\adjbox@fam{min size}{% + \adjbox@Gin@sizeadd{\@minsizebox\height}#1\relax +} +\define@key\adjbox@fam{max size}{% + \adjbox@Gin@sizeadd{\@maxsizebox\height}#1\relax +} +\define@key\adjbox@fam{min totalsize}{% + \adjbox@Gin@sizeadd{\@minsizebox\totalheight}#1\relax +} +\define@key\adjbox@fam{max totalsize}{% + \adjbox@Gin@sizeadd{\@maxsizebox\totalheight}#1\relax +} +\define@key\adjbox@fam{warn width}[\linewidth]{% + \adjust@addcode{\@collectbox{% + \@tempdima=#1\relax + \ifdim\width>\@tempdima + \advance\@tempdima by -\width + \@tempdima=-\@tempdima + \typeout{Overfull \string\hbox\space (\the\@tempdima\space too wide) in adjustbox at + \ifnum\adjbox@line=\inputlineno + line \adjbox@line + \else + lines \adjbox@line--\the\inputlineno + \fi + }% + \fi + \BOXCONTENT + }}{}% } \newcommand*\minsizebox{% \collectboxcheckenv{minsizebox}% @@ -379,20 +512,6 @@ \Gscale@box\@tempa[\@tempb]\BOXCONTENT \fi } -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\define@key\adjbox@fam{Trim}{% - \adjbox@Gin@Add{\trimbox@{#1}}% -} -\define@key\adjbox@fam{Viewport}{% - \adjbox@Gin@Add{\trimbox@s{#1}}% -} -\define@key\adjbox@fam{Clip}{% - \adjbox@Gin@Add{\clipbox@{#1}}% -} -\define@key\adjbox@fam{Clip*}{% - \adjbox@Gin@Add{\clipbox@s{#1}}% -} \define@key\adjbox@fam{frame}[{{\fboxrule}}]{% \adjbox@frame{\fboxsep\z@}#1 {} {} \relax\relax\@nnil } @@ -427,7 +546,9 @@ \relax \global\let\adjbox@checkcolor\relax \else - \PackageError{adjustbox}{Using a macro, envrionment or key with color\MessageBreak requires a color package to be loaded manually.\MessageBreak Recommended is 'xcolor' but 'color' is ok, too}{}. + \PackageError{adjustbox}{Using a macro, environment or key with color\MessageBreak + requires a color package to be loaded manually.\MessageBreak + Recommended is 'xcolor' but 'color' is ok, too}{}. \fi } \def\adjbox@@frame#1#2#3#4{% @@ -437,13 +558,8 @@ \ifx\@nnil#3\@nnil\else \adjsetlength\fboxsep{#3}% \fi - \adjsetlength\adjbox@tllx{\fboxrule + \fboxsep}% - \@marginbox - \adjbox@tllx - \adjbox@tllx - \adjbox@tllx - \adjbox@tllx - \collectedbox + \adjsetlength\tc@llx{\fboxrule + \fboxsep}% + \@marginbox\collectedbox\tc@llx\tc@llx\tc@llx\tc@llx \ifx\@nnil#4\@nnil\else \setbox\collectedbox \fi @@ -454,13 +570,8 @@ \adjbox@boxframe\width\height\depth \color@endgroup\egroup \ifx\@nnil#4\@nnil\else - \adjsetlength\adjbox@tllx{#4}% - \@marginbox - \adjbox@tllx - \adjbox@tllx - \adjbox@tllx - \adjbox@tllx - \collectedbox + \adjsetlength\tc@llx{#4}% + \@marginbox\collectedbox\tc@llx\tc@llx\tc@llx\tc@llx \BOXCONTENT \fi } @@ -489,57 +600,6 @@ }% }% } -\define@key\adjbox@fam{scale}{% - \@ifnextchar\bgroup{% - \adjbox@scale@xy - }{% - \adjbox@scale@x - }#1\@nnil -} -\def\adjbox@scale@x#1\@nnil{% - \adjbox@scale@xy{#1}{#1}\@nnil% -} -\def\adjbox@scale@xy#1#2\@nnil{% - \if@tempswa - \adjbox@Gin@add{\Gscale@box{#1}[{#2}]}% - \else - \def\Gin@req@sizes{% - \def\Gin@scalex{#1}\def\Gin@scaley{#2}% - \Gin@req@height\Gin@scaley\Gin@nat@height - \Gin@req@width\Gin@scalex\Gin@nat@width}% - \fi - \@tempswatrue -} -\define@key\adjbox@fam{reflect}[]{% - \adjbox@scale@xy{-1}{1}\@nnil -} -\expandafter\let\csname KV@\adjbox@fam @rotate\endcsname\KV@Gin@angle -\define@key\adjbox@fam{lap}{% - \@ifnextchar\bgroup{% - \adjbox@lapbox - }{% - \adjbox@lapbox{#1}{}% - }#1{}{}\@nnil -} -\def\adjbox@lapbox#1#2#3\@nnil{% - \ifx\@nnil#2\@nnil - \adjbox@Gin@Add{\lapbox{#1}}% - \else - \adjbox@Gin@Add{\lapbox[{#1}]{#2}}% - \fi -} -\define@key\adjbox@fam{rlap}[]{% - \adjbox@Gin@Add{\lapbox{\width}}% -} -\define@key\adjbox@fam{llap}[]{% - \adjbox@Gin@Add{\lapbox{-\width}}% -} -\define@key\adjbox@fam{margin}{% - \adjbox@Gin@Add{\marginbox@{#1}}% -} -\define@key\adjbox@fam{margin*}{% - \adjbox@Gin@Add{\marginbox@s{#1}}% -} \define@key\adjbox@fam{dpi}{% \adjsetlength\pdfpxdimen{1in/(#1)}% } @@ -555,69 +615,48 @@ \define@key{ADJBOX}{Execute}{% #1% } -\define@key\adjbox@fam{raise}{% - \@ifnextchar\bgroup{% - \adjbox@raise - }{% - \adjbox@raise{#1}{}{}% - }#1{}{}{}\@nnil -} -\def\adjbox@raise#1#2#3#4\@nnil{% - \adjbox@Gin@Add{\adjbox@raisebox{#1}{#2}{#3}}% -} -\define@key\adjbox@fam{valign}{% - \csname adjbox@valign@#1\endcsname +\define@key{adjbox}{Addcode}{% + \adjust@@addcode#1{}\@nnil% } -\def\adjbox@raisebox#1#2#3{% - \collectbox{\adjbox@@raisebox{#1}{#2}{#3}}% +\define@key{adjbox}{addcode}{% + \Gin@esetsize + \@tempswatrue + \adjust@@addcode#1{}\@nnil% } -\def\adjbox@@raisebox#1#2#3{% - \ifx\@nnil#1\@nnil - \setbox\@tempboxa\box\collectedbox +\long\def\adjust@@addcode#1#2#3\@nnil{% + \ifx\@nnil#3\@nnil + \adjust@addcode{#1}{#2}% \else - \adjsetlength\@tempdima{#1}% - \sbox\@tempboxa{\raise\@tempdima\box\collectedbox}% - \fi - \ifx\@nnil#2\@nnil\else - \adjsetlength\@tempdima{#2}% - \ht\@tempboxa\@tempdima - \fi - \ifx\@nnil#3\@nnil\else - \adjsetlength\@tempdima{#3}% - \dp\@tempboxa\@tempdima + \PackageError{adjustbox}{Incorrect input for key 'addcode={<code before>}{<code afterwards>}'!}% \fi - \box\@tempboxa -} -\def\adjboxvtop{\ht\strutbox} -\def\adjboxvcenter{1ex} -\def\adjboxvbottom{-\dp\strutbox} -\def\adjbox@valign@t{% - \adjbox@Gin@Add{\adjbox@raisebox{-\height+\adjboxvtop}{}{}}% } -\def\adjbox@valign@T{% - \adjbox@Gin@Add{\adjbox@raisebox{-\height}{}{}}% -} -\def\adjbox@valign@M{% - \adjbox@Gin@Add{\adjbox@raisebox{.5\depth-.5\height}{}{}}% -} -\def\adjbox@valign@m{% - \adjbox@Gin@Add{\adjbox@raisebox{.5\depth-.5\height+\adjboxvcenter}{}{}}% -} -\def\adjbox@valign@c{% - \adjbox@Gin@Add{\@collectbox\adjbox@vcenter}% +\define@key{adjbox}{precode}{% + \Gin@esetsize + \@tempswatrue + \adjust@addcode{#1}{}% } -\def\adjbox@vcenter{% - \leavevmode - \hbox{% - $\vcenter{\hbox{\BOXCONTENT}}\m@th$ - }% +\define@key{adjbox}{Precode}{% + \adjust@addcode{#1}{}% } -\def\adjbox@valign@b{% - \adjbox@Gin@Add{\adjbox@raisebox{\depth+\adjboxvbottom}{}{}}% +\define@key{adjbox}{appcode}{% + \toks@\expandafter{\the\toks@#1}% } -\def\adjbox@valign@B{% - \adjbox@Gin@Add{\adjbox@raisebox{\depth}{}{}}% +\long\def\adjust@addcode#1#2{% + \def\@tempa{#1}% + \toks@\expandafter\expandafter\expandafter{\expandafter\@tempa\expandafter{\the\toks@}#2}% +}% +\define@key\adjbox@fam{env}{% + \@ifnextchar\bgroup{% + \adjbox@addenv + }{% + \adjbox@addenv{#1}\@nnil% + \remove@to@nnil + }#1\@nnil } +\def\adjbox@addenv#1#2\@nnil{% + \def\@tempa{\begin{#1}#2}% + \toks@\expandafter\expandafter\expandafter{\expandafter\@tempa\the\toks@\end{#1}}% +}% \define@key\adjbox@fam{bgcolor}{% \adjbox@checkcolor \@ifnextchar\bgroup{% @@ -647,121 +686,53 @@ \BOXCONTENT }% }% -\define@key\adjbox@fam{set height}{% - \adjbox@Gin@Add{\adjbox@raisebox{}{#1}{}}% -} -\define@key\adjbox@fam{set depth}{% - \adjbox@Gin@Add{\adjbox@raisebox{}{}{#1}}% -} -\define@key\adjbox@fam{set vsize}{% - \adjbox@Gin@Add{\adjbox@raisebox{}#1}% -} -\def\adjbox@Gin@add#1{% - \def\@tempa{#1}% - \toks@\expandafter\expandafter\expandafter{\expandafter\@tempa\expandafter{\the\toks@}}% -} -\def\adjbox@Gin@Add{% - \Gin@esetsize - \@tempswatrue - \adjbox@Gin@add -} -\def\adjbox@Gin@sizeadd#1#2#3\relax{% - \ifx\@nnil#3\@nnil - \adjbox@Gin@add{#1{#2}{#2}}% - \else - \adjbox@Gin@add{#1{#2}{#3}}% - \fi -} -\def\adjbox@halign#1#2#3{% - \Gin@esetsize - \@tempswatrue - \adjsetlength\@tempdima{#1}% - \edef\@tempa{\hb@xt@\the\@tempdima}% - \toks@\expandafter\expandafter\expandafter{\expandafter\@tempa\expandafter{\expandafter#2\the\toks@#3}}% -} -\define@key\adjbox@fam{center}[\linewidth]{% - \adjbox@halign{#1}\hss\hss -} -\define@key\adjbox@fam{left}[\linewidth]{% - \adjbox@halign{#1}\relax\hss +\newcommand*\bgimagebox[2][]{% + \collectboxcheckenv{bgimagebox}% + \@collectbox{\@bgimagebox{#1}{#2}}% } -\define@key\adjbox@fam{right}[\linewidth]{% - \adjbox@halign{#1}\hss\relax +\def\@bgimagebox#1#2{% + \mbox{% + \lower\depth\hbox{% + \edef\@tempa{\noexpand\adjustimage + {#1,width=\the\width,totalheight=\the\totalheight}% + {#2}% + }% + \@tempa + }% + \hskip-\width% + \BOXCONTENT + }% } -\define@key\adjbox@fam{outer}[\linewidth]{% - \def\@tempa{\adjbox@halign{#1}}% - \if@twoside - \adjbox@ifoddpage - {\@tempa\hss\relax}% - {\@tempa\relax\hss}% - \else - \@tempa\hss\hss - \fi +\define@key{adjbox}{bgimage}{% + \@ifnextchar\bgroup{% + \adjbox@bgimage + }{% + \adjbox@bgimage{}{#1}% + }#1\@nnil } -\define@key\adjbox@fam{inner}[\linewidth]{% - \def\@tempa{\adjbox@halign{#1}}% - \if@twoside - \adjbox@ifoddpage - {\@tempa\relax\hss}% - {\@tempa\hss\relax}% - \else - \@tempa\hss\hss - \fi +\def\adjbox@bgimage#1#2#3\@nnil{% + \adjbox@Gin@add{\@collectbox{\@bgimagebox{#1}{#2}}}% } -\def\adjbox@ifoddpage{% - \begingroup - \adjbox@checkoddpage - \expandafter\endgroup - \ifoddpage - \expandafter\@firstoftwo - \else - \expandafter\@secondoftwo - \fi +\define@key\adjbox@fam{lap}{% + \@ifnextchar\bgroup{% + \adjbox@lapbox + }{% + \adjbox@lapbox{#1}{}% + }#1{}{}\@nnil } -\def\adjbox@checkoddpage{% - \ifodd\c@page - \oddpagetrue +\def\adjbox@lapbox#1#2#3\@nnil{% + \ifx\@nnil#2\@nnil + \adjbox@Gin@Add{\lapbox{#1}}% \else - \oddpagefalse + \adjbox@Gin@Add{\lapbox[{#1}]{#2}}% \fi -}% -\newif\ifoddpage -\AtBeginDocument{% - \@ifpackageloaded{changepage}{\let\adjbox@checkoddpage\checkoddpage}% - {\@ifpackageloaded{chngpage}{\let\adjbox@checkoddpage\checkoddpage}{}}% -}% -\define@key\adjbox@fam{min width}{% - \adjbox@Gin@Add{\@minsizebox\height{#1}!}% -} -\define@key\adjbox@fam{max width}{% - \adjbox@Gin@Add{\@maxsizebox\height{#1}!}% -} -\define@key\adjbox@fam{min height}{% - \adjbox@Gin@Add{\@minsizebox\height!{#1}}% -} -\define@key\adjbox@fam{max height}{% - \adjbox@Gin@Add{\@maxsizebox\height!{#1}}% -} -\define@key\adjbox@fam{min totalheight}{% - \adjbox@Gin@Add{\@minsizebox\totalheight!{#1}}% -} -\define@key\adjbox@fam{max totalheight}{% - \adjbox@Gin@Add{\@maxsizebox\totalheight!{#1}}% -} -\define@key\adjbox@fam{min size}{% - \adjbox@Gin@sizeadd{\@minsizebox\height}#1\relax -} -\define@key\adjbox@fam{max size}{% - \adjbox@Gin@sizeadd{\@maxsizebox\height}#1\relax } -\define@key\adjbox@fam{min totalsize}{% - \adjbox@Gin@sizeadd{\@minsizebox\totalheight}#1\relax +\define@key\adjbox@fam{rlap}[]{% + \adjbox@Gin@Add{\lapbox{\width}}% } -\define@key\adjbox@fam{max totalsize}{% - \adjbox@Gin@sizeadd{\@maxsizebox\totalheight}#1\relax +\define@key\adjbox@fam{llap}[]{% + \adjbox@Gin@Add{\lapbox{-\width}}% } -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \newcommand*\lapbox[2][\width-\@tempdimb]{% \collectboxcheckenv{lapbox}% \@collectbox{\@lapbox{#1}{#2}}% @@ -784,59 +755,6 @@ \hb@xt@\@tempdimc{\hskip\@tempdimc\hb@xt@\@tempdimb{\hss\usebox\collectedbox}\hss}% \fi } -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\newcommand\marginbox{% - \collectboxcheckenv{marginbox}% - \@ifstar - \marginbox@s - \marginbox@ -} -\def\marginbox@#1{% - \@collectbox{\marginbox@@{#1}}% -} -\def\marginbox@s#1{% - \@collectbox{\marginbox@@s{#1}}% -} -\expandafter\newcommand\expandafter*\csname marginbox*\endcsname{% - \@collectboxisenv{marginbox*}% - \marginbox@s -} -\def\marginbox@@#1{% - \adjbox@parse@v{#1}% - \@marginbox - \adjbox@tllx - \adjbox@tlly - \adjbox@turx - \adjbox@tury - \collectedbox - \usebox\collectedbox -} -\def\marginbox@@s#1{% - \adjbox@parse@v{#1}% - \@marginbox - \adjbox@tllx - \adjbox@tlly - \adjbox@turx - \adjbox@tury - \collectedbox - \raise\adjbox@tlly\copy\collectedbox -} -\def\@marginbox#1#2#3#4#5{% - \setbox#5=\hbox{% - \adjsetlength\@tempdima{#1}% - \hskip\@tempdima - \adjsetlength\@tempdima{\dp#5 + #2}% - \adjsetlength\@tempdimb{\wd#5 + #3}% - \adjsetlength\@tempdimc{\ht#5 + #4}% - \dp#5=\@tempdima - \wd#5=\@tempdimb - \ht#5=\@tempdimc - \box#5% - }% -} -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \define@key{ADJBOX}{minipage}{% \adjbox@page{minipage}{#1}% } @@ -866,35 +784,45 @@ \let\setlength\adjbox@origsetlength } \newcommand*\stackbox[1][c]{% - \collectboxcheckenv{stackbox}% - \@testopt{\@stackbox{#1}}{b}% + \collectboxcheckenv{stackbox}% + \@ifnextchar[%] + {\@stackbox{#1}}% + {\@@stackbox{#1}{b}[]}% } \def\@stackbox#1[#2]{% + \@testopt{\@@stackbox{#1}{#2}}{}% +} +\def\@@stackbox#1#2[#3]{% \collectbox@ - {\begin{varwidth}[#2]{\linewidth}\csname adjbox@halign@#1\endcsname} + {\begin{varwidth}[#2]{\linewidth}\csname adjbox@halign@#1\endcsname#3} \BOXCONTENT {\end{varwidth}}% } -\define@key{ADJBOX}{stack}[{}{}]{% - \adjbox@stack#1{}{}\@nnil +\def\adjbox@halign@c{\centering} +\def\adjbox@halign@l{\raggedright} +\def\adjbox@halign@r{\raggedleft} +\def\adjbox@halign@j{\let\\\newline} +\define@key{ADJBOX}{stack}[{}{}{}]{% + \adjbox@stack#1{}{}{}\@nnil } -\def\adjbox@stack#1#2#3\@nnil{% +\def\adjbox@stack#1#2#3#4\@nnil{% \ifx\@nnil#1\@nnil - \adjbox@@stack{c}{b}% + \adjbox@@stack{c}{b}{}% \else \ifx\@nnil#2\@nnil - \adjbox@@stack{#1}{b}% + \adjbox@@stack{#1}{b}{}% \else - \adjbox@@stack{#1}{#2}% + \adjbox@@stack{#1}{#2}{#3}% \fi\fi } -\def\adjbox@@stack#1#2{% - \def\adjbox@collectbox##1{\collectbox@{\begin{varwidth}[#2]{\linewidth}\csname adjbox@halign@#1\endcsname}{##1}{\end{varwidth}}}% +\def\adjbox@@stack#1#2#3{% + \def\adjbox@collectbox##1{% + \collectbox@{% + \begin{varwidth}[#2]{\linewidth}% + \csname adjbox@halign@#1\endcsname#3% + }{##1}{\end{varwidth}}% + }% } -\def\adjbox@halign@c{\centering} -\def\adjbox@halign@l{\raggedright} -\def\adjbox@halign@r{\raggedleft} -\def\adjbox@halign@j{\let\\\newline} \IfFileExists{varwidth.sty} {\RequirePackage{varwidth}}{% \define@key{ADJBOX}{varwidth}{% @@ -963,75 +891,135 @@ \def\adjbox@innercode#1#2{% \def\adjbox@collectbox##1{\collectbox@{#1}{##1}{#2}}% }% -\define@key{ADJBOX}{env}{% +\define@key\adjbox@fam{label}{% + \def\adjbox@label{\label{#1}}% +} +\let\adjbox@label\@empty +\define@key\adjbox@fam{caption}{% + \@ifnextchar{[}{% + \adjbox@def@caption + }{% + \adjbox@def@@caption + }#1\@nnil +} +\def\adjbox@def@@caption#1\@nnil{% + \def\adjbox@caption{\caption{#1}}% +} +\def\adjbox@def@caption[#1]#2\@nnil{% + \def\adjbox@caption{\caption[#1]{#2}}% +} +\let\adjbox@caption\@empty +\define@key\adjbox@fam{figure}[]{% + \Gin@esetsize + \@tempswafalse + \let\adjustbox@noindent\relax + \ifx\@nnil#1\@nnil + \expandafter\expandafter\expandafter\adjbox@figure + \expandafter\expandafter\expandafter{\expandafter\adjbox@caption\adjbox@label}{}% + \else + \expandafter\expandafter\expandafter\adjbox@figure + \expandafter\expandafter\expandafter{\expandafter\adjbox@caption\adjbox@label}{[#1]}% + \fi +} +\def\adjbox@figure#1#2{% + \def\@tempa{\begin{figure}#2}% + \toks@\expandafter\expandafter\expandafter{\expandafter\@tempa\the\toks@#1\end{figure}}% +} +\define@key\adjbox@fam{float}{% + \let\adjustbox@noindent\relax \@ifnextchar\bgroup{% - \adjbox@addenv + \adjbox@float }{% - \adjbox@addenv{#1}\@nnil% + \adjbox@float{#1}\@nnil \remove@to@nnil }#1\@nnil } -\def\adjbox@addenv#1#2\@nnil{% - \def\@tempa{\begin{#1}#2}% - \toks@\expandafter\expandafter\expandafter{\expandafter\@tempa\the\toks@\end{#1}}% -}% -\define@key{adjbox}{Addcode}{% - \adjust@@addcode#1{}\@nnil% +\def\adjbox@float{% + \expandafter\expandafter + \expandafter\adjbox@@float\expandafter\expandafter\expandafter{\expandafter\adjbox@caption\adjbox@label}% } -\define@key{adjbox}{addcode}{% - \Gin@esetsize - \@tempswatrue - \adjust@@addcode#1{}\@nnil% +\def\adjbox@@float#1#2#3\@nnil{% + \adjust@addcode{\begin{#2}#3}{#1\end{#2}}% } -\def\adjust@@addcode#1#2#3\@nnil{% - \ifx\@nnil#3\@nnil - \adjust@addcode{#1}{#2}% +\define@key\adjbox@fam{nofloat}[figure]{% + \def\@tempa{\adjust@addcode{\adjnofloat{#1}}}% + \expandafter\expandafter\expandafter + \@tempa\expandafter\expandafter\expandafter{\expandafter\adjbox@caption\adjbox@label\endadjnofloat}% +} +\newenvironment{adjnofloat}[1]{% + \trivlist + \def\@captype{#1}% + \item\relax + \leavevmode +}{% + \endtrivlist +} +\define@key\adjbox@fam{phantom}[]{% + \expandafter\ifx\csname #1phantom\endcsname\relax + \adjust@addcode{\phantom}{}% \else - \PackageError{adjustbox}{Incorrect input for key 'addcode={<code before>}{<code afterwards>}'!}% + \expandafter\adjust@addcode\expandafter{\csname #1phantom\endcsname}{}% \fi } -\define@key{adjbox}{precode}{% - \Gin@esetsize - \@tempswatrue - \adjust@addcode{#1}{}% +\newcommand*\phantombox[3]{% + \begingroup + \adjsetlength\@tempdima{#1}% + \adjsetlength\@tempdimb{#2}% + \adjsetlength\@tempdimc{#3}% + \setbox\collectedbox\hbox{}% + \wd\collectedbox\@tempdima + \ht\collectedbox\@tempdimb + \dp\collectedbox\@tempdimc + \leavevmode + \box\collectedbox + \endgroup } -\define@key{adjbox}{Precode}{% - \adjust@addcode{#1}{}% +\define@key\adjbox@fam{gobble}[]{% + \let\adjustbox@noindent\relax + \adjbox@Gin@Add{\@collectbox{}}% } -\define@key{adjbox}{appcode}{% - \toks@\expandafter{\the\toks@#1}% +\define@key\adjbox@fam{discard}[]{% + \let\adjustbox@noindent\relax + \adjbox@Gin@Add{\@collectbox{}}% } -\def\adjust@addcode#1#2{% - \def\@tempa{#1}% - \toks@\expandafter\expandafter\expandafter{\expandafter\@tempa\expandafter{\the\toks@}#2}% -}% -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\newcommand*\bgimagebox[2][]{% - \collectboxcheckenv{bgimagebox}% - \@collectbox{\@bgimagebox{#1}{#2}}% +\define@key\adjbox@fam{content}{% + \adjbox@Gin@Add{\@collectbox{#1}}% } -\def\@bgimagebox#1#2{% - \mbox{% - \lower\depth\hbox{% - \edef\@tempa{\noexpand\adjustimage - {#1,width=\the\width,totalheight=\the\totalheight}% - {#2}% - }% - \@tempa - }% - \hskip-\width% - \BOXCONTENT - }% +\define@key\adjbox@fam{gstore}{% + \adjbox@Gin@Add{\global\@collectboxto{#1}{\BOXCONTENT}}% } -\define@key{adjbox}{bgimage}{% - \@ifnextchar\bgroup{% - \adjbox@bgimage - }{% - \adjbox@bgimage{}{#1}% - }#1\@nnil +\define@key\adjbox@fam{gstore*}{% + \let\adjustbox@noindent\relax + \adjbox@Gin@Add{\global\@collectboxto{#1}{}}% } -\def\adjbox@bgimage#1#2#3\@nnil{% - \adjbox@Gin@add{\@collectbox{\@bgimagebox{#1}{#2}}}% +\define@key{adjbox}{gstore width}{% + \adjbox@Gin@Add{\@collectbox{\global#1=\width\BOXCONTENT}}% +} +\define@key{adjbox}{gstore depth}{% + \adjbox@Gin@Add{\@collectbox{\global#1=\depth\BOXCONTENT}}% +} +\define@key{adjbox}{gstore height}{% + \adjbox@Gin@Add{\@collectbox{\global#1=\height\BOXCONTENT}}% +} +\define@key{adjbox}{gstore totalheight}{% + \adjbox@Gin@Add{\@collectbox{\global#1=\totalheight\BOXCONTENT}}% +} +\define@key{adjbox}{gstore sizes}{% + \adjbox@Gin@Add{\@collectbox{\adjbox@gstore@sizes#1\relax\relax\relax\relax\@nnil\BOXCONTENT}}% +} +\def\adjbox@gstore@sizes#1#2#3#4#5\@nnil{% + \ifx\relax#1\relax\else + \global#1=\width + \fi + \ifx\relax#2\relax\else + \global#2=\height + \fi + \ifx\relax#3\relax\else + \global#3=\depth + \fi + \ifx\relax#4\relax\else + \global#4=\totalheight + \fi } %%\RequirePackage{storebox} \newcommand\splitbox[2]{% @@ -1064,28 +1052,28 @@ \ifdim\Gin@nat@height>\totalheight \Gin@nat@height\totalheight \fi - \adjbox@tllx\z@ - \adjbox@tlly\totalheight - \adjbox@turx\width - \adjbox@tury\z@ - \advance\adjbox@tlly-\Gin@nat@height + \tc@llx\z@ + \tc@lly\totalheight + \tc@urx\width + \tc@ury\z@ + \advance\tc@lly-\Gin@nat@height \@@splitbox } \def\@@splitbox{% - \advance\adjbox@turx-\@tempdima + \advance\tc@urx-\@tempdima \@@@splitbox - \ifdim\adjbox@turx>\z@ - \advance\adjbox@tllx+\@tempdima + \ifdim\tc@urx>\z@ + \advance\tc@llx+\@tempdima \expandafter\@@splitbox \else - \ifdim\adjbox@tlly<\splitbox@epsilon + \ifdim\tc@lly<\splitbox@epsilon \splitboxlastnewline \else \splitboxnewline - \adjbox@tllx\z@ - \adjbox@turx\width - \advance\adjbox@tlly-\Gin@nat@height - \advance\adjbox@tury+\Gin@nat@height + \tc@llx\z@ + \tc@urx\width + \advance\tc@lly-\Gin@nat@height + \advance\tc@ury+\Gin@nat@height \expandafter\expandafter \expandafter\@@splitbox \fi @@ -1094,14 +1082,14 @@ \def\@@@splitbox{% \begingroup \setbox\collectedbox=\copy\collectedbox - \@clipbox\adjbox@tllx\adjbox@tlly\adjbox@turx\adjbox@tury\collectedbox + \@clipbox\collectedbox\tc@llx\tc@lly\tc@urx\tc@ury \splitboxcmd{\usebox\collectedbox}% \endgroup } \def\@@@splitbox{% \begingroup \setbox\collectedbox=\copy\collectedbox - \@clipbox\adjbox@tllx\adjbox@tlly\adjbox@turx\adjbox@tury\collectedbox + \@clipbox\collectedbox\tc@llx\tc@lly\tc@urx\tc@ury \splitboxcmd{\usebox\collectedbox}% \endgroup } @@ -1123,32 +1111,32 @@ \storebox\splittedbox{\BOXCONTENT}% \setbox\collectedbox\hbox{\usestorebox\splittedbox}% \fi - \adjsetlength\adjbox@tlly + \adjsetlength\tc@lly {\totalheight-\pagegoal+\pagetotal+\pagebreakboxoffset}% - \ifdim\adjbox@tlly>\z@ + \ifdim\tc@lly>\z@ \begingroup \setbox\collectedbox=\copy\collectedbox - \@clipbox\z@\adjbox@tlly\z@\z@\collectedbox + \@clipbox\collectedbox\z@\tc@lly\z@\z@ \BOXCONTENT \endgroup \par\noindent - \adjsetlength\adjbox@tury{\totalheight-\adjbox@tlly}% - \ifdim\adjbox@tlly>\textheight + \adjsetlength\tc@ury{\totalheight-\tc@lly}% + \ifdim\tc@lly>\textheight \loop - \advance\adjbox@tlly-\textheight + \advance\tc@lly-\textheight \begingroup \setbox\collectedbox=\copy\collectedbox - \@clipbox\z@\adjbox@tlly\z@\adjbox@tury\collectedbox + \@clipbox\collectedbox\z@\tc@lly\z@\tc@ury \BOXCONTENT \endgroup - \advance\adjbox@tury\textheight + \advance\tc@ury\textheight \par\noindent - \ifdim\adjbox@tlly>\textheight + \ifdim\tc@lly>\textheight \repeat - \@clipbox\z@\z@\z@\adjbox@tury\collectedbox + \@clipbox\collectedbox\z@\z@\z@\tc@ury \BOXCONTENT \else - \@clipbox\z@\z@\z@\adjbox@tury\collectedbox + \@clipbox\collectedbox\z@\z@\z@\tc@ury \par\noindent \BOXCONTENT \fi |