texlive[53929] Master/texmf-dist: pst-eucl (26feb20)

commits+karl at tug.org commits+karl at tug.org
Wed Feb 26 23:09:25 CET 2020


Revision: 53929
          http://tug.org/svn/texlive?view=revision&revision=53929
Author:   karl
Date:     2020-02-26 23:09:25 +0100 (Wed, 26 Feb 2020)
Log Message:
-----------
pst-eucl (26feb20)

Modified Paths:
--------------
    trunk/Master/texmf-dist/doc/generic/pst-eucl/Changes
    trunk/Master/texmf-dist/doc/generic/pst-eucl/pst-eucl-doc.bib
    trunk/Master/texmf-dist/doc/generic/pst-eucl/pst-eucl-doc.pdf
    trunk/Master/texmf-dist/doc/generic/pst-eucl/pst-eucl-doc.tex
    trunk/Master/texmf-dist/tex/generic/pst-eucl/pst-eucl.tex

Modified: trunk/Master/texmf-dist/doc/generic/pst-eucl/Changes
===================================================================
--- trunk/Master/texmf-dist/doc/generic/pst-eucl/Changes	2020-02-26 22:09:08 UTC (rev 53928)
+++ trunk/Master/texmf-dist/doc/generic/pst-eucl/Changes	2020-02-26 22:09:25 UTC (rev 53929)
@@ -6,6 +6,11 @@
 
 
 pst-eucl.tex --------
+1.71  2020/02/26 - add macro to wrap the native macro \pspolygon just group the parameters as local, \pstPolygon.
+                 - update macro \pstCircleOA and \pstCircleAB to clear \pst at par like as \pst at object clear it. This change update the issue that some rendering options used at last will be taken, e.g. if you call \pspolygon with fillcolor, and then call \pstCircleOA, the circle will be filled with same color.
+                 - add macro to draw the nine point circle and its center, \pstTriangleNC.
+                 - add macro to draw the general ellipse by its focus and one node on it, \pstGeneralEllipseFFN.
+                 - add macro to draw the general hyperbola by its focus and one node on it, \pstGeneralHyperbolaFFN.
 1.70  2020/01/29 - add optional argument RightAngleDotDistance to controll the the dot
                    position for right angles (type german or swissromand)
 1.69  2020/01/09 - add macro to get the chord with specified length, \pstCircleChordNode.

Modified: trunk/Master/texmf-dist/doc/generic/pst-eucl/pst-eucl-doc.bib
===================================================================
--- trunk/Master/texmf-dist/doc/generic/pst-eucl/pst-eucl-doc.bib	2020-02-26 22:09:08 UTC (rev 53928)
+++ trunk/Master/texmf-dist/doc/generic/pst-eucl/pst-eucl-doc.bib	2020-02-26 22:09:25 UTC (rev 53929)
@@ -1,18 +1,19 @@
 @STRING{tugboat	= {TUGboat} }
