%% %% This is file `fitbox.sty', %% generated with the docstrip utility. %% %% The original source files were: %% %% fitbox.dtx (with options: `style') %% %% IMPORTANT NOTICE: %% %% For the copyright see the source file. %% %% Any modified versions of this file must be renamed %% with new filenames distinct from fitbox.sty. %% %% For distribution of the original source see the terms %% for copying and modification in the file fitbox.dtx. %% %% This generated file may be distributed as long as the %% original source files, as listed above, are part of the %% same distribution. (The sources need not necessarily be %% in the same archive or directory.) %% Copyright 2015-2019, Boris Veytsman 0\relax \advance\@tempdima by \parskip \fi \advance\@tempdima by \abovecaptionskip \advance\@tempdima by \belowcaptionskip \edef\cmdKV@FTBX@maincapheight{\the\@tempdima}} \define@key{FTBX}{subcaplines}{% \@tempdima=\z@ \advance\@tempdima by #1\baselineskip\relax \ifnum#1>0\relax \advance\@tempdima by \parskip \fi \advance\@tempdima by \abovecaptionskip \advance\@tempdima by \belowcaptionskip \edef\cmdKV@FTBX@subcapheight{\the\@tempdima}} \def\fitboxset#1{\setkeys{FTBX}{#1}} \fitboxset{maxheight=\textheight, minheight=\fitboxnatheight, maxwidth=\hsize, minwidth=\fitboxnatwidth, belowboxspace=0pt, maxenlargepage=0pt, colsepexpr={aaa}, maincaplines=1, subcaplines=0} \newbox\FTBX@box \newdimen\FTBX@desired@maxheight \newdimen\FTBX@desired@minheight \newdimen\FTBX@available@height \def\fitbox{\@ifstar\@@fitbox\@fitbox} \newcommand\@fitbox[2][]{\noindent \fitboxset{#1}% \setbox\FTBX@box=\hbox{#2}% \fitboxnatwidth=\wd\FTBX@box\relax \fitboxnatheight=\ht\FTBX@box\relax \advance\fitboxnatheight by \dp\FTBX@box\relax % Checking the sizes \expandafter\ifdim\cmdKV@FTBX@minwidth>\columnwidth\relax \PackageWarning{fitbox}{Minimal width is too large. Consider changing it to \the\hsize}% \fi \expandafter\ifdim\cmdKV@FTBX@maxwidth>\hsize\relax \PackageWarning{fitbox}{Desired width is too large. Consider changing it to \the\hsize}% \fi \expandafter\ifdim\cmdKV@FTBX@minheight>\textheight\relax \PackageWarning{fitbox}{Minimal height is too large. Consider changing it to \the\textheight}% \fi \expandafter\ifdim\cmdKV@FTBX@maxheight>\textheight\relax \PackageWarning{fitbox}{Desired height is too large. Consider changing it to \the\textheight}% \fi % Calculating the minimal and maximal height \Gscale@div{\@FTBX@tempa}{\cmdKV@FTBX@maxwidth}{\fitboxnatwidth}% \FTBX@desired@maxheight=\@FTBX@tempa\fitboxnatheight\relax \expandafter\ifdim\cmdKV@FTBX@maxheight<\FTBX@desired@maxheight\relax \expandafter\FTBX@desired@maxheight=\cmdKV@FTBX@maxheight\relax \fi \Gscale@div{\@FTBX@tempa}{\cmdKV@FTBX@minwidth}{\fitboxnatwidth}% \FTBX@desired@minheight=\@FTBX@tempa\fitboxnatheight\relax \expandafter\ifdim\cmdKV@FTBX@minheight>\FTBX@desired@minheight\relax \expandafter\FTBX@desired@minheight=\cmdKV@FTBX@minheight\relax \fi \ifdim\FTBX@desired@minheight>\FTBX@desired@maxheight\relax \PackageWarning{fitbox}{Desired min scale exceeds desired max scale.}% \fi \FTBX@available@height=\pagegoal\relax \ifdim\FTBX@available@height>\vsize\relax \FTBX@available@height=\vsize \fi \advance\FTBX@available@height by -\pagetotal\relax \advance\FTBX@available@height by -\cmdKV@FTBX@belowboxspace\relax \advance\FTBX@available@height by -\baselineskip\relax \ifdim\FTBX@desired@maxheight>\FTBX@available@height\relax \ifdim\FTBX@available@height<\FTBX@desired@minheight\relax \@tempdima=\FTBX@desired@minheight\relax \advance\@tempdima by -\FTBX@available@height\relax \expandafter\ifdim\cmdKV@FTBX@maxenlargepage<\@tempdima\relax \newpage \resizebox*{!}{\FTBX@desired@maxheight}{\box\FTBX@box}% \else \enlargethispage{\@tempdima}% \resizebox*{!}{\FTBX@desired@minheight}{\box\FTBX@box}% \fi \else \resizebox*{!}{\FTBX@available@height}{\box\FTBX@box}% \fi \else \resizebox*{!}{\FTBX@desired@maxheight}{\box\FTBX@box}% \fi } \newcommand\@@fitbox[2][]{\noindent \fitboxset{#1}% \setbox\FTBX@box=\hbox{#2}% \fitboxnatwidth=\wd\FTBX@box\relax \fitboxnatheight=\ht\FTBX@box\relax \advance\fitboxnatheight by \dp\FTBX@box\relax % Checking the sizes \expandafter\ifdim\cmdKV@FTBX@minwidth>\columnwidth\relax \PackageWarning{fitbox}{Minimal width is too large. Consider changing it to \the\hsize}% \fi \expandafter\ifdim\cmdKV@FTBX@maxwidth>\hsize\relax \PackageWarning{fitbox}{Desired width is too large. Consider changing it to \the\hsize}% \fi \expandafter\ifdim\cmdKV@FTBX@minheight>\textheight\relax \PackageWarning{fitbox}{Minimal height is too large. Consider changing it to \the\textheight}% \fi \expandafter\ifdim\cmdKV@FTBX@maxheight>\textheight\relax \PackageWarning{fitbox}{Desired height is too large. Consider changing it to \the\textheight}% \fi % Calculating the minimal and maximal height \Gscale@div{\@FTBX@tempa}{\cmdKV@FTBX@maxwidth}{\fitboxnatwidth}% \FTBX@desired@maxheight=\@FTBX@tempa\fitboxnatheight\relax \expandafter\ifdim\cmdKV@FTBX@maxheight<\FTBX@desired@maxheight\relax \expandafter\FTBX@desired@maxheight=\cmdKV@FTBX@maxheight\relax \fi \Gscale@div{\@FTBX@tempa}{\cmdKV@FTBX@minwidth}{\fitboxnatwidth}% \FTBX@desired@minheight=\@FTBX@tempa\fitboxnatheight\relax \expandafter\ifdim\cmdKV@FTBX@minheight>\FTBX@desired@minheight\relax \expandafter\FTBX@desired@minheight=\cmdKV@FTBX@minheight\relax \fi \ifdim\FTBX@desired@minheight>\FTBX@desired@maxheight\relax \PackageWarning{fitbox}{Desired min scale exceeds desired max scale.}% \fi \resizebox*{!}{\FTBX@desired@maxheight}{\box\FTBX@box}% } \newcommand\SetFitboxLayout[3][]{% \fitboxset{#1}% \@tempdima=\textheight \advance\@tempdima by -\cmdKV@FTBX@maincapheight\relax \divide\@tempdima by #2\relax \advance\@tempdima by -\cmdKV@FTBX@subcapheight\relax \edef\cmdKV@FTBX@maxheight{\the\@tempdima}% \@tempdima=\columnwidth \@tempdimb=\cmdKV@FTBX@colsep\relax \advance\@tempdima by -#3\@tempdimb\relax \advance\@tempdima by \@tempdimb\relax \divide\@tempdima by #3\relax \edef\cmdKV@FTBX@maxwidth{\the\@tempdima}% } \endinput %% %% End of file `fitbox.sty'.