summaryrefslogtreecommitdiff
path: root/macros/latex209/contrib/loval/loval.sty
blob: 1ce1ed535ab51d201ff372bb44242d2de495796c (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%                                                                              %
%        LOVAL.STY            \copyright by Elmar Schal\"{u}ck                 %
%        Version 1.1                      February 1991                        %
%                                                                              %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\message{LOVAL.STY Ver 1.1         Feb 1991  Elmar Schal\"{u}ck}
\catcode`\@=11          % Make @ a letter
\newbox\@tmpbox         % to save a box
\newdimen\@tmpdimd        % dimen of depth
\newdimen\@tmpdimh        % dimen of height
\newdimen\@tmpdimw        % dimen of width
\newdimen\@oldunitl                 \newcount\@textw%
\newcount\@texth                    \newcount\@textd%
\newcount\@xoffs                    \newcount\@yoffs%
\newcount\@xoval                    \newcount\@yoval%
\newcount\@totalwidth               \newcount\@totalheight%
\newcount\@xovaloffs                \newcount\@horline%
\newcount\@ytextoffs                \newcount\@xtextoffs%
\newcount\@fboxcount                \newcount\@wholecount
\newcount\@stdoffs                  %
\newdimen\@em%
%
% \ovalbox#1 defines a box with round corners to enclose #1
%
\long\def\ovalbox#1{\relax\leavevmode    %
 \@oldunitl=\unitlength                  % save old unitlength
 \unitlength.01pt                        % interim value for precision
 \@em=1em                                % 1 em
 \@stdoffs=\@em                          %
 \divide\@stdoffs by \unitlength         % to avoid unwanted glues
 \divide\@stdoffs by10                   %
 \multiply\@stdoffs by 3                 % 0.3em
 \setbox\@tmpbox\hbox{#1}                % make #1 a box
 \@tmpdimd=\dp\@tmpbox                   % depth of box, i.e. the part beneath
                                         % the baseline
 \@tmpdimh=\ht\@tmpbox                   % part above baseline
 \@tmpdimw=\wd\@tmpbox                   % width of box
 \@textw=\@tmpdimw\divide\@textw by\unitlength
 \@texth=\@tmpdimh\divide\@texth by\unitlength
 \@textd=\@tmpdimd\divide\@textd by\unitlength
 \@fboxcount=\fboxsep\divide\@fboxcount by\unitlength
 \@wholecount=\@wholewidth\divide\@wholecount by\unitlength
 \advance\@texth by \@textd
 \advance\@tmpdimh by\@tmpdimd           % total height of original box
 \@xoval=\@fboxcount\@yoval=\@texth      % diametervalues of \oval
 \advance\@yoval by \@fboxcount          % xoval for width
 \advance\@yoval by \@fboxcount          % yoval for height
 \@xoffs=\@xoval\divide\@xoffs by 2      %
 \advance\@xoffs by -\@stdoffs           % where to place left oval
 \@yoffs=\@yoval\divide\@yoffs by 2      % middle of ovalheight
 \@horline=\@fboxcount                   %
 \advance\@horline by \@textw            % length of horiz. line
 \advance\@tmpdimd by\fboxsep            %
 \advance\@tmpdimd by\@wholewidth        % total depth of box
 \@ytextoffs=\@textd                     %
 \advance\@ytextoffs  by\@wholecount     % baseline in picturevalues
 \advance\@ytextoffs  by\@fboxcount      %
 \@xtextoffs=\@fboxcount                 % where to put original text
 \advance\@xtextoffs by -\@stdoffs       %
 \@totalwidth=\@wholecount               %
 \advance\@totalwidth by \@fboxcount     %
 \advance\@totalwidth by \@totalwidth    %
 \advance\@totalwidth by \@textw         %
 \advance\@totalwidth by -\@stdoffs      %
 \advance\@totalwidth by -\@stdoffs      % width of picture enviroment
 \@totalheight=\@wholecount              %
 \advance\@totalheight by \@fboxcount    %
 \advance\@totalheight by \@totalheight  %
 \advance\@totalheight by \@texth        % height of picture enviroment
 \hbox{\lower\@tmpdimd                   % put a box beneath baseline
  \hbox%
   {\relax%
    \begin{picture}(\@totalwidth,\@totalheight)           %
    \put(\@xoffs,\@yoffs){\oval(\@xoval,\@yoval)[l]}      % left oval
    \put(\@xoffs,0){\line(1,0){\@horline}}                % lower line
    \put(\@xoffs,\@yoval){\line(1,0){\@horline}}          % upper line
    \put(\@xtextoffs,\@ytextoffs){#1}                     % original box
    \advance\@xoffs by \@horline                          %
    \put(\@xoffs,\@yoffs){\oval(\@xoval,\@yoval)[r]}      % right oval
    \end{picture}\relax                                   %
   }                                                      %
      }%
 \unitlength=\@oldunitl                  % restore unitlength
}                                                         %
%
\catcode`\@=12%
% reset catcode of @-sign
%
% End of LOVAL.STY
%