- at STRING{dtk	= {{D}ie {\TeX}nische {K}om{\"o}die} }
+ at STRING{dtk	= {Die {\TeX}nische Komödie} }
+ at STRING{bretter	= {Bretter, die die Welt bedeuten } }
 
 @Book{companion,
-  author	= {Michel Goosens and Frank Mittelbach and Sebastian Rahtz and Dennis Roegel and Herbert Vo\ss},
-  title		= {The {\LaTeX} {G}raphics {C}ompanion},
-  publisher	= {{Addison-Wesley Publishing Company}},
-  edition	= {second},
-  year		= {2007},
-  address	= {Boston, Mass.}
+  author	= {Michel Goosens and Frank Mittelbach and Sebastian Rahtz and Dennis Roegel and Herbert Voß},
+  title		= {The {\LaTeX} Graphics Companion},
+  publisher	= {Addison-Wesley Publishing Company},
+  edition	= {2},
+  date		= {2007},
+  location	= {Boston, Mass.}
 }
 
 @Article{girou:01:,
   author	= {Denis Girou},
-  title		= {Pr\'esentation de {PST}ricks},
+  title		= {Présentation de PSTricks},
   journal	= {Cahier {GUT}enberg},
   year		= 1994,
   volume	= {16},
@@ -21,7 +22,7 @@
 }
 
 @Article{girou:02:,
-  author	= {{Timothy Van} Zandt and Denis Girou},
+  author	= {Timothy Van Zandt and Denis Girou},
   title		= {Inside {PST}ricks},
   journal	= TUGboat,
   year		= 1994,
@@ -32,8 +33,7 @@
 
 @Book{PostScript,
   Author         = {Kollock, Nikolai G.},
-  Title          = {Post{S}cript richtig eingesetzt: vom {K}onzept zum
-                   praktischen {E}insatz},
+  Title          = {PostScript richtig eingesetzt: vom Konzept zum praktischen Einsatz},
   Publisher      = {IWT},
   Address        = {Vaterstetten},
   year           = 1989,
@@ -50,25 +50,25 @@
 
 
 @Book{PSTricks2,
-  author	= {Herbert Vo\ss{}},
+  author	= {Herbert Voß},
   title		= {\texttt{PSTricks} -- {G}rafik f\"ur \TeX{} und \LaTeX},
   edition	= {7},
-  publisher	= {DANTE -- Lehmanns},
-  year		= {2016},
+  publisher	= {DANTE {\eV} and Lehmanns Media},
+  date		= {2016},
   address	= {Heidelberg and Hamburg}
 }
 
 @Book{PSTricksE,
-  author	= {Herbert Vo\ss{}},
-  title		= {\texttt{PSTricks} -- {G}raphics and {P}ost{S}cript for \LaTeX},
+  author	= {Herbert Voß},
+  title		= {\texttt{PSTricks} -- Graphics and PostScript for \LaTeX},
   edition	= {1},
   publisher	= {UIT},
-  year		= {2011},
+  date		= {2011},
   address	= {Cambridge -- UK}
 }
 
 @Book{LTXquick,
-  author	= {Herbert Vo\ss{}},
+  author	= {Herbert Voß},
   title		= {{\LaTeX} quick reference},
   edition	= {1},
   publisher	= {UIT},
@@ -77,11 +77,11 @@
 }
 
 @Book{presentations,
-  author	= {Herbert Vo\ss},
+  author	= {Herbert Voß},
   title		= {Presentations with \LaTeX},
-  edition	= {1},
-  publisher	= {DANTE -- Lehmanns Media},
-  year		= {2012},
+  edition	= {2},
+  publisher	= {DANTE {\eV} and Lehmanns Media},
+  year		= {2019},
   address	= {Heidelberg and Berlin}
 }
 
@@ -90,7 +90,7 @@
   author	= {Victor Eijkhout},
   title		= {\TeX\ by Topic -- {A} \TeX{}nician Reference},
   edition	= {1},
-  publisher	= {DANTE -- Lehmanns media},
+  publisher	= {DANTE {\eV} and Lehmanns Media},
   year		= {2014},
   address	= {Heidelberg and Berlin}
 }
@@ -98,7 +98,7 @@
 
 
 @Article{dtk02.1:voss:mathematischen,
-  author	= {Herbert Vo{\ss}},
+  author	= {Herbert Voß},
   title		= {Die mathematischen {F}unktionen von {P}ostscript},
   journal	= dtk,
   year		= 2002,
@@ -108,7 +108,6 @@
   month		= mar,
   pages		= {40-47},
   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

Modified: trunk/Master/texmf-dist/doc/generic/pst-eucl/pst-eucl-doc.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/generic/pst-eucl/pst-eucl-doc.tex
===================================================================
--- trunk/Master/texmf-dist/doc/generic/pst-eucl/pst-eucl-doc.tex	2020-02-26 22:09:08 UTC (rev 53928)
+++ trunk/Master/texmf-dist/doc/generic/pst-eucl/pst-eucl-doc.tex	2020-02-26 22:09:25 UTC (rev 53929)
@@ -7,7 +7,9 @@
 \newtheorem{theorem}{Theorem}
 \usepackage{pst-func,pst-plot,paralist}
 \usepackage[mathscr]{eucal}
+\def\eV{e.\kern-1pt{}V\kern-1pt}
 
+
 \lstset{pos=l,wide=false,basicstyle=\footnotesize\ttfamily,explpreset={language=[PSTricks]{TeX}}}
 %
 \def\Argsans#1{$\langle$#1$\rangle$}
@@ -544,6 +546,7 @@
 \item \Lkeyval{suisseromand} : swiss romand symbol (given P. Schnewlin).
 \end{compactitem}
 
+\begin{sloppypar}
 The only parameters controlling this command, excepting the ones which
 controlled the line, is \Lkeyword{RightAngleSize} which defines the size
 of the symbol \DefaultVal{0.28 unit} and \Lkeyword{RightAngleDotDistance}. For a 
@@ -551,6 +554,7 @@
 is preset to 0.5 (\Lkeyval{german}) or 0.45 (\Lkeyval{swissromand}), relative to the radius.
 It can be controlled by the optional argument \Lkeyword{RightAngleDotDistance} which is
 preset to 1. A greater value moves the dot away from the reference point.
+\end{sloppypar}
 
 
 

Modified: trunk/Master/texmf-dist/tex/generic/pst-eucl/pst-eucl.tex
===================================================================
--- trunk/Master/texmf-dist/tex/generic/pst-eucl/pst-eucl.tex	2020-02-26 22:09:08 UTC (rev 53928)
+++ trunk/Master/texmf-dist/tex/generic/pst-eucl/pst-eucl.tex	2020-02-26 22:09:25 UTC (rev 53929)
@@ -20,8 +20,8 @@
 \csname PSTEuclideLoaded\endcsname
 \let\PSTEuclideLoaded\endinput
 %
-\def\fileversion{1.70}
-\def\filedate{2020/01/29}
+\def\fileversion{1.71}
+\def\filedate{2020/02/26}
 %%
 \message{`PST-Euclide v\fileversion, \filedate\space (dr,hv)}%
 %% prologue for postcript
@@ -287,6 +287,31 @@
   \@ifnextchar(\Pst at Geonode@ii{\pst at MngTransformCurve\endgroup}}% DR 22032005
 
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%% \pstPolygon[options](A)(B)(C)(D)...
+%% create a polygon with some given node names, unlike the native pstrick pspolygon macro,
+%% this macro group the options as local variables, i.e, it is same as
+%% \begingroup
+%% \pspolygon[options](A)(B)(C)(D)...
+%% \endgroup
+%% if you use pspolygon without the begingroup and endgroup, then the options will be
+%% used for the subsequent macros.
+%%
+%% #1 -> options
+%% #2,#3,#4,... -> node names
+\def\pstPolygon{\@ifnextchar[\Pst at Polygon{\Pst at Polygon[]}}
+\def\Pst at Polygon[#1]{%
+  \begingroup
+    \xdef\@@GenCourbe{}%%for accumulating points
+    \psset{#1}%
+    \ifx\psk at CurveType\@none\psset{CurveType=polygon}\fi
+    \pstPolygon at ii%
+}
+\def\pstPolygon at ii(#1){%
+    \xdef\@@GenCourbe{\@@GenCourbe(#1)}%
+    \@ifnextchar(\pstPolygon at ii{\pst at MngTransformCurve\endgroup}%
+}%
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 %% Create a point with an associated node, in a new
 %% landmark
 %% #1 -> options
@@ -1079,13 +1104,11 @@
 %% #3 -> [input] the node A on the circle or empty if you setup Radius/Diameter
 %% #4 -> [input] optional. start angle from angleA to angleB, going counter clockwise.
 %% #5 -> [input] optional, start angle from angleA to angleB, going counter clockwise.
-\def\pstCircleOA{\@ifnextchar[\Pst at CircleOA{\Pst at CircleOA[]}}
-\def\Pst at CircleOA[#1]#2#3{%
-  \begingroup
-    \psset{#1}%
-    \def\pst at circle@center{#2}
-    \def\pst at circle@node{#3}
-    \@ifnextchar[\pstCircleOA at i{\pstCircleOA at j}}%
+\def\pstCircleOA{\pst at object{Pst at CircleOA}}
+\def\Pst at CircleOA@i#1#2{%
+    \def\pst at circle@center{#1}%
+    \def\pst at circle@node{#2}%
+    \@ifnextchar[\pstCircleOA at i\pstCircleOA at j}%
 \def\pstCircleOA at i[#1][#2]{%
     \begin at OpenObj
       \def\pst at linetype{4}%
@@ -1100,11 +1123,9 @@
           \else\psk at Radius\space
           \fi
         end
-        %\psk at dimen CLW mul sub 0 360 arc closepath}%
-        #1 #2 arc}%
+        \psk at dimen CLW mul sub #1 #2 arc}%
       \showpointsfalse
     \end at OpenObj
-  \endgroup%
 }%
 \def\pstCircleOA at j{%
     \begin at ClosedObj
@@ -1120,19 +1141,15 @@
           \else\psk at Radius\space
           \fi
         end
-        %\psk at dimen CLW mul sub 0 360 arc closepath}%
-        0 360 arc closepath}%
+        \psk at dimen CLW mul sub 0 360 arc closepath}%
       \showpointsfalse
     \end at ClosedObj
-  \endgroup%
 }%
 %% #2 #3 -> 2 nodes defining a diameter of the circle
-\def\pstCircleAB{\@ifnextchar[\Pst at CircleAB{\Pst at CircleAB[]}}
-\def\Pst at CircleAB[#1]#2#3{%
-  \begingroup
-    \psset{#1}%
-    \def\pst at circle@diameter at A{#2}
-    \def\pst at circle@diameter at B{#3}
+\def\pstCircleAB{\pst at object{Pst at CircleAB}}
+\def\Pst at CircleAB@i#1#2{%
+    \def\pst at circle@diameter at A{#1}
+    \def\pst at circle@diameter at B{#2}
     \@ifnextchar[\pstCircleAB at i{\pstCircleAB at j}}%
 \def\pstCircleAB at i[#1][#2]{%
     \Pst at MiddleAB[PointSymbol=none, PointName=none]{\pst at circle@diameter at B}{\pst at circle@diameter at A}{PST at CIRCLE@MAB}
@@ -1147,7 +1164,6 @@
         \psk at dimen\space CLW mul sub #1 #2 arc}%
       \showpointsfalse
     \end at OpenObj
-  \endgroup%
 }%
 \def\pstCircleAB at j{%
     \Pst at MiddleAB[PointSymbol=none, PointName=none]{\pst at circle@diameter at B}{\pst at circle@diameter at A}{PST at CIRCLE@MAB}
@@ -1162,7 +1178,6 @@
         \psk at dimen\space CLW mul sub 0 360 arc closepath}%
       \showpointsfalse
     \end at ClosedObj
-  \endgroup%
 }%
 %% #2 #3 #4 -> 3 nodes defining the center and two points on the circle
 \def\pstArcOAB{\pst at object{pstArcOAB}}%
@@ -2306,6 +2321,46 @@
   \endgroup
 }%
 %
+%% \pstTriangleNC[Options]{A}{B}{C}{N}[M1][M2][M3]
+%% Draw the nine point circle center of triangle ABC
+%% Parameters:
+%% #1 -> options
+%% #2 -> [input] the node A
+%% #3 -> [input] the node B
+%% #4 -> [input] the node C
+%% #5 -> [output] the output nine point circle center N
+%% #6 -> [output] the optional output Middle of BC
+%% #7 -> [output] the optional output Middle of CA
+%% #8 -> [output] the optional output Middle of AB
+\def\pstTriangleNC{\@ifnextchar[\Pst at TriangleNC{\Pst at TriangleNC[]}}
+\def\Pst at TriangleNC[#1]#2#3#4#5{%
+  \begingroup
+    \@InitListMng %
+    \psset{#1}%
+    \def\pst at triangle@node at A{#2}
+    \def\pst at triangle@node at B{#3}
+    \def\pst at triangle@node at C{#4}
+    \def\pst at triangle@node at N{#5}
+    \@ifnextchar[\Pst at TriangleNC@i{\Pst at TriangleNC@j[BC_M][CA_M][AB_M]}}
+\def\Pst at TriangleNC@i[#1][#2][#3]{%
+    \pstMiddleAB[PointName=none,PointSymbol=none]{\pst at triangle@node at B}{\pst at triangle@node at C}{#1}
+    \pstMiddleAB[PointName=none,PointSymbol=none]{\pst at triangle@node at C}{\pst at triangle@node at A}{#2}
+    \pstMiddleAB[PointName=none,PointSymbol=none]{\pst at triangle@node at A}{\pst at triangle@node at B}{#3}
+    \pstTriangleOC[PointName=none,PointSymbol=none]{#1}{#2}{#3}[\pst at triangle@node at N]
+    \Pst at ManageParamList{\pst at triangle@node at N}%
+    \Pst at ManageParamList{#1}%
+    \Pst at ManageParamList{#2}%
+    \Pst at ManageParamList{#3}%
+  \endgroup
+}%
+\def\Pst at TriangleNC@j[#1][#2][#3]{%
+    \pstMiddleAB[PointName=none,PointSymbol=none]{\pst at triangle@node at B}{\pst at triangle@node at C}{#1}
+    \pstMiddleAB[PointName=none,PointSymbol=none]{\pst at triangle@node at C}{\pst at triangle@node at A}{#2}
+    \pstMiddleAB[PointName=none,PointSymbol=none]{\pst at triangle@node at A}{\pst at triangle@node at B}{#3}
+    \pstTriangleOC{#1}{#2}{#3}[\pst at triangle@node at N]
+  \endgroup
+}%
+%
 %% Distance between two points
 \def\pstDist#1#2{%
   tx at EcldDict begin /N@#1 GetNode /N@#2 GetNode ABDist end
@@ -4338,6 +4393,57 @@
   \endgroup%
 }%
 %
+%% \pstGeneralEllipseFFN[Options]{F1}{F2}{N}{O}{R}{\theta}
+%% Calculate the center and the radii of a General Ellipse with two focus $F_1$, $F_2$, and one node $N$ on it,
+%% then you can access the ellipse with them.
+%% Parameters:
+%% #1 -> options
+%% #2 -> [input] the given focus F_1
+%% #3 -> [input] the given focus F_2
+%% #4 -> [input] the given node N on the ellipse
+%% #5 -> [output] the center of the ellipse.
+%% #6 -> [output] the pair of major and minor radius of the ellipse.
+%% #7 -> [output] the rotation of the ellipse major axis.
+\def\pstGeneralEllipseFFN{\@ifnextchar[\Pst at GeneralEllipseFFN{\Pst at GeneralEllipseFFN[]}}
+\def\Pst at GeneralEllipseFFN[#1]#2#3#4#5#6#7{
+  \begingroup
+    \psset{#1}%
+    \pst at getcoor{#2}\pst at tempFa%
+    \pst at getcoor{#3}\pst at tempFb%
+    \pst at getcoor{#4}\pst at tempN%
+    \pnode(!
+      \pst at tempFa \tx at UserCoor /Fay ED /Fax ED
+      \pst at tempFb \tx at UserCoor /Fby ED /Fbx ED
+      \pst at tempN \tx at UserCoor /Ny ED /Nx ED
+      Fax Fbx add 2 div /EllipseOx ED
+      Fay Fby add 2 div /EllipseOy ED
+      Fax Fay Fbx Fby
+      tx at EcldDict begin ABDist end
+      2 div /EllipseC ED
+      Nx Ny Fax Fay 
+      tx at EcldDict begin ABDist end
+      Nx Ny Fbx Fby 
+      tx at EcldDict begin ABDist end
+      add 2 div /EllipseA ED
+      EllipseA dup mul EllipseC dup mul sub sqrt /EllipseB ED
+      Fay Fby lt {
+        Fby Fay sub Fbx Fax sub atan /#7 ED
+      } {
+        Fay Fby sub Fax Fbx sub atan /#7 ED
+      } ifelse
+      EllipseOx EllipseOy
+    ){#5}
+    \Pst at geonodelabel{#5}%
+    \pnode(! EllipseA EllipseB){#6}
+    \ifPst at CodeFig
+    \begingroup\psset{PointName=none,linecolor=\psk at CodeFigColor}
+    \pstLineAB[nodesep=-0.6]{#2}{#3}
+    \pstLineAA[nodesepA=-1.5,nodesepB=-0.5]{#5}{#7 90 add}{PST at ELLIPSE@Y}
+    \endgroup
+    \fi
+  \endgroup%
+}%
+%
 %% \pstGeneralEllipseFle[Options]{F}{l_A}{l_B}{e}{O}{R}{\theta}
 %% Calculate the center and the radii of a General Ellipse with directrix line $l$, focus $F$ and eccentricity $e$,
 %% then you can access the ellipse with them.
@@ -8502,6 +8608,57 @@
     }%
 }%
 %
+%% \pstGeneralHyperbolaFFN[Options]{F1}{F2}{N}{O}{R}{\theta}
+%% Calculate the center and the radii of a General Hyperbola with two focus $F_1$, $F_2$, and one node $N$ on it,
+%% then you can access the hyperbola with them.
+%% Parameters:
+%% #1 -> options
+%% #2 -> [input] the given focus F_1
+%% #3 -> [input] the given focus F_2
+%% #4 -> [input] the given node N on the hyperbola 
+%% #5 -> [output] the center of the hyperbola.
+%% #6 -> [output] the pair of major and minor radius of the hyperbola.
+%% #7 -> [output] the rotation of the hyperbola major axis.
+\def\pstGeneralHyperbolaFFN{\@ifnextchar[\Pst at GeneralHyperbolaFFN{\Pst at GeneralHyperbolaFFN[]}}
+\def\Pst at GeneralHyperbolaFFN[#1]#2#3#4#5#6#7{
+  \begingroup
+    \psset{#1}%
+    \pst at getcoor{#2}\pst at tempFa%
+    \pst at getcoor{#3}\pst at tempFb%
+    \pst at getcoor{#4}\pst at tempN%
+    \pnode(!
+      \pst at tempFa \tx at UserCoor /Fay ED /Fax ED
+      \pst at tempFb \tx at UserCoor /Fby ED /Fbx ED
+      \pst at tempN \tx at UserCoor /Ny ED /Nx ED
+      Fax Fbx add 2 div /HyperbolaOx ED
+      Fay Fby add 2 div /HyperbolaOy ED
+      Fax Fay Fbx Fby
+      tx at EcldDict begin ABDist end
+      2 div /HyperbolaC ED
+      Nx Ny Fax Fay 
+      tx at EcldDict begin ABDist end
+      Nx Ny Fbx Fby 
+      tx at EcldDict begin ABDist end
+      sub 2 div abs /HyperbolaA ED
+      HyperbolaC dup mul HyperbolaA dup mul sub sqrt /HyperbolaB ED
+      Fay Fby lt {
+        Fby Fay sub Fbx Fax sub atan /#7 ED
+      } {
+        Fay Fby sub Fax Fbx sub atan /#7 ED
+      } ifelse
+      HyperbolaOx HyperbolaOy
+    ){#5}
+    \Pst at geonodelabel{#5}%
+    \pnode(! HyperbolaA HyperbolaB){#6}
+    \ifPst at CodeFig
+    \begingroup\psset{PointName=none,linecolor=\psk at CodeFigColor}
+    \pstLineAB[nodesep=-0.6]{#2}{#3}
+    \pstLineAA[nodesepA=-1.5,nodesepB=-0.5]{#5}{#7 90 add}{PST at HYPERBOLA@Y}
+    \endgroup
+    \fi
+  \endgroup%
+}%
+%
 %% \pstGeneralHyperbolaFle[Options]{F}{l_A}{l_B}{e}{O}{R}{\theta}
 %% Calculate the center and the radii of a General Hyperbola with directrix line $l$, focus $F$ and eccentricity $e$,
 %% then you can access the hyperbola with them.



More information about the tex-live-commits mailing list.