summaryrefslogtreecommitdiff
path: root/macros/latex/contrib/shadow/shadow.sty
blob: c07d11b91558ec1610e4857050a48912a87b271a (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
%%
%% This is file `shadow.sty',
%%
%% Copyright 1994, 2003 Mauro Orlandini
%% 
%% It may be distributed and/or modified under the
%% conditions of the LaTeX Project Public License, either version 1.2
%% 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.2 or later is part of all distributions of LaTeX
%% version 1999/12/01 or later.
%% 
%%% ======================================================================
%%%  @LaTeX-style{
%%%     filename        = "shadow.sty",
%%%     version         = "1.3",
%%%     date            = "19 February 2003",
%%%     author          = "Mauro Orlandini",
%%%     address         = "TeSRE Institute/CNR
%%%                        Area della Ricerca di Bologna
%%%                        Via Gobetti 101
%%%                        40129 Bologna, Italy",
%%%     e-mail          = "orlandini@bo.iasf.cnr.it",
%%%     telephone       = "+39 51 639-8667",
%%%     FAX             = "+39 51 639-8723",
%%%     supported       = "yes",
%%%     abstract        = "The command \shabox has the same meaning of the
%%%                        LaTeX command \fbox except for the fact that a
%%%                        "shadow" is added to the bottom and the right side
%%%                        of the box. It computes the right dimension of the
%%%                        box, even if the text spans over more than one
%%%                        line; in this case a warning messagge is given.",
%%%     codetable       = "ISO/ASCII",
%%%     docstring       = "There are three parameters governing:
%%%                        1. the width of the lines delimiting the box:
%%%                           \sboxrule
%%%                        2. the separation between the edge of the box and
%%%                           its contents: \sboxsep
%%%                        3. the dimension of the shadow: \sdim
%%%                        Sintax: \shabox{<text>}
%%%                                where <text> is the text to be put in the
%%%                                framed box. It can be an entire paragraph.
%%%                        Adapted from the file dropshadow.tex by
%%%                        drstrip@cd.sandia.gov.
%%%                        V1.1  Works in a double column environment.
%%%                        V1.2  When there is an online shadow box, it
%%%                              will be centered on the line (in V1.1 the
%%%                              box was aligned with the baseline).
%%%                              (Courtesy by Mike Piff)"
%%%                        V1.3  Added a number of missing % signs
%%%                              no other cleanup done (FMi)
%%%                        
%%% }
%%% ======================================================================
%
%
\ProvidesPackage{shadow}[2003/02/19 v1.3 shadow boxes (M.O.)]

\newdimen\txtwdth  \newdimen\sht  \newdimen\shw  \newbox\shbox
\newdimen\sboxsep  \newdimen\sboxrule  \newdimen\sdim
\sboxsep  = 10pt
\sdim     = 4pt
\sboxrule = .4pt
\def\shabox#1{\setbox\@tempboxa\hbox{#1}%
\shw\wd\@tempboxa
\if@twocolumn\txtwdth\columnwidth\else\txtwdth\textwidth\fi
\ifdim\shw<\txtwdth 
  \leavevmode\setbox\@tempboxa\hbox{#1}%
\else
  \typeout{Shadow Warning: Box dimension greater than textwidth.}%
  \setbox\@tempboxa\vbox{\hsize\txtwdth\advance\hsize-2\sboxsep
    \advance\hsize-2\sboxrule \advance\hsize-2\sdim \advance\hsize-15pt#1}%
\fi
 \setbox\shbox\hbox{\@tempdima\sboxrule
     \advance\@tempdima \sboxsep \advance\@tempdima \dp\@tempboxa
    \hbox{\lower \@tempdima\hbox
   {\vbox{\hrule \@height \sboxrule
           \hbox{\vrule \@width \sboxrule \hskip\sboxsep
            \vbox{\vskip\sboxsep \box\@tempboxa\vskip\sboxsep}\hskip
                         \sboxsep\vrule \@width \sboxrule}%
                   \hrule \@height \sboxrule}}}}%
\sht\ht\shbox \advance\sht-\sdim
\leavevmode\vbox{\baselineskip0pt\lineskip0pt\vtop{%%     V1.2
                                                   %%     Added \vtop
                                                   %%     From M.Piff
             \hbox{\copy\shbox\vrule width\sdim height\sht}%
             \hbox{\kern\sdim\vrule height\sdim width \wd\shbox}}}}

\endinput