diff options
author | Karl Berry <karl@freefriends.org> | 2019-10-02 21:19:32 +0000 |
---|---|---|
committer | Karl Berry <karl@freefriends.org> | 2019-10-02 21:19:32 +0000 |
commit | 3a42c1fa608c2ce1e17a6301f9f96bf20fce0a2e (patch) | |
tree | 6bbe568e19e38aa88000759d778b123a9d74a04c | |
parent | 40da9ba138cb7756f970eca33d3896daf628c2c9 (diff) |
pst-turtle (2oct19)
git-svn-id: svn://tug.org/texlive/trunk@52261 c570f23f-e606-0410-a88d-b1316a301751
-rw-r--r-- | Master/texmf-dist/doc/generic/pst-turtle/Changes | 10 | ||||
-rw-r--r-- | Master/texmf-dist/doc/generic/pst-turtle/README.md | 19 | ||||
-rw-r--r-- | Master/texmf-dist/doc/generic/pst-turtle/pst-turtle-doc.bib | 168 | ||||
-rw-r--r-- | Master/texmf-dist/doc/generic/pst-turtle/pst-turtle-doc.pdf | bin | 0 -> 64625 bytes | |||
-rw-r--r-- | Master/texmf-dist/doc/generic/pst-turtle/pst-turtle-doc.tex | 200 | ||||
-rw-r--r-- | Master/texmf-dist/dvips/pst-turtle/pst-turtle.pro | 302 | ||||
-rw-r--r-- | Master/texmf-dist/tex/generic/pst-turtle/pst-turtle.tex | 63 | ||||
-rw-r--r-- | Master/texmf-dist/tex/latex/pst-turtle/pst-turtle.sty | 12 | ||||
-rwxr-xr-x | Master/tlpkg/bin/tlpkg-ctan-check | 3 | ||||
-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-turtle.tlpsrc | 0 |
12 files changed, 778 insertions, 1 deletions
diff --git a/Master/texmf-dist/doc/generic/pst-turtle/Changes b/Master/texmf-dist/doc/generic/pst-turtle/Changes new file mode 100644 index 00000000000..c44b1dd7125 --- /dev/null +++ b/Master/texmf-dist/doc/generic/pst-turtle/Changes @@ -0,0 +1,10 @@ +..... pst-turtle.tex +0.02 2019-10-02 new documentation +0.01 2019-05-17 first CTAN version + +..... pst-turtle.sty +0.01 2019-05-17 first CTAN version + + +..... pst-turtle.pro +0.01 2019-05-17 first CTAN version diff --git a/Master/texmf-dist/doc/generic/pst-turtle/README.md b/Master/texmf-dist/doc/generic/pst-turtle/README.md new file mode 100644 index 00000000000..950bb35123d --- /dev/null +++ b/Master/texmf-dist/doc/generic/pst-turtle/README.md @@ -0,0 +1,19 @@ +# pst-turtle: Turtle graphics# + +%% 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. + +Save the files pst-turtle.sty|pro|tex in a directory, which is part of your +local TeX tree. The pro file should go into $TEXMF/dvips/pstricks/ +Then do not forget to run texhash to update this tree. + +pst-turtle needs pstricks, which should +be part of your local TeX installation, otherwise get it from a +CTAN server, http://mirror.ctan.org + +PSTricks is PostScript Tricks, the documentation cannot be run +with pdftex, use the sequence latex->dvips->ps2pdf or +pdflatex with package auto-pst-pdf or xelatex. + +%% $Id: README.md 1064 2019-05-19 09:17:21Z herbert $ diff --git a/Master/texmf-dist/doc/generic/pst-turtle/pst-turtle-doc.bib b/Master/texmf-dist/doc/generic/pst-turtle/pst-turtle-doc.bib new file mode 100644 index 00000000000..e749f71bfb1 --- /dev/null +++ b/Master/texmf-dist/doc/generic/pst-turtle/pst-turtle-doc.bib @@ -0,0 +1,168 @@ +@STRING{tugboat = {TUGboat} } +@STRING{beiprogramm = {{\TeX}-Beiprogramm} } +@STRING{bretter = {Bretter, die die Welt bedeuten} } +@STRING{dtk = {{D}ie {\TeX}nische {K}om{\"o}die} } +@STRING{editorial = {Editorial} } +@STRING{fremdebuehne = {Von fremden B{\"u}hnen} } +@STRING{fundus = {Aus dem Fundus} } +@STRING{hinterbuehne = {Hinter der B{\"u}hne} } +@STRING{leserbrief = {Leserbrief(e)} } +@STRING{magazin = {Magazin} } +@STRING{rezension = {Rezensionen} } +@STRING{schonimmer = {Was Sie schon immer {\"u}ber {\TeX} wissen wollten \dots} } +@STRING{theaterkasse = {Von der Theaterkasse} } +@STRING{theatertage = {{\TeX}-Theatertage} } + +@Article{ dtk02.2:jackson.voss:plot-funktionen, + author = {Laura E. Jackson and Herbert Voß}, + title = {Die {P}lot-{F}unktionen von {\texttt{pst-plot}}}, + journal = dtk, + year = 2002, + volume = {2/02}, + altvolume = 2, + altnumber = 14, + month = jun, + pages = {27--34}, + annote = bretter, + keywords = {}, + abstract = { Im letzten Heft wurden die mathematischen Funktionen von + \PS~im Zusammenhang mit dem {\LaTeX}-Paket + \texttt{pst-plot} zum Zeichnen von Funktionen beschrieben + und durch Beispiele erl{\"a}utert. In diesem Teil werden + die bislang nur erw{\"a}hnten Plot-Funktionen f{\"u}r + externe Daten behandelt. } +} + +@Article{ dtk02.1:voss:mathematischen, + author = {Herbert Voß}, + title = {Die mathematischen {F}unktionen von {P}ost{S}cript}, + journal = dtk, + year = 2002, + volume = {1/02}, + altvolume = 1, + altnumber = 14, + month = mar, + pages = {}, + annote = bretter, + keywords = {}, + abstract = { \PS, faktisch genauso alt wie {\TeX}, ist im + Verh{\"a}ltnis dazu allgemein noch weniger bekannt, wenn es + darum geht zu beurteilen, was es denn nun im eigentlichen + Sinne ist. Außerdem wird h{\"a}ufig vergessen, dass + sich mit den \PS-Funktionen viele Dinge erledigen lassen, + bei denen sonst auf externe Programme zur{\"u}ckgegriffen + wird. Dies wird im Folgenden f{\"u}r die mathematischen + Funktionen im Zusammenhang mit dem Paket \texttt{pst-plot} + gezeigt. } +} + +@Book{tlgc2, + author = {Michel Goosens and Frank Mittelbach and Sebastian Rahtz and Denis Roegel and Herbert Voß}, + title = {The {\LaTeX} {G}raphics {C}ompanion}, + publisher = {{Addison-Wesley Publishing Company}}, + edition = 2, + 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} +} + +@Book{PostScript, + Author = {Kollock, Nikolai G.}, + Title = {Post{S}cript richtig eingesetzt: vom {K}onzept zum + praktischen {E}insatz}, + Publisher = {IWT}, + Address = {Vaterstetten}, + year = 1989, +} + +@online{pstricks, + Title = {PSTricks - {\PS} macros for generic {\TeX}}, + Author = {{Timothy van} Zandt}, + Organization = {}, + url = {http://www.tug.org/application/PSTricks}, + year = 1993 +} + +@ctan{pst-plot, + Title = {\texttt{pst-plot}: Plotting two dimensional functions and data}, + Author = {{Timothy van} Zandt and Herbert Voß}, + Organization = {}, + url = {/graphics/pstricks/generic/pst-plot.tex}, + year = 1999 +} + +@ctan{multido, + Title = {\texttt{multido.tex} - a loop macro, that supports fixed-point addition}, + Author = {{Timothy van} Zandt}, + url = {/graphics/pstricks/generic/multido.tex}, + Note = {}, + year = 1997 +} + +@Book{PSTricks2, + author = {Herbert Voß}, + title = {\texttt{PSTricks} -- {G}rafik f\"ur \TeX{} und \LaTeX}, + edition = {7}, + publisher = {DANTE -- Lehmanns}, + year = {2016}, + publisher = {Heidelberg and Berlin} +} + +@Book{voss:math, + author = {Herbert Voß}, + title = {Typesetting mathematics with \LaTeX}, + publisher = {UIT}, + year = {2010}, + address = {Cambridge} +} + +@Book{PSTricks2-UIT, + author = {Herbert Voß}, + title = {PSTricks -- Graphics for \TeX\ and \LaTeX}, + publisher = {UIT}, + year = {2011}, + address = {Cambridge} +} + +@Book{LaTeXRef-UIT, + author = {Herbert Voß}, + title = {{\LaTeX} quick reference}, + publisher = {UIT}, + year = {2012}, + address = {Cambridge} +} + +@online{wolfram, + author = {Eric Weisstein}, + title = {Wolfram MathWorld}, + publisher = {{Wolfram}}, + year = {2007}, + url = {http://mathworld.wolfram.com} +} + +@ctan{pst-tools, + author = {Herbert Voß}, + title = {\texttt{pst-tools} -- Helper functions}, + year = {2012}, + url = {/graphics/pstricks/contrib/pst-tools} +} diff --git a/Master/texmf-dist/doc/generic/pst-turtle/pst-turtle-doc.pdf b/Master/texmf-dist/doc/generic/pst-turtle/pst-turtle-doc.pdf Binary files differnew file mode 100644 index 00000000000..4fcb9a2df41 --- /dev/null +++ b/Master/texmf-dist/doc/generic/pst-turtle/pst-turtle-doc.pdf diff --git a/Master/texmf-dist/doc/generic/pst-turtle/pst-turtle-doc.tex b/Master/texmf-dist/doc/generic/pst-turtle/pst-turtle-doc.tex new file mode 100644 index 00000000000..ccd26f5813f --- /dev/null +++ b/Master/texmf-dist/doc/generic/pst-turtle/pst-turtle-doc.tex @@ -0,0 +1,200 @@ +%% $Id: pst-turtle-doc.tex 1093 2019-10-02 11:28:36Z herbert $ +\documentclass[fontsize=11pt,english,BCOR=10mm,DIV=12,bibliography=totoc,parskip=false, + headings=small, headinclude=false,footinclude=false,oneside]{pst-doc} +\usepackage{pst-turtle} +\let\pstTurtleFV\fileversion +\renewcommand\bgImage{} + +%\usepackage[style=dtk]{biblatex} +\addbibresource{pst-turtle-doc.bib} + +\begin{document} + +\title{\texttt{pst-turtle}} +\subtitle{Turtle graphics; v.\pstTurtleFV} +\author{Herbert Vo\ss} +\docauthor{} +\date{\today} +\maketitle + +\tableofcontents + +\clearpage + +\begin{abstract} +\noindent +\LPack{pst-turtle} loads by default the following packages: \LPack{pstricks}, +and \LPack{pst-xkey}. +All should be already part of your local \TeX\ installation. If not, or in case +of having older versions, go to \url{http://www.CTAN.org/} and load the newest version. + +\vfill\noindent +Thanks to \\ + +\end{abstract} + + +\section{Usage} + +\begin{BDef} +\Lcs{psTurtle}\OptArgs\Largr{$x_0,y_0$}\Largb{Turtle code} +\end{BDef} + +The turle commands must be in PostScript notation, where you can use the +short or long version of the commands: + +\begin{verbatim} +/bk { back } bind def +/fd { forward } bind def +/lt { left } bind def +/pd { pendown } bind def +/pu { penup } bind def +/rt { right } bind def +\end{verbatim} + +The default unit is cm. + +\bigskip +\begin{LTXexample}[width=4cm,pos=l] +\begin{pspicture}[showgrid](3,3) +\psTurtle[linewidth=2pt,arrows=->](0,0){ 3 forward } +\end{pspicture} +\end{LTXexample} + +\bigskip +\begin{LTXexample}[width=4cm,pos=l] +\begin{pspicture}[showgrid](3,3) +\psTurtle[linewidth=2pt,arrows=->](0,0){ + 3 fd + 90 left 3 fd } +\end{pspicture} +\end{LTXexample} + +\bigskip +\begin{LTXexample}[width=4cm,pos=l] +\begin{pspicture}[showgrid](3,3) +\psTurtle[linewidth=2pt,arrows=->](0,0){ + 3 fd + 90 left 3 fd + 90 left 3 fd + 135 left 18 sqrt fd} +\end{pspicture} +\end{LTXexample} + + +\bigskip +\begin{LTXexample}[width=5cm,pos=l] +\begin{pspicture}[showgrid](4,4) +\psTurtle[linewidth=2pt](0.8,0){ + 5 { 2.5 fd 72 left } repeat +} +\end{pspicture} +\end{LTXexample} + +\bigskip +\begin{LTXexample}[width=5cm,pos=l] +\begin{pspicture}[showgrid](4,4) +\psTurtle[linewidth=2pt](2,1){ + 5 { 72 left 1 fd 72 right 1 fd 72 left} repeat +} +\end{pspicture} +\end{LTXexample} + +\bigskip +\begin{LTXexample}[width=5cm,pos=l] +\begin{pspicture}[showgrid](4,4) +\psTurtle[linewidth=2pt](2,0){ + /Angle { 360 7 div } bind def + 7 { Angle left 1 fd Angle right 1 fd Angle left} repeat +} +\end{pspicture} +\end{LTXexample} + +\bigskip +\begin{LTXexample}[width=5cm,pos=l] +\begin{pspicture}[showgrid](4,4) +\psTurtle[linewidth=2pt](2,2){ + /Angle { 360 7 div } bind def + 7 { Angle left 1 fd Angle 3 mul right 1 fd Angle left} repeat +} +\end{pspicture} +\end{LTXexample} + + +\bigskip +\begin{LTXexample}[width=5cm,pos=l] +\begin{pspicture}[showgrid](4,4) +\psTurtle[linewidth=2pt](2,1){ + /Angle 40 def + 75 { 0.25 fd Angle left /Angle Angle 0.5 sub def } repeat +} +\end{pspicture} +\end{LTXexample} + +\bigskip +\begin{LTXexample}[width=5cm,pos=l] +\begin{pspicture}[showgrid](4,4) +\psTurtle[linewidth=2pt](0,3.5){ + 5 { 3 fd 144 right } repeat +} +\end{pspicture} +\end{LTXexample} + + +\bigskip +\begin{LTXexample}[width=6cm,pos=l] +\begin{pspicture}[showgrid](5,5) +\psTurtle[linewidth=0.2pt](1,1.75){ + 75 { 3.5 fd 123 left } repeat +} +\end{pspicture} +\end{LTXexample} + + +\bigskip +\begin{LTXexample}[width=11cm,pos=l] +\begin{pspicture}[showgrid](10,10) +\psTurtle[linewidth=0.5pt](5,5){ + /L 1 def + 150 { L fd 120 left L fd 120 left L fd /L L 0.03 add def 1.25 rotate } repeat +} +\end{pspicture} +\end{LTXexample} + + + + +\iffalse +\def\a{3 } +\begin{pspicture}[showgrid](12,6) +\psset{linecolor=red,linewidth=1.5pt,unit=1cm} +\psTurtle(0,0){ + 90 left \a 1.5 mul fd 159 rt \a fd 120 lt \a fd 120 lt \a fd + pu \a bk pd -125 rt \a fd 90 lt \a fd 90 lt \a fd 90 lt \a fd + pu 90 lt \a fd 90 lt \a fd pd + -37 lt \a fd 4 { 72 lt \a fd } repeat + pu 2 { 72 lt \a fd } repeat pd + -152 lt \a fd +} +%\psdot[dotscale=3](! Turtle8) +\end{pspicture} +\fi + + + + + +%\clearpage +%\section{List of all optional arguments for \texttt{pst-turtle}} +%\xkvview{family=pst-turtle,columns={key,type,default}} + +\bgroup +\RaggedRight +\nocite{*} +%\bibliographystyle{plain} +\printbibliography{pst-turtle-doc} +\egroup + +\printindex + +\end{document} diff --git a/Master/texmf-dist/dvips/pst-turtle/pst-turtle.pro b/Master/texmf-dist/dvips/pst-turtle/pst-turtle.pro new file mode 100644 index 00000000000..7bed96eb03f --- /dev/null +++ b/Master/texmf-dist/dvips/pst-turtle/pst-turtle.pro @@ -0,0 +1,302 @@ +% turtle.ps -- graphics turtle. +% @author Eric Laroche +% @version @(#)$Id: pst-turtle.pro 1092 2019-10-01 20:19:35Z herbert $ +% +% turtle.ps -- graphics turtle. +% Copyright (C) 1997-2001 Eric Laroche. +% +% This program is free software; +% you can redistribute it and/or modify it. +% +% This program is distributed in the hope that it will be useful, +% but WITHOUT ANY WARRANTY; without even the implied warranty of +% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. +% +% the '(graphics) turtle' is a 'cursor' that has a position (x and y +% coordinate), a heading and a pen up/down state. procedures as +% forward, left, etc. are used as drawing idioms. +% +% the turtle object consists of: cx cy phi penstate. cx and cy are the +% initialial coordinates, established when creating the turtle, they are +% the turtles zero coordinates. phi is the turtle heading, zero means +% in x direction (i.e. to the right), 90 means in the y direction (i.e. +% up). penstate is a boolean indicating whether the pen is down (true) +% or up (false). +% implicit to the turtle object is: currentpoint. +% +% note that using path constructing operators moveto, rmoveto, lineto, +% rlineto, arc, etc. will affect the turtle's state in a way that the +% turtle's current point is changed together with the postscript vm's +% current point by these operators. contrary the turtle's heading +% isn't affected by these operators. +% +% the turtle procedures indicate syntaxes using <turtle> (an array +% containing the turtle state) as abstract turtle object. +% +% no syntax is indicated with the abbreviated function names. +% +% these procedures are not handling newpath, closepath, +% setlinewidth, setlinejoin, setlinecap, stroke, fill, etc. +% +% a current point must be set before using the turtle object and after +% starting a new path. i.e. a typical initialization sequence would be +% e.g. 'newpath 200 200 moveto turtle 90 setheading'. +% +% create a turtle object. +% this saves the current point as zero point to return to by 'home'. +% a turtle object is an array of: [cx cy phi penstate]. +% - turtle -> <turtle> +% +% on stack: { x y } boolean N@name type InitXnode + +/tx@TurtleDict 50 dict def +tx@TurtleDict begin +% +/nodeCounter 0 def +/nodeCnt++ { nodeCounter 1 add /nodeCounter exch def } def + +%/saveNode { +% { currentpoint } +% false +% (N@Turtle) nodeCounter 2 string cvs concatstrings 32 rightTrim cvn +% 10 +% {InitPnode} +% tx@NodeDict begin NewNode end +% nodeCnt++ +%} def + +/saveNode { + tx@Dict begin + (Turtle) nodeCounter 2 string cvs concatstrings 32 rightTrim cvn { currentpoint } def + end +} def +% +/turtle { + % get initial position. + % initial position is current point. + 2 setlinejoin + currentpoint + % phi and penstate + 0 true + % note: not doing any newpath. + 4 array astore +} bind def + +% destroy a turtle object. +% note: this procedure serves for compatibility +% to older turtle formats. +% <turtle> unturtle -> - +/unturtle { + % return to turtle object's initial position. + dup 0 get + 1 index 1 get % <turtle> cx cy + moveto + % note: not doing any newpath. + pop % - +} bind def + +% return turtle object size. +% note: this procedure serves for compatibility +% to older turtle formats. +% - turtlesize -> 1 +/turtlesize { + % 1 entry on the stack (an array with cx cy phi penstate). + 1 +} bind def + +% normalize direction. phi must be >= 0 and < 360. +% <turtle> normalizephi -> <turtle> +/normalizephi { + dup 2 get % <turtle> phi + % note: denormalized typically by less than two circles, + % so the loops won't take too long. + % cut while larger or equal 2 pi. + { + dup 360 % <turtle> phi phi 360 + lt { + exit + } if + 360 sub + } loop + % increment while less zero. + { + dup 0 % <turtle> phi phi 0 + ge { + exit + } if + 360 add + } loop + exch dup 2 + 4 -1 roll + put % <turtle> +} bind def + +% relatively move to, action depending on penstate. +% <turtle> dx dy pmoveto -> <turtle> +/pmoveto { + % move or draw, depending on penstate + 2 index 3 get { + rlineto + } { + rmoveto + } ifelse +} def + +% where we are, from initial point (in setxy coordinates). +% <turtle> xy -> <turtle> x y +/xy { + currentpoint % <turtle> x' y' + exch 2 index 0 get sub % <turtle> y' x + exch 2 index 1 get sub % <turtle> x y +} bind def + +% calculate relative movements from setxy coordinates. +% <turtle> x y rxy -> <turtle> x' y' +/rxy { + 3 -1 roll % x y <turtle> + xy % x y <turtle> x'' y'' + 5 -2 roll % <turtle> x'' y'' x y + exch 4 -1 roll sub + exch 3 -1 roll sub % <turtle> x' y' +} bind def + + +% logo language turtle functions + +% put penstate in 'up' position. +% logo language turtle function +% <turtle> penup -> <turtle> +/penup { + % false means 'up'. + dup 3 false put +} bind def + +% put penstate in 'down' position. +% logo language turtle function +% <turtle> pendown -> <turtle> +/pendown { + % true means 'down'. + dup 3 true put +} bind def + +% advance in current direction. +% logo language turtle function +% <turtle> d forward -> <turtle> +/forward { + % dx is d cos phi. + 1 index 2 get cos 1 index mul % <turtle> d dx + % dy is d sin phi. + 2 index 2 get sin 3 -1 roll mul % <turtle> dx dy + pmoveto + saveNode +} def + +% back up in current direction. +% logo language turtle function +% <turtle> d back -> <turtle> +/back { + neg + forward +} bind def + +% change direction to the left (counterclockwise, positive direction). +% logo language turtle function +% <turtle> omega left -> <turtle> +/left { + 1 index 2 get % <turtle> omega phi + add % <turtle> phi' + 1 index 2 3 -1 roll put + normalizephi +} bind def + +% change direction to the right (clockwise, negative direction). +% logo language turtle function +% <turtle> omega right -> <turtle> +/right { + neg + left +} bind def + +% move to a specified point. +% logo language turtle function +% <turtle> x y setxy -> <turtle> +/setxy { + rxy % <turtle> x' y' + pmoveto % <turtle> +} bind def + +% move to a specified point (only x changes). +% logo language turtle function +% <turtle> x setx -> <turtle> +/setx { + 0 rxy % <turtle> x' y' + pop 0 pmoveto % <turtle> +} bind def + +% move to a specified point (only y changes). +% logo language turtle function +% <turtle> y sety -> <turtle> +/sety { + 0 exch rxy % <turtle> x' y' + exch pop 0 exch pmoveto % <turtle> +} bind def + +% set the heading. +% logo language turtle function +% <turtle> phi' setheading -> <turtle> +/setheading { 1 index 2 3 -1 roll put normalizephi } bind def + +% set heading towards a point. +% logo language turtle function +% <turtle> x y towards -> <turtle> +/towards { + rxy % <turtle> x' y' + % check if both zero. + 1 index 0 eq 1 index 0 eq and { + % set heading to zero. + pop pop 0 + } { + exch atan + } ifelse + setheading +} bind def + +% go home; heading to zero. +% logo language turtle function +% <turtle> home -> <turtle> +/home { 0 dup setxy 0 setheading } bind def + +% get x coordinate. +% logo language turtle function +% <turtle> xcor -> cx <turtle> x +/xcor { xy pop } bind def + +% get y coordinate. +% logo language turtle function +% <turtle> ycor -> <turtle> y +/ycor { xy exch pop } bind def + +% get heading. +% logo language turtle function +% <turtle> heading -> <turtle> phi +/heading { dup 2 get } bind def + +% get pen state. +% logo language turtle function +% note: only the turtle relevant stuff given. +% <turtle> drawstate -> <turtle> penstate +/drawstate { dup 3 get } bind def +% +% logo language turtle function abbreviations +% +/bk { back } bind def +/fd { forward } bind def +/lt { left } bind def +/pd { pendown } bind def +/pu { penup } bind def +/rt { right } bind def +/seth { setheading } bind def +% +end +% end of pst-turtle.pro + diff --git a/Master/texmf-dist/tex/generic/pst-turtle/pst-turtle.tex b/Master/texmf-dist/tex/generic/pst-turtle/pst-turtle.tex new file mode 100644 index 00000000000..acf95677dbf --- /dev/null +++ b/Master/texmf-dist/tex/generic/pst-turtle/pst-turtle.tex @@ -0,0 +1,63 @@ +%% $Id: pst-turtle.tex 1093 2019-10-02 11:28:36Z herbert $ +%% +%% This is file `pst-turtle.tex', +%% +%% IMPORTANT NOTICE: +%% +%% Package `pst-turtle.tex' +%% +%% Herbert Voss <hvoss@tug.org> +%% +%% 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-turtle' is a PSTricks package to plot special functions +%% +%% For a ChangeLog go the the end +%% +\csname PSTturtleLoaded\endcsname +\let\PSTfuncLoaded\endinput +% Requires some PSTricks packages +\ifx\PSTricksLoaded\endinput\else \input pstricks.tex\fi +\ifx\PSTXKeyLoaded\endinput\else \input pst-xkey.tex \fi +% +\edef\PstAtCode{\the\catcode`\@} \catcode`\@=11\relax +% interface to the `xkeyval' package +\pst@addfams{pst-turtle} +% +\def\fileversion{0.02} +\def\filedate{2019/10/02} +\message{`PST-turtle' v\fileversion, \filedate\space (hv)} +% +\define@boolkey[psset]{pst-turtle}[Pst@]{showhead}[true]{}% +\psset{showhead=false} +% +\pstheader{pst-turtle.pro} +% +\def\psTurtle{\pst@object{psTurtle}} +\def\psTurtle@i{\@ifnextchar(\psTurtle@ii{\psTurtle@ii(0,0)}} +\def\psTurtle@ii(#1)#2{% + \pst@getcoor{#1}\pst@tempA + \begin@OpenObj + \psset{unit=1cm}% + \addto@pscode{ + tx@TurtleDict begin + \pst@tempA translate + \pst@number\psxunit \pst@number\psyunit scale + 0 0 moveto + turtle % initialize + #2 + 2 setlinejoin + end + 1 \pst@number\psxunit div 1 \pst@number\psyunit div scale + }% + \end@OpenObj +} +\catcode`\@=\PstAtCode\relax +% +%% END: pst-turtle.tex +\endinput +% + diff --git a/Master/texmf-dist/tex/latex/pst-turtle/pst-turtle.sty b/Master/texmf-dist/tex/latex/pst-turtle/pst-turtle.sty new file mode 100644 index 00000000000..bf7636aa9a3 --- /dev/null +++ b/Master/texmf-dist/tex/latex/pst-turtle/pst-turtle.sty @@ -0,0 +1,12 @@ +\RequirePackage{pstricks} +\ProvidesPackage{pst-turtle}[2018/12/13 package wrapper for pst-turtle.tex (hv)] +\RequirePackage{pst-xkey} +% +\input{pst-turtle.tex} +\ProvidesFile{pst-turtle.tex} + [\filedate\space v\fileversion\space `PST-turtle' (hv)] +\IfFileExists{pst-turtle.pro}{% + \ProvidesFile{pst-turtle.pro}[2019/05/17 v. 0.01, PostScript prologue file (hv)] +\@addtofilelist{pst-turtle.pro}}{}% +\endinput +%% $Id: pst-turtle.sty 1064 2019-05-19 09:17:21Z herbert $ diff --git a/Master/tlpkg/bin/tlpkg-ctan-check b/Master/tlpkg/bin/tlpkg-ctan-check index ad9e2a25dfe..d3aab5a0ee1 100755 --- a/Master/tlpkg/bin/tlpkg-ctan-check +++ b/Master/tlpkg/bin/tlpkg-ctan-check @@ -574,7 +574,8 @@ my @TLP_working = qw( pst-qtree pst-rputover pst-rubans pst-shell pst-sigsys pst-slpe pst-solarsystem pst-solides3d pst-soroban pst-spectra pst-spinner pst-spirograph - pst-stru pst-support pst-text pst-thick pst-tools pst-tree pst-tvz pst-uml + pst-stru pst-support + pst-text pst-thick pst-tools pst-tree pst-turtle pst-tvz pst-uml pst-vectorian pst-vehicle pst-venn pst-vowel pst-vue3d pst2pdf pstool pstricks pstricks-add pstricks_calcnotes pstring ptex-base ptex-fontmaps ptex-fonts ptex-manual diff --git a/Master/tlpkg/libexec/ctan2tds b/Master/tlpkg/libexec/ctan2tds index ffadbd5c1a7..7e75aac8d17 100755 --- a/Master/tlpkg/libexec/ctan2tds +++ b/Master/tlpkg/libexec/ctan2tds @@ -1041,6 +1041,7 @@ chomp (my $ctan_root = `tlpkginfo --ctan-root`); 'pst-thick', "&MAKEpst", 'pst-tools', "&MAKEpst", 'pst-tree', "&MAKEpst", + 'pst-turtle', "&MAKEpst", 'pst-tvz', "&MAKEpst", 'pst-uml', "&MAKEpst", 'pst-vehicle', "&MAKEpst", diff --git a/Master/tlpkg/tlpsrc/collection-pstricks.tlpsrc b/Master/tlpkg/tlpsrc/collection-pstricks.tlpsrc index 5f27ae4d119..ea9602607aa 100644 --- a/Master/tlpkg/tlpsrc/collection-pstricks.tlpsrc +++ b/Master/tlpkg/tlpsrc/collection-pstricks.tlpsrc @@ -102,6 +102,7 @@ depend pst-text depend pst-thick depend pst-tools depend pst-tree +depend pst-turtle depend pst-tvz depend pst-uml depend pst-vectorian diff --git a/Master/tlpkg/tlpsrc/pst-turtle.tlpsrc b/Master/tlpkg/tlpsrc/pst-turtle.tlpsrc new file mode 100644 index 00000000000..e69de29bb2d --- /dev/null +++ b/Master/tlpkg/tlpsrc/pst-turtle.tlpsrc |