texlive[52261] Master: pst-turtle (2oct19)

commits+karl at tug.org commits+karl at tug.org
Wed Oct 2 23:19:33 CEST 2019


Revision: 52261
          http://tug.org/svn/texlive?view=revision&revision=52261
Author:   karl
Date:     2019-10-02 23:19:32 +0200 (Wed, 02 Oct 2019)
Log Message:
-----------
pst-turtle (2oct19)

Modified Paths:
--------------
    trunk/Master/tlpkg/bin/tlpkg-ctan-check
    trunk/Master/tlpkg/libexec/ctan2tds
    trunk/Master/tlpkg/tlpsrc/collection-pstricks.tlpsrc

Added Paths:
-----------
    trunk/Master/texmf-dist/doc/generic/pst-turtle/
    trunk/Master/texmf-dist/doc/generic/pst-turtle/Changes
    trunk/Master/texmf-dist/doc/generic/pst-turtle/README.md
    trunk/Master/texmf-dist/doc/generic/pst-turtle/pst-turtle-doc.bib
    trunk/Master/texmf-dist/doc/generic/pst-turtle/pst-turtle-doc.pdf
    trunk/Master/texmf-dist/doc/generic/pst-turtle/pst-turtle-doc.tex
    trunk/Master/texmf-dist/dvips/pst-turtle/
    trunk/Master/texmf-dist/dvips/pst-turtle/pst-turtle.pro
    trunk/Master/texmf-dist/tex/generic/pst-turtle/
    trunk/Master/texmf-dist/tex/generic/pst-turtle/pst-turtle.tex
    trunk/Master/texmf-dist/tex/latex/pst-turtle/
    trunk/Master/texmf-dist/tex/latex/pst-turtle/pst-turtle.sty
    trunk/Master/tlpkg/tlpsrc/pst-turtle.tlpsrc

Added: trunk/Master/texmf-dist/doc/generic/pst-turtle/Changes
===================================================================
--- trunk/Master/texmf-dist/doc/generic/pst-turtle/Changes	                        (rev 0)
+++ trunk/Master/texmf-dist/doc/generic/pst-turtle/Changes	2019-10-02 21:19:32 UTC (rev 52261)
@@ -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

Added: trunk/Master/texmf-dist/doc/generic/pst-turtle/README.md
===================================================================
--- trunk/Master/texmf-dist/doc/generic/pst-turtle/README.md	                        (rev 0)
+++ trunk/Master/texmf-dist/doc/generic/pst-turtle/README.md	2019-10-02 21:19:32 UTC (rev 52261)
@@ -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 $


