Retour

Source de boxit.tex

Fichier TeX
%% fichier 'boxit.tex'
% pbm : la macro \boxit ne respecte pas la ligne de base
% (voir fichier 'plot.tex' dans le repertoire Bug)

\newdimen \boxwidthrule \boxwidthrule .4pt

%% 20 Mai 97 : modif d'un bogue dans les dimensions de \boxit (ref a
%% \dimen 1 au lieu de \dimen 101)

\long\def \boxit#1#2{%              Syntaxe : \boxit{1pt}{a encadrer}
   \setbox101=
      \hbox{\kern#1{#2}\kern#1}%
   \dimen101=\ht101
   \advance \dimen101 by #1
   \dimen102=\dp101
   \advance \dimen102 by #1
   \setbox101=
      \hbox{\vrule height \dimen101 depth \dimen102 width \boxwidthrule
            \box101
            \vrule width \boxwidthrule}%
   \setbox101=
      \vbox{\hrule height \boxwidthrule
            \box101
            \hrule height \boxwidthrule}%
   \advance \dimen101 by .4pt
   \ht101=\dimen101
   \advance \dimen102 by .4pt
   \dp101=\dimen102
   \box101 \relax}%

\newdimen \decal

\long \def \superboxit#1#2{%
   \decal = 3pt
   \setbox1 = \hbox{%
      \boxit{#1}{#2}}
   \dimen10 = \ht1
   \advance \dimen10 by -\decal
   \dimen11 = \dp1
   \dimen12 = \wd1
%   \showbox1
%   \showdim1
   \setbox2 = \hbox{%
      \box1
      \vrule height \dimen10 depth \dimen11 width \decal}
%   \showbox2
   \setbox3 = \hbox to \wd2{%
      \hfill
      \vrule height 0pt depth \decal width \dimen12}
%   \showbox3
   \bgroup
   \lineskip=0pt
   \baselineskip=0pt
   \lineskiplimit=0pt
   \setbox4 = \vbox{%
%      \offinterlineskip
      \box2
%      \hrule height 0pt depth 0pt
%      \nointerlineskip
      \box3}
%   \showbox4
%   \bigskip
   \box4
   \egroup}
%
%% Apparemment big probleme lors de la construction de la boite 4 :
%% si on ne met pas la \hrule d'epaisseur nulle, TeX rajoute de la 
%% glue entre les \hbox ??? Solution bricolage actuelle : on annule
%% les deux baramètres \lineskip et \baselineskip