summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/tex/generic/genmisc/shadebox.tex
diff options
context:
space:
mode:
Diffstat (limited to 'Master/texmf-dist/tex/generic/genmisc/shadebox.tex')
-rw-r--r--Master/texmf-dist/tex/generic/genmisc/shadebox.tex171
1 files changed, 171 insertions, 0 deletions
diff --git a/Master/texmf-dist/tex/generic/genmisc/shadebox.tex b/Master/texmf-dist/tex/generic/genmisc/shadebox.tex
new file mode 100644
index 00000000000..3044d631f70
--- /dev/null
+++ b/Master/texmf-dist/tex/generic/genmisc/shadebox.tex
@@ -0,0 +1,171 @@
+%% Save file as: SHADEBOX.TEX Source: FILESERV@SHSU.BITNET
+%% Author: Leo@vaxc.cc.monash.edu.au
+%% Original Source: Posted by Jim Hefferon <HEFFERON@SMCVAX.BITNET> to
+%% INFO-TeX on Thu, 16 Jan 1992 11:21 EST
+
+%% Small (and subtle) bug correction on 25 July 2002
+%% by Danilo {\v S}egan <mm01142@alas.matf.bg.ac.yu>
+%%
+%% The mysterious factor of 65782 is number of sp in 1bp, or 1bp/1pt * 65536.
+%% 1pt - printer point 1/72.27"
+%% 1bp - ps point aka bigpoint 1/72"
+%% 65536 - a number of TeX's scaled points (sp) in 1pt.
+%%
+%% The other solution is to use temporary registers for dividing all
+%% dimensions by 1bp, but who would want to do that?
+
+
+%----------------------------------------------------------------------------
+\newbox\graybox
+\newdimen\xgrayspace
+\newdimen\ygrayspace
+%----------------------------------------------------------------------------
+%
+% The following \TeX code was based on previous work by
+%
+% Je'ro^me Maillot, maillot@bora.inria.fr
+%
+%----------------------------------------------------------------------------
+%
+% Use the following for one or more words within a line.
+%
+\def\textshade#1#2{%
+ \xgrayspace=4pt%
+ \ygrayspace=4pt%
+ \def\grayshade{0.95}%
+ \def\linewidth{1}%
+ \def\theradius{5}%
+ \setbox\graybox=\hbox{\surroundboxa{#2}}%
+ \hbox{%
+ \hbox to 0pt{%
+ \special{"gsave newpath 0 0 moveto %
+ 0 1 copy /xmin exch store %
+ \number\dp\graybox \space -65782 div 1 copy /ymin exch store %
+ \number\wd\graybox \space 65782 div 1 copy /xmax exch store %
+ \number\ht\graybox \space 65782 div 1 copy /ymax exch store %
+ \theradius\space /radius exch store
+ \linewidth\space /linewidth exch store
+ \grayshade\space /grayshade exch store
+ #1 grestore}}%
+ \box\graybox}}%
+%
+% Use the following for paragraphs.
+%
+\def\parashade#1#2{%
+ \xgrayspace=10pt%
+ \ygrayspace=10pt%
+ \def\grayshade{0.95}%
+ \def\linewidth{2}%
+ \def\theradius{10}%
+ \def\thevskip{15pt}%
+ \setbox\graybox=\hbox{\surroundboxb{#2}}%
+ \vskip\thevskip
+ \hbox{%
+ \hbox to 0pt{%
+ \special{"gsave newpath 0 0 moveto %
+ 0 1 copy /xmin exch store %
+ \number\dp\graybox \space -65782 div 1 copy /ymin exch store %
+ \number\wd\graybox \space 65782 div 1 copy /xmax exch store %
+ \number\ht\graybox \space 65782 div 1 copy /ymax exch store %
+ \theradius\space /radius exch store
+ \linewidth\space /linewidth exch store
+ \grayshade\space /grayshade exch store
+ #1 grestore}}%
+ \box\graybox}%
+ \vskip\thevskip%
+}%
+%----------------------------------------------------------------------------
+%
+% A pair of box macros. Each builds a slightly oversized box
+% containing the text. The text is centred both in the vertical
+% horizontal directions.
+%
+% Use the following for one or more words within a line.
+%
+\long\def\surroundboxa#1{\leavevmode\hbox{\vtop{%
+\vbox{\kern\ygrayspace%
+\hbox{\kern\xgrayspace#1%
+ \kern\xgrayspace}}\kern\ygrayspace}}}
+%
+% Use the following for a paragraphs.
+%
+\long\def\surroundboxb#1{\leavevmode\hbox{\vtop{%
+\vbox{\kern\ygrayspace%
+\hbox{\kern\xgrayspace\vbox{\advance\hsize-2\xgrayspace#1}%
+ \kern\xgrayspace}}\kern\ygrayspace}}}
+%----------------------------------------------------------------------------
+%
+% Here are some simple PostScript routines.
+%
+% The TeX command \PScommands must be called before any of the
+% shading routines can be used.
+%
+\long\def\PScommands{\special{! TeXDict begin
+%
+/sharpbox{%
+ newpath
+ xmin ymin moveto
+ xmin ymax lineto
+ xmax ymax lineto
+ xmax ymin lineto
+ xmin ymin lineto
+ closepath
+ }bind def
+%
+/roundbox{%
+ newpath
+ xmin radius add ymin moveto
+ xmax ymin xmax ymax radius arcto
+ xmax ymax xmin ymax radius arcto
+ xmin ymax xmin ymin radius arcto
+ xmin ymin xmax ymin radius arcto 16 {pop} repeat
+ closepath
+ }bind def
+%
+/sharpcorners{%
+ sharpbox gsave grayshade setgray fill grestore
+ linewidth setlinewidth stroke
+ }bind def
+%
+/plainbox{%
+ sharpbox grayshade setgray fill
+ }bind def
+%
+/roundcorners{%
+ roundbox gsave grayshade setgray fill grestore
+ linewidth setlinewidth stroke
+ }bind def
+%
+end}% Closes dictionnary
+}%
+
+\PScommands
+
+This is a test of a\ \textshade{roundcorners}{shaded box} routine.
+%
+This is another test of a\ \textshade{sharpcorners}{shaded box} routine
+
+\parashade{roundcorners}{%
+This is one very long line which I expect will be broken over one or more
+lines. The idea is to have this paragraph enclosed in a shaded box. I'll
+just keep on typing until I can be sure that there are more than two lines
+in this paragraph. I expect that this should be well and truely sufficient
+to test this macro.
+}
+\parashade{sharpcorners}{%
+This is one very long line which I expect will be broken over one or more
+lines. The idea is to have this paragraph enclosed in a shaded box. I'll
+just keep on typing until I can be sure that there are more than two lines
+in this paragraph. I expect that this should be well and truely sufficient
+to test this macro.
+}
+
+The field equations of General Relativity are\ %
+%
+\textshade{roundcorners}{\hbox{$G_{\mu\nu} = kT_{\mu\nu}$}}
+
+They can also be written as
+
+\parashade{sharpcorners}{$$R_{\mu\nu}-{1\over2}g_{\mu\nu}R = kT_{\mu\nu}$$}
+
+\bye