\ifx\@boxes@loaded\undefined \newdimen\YdimenA \newdimen\YdimenB \newbox\YboxA % ====================================================================== % ======================== BOITES ====================================== % ====================================================================== %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % % \borderandboxit % the first parameter is a dimension giving a border width, % the second is the rule width for the box, % and the third is a box of text. % \borderandboxit takes its third parameter and surrounds it with % a border of space on all sides then with rules. % The second parameter gives the thickness of the rules to use. % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % \def\borderandboxit#1#2#3{\vbox{\hrule \@height#2% \hbox{\vrule \@width#2 \hskip#1 \hskip-#2% \vbox{\vskip#1\relax#3\vskip#1}\hskip#1\hskip-#2% \vrule \@width#2}\hrule \@height#2}} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % % \boxrulethickness is a new dimension that gives the thickness % of the rules to be used for the boxes defined by the current % family of ruled boxes. % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % \newdimen\boxrulethickness \boxrulethickness=.4pt %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % % \Square % the parameter is a dimension. % An empty square ruled box (with rules of the \boxrulethickness), % the length of whose side is the given dimension, is set with % the bottom side on the current baseline. % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % \def\Square#1{\leavevmode\borderandboxit{\z@}% \boxrulethickness{\hbox to #1{\vbox to #1{\vss}\hss}}} \def\@carr#1#2{{\vcenter{\vbox{\hrule height.#2pt \hbox{\vrule width.#2pt height#1pt \kern#1pt \vrule width.#2pt} \hrule height.#2pt}}}} \def\carre{\mathchoice\@carr34\@carr34\@carr{2.1}3\@carr{1.5}3} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % % \boxit % the parameter is a box of text. % \boxit takes its parameter and surrounds it with approximately % \fboxsep of space on all sides then with rules. % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % \def\boxit#1{\borderandboxit{\fboxsep}\boxrulethickness{#1}} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % % \boxaround % the parameter is text (including possibly several paragraphs). % \boxaround allows its parameter to be several paragraphs; % it does some vertical spacing, then forms a box to the columnwidth % around the text. The left and right margin around the text % inside the box is \boxaroundhmargin; \boxaroundvmargin gives % the upper and lower margin. % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % \newdimen\boxaroundhmargin \newdimen\boxaroundvmargin \boxaroundhmargin=3pt % by default, this isn't much \boxaroundvmargin=3pt % by default, this isn't much \long\def\boxaround#1{\vskip6pt % {\YdimenA=\hsize \advance\YdimenA by-\boxaroundhmargin {\YdimenA=\columnwidth \advance\YdimenA by-\boxaroundhmargin \advance\YdimenA by-\boxaroundhmargin % once for each side % \setbox\YboxA=\hbox to \hsize{\hss \setbox\YboxA=\hbox to \columnwidth{\hss % \vbox{\hsize=\YdimenA \vbox{\columnwidth=\YdimenA \vskip\boxaroundvmargin #1 \vskip\boxaroundvmargin}\hss}% \borderandboxit{\z@}\boxrulethickness{\box\YboxA}}% \vskip2pt plus\z@ minus\z@} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % % \reservedbox % parameters are two dimensions which give the width and % height respectively of a reserved box. % This macro inserts a ruled vbox of the given dimensions. % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % \def\reservedbox#1#2{\par {\YdimenA=#1 \YdimenB=#2 \setbox\YboxA=\hbox to \YdimenA{\hss\vrule height \YdimenB width \z@}% \vbox to #2{\vss\hbox{\hss\borderandboxit{\z@}% \boxrulethickness{\box\YboxA}\hss}\vss}% } % extra level to localize change of dimens } %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % % \reservedcolbox % the parameter gives a dimension. % forms a \reservedbox with a width of \the\columnwidth and a % height determined by the parameter. % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % %\def\reservedcolbox#1{\reservedbox{\hsize}{#1}} \def\reservedcolbox#1{\reservedbox{\columnwidth}{#1}} \let\@boxes@loaded=\reservedcolbox \else \typeout{boxes.sty already loaded} \fi