diff options
Diffstat (limited to 'Master/texmf-dist/tex/generic/genmisc/shadebox.tex')
-rw-r--r-- | Master/texmf-dist/tex/generic/genmisc/shadebox.tex | 171 |
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 |