%% %% This is file `collectbox.sty', %% generated with the docstrip utility. %% %% The original source files were: %% %% collectbox.dtx (with options: `collectbox') %% %% Copyright (C) 2011 by Martin Scharrer %% %% This work may be distributed and/or modified under the %% conditions of the LaTeX Project Public License, either version 1.3c %% of this license or (at your option) any later version. %% The latest version of this license is in %% %% http://www.latex-project.org/lppl.txt %% %% and version 1.3c or later is part of all distributions of LaTeX %% version 2008/05/04 or later. %% %% This work has the LPPL maintenance status `maintained'. %% %% The Current Maintainer of this work is Martin Scharrer. %% %% This work consists of the files collectbox.dtx, collectbox.ins %% and the derived file collectbox.sty. %% \NeedsTeXFormat{LaTeX2e}[1999/12/01] \ProvidesPackage{collectbox}[2011/07/30 v0.2a Collect macro arguments as boxes] \newsavebox\collectedbox \newcommand*\collectbox{% \@ifstar {\collectbox@a{{\BOXCONTENT}}}% {\collectbox@a{}}% } \long\def\collectbox@a#1{% \@ifnextchar[% {\collectbox@b{#1}}% {\collectbox@b{#1}[]}% } \long\def\collectbox@b#1[#2]#3{% \@ifnextchar[% {\collectbox@c{#2}{#3#1}}% {\collectbox@c{#2}{#3#1}[]}% } \long\def\collectbox@c#1#2[#3]{% \collectbox@{#1}{#2}{#3}% } \newcommand\collectbox@[3]{% \begingroup \leavevmode \@temptokena{#3\collectbox@end#2\endgroup}% \setbox\collectedbox\hbox\bgroup \collectbox@setgroup #1\bgroup \aftergroup\the \aftergroup\@temptokena \collectbox@bgroup } \def\collectbox@macro@bgroup{% \@ifnextchar\bgroup {\let\@let@token=}% {\collectbox@arg}% } \def\collectbox@env@bgroup{% \let\collectbox@endcode\relax \let\collectbox@bgroup\collectbox@macro@bgroup \ignorespaces } \let\collectbox@bgroup\collectbox@macro@bgroup \def\collectbox@setgroup{% \color@setgroup } \def\collectbox@endgroup{% \collectbox@endcode \color@endgroup } \let\collectbox@endcode\relax \newcommand\@collectbox[1]{% \begingroup \leavevmode \@temptokena{\collectbox@end#1\endgroup}% \setbox\collectedbox\hbox\bgroup \collectbox@setgroup\bgroup \aftergroup\the \aftergroup\@temptokena \collectbox@bgroup } \def\collectbox@arg#1{% #1\egroup } \def\collectbox@end{% \collectbox@endgroup \egroup \collectbox@protecteddef\BOXCONTENT{\usebox\collectedbox}% \collectbox@protecteddef\width{\wd\collectedbox}% \collectbox@protecteddef\height{\ht\collectedbox}% \collectbox@protecteddef\depth{\dp\collectedbox}% \collectbox@protecteddef\totalheight{\@ovri}% \totalheight\height \advance\totalheight\depth } \begingroup \expandafter\ifx\csname protected\endcsname\relax \let\collectbox@protecteddef\def% \else \gdef\collectbox@protecteddef{\protected\def}% \fi \endgroup \let\collectbox@code\empty \newcommand\collectboxto[1]{% \@ifnextchar[% {\collectboxto@a{#1}}% {\collectboxto@a{#1}[]}% } \long\def\collectboxto@a#1[#2]#3{% \@ifnextchar[% {\collectboxto@b{#1}{#2}{#3}}% {\collectboxto@b{#1}{#2}{#3}[]}% } \long\def\collectboxto@b#1#2#3[#4]{% \collectboxto@{#1}{#2}{#3}{#4}% } \newcommand\collectboxto@[4]{% \leavevmode \setbox#1\hbox\bgroup \def\collectbox@code{#4\collectbox@endgroup\egroup#3}% \collectbox@setgroup#2\bgroup \aftergroup\collectbox@code \collectbox@bgroup } \newcommand\@collectboxto[2]{% \leavevmode \setbox#1\hbox\bgroup \def\collectbox@code{\collectbox@endgroup\egroup#2}% \collectbox@setgroup\bgroup \aftergroup\collectbox@code \collectbox@bgroup } \newcommand\nocollectbox@[3]{% \leavevmode \hbox\bgroup \def\collectbox@code{#3\egroup#2}% #1\bgroup \aftergroup\collectbox@code \collectbox@bgroup } \newcommand*\collectboxcheckenv[1]{% \begingroup \def\@tempa{#1}% \ifx\@currenvir\@tempa \edef\@currenvir{\@currenvir\noexpand\empty}% \let\collectbox@bgroup\collectbox@env@bgroup \def\collectbox@endcode{\ifhmode\unskip\fi}% \ifcsname end#1\endcsname\else \@namedef{end#1}{\egroup\endgroup}% \fi \else \endgroup \fi } \endinput %% %% End of file `collectbox.sty'.