Property changes on: trunk/Master/texmf-dist/doc/generic/pst-turtle/README.md
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: trunk/Master/texmf-dist/doc/generic/pst-turtle/pst-turtle-doc.bib
===================================================================
--- trunk/Master/texmf-dist/doc/generic/pst-turtle/pst-turtle-doc.bib	                        (rev 0)
+++ trunk/Master/texmf-dist/doc/generic/pst-turtle/pst-turtle-doc.bib	2019-10-02 21:19:32 UTC (rev 52261)
@@ -0,0 +1,168 @@
+ at STRING{tugboat	= {TUGboat} }
+ at STRING{beiprogramm	= {{\TeX}-Beiprogramm} }
+ at STRING{bretter	= {Bretter, die die Welt bedeuten} }
+ at STRING{dtk		= {{D}ie {\TeX}nische {K}om{\"o}die} }
+ at STRING{editorial	= {Editorial} }
+ at STRING{fremdebuehne	= {Von fremden B{\"u}hnen} }
+ at STRING{fundus		= {Aus dem Fundus} }
+ at STRING{hinterbuehne	= {Hinter der B{\"u}hne} }
+ at STRING{leserbrief	= {Leserbrief(e)} }
+ at STRING{magazin	= {Magazin} }
+ at STRING{rezension	= {Rezensionen} }
+ at STRING{schonimmer	= {Was Sie schon immer {\"u}ber {\TeX} wissen wollten \dots} }
+ at STRING{theaterkasse	= {Von der Theaterkasse} }
+ at STRING{theatertage	= {{\TeX}-Theatertage} }
+
+ at 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. }
+}
+
+ at 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. }
+}
+
+ at 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.}
+}
+
+
+ at 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}
+}
+
+ at 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}
+}
+
+ at 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,
+}
+
+ at online{pstricks,
+  Title          = {PSTricks - {\PS} macros for generic {\TeX}},
+  Author         = {{Timothy van} Zandt},
+  Organization   = {},
+  url        = {http://www.tug.org/application/PSTricks},
+  year           = 1993
+}
+
+ at 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
+}
+
+ at 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
+}
+
+ at 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}
+}
+
+ at Book{voss:math,
+  author	= {Herbert Voß},
+  title		= {Typesetting mathematics with \LaTeX},
+  publisher	= {UIT},
+  year		= {2010},
+  address	= {Cambridge}
+}
+
+ at Book{PSTricks2-UIT,
+  author	= {Herbert Voß},
+  title		= {PSTricks -- Graphics for \TeX\ and \LaTeX},
+  publisher	= {UIT},
+  year		= {2011},
+  address	= {Cambridge}
+}
+
+ at Book{LaTeXRef-UIT,
+  author	= {Herbert Voß},
+  title		= {{\LaTeX} quick reference},
+  publisher	= {UIT},
+  year		= {2012},
+  address	= {Cambridge}
+}
+
+ at online{wolfram,
+  author	= {Eric Weisstein},
+  title		= {Wolfram MathWorld},
+  publisher	= {{Wolfram}},
+  year		= {2007},
+  url	= {http://mathworld.wolfram.com}
+}
+
+ at ctan{pst-tools,
+  author	= {Herbert Voß},
+  title		= {\texttt{pst-tools} -- Helper functions},
+  year		= {2012},
+  url	= {/graphics/pstricks/contrib/pst-tools}
+}


Property changes on: trunk/Master/texmf-dist/doc/generic/pst-turtle/pst-turtle-doc.bib
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: trunk/Master/texmf-dist/doc/generic/pst-turtle/pst-turtle-doc.pdf
===================================================================
(Binary files differ)

Index: trunk/Master/texmf-dist/doc/generic/pst-turtle/pst-turtle-doc.pdf
===================================================================
--- trunk/Master/texmf-dist/doc/generic/pst-turtle/pst-turtle-doc.pdf	2019-10-02 21:18:19 UTC (rev 52260)
+++ trunk/Master/texmf-dist/doc/generic/pst-turtle/pst-turtle-doc.pdf	2019-10-02 21:19:32 UTC (rev 52261)

Property changes on: trunk/Master/texmf-dist/doc/generic/pst-turtle/pst-turtle-doc.pdf
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/pdf
\ No newline at end of property
Added: trunk/Master/texmf-dist/doc/generic/pst-turtle/pst-turtle-doc.tex
===================================================================
--- trunk/Master/texmf-dist/doc/generic/pst-turtle/pst-turtle-doc.tex	                        (rev 0)
+++ trunk/Master/texmf-dist/doc/generic/pst-turtle/pst-turtle-doc.tex	2019-10-02 21:19:32 UTC (rev 52261)
@@ -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}


