From bf6e239c11b0086a5d3f19a4f218b606bf870cd0 Mon Sep 17 00:00:00 2001 From: Karl Berry Date: Thu, 21 Feb 2008 18:08:25 +0000 Subject: new pstricks package pst-pad, first attempt (19feb08) git-svn-id: svn://tug.org/texlive/trunk@6702 c570f23f-e606-0410-a88d-b1316a301751 --- Master/texmf-dist/doc/generic/pst-pad/README | 69 +++ .../texmf-dist/doc/generic/pst-pad/pst-pad-doc.pdf | Bin 0 -> 99992 bytes .../texmf-dist/doc/generic/pst-pad/pst-pad-doc.tex | 474 +++++++++++++++++++++ Master/texmf-dist/source/generic/pst-pad/Makefile | 38 ++ Master/texmf-dist/tex/generic/pst-pad/pst-pad.tex | 463 ++++++++++++++++++++ Master/texmf-dist/tex/latex/pst-pad/pst-pad.sty | 7 + Master/texmf-dist/tex/latex/pst-pad/showexpl.cfg | 44 ++ Master/tlpkg/bin/ctan2tds | 1 + Master/tlpkg/bin/tlpkg-ctan-check | 3 +- Master/tlpkg/tlpsrc/collection-pstricks.tlpsrc | 1 + Master/tlpkg/tlpsrc/pst-pad.tlpsrc | 2 + 11 files changed, 1101 insertions(+), 1 deletion(-) create mode 100644 Master/texmf-dist/doc/generic/pst-pad/README create mode 100644 Master/texmf-dist/doc/generic/pst-pad/pst-pad-doc.pdf create mode 100644 Master/texmf-dist/doc/generic/pst-pad/pst-pad-doc.tex create mode 100644 Master/texmf-dist/source/generic/pst-pad/Makefile create mode 100644 Master/texmf-dist/tex/generic/pst-pad/pst-pad.tex create mode 100644 Master/texmf-dist/tex/latex/pst-pad/pst-pad.sty create mode 100644 Master/texmf-dist/tex/latex/pst-pad/showexpl.cfg create mode 100644 Master/tlpkg/tlpsrc/pst-pad.tlpsrc diff --git a/Master/texmf-dist/doc/generic/pst-pad/README b/Master/texmf-dist/doc/generic/pst-pad/README new file mode 100644 index 00000000000..ec0a1a391e6 --- /dev/null +++ b/Master/texmf-dist/doc/generic/pst-pad/README @@ -0,0 +1,69 @@ +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +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 documentation +pst-pad-doc.tex - The documentation (source) +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/Master/texmf-dist/doc/generic/pst-pad/pst-pad-doc.pdf b/Master/texmf-dist/doc/generic/pst-pad/pst-pad-doc.pdf new file mode 100644 index 00000000000..6c5d47b28d0 Binary files /dev/null and b/Master/texmf-dist/doc/generic/pst-pad/pst-pad-doc.pdf differ diff --git a/Master/texmf-dist/doc/generic/pst-pad/pst-pad-doc.tex b/Master/texmf-dist/doc/generic/pst-pad/pst-pad-doc.tex new file mode 100644 index 00000000000..558167587b1 --- /dev/null +++ b/Master/texmf-dist/doc/generic/pst-pad/pst-pad-doc.tex @@ -0,0 +1,474 @@ +%% Filename: pst-pad-doc.tex +%% +%% Author: Patrick Drechsler +%% +%% Copyright +%% +%% Created: Fri Feb 8 02:04:17 2008 +%% +%% Version: $Id: pst-pad-doc.tex 315 2008-02-19 16:42:56Z patrick $ +%% +\listfiles +\documentclass{scrartcl} +\setkomafont{disposition}{\normalcolor\rmfamily\bfseries} +\usepackage[T1]{fontenc} +\usepackage[utf8]{inputenc} + +\usepackage{fixltx2e}% standard LaTeX package... +\usepackage{lmodern} +\usepackage[scaled=0.85]{beramono} +\usepackage{fancyhdr} +\usepackage[obeyspaces]{url} +\usepackage{xcolor}% +\usepackage{amsmath} +\usepackage{pst-pad} +\let\verPstPad\fileversion +\usepackage{multicol} +\usepackage{showexpl} +% +\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} +\newcommand{\PadPackage}{\textsf{`pst-pad'}} + +\lhead{\PadPackage}\rhead{A PSTricks package for drawing attachment models} +\pagestyle{fancy} + +\psset{subgriddiv=0,griddots=10,gridlabels=7pt}% +%\showgrid +% \usepackage[colorlinks,linktocpage]{hyperref} +\usepackage{hyperref} + +\newcommand{\macro}[1]{\texttt{#1}} +\newcommand{\parameter}[1]{\texttt{#1}} + +\definecolor{mygreen}{rgb}{0,.5,0} +\definecolor{mybrown}{rgb}{.6,0,0} + +\newcommand{\ParCol}[3]{\textbf{\shortstack{#1 \color{mygreen}(#2)\\ \color{mybrown}(#3)}}} + +\begin{document} + +\title{\texttt{pst-pad}\\ A PSTricks package for drawing attachment + mechanisms\\\normalsize ver. \verPstPad} \author{Patrick + Drechsler\thanks{\url{}}} \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 paramaters 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 figure 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/Master/texmf-dist/source/generic/pst-pad/Makefile b/Master/texmf-dist/source/generic/pst-pad/Makefile new file mode 100644 index 00000000000..6d48721019b --- /dev/null +++ b/Master/texmf-dist/source/generic/pst-pad/Makefile @@ -0,0 +1,38 @@ +MAIN = pst-pad-doc + +$(MAIN).pdf: \ + showexpl.cfg \ + pst-pad-doc.tex \ + pst-pad.tex \ + pst-pad.sty + latex $(MAIN).tex + latex $(MAIN).tex + dvips $(MAIN) + ps2pdf $(MAIN).ps + +.PHONY: clean +clean: + /usr/bin/find . -iname '*~' -exec rm {} \; + /usr/bin/find . -iname '$(MAIN).aux' -exec rm {} \; + /usr/bin/find . -iname '$(MAIN).backup' -exec rm {} \; + /usr/bin/find . -iname '$(MAIN).bbl' -exec rm {} \; + /usr/bin/find . -iname '$(MAIN).blg' -exec rm {} \; + /usr/bin/find . -iname '$(MAIN).brf' -exec rm {} \; + /usr/bin/find . -iname '$(MAIN).cb' -exec rm {} \; + /usr/bin/find . -iname '$(MAIN).changes' -exec rm {} \; + /usr/bin/find . -iname '$(MAIN).dvi' -exec rm {} \; + /usr/bin/find . -iname '$(MAIN).idx' -exec rm {} \; + /usr/bin/find . -iname '$(MAIN).ilg' -exec rm {} \; + /usr/bin/find . -iname '$(MAIN).ind' -exec rm {} \; + /usr/bin/find . -iname '$(MAIN).inx' -exec rm {} \; + /usr/bin/find . -iname '$(MAIN).lof' -exec rm {} \; + /usr/bin/find . -iname '$(MAIN).log' -exec rm {} \; + /usr/bin/find . -iname '$(MAIN).lot' -exec rm {} \; + /usr/bin/find . -iname '$(MAIN).lox' -exec rm {} \; + /usr/bin/find . -iname '$(MAIN).out' -exec rm {} \; + /usr/bin/find . -iname '$(MAIN).ps' -exec rm {} \; + /usr/bin/find . -iname '$(MAIN).pdf' -exec rm {} \; + /usr/bin/find . -iname '$(MAIN).rel' -exec rm {} \; + /usr/bin/find . -iname '$(MAIN).tmp' -exec rm {} \; + /usr/bin/find . -iname '$(MAIN).toc' -exec rm {} \; + /usr/bin/find . -iname '$(MAIN).xcp' -exec rm {} \; diff --git a/Master/texmf-dist/tex/generic/pst-pad/pst-pad.tex b/Master/texmf-dist/tex/generic/pst-pad/pst-pad.tex new file mode 100644 index 00000000000..b97256dfea2 --- /dev/null +++ b/Master/texmf-dist/tex/generic/pst-pad/pst-pad.tex @@ -0,0 +1,463 @@ +%% +%% This is file `pst-pad.tex' +%% +%% IMPORTANT NOTICE: +%% +%% Package `pst-pad.tex' +%% +%% Patrick Drechsler +%% +%% Version: $Id: pst-pad.tex 319 2008-02-19 17:43:16Z 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.3}% +\def\filedate{2008/02/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}% + + +% EOF \ No newline at end of file diff --git a/Master/texmf-dist/tex/latex/pst-pad/pst-pad.sty b/Master/texmf-dist/tex/latex/pst-pad/pst-pad.sty new file mode 100644 index 00000000000..789450bb447 --- /dev/null +++ b/Master/texmf-dist/tex/latex/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/Master/texmf-dist/tex/latex/pst-pad/showexpl.cfg b/Master/texmf-dist/tex/latex/pst-pad/showexpl.cfg new file mode 100644 index 00000000000..6dbd1eb3db0 --- /dev/null +++ b/Master/texmf-dist/tex/latex/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{}% diff --git a/Master/tlpkg/bin/ctan2tds b/Master/tlpkg/bin/ctan2tds index 448ab98d8d1..db9dfbfc69f 100755 --- a/Master/tlpkg/bin/ctan2tds +++ b/Master/tlpkg/bin/ctan2tds @@ -329,6 +329,7 @@ chdir $startdir || die "chdir($startdir) failed: $!"; # back to raw 'pst-ob3d', "&MAKEpst", 'pst-optic', "&MAKEpst", 'pst-osci', "&MAKEpst", + 'pst-pad', "&MAKEpst", 'pst-pdf', "&MAKEpst", 'pst-pdgr', "&MAKEpst", 'pst-poly', "&MAKEpst", diff --git a/Master/tlpkg/bin/tlpkg-ctan-check b/Master/tlpkg/bin/tlpkg-ctan-check index 58023bc37d8..1264458ba71 100755 --- a/Master/tlpkg/bin/tlpkg-ctan-check +++ b/Master/tlpkg/bin/tlpkg-ctan-check @@ -139,7 +139,8 @@ my @WorkingTLP = qw( pst-fr3d pst-fractal pst-func pst-geo pst-grad pst-infixplot pst-jtree pst-labo pst-lens pst-light3d pst-math pst-ob3d pst-optexp pst-optic - pst-osci pst-pdf pst-pdgr pst-qtree pst-solide3d pst-soroban pst-spectra + pst-osci pst-pad pst-pdf pst-pdgr pst-qtree + pst-solide3d pst-soroban pst-spectra pst-slpe pst-stru pst-uml pst-vue3d pstricks pstricks-add qcm qstest quotmark qtree diff --git a/Master/tlpkg/tlpsrc/collection-pstricks.tlpsrc b/Master/tlpkg/tlpsrc/collection-pstricks.tlpsrc index 8a9271e8e89..e063eaea0d0 100644 --- a/Master/tlpkg/tlpsrc/collection-pstricks.tlpsrc +++ b/Master/tlpkg/tlpsrc/collection-pstricks.tlpsrc @@ -36,6 +36,7 @@ depend pst-ob3d depend pst-optexp depend pst-optic depend pst-osci +depend pst-pad depend pst-pdgr depend pst-poly depend pst-qtree diff --git a/Master/tlpkg/tlpsrc/pst-pad.tlpsrc b/Master/tlpkg/tlpsrc/pst-pad.tlpsrc new file mode 100644 index 00000000000..17304249a34 --- /dev/null +++ b/Master/tlpkg/tlpsrc/pst-pad.tlpsrc @@ -0,0 +1,2 @@ +name pst-pad +category Package -- cgit v1.2.3