diff options
-rw-r--r-- | Master/texmf-dist/doc/generic/pst-rubans/Changes | 2 | ||||
-rw-r--r-- | Master/texmf-dist/doc/generic/pst-rubans/README | 44 | ||||
-rw-r--r-- | Master/texmf-dist/doc/generic/pst-rubans/pst-rubans-doc.bib | 100 | ||||
-rw-r--r-- | Master/texmf-dist/doc/generic/pst-rubans/pst-rubans-doc.pdf | bin | 0 -> 597921 bytes | |||
-rw-r--r-- | Master/texmf-dist/doc/generic/pst-rubans/pst-rubans-doc.tex | 340 | ||||
-rw-r--r-- | Master/texmf-dist/source/generic/pst-rubans/Makefile | 73 | ||||
-rw-r--r-- | Master/texmf-dist/tex/generic/pst-rubans/pst-rubans.tex | 353 | ||||
-rw-r--r-- | Master/texmf-dist/tex/latex/pst-rubans/pst-rubans.sty | 24 | ||||
-rwxr-xr-x | Master/tlpkg/bin/tlpkg-ctan-check | 2 | ||||
-rwxr-xr-x | Master/tlpkg/libexec/ctan2tds | 1 | ||||
-rw-r--r-- | Master/tlpkg/tlpsrc/collection-pstricks.tlpsrc | 1 | ||||
-rw-r--r-- | Master/tlpkg/tlpsrc/pst-rubans.tlpsrc | 0 |
12 files changed, 939 insertions, 1 deletions
diff --git a/Master/texmf-dist/doc/generic/pst-rubans/Changes b/Master/texmf-dist/doc/generic/pst-rubans/Changes new file mode 100644 index 00000000000..94e67286ca3 --- /dev/null +++ b/Master/texmf-dist/doc/generic/pst-rubans/Changes @@ -0,0 +1,2 @@ +pst-rubans.tex -------- +1.20 2011-02-10 - initial CTAN version diff --git a/Master/texmf-dist/doc/generic/pst-rubans/README b/Master/texmf-dist/doc/generic/pst-rubans/README new file mode 100644 index 00000000000..8a0a5d32cc5 --- /dev/null +++ b/Master/texmf-dist/doc/generic/pst-rubans/README @@ -0,0 +1,44 @@ +%% Package `pst-rubans.tex' +%% +%% Manuel Luque <Manuel.Luque27@gmail.com> +%% Herbert Voss <hvoss@tug.org> (Germany) +%% +%% 2011-02-10 +%% + +PSTricks offers excellent macros to insert more or less complex +graphics into a document. pstricks.tex itself is the base for several +other additional packages, which are mostly named pst-xxxx, +like pst-rubans. + +Save the files + +pst-rubans.sty +pst-rubans.tex + +in any place, where latex or any other TeX program will find it. + +pst-rubans 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-rubans, which loads + the old keyval.sty or pst-key.tex + + +If you like to get the documentation file in another format run + +latex pst-rubans-doc.tex +bibtex pst-rubans-doc +latex pst-rubans-doc.tex +dvips pst-rubans-doc.dvi + +to get a PostScript file. But pay attention, that the pst-rubans +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. + +For another PDF output read the introduction from +the documentation. diff --git a/Master/texmf-dist/doc/generic/pst-rubans/pst-rubans-doc.bib b/Master/texmf-dist/doc/generic/pst-rubans/pst-rubans-doc.bib new file mode 100644 index 00000000000..387fbc637cf --- /dev/null +++ b/Master/texmf-dist/doc/generic/pst-rubans/pst-rubans-doc.bib @@ -0,0 +1,100 @@ +%% -*-bibtex-*- +@STRING{tugboat = {TUGboat} } +@STRING{dtk = {{D}ie {\TeX}nische {K}om{\"o}die} } + +@Book{casselman05, + author = {Bill Casselman}, + title = {Mathematical {I}llustrations -- a manual of geometry and {P}ost{S}cript}, + publisher = {Cambridge University Press}, + year = {2005}, + address = {Cambridge}, +} + + +@Book{PSTricks2, + author = {Herbert Vo\ss}, + title = {{PSTricks} {G}rafics for \TeX{} and \LaTeX}, + edition = {}, + publisher = {UIT}, + year = {2011}, + address = {Cambridge} +} + +} + +@Book{companion04, + author = {Frank Mittelbach and Michel Goosens et al}, + title = {The {\LaTeX} {C}ompanion}, + edition = {2nd}, + publisher = {Addison-Wesley Publishing Company}, + year = {2004}, + address = {Boston} +} + +@Book{unbound, + author = {Alan Hoenig}, + title = {\TeX{} {U}nbound: \LaTeX{} \& \TeX{} {S}trategies, {F}onts, {G}raphics, and {M}ore}, + publisher = {Oxford University Press}, + year = {1998}, + address = {London} +} + +@Book{tlgc2, + author = {Michel Goosens and Frank Mittelbach and Sebastian Rahtz and Denis Roegel and Herbert Vo{\ss}}, + title = {The {\LaTeX} {G}raphics {C}ompanion}, + publisher = {{Addison-Wesley Publishing Company}}, + edition = {2nd}, + year = {2007}, + address = {Reading, Mass.} +} + +@Article{girou:01:, + author = {Denis Girou}, + title = {Pr\'esentation de {PST}ricks}, + journal = {Cahier {GUT}enberg}, + year = 1994, + volume = {16}, + month = apr, + pages = {21-70} +} + +@Article{girou:02:, + author = {{Timothy Van} Zandt and Denis Girou}, + title = {Inside {PST}ricks}, + journal = TUGboat, + year = 1994, + volume = {15}, + month = sep, + pages = {239-246} +} + +@MISC{xkeyval, + author = {Hendri Adriaens}, + title = {xkeyval package}, + howpublished = {\url{CTAN:/macros/latex/contrib/xkeyval}}, + year = 2004 +} + +@Article{rahtz:96-1, + author = {Sebastian Rahtz}, + title = {An introduction to {PST}ricks, part {I}}, + journal = {Baskerville}, + address = {\url{CTAN: /usergrps/uktug/baskervi/}}, + year = 1996, + volume = 6, + number = 1, + month = feb, + pages = {22-34} +} +@Article{rahtz:96-2, + author = {Sebastian Rahtz}, + title = {An introduction to {PST}ricks, part {II}}, + journal = {Baskerville}, + address = {\url{CTAN: /usergrps/uktug/baskervi/}}, + year = 1996, + volume = 6, + number = 2, + month = apr, + pages = {23-33} +} + diff --git a/Master/texmf-dist/doc/generic/pst-rubans/pst-rubans-doc.pdf b/Master/texmf-dist/doc/generic/pst-rubans/pst-rubans-doc.pdf Binary files differnew file mode 100644 index 00000000000..a091db24a16 --- /dev/null +++ b/Master/texmf-dist/doc/generic/pst-rubans/pst-rubans-doc.pdf diff --git a/Master/texmf-dist/doc/generic/pst-rubans/pst-rubans-doc.tex b/Master/texmf-dist/doc/generic/pst-rubans/pst-rubans-doc.tex new file mode 100644 index 00000000000..27f7a8b32e4 --- /dev/null +++ b/Master/texmf-dist/doc/generic/pst-rubans/pst-rubans-doc.tex @@ -0,0 +1,340 @@ +%% $Id: pst-rubans-doc.tex 511 2011-06-06 15:39:40Z herbert $ +\documentclass[11pt,english,BCOR10mm,DIV12,bibliography=totoc,parskip=false, + smallheadings, headexclude,footexclude,oneside]{pst-doc} +\usepackage[latin9]{inputenc} +\usepackage{pst-rubans} +\let\pstRubansFV\fileversion +\renewcommand\bgImage{% +%\begin{pspicture}(-10,0)(0,0.2) +%\pshelices[lightsrc=30 5 17,incolor=yellow!50,R=0.3,h=12,spires=10,dZ=0.2,RotX=90,viewpoint=100 45 0,resolution=180,Decran=100]% +%\end{pspicture} +\psset{viewpoint=20 20 70 rtp2xyz,Decran=20,lightsrc=viewpoint,resolution=360} +\psset{unit=0.6} +\begin{pspicture}(-5,-5)(5,5) +\psSpiralRing[incolor=yellow!50, + r1=4,r0=1,hue=0 1]% +\end{pspicture} +} +\lstset{pos=l,wide=false,language=PSTricks, + morekeywords={psSpiralRing},basicstyle=\footnotesize\ttfamily} +% +\begin{document} + +\title{\texttt{pst-rubans}} +\subtitle{Plotting 3D bands -- an extension of \nxLPack{pst-solides3d}; v.\pstRubansFV} +\author{Manuel Luque\\Herbert Vo\ss} +\docauthor{} +\date{\today} +\maketitle + +\tableofcontents + +\clearpage + + +\section{introduction} +\LPack{pst-rubans} est une extension de \LPack{pst-solides3d} qui permet de tracer des rubans sur +certains solides de révolution : cylindre, tore, sphère, paraboloïde et cône. La largeur du ruban, +le nombre de spires, la couleur de la face externe ainsi que celle de la face interne peuvent +être paramétrées. Dans le cas des hélices circulaire et conique, on peut aussi choisir le nombre de rubans. + +\section{Ruban enroulé autour d'un cylindre} +On peut paramétrer le rayon \LKeyword{R=2}, la hauteur \LKeyword{h=6}, l'épaisseur(ou largeur) du +ruban \LKeyword{dZ=0.5}, le nombre de spires \LKeyword{spires=10} de chaque hélice, le nombre de +rubans \LKeyword{rubans=1}, le nombre d'éléments par ruban \LKeyword{resolution=36}, la couleur +de l'intérieur et de l'extérieur du ruban. + +La base et le couvercle ne font pas partie de la commande. +\subsection{Nombre de rubans \nxLkeyword{rubans=1}} + +\begin{BDef} +\Lcs{pshelices}\OptArgs\OptArg*{\Largr{$x_0,y_0,z_0$}} +\end{BDef} + + + +{\psset{lightsrc=viewpoint,viewpoint=50 45 30 rtp2xyz,Decran=50,dZ=0.2,resolution=72,spires=2,unit=0.5} +\begin{LTXexample}[pos=l,width=4cm] +\begin{pspicture}(-2,-1)(2,7) +\psSolid[object=cylindre,r=1.5,h=0.2,ngrid=1 36](0,0,-0.2) +\pshelices[incolor=yellow!50,R=1.5,h=6,hue=0 1,grid](0,0,0) +\psSolid[object=cylindre,r=1.5,h=0.2,ngrid=1 36](0,0,6) +\end{pspicture} +\end{LTXexample} + +\subsection{Nombre de rubans \nxLkeyword{rubans=2}, nombre de spires \nxLkeyword{spires=2}} +\begin{LTXexample}[pos=l,width=4cm] +\begin{pspicture}(-2,-1)(2,7) +\psSolid[object=cylindre,r=1.5,h=0.2,ngrid=1 36](0,0,-0.2) +\pshelices[incolor=yellow!50,R=1.5,h=6,hue=0 1,rubans=2,grid](0,0,0) +\psSolid[object=cylindre,r=1.5,h=0.2,ngrid=1 36](0,0,6) +\end{pspicture} +\end{LTXexample} + +\clearpage +\subsection{Nombre de rubans \nxLkeyword{rubans=3}, nombre de spires \nxLkeyword{spires=2}} +\begin{LTXexample}[pos=l,width=4cm] +\begin{pspicture}(-2,-1)(2,7) +\psSolid[object=cylindre,r=1.5,h=0.2,ngrid=1 36](0,0,-0.2) +\pshelices[incolor=yellow!50,R=1.5,h=6,hue=0 1,rubans=3,grid](0,0,0) +\psSolid[object=cylindre,r=1.5,h=0.2,ngrid=1 36](0,0,6) +\end{pspicture} +\end{LTXexample} + +\subsection{Nombre de rubans \nxLkeyword{rubans=4}, nombre de spires \nxLkeyword{spires=2}} +\begin{LTXexample}[pos=l,width=4cm] +\begin{pspicture}(-2,-1)(2,7) +\psSolid[object=cylindre,r=1.5,h=0.2,ngrid=1 36](0,0,-0.2)% +\pshelices[incolor=yellow!50,R=1.5,h=6,hue=0 1,rubans=4,grid](0,0,0) +\psSolid[object=cylindre,r=1.5,h=0.2,ngrid=1 36](0,0,6)% +\end{pspicture} +\end{LTXexample} +} + +\subsection{Nombre de rubans \nxLkeyword{rubans=4}, on fait varier la hauteur \texttt{[h=2,3,4,5]}} + +\begin{LTXexample}[pos=t,wide] +\psset{lightsrc=30 5 17,viewpoint=50 45 10,Decran=50,resolution=90,spires=2} +\multido{\nH=2+1}{4}{% + \begin{pspicture}(-1.5,-1)(1.5,4) + \psSolid[object=cylindre,r=1.5,h=0.2,ngrid=1 36,grid](0,0,-0.2)% + \pshelices[incolor=yellow!50,R=1.5,h=\nH,linewidth=0.5\pslinewidth,dZ=0.15,hue=0 1,rubans=4,grid](0,0,0) + \psSolid[object=cylindre,r=1.5,h=0.2,ngrid=1 36,grid](0,0,\nH\space dz add)% + \end{pspicture}} +\end{LTXexample} + +\clearpage +\subsection{Rubans disposés sur un plan} + +\begin{LTXexample}[width=8cm,preset=\centering] +\psset{lightsrc=30 5 17,Decran=50,resolution=90,spires=2} +\begin{pspicture}(-4,-1)(4,4) +\psset{R=1,h=2,dZ=0.2,linewidth=0.5\pslinewidth,viewpoint=50 60 10} +\psSolid[object=grille,base=-5 5 -5 5]% +\psSolid[object=cylindre,r=1,h=0.2,ngrid=1 36](-3,-3,0) +\psSolid[object=cylindre,r=1,h=0.2,ngrid=1 36](-3,3,0) +\psSolid[object=cylindre,r=1,h=0.2,ngrid=1 36](3,3,0) +\psSolid[object=cylindre,r=1,h=0.2,ngrid=1 36](3,-3,0) +\pshelices[incolor=red!50,rubans=2](-3,-3,0.2) +\pshelices[incolor=yellow!50,rubans=2](-3,3,0.2) +\pshelices[incolor=green!50,rubans=2](3,3,0.2) +\pshelices[incolor=gray!50,rubans=2](3,-3,0.2) +\end{pspicture} +\end{LTXexample} + +\section{Ruban enroulé autour d'un tore} + +\begin{BDef} +\Lcs{psSpiralRing}\OptArgs\OptArg*{\Largr{$x_0,y_0,z_0$}} +\end{BDef} + +%\begin{lstlisting} +%\psSpiralRing[incolor=yellow!50,r1=4,r0=1,hue,lightsrc=30 5 17](x,y,z) +%\end{lstlisting} + +On peut paramétrer le rayon moyen \LKeyword{r1=2}, le rayon intérieur \LKeyword{r0=1}, +l'épaisseur du ruban \LKeyword{dPHI=2}, en degrés suivant la latitude, le nombre de +spires \LKeyword{spires=10} +du ruban, le nombre de brins du ruban \LKeyword{resolution=36}, la couleur de +l'intérieur et de l'extérieur du ruban. +{ +\psset{viewpoint=20 20 70 rtp2xyz,Decran=20,lightsrc=viewpoint,resolution=360} +\begin{LTXexample}[pos=l,width=7.5cm] +\psset{unit=0.75} +\begin{pspicture}(-5,-5)(5,5) +\psSpiralRing[incolor=yellow!50, + r1=4,r0=1,hue=0 1]% +\end{pspicture} +\end{LTXexample} + +\begin{LTXexample}[pos=l,width=7.5cm] +\psset{unit=0.75} +\begin{pspicture}(-5,-5)(5,5) +\psframe*(-5,-5)(5,5) +\psSpiralRing[incolor=yellow!20,r1=4,r0=1, + fillcolor=orange,grid, + dPHI=10,spires=5]% +\end{pspicture} +\end{LTXexample} + + +\begin{LTXexample}[pos=l,width=7.5cm] +\psset{unit=0.75} +\begin{pspicture}(-5,-5)(5,5) +\psSpiralRing[r1=4,r0=1,fillcolor=blue, + incolor=gray!50,grid, + dPHI=2,spires=20, + resolution=720]% +\end{pspicture} +\end{LTXexample} + +\begin{LTXexample}[pos=l,width=7.5cm] +\psset{unit=0.75} +\begin{pspicture}(-5,-5)(5,5) +\psSolid[object=tore,r0=1,r1=4,action=draw*,ngrid=18 36]% +\defFunction[algebraic]{solenoidetorique}(t){(4+cos(10*t))*cos(t)}{(4+cos(10*t))*sin(t)}{sin(10*t)} +\psSolid[object=courbe,linecolor=blue,r=0, + resolution=720,range=0 2 pi mul, + function=solenoidetorique]% +\end{pspicture} +\end{LTXexample} +} +\section{Ruban enroulé autour d'un paraboloïde} + +\begin{BDef} +\Lcs{psSpiralParaboloid}\OptArgs\OptArg*{\Largr{$x_0,y_0,z_0$}} +\end{BDef} + +On peut paramétrer la hauteur du paraboloïde \LKeyword{h=6}, l'épaisseur du ruban +\LKeyword{dz=.25}, le nombre de spires \LKeyword{spires=10} +du ruban, le nombre de brins du ruban \LKeyword{resolution=36}, le paramètre de la +parabole \LKeyword{p=2}, la couleur de l'intérieur et de l'extérieur du ruban. + +\begin{LTXexample}[wide,preset=\centering] +\psset{lightsrc=40 25 17} +\psset{unit=0.75,viewpoint=50 30 20,Decran=50} +\begin{pspicture}(-7,-3)(7,8) +\psSpiralParaboloid[incolor=yellow!50,h=6,hue=0 1,resolution=360,spires=5,grid,dZ=0.5] +\gridIIID[QZ=3,Zmin=0,Zmax=6](-5,5)(-5,5) +\end{pspicture} +\end{LTXexample} + + +{\psset{lightsrc=40 25 17,viewpoint=50 30 20,Decran=50} +\begin{LTXexample}[pos=l,width=9cm,wide] +\psset{unit=0.60} +\begin{pspicture}(-5,-4)(5,9) +\defFunction[algebraic]{spiraleparabolique}(t) + {2*(sqrt(t))*cos(10*t)}{2*(sqrt(t))*sin(10*t)}{t} +\psSolid[object=courbe,linecolor=blue,r=0, + resolution=720,range=0 6, + function=spiraleparabolique]% +\gridIIID[QZ=3,Zmin=0,Zmax=6](-5,5)(-5,5) +\end{pspicture} +\end{LTXexample} + +\begin{LTXexample}[pos=l,width=9cm,wide] +\psset{unit=0.60} +\begin{pspicture}(-7,-4)(7,9) +\psSpiralParaboloid[incolor=yellow!50, + h=6,hue=0 1, + resolution=360, + dZ=0.25] +\gridIIID[QZ=3,Zmin=0,Zmax=6](-5,5)(-5,5) +\end{pspicture} +\end{LTXexample} +} +\section{Ruban enroulé autour d'une sphère} + +\begin{BDef} +\Lcs{psSphericalSpiral}\OptArgs\OptArg*{\Largr{$x_0,y_0,z_0$}} +\end{BDef} + +%\begin{lstlisting} +%\psSphericalSpiral[incolor=yellow!50,R=4,hue=0 1,dPHI=2,spires=10](x,y,z) +%\end{lstlisting} + +On peut paramétrer le rayon \LKeyword{R=2}, l'épaisseur du ruban +\LKeyword{dPHI=2}, en degrés suivant la latitude, le nombre de spires \LKeyword{spires=10} +de chaque hélice, le nombre de brins du ruban \LKeyword{resolution=36}, +la couleur de l'intérieur et de l'extérieur du ruban. + +\psset{viewpoint=50 20 10,Decran=50,resolution=180} +\begin{LTXexample}[width=9cm] +\psset{unit=0.75} +\begin{pspicture}(-5,-5)(5,5) +\defFunction[algebraic]{helicespherique}(t){4*cos(10*t)*cos(t)}{4*sin(10*t)*cos(t)}{4*sin(t)} +\psSolid[object=courbe,linecolor=blue,r=0, + resolution=720,range=pi 2 div neg pi 2 div, + function=helicespherique]% +\psSolid[object=sphere,r=4,action=draw,ngrid=18 18]% +\gridIIID[Zmin=-4,Zmax=4](-4,4)(-4,4) +\end{pspicture} +\end{LTXexample} + +\begin{LTXexample}[width=9cm] +\psset{unit=0.75} +\begin{pspicture}(-5,-5)(5,5) +\psset{viewpoint=50 20 10,Decran=50,resolution=180} +\psSphericalSpiral[incolor=yellow!50,R=4,hue=0 1,lightsrc=30 5 17]% +\gridIIID[Zmin=-4,Zmax=4](-4,4)(-4,4) +\end{pspicture} +\end{LTXexample} + +\begin{LTXexample}[width=9cm] +\psset{unit=0.75} +\begin{pspicture}(-5,-5)(5,5) +\psframe*(-5,-5)(5,5) +\psset{viewpoint=50 20 30,Decran=50,resolution=360} +\psSphericalSpiral[incolor=yellow!20,R=4,fillcolor=orange,lightsrc=40 15 25,grid,dPHI=10](0,0,0) +\end{pspicture} +\end{LTXexample} + +\begin{LTXexample}[width=9cm] +\begin{pspicture}(-4,-4)(4,4) +\psframe*(-4,-4)(4,4) +\psset{unit=0.6} +\psset{viewpoint=50 20 10,Decran=50,resolution=360} +\psSphericalSpiral[incolor=yellow!50,R=4,fillcolor=green!50,lightsrc=32 38 -10,grid] +\white% +\gridIIID[Zmin=-4,Zmax=4,linecolor=white](-4,4)(-4,4) +\end{pspicture} +\end{LTXexample} + +\section{Rubans enroulés autour d'un cône} + +\begin{BDef} +\Lcs{psSpiralCone}\OptArgs\OptArg*{\Largr{$x_0,y_0,z_0$}} +\end{BDef} + + + +On peut paramétrer le rayon \LKeyword{R=2}, la hauteur \LKeyword{h=6}: +il s'agit d'un double cône vertical, l'épaisseur(ou largeur) du ruban +\LKeyword{dZ=0.5}, le nombre de spires \LKeyword{spires=10} de chaque hélice, +le nombre de rubans \LKeyword{rubans=1}, le nombre d'éléments par ruban +\LKeyword{resolution=36}, la couleur de l'intérieur et de l'extérieur du ruban. + +\psset{unit=0.75} +\begin{LTXexample}[pos=t] +\begin{pspicture}(-7,-7)(7,9) +\psset{viewpoint=50 20 10 rtp2xyz,Decran=50,lightsrc=viewpoint,spires=10} +\psSolid[object=cone, + h=5,r=4,mode=4, + action=draw](0,0,-5) +\psSolid[object=cone,RotX=180, + h=5,r=4,mode=4, + action=draw](0,0,5) +\psSpiralCone[incolor=yellow!50,h=10,hue=0 1,resolution=360,dZ=0.25,grid]% +\gridIIID[Zmin=-5,Zmax=5,planmarks=true](-4,4)(-4,4) +\end{pspicture} +\end{LTXexample} + +\psset{unit=0.75} +\begin{LTXexample}[pos=t] +\begin{pspicture}(-7,-8)(7,9) +\psframe*(-7,-8)(7,9) +\psset{viewpoint=50 20 30 rtp2xyz,Decran=50,lightsrc=viewpoint,spires=10,rubans=4} +\psSpiralCone[incolor=yellow!50,h=10,R=5,fillcolor=green!50,resolution=720,dZ=0.1,grid]% +\end{pspicture} +\end{LTXexample} + + + +\clearpage +\section{List of all optional arguments for \texttt{pst-ruban}} + +\xkvview{family=pst-rubans,columns={key,type,default}} + + +\bgroup +\nocite{*} +\raggedright +\bibliographystyle{plain} +\bibliography{\jobname} +\egroup + +\printindex + + +\end{document} diff --git a/Master/texmf-dist/source/generic/pst-rubans/Makefile b/Master/texmf-dist/source/generic/pst-rubans/Makefile new file mode 100644 index 00000000000..df0871f3503 --- /dev/null +++ b/Master/texmf-dist/source/generic/pst-rubans/Makefile @@ -0,0 +1,73 @@ + +# `Makefile' for `pst-rubans.pdf', hv, 2006/08/11 + +.SUFFIXES : .tex .ltx .dvi .ps .pdf .eps + +PACKAGE = pst-rubans + +MAIN = $(PACKAGE)-doc + +LATEX = latex + +ARCHNAME = $(MAIN)-$(shell date +%y%m%d) + +ARCHFILES = $(PACKAGE).sty $(PACKAGE).tex $(PACKAGE).pro $(MAIN).tex README Changes Makefile + +TDS = ~/PSTricks/PSTricks-TDS + +all : doc clean +#tds + +doc: $(MAIN).pdf + +$(MAIN).pdf : $(MAIN).ps + GS_OPTIONS=-dAutoRotatePages=/None ps2pdf $< + +$(MAIN).ps : $(MAIN).dvi + dvips $< + +$(MAIN).dvi : $(MAIN).tex + $(LATEX) $< + $(LATEX) $< + if ! test -f $(basename $<).glo ; then touch $(basename $<).glo; fi + if ! test -f $(basename $<).idx ; then touch $(basename $<).idx; fi + makeindex -s gglo.ist -t $(basename $<).glg -o $(basename $<).gls \ + $(basename $<).glo + makeindex -t $(basename $<).ilg -o $(basename $<).ind \ + $(basename $<).idx + bibtex $(basename $<) + $(LATEX) $< + $(LATEX) $< + +clean : + $(RM) $(addprefix $(MAIN), .log .aux .blg .bbl .glg .glo .gls .ilg .idx .ind .tmp .toc .out ) + $(RM) $(addprefix $(MAIN), .dvi .ps) + +veryclean : clean + $(RM) $(addprefix $(MAIN), .pdf .bbl .blg) + +arch : + zip $(ARCHNAME).zip $(ARCHFILES) + +tds: + cp -u $(PACKAGE).sty ~/Links/texmf-local-latex/$(PACKAGE)/ +# + cp -u Changes $(TDS)/doc/generic/$(PACKAGE)/ + cp -u README $(TDS)/doc/generic/$(PACKAGE)/ + cp -u $(MAIN).pdf $(TDS)/doc/generic/$(PACKAGE)/ +# + cp -u Changes $(TDS)/tex/latex/$(PACKAGE)/ + cp -u $(PACKAGE).sty $(TDS)/tex/latex/$(PACKAGE)/ +# + cp -u Changes $(TDS)/tex/generic/$(PACKAGE)/ + cp -u $(PACKAGE).tex $(TDS)/tex/generic/$(PACKAGE)/ +# +# cp -u Changes $(TDS)/dvips/$(PACKAGE)/ +# cp -u *.pro $(TDS)/dvips/$(PACKAGE)/ +# + cp -u Changes $(TDS)/source/$(PACKAGE)/ + cp -u $(MAIN).tex $(TDS)/source/$(PACKAGE)/ + cp -u $(MAIN).bib $(TDS)/source/$(PACKAGE)/ + cp -u Makefile $(TDS)/source/$(PACKAGE)/ + +# EOF diff --git a/Master/texmf-dist/tex/generic/pst-rubans/pst-rubans.tex b/Master/texmf-dist/tex/generic/pst-rubans/pst-rubans.tex new file mode 100644 index 00000000000..69861418c98 --- /dev/null +++ b/Master/texmf-dist/tex/generic/pst-rubans/pst-rubans.tex @@ -0,0 +1,353 @@ +%% Package `pst-rubans.tex' +%% +%% This program can be redistributed and/or modified under +%% the terms of the LaTeX Project Public License Distributed +%% from CTAN archives in directory macros/latex/base/lppl.txt. +%% +%% DESCRIPTION: +%% `pst-rubans' is a PSTricks package for +%% drawing 3 dimensional bands. +%% +%% +%% Authors : Manuel Luque <Manuel.Luque27@gmail.com> +%% Herbert Voss <hvoss@tug.org> +%% +\csname PSTRubansLoaded\endcsname +\let\PSTRubansLoaded\endinput +% +% Require PSTricks and pst-solides3d +\ifx\PSTricksLoaded\endinput\else\input pstricks.tex\fi +\ifx\PSTGradLoaded\endinput \else\input pst-solides3d.tex\fi +\ifx\PSTXKeyLoaded\endinput \else\input pst-xkey.tex\fi +% +\def\fileversion{1.2} +\def\filedate{2011/02/10} +% +\message{`PST-Rubans' v\fileversion, \filedate\space (ML/CJ/DG/HV)} +\edef\PstAtCode{\the\catcode`\@} \catcode`\@=11\relax +% +\pst@addfams{pst-rubans} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%% Definition des differentes variables pour PSTricks +%% ruban en helice circulaire +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\define@key[psset]{pst-rubans}{dZ}{\def\pst@rubans@dZ{#1}} % hauteur du ruban +\psset[pst-rubans]{dZ=0.5} % hauteur du ruban +\define@key[psset]{pst-rubans}{spires}{\def\pst@rubans@spires{#1}} % +\psset[pst-rubans]{spires=10} % nombre de spires d'un ruban +\define@key[psset]{pst-rubans}{rubans}{\def\pst@rubans@rubans{#1}} % +\psset[pst-rubans]{rubans=1} % nombre de spires d'un ruban + +\def\pshelices{\pst@object{pshelices}} +%% usage : \pshelices[options](x,y,z) +\def\pshelices@i{\@ifnextchar({\pshelices@ii}{\pshelices@ii(0,0,0)}} +\def\pshelices@ii(#1,#2,#3){% + \pst@killglue% + \begingroup% + \use@par% +\pstVerb{ +/dz \pst@rubans@dZ\space def +/initvar_SpiralHelice { + /rubans \pst@rubans@rubans\space def + /phase {360 rubans div} bind def + /Rayon \pst@solides@R\space def + /Hauteur \pst@solides@h\space def + /PHI 0 def + /x@0 Rayon PHI cos mul def + /y@0 Rayon PHI sin mul def + /z@0 0 def + /pulsation {6.28319 Hauteur div \pst@rubans@spires\space mul} bind def + /x@1 {Rayon t@ pulsation mul 57.295 mul PHI add cos mul} def + /y@1 {Rayon t@ pulsation mul 57.295 mul PHI add sin mul} def + /z@1 {t@} def + /dA {Hauteur \pst@solides@resolution\space div} bind def + /tableau_des_sommets [ + rubans { + dA dA Hauteur{/t@ exch def + x@0 y@0 z@0 + x@1 y@1 z@1 + x@1 y@1 z@1 dz add + x@0 y@0 z@0 dz add + /x@0 x@1 def + /y@0 y@1 def + /z@0 z@1 def + } for + /PHI PHI phase add def + /x@0 Rayon PHI cos mul def + /y@0 Rayon PHI sin mul def + /z@0 0 def + } repeat ] def + /Sommets {tableau_des_sommets aload pop} def + /NbrePoints tableau_des_sommets length 3 div cvi def + /Faces {0 4 NbrePoints 4 sub { + /Ni exch def + [ Ni Ni 1 add Ni 2 add Ni 3 add] + } for + } def + /Faces_internes {0 4 NbrePoints 4 sub { + /Ni exch def + [Ni 3 add Ni 2 add Ni 1 add Ni] + } for + } def +} def +initvar_SpiralHelice +}% +%\psSolid[object=new,sommets=Sommets,fillcolor=\psincolor,faces={Faces_internes}](#1,#2,#3)% + \psSolid[object=new,sommets=Sommets,faces={Faces},hollow](#1,#2,#3)% + \endgroup% + \ignorespaces% +} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%% ruban en helice torique +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\define@key[psset]{pst-rubans}{dPHI}{\def\pst@rubans@dPHI{#1}} % hauteur du ruban +\psset[pst-rubans]{dPHI=5} % hauteur du ruban en degrés + +\def\psSpiralRing{\pst@object{psSpiralRing}} +%% usage : \psSpiralRing[options] +\def\psSpiralRing@i{\@ifnextchar({\psSpiralRing@ii}{\psSpiralRing@ii(0,0,0)}} +\def\psSpiralRing@ii(#1,#2,#3){% +% \pst@killglue% + \begingroup% + \use@par% + \pstVerb{% + /ri \pst@solides@rO\space def % rayon intérieur + /rm \pst@solides@rI\space def % rayon moyen + /spires \pst@rubans@spires\space def + /dPHI \pst@rubans@dPHI\space def + /initvar_SpiralRing { + /THETA {PHI spires 2 mul mul} def + /x@ {rm ri THETA cos mul add PHI cos mul} def + /y@ {rm ri THETA cos mul add PHI sin mul} def + /z@ {ri THETA sin mul} def + /dt@ {360 \pst@solides@resolution\space div} bind def + /PHI 0 def + /tableau_des_sommets [ + 0 dt@ 360 dt@ sub{/t@ exch def + /PHI t@ def /THETA0 THETA def + x@ y@ z@ + /PHI t@ dt@ add def /THETA1 THETA def + x@ y@ z@ %/x1 x def /y1 y def /z1 z def % S2 + /PHI PHI dPHI add def + rm ri THETA1 cos mul add PHI cos mul + rm ri THETA1 cos mul add PHI sin mul + ri THETA1 sin mul % S3 + /PHI PHI dt@ sub def + rm ri THETA0 cos mul add PHI cos mul + rm ri THETA0 cos mul add PHI sin mul + ri THETA0 sin mul % S4 + } for + ] + def + /Sommets {tableau_des_sommets aload pop} def + /NbrePoints tableau_des_sommets length 3 div cvi def + /Faces_internes {0 4 NbrePoints 4 sub { + /Ni exch def + [ Ni Ni 1 add Ni 2 add Ni 3 add] + } for + } def + /Faces {0 4 NbrePoints 4 sub { + /Ni exch def + [Ni 3 add Ni 2 add Ni 1 add Ni] + } for + } def +} def +initvar_SpiralRing +}% +%\psSolid[object=new,sommets=Sommets,fillcolor=\psincolor,faces={Faces_internes}](#1,#2,#3)% +\psSolid[object=new,sommets=Sommets,faces={Faces},hollow](#1,#2,#3)% + \endgroup% + \ignorespaces} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%% ruban en helice spherique +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + + +\def\psSphericalSpiral{\pst@object{psSphericalSpiral}} +%% usage : \psSphericalSpiral[options] +\def\psSphericalSpiral@i{\@ifnextchar({\psSphericalSpiral@ii}{\psSphericalSpiral@ii(0,0,0)}} +\def\psSphericalSpiral@ii(#1,#2,#3){% + \pst@killglue% + \begingroup% + \use@par% +\pstVerb{% +/initvar_SpiralSpherical { + /Rayon \pst@solides@R\space def + /spires \pst@rubans@spires\space def + /dPHI \pst@rubans@dPHI\space def + /THETA {PHI spires 2 mul mul} def + /x@ {Rayon THETA cos mul PHI cos mul} def + /y@ {Rayon THETA sin mul PHI cos mul} def + /z@ {Rayon PHI sin mul} def + /dt@ {180 \pst@solides@resolution\space div} bind def + /PHI -90 def + x@ y@ z@ /x0 x@ def /y0 y@ def /z0 z@ def % S1 + /tableau_des_sommets [ + -90 dt@ 90 dPHI sub{/t@ exch def + /PHI t@ def /THETA0 THETA def + x@ y@ z@ + /PHI t@ dt@ add def /THETA1 THETA def + x@ y@ z@ %/x1 x def /y1 y def /z1 z def % S2 + /PHI PHI dPHI add def +% x1 y1 z % S3 + Rayon THETA1 cos mul PHI cos mul + Rayon THETA1 sin mul PHI cos mul + z@ + /PHI PHI dt@ sub def + Rayon THETA0 cos mul PHI cos mul + Rayon THETA0 sin mul PHI cos mul + z@ % S4 + } for + ] + def + /Sommets {tableau_des_sommets aload pop} def + /NbrePoints tableau_des_sommets length 3 div cvi def + /Faces {0 4 NbrePoints 4 sub { + /Ni exch def + [ Ni Ni 1 add Ni 2 add Ni 3 add] + } for + } def + /Faces_internes {0 4 NbrePoints 4 sub { + /Ni exch def + [Ni 3 add Ni 2 add Ni 1 add Ni] + } for + } def +} def +initvar_SpiralSpherical +}% +%\psSolid[object=new,sommets=Sommets,fillcolor=\psincolor,faces={Faces_internes}](#1,#2,#3)% +\psSolid[object=new,sommets=Sommets,faces={Faces},hollow](#1,#2,#3)% + \endgroup% + \ignorespaces% +} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%% ruban en helice sur un paraboloide +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\define@key[psset]{pst-rubans}{p}{\def\pst@rubans@p{#1}} % parametre de la parabole +\psset[pst-rubans]{p=2} + +\def\psSpiralParaboloid{\pst@object{psSpiralParaboloid}} +%% usage : \psSpiralParaboloid[options] +\def\psSpiralParaboloid@i{\@ifnextchar({\psSpiralParaboloid@ii}{\psSpiralParaboloid@ii(0,0,0)}} +\def\psSpiralParaboloid@ii(#1,#2,#3){% +% \pst@killglue% + \begingroup% + \use@par% +\pstVerb{% + /dz@ \pst@rubans@dZ\space def % hauteur du ruban + /p@ {\pst@rubans@p\space 2 mul} bind def % paramètre de la parabole x 2 + /Hauteur \pst@solides@h\space def +/initvar_SpiralParaboloid { + /pulsation {6.28319 Hauteur div \pst@rubans@spires\space mul} bind def + /x@ {z@ p@ mul sqrt t@ pulsation mul 57.295 mul cos mul} def + /y@ {z@ p@ mul sqrt t@ pulsation mul 57.295 mul sin mul} def + /dH {Hauteur \pst@solides@resolution\space div} bind def + /tableau_des_sommets [ + 0 dH Hauteur {/H@ exch def + /z@ H@ def + /t@ H@ def + x@ y@ z@ % S1 + /t@ t@ dH add def + /z@ t@ def + x@ y@ z@ % S2 + /z@ z@ dz@ add def + x@ y@ z@ % S3 + /z@ H@ dz@ add def + /t@ H@ def + x@ y@ z@ % S4 + } for + ] + def + /Sommets {tableau_des_sommets aload pop} def + /NbrePoints tableau_des_sommets length 3 div cvi def + /Faces {0 4 NbrePoints 4 sub { + /Ni exch def + [ Ni Ni 1 add Ni 2 add Ni 3 add] + } for + } def + /Faces_internes {0 4 NbrePoints 4 sub { + /Ni exch def + [Ni 3 add Ni 2 add Ni 1 add Ni] + } for + } def +} def +initvar_SpiralParaboloid +}% +%\psSolid[object=new,sommets=Sommets,fillcolor=\psincolor,faces={Faces_internes}](#1,#2,#3)% +\psSolid[object=new,sommets=Sommets,faces={Faces},hollow](#1,#2,#3)% + \endgroup% + \ignorespaces% +} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\def\psSpiralCone{\pst@object{psSpiralCone}} +%% usage : \psSpiralCone[options](x,y,z) +\def\psSpiralCone@i{\@ifnextchar({\psSpiralCone@ii}{\psSpiralCone@ii(0,0,0)}} +\def\psSpiralCone@ii(#1,#2,#3){% + \begingroup% + \use@par% +\pstVerb{/dz \pst@rubans@dZ\space def +/initvar_SpiralHelice_Conique { + /rubans \pst@rubans@rubans\space def + /phase {360 rubans div} bind def + /Rayon \pst@solides@R\space def + /Hauteur \pst@solides@h\space def + /PHI 0 def + /t@0 Hauteur 2 div neg def + /x@0 Rayon Hauteur 2 div div t@0 mul PHI cos mul def + /y@0 Rayon Hauteur 2 div div t@0 mul PHI sin mul def + /z@0 t@0 def + /pulsation {6.28319 Hauteur div \pst@rubans@spires\space mul} bind def + /x@1 {Rayon Hauteur 2 div div t@ mul t@ pulsation mul 57.295 mul PHI add cos mul} def + /y@1 {Rayon Hauteur 2 div div t@ mul t@ pulsation mul 57.295 mul PHI add sin mul} def + /z@1 {t@} def + /dA {Hauteur \pst@solides@resolution\space div} bind def + /tableau_des_sommets [ + rubans { + Hauteur 2 div neg dA Hauteur 2 div {/t@ exch def + t@ abs dA gt { + x@0 y@0 z@0 % S0 + x@1 y@1 z@1 % S1 + /COEFF z@1 dz add z@1 div def + x@1 COEFF mul y@1 COEFF mul z@1 dz add % S2 + x@0 COEFF mul y@0 COEFF mul z@0 dz add % S3 + /x@0 x@1 def + /y@0 y@1 def + /z@0 z@1 def + } if + } for + /PHI PHI phase add def + /t@0 Hauteur 2 div neg def + /x@0 Rayon Hauteur 2 div div t@0 mul PHI cos mul def + /y@0 Rayon Hauteur 2 div div t@0 mul PHI sin mul def + /z@0 t@0 def + } repeat + ] + def + /Sommets {tableau_des_sommets aload pop} def + /NbrePoints tableau_des_sommets length 3 div cvi def + /Faces {0 4 NbrePoints 4 sub { + /Ni exch def + [ Ni Ni 1 add Ni 2 add Ni 3 add] + } for + } def + /Faces_internes {0 4 NbrePoints 4 sub { + /Ni exch def + [Ni 3 add Ni 2 add Ni 1 add Ni] + } for + } def +} def +initvar_SpiralHelice_Conique +}% +\psSolid[object=new,sommets=Sommets,faces={Faces},hollow](#1,#2,#3)% + \endgroup% + \ignorespaces% +} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\catcode`\@=\PstAtCode\relax +\endinput diff --git a/Master/texmf-dist/tex/latex/pst-rubans/pst-rubans.sty b/Master/texmf-dist/tex/latex/pst-rubans/pst-rubans.sty new file mode 100644 index 00000000000..506b0cb4f3f --- /dev/null +++ b/Master/texmf-dist/tex/latex/pst-rubans/pst-rubans.sty @@ -0,0 +1,24 @@ +% $Id: pst-rubans.sty 511 2011-06-06 15:39:40Z herbert $ +%% +%% This is file `pst-plot.sty'. +%% +%% IMPORTANT NOTICE: +%% +%% pst-rubans.sty Copyright (C) 2004-2011 Herbert Voss <hvoss@tug.org> +%% +%% This package may be distributed under the terms of the LaTeX Project +%% Public License, as described in lppl.txt in the base LaTeX distribution. +%% Either version 1.0 or, at your option, any later version. +%% +%NeedsTeXFormat{LaTeX2e} + +\ProvidesPackage{pst-rubans} + [2011/06/05 v1.00 LaTeX wrapper for `pst-rubans' (HV)] +% +\RequirePackage{pstricks} +\ProvidesPackage{pst-rubans}[2007/12/04 package wrapper for + pst-rubans] +\input{pst-rubans.tex} +\ProvidesFile{pst-rubans.tex} + [\filedate\space v\fileversion\space `PST-rubans'] +\endinput diff --git a/Master/tlpkg/bin/tlpkg-ctan-check b/Master/tlpkg/bin/tlpkg-ctan-check index 345f9ee7d0a..3446bc3113d 100755 --- a/Master/tlpkg/bin/tlpkg-ctan-check +++ b/Master/tlpkg/bin/tlpkg-ctan-check @@ -301,7 +301,7 @@ my @TLP_working = qw( pst-lens pst-light3d pst-magneticfield pst-math pst-mirror pst-node pst-ob3d pst-optexp pst-optic pst-osci pst-pad pst-pdgr pst-platon pst-plot pst-poly pst-pdf - pst-qtree + pst-qtree pst-rubans pst-sigsys pst-solides3d pst-soroban pst-spectra pst-slpe pst-stru pst-support pst-text pst-thick pst-tree pst-tvz pst-uml pst-vowel pst-vue3d diff --git a/Master/tlpkg/libexec/ctan2tds b/Master/tlpkg/libexec/ctan2tds index 5b50b28ac44..b054f560bea 100755 --- a/Master/tlpkg/libexec/ctan2tds +++ b/Master/tlpkg/libexec/ctan2tds @@ -690,6 +690,7 @@ chomp ($Build = `cd $Master/../Build/source && pwd`); 'pst-plot', "&MAKEpst", 'pst-poly', "&MAKEpst", 'pst-qtree', "&MAKEpst", + 'pst-rubans', "&MAKEpst", 'pst-sigsys', "&MAKEpst", 'pst-slpe', "&MAKEpst", 'pst-solides3d',"&MAKEpst", diff --git a/Master/tlpkg/tlpsrc/collection-pstricks.tlpsrc b/Master/tlpkg/tlpsrc/collection-pstricks.tlpsrc index e0155bb3a40..fba654f3915 100644 --- a/Master/tlpkg/tlpsrc/collection-pstricks.tlpsrc +++ b/Master/tlpkg/tlpsrc/collection-pstricks.tlpsrc @@ -58,6 +58,7 @@ depend pst-platon depend pst-plot depend pst-poly depend pst-qtree +depend pst-rubans depend pst-sigsys depend pst-slpe depend pst-spectra diff --git a/Master/tlpkg/tlpsrc/pst-rubans.tlpsrc b/Master/tlpkg/tlpsrc/pst-rubans.tlpsrc new file mode 100644 index 00000000000..e69de29bb2d --- /dev/null +++ b/Master/tlpkg/tlpsrc/pst-rubans.tlpsrc |