Property changes on: trunk/Master/texmf-dist/doc/generic/pst-turtle/pst-turtle-doc.tex
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: trunk/Master/texmf-dist/dvips/pst-turtle/pst-turtle.pro
===================================================================
--- trunk/Master/texmf-dist/dvips/pst-turtle/pst-turtle.pro	                        (rev 0)
+++ trunk/Master/texmf-dist/dvips/pst-turtle/pst-turtle.pro	2019-10-02 21:19:32 UTC (rev 52261)
@@ -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 at name type InitXnode
+
+/tx at TurtleDict 50 dict def
+tx at TurtleDict begin
+%
+/nodeCounter 0 def
+/nodeCnt++ { nodeCounter 1 add /nodeCounter exch def }  def
+
+%/saveNode {
+%  { currentpoint } 
+%  false
+%  (N at Turtle) nodeCounter 2 string cvs concatstrings 32 rightTrim cvn 
+%  10
+%  {InitPnode}
+%  tx at NodeDict begin NewNode end
+%  nodeCnt++
+%} def
+
+/saveNode {
+  tx at 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
+


Property changes on: trunk/Master/texmf-dist/dvips/pst-turtle/pst-turtle.pro
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: trunk/Master/texmf-dist/tex/generic/pst-turtle/pst-turtle.tex
===================================================================
--- trunk/Master/texmf-dist/tex/generic/pst-turtle/pst-turtle.tex	                        (rev 0)
+++ trunk/Master/texmf-dist/tex/generic/pst-turtle/pst-turtle.tex	2019-10-02 21:19:32 UTC (rev 52261)
@@ -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 at 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 at addfams{pst-turtle}
+%
+\def\fileversion{0.02}
+\def\filedate{2019/10/02}
+\message{`PST-turtle' v\fileversion, \filedate\space (hv)}
+%
+\define at boolkey[psset]{pst-turtle}[Pst@]{showhead}[true]{}%
+\psset{showhead=false}
+%
+\pstheader{pst-turtle.pro}
+%
+\def\psTurtle{\pst at object{psTurtle}}
+\def\psTurtle at i{\@ifnextchar(\psTurtle at ii{\psTurtle at ii(0,0)}}
+\def\psTurtle at ii(#1)#2{%
+  \pst at getcoor{#1}\pst at tempA
+  \begin at OpenObj
+  \psset{unit=1cm}%
+  \addto at pscode{
+    tx at TurtleDict begin 
+    \pst at tempA translate 
+    \pst at number\psxunit \pst at number\psyunit scale
+    0 0 moveto 
+    turtle % initialize
+    #2 
+    2 setlinejoin
+    end
+    1 \pst at number\psxunit div 1 \pst at number\psyunit div scale
+  }%
+  \end at OpenObj
+}
+\catcode`\@=\PstAtCode\relax
+%
+%% END: pst-turtle.tex
+\endinput
+%
+


Property changes on: trunk/Master/texmf-dist/tex/generic/pst-turtle/pst-turtle.tex
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: trunk/Master/texmf-dist/tex/latex/pst-turtle/pst-turtle.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex/pst-turtle/pst-turtle.sty	                        (rev 0)
+++ trunk/Master/texmf-dist/tex/latex/pst-turtle/pst-turtle.sty	2019-10-02 21:19:32 UTC (rev 52261)
@@ -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 $


Property changes on: trunk/Master/texmf-dist/tex/latex/pst-turtle/pst-turtle.sty
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Modified: trunk/Master/tlpkg/bin/tlpkg-ctan-check
===================================================================
--- trunk/Master/tlpkg/bin/tlpkg-ctan-check	2019-10-02 21:18:19 UTC (rev 52260)
+++ trunk/Master/tlpkg/bin/tlpkg-ctan-check	2019-10-02 21:19:32 UTC (rev 52261)
@@ -574,7 +574,8 @@
     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

Modified: trunk/Master/tlpkg/libexec/ctan2tds
===================================================================
--- trunk/Master/tlpkg/libexec/ctan2tds	2019-10-02 21:18:19 UTC (rev 52260)
+++ trunk/Master/tlpkg/libexec/ctan2tds	2019-10-02 21:19:32 UTC (rev 52261)
@@ -1041,6 +1041,7 @@
  'pst-thick',   "&MAKEpst",
  'pst-tools',   "&MAKEpst",
  'pst-tree',    "&MAKEpst",
+ 'pst-turtle',	"&MAKEpst",
  'pst-tvz',     "&MAKEpst",
  'pst-uml',     "&MAKEpst",
  'pst-vehicle', "&MAKEpst",

Modified: trunk/Master/tlpkg/tlpsrc/collection-pstricks.tlpsrc
===================================================================
--- trunk/Master/tlpkg/tlpsrc/collection-pstricks.tlpsrc	2019-10-02 21:18:19 UTC (rev 52260)
+++ trunk/Master/tlpkg/tlpsrc/collection-pstricks.tlpsrc	2019-10-02 21:19:32 UTC (rev 52261)
@@ -102,6 +102,7 @@
 depend pst-thick
 depend pst-tools
 depend pst-tree
+depend pst-turtle
 depend pst-tvz
 depend pst-uml
 depend pst-vectorian

Added: trunk/Master/tlpkg/tlpsrc/pst-turtle.tlpsrc
===================================================================


More information about the tex-live-commits mailing list