summaryrefslogtreecommitdiff
path: root/graphics/pstricks/contrib/pst-pad
diff options
context:
space:
mode:
authorNorbert Preining <norbert@preining.info>2019-09-02 13:46:59 +0900
committerNorbert Preining <norbert@preining.info>2019-09-02 13:46:59 +0900
commite0c6872cf40896c7be36b11dcc744620f10adf1d (patch)
tree60335e10d2f4354b0674ec22d7b53f0f8abee672 /graphics/pstricks/contrib/pst-pad
Initial commit
Diffstat (limited to 'graphics/pstricks/contrib/pst-pad')
-rw-r--r--graphics/pstricks/contrib/pst-pad/CHANGES28
-rw-r--r--graphics/pstricks/contrib/pst-pad/Makefile46
-rw-r--r--graphics/pstricks/contrib/pst-pad/README72
-rw-r--r--graphics/pstricks/contrib/pst-pad/pst-pad-doc-header.tex74
-rw-r--r--graphics/pstricks/contrib/pst-pad/pst-pad-doc.pdfbin0 -> 97579 bytes
-rw-r--r--graphics/pstricks/contrib/pst-pad/pst-pad-doc.tex432
-rw-r--r--graphics/pstricks/contrib/pst-pad/pst-pad-docDE.pdfbin0 -> 98748 bytes
-rw-r--r--graphics/pstricks/contrib/pst-pad/pst-pad-docDE.tex436
-rw-r--r--graphics/pstricks/contrib/pst-pad/pst-pad.sty7
-rw-r--r--graphics/pstricks/contrib/pst-pad/pst-pad.tex456
-rw-r--r--graphics/pstricks/contrib/pst-pad/showexpl.cfg44
11 files changed, 1595 insertions, 0 deletions
diff --git a/graphics/pstricks/contrib/pst-pad/CHANGES b/graphics/pstricks/contrib/pst-pad/CHANGES
new file mode 100644
index 0000000000..45b725e648
--- /dev/null
+++ b/graphics/pstricks/contrib/pst-pad/CHANGES
@@ -0,0 +1,28 @@
+Makefile:
+
+2008-08-19 version 0.3c: added missing dependency to pst-pad-doc-header.tex
+
+pst-pad-doc-header.tex:
+
+2008-03-21 version 0.3b: added common header for german/english docs
+
+pst-pad-docDE.tex|pdf:
+
+2008-03-21 version 0.3b: added german docs
+
+pst-pad-doc.tex|pdf:
+
+2008-03-21 version 0.3b: doc fix
+2008-02-21 version 0.3a: changed email address
+2008-02-19 version 0.3: first CTAN release (rev 319)
+
+pst-pad.sty:
+
+2008-02-19 version 0.3: first CTAN release (rev 319)
+
+pst-pad.tex:
+
+2008-08-19 version 0.3c: bumped version number
+2008-03-22 version 0.3b: bumped version number
+2008-02-21 version 0.3a: bumped version number
+2008-02-19 version 0.3: first CTAN release (rev 319) \ No newline at end of file
diff --git a/graphics/pstricks/contrib/pst-pad/Makefile b/graphics/pstricks/contrib/pst-pad/Makefile
new file mode 100644
index 0000000000..0c8f6009f5
--- /dev/null
+++ b/graphics/pstricks/contrib/pst-pad/Makefile
@@ -0,0 +1,46 @@
+MAIN = pst-pad
+MAINDOCEN = pst-pad-doc
+MAINDOCDE = pst-pad-docDE
+
+all: \
+ Makefile \
+ $(MAINDOCEN).pdf \
+ $(MAINDOCDE).pdf
+
+$(MAINDOCEN).pdf: \
+ showexpl.cfg \
+ pst-pad-doc-header.tex \
+ $(MAINDOCEN).tex \
+ $(MAIN).tex \
+ $(MAIN).sty
+ latex $(MAINDOCEN).tex
+ latex $(MAINDOCEN).tex
+ dvips $(MAINDOCEN)
+ ps2pdf $(MAINDOCEN).ps
+
+$(MAINDOCDE).pdf: \
+ showexpl.cfg \
+ pst-pad-doc-header.tex \
+ $(MAINDOCDE).tex \
+ $(MAIN).tex \
+ $(MAIN).sty
+ latex $(MAINDOCDE).tex
+ latex $(MAINDOCDE).tex
+ dvips $(MAINDOCDE)
+ ps2pdf $(MAINDOCDE).ps
+
+.PHONY: publish
+publish: \
+ all
+ zip $(MAIN).zip \
+ Makefile README CHANGES pst-pad-doc-header.tex \
+ $(MAIN).tex $(MAIN).sty \
+ showexpl.cfg \
+ $(MAINDOCEN).tex $(MAINDOCEN).pdf \
+ $(MAINDOCDE).tex $(MAINDOCDE).pdf
+
+.PHONY: clean
+clean:
+ rm *~ *.aux *.backup *.bbl *.blg *.brf *.cb *.changes \
+ *.dvi *.idx *.ilg *.ind *.inx *.lof *.log *.lot *.lox \
+ *.out *.ps *.pdf *.rel *.tmp *.toc *.xcp *.zip
diff --git a/graphics/pstricks/contrib/pst-pad/README b/graphics/pstricks/contrib/pst-pad/README
new file mode 100644
index 0000000000..d0f4180e88
--- /dev/null
+++ b/graphics/pstricks/contrib/pst-pad/README
@@ -0,0 +1,72 @@
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+Description:
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+pst-pad is a PSTricks package for drawing simple attachment systems.
+
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+Contents:
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+
+Makefile - Makefile for PDF documentation
+pst-pad.sty - The LaTeX file
+pst-pad.tex - The TeX file
+pst-pad-doc.pdf - The english documentation
+pst-pad-doc.tex - The english documentation (source)
+pst-pad-docDE.pdf - The german documentation
+pst-pad-docDE.tex - The german documentation (source)
+pst-pad-doc-header.tex - Common header for EN/DE documentation
+showexpl.cfg - Configuration file for showexpl.sty
+
+
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+Installation:
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+
+Save the files pst-pad.sty|tex in a directory, which is part of your
+local TeX tree. Then do not forget to run texhash to update this
+tree. pst-pad needs pst-node and pstricks, which should be part of
+your local TeX installation, otherwise get it from a CTAN server,
+f.ex. ftp://ftp.dante.de
+
+Save the files
+
+pst-pad.sty
+pst-pad.tex
+
+in any place, where latex or any other TeX program will find it. Do
+not forget to update your database, when installing this package the
+first time.
+
+pst-pad uses the extended version of the keyval package. So be sure
+that you
+- have installed xkeyval with the special pst-xkey
+ (CTAN: tex-archive/macros/latex/contrib/xkeyval/)
+- do not load another package after pst-pad, which loads the old
+ keyval.sty or pst-key.tex
+
+
+If you like to get the documentation file in another format run
+
+latex pst-pad-doc.tex
+latex pst-pad-doc.tex
+dvips pst-pad-doc.dvi
+
+to get a PostScript file. But pay attention, that the pst-pad files
+are saved in the above mentioned way, before you run latex on the
+documentation file.
+
+The intermediate DVI file works only with viewers which can interprete
+the embedded PostScript code.
+
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+Licence:
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+
+This material is subject to the LaTeX Project Public License. See
+http://www.ctan.org/tex-archive/help/Catalogue/licenses.lppl.html for
+the details of that license.
+
+
+Author: Patrick Drechsler
+Created: Tue Feb 19 18:14:18 2008
+
diff --git a/graphics/pstricks/contrib/pst-pad/pst-pad-doc-header.tex b/graphics/pstricks/contrib/pst-pad/pst-pad-doc-header.tex
new file mode 100644
index 0000000000..5c2b7fa2fa
--- /dev/null
+++ b/graphics/pstricks/contrib/pst-pad/pst-pad-doc-header.tex
@@ -0,0 +1,74 @@
+\setkomafont{disposition}{\normalcolor\rmfamily\bfseries}
+\usepackage[T1]{fontenc}
+\usepackage[utf8]{inputenc}
+\usepackage[babel]{csquotes}
+\MakeOuterQuote{"}
+
+\usepackage{fixltx2e}% standard LaTeX package...
+\usepackage{lmodern}
+\usepackage[scaled=0.85]{beramono}
+\usepackage{fancyhdr}
+\usepackage[obeyspaces]{url}
+\usepackage[dvipsnames]{xcolor}%
+\usepackage{amsmath}
+\usepackage{pst-pad}
+\let\verPstPad\fileversion
+\usepackage{multicol}
+%
+\makeatletter
+\def\@UrlFont{\small\ttfamily}
+\renewenvironment{description}
+ {\list{}{\labelwidth\z@ \itemindent-\leftmargin
+ \itemsep0pt \parsep0pt
+ \let\makelabel\descriptionlabel}}
+ {\endlist}
+
+\DeclareRobustCommand\cs[1]{\texttt{\char`\\#1}}
+\def\PS{PostScript}
+
+\lhead{\PadPackage}\rhead{\summary}
+\pagestyle{fancy}
+
+\psset{subgriddiv=0,griddots=10,gridlabels=7pt}%
+\usepackage{hyperref}
+\hypersetup{%
+ colorlinks=true,%
+ linktocpage=false,%
+ pdfstartpage=1,%
+ pdfstartview=FitV,%
+ breaklinks=true,%
+ pageanchor=true,%
+ pdfpagemode=UseOutlines,%
+ plainpages=false,%
+ bookmarksnumbered,%
+ bookmarksopen=true,%
+ bookmarksopenlevel=1,%
+ hypertexnames=true,%
+ pdfhighlight=/O,%
+ urlcolor=mygreen,%
+ linkcolor=RoyalBlue,%
+ citecolor=mygreen,%
+ pdftitle={pst-pad},%
+ pdfauthor={Patrick Drechsler},%
+ pdfsubject={PSTricks package},%
+ pdfkeywords={pstricks},%
+ pdfcreator={pdfLaTeX},%
+ pdfproducer={LaTeX with hyperref}%
+}
+\usepackage{showexpl}% <- load after hyperref
+
+\definecolor{mygreen}{rgb}{0,.5,0}
+\definecolor{mybrown}{rgb}{.6,0,0}
+
+\newcommand{\PadPackage}{\textsf{`pst-pad'}}
+\newcommand{\macro}[1]{\texttt{#1}}
+\newcommand{\parameter}[1]{\texttt{#1}}
+\newcommand{\ParCol}[3]{\textbf{\shortstack{#1 \color{mygreen}(#2)\\ \color{mybrown}(#3)}}}
+
+\newcommand{\AuthorName}{Patrick Drechsler}
+\newcommand{\AuthorEmail}{\url{<patrick.drechsler@pstricks.de>}}
+
+%%% Local Variables:
+%%% mode: latex
+%%% TeX-master: t
+%%% End:
diff --git a/graphics/pstricks/contrib/pst-pad/pst-pad-doc.pdf b/graphics/pstricks/contrib/pst-pad/pst-pad-doc.pdf
new file mode 100644
index 0000000000..6836ee924c
--- /dev/null
+++ b/graphics/pstricks/contrib/pst-pad/pst-pad-doc.pdf
Binary files differ
diff --git a/graphics/pstricks/contrib/pst-pad/pst-pad-doc.tex b/graphics/pstricks/contrib/pst-pad/pst-pad-doc.tex
new file mode 100644
index 0000000000..0cda673935
--- /dev/null
+++ b/graphics/pstricks/contrib/pst-pad/pst-pad-doc.tex
@@ -0,0 +1,432 @@
+%% Filename: pst-pad-doc.tex
+%%
+%% Author: Patrick Drechsler
+%%
+%% Created: Fri Feb 8 02:04:17 2008
+%%
+%% Version: $Id: pst-pad-doc.tex 333 2008-03-22 00:21:39Z patrick $
+%%
+\listfiles
+\documentclass{scrartcl}
+\usepackage[english]{babel}
+\input{pst-pad-doc-header}
+\newcommand{\summary}{A PSTricks package for drawing attachment models}
+
+\begin{document}
+\EnableQuotes
+
+\title{\texttt{pst-pad}\\\summary\\\normalsize ver. \verPstPad}
+\author{\AuthorName\thanks{\AuthorEmail}} \date{\today}
+\maketitle
+
+\begin{abstract}
+\PadPackage{} is a PSTricks package to draw simple attachment systems.
+\end{abstract}
+
+\setlength{\columnseprule}{0.6pt}
+\begin{multicols}{2}
+{\parskip 0pt \tableofcontents}
+\end{multicols}
+
+\section{Introduction}
+\label{sec:introduction}
+
+The package \PadPackage{} is a collection of graphical elements based on
+PStricks that can be used to facilitate display of attachment systems such as
+two differently shaped surfaces with or without a fluid wedged in
+between. These macros ease the display of wet adhesion models and common
+friction systems such as boundary lubrication, elastohydrodynamic lubrication
+and hydrodynamic lubrication. The name \PadPackage{} was chosen because I used
+this package to display models of different animal attachment pads in my
+research.
+
+\section{Parameters}
+\label{sec:parameters}
+
+There are specific parameters defined to easily change the behaviour of the pst-pad
+objects you are drawing.
+
+\let\HLTTc\textsf
+%\begin{multicols}{2}
+\begin{description}
+\item[\HLTTc{fluid} (boolean):] (\emph{default:~true})
+\item[\HLTTc{WallThickness} (dimension):] (\emph{default:~1})
+\item[\HLTTc{WallString} (string):] (\emph{default:~})
+\item[\HLTTc{WallAngle} (PSTricks color):] (\emph{default:~0})
+\item[\HLTTc{WallLineWidth} (dimension):] (\emph{default:~1pt})
+\item[\HLTTc{WallLineColor} (PSTricks color):] (\emph{default:~black})
+\item[\HLTTc{SphereStartAngle} (dimension):] (\emph{default:~180})
+\item[\HLTTc{SphereEndAngle} (boolean):] (\emph{default:~360})
+\item[\HLTTc{SphereRadius} (dimension):] (\emph{default:~1})
+\item[\HLTTc{ShpereString} (string):] (\emph{default:~})
+\item[\HLTTc{SphereOffset} (dimension):] (\emph{default:~0})
+\item[\HLTTc{SphereFillColor} (PSTricks color):] (\emph{default:~white})
+\item[\HLTTc{SphereLineWidth} (dimension):] (\emph{default:~1pt})
+\item[\HLTTc{SphereLineColor} (PSTricks color):] (\emph{default:~black})
+\item[\HLTTc{FSphereHeight} (dimension):] (\emph{default:~2})
+\item[\HLTTc{FSphereFillColor} (PSTricks color):] (\emph{default:~lightgray})
+\item[\HLTTc{FSphereString} (string):] (\emph{default:~})
+\item[\HLTTc{FSphereLineWidth} (dimension):] (\emph{default:~1pt})
+\item[\HLTTc{FSphereLineColor} (PSTricks color):] (\emph{default:~black})
+\item[\HLTTc{FluidMaxRadius} (dimension):] (\emph{default:~1})
+\item[\HLTTc{FluidMinRadius} (dimension):] (\emph{default:~.5})
+\item[\HLTTc{FluidHeight} (dimension):] (\emph{default:~.5})
+\item[\HLTTc{FluidFillColor} (PSTricks color):] (\emph{default:~yellow})
+\item[\HLTTc{FluidString} (string):] (\emph{default:~})
+\item[\HLTTc{FluidShearOffsetX} (dimension):] (\emph{default:~0})
+\item[\HLTTc{FluidShearOffsetY} (dimension):] (\emph{default:~0})
+\item[\HLTTc{FluidLineWidth} (dimension):] (\emph{default:~1pt})
+\item[\HLTTc{FluidLineColor} (PSTricks color):] (\emph{default:~black})
+\item[\HLTTc{StringA} (string):] (\emph{default:~})
+\item[\HLTTc{StringB} (string):] (\emph{default:~})
+\item[\HLTTc{TotalAngle} (angle):] (\emph{default:~0})
+\end{description}
+
+\clearpage
+
+\section{High-level Macros ("Objects")}
+\label{sec:high-level-macros}
+
+There are three high-level macros: \macro{PstWallToWall},
+\macro{PstSphereToWall} and \macro{PstPad}.
+
+\subsection{\macro{PstWallToWall}}
+\label{sec:macropstwalltowall}
+
+\begin{LTXexample}[width=5cm]
+\begin{pspicture}(4,4)\psgrid
+ \PstWallToWall(2,2)
+\end{pspicture}
+\end{LTXexample}
+
+\subsection{\macro{PstSphereToWall}}
+\label{sec:macropstspheretowall}
+
+\begin{LTXexample}[width=5cm]
+\begin{pspicture}(4,4)\psgrid
+ \PstSphereToWall[fluid=false](2,2)
+\end{pspicture}
+\end{LTXexample}
+
+
+\subsection{\macro{PstPad}}
+\label{sec:macropstpad}
+
+\begin{LTXexample}[width=5cm]
+\begin{pspicture}(4,4)\psgrid
+ \PstPad(2,2)
+\end{pspicture}
+\end{LTXexample}
+
+\clearpage
+
+\subsection{Basic Usage}
+\label{sec:basic-usage}
+
+The following figure shows the usage of some basic parameters with the
+\macro{PstPad} macro. Green and brown colored values in parentheses give
+default and example values, respectively.
+
+\begin{pspicture}(-5,-4)(7.5,4)%\psgrid
+ \PstPad[%
+ FluidMaxRadius=4,%
+ FluidMinRadius=3,%
+ FluidHeight=1,%
+ FSphereHeight=2,%
+ FSphereFillColor=green!20!white,%
+ FluidFillColor=blue!10!white,%
+ FluidLineWidth=1.5pt,%
+ FSphereLineWidth=0.1pt,%
+ WallLineWidth=3pt,%
+ WallLineColor=blue,%
+ FSphereLineColor=magenta,%
+ FluidLineColor=green!50!black%
+ ](0,0)
+ %%
+ \sffamily\footnotesize%
+ \psset{linecolor=gray, linewidth=0.2pt}
+ %% "Crosshair" for orientation:
+ \psline[linestyle=dashed](-5,0)(5,0)
+ \psline[linestyle=dashed](0,-3)(0,1.5)
+ %% Node definitions:
+ \pnode(0,0){center}
+ \pnode(-4,-2.25){maxradiusLeft}
+ \pnode(0,-2.25){maxradiusRight}
+ \pnode(-3,0){minradiusLeft}
+ \pnode(3,0){minradiusRight}
+ \pnode([nodesep=4.5]center){fluidheightCenter}
+ \pnode([nodesep=4.5,offset=-1]center){fluidheightBottom}
+ \pnode([offset=-1]fluidheightBottom){wallThicknessBottom}
+ \pnode([nodesep=5.2,offset=1]center){fsphereheightBottom}
+ \pnode([offset=1]fsphereheightBottom){fsphereheightTop}
+ %%
+ \psset{arrows=|<->|,linewidth=0.8pt,linecolor=red,arrowscale=1.5}
+ %% Center:
+ \rput[l]([nodesep=.2,offset=.2]center){\textbf{(0,0)}}
+ %% Label FluidMinRadius:
+ \ncline{minradiusLeft}{center}
+ \nbput{\ParCol{FluidMinRadius}{0.5}{3}}
+ %% Label FluidMaxRadius:
+ \ncline{maxradiusLeft}{maxradiusRight}
+ \nbput{\ParCol{FluidMaxRadius}{1}{4}}
+ %% Label FluidHeight:
+ \ncline{fluidheightCenter}{fluidheightBottom}
+ \naput{\ParCol{FluidHeight}{.5}{1}}
+ %% Label WallThickness:
+ \ncline{fluidheightBottom}{wallThicknessBottom}
+ \naput{\ParCol{WallThickness}{1}{1}}
+ %% Label FSpereHeight:
+ \ncline{fsphereheightBottom}{fsphereheightTop}
+ \nbput{\ParCol{FSphereHeight/2}{2}{2}}
+ %% Label FSphereFillColor:
+ \psline{->}(-.1,2.2)(-.3,1.6)
+ \rput(-.1,2.6){\ParCol{FSphereFillColor}{"lightgray"}{"green!20!white"}}
+ %% Label FluidFillColor:
+ \psline{->}(4,2.2)(2.5,.6)
+ \rput(4,2.6){\ParCol{FluidFillColor}{"yellow"}{"blue!10!white"}}
+ %% Label FluidLineWidth:
+ \psline{->}([offset=.5,nodesep=3]minradiusRight)(minradiusRight)
+ \rput[l]([offset=-.1,nodesep=3.2]minradiusRight){\ParCol{FluidLineWidth}{1pt}{1.5pt}}
+ \rput[l]([offset=.8,nodesep=3.2]minradiusRight){\ParCol{FluidLineColor}{"black"}{"green!50!black"}}
+ %% Label FSphereLineWidth:
+ \psline{->}(-4.3,2.2)(-3.5,1)
+ \rput(-4.3,2.6){\ParCol{FSphereLineWidth}{1pt}{0.1pt}}
+ \rput(-4.3,3.4){\ParCol{FSphereLineColor}{"black"}{"magenta"}}
+ %% Label WallLineWidth:
+ \psline{->}(1.5,-2.25)(1.5,-1)
+ \rput[t](1.5,-2.5){\ParCol{WallLineWidth}{1pt}{3pt}}
+ \rput[t](1.5,-3.4){\ParCol{WallLineColor}{"black"}{"blue"}}
+\end{pspicture}
+
+\subsection{Liquid shearing}
+\label{sec:liquid-shearing}
+
+Sheared liquids sandwiched in between two surfaces can also be displayed. The
+following figures shows the usage of the
+parameters \parameter{FluidShearOffsetX}
+and \parameter{FluidShearOffsetY}. Again, green and brown colored values in
+parentheses give default and example values, respectively.
+
+\subsubsection[\parameter{FluidShearOffsetX}]{Parameter \parameter{FluidShearOffsetX}}
+\label{sec:param-offsetx}
+
+\parameter{FluidShearOffsetX}\ describes the x offset from the current value
+of \parameter{FluidMaxRadius}.
+
+\begin{center}
+ \begin{pspicture}[showgrid=false](-5,-2)(4.5,2)%
+ \PstPad[%
+ FluidHeight=1,%
+ FluidShearOffsetX=0.6%
+ ](0,0)
+ %% Labeling:
+ \sffamily\footnotesize%
+ \psset{linecolor=black, linewidth=0.2pt}
+ \psline[linestyle=dotted](-2.5,0)(1.5,0)
+ \psline[linestyle=dotted](0,-1)(0,1.5)
+
+ %% Node definitions:
+ \pnode(0,0){center}
+ \pnode(-1,-2.25){maxradiusLeft}
+ \pnode(0,-2.25){maxradiusRight}
+
+ \pnode(-1,0){maxradiusLeftZero}
+ \pnode(0,0){maxradiusRightZero}
+
+ \pnode([nodesep=-0.6]maxradiusLeft){Xoffset}
+ \pnode([nodesep=-0.6]maxradiusLeftZero){XoffsetZero}
+
+ \psline[linestyle=dotted]([offset=-1]maxradiusLeftZero)([offset=.5]maxradiusLeftZero)
+ \psline[linestyle=dotted]([offset=-1]XoffsetZero)([offset=.5]XoffsetZero)
+ %%
+ %%
+ \psset{arrowscale=2,arrows=|<->|}
+ %% Label FluidMaxRadiusLeft:
+ \ncline{maxradiusLeft}{maxradiusRight}
+ \nbput[npos=0.5]{\ParCol{FluidMaxRadius}{1}{1}}
+ %% Label FluidShearOffsetX:
+ \ncline[linecolor=red]{maxradiusLeftZero}{XoffsetZero}
+ \nbput[npos=1.6]{\ParCol{FluidShearOffsetX}{0}{.6}}
+ \end{pspicture}
+\end{center}
+
+\subsubsection[\parameter{FluidShearOffsetY}]{Parameter \parameter{FluidShearOffsetY}}
+\label{sec:param-offsety}
+
+\parameter{FluidShearOffsetY}\ describes the y offset from zero to determine the
+curvature of the meniscus.
+
+\begin{center}
+ \begin{pspicture}[showgrid=false](-4.5,-2)(4.5,2)%
+ \PstPad[%
+ FluidHeight=1,%
+ FluidShearOffsetY=0.4%
+ ](0,0)
+ %% Labeling:
+ \sffamily\footnotesize%
+ \psset{linecolor=black, linewidth=0.2pt}
+ \psline[linestyle=dotted](-2.5,0)(1.5,0)
+ \psline[linestyle=dotted](0,-1)(0,1.5)
+ %% Node definitions:
+ \pnode(0,0){center}
+ \pnode([nodesep=1.5]center){fluidheightCenterRight}
+ \pnode([nodesep=-1.5]center){fluidheightCenterLeft}
+ \pnode([nodesep=-1.5,offset=1]center){fluidheightTop}
+ \pnode([offset=-0.4]fluidheightCenterRight){Yoffset}
+ %%
+ \psline[linestyle=dotted](0,-.4)(1.7,-.4)
+ %%
+ \psset{arrowscale=2,arrows=|<->|}
+ %% Label FluidHeight:
+ \ncline{fluidheightCenterLeft}{fluidheightTop}
+ \naput{\ParCol{FluidHeight}{.5}{1}}
+ %% Label FluidShearOffsetY:
+ \ncline[linecolor=red]{fluidheightCenterRight}{Yoffset}
+ \naput{\ParCol{FluidShearOffsetY}{0}{.4}}
+ \end{pspicture}
+\end{center}
+
+
+\subsection{Tilting parameters}
+\label{sec:tilting-parameters}
+
+The following figure shows the usage of the \parameter{TotalAngle}
+parameter. The default angle is 0 degrees. Again, green and brown colored
+values in parentheses give default and example values, respectively.
+
+\begin{center}
+\begin{pspicture}(-2.5,-2)(4,2.5)%
+ %%
+ \PstPad[TotalAngle=30](0,0)
+ %% Labeling:
+ \sffamily\footnotesize%
+ \psset{linecolor=black, linewidth=0.2pt}
+ \psline[linestyle=dotted](-2.5,0)(2.5,0)
+ \psline[linestyle=dotted](0,-1)(0,1.5)
+ \rput{30}{%
+ \psline[linestyle=dashed](-2.5,0)(2.5,0)
+ \psline[linestyle=dashed](0,-1)(0,1.5)
+ }
+ \pnode(0,0){center}
+ \psset{linecolor=red}
+ \psarc[arrowscale=2]{<->}(center){2.25}{0}{30}
+ \rput[l]([nodesep=2.5,angle=15]center){%
+ \ParCol{TotalAngle}{0}{30}}%
+\end{pspicture}
+\end{center}
+
+\section{Example Usage}
+\label{sec:example-usage}
+
+\begin{LTXexample}[width=5cm]
+\begin{pspicture}(4,4)\psgrid
+ \PstWallToWall[%
+ FluidFillColor=red,%
+ TotalAngle=10%
+ ](2,2)
+\end{pspicture}
+\end{LTXexample}
+
+
+\begin{LTXexample}[width=5cm]
+\begin{pspicture}(4,4)\psgrid
+ \tiny\sffamily%
+ \PstPad[%
+ FluidFillColor=blue!30!white,%
+ FluidLineColor=blue!70!black,%
+ FSphereFillColor=yellow!40!white,%
+ FSphereLineColor=red!70!black,%
+ FluidString={fluid A},%
+ FluidShearOffsetX=0.1,%
+ FluidShearOffsetY=0.2,%
+ WallThickness=0.4,%
+ FSphereHeight=1,%
+ StringA={sliding insect pad}%
+ ](2,2)
+\end{pspicture}
+\end{LTXexample}
+
+
+\begin{LTXexample}[width=5cm]
+\begin{pspicture}(4,4)\psgrid
+ \PstSphereToWall[%
+ fluid=false,%
+ SphereRadius=1.5,%
+ SphereStartAngle=190,%
+ SphereEndAngle=350,%
+ SphereOffset=0.1,%
+ StringA={string a},%
+ StringB={string b}%
+ ](2,2)
+\end{pspicture}
+\end{LTXexample}
+
+\section{Low-level Macros}
+\label{sec:low-level-macros}
+
+There are four low-level macros: \macro{PstWall}, \macro{PstFluid},
+\macro{PstSphere} and \macro{PstFlattenedSphere}.
+
+\subsection{\macro{PstWall}}
+\label{sec:macropstwall}
+
+\begin{LTXexample}[width=5cm]
+ \begin{pspicture}[showgrid=true](4,2)
+ \PstWall(2,1.5)
+ \end{pspicture}
+\end{LTXexample}
+
+\subsection{\macro{PstFluid}}
+\label{sec:macropstfluid}
+
+\begin{LTXexample}[width=5cm]
+ \begin{pspicture}[showgrid=true](4,2)
+ \rput(2,1){\PstFluid[unit=1pt](0,0)}
+ \end{pspicture}
+\end{LTXexample}
+
+
+\clearpage
+
+\subsection{\macro{PstSphere}}
+\label{sec:macropstsphere}
+
+\begin{LTXexample}[width=5cm]
+ \begin{pspicture}[showgrid=true](4,2)
+ \PstSphere(2,.5)
+ \end{pspicture}
+\end{LTXexample}
+
+\subsection{\macro{PstFlattenedSphere}}
+\label{sec:macr}
+
+\begin{LTXexample}[width=5cm]
+ \begin{pspicture}[showgrid=true](4,2)
+ \PstFlattenedSphere(2,.5)
+ \end{pspicture}
+\end{LTXexample}
+
+
+\section{TODO}
+\label{sec:todo}
+
+\begin{itemize}
+\item Enhance calculations and number conversions.
+\item Implement different degrees of surface roughness.
+\item Implement fluid film contact angle parameter.
+\end{itemize}
+
+
+\section{Acknowledgements}
+\label{sec:acknowledgements}
+
+I would like to thank Herbert Voß and Alan Ristow for their help on getting me
+started with PSTricks macros and low-level calculations in PostScript and \TeX.
+
+\end{document}
+
+%%% Local Variables:
+%%% TeX-command-default: "Make"
+%%% mode: latex
+%%% TeX-master: t
+%%% End:
diff --git a/graphics/pstricks/contrib/pst-pad/pst-pad-docDE.pdf b/graphics/pstricks/contrib/pst-pad/pst-pad-docDE.pdf
new file mode 100644
index 0000000000..03e4f7264e
--- /dev/null
+++ b/graphics/pstricks/contrib/pst-pad/pst-pad-docDE.pdf
Binary files differ
diff --git a/graphics/pstricks/contrib/pst-pad/pst-pad-docDE.tex b/graphics/pstricks/contrib/pst-pad/pst-pad-docDE.tex
new file mode 100644
index 0000000000..fcc2360ef0
--- /dev/null
+++ b/graphics/pstricks/contrib/pst-pad/pst-pad-docDE.tex
@@ -0,0 +1,436 @@
+%% Filename: pst-pad-docDE.tex
+%%
+%% Author: Patrick Drechsler
+%%
+%% Created: Fri Mar 21 13:05:37 2008
+%%
+%% Version: $Id: pst-pad-docDE.tex 333 2008-03-22 00:21:39Z patrick $
+%%
+\listfiles
+\documentclass{scrartcl}
+\usepackage[ngerman]{babel}
+\input{pst-pad-doc-header}
+\newcommand{\summary}{Ein PSTricks Packet zum Zeichnen von Haftmodellen}
+\newcommand{\zB}{z.\,B.~}
+
+\begin{document}
+%% Anführungszeichen aktivieren:
+\EnableQuotes
+
+\title{\texttt{pst-pad}\\\summary\\\normalsize ver. \verPstPad}
+\author{\AuthorName\thanks{\AuthorEmail}} \date{\today}
+\maketitle
+
+\begin{abstract}
+\PadPackage{}: \summary.
+\end{abstract}
+
+\setlength{\columnseprule}{0.6pt}
+\begin{multicols}{2}
+{\parskip 0pt \tableofcontents}
+\end{multicols}
+
+\section{Einleitung}
+\label{sec:introduction}
+
+Das Packet \PadPackage{} ist eine kleine Sammlung von PSTricks Makros um
+Adhäsions- und Reibungssysteme darzustellen (\zB JKR- oder Hertz-Theorie,
+Grenzflächenreibung, (elasto-)hydrodynamische Reibung). Die zur Verfügung
+gestellten Makros erlauben den zwei beteiligten Körpern unterschiedliche Formen
+zu geben (planar, kugelförmig, elastisch) sowie einen optionalen
+Flüssigkeitsfilm zwischen diese Körper zu platzieren. Der Name \PadPackage{}
+kommt vom englischen Begriff für Haftorgane bei Tieren ("attachment pads"),
+meinem früheren Forschungsgebiet.
+
+\section{Parameter}
+\label{sec:parameters}
+
+Die folgenden Parameter stehen zur Verfügung.
+
+\let\HLTTc\textsf
+%\begin{multicols}{2}
+\begin{description}
+\item[\HLTTc{fluid} (boolean):] (\emph{default:~true})
+\item[\HLTTc{WallThickness} (dimension):] (\emph{default:~1})
+\item[\HLTTc{WallString} (string):] (\emph{default:~})
+\item[\HLTTc{WallAngle} (PSTricks color):] (\emph{default:~0})
+\item[\HLTTc{WallLineWidth} (dimension):] (\emph{default:~1pt})
+\item[\HLTTc{WallLineColor} (PSTricks color):] (\emph{default:~black})
+\item[\HLTTc{SphereStartAngle} (dimension):] (\emph{default:~180})
+\item[\HLTTc{SphereEndAngle} (boolean):] (\emph{default:~360})
+\item[\HLTTc{SphereRadius} (dimension):] (\emph{default:~1})
+\item[\HLTTc{ShpereString} (string):] (\emph{default:~})
+\item[\HLTTc{SphereOffset} (dimension):] (\emph{default:~0})
+\item[\HLTTc{SphereFillColor} (PSTricks color):] (\emph{default:~white})
+\item[\HLTTc{SphereLineWidth} (dimension):] (\emph{default:~1pt})
+\item[\HLTTc{SphereLineColor} (PSTricks color):] (\emph{default:~black})
+\item[\HLTTc{FSphereHeight} (dimension):] (\emph{default:~2})
+\item[\HLTTc{FSphereFillColor} (PSTricks color):] (\emph{default:~lightgray})
+\item[\HLTTc{FSphereString} (string):] (\emph{default:~})
+\item[\HLTTc{FSphereLineWidth} (dimension):] (\emph{default:~1pt})
+\item[\HLTTc{FSphereLineColor} (PSTricks color):] (\emph{default:~black})
+\item[\HLTTc{FluidMaxRadius} (dimension):] (\emph{default:~1})
+\item[\HLTTc{FluidMinRadius} (dimension):] (\emph{default:~.5})
+\item[\HLTTc{FluidHeight} (dimension):] (\emph{default:~.5})
+\item[\HLTTc{FluidFillColor} (PSTricks color):] (\emph{default:~yellow})
+\item[\HLTTc{FluidString} (string):] (\emph{default:~})
+\item[\HLTTc{FluidShearOffsetX} (dimension):] (\emph{default:~0})
+\item[\HLTTc{FluidShearOffsetY} (dimension):] (\emph{default:~0})
+\item[\HLTTc{FluidLineWidth} (dimension):] (\emph{default:~1pt})
+\item[\HLTTc{FluidLineColor} (PSTricks color):] (\emph{default:~black})
+\item[\HLTTc{StringA} (string):] (\emph{default:~})
+\item[\HLTTc{StringB} (string):] (\emph{default:~})
+\item[\HLTTc{TotalAngle} (angle):] (\emph{default:~0})
+\end{description}
+
+\clearpage
+
+\section{High-level Makros ("Objekte")}
+\label{sec:high-level-macros}
+
+Es gibt drei "high-level" Makros: \macro{PstWallToWall},
+\macro{PstSphereToWall} and \macro{PstPad}.
+
+\subsection{\macro{PstWallToWall}}
+\label{sec:macropstwalltowall}
+
+\begin{LTXexample}[width=5cm]
+\begin{pspicture}(4,4)\psgrid
+ \PstWallToWall(2,2)
+\end{pspicture}
+\end{LTXexample}
+
+\subsection{\macro{PstSphereToWall}}
+\label{sec:macropstspheretowall}
+
+\begin{LTXexample}[width=5cm]
+\begin{pspicture}(4,4)\psgrid
+ \PstSphereToWall[fluid=false](2,2)
+\end{pspicture}
+\end{LTXexample}
+
+
+\subsection{\macro{PstPad}}
+\label{sec:macropstpad}
+
+\begin{LTXexample}[width=5cm]
+\begin{pspicture}(4,4)\psgrid
+ \PstPad(2,2)
+\end{pspicture}
+\end{LTXexample}
+
+\clearpage
+
+\subsection{Anwendung}
+\label{sec:basic-usage}
+
+Die folgende Abbildung zeigt die Verwendung des Makros \macro{PstPad} und
+einiger Parameter. Grün und braun gefärbte Werte in Klammern zeigen die
+voreingestellten und im Beispiel verwendeten Werte.
+
+\begin{pspicture}(-5,-4)(7.5,4)%\psgrid
+ \PstPad[%
+ FluidMaxRadius=4,%
+ FluidMinRadius=3,%
+ FluidHeight=1,%
+ FSphereHeight=2,%
+ FSphereFillColor=green!20!white,%
+ FluidFillColor=blue!10!white,%
+ FluidLineWidth=1.5pt,%
+ FSphereLineWidth=0.1pt,%
+ WallLineWidth=3pt,%
+ WallLineColor=blue,%
+ FSphereLineColor=magenta,%
+ FluidLineColor=green!50!black%
+ ](0,0)
+ %%
+ \sffamily\footnotesize%
+ \psset{linecolor=gray, linewidth=0.2pt}
+ %% "Crosshair" for orientation:
+ \psline[linestyle=dashed](-5,0)(5,0)
+ \psline[linestyle=dashed](0,-3)(0,1.5)
+ %% Node definitions:
+ \pnode(0,0){center}
+ \pnode(-4,-2.25){maxradiusLeft}
+ \pnode(0,-2.25){maxradiusRight}
+ \pnode(-3,0){minradiusLeft}
+ \pnode(3,0){minradiusRight}
+ \pnode([nodesep=4.5]center){fluidheightCenter}
+ \pnode([nodesep=4.5,offset=-1]center){fluidheightBottom}
+ \pnode([offset=-1]fluidheightBottom){wallThicknessBottom}
+ \pnode([nodesep=5.2,offset=1]center){fsphereheightBottom}
+ \pnode([offset=1]fsphereheightBottom){fsphereheightTop}
+ %%
+ \psset{arrows=|<->|,linewidth=0.8pt,linecolor=red,arrowscale=1.5}
+ %% Center:
+ \rput[l]([nodesep=.2,offset=.2]center){\textbf{(0,0)}}
+ %% Label FluidMinRadius:
+ \ncline{minradiusLeft}{center}
+ \nbput{\ParCol{FluidMinRadius}{0.5}{3}}
+ %% Label FluidMaxRadius:
+ \ncline{maxradiusLeft}{maxradiusRight}
+ \nbput{\ParCol{FluidMaxRadius}{1}{4}}
+ %% Label FluidHeight:
+ \ncline{fluidheightCenter}{fluidheightBottom}
+ \naput{\ParCol{FluidHeight}{.5}{1}}
+ %% Label WallThickness:
+ \ncline{fluidheightBottom}{wallThicknessBottom}
+ \naput{\ParCol{WallThickness}{1}{1}}
+ %% Label FSpereHeight:
+ \ncline{fsphereheightBottom}{fsphereheightTop}
+ \nbput{\ParCol{FSphereHeight/2}{2}{2}}
+ %% Label FSphereFillColor:
+ \psline{->}(-.1,2.2)(-.3,1.6)
+ \rput(-.1,2.6){\ParCol{FSphereFillColor}{"lightgray"}{"green!20!white"}}
+ %% Label FluidFillColor:
+ \psline{->}(4,2.2)(2.5,.6)
+ \rput(4,2.6){\ParCol{FluidFillColor}{"yellow"}{"blue!10!white"}}
+ %% Label FluidLineWidth:
+ \psline{->}([offset=.5,nodesep=3]minradiusRight)(minradiusRight)
+ \rput[l]([offset=-.1,nodesep=3.2]minradiusRight){\ParCol{FluidLineWidth}{1pt}{1.5pt}}
+ \rput[l]([offset=.8,nodesep=3.2]minradiusRight){\ParCol{FluidLineColor}{"black"}{"green!50!black"}}
+ %% Label FSphereLineWidth:
+ \psline{->}(-4.3,2.2)(-3.5,1)
+ \rput(-4.3,2.6){\ParCol{FSphereLineWidth}{1pt}{0.1pt}}
+ \rput(-4.3,3.4){\ParCol{FSphereLineColor}{"black"}{"magenta"}}
+ %% Label WallLineWidth:
+ \psline{->}(1.5,-2.25)(1.5,-1)
+ \rput[t](1.5,-2.5){\ParCol{WallLineWidth}{1pt}{3pt}}
+ \rput[t](1.5,-3.4){\ParCol{WallLineColor}{"black"}{"blue"}}
+\end{pspicture}
+
+\subsection{Scherender Flüssigkeitsfilm}
+\label{sec:liquid-shearing}
+
+Flüssigkeitsfilme zwischen zwei Oberflächen können auch mit einer Scherung
+dargestellt werden. Die folgenden Abbildungen zeigt die Verwendung der
+Parameter \parameter{FluidShearOffsetX} und \parameter{FluidShearOffsetY}. Grün
+und braun gefärbte Werte in Klammern zeigen wieder die Voreinstellung und die
+Beispielwerte.
+
+\subsubsection[\parameter{FluidShearOffsetX}]{Parameter \parameter{FluidShearOffsetX}}
+\label{sec:param-offsetx}
+
+\parameter{FluidShearOffsetX}\ beschreibt den Offset vom Wert des
+Parameters \parameter{FluidMaxRadius} in x Richtung.
+
+\begin{center}
+ \begin{pspicture}[showgrid=false](-5,-2)(4.5,2)%
+ \PstPad[%
+ FluidHeight=1,%
+ FluidShearOffsetX=0.6%
+ ](0,0)
+ %% Labeling:
+ \sffamily\footnotesize%
+ \psset{linecolor=black, linewidth=0.2pt}
+ \psline[linestyle=dotted](-2.5,0)(1.5,0)
+ \psline[linestyle=dotted](0,-1)(0,1.5)
+
+ %% Node definitions:
+ \pnode(0,0){center}
+ \pnode(-1,-2.25){maxradiusLeft}
+ \pnode(0,-2.25){maxradiusRight}
+
+ \pnode(-1,0){maxradiusLeftZero}
+ \pnode(0,0){maxradiusRightZero}
+
+ \pnode([nodesep=-0.6]maxradiusLeft){Xoffset}
+ \pnode([nodesep=-0.6]maxradiusLeftZero){XoffsetZero}
+
+ \psline[linestyle=dotted]([offset=-1]maxradiusLeftZero)([offset=.5]maxradiusLeftZero)
+ \psline[linestyle=dotted]([offset=-1]XoffsetZero)([offset=.5]XoffsetZero)
+ %%
+ %%
+ \psset{arrowscale=2,arrows=|<->|}
+ %% Label FluidMaxRadiusLeft:
+ \ncline{maxradiusLeft}{maxradiusRight}
+ \nbput[npos=0.5]{\ParCol{FluidMaxRadius}{1}{1}}
+ %% Label FluidShearOffsetX:
+ \ncline[linecolor=red]{maxradiusLeftZero}{XoffsetZero}
+ \nbput[npos=1.6]{\ParCol{FluidShearOffsetX}{0}{.6}}
+ \end{pspicture}
+\end{center}
+
+\subsubsection[\parameter{FluidShearOffsetY}]{Parameter \parameter{FluidShearOffsetY}}
+\label{sec:param-offsety}
+
+Mit dem Parameter \parameter{FluidShearOffsetY}\ kann der Krümmungsradius des
+Flüssigkeitmeniskus beeinflußt werden. Der Parameter beschreibt den Offset von
+Null in y Richtung.
+
+\begin{center}
+ \begin{pspicture}[showgrid=false](-4.5,-2)(4.5,2)%
+ \PstPad[%
+ FluidHeight=1,%
+ FluidShearOffsetY=0.4%
+ ](0,0)
+ %% Labeling:
+ \sffamily\footnotesize%
+ \psset{linecolor=black, linewidth=0.2pt}
+ \psline[linestyle=dotted](-2.5,0)(1.5,0)
+ \psline[linestyle=dotted](0,-1)(0,1.5)
+ %% Node definitions:
+ \pnode(0,0){center}
+ \pnode([nodesep=1.5]center){fluidheightCenterRight}
+ \pnode([nodesep=-1.5]center){fluidheightCenterLeft}
+ \pnode([nodesep=-1.5,offset=1]center){fluidheightTop}
+ \pnode([offset=-0.4]fluidheightCenterRight){Yoffset}
+ %%
+ \psline[linestyle=dotted](0,-.4)(1.7,-.4)
+ %%
+ \psset{arrowscale=2,arrows=|<->|}
+ %% Label FluidHeight:
+ \ncline{fluidheightCenterLeft}{fluidheightTop}
+ \naput{\ParCol{FluidHeight}{.5}{1}}
+ %% Label FluidShearOffsetY:
+ \ncline[linecolor=red]{fluidheightCenterRight}{Yoffset}
+ \naput{\ParCol{FluidShearOffsetY}{0}{.4}}
+ \end{pspicture}
+\end{center}
+
+
+\subsection{Drehwinkel}
+\label{sec:tilting-parameters}
+
+Die folgende Abbildung demonstriert die Verwendung des
+Parameters \parameter{TotalAngle} um die Abbildung zu drehen. Der
+voreingestellte Drehwinkel beträgt 0 Grad. Grün und braun gefärbte Werte in
+Klammern zeigen wieder die Voreinstellung und die Beispielwerte.
+
+\begin{center}
+\begin{pspicture}(-2.5,-2)(4,2.5)%
+ %%
+ \PstPad[TotalAngle=30](0,0)
+ %% Labeling:
+ \sffamily\footnotesize%
+ \psset{linecolor=black, linewidth=0.2pt}
+ \psline[linestyle=dotted](-2.5,0)(2.5,0)
+ \psline[linestyle=dotted](0,-1)(0,1.5)
+ \rput{30}{%
+ \psline[linestyle=dashed](-2.5,0)(2.5,0)
+ \psline[linestyle=dashed](0,-1)(0,1.5)
+ }
+ \pnode(0,0){center}
+ \psset{linecolor=red}
+ \psarc[arrowscale=2]{<->}(center){2.25}{0}{30}
+ \rput[l]([nodesep=2.5,angle=15]center){%
+ \ParCol{TotalAngle}{0}{30}}%
+\end{pspicture}
+\end{center}
+
+\section{Beispiele}
+\label{sec:example-usage}
+
+\begin{LTXexample}[width=5cm]
+\begin{pspicture}(4,4)\psgrid
+ \PstWallToWall[%
+ FluidFillColor=red,%
+ TotalAngle=10%
+ ](2,2)
+\end{pspicture}
+\end{LTXexample}
+
+
+\begin{LTXexample}[width=5cm]
+\begin{pspicture}(4,4)\psgrid
+ \tiny\sffamily%
+ \PstPad[%
+ FluidFillColor=blue!30!white,%
+ FluidLineColor=blue!70!black,%
+ FSphereFillColor=yellow!40!white,%
+ FSphereLineColor=red!70!black,%
+ FluidString={fluid A},%
+ FluidShearOffsetX=0.1,%
+ FluidShearOffsetY=0.2,%
+ WallThickness=0.4,%
+ FSphereHeight=1,%
+ StringA={sliding insect pad}%
+ ](2,2)
+\end{pspicture}
+\end{LTXexample}
+
+
+\begin{LTXexample}[width=5cm]
+\begin{pspicture}(4,4)\psgrid
+ \PstSphereToWall[%
+ fluid=false,%
+ SphereRadius=1.5,%
+ SphereStartAngle=190,%
+ SphereEndAngle=350,%
+ SphereOffset=0.1,%
+ StringA={string a},%
+ StringB={string b}%
+ ](2,2)
+\end{pspicture}
+\end{LTXexample}
+
+\section{Low-level Makros}
+\label{sec:low-level-macros}
+
+Es gibt vier "low-level" Makros: \macro{PstWall}, \macro{PstFluid},
+\macro{PstSphere} und \macro{PstFlattenedSphere}.
+
+\subsection{\macro{PstWall}}
+\label{sec:macropstwall}
+
+\begin{LTXexample}[width=5cm]
+ \begin{pspicture}[showgrid=true](4,2)
+ \PstWall(2,1.5)
+ \end{pspicture}
+\end{LTXexample}
+
+\subsection{\macro{PstFluid}}
+\label{sec:macropstfluid}
+
+\begin{LTXexample}[width=5cm]
+ \begin{pspicture}[showgrid=true](4,2)
+ \rput(2,1){\PstFluid[unit=1pt](0,0)}
+ \end{pspicture}
+\end{LTXexample}
+
+
+\clearpage
+
+\subsection{\macro{PstSphere}}
+\label{sec:macropstsphere}
+
+\begin{LTXexample}[width=5cm]
+ \begin{pspicture}[showgrid=true](4,2)
+ \PstSphere(2,.5)
+ \end{pspicture}
+\end{LTXexample}
+
+\subsection{\macro{PstFlattenedSphere}}
+\label{sec:macr}
+
+\begin{LTXexample}[width=5cm]
+ \begin{pspicture}[showgrid=true](4,2)
+ \PstFlattenedSphere(2,.5)
+ \end{pspicture}
+\end{LTXexample}
+
+
+\section{TODO}
+\label{sec:todo}
+
+\begin{itemize}
+\item Interne Berechnungen und Einheitenumwandlungen verbessern.
+\item Oberflächenrauigkeit implementieren.
+\item Flüssigkeitskontaktwinkeloption implementieren.
+\end{itemize}
+
+
+\section{Danksagung}
+\label{sec:acknowledgements}
+
+Ich danke Herbert Voß und Alan Ristow für ihre Hilfe mir die Grundzüge von
+PSTricks Makros und das Rechnen mit PostScript und \TeX\ nähergebracht zu
+haben.
+
+\end{document}
+
+%%% Local Variables:
+%%% TeX-command-default: "Make"
+%%% mode: latex
+%%% TeX-master: t
+%%% End:
diff --git a/graphics/pstricks/contrib/pst-pad/pst-pad.sty b/graphics/pstricks/contrib/pst-pad/pst-pad.sty
new file mode 100644
index 0000000000..789450bb44
--- /dev/null
+++ b/graphics/pstricks/contrib/pst-pad/pst-pad.sty
@@ -0,0 +1,7 @@
+\RequirePackage{pstricks}
+\ProvidesPackage{pst-pad}[2008/02/08 package wrapper for
+ pst-pad.tex (pd)]
+\input{pst-pad.tex}
+\ProvidesFile{pst-pad.tex}
+ [\filedate\space v\fileversion\space `PST-pad' (pd)]
+\endinput
diff --git a/graphics/pstricks/contrib/pst-pad/pst-pad.tex b/graphics/pstricks/contrib/pst-pad/pst-pad.tex
new file mode 100644
index 0000000000..b637f3ffdf
--- /dev/null
+++ b/graphics/pstricks/contrib/pst-pad/pst-pad.tex
@@ -0,0 +1,456 @@
+%%
+%% Package `pst-pad.tex'
+%%
+%% Patrick Drechsler
+%%
+%% Version: $Id: pst-pad.tex 343 2008-08-19 21:05:10Z patrick $
+%%
+%%
+%% DESCRIPTION:
+%%
+%% `pst-pad' is a PSTricks package to draw adhesion systems like
+%% Johnson-Kendall-Roberts (JKR) models, Hertz adhesion model and wet adhesion
+%% model.
+%%
+%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%
+%%% TODO:
+%%
+%% PDTODO:A Implement "rough surfaces"
+%%
+%% PDTODO:A Create fluid contact angle option for Fluid. Not implemented yet.
+%%
+%% PDTODO:B Create options for surface combinations (basics of surface
+%% macros are present):
+%%
+%% - flat flat (ff): PstWall - PstWall
+%%
+%% - flat sphere (fs): PstWall - PstSphere
+%%
+%% - flat Fsphere (fp): PstWall - FSphere
+%%
+%% - surface rougness (roughness)
+%%
+%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%
+% ============================================================
+\csname PSTpadLoaded\endcsname%
+\let\PSTpadLoaded\endinput%
+%
+%% Require PSTricks, pst-node, multido and pst-xkey packages:
+%
+\ifx\PSTMultidoLoaded\endinput\else\input multido.tex\fi%
+\ifx\PSTricksLoaded\endinput\else\input pstricks.tex\fi%
+\ifx\PSTnodeLoaded\endinput\else\input pst-node.tex\fi%
+\ifx\PSTXKeyLoaded\endinput\else\input pst-xkey \fi%
+%
+%% Define Version info:
+%
+\def\fileversion{0.3c}%
+\def\filedate{2008/08/19}%
+\message{`pst-pad' v\fileversion (pd)}%
+%
+% Allow to use the @ character for all internal macros
+\edef\PstAtCode{\the\catcode`\@}%
+\catcode`\@=11\relax%
+%
+%% Create new xkeyval family:
+%
+\pst@addfams{pst-pad}%
+%
+%% Not needed so far:
+% \pstheader{pst-pad.pro}
+%
+%% Activate special coordinates:
+%
+\SpecialCoor%
+%
+% ============================================================
+% Key definitions: ============================================
+% ============================================================
+\define@key[psset]{pst-pad}{WallThickness}{\pst@getlength{#1}\Pst@WallThickness}%
+\define@key[psset]{pst-pad}{WallLineWidth}{\pst@getlength{#1}\Pst@WallLineWidth}%
+\define@key[psset]{pst-pad}{WallLineColor}{\pst@getcolor{#1}\Pst@WallLineColor}%
+\define@key[psset]{pst-pad}{WallString}{\def\psk@WallString{#1}}%
+\define@key[psset]{pst-pad}{WallAngle}{\pst@getangle{#1}\Pst@WallAngle}%
+%%
+\define@key[psset]{pst-pad}{SphereRadius}{\pst@getlength{#1}\Pst@SphereRadius}%
+\define@key[psset]{pst-pad}{SphereStartAngle}{\pst@getangle{#1}\Pst@SphereStartAngle}%
+\define@key[psset]{pst-pad}{SphereEndAngle}{\pst@getangle{#1}\Pst@SphereEndAngle}%
+\define@key[psset]{pst-pad}{SphereString}{\def\psk@SphereString{#1}}%
+\define@key[psset]{pst-pad}{SphereOffset}{\pst@getlength{#1}\Pst@SphereOffset}%
+\define@key[psset]{pst-pad}{SphereFillColor}{\pst@getcolor{#1}\Pst@SphereFillColor}%
+\define@key[psset]{pst-pad}{SphereLineWidth}{\pst@getlength{#1}\Pst@SphereLineWidth}%
+\define@key[psset]{pst-pad}{SphereLineColor}{\pst@getcolor{#1}\Pst@SphereLineColor}%
+%%
+\define@key[psset]{pst-pad}{FSphereHeight}{\pst@getlength{#1}\Pst@FSphereHeight}%
+\define@key[psset]{pst-pad}{FSphereFillColor}{\pst@getcolor{#1}\Pst@FSphereFillColor}%
+\define@key[psset]{pst-pad}{FSphereString}{\def\psk@FSphereString{#1}}%
+\define@key[psset]{pst-pad}{FSphereLineWidth}{\pst@getlength{#1}\Pst@FSphereLineWidth}%
+\define@key[psset]{pst-pad}{FSphereLineColor}{\pst@getcolor{#1}\Pst@FSphereLineColor}%
+%%
+\define@key[psset]{pst-pad}{FluidMaxRadius}{\pst@getlength{#1}\Pst@FluidMaxRadius}%
+\define@key[psset]{pst-pad}{FluidMinRadius}{\pst@getlength{#1}\Pst@FluidMinRadius}%
+\define@key[psset]{pst-pad}{FluidShearOffsetX}{\pst@getlength{#1}\Pst@FluidShearOffsetX}%
+\define@key[psset]{pst-pad}{FluidShearOffsetY}{\pst@getlength{#1}\Pst@FluidShearOffsetY}%
+\define@key[psset]{pst-pad}{FluidHeight}{\pst@getlength{#1}\Pst@FluidHeight}%
+\define@key[psset]{pst-pad}{FluidFillColor}{\pst@getcolor{#1}\Pst@FluidFillColor}%
+\define@key[psset]{pst-pad}{FluidString}{\def\psk@FluidString{#1}}%
+\define@key[psset]{pst-pad}{FluidLineWidth}{\pst@getlength{#1}\Pst@FluidLineWidth}%
+\define@key[psset]{pst-pad}{FluidLineColor}{\pst@getcolor{#1}\Pst@FluidLineColor}%
+%%
+\define@key[psset]{pst-pad}{StringA}{\def\psk@StringA{#1}}%
+\define@key[psset]{pst-pad}{StringB}{\def\psk@StringB{#1}}%
+%%
+\define@key[psset]{pst-pad}{TotalAngle}{\pst@getangle{#1}\Pst@TotalAngle}%
+%%
+%% TODO: Change this variables from dim to number:
+\define@key[psset]{pst-pad}{RoughnessMax}{\pst@getlength{#1}\Pst@RoughnessMax}%
+\define@key[psset]{pst-pad}{RoughnessWidth}{\pst@getlength{#1}\Pst@RoughnessWidth}%
+%%
+\define@boolkey[psset]{pst-pad}[Pst@]{fluid}[true]{}%
+%%
+\define@boolkey[psset]{pst-pad}[Pst@]{rough}[true]{}%
+\define@boolkey[psset]{pst-pad}[Pst@]{roughA}[true]{}%
+\define@boolkey[psset]{pst-pad}[Pst@]{roughB}[true]{}%
+
+%% I might need something like this for defining different surfaces.
+%%
+%% Adapted From pst-labo.tex :
+%%
+%% 0->PAD 1->WALL 2->SPHERE
+% \def\pst@@PAD{pad}
+% \def\pst@@WALL{wall}
+% \def\pst@@SPHERE{sphere}
+% %
+% \define@key[psset]{pst-pad}{surfaceType}{%
+% \def\pst@tempA{#1}
+% \edef\psk@surfaceType{%
+% \ifx\pst@@PAD\pst@tempA 0 \else
+% \ifx\pst@@WALL\pst@tempA 1 \else
+% \ifx\pst@@SPHERE\pst@tempA 2 \else 0
+% \typeout{pst-pad: unknown surfaceType -> #1}
+% \typeout{ using type "pad" instead.}
+% \fi\fi\fi\fi% % default is pad
+% }}
+
+% ============================================================
+% Default psset values: =======================================
+% ============================================================
+\psset[pst-pad]{%
+ fluid=true, rough=false, roughA=false, roughB=false,%
+ %
+ WallThickness=1,WallString={},WallAngle=0,WallLineWidth=1pt,WallLineColor=black,%
+ %%
+ SphereStartAngle=180,SphereEndAngle=360,SphereRadius=1,SphereString={},%
+ SphereOffset=0,SphereFillColor=white,SphereLineWidth=1pt,SphereLineColor=black,%
+ %%
+ FSphereHeight=2,FSphereFillColor=lightgray,FSphereString={},FSphereLineWidth=1pt,%
+ FSphereLineColor=black,%
+ %%
+ FluidMaxRadius=1,FluidMinRadius=.5,FluidHeight=.5,%
+ FluidFillColor=yellow,FluidString={},%
+ FluidShearOffsetX=0,FluidShearOffsetY=0,FluidLineWidth=1pt,%
+ FluidLineColor=black,%
+ %%
+ RoughnessMax=0, RoughnessWidth=0,%
+ %%
+ StringA={},StringB={},TotalAngle=0} %
+
+% %% Redefine RoughnessMax and RoughnessWidth:
+% \def\Pst@Rm{\Pst@RoughnessMax\space 0.5 mul }%
+% %% testing:
+% \def\Rw{\Pst@RoughnessWidth\space \Pst@RoughnessMax }%
+
+
+% ============================================================
+% PstFluid ====================================================
+% ============================================================
+\def\PstFluid{\@ifnextchar[{\pst@PstFluid@i}{\pst@PstFluid@i[]}}%
+\def\pst@PstFluid@i[#1](#2){{%
+ \psset{#1}%
+ \begin@ClosedObj%
+ \rput{\Pst@WallAngle}(#2){%
+ %% Nodes (currently not used; They can be used outside of the macro as
+ %% referece points):
+ %% Fbr (Fluid bottom right):
+ \pnode(! \Pst@FluidMaxRadius \Pst@FluidShearOffsetX sub \Pst@FluidHeight neg){Fbr}%
+ %% Fbl (Fluid bottom left):
+ \pnode(! \Pst@FluidMaxRadius \Pst@FluidShearOffsetX add neg \Pst@FluidHeight neg){Fbl}%
+ %% Ftl (Fluid top left):
+ \pnode(! \Pst@FluidMaxRadius neg \Pst@FluidShearOffsetX add \Pst@FluidHeight){Ftl}%
+ %% Ftr (Fluid top right):
+ \pnode(! \Pst@FluidMaxRadius \Pst@FluidShearOffsetX add \Pst@FluidHeight){Ftr}%
+ %%
+ %%
+ \pscustom[linewidth=\Pst@FluidLineWidth,linecolor=\Pst@FluidLineColor,unit=1pt]{%
+ %% Left meniscus:
+ \pscurve%
+ (! \Pst@FluidMaxRadius neg \Pst@FluidShearOffsetX add \Pst@FluidHeight)%
+ (! \Pst@FluidMinRadius neg 0 \Pst@FluidShearOffsetY add)%
+ (! \Pst@FluidMaxRadius \Pst@FluidShearOffsetX add neg \Pst@FluidHeight neg)%
+ %% Bottom line:
+ \psline%
+ (! \Pst@FluidMaxRadius \Pst@FluidShearOffsetX add neg \Pst@FluidHeight neg)%
+ (! \Pst@FluidMaxRadius \Pst@FluidShearOffsetX sub \Pst@FluidHeight neg)%
+ %%
+ %% PDTODO:A Fix ZigZag and Curved line:
+ %%
+ %% Bottom line with zigzag:
+ % \multido{\rX=-\Pst@FluidMaxRadius+10}{5}{%
+ % \multido{\rX=-\Pst@FluidMaxRadius+10}{! \Pst@FluidMaxRadius 2 mul 10 div floor}{%
+ % \psline(\rX,-\Pst@FluidHeight)%
+ % (! \rX\space 2.5 add \Pst@FluidHeight neg 5 add)%
+ % (! \rX\space 7.5 add \Pst@FluidHeight neg 5 sub)%
+ % (! \rX\space 10 add \Pst@FluidHeight neg)%
+ % }
+ %% Bottom line with curve:
+ % \multido{\rX=-\Pst@FluidMaxRadius+10}{5}{%
+ % \pscurve(\rX,-\Pst@FluidHeight)%
+ % (! \rX\space 2.5 add \Pst@FluidHeight neg 5 add)%
+ % (! \rX\space 7.5 add \Pst@FluidHeight neg 5 sub)%
+ % (! \rX\space 10 add \Pst@FluidHeight neg)%
+ % }
+ %% Right meniscus:
+ \pscurve[liftpen=1]%
+ (! \Pst@FluidMaxRadius \Pst@FluidShearOffsetX sub \Pst@FluidHeight neg)%
+ (! \Pst@FluidMinRadius 0 \Pst@FluidShearOffsetY sub)%
+ (! \Pst@FluidMaxRadius \Pst@FluidShearOffsetX add \Pst@FluidHeight)%
+ %% Top line:
+ \psline%
+ (! \Pst@FluidMaxRadius \Pst@FluidShearOffsetX add \Pst@FluidHeight)%
+ (! \Pst@FluidMaxRadius neg \Pst@FluidShearOffsetX add \Pst@FluidHeight)%
+ %% Fill:
+ \fill[fillstyle=solid,fillcolor=\Pst@FluidFillColor]%
+ }%
+ %% String placement if String is present:
+ \ifx\psk@FluidString\@empty\else%
+ \rput[C]{-\Pst@TotalAngle}(0,0){\psk@FluidString}%
+ \fi}%
+ \end@ClosedObj%
+ }\ignorespaces}%
+
+% ============================================================
+% PstWall =====================================================
+% ============================================================
+\def\PstWall{\pst@object{PstWall}}%
+\def\PstWall@i(#1){{%
+ \pst@killglue%
+ \addbefore@par{linewidth=2pt}%
+ \use@par%
+ \rput{\Pst@WallAngle}(#1){%
+ \psset{unit=1pt,linewidth=\Pst@WallLineWidth,linecolor=\Pst@WallLineColor,dimen=middle}%
+ %% Main rectangle frame:
+ \psframe[linestyle=none,fillstyle=hlines]%
+ (! \Pst@FluidMaxRadius 10 add neg \Pst@WallThickness neg)%
+ (! \Pst@FluidMaxRadius 10 add 0)%
+ %% Extra line for "surface":
+ \psline%
+ (! \Pst@FluidMaxRadius 10 add neg 0)%
+ (! \Pst@FluidMaxRadius 10 add 0)%
+ %% String placement if string is present:
+ \ifx\psk@WallString\@empty\else%
+ \rput*[C]{\Pst@WallAngle}% pdtodo: fix this
+ % \rput*[C]{! \Pst@TotalAngle \Pst@WallAngle sub}%
+ (! -\Pst@WallThickness .5 mul 0 exch){\psk@WallString}%
+ \fi}%
+ }\ignorespaces}%
+
+
+% ============================================================
+% PstWallRough ================================================
+% ============================================================
+%%
+%% PDTODO:A This macro is not implemented yet.
+%%
+\def\PstWallRough{\pst@object{PstWallRough}}%
+\def\PstWallRough@i(#1){{%
+ \pst@killglue
+ \addbefore@par{linewidth=1pt}%
+ \use@par%
+ \rput{\Pst@WallAngle}(#1){%
+ \psset{unit=1pt,linewidth=\Pst@WallLineWidth,dimen=middle}%
+ %%
+ % \def\maxtmp{!\Pst@FluidMaxRadius\space 2 diff }
+ \psframe[fillstyle=solid,fillcolor=gray]%
+ (-\Pst@FluidMaxRadius,-\Pst@WallThickness)(\Pst@FluidMaxRadius,-\Pst@RoughnessMax)%
+ % (! \maxtmp \Pst@WallThickness neg)(\Pst@FluidMaxRadius,-\Pst@RoughnessMax)
+ %%
+ \pscustom{%
+ %% TODO:C Replace algebraic with RPN notation:
+ \psplot[plotpoints=100,algebraic=true]{-\Pst@FluidMaxRadius}{\Pst@FluidMaxRadius}%
+ {\Pst@RoughnessMax*sin(x*Pi*\Pst@RoughnessWidth-(Pi/2))}%
+% \psplot[plotpoints=100]{-\Pst@FluidMaxRadius}{\Pst@FluidMaxRadius}%
+% %% TODO:A Ignore pt units for this numeric test and use the original
+% %% input number!!!!:
+% {\Pst@RoughnessWidth round 2 mod 0 eq % <- IF CONDITION
+% {/MyFac \Pst@RoughnessWidth round 1 add def }% IF == TRUE STATEMENT
+% {/MyFac \Pst@RoughnessWidth round 2 div floor def } % <- ELSE STATEMENT
+% ifelse % <- END IF-ELSE
+% x \Pst@FluidMaxRadius round div MyFac mul 180 mul sin%
+% }% end psplot
+ \gsave%
+ \psline(\Pst@FluidMaxRadius,-\Pst@RoughnessMax)(-\Pst@FluidMaxRadius,-\Pst@RoughnessMax)%
+ \fill[fillcolor=gray,fillstyle=solid]%
+ \grestore%
+ }%
+ %% String placement if String is present:
+ \ifx\psk@WallString\@empty\else%
+ \rput*[C]{\Pst@WallAngle}% pdtodo: fix this
+ % \rput*[C]{! \Pst@TotalAngle \Pst@WallAngle sub}%
+ (! -\Pst@WallThickness .5 mul 0 exch){\psk@WallString}%
+ \fi%
+ }%
+ }\ignorespaces}%
+
+% ============================================================
+% PstSphere =====================================================
+% ============================================================
+\def\PstSphere{\pst@object{PstSphere}}%
+\def\PstSphere@i(#1){{%
+ \pst@killglue
+ \addbefore@par{linewidth=1pt}%
+ \use@par%
+ \rput(#1){%
+ \psset{unit=1pt,linewidth=\Pst@SphereLineWidth,linecolor=\Pst@SphereLineColor,dimen=middle}%
+ %% Draw the "sphere" using the psarc macro:
+ \psarc[fillstyle=solid,fillcolor=\Pst@SphereFillColor]%
+ (0,\Pst@SphereRadius){\Pst@SphereRadius}%
+ {\Pst@SphereStartAngle}{\Pst@SphereEndAngle}%
+ %% Display string if present:
+ \ifx\psk@SphereString\@empty\else%
+ \rput[C]{\Pst@TotalAngle}%
+ (! \Pst@SphereRadius .5 mul \pst@number\pslinewidth add 0 exch)%
+ {\psk@SphereString}%
+ \fi}%
+ }\ignorespaces}%
+
+% ============================================================
+% PstFlattenedSphere ==========================================
+% ============================================================
+\def\PstFlattenedSphere{\pst@object{PstFlattenedSphere}}%
+\def\PstFlattenedSphere@i(#1){{%
+ \pst@killglue
+ \addbefore@par{linewidth=1pt}%
+ \use@par%
+ \rput(#1){%
+ \psset{unit=1pt,linewidth=\Pst@FSphereLineWidth,linecolor=\Pst@FSphereLineColor,dimen=middle}%
+ %% The "flattened sphere" is drawn as a rectangle frame with rounded
+ %% corners (arc). It is then overlayed and clipped by a rectangle half
+ %% the height to produce the look of a flattened sphere.
+ \begin{psclip}{%
+ \psframe[linestyle=none]%
+ (!\Pst@FSphereHeight .5 mul \Pst@FluidMaxRadius add neg 0)%
+ (!\Pst@FSphereHeight .5 mul \Pst@FluidMaxRadius add \Pst@FSphereHeight .5 mul)%
+ }%
+ \psframe[framearc=2,fillstyle=solid,fillcolor=\Pst@FSphereFillColor]%
+ (!\Pst@FluidMaxRadius neg \Pst@FSphereHeight .5 mul sub 0)%
+ (!\Pst@FluidMaxRadius \Pst@FSphereHeight .5 mul add \Pst@FSphereHeight)%
+ \end{psclip}%
+ %% Display string if present:
+ \ifx\psk@FSphereString\@empty\else%
+ \rput[C]{-\Pst@TotalAngle}(! \Pst@FSphereHeight .3 mul 0 exch){\psk@FSphereString}%
+ \fi}%
+ }\ignorespaces}%
+
+% ============================================================
+% PstPad ======================================================
+% ============================================================
+\def\PstPad{\pst@object{PstPad}}%
+\def\PstPad@i(#1){{%
+ \pst@killglue%
+ \addbefore@par{linewidth=1pt}%
+ \use@par%
+ \rput{\Pst@TotalAngle}(#1){%
+ \psset{unit=1pt}%
+ %% Test for fluid true/false:
+ \ifPst@fluid%
+ %%fluid = true:
+ \PstFluid(0,0)%
+ \PstFlattenedSphere[FSphereString=\psk@StringA]%
+ (! 0 \Pst@FluidShearOffsetX add \Pst@FluidHeight)%
+ %% Test if WallString is empty:
+ \ifx\psk@WallString\@empty%
+ \PstWall%
+ (! 0 \Pst@FluidShearOffsetX sub \Pst@FluidHeight neg)%
+ \else%
+ \PstWall[WallString=\psk@WallString]%
+ (! 0 \Pst@FluidShearOffsetX sub \Pst@FluidHeight neg)%
+ \fi%
+ \else%
+ %%fluid = false:
+ \PstFlattenedSphere(0,0)%
+ \PstWall(0,0)%
+ \fi%
+ }%
+ }\ignorespaces}%
+
+
+% ============================================================
+% WallToWall ==================================================
+% ============================================================
+\def\PstWallToWall{\pst@object{PstWallToWall}}%
+\def\PstWallToWall@i(#1){{%
+ \pst@killglue%
+ \addbefore@par{linewidth=4pt}%
+ \use@par%
+ \rput{\Pst@TotalAngle}(#1){%
+ \psset{unit=1pt}%
+ \PstFluid(0,0)%
+ %% Test if StringA is empty:
+ \ifx\psk@StringA\@empty%
+ \PstWall[WallAngle=180]%
+ (! 0 \Pst@FluidShearOffsetX add \Pst@FluidHeight)%
+ \else%
+ \PstWall[WallAngle=180,WallString=\psk@StringA]%
+ (! 0 \Pst@FluidShearOffsetX add \Pst@FluidHeight)%
+ \fi%
+ %% Test if StringB is empty:
+ \ifx\psk@StringB\@empty%
+ \PstWall%
+ (! 0 \Pst@FluidShearOffsetX sub \Pst@FluidHeight neg)%
+ \else%
+ \PstWall[WallString=\psk@StringB]%
+ (! 0 \Pst@FluidShearOffsetX sub \Pst@FluidHeight neg)%
+ \fi%
+ }%
+ }\ignorespaces}%
+
+% ============================================================
+% SphereToWall ================================================
+% ============================================================
+%%
+%% PDTODO:A I would like this macro to have "fluid = false" as the default
+%% value (all other major macros need "fluid = true" as default values).
+\def\PstSphereToWall{\pst@object{PstSphereToWall}}%
+\def\PstSphereToWall@i(#1){{%
+ \pst@killglue%
+ \addbefore@par{linewidth=1pt}%
+ \use@par%
+ \rput{\Pst@TotalAngle}(#1){%
+ \psset{unit=1pt}%
+ %% Test for fluid true/false:
+ \ifPst@fluid% fluid = true:
+ \PstFluid(0,0)% <- display fluid macro
+ \PstSphere[SphereString=\psk@StringA]%
+ (! 0 \Pst@FluidShearOffsetX add \Pst@FluidHeight)%
+ %% Test if StringB is empty:
+ \ifx\psk@StringB\@empty%
+ \PstWall[fillstyle=none]% <- display wall macro
+ (! 0 \Pst@FluidShearOffsetX sub \Pst@FluidHeight neg)%
+ \else%
+ \PstWall[fillstyle=none,WallString=\psk@StringB]% <- display wall macro
+ (! 0 \Pst@FluidShearOffsetX sub \Pst@FluidHeight neg)%
+ \fi%
+ \else% fluid = false:
+ \PstWall[linewidth=1pt,fillstyle=none,WallString=\psk@StringB](0,0)% <- display wall macro
+ \PstSphere[SphereString=\psk@StringA](0,-\Pst@SphereOffset)% <- display sphere macro
+ \psline[linewidth=0.8pt,linestyle=dashed,linecolor=gray]%
+ (-\Pst@FluidMaxRadius,0)(\Pst@FluidMaxRadius,0)%
+ \PstWall[linewidth=1pt,fillstyle=none](0,0)% <- display wall macro
+ % \PstWallRough[unit=1cm](0,\Pst@RoughnessMax)%
+ \fi%
+ }%
+ }\ignorespaces}%
diff --git a/graphics/pstricks/contrib/pst-pad/showexpl.cfg b/graphics/pstricks/contrib/pst-pad/showexpl.cfg
new file mode 100644
index 0000000000..6dbd1eb3db
--- /dev/null
+++ b/graphics/pstricks/contrib/pst-pad/showexpl.cfg
@@ -0,0 +1,44 @@
+% config file for showexpl.sty
+%
+\ProvidesFile{showexpl.cfg}
+ [2008/02/08 v0.01 Definitions for the showexpl package (pd)]
+%
+\definecolor{hellgelb}{rgb}{1,1,0.85}
+\definecolor{colKeys}{rgb}{0,0,1}
+\definecolor{colIdentifier}{rgb}{0,0,0}
+\definecolor{colComments}{rgb}{1,0,0}
+\definecolor{colString}{rgb}{0,0.5,0}
+
+\lstset{%
+ preset=\centering,%
+ rframe={},%
+ language=[AlLaTeX]TeX,%
+ float=hbp,%
+ basicstyle=\footnotesize\ttfamily,%
+ identifierstyle=\color{colIdentifier},%
+ keywordstyle=\color{colKeys},%
+ stringstyle=\color{colString},%
+ commentstyle=\itshape\color{colComments},%
+% columns=flexible,%
+% columns=fullflexible,%
+ columns=fixed,
+ tabsize=4,%
+ frame=single,%
+ extendedchars=true,%
+ showspaces=false,%
+ showstringspaces=false,%
+ numbers=left,%
+ numberstyle=\tiny\ttfamily,%
+ breaklines=true,%
+ breakindent=10pt,%
+ backgroundcolor=\color{hellgelb},%
+ breakautoindent=true,%
+ captionpos=t,%
+ xleftmargin=1em,%
+ xrightmargin=\fboxsep,%
+ numbersep=1em,%
+% xrightmargin=-1cm,%
+% relwidth=0.5,%
+% columnsep=10pt%
+}
+\renewcommand*\SX@Info{}%