summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/source/generic/pst-fr3d
diff options
context:
space:
mode:
Diffstat (limited to 'Master/texmf-dist/source/generic/pst-fr3d')
-rw-r--r--Master/texmf-dist/source/generic/pst-fr3d/pst-fr3d.dtx837
-rw-r--r--Master/texmf-dist/source/generic/pst-fr3d/pst-fr3d.ins37
2 files changed, 874 insertions, 0 deletions
diff --git a/Master/texmf-dist/source/generic/pst-fr3d/pst-fr3d.dtx b/Master/texmf-dist/source/generic/pst-fr3d/pst-fr3d.dtx
new file mode 100644
index 00000000000..346c207efc5
--- /dev/null
+++ b/Master/texmf-dist/source/generic/pst-fr3d/pst-fr3d.dtx
@@ -0,0 +1,837 @@
+% \iffalse meta-comment, etc.
+%%
+%% Package `pst-fr3d.dtx'
+%%
+%% Denis Girou (CNRS/IDRIS - France) <Denis.Girou@idris.fr>
+%%
+%% February 25, 2002
+%%
+%% This program can be redistributed and/or modified under the terms
+%% of the LaTeX Project Public License Distributed from CTAN archives
+%% in directory macros/latex/base/lppl.txt.
+%%
+%% DESCRIPTION:
+%% `pst-fr3d' is a PSTricks package to draw three dimensional grids
+%% with various customizations.
+%%
+% \fi
+%
+% \DoNotIndex{\\,\^,\@}
+% \DoNotIndex{\@ifnextchar,\@nameuse,\@nil,\@undefined}
+% \DoNotIndex{\advance}
+% \DoNotIndex{\begin}
+% \DoNotIndex{\catcode,\CodelineIndex,\csname}
+% \DoNotIndex{\def,\define@key,\definecolor,\divide,\DocInput}
+% \DoNotIndex{\documentclass,\dp}
+% \DoNotIndex{\edef,\else,\EnableCrossrefs,\end,\endcsname,\endinput}
+% \DoNotIndex{\endpspicture}
+% \DoNotIndex{\fi,\filedate,\fileversion}
+% \DoNotIndex{\GetFileInfo}
+% \DoNotIndex{\hbadness,\hbox,\hfuzz,\ht}
+% \DoNotIndex{\ifdim,\ifx,\input}
+% \DoNotIndex{\let}
+% \DoNotIndex{\message}
+% \DoNotIndex{\newhsbcolor,\newif}
+% \DoNotIndex{\OnlyDescription}
+% \DoNotIndex{\p@,\ProvidesPackage,\psframebox,\psframesep}
+% \DoNotIndex{\psline,\pslinewidth,\pspolygon,\psset,\PstAtCode,\pst@boxg}
+% \DoNotIndex{\pst@dima,\pst@dimb,\pst@dimc,\pst@dimd,\pst@dimh}
+% \DoNotIndex{\pst@dimtonum,\pst@expandafter,\pst@getnumiii,\pst@hbox}
+% \DoNotIndex{\pst@tempa,\pst@tempb,\pst@tempc,\pst@tempg,\pst@temph}
+% \DoNotIndex{\pst@tempi,\PSTricksLoaded}
+% \DoNotIndex{\RecordChanges,\relax}
+% \DoNotIndex{\setbox,\setkeys,\space}
+% \DoNotIndex{\the,\tw@}
+% \DoNotIndex{\usepackage}
+% \DoNotIndex{\wd}
+% \DoNotIndex{\z@}
+%
+% \setcounter{IndexColumns}{2}
+%
+% \newcommand{\PstFrameBoxThreeDPackage}{`\textsf{pst-fr3d}'}
+% \newcommand{\PstFrameBoxThreeDMacro}{\cs{PstFrameBoxThreeD}}
+% \newcommand{\ColorPackage}{`\textsf{color}'}
+% \newcommand{\PstColPackage}{`\textsf{pstricks}'}
+%
+% ^^A From ltugboat.cls
+%
+% ^^A Typeset the name of an environment
+% \providecommand\env[1]{\textsf{#1}}
+% \providecommand\clsname[1]{\textsf{#1}}
+% \providecommand\pkgname[1]{\textsf{#1}}
+% \providecommand\optname[1]{\textsf{#1}}
+% \providecommand\progname[1]{\textsf{#1}}
+%
+% ^^A A list of options for a package/class
+% \newenvironment{optlist}{\begin{description}%
+% \renewcommand\makelabel[1]{%
+% \descriptionlabel{\mdseries\optname{##1}}}%
+% \itemsep0.25\itemsep}%
+% {\end{description}}
+%
+% ^^A Utility macros
+%
+%
+% ^^A Example macros - adapted from the `fvrb-ex' package
+% ^^A ---------------------------------------------------
+%
+% ^^A Take care that we use here the four /?_W characters as escape
+% ^^A characters, so we can't use these characters in the examples!
+%
+% \makeatletter
+%
+% ^^A To highlight some verbatim sequences (comments, macro names, etc.)
+% \def\HLEmphasize#1{\textit{#1}}
+% \newcommand{\BS}{\texttt{\symbol{`\\}}}
+% \def\HLMacro#1{\BS{}def\HLMacro@i#1\@nil}
+% \def\HLMacro@i#1def#2\@nil{\HLReverse{#2}}
+% \def\HLReverse#1{{\setlength{\fboxsep}{1pt}\HLReverse@i{#1}}}
+% \def\HLReverse@i#1{\colorbox{black}{\textcolor{white}{\textbf{#1}}}}
+%
+% \def\Example{\FV@Environment{}{Example}}
+% \def\endExample{%
+% \end{VerbatimOut}
+% \Below@Example{\input{\jobname.tmp}}
+% \endgroup}
+%
+% \def\CenterExample{\FV@Environment{}{Example}}
+% \def\endCenterExample{%
+% \end{VerbatimOut}
+% \begin{center}
+% \Below@Example{\input{\jobname.tmp}}
+% \end{center}
+% \endgroup}
+%
+% \def\SideBySideExample{\FV@Environment{}{Example}}
+% \def\endSideBySideExample{%
+% \end{VerbatimOut}
+% \SideBySide@Example{\input{\jobname.tmp}}
+% \endgroup}
+%
+% \def\FVB@Example{%
+% \begingroup
+% \FV@UseKeyValues
+% \parindent=0pt
+% \multiply\topsep by 2
+% \VerbatimEnvironment
+% \begin{VerbatimOut}[gobble=4,codes={\catcode`\W=12}]{\jobname.tmp}}
+%
+% \def\Below@Example#1{%
+% \VerbatimInput[gobble=0,commentchar=W,commandchars=/?_,frame=single,
+% numbers=left,numbersep=3pt]{\jobname.tmp}
+% \catcode`\%=14\relax
+% \catcode`\W=9\relax
+% ^^A We suppress the effect of the highlighting macros
+% \catcode`/=0\relax
+% \catcode`?=1\relax
+% \catcode`_=2\relax
+% \def\HLEmphasize##1{##1}%
+% \def\HLMacro##1{##1}%
+% \def\HLReverse##1{##1}%
+% #1
+% \par}
+%
+% \def\SideBySide@Example#1{%
+% \vskip 1mm
+% \@tempdimb=\FV@XRightMargin
+% \advance\@tempdimb -5mm
+% \begin{minipage}[c]{\@tempdimb}
+% \fvset{xrightmargin=0pt}
+% \catcode`\%=14\relax
+% \catcode`\W=9\relax
+% ^^A We suppress the effect of the highlighting macros
+% \catcode`/=0\relax
+% \catcode`?=1\relax
+% \catcode`_=2\relax
+% \def\HLEmphasize##1{##1}%
+% \def\HLMacro##1{##1}%
+% \def\HLReverse##1{##1}%
+% #1
+% \end{minipage}%
+% \@tempdimb=\textwidth
+% \advance\@tempdimb -\FV@XRightMargin
+% \advance\@tempdimb 5mm
+% \begin{minipage}[c]{\@tempdimb}
+% \VerbatimInput[gobble=0,commentchar=W,commandchars=/?_,
+% frame=single,numbers=left,numbersep=3pt,
+% xleftmargin=5mm,xrightmargin=0pt]{\jobname.tmp}
+% \end{minipage}
+% \vskip 1mm}
+%
+% \makeatother
+%
+% ^^A End of example macros from `fvrb-ex'
+%
+% ^^A For the possible index and changes log
+% \setlength{\columnseprule}{0.6pt}
+%
+% ^^A Beginning of the documentation itself
+%
+% \title{The \PstFrameBoxThreeDPackage{} package\\
+% A PSTricks package\\
+% for three dimensional framed boxes}
+% \author{Denis \textsc{Girou}\thanks{CNRS/IDRIS ---
+% Centre National de la Recherche Scientifique /
+% Institut du D\'eveloppement et des Ressources en Informatique
+% Scientifique --- Orsay --- France ---
+% \mbox{\texttt{<Denis.Girou@idris.fr>}}.}}
+% \date{Version 1.0\\February 25, 2002\\
+% {\small Documentation revised February 25, 2002}}
+%
+% \maketitle
+%
+% \begin{abstract}
+% This package allow to draw three dimensional framed boxes using the
+% macro \PstFrameBoxThreeDMacro. This is specially useful to draw 3d-like
+% buttons.
+% \end{abstract}
+%
+% \tableofcontents
+%
+% \section{Introduction}
+%
+% \PstFrameBoxThreeDPackage{} offer a unique main macro with few parameters to
+% interact on it. This is just a small extension of the \cs{psframebox} macro.
+%
+% All the relevant PSTricks parameters can be use with it, but the
+% \texttt{linestyle}, \texttt{linecolor}, \texttt{doubleline} and
+% \texttt{doublecolor} ones must not be used, as they would be overridden.
+% Nevertheless, some usual parameters are not relevant for this kind of boxes
+% and would produce ``strange'' results (for instance \texttt{border},
+% \texttt{linearc} and \texttt{shadow}).
+%
+% As usual, \LaTeX{} users are supposed to have loaded the \PstColPackage{}
+% package before this one, to ensure the compatibility with the standard
+% \ColorPackage{} \LaTeX{} package.
+%
+% The syntax of the macro is the same than the one for the other macros for
+% framed boxes, so simply:
+%
+% \vspace{1mm}
+% \noindent%
+% \fbox{\PstFrameBoxThreeDMacro\texttt{[optional\_parameters]\{\emph{stuff}\}}}
+%
+% \vspace{1mm}
+% We can put all the valid material inside such 3d boxes, including other
+% framed boxes.
+%
+% Note also that, obviously, this documentation is very color oriented, and
+% is done to be read on a screen or a colored paper.
+%
+% \section{Usage}
+%
+% \subsection{Default behavior}
+%
+% The default behavior is the following:
+%
+% \begin{CenterExample}
+% \PstFrameBoxThreeD{Button}\hfill
+% \PstFrameBoxThreeD{\shortstack{Yes!\\Yes!\\Yes!}}\hfill
+% \PstFrameBoxThreeD{\Huge$\frac{1}{\sqrt{3}}$}%
+% \end{CenterExample}
+%
+% Of course, we can use all the relevant generic PSTricks parameters for the
+% framed boxes (but not those relative to \emph{double} lines), specially
+% those applying to boxes:
+%
+% \begin{CenterExample}
+% \PstFrameBoxThreeD[doublesep=0.1]{Button}\hfill
+% \PstFrameBoxThreeD[doublesep=0.2]{Button}\hfill
+% \PstFrameBoxThreeD[doublesep=0.5]{Button}%
+% \end{CenterExample}
+%
+% Specially look at the behavior of the \texttt{framesep},
+% \texttt{doublesep} and \texttt{linewidth} parameters:
+%
+% \begin{CenterExample}
+% \PstFrameBoxThreeD[framesep=0.3]{Button}\hfill
+% \PstFrameBoxThreeD[doublesep=0.3]{Button}\hfill
+% \PstFrameBoxThreeD[linewidth=0.3]{Button}\hfill
+% \PstFrameBoxThreeD[doublesep=0.3,linewidth=0.3]{Button}\hfill
+% \PstFrameBoxThreeD[framearc=0.5]{Button}%
+% \end{CenterExample}
+%
+% \subsection{Parameters}
+%
+% To change the way the boxes are drawn, we can also use \textbf{four}
+% specific parameters:
+%
+% \begin{optlist}
+% \item [FrameBoxThreeDColorHSB (real real real)]: to define the colors
+% used, in the HSB (\emph{hue}, \emph{saturation}, \emph{brightness}) model.
+% This is a sequence of three real values, separated by spaces. This will
+% define the color of the interior of the frame. And for the borders we will
+% use it too, changing it brightness in light and dark.
+%
+% Note also that if the \emph{brightness} value is negative, no color
+% will fill the interior of the box (this is useful if the general background
+% is not white).
+% (\emph{Default:~0~0~0.5} --- it must be three numbers between 0~and~1, but
+% as explained the last one can be negative, which has a special meaning).
+% \end{optlist}
+%
+% \begin{CenterExample}
+% \psset{doublesep=0.1}
+% \PstFrameBoxThreeD[/HLEmphasize?FrameBoxThreeDColorHSB_=/HLReverse?0.1 0.3 0.5_]{%
+% Button}\hfill
+% \PstFrameBoxThreeD[/HLEmphasize?FrameBoxThreeDColorHSB_=/HLReverse?0.6 0.3 0.5_]{%
+% Button}\hfill
+% \PstFrameBoxThreeD[/HLEmphasize?FrameBoxThreeDColorHSB_=/HLReverse?0.4 0.1 0.5_]{%
+% \Huge$\frac{1}{\sqrt{3}}$}\hfill
+% \PstFrameBoxThreeD[/HLEmphasize?FrameBoxThreeDColorHSB_=/HLReverse?0.9 0.5 0.5_]{%
+% \psovalbox[fillstyle=solid,fillcolor=yellow]{Button}}\hfill
+% \PstFrameBoxThreeD[/HLEmphasize?FrameBoxThreeDColorHSB_=/HLReverse?0.4 0.7 0.2_]{%
+% \PstFrameBoxThreeD[/HLEmphasize?FrameBoxThreeDColorHSB_=/HLReverse?0.4 0.7 0.5_]{%
+% \PstFrameBoxThreeD[/HLEmphasize?FrameBoxThreeDColorHSB_=/HLReverse?0.4 0.7 0.8_]{%
+% Button}}}%
+% \end{CenterExample}
+%
+% \begin{CenterExample}
+% \psset{doublesep=0.2}
+% \PstFrameBoxThreeD[/HLEmphasize?FrameBoxThreeDColorHSB_=/HLReverse?0 0 0.3_]{Button}\hfill
+% \PstFrameBoxThreeD[/HLEmphasize?FrameBoxThreeDColorHSB_=/HLReverse?0 0 0.7_]{Button}\hfill
+% \PstFrameBoxThreeD[/HLEmphasize?FrameBoxThreeDColorHSB_=/HLReverse?0 0 -1_]{Button}\hfill
+% \definecolor{MyGray}{gray}{0.85}
+% \psframe*[linecolor=MyGray](-0.3,-0.65)(2.1,0.9)
+% \PstFrameBoxThreeD[/HLEmphasize?FrameBoxThreeDColorHSB_=/HLReverse?0 0 -1_]{Button}%
+% \end{CenterExample}
+%
+% \begin{SideBySideExample}[xrightmargin=3cm]
+% \PstFrameBoxThreeD%
+% [linewidth=0.2,
+% /HLEmphasize?FrameBoxThreeDColorHSB_=/HLReverse?0.3 0.2 0.5_]{%
+% \Huge\textcolor{white}{\textbf{21}}}
+% \end{SideBySideExample}
+%
+% \begin{optlist}
+% \item [FrameBoxThreeDOn (boolean)]: to simulate an ON / OFF button, by
+% exchange of the dark and light colors of the borders (this will give the
+% same result that to use a negative value for the
+% \texttt{FrameBoxThreeDBrightnessDistance} parameter)
+% (\emph{Default:~true}).
+% \end{optlist}
+%
+% \begin{CenterExample}
+% \PstFrameBoxThreeD[/HLEmphasize?FrameBoxThreeDColorHSB_=/HLReverse?0.1 0.9 0.5_]{%
+% Button}\hfill
+% \PstFrameBoxThreeD[/HLEmphasize?FrameBoxThreeDColorHSB_=/HLReverse?0.1 0.9 0.5_,
+% /HLEmphasize?FrameBoxThreeDOn_=/HLReverse?false_]{Button}\hfill
+% \PstFrameBoxThreeD[/HLEmphasize?FrameBoxThreeDColorHSB_=/HLReverse?0.1 0.9 0.5_,
+% /HLEmphasize?FrameBoxThreeDOn_=/HLReverse?false_,linewidth=0.2]{Button}%
+% \end{CenterExample}
+%
+% \begin{CenterExample}
+% \PstFrameBoxThreeD[linewidth=0.5,/HLEmphasize?FrameBoxThreeDOn_=/HLReverse?false_,
+% /HLEmphasize?FrameBoxThreeDColorHSB_=/HLReverse?0.8 0.5 0.5_]{%
+% \Large\textcolor{yellow}{\textbf{This is your last chance...}}}
+% \end{CenterExample}
+%
+% \begin{optlist}
+% \item [FrameBoxThreeDOpposite (boolean)]: to use the same color for the
+% left and right borders, and the same other for the bottom and top ones, or
+% rather for left and top and right and bottom.
+% (\emph{Default:~false}).
+% \end{optlist}
+%
+% \begin{CenterExample}
+% \psset{linewidth=0.2}
+% \newcommand{\Button}{\textcolor{white}{\textbf{Button}}}
+% \PstFrameBoxThreeD[/HLEmphasize?FrameBoxThreeDColorHSB_=/HLReverse?0.7 0.8 0.8_]{%
+% \Button}\hfill
+% \PstFrameBoxThreeD[/HLEmphasize?FrameBoxThreeDColorHSB_=/HLReverse?0.7 0.8 0.8_,
+% /HLEmphasize?FrameBoxThreeDOn_=/HLReverse?false_]{\Button}\hfill
+% \PstFrameBoxThreeD[/HLEmphasize?FrameBoxThreeDColorHSB_=/HLReverse?0.7 0.8 0.8_,
+% /HLEmphasize?FrameBoxThreeDOpposite_=/HLReverse?true_]{\Button}\hfill
+% \PstFrameBoxThreeD[/HLEmphasize?FrameBoxThreeDColorHSB_=/HLReverse?0.7 0.8 0.8_,
+% /HLEmphasize?FrameBoxThreeDOn_=/HLReverse?false_,
+% /HLEmphasize?FrameBoxThreeDOpposite_=/HLReverse?true_]{\Button}%
+% \end{CenterExample}
+%
+% \begin{optlist}
+% \item [FrameBoxThreeDBrightnessDistance (real)]: the distance brightness
+% of the color used to fill the interior of the box. If this is a negative
+% number, we will got the same effect that the one of setting
+% \texttt{FrameBoxThreeDOn} to false. And if it value is 0, the borders will
+% have obviously the same color that the interior.
+% (\emph{Default:~0.15} --- it must be a number between -0.5~and~0.5, but the
+% \emph{brightness} plus and minus it must stay between 0~and~1).
+% \end{optlist}
+%
+% \begin{CenterExample}
+% \psset{doublesep=0.2}
+% \PstFrameBoxThreeD[/HLEmphasize?FrameBoxThreeDColorHSB_=/HLReverse?0.6 0.3 0.5_]{%
+% Button}\hfill % /HLEmphasize?Default = 0.15_
+% \PstFrameBoxThreeD[/HLEmphasize?FrameBoxThreeDColorHSB_=/HLReverse?0.6 0.3 0.5_,
+% /HLEmphasize?FrameBoxThreeDBrightnessDistance_=/HLReverse?0.3_]{%
+% Button}\hfill
+% \PstFrameBoxThreeD[/HLEmphasize?FrameBoxThreeDColorHSB_=/HLReverse?0.6 0.3 0.5_,
+% /HLEmphasize?FrameBoxThreeDBrightnessDistance_=/HLReverse?0.5_]{%
+% Button}\hfill
+% \PstFrameBoxThreeD[/HLEmphasize?FrameBoxThreeDColorHSB_=/HLReverse?0.6 0.3 0.7_,
+% /HLEmphasize?FrameBoxThreeDBrightnessDistance_=/HLReverse?0.3_]{%
+% Button}\hfill
+% \PstFrameBoxThreeD[/HLEmphasize?FrameBoxThreeDColorHSB_=/HLReverse?0.6 0.3 0.5_,
+% /HLEmphasize?FrameBoxThreeDBrightnessDistance_=/HLReverse?-0.2_]{%
+% Button}%
+% \end{CenterExample}
+%
+% \section{Examples}
+%
+% We give here more advanced examples.
+%
+% \begin{CenterExample}
+% \psset{doublesep=0.12}
+% \multido{\nButtonA=0.1+0.4}{3}{%
+% \multido{\nButtonB=0+0.05}{11}{%
+% \PstFrameBoxThreeD%
+% [FrameBoxThreeDColorHSB=\nButtonA\space 0.5 0.5,
+% FrameBoxThreeDBrightnessDistance=\nButtonB]{OK}}\\}
+% \end{CenterExample}
+%
+% \begin{CenterExample}
+% \psset{doublesep=0.05}
+% \multido{\nButtonA=0+0.1}{11}{%
+% \multido{\nButtonB=0+0.05}{21}{%
+% \PstFrameBoxThreeD[FrameBoxThreeDColorHSB=%
+% \nButtonB\space \nButtonA\space 0.8]{\$}}\\}
+% \end{CenterExample}
+%
+% \begin{CenterExample}
+% \psset{gradmidpoint=1,gradangle=90}
+% \psdblframebox[framesep=0.3,fillstyle=gradient,
+% gradbegin=yellow,gradend=LemonChiffon]{%
+% \shortstack[l]{%
+% \makebox[8cm]{\LARGE\textbf{Introduction}\dotfill}\\
+% {\Large by Catherine \textsc{Parker}}\hfill
+% \raisebox{5.5mm}{%
+% \PstFrameBoxThreeD[linewidth=0.15,
+% FrameBoxThreeDColorHSB=0.3 0.2 0.5]{%
+% \LARGE\textcolor{white}{3}}}}}
+% \end{CenterExample}
+%
+% \begin{CenterExample}
+% \psshadowbox[framesep=0.3,fillstyle=gradient,
+% gradbegin=Orange,gradend=yellow]{%
+% \setlength{\tabcolsep}{0mm}%
+% \begin{tabular}{ll}
+% \makebox[10cm]{%
+% \LARGE\textbf{Description of the problem\dotfill}} &
+% \raisebox{-5mm}{%
+% \PstFrameBoxThreeD[linewidth=0.15,
+% FrameBoxThreeDColorHSB=0.9 0.5 0.5]{%
+% \LARGE\textcolor{white}{\textbf{25}}}}\\[-3mm]
+% \textcolor{red}{\large by Helen \textsc{Mitchell}
+% and Ann \textsc{Cartridge}}
+% \end{tabular}}
+% \end{CenterExample}
+%
+% \begin{CenterExample}
+% \newcommand{\MyNode}[2]{%
+% \TR{\PstFrameBoxThreeD[linewidth=0.1,FrameBoxThreeDOn=#2,
+% FrameBoxThreeDColorHSB=0.2 0.4 0.5,
+% FrameBoxThreeDBrightnessDistance=0.2]{#1}}}
+% \renewcommand{\psedge}[2]{\ncangle{#2}{#1}}
+%
+% \psset{angleB=-90,angleA=90,levelsep=2,treesep=3}
+% \pstree{\MyNode{Richard}{true}}
+% {\pstree{\MyNode{Paul}{true}}
+% {\pstree{\MyNode{Jack}{true}}
+% {\MyNode{Michel}{false}}
+% \MyNode{Adam}{false}}
+% \MyNode{Herbert}{false}}
+% \end{CenterExample}
+%
+% \begin{CenterExample}
+% \newcommand{\EntryA}[1]{%
+% \PstFrameBoxThreeD[FrameBoxThreeDColorHSB=0.4 0.6 0.5]{%
+% \makebox[2.2cm]{#1}}}
+% \newcommand{\EntryB}[1]{%
+% \PstFrameBoxThreeD[FrameBoxThreeDColorHSB=0.16 1 0.8]{%
+% \makebox[0.5cm]{#1}}}
+% \newcommand{\EntryC}[1]{%
+% \PstFrameBoxThreeD[FrameBoxThreeDColorHSB=0.7 0.2 0.8]{%
+% \makebox[1.4cm]{#1}}}
+% \newcommand{\EntryD}[1]{%
+% \PstFrameBoxThreeD[FrameBoxThreeDColorHSB=0.9 0.5 0.5]{%
+% \makebox[1.4cm]{#1}}}
+%
+% \begin{table}[htbp]
+% \centering
+% \large\bfseries
+% \setlength{\tabcolsep}{5mm}%
+% \setlength{\belowcaptionskip}{3mm}%
+% \caption{Results of the year}
+% \PstFrameBoxThreeD[framesep=0.4,doublesep=0.5,
+% FrameBoxThreeDColorHSB=0.3 0.2 0.4]{%
+% \psset{framesep=0.3,doublesep=0.2}%
+% \begin{tabular}{lrr}
+% \\
+% \EntryA{1st Quarter}&\EntryB{723}& \\[1.5cm]
+% \EntryA{2nd Quarter}&\EntryB{819}&\EntryC{+13 \%} \\[1.5cm]
+% \EntryA{3rd Quarter}&\EntryB{687}&\EntryD{--16.1 \%}\\[1.5cm]
+% \EntryA{4th Quarter}&\EntryB{894}&\EntryC{+30.1 \%} \\[1cm]
+% \end{tabular}}
+% \end{table}
+% \end{CenterExample}
+%
+%
+% \StopEventually{}
+%
+% ^^A .................... End of the documentation part ....................
+%
+% \section{Driver file}
+%
+% The next bit of code contains the documentation driver file for \TeX{},
+% i.e., the file that will produce the documentation you are currently
+% reading. It will be extracted from this file by the \texttt{docstrip}
+% program.
+%
+% \begin{macrocode}
+%<*driver>
+\documentclass{ltxdoc}
+\GetFileInfo{pst-fr3d.dtx}
+\usepackage{fancyvrb}
+\usepackage{multido}
+\usepackage{pstricks}
+\usepackage{pst-fr3d}
+\usepackage{pst-grad}
+\usepackage{pst-tree}
+\EnableCrossrefs
+\CodelineIndex
+\RecordChanges
+\OnlyDescription % Comment it for implementation details
+\hbadness=7000 % Over and under full box warnings
+\hfuzz=3pt
+\definecolor{LemonChiffon}{rgb}{1.,0.98,0.8}
+\definecolor{Orange} {rgb}{1.,0.65,0.}
+\definecolor{Pink} {rgb}{1.,0.75,0.8}
+\begin{document}
+ \DocInput{pst-fr3d.dtx}
+\end{document}
+%</driver>
+% \end{macrocode}
+%
+% \section{\PstFrameBoxThreeDPackage{} \LaTeX{} wrapper}
+%
+% \begin{macrocode}
+%<*latex-wrapper>
+\ProvidesPackage{pst-fr3d}[2002/02/25 package wrapper for PSTricks pst-fr3d.tex]
+\input pst-fr3d.tex
+%</latex-wrapper>
+% \end{macrocode}
+%
+% \section{\PstFrameBoxThreeDPackage{} code}
+%
+% \begin{macrocode}
+%<*pst-fr3d>
+% \end{macrocode}
+%
+% \subsection{Preambule}
+%
+% Who we are.
+%
+% \begin{macrocode}
+\csname PstFrameBoxThreeDLoaded\endcsname
+\let\PstFrameBoxThreeDLoaded\endinput
+% \end{macrocode}
+%
+% Require the PSTricks package.
+%
+% \begin{macrocode}
+\ifx\PSTricksLoaded\endinput\else\input pstricks.tex\fi
+% \end{macrocode}
+%
+% David \textsc{Carlisle} interface to the `\textsf{keyval}' package.
+%
+% \begin{macrocode}
+\ifx\PSTXKeyLoaded\endinput\else\input pst-xkey \fi
+% \end{macrocode}
+%
+% Catcodes changes.
+%
+% \begin{macrocode}
+\edef\PstAtCode{\the\catcode`\@}
+\catcode`\@=11\relax
+\pst@addfams{pst-fr3d}
+\def\fileversion{1.01}
+\def\filedate{2004/11/14}
+\message{`Pst-FrameBox3d' v\fileversion, \filedate\space (Denis Girou)}
+% \end{macrocode}
+%
+% \subsection{Definition of the parameters}
+%
+% \texttt{FrameBoxThreeDOn} to draw the 3d framed box with an ON / OFF
+% effect.
+%
+% \begin{macrocode}
+\newif\ifPstFrameBoxThreeD@On
+\define@key[psset]{pst-fr3d}{FrameBoxThreeDOn}[true]{\@nameuse{PstFrameBoxThreeD@On#1}}
+% \end{macrocode}
+%
+% \texttt{FrameBoxThreeDOpposite} to use the same colors for the opposite
+% sides or the contiguous ones.
+%
+% \begin{macrocode}
+\newif\ifPstFrameBoxThreeD@Opposite
+\define@key[psset]{pst-fr3d}{FrameBoxThreeDOpposite}[true]{%
+\@nameuse{PstFrameBoxThreeD@Opposite#1}}
+% \end{macrocode}
+%
+% \texttt{FrameBoxThreeDColorHSB} to define the colors used, in the HSB
+% (\emph{hue}, \emph{saturation}, \emph{brightness}) model. This is a sequence
+% of three real values, separated by spaces. This will define the color of the
+% interior of the frame. And for the borders we will use it too, changing it
+% brightness in light and dark.
+%
+% \begin{macrocode}
+\define@key[psset]{pst-fr3d}{FrameBoxThreeDColorHSB}{%
+\PstFrameBoxThreeD@ColorHSB@i#1\@nil}
+\def\PstFrameBoxThreeD@ColorHSB@i#1\@nil{%
+\pst@expandafter\pst@getnumiii{#1} {} {} {} {}\@nil
+\edef\PstFrameBoxThreeD@Hue{\pst@tempg}%
+\edef\PstFrameBoxThreeD@Saturation{\pst@temph}%
+\edef\PstFrameBoxThreeD@Brightness{\pst@tempi}}
+% \end{macrocode}
+%
+% \texttt{FrameBoxThreeDBrightnessDistance} to define the brightness
+% distance between the brightness used for the material of the box
+% (\texttt{BrightnessC}) and the two brightnesss used for the borders
+% (\texttt{BrightnessA} and \texttt{BrightnessB}): \texttt{BrightnessA} =
+% \texttt{BrightnessC} + \texttt{FrameBoxThreeDBrightnessDistance} and
+% \texttt{BrightnessB} = \texttt{BrightnessC} --
+% \texttt{FrameBoxThreeDBrightnessDistance}. It can be a negative number. And
+% if the brightness is negative, we will use a value of 0.5 to compute the two
+% other colors.
+%
+% \begin{macrocode}
+\define@key[psset]{pst-fr3d}{FrameBoxThreeDBrightnessDistance}{%
+\edef\PstFrameBoxThreeD@BrightnessDistance{#1}}
+% \end{macrocode}
+%
+% Next, we set the default values for all these new parameters.
+%
+% \begin{macrocode}
+\psset{%
+ FrameBoxThreeDOn=true,FrameBoxThreeDOpposite=false,
+ FrameBoxThreeDColorHSB=0 0 0.5,FrameBoxThreeDBrightnessDistance=0.15}%
+% \end{macrocode}
+%
+% \subsection{Main macro}
+%
+% The general \cs{PstFrameBoxThreeD} macro to draw three dimensional boxed
+% frames.
+%
+% \begin{macro}{\PstFrameBoxThreeD}
+% \begin{macrocode}
+\def\PstFrameBoxThreeD{%
+\@ifnextchar[{\PstFrameBoxThreeD@i}{\PstFrameBoxThreeD@i[]}}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\PstFrameBoxThreeD@i}
+% \begin{macrocode}
+\def\PstFrameBoxThreeD@i[#1]#2{{%
+% \end{macrocode}
+%
+% We force ``dimmen=middle''.
+%
+% \begin{macrocode}
+\psset{dimen=middle}%
+% \end{macrocode}
+%
+% Then we set the local changes of parameters.
+%
+% \begin{macrocode}
+\psset{#1}%
+% \end{macrocode}
+%
+%
+% If the brightness is negative, the interior of the frame will not be
+% filled with color, and a value of 0.5 will be used to compute the two colors
+% of the borders.
+%
+% \begin{macrocode}
+\ifdim\PstFrameBoxThreeD@Brightness\p@<\z@%
+ \def\PstFrameBoxThreeD@FillStyle{none}%
+ \def\pst@tempa{0.5}%
+\else
+ \def\PstFrameBoxThreeD@FillStyle{solid}%
+ \def\pst@tempa{\PstFrameBoxThreeD@Brightness}%
+\fi
+% \end{macrocode}
+%
+% Computation of the colors of the borders.
+%
+% \begin{macrocode}
+\pst@dimh=\pst@tempa\p@
+\advance\pst@dimh\PstFrameBoxThreeD@BrightnessDistance\p@
+\pst@dimtonum{\pst@dimh}{\pst@tempb}%
+\advance\pst@dimh-\PstFrameBoxThreeD@BrightnessDistance\p@
+\advance\pst@dimh-\PstFrameBoxThreeD@BrightnessDistance\p@
+\pst@dimtonum{\pst@dimh}{\pst@tempc}%
+% \end{macrocode}
+%
+% If the \ColorPackage{} \LaTeX{} package was not loaded (using the
+% \PstColPackage{} compatibility package which is hightly recommanded for
+% \LaTeX{} users), we will use the PSTricks color model.
+%
+% \begin{macrocode}
+\ifx\definecolor\@undefined
+ \newhsbcolor{PstFrameBoxThreeD@ColorC}{%
+ \PstFrameBoxThreeD@Hue \PstFrameBoxThreeD@Saturation \pst@tempa}%
+ \ifPstFrameBoxThreeD@On
+ \newhsbcolor{PstFrameBoxThreeD@ColorA}{%
+ \PstFrameBoxThreeD@Hue \PstFrameBoxThreeD@Saturation \pst@tempc}%
+ \newhsbcolor{PstFrameBoxThreeD@ColorB}{%
+ \PstFrameBoxThreeD@Hue \PstFrameBoxThreeD@Saturation \pst@tempb}%
+ \else
+ \newhsbcolor{PstFrameBoxThreeD@ColorA}{%
+ \PstFrameBoxThreeD@Hue \PstFrameBoxThreeD@Saturation \pst@tempb}%
+ \newhsbcolor{PstFrameBoxThreeD@ColorB}{%
+ \PstFrameBoxThreeD@Hue \PstFrameBoxThreeD@Saturation \pst@tempc}%
+ \fi
+% \end{macrocode}
+%
+% If the \ColorPackage{} \LaTeX{} package was loaded, we will use it as
+% color model.
+%
+% \begin{macrocode}
+\else
+ \definecolor{PstFrameBoxThreeD@ColorC}{hsb}{%
+ \PstFrameBoxThreeD@Hue,\PstFrameBoxThreeD@Saturation,\pst@tempa}%
+ \ifPstFrameBoxThreeD@On
+ \definecolor{PstFrameBoxThreeD@ColorA}{hsb}{%
+ \PstFrameBoxThreeD@Hue,\PstFrameBoxThreeD@Saturation,\pst@tempc}%
+ \definecolor{PstFrameBoxThreeD@ColorB}{hsb}{%
+ \PstFrameBoxThreeD@Hue,\PstFrameBoxThreeD@Saturation,\pst@tempb}%
+ \else
+ \definecolor{PstFrameBoxThreeD@ColorA}{hsb}{%
+ \PstFrameBoxThreeD@Hue,\PstFrameBoxThreeD@Saturation,\pst@tempb}%
+ \definecolor{PstFrameBoxThreeD@ColorB}{hsb}{%
+ \PstFrameBoxThreeD@Hue,\PstFrameBoxThreeD@Saturation,\pst@tempc}%
+ \fi
+\fi
+% \end{macrocode}
+%
+% Now, we can \emph{really} draw the box and the borders.
+%
+% No lines here.
+%
+% \begin{macrocode}
+\psset{linestyle=none}%
+% \end{macrocode}
+%
+% We draw the material in a standard \cs{psframebox} macro, defining
+% \texttt{doubleline} to \texttt{true}, to compute correctly the bounding box
+% of the box with it borders.
+%
+% \begin{macrocode}
+\psframebox[fillstyle=\PstFrameBoxThreeD@FillStyle,
+ fillcolor=PstFrameBoxThreeD@ColorC,doubleline=true]{#2}%
+% \end{macrocode}
+%
+% We save the material to frame in an internal box, without the size of it
+% borders.
+%
+% \begin{macrocode}
+\setbox\pst@boxg=\hbox{\psframebox{#2}}%
+% \end{macrocode}
+%
+% Then we save in another internal box the same thing, this time with the
+% size of it borders.
+%
+% \begin{macrocode}
+\setbox\pst@hbox=\hbox{\psframebox[doubleline=true]{#2}}%
+% \end{macrocode}
+%
+% We compute the four internal coordinates for the borders.
+%
+% \begin{macrocode}
+\pst@dima=\wd\pst@hbox
+\advance\pst@dima-\wd\pst@boxg
+\divide\pst@dima\tw@
+% \end{macrocode}
+%
+% \begin{macrocode}
+\pst@dimb=\pst@dima
+% \end{macrocode}
+%
+% \begin{macrocode}
+\advance\pst@dima\wd\pst@boxg
+% \end{macrocode}
+%
+% Now, we can draw the borders, of course in a \texttt{solid} mode.
+%
+% \begin{macrocode}
+\psset{fillstyle=solid}%
+% \end{macrocode}
+%
+% We draw first the left then the top borders.
+%
+% \begin{macrocode}
+\pspolygon[fillcolor=PstFrameBoxThreeD@ColorA]
+ (-\wd\pst@hbox,-\dp\pst@hbox)(-\pst@dima,-\dp\pst@boxg)
+ (-\pst@dima,\ht\pst@boxg)(-\wd\pst@hbox,\ht\pst@hbox)
+\pspolygon[fillcolor=PstFrameBoxThreeD@ColorB]
+ (-\wd\pst@hbox,\ht\pst@hbox)(-\pst@dima,\ht\pst@boxg)
+ (-\pst@dimb,\ht\pst@boxg)(0,\ht\pst@hbox)
+% \end{macrocode}
+%
+% We must compute the colors of the two other borders.
+%
+% \begin{macrocode}
+\ifPstFrameBoxThreeD@Opposite
+ \def\pst@tempa{PstFrameBoxThreeD@ColorA}%
+ \def\pst@tempb{PstFrameBoxThreeD@ColorB}%
+\else
+ \def\pst@tempa{PstFrameBoxThreeD@ColorB}%
+ \def\pst@tempb{PstFrameBoxThreeD@ColorA}%
+\fi
+% \end{macrocode}
+%
+% Now, we draw the right then the bottom borders.
+%
+% \begin{macrocode}
+\pspolygon[fillcolor=\pst@tempa]
+ (0,-\dp\pst@hbox)(-\pst@dimb,-\dp\pst@boxg)
+ (-\pst@dimb,\ht\pst@boxg)(0,\ht\pst@hbox)
+\pspolygon[fillcolor=\pst@tempb]
+ (-\wd\pst@hbox,-\dp\pst@hbox)(-\pst@dima,-\dp\pst@boxg)
+ (-\pst@dimb,-\dp\pst@boxg)(0,-\dp\pst@hbox)
+% \end{macrocode}
+%
+% And, to finish, a dark oblique line in the middle of the light border and
+% a light oblique line in the middle of the dark border, if the identical
+% colors are contiguous.
+%
+% \begin{macrocode}
+\ifPstFrameBoxThreeD@Opposite
+\else
+ \psset{linestyle=solid,linewidth=0.2pt,arrows=cc-cc}%
+ \psline[linecolor=PstFrameBoxThreeD@ColorA]
+ (-\pst@dimb,\ht\pst@boxg)(0,\ht\pst@hbox)
+ \psline[linecolor=PstFrameBoxThreeD@ColorB]
+ (-\wd\pst@hbox,-\dp\pst@hbox)(-\pst@dima,-\dp\pst@boxg)
+\fi}}
+% \end{macrocode}
+% \end{macro}
+%
+% \subsection{Closing}
+%
+% Catcodes restoration.
+%
+% \begin{macrocode}
+\catcode`\@=\PstAtCode\relax
+% \end{macrocode}
+%
+% \begin{macrocode}
+%</pst-fr3d>
+% \end{macrocode}
+%
+% \Finale
+% \PrintIndex
+% \PrintChanges
+%
+\endinput
+%%
+%% End of file `pst-fr3d.dtx'
diff --git a/Master/texmf-dist/source/generic/pst-fr3d/pst-fr3d.ins b/Master/texmf-dist/source/generic/pst-fr3d/pst-fr3d.ins
new file mode 100644
index 00000000000..9bcc8406cf9
--- /dev/null
+++ b/Master/texmf-dist/source/generic/pst-fr3d/pst-fr3d.ins
@@ -0,0 +1,37 @@
+%% `pst-fr3d.ins'
+%%
+%% Docstrip installation instruction file for docstyle `pst-fr3d'
+%%
+%% Denis Girou (CNRS/IDRIS - France) <Denis.Girou@idris.fr>
+%%
+%% February 25, 2002
+
+\def\batchfile{pst-fr3d.ins}
+\input docstrip.tex
+\keepsilent
+\Msg{*** Generating the `pst-fr3d' package ***}
+\askforoverwritefalse
+\generate{\file{pst-fr3d.tex}{\from{pst-fr3d.dtx}{pst-fr3d}}}
+\generate{\file{pst-fr3d.sty}{\from{pst-fr3d.dtx}{latex-wrapper}}}
+
+\ifToplevel{%
+\Msg{***********************************************************}
+\Msg{*}
+\Msg{* To finish the installation you have to move the files}
+\Msg{* pst-fr3d.sty and pst-fr3d.tex in a directory/folder searched by TeX.}
+\Msg{*}
+\Msg{* To produce the documentation, run the file `pst-fr3d.dtx'}
+\Msg{* through LaTeX.}
+\Msg{*}
+\Msg{* If you require the commented code, desactivating the}
+\Msg{* OnlyDescription macro, you must recompile, execute:}
+\Msg{* `makeindex -s gind.ist pst-fr3d'}
+\Msg{* `makeindex -s gglo.ist -o pst-fr3d.gls pst-fr3d.glo'}
+\Msg{* and recompile.}
+\Msg{*}
+\Msg{***********************************************************}
+}
+
+\endinput
+%%
+%% End of file `pst-fr3d.ins'