diff options
Diffstat (limited to 'Master/texmf-dist/tex/generic/pst-eucl/pst-eucl.tex')
-rw-r--r-- | Master/texmf-dist/tex/generic/pst-eucl/pst-eucl.tex | 140 |
1 files changed, 78 insertions, 62 deletions
diff --git a/Master/texmf-dist/tex/generic/pst-eucl/pst-eucl.tex b/Master/texmf-dist/tex/generic/pst-eucl/pst-eucl.tex index 7c4b724f697..dd33826b9e1 100644 --- a/Master/texmf-dist/tex/generic/pst-eucl/pst-eucl.tex +++ b/Master/texmf-dist/tex/generic/pst-eucl/pst-eucl.tex @@ -19,17 +19,10 @@ \csname PSTEuclideLoaded\endcsname \let\PSTEuclideLoaded\endinput % -\def\fileversion{1.61} -\def\filedate{2018/12/11} -%% -%% 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. +\def\fileversion{1.63} +\def\filedate{2019/01/27} %% \message{`PST-Euclide v\fileversion, \filedate\space (dr,hv)}% -\message{ This version uses the pst-xkey package for managing parameters}% -\message{ Please read the doc, some macros have a new syntax}% -\message{ use option old for upward compatibility}% %% prologue for postcript \pstheader{pst-eucl.pro}% \edef\PstAtCode{\the\catcode`\@}% @@ -38,16 +31,21 @@ % Definition of the parameters % ---------------------------- % symbol used for the point -\define@key[psset]{pst-eucl}{PointSymbol}[*]{\def\psk@PointSymbol{#1}}% -\define@key[psset]{pst-eucl}{PointSymbolA}[*]{\edef\psk@PointSymbolA{#1}}% -\define@key[psset]{pst-eucl}{PointSymbolB}[*]{\edef\psk@PointSymbolB{#1}}% -\define@key[psset]{pst-eucl}{PointSymbolC}[*]{\edef\psk@PointSymbolC{#1}}% +\define@key[psset]{pst-eucl}{PointSymbol}[*]{% + \def\psk@PointSymbol{#1}% + \def\psk@PointSymbolA{#1}% + \def\psk@PointSymbolB{#1}% + \def\psk@PointSymbolC{#1}% +}% +\define@key[psset]{pst-eucl}{PointSymbolA}[*]{\def\psk@PointSymbolA{#1}}% +\define@key[psset]{pst-eucl}{PointSymbolB}[*]{\def\psk@PointSymbolB{#1}}% +\define@key[psset]{pst-eucl}{PointSymbolC}[*]{\def\psk@PointSymbolC{#1}}% % name used for the point \define@key[psset]{pst-eucl}{PointName}[default]{\def\psk@PointName{#1}}% -\define@key[psset]{pst-eucl}{PointNameA}[undef]{\edef\psk@PointNameA{#1}}% -\define@key[psset]{pst-eucl}{PointNameB}[undef]{\edef\psk@PointNameB{#1}}% -\define@key[psset]{pst-eucl}{PointNameC}[undef]{\edef\psk@PointNameC{#1}}% +\define@key[psset]{pst-eucl}{PointNameA}[undef]{\def\psk@PointNameA{#1}}% +\define@key[psset]{pst-eucl}{PointNameB}[undef]{\def\psk@PointNameB{#1}}% +\define@key[psset]{pst-eucl}{PointNameC}[undef]{\def\psk@PointNameC{#1}}% % use math mode in point name \newif\ifPst@PtNameMath% \define@key[psset]{pst-eucl}{PtNameMath}[false]{\@nameuse{Pst@PtNameMath#1}}% @@ -149,7 +147,7 @@ % -------------- \def\resetEUCLvalues{% \psset[pst-eucl]{% - PointSymbol=*, PointSymbolA=*, PointSymbolB=*, PointSymbolC=*, + PointSymbol=*, %PointSymbolA=*, PointSymbolB=*, PointSymbolC=*, PointName=default, PointNameA=undef, PointNameB=undef, PointNameC=undef, PtNameMath=true, PointNameMathSize=\textstyle, PointNameSize=\normalsize, PointNameSep=default, PosAngle=undef, @@ -182,10 +180,10 @@ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % create a curve after a points list \def\pst@MngTransformCurve{%DR 25032005 - \ifx\psk@CurveType\@none\else% - \ifx\psk@CurveType\@polygon\expandafter\pspolygon\@@GenCourbe\else% - \ifx\psk@CurveType\@polyline\expandafter\psline\@@GenCourbe\else% - \ifx\psk@CurveType\@curve\expandafter\pscurve\@@GenCourbe% + \ifx\psk@CurveType\@none\else + \ifx\psk@CurveType\@polygon\expandafter\pspolygon\@@GenCourbe\else + \ifx\psk@CurveType\@polyline\expandafter\psline\@@GenCourbe\else + \ifx\psk@CurveType\@curve\expandafter\pscurve\@@GenCourbe \fi\fi\fi\fi}% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % macros for managing a list of parameters @@ -200,12 +198,13 @@ %% end DR 2005/04/10 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \def\@InitListMng{% - \def\LastValidPN{default}\def\LastValidPNS{default}\def\LastValidPA{undef}\def\LastValidPS{default}} -%%begin modif alaindelplanque 11/2003 (VALID) + \def\LastValidPN{default}\def\LastValidPNS{default}\def\LastValidPA{undef}\def\LastValidPS{undef}} %% car(liste) -- param1,param2,... -> param1 \def\PstParamListFirst#1,#2/{#1} %% cdr(liste) -- param1,param2,... -> param2,... + \def\PstParamListLasts#1,#2/{#2} + \def\Pst@ManageParamList#1{%DR 02092004 #1->point node name \edef\OldPointName{\psk@PointName}% \edef\psk@PointName{\expandafter\PstParamListFirst\OldPointName,undef/}% @@ -232,16 +231,17 @@ \def\pstGeonode{\@ifnextchar[\Pst@Geonode{\Pst@Geonode[]}} \def\Pst@Geonode[#1]{\@ifnextchar({\Pst@Geonode@i[#1]}{\Pst@Geonode@i[#1](0,0)}} \def\Pst@Geonode@i[#1]{% - \begingroup% + \begingroup \@InitListMng% DR 22032005 - \edef\@@GenCourbe{}%%for accumulating points% DR 22032005 - \psset{#1}\Pst@Geonode@ii} + \xdef\@@GenCourbe{}%%for accumulating points% DR 22032005 + \psset{#1}% + \Pst@Geonode@ii} \def\Pst@Geonode@ii(#1)#2{% \pnode(#1){#2} \xdef\@@GenCourbe{\@@GenCourbe(#2)}%%for accumulating points% DR 22032005 \Pst@ManageParamList{#2}% \@ifnextchar(\Pst@Geonode@ii{\pst@MngTransformCurve\endgroup}}% DR 22032005 -%%end modif alaindelplanque 11/2003 (VALID) + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %% create a point with an associated node, in a new %% landmark @@ -392,22 +392,37 @@ \def\pstRightAngle{\pst@object{pstRightAngle}} \def\pstRightAngle@i#1#2#3{% \begingroup - \addbefore@par{dotscale=1}%linestyle=solid,linecolor=black,linewidth=\pslinewidth} + \addbefore@par{dimen=inner,dotscale=1}%linestyle=solid,linecolor=black,linewidth=\pslinewidth} \use@par% % Affectation of local parameters %% not good at all, but \rput{0}(#3){\rput{(#2)}{stuff}} doesn't work... \rput(#2){% - \ifx\psk@RightAngleType\@default% - \psline(!tx@EcldDict begin /N@#1 GetNode exch Atan - \psk@RightAngleSize\space exch PtoC end)% + \ifx\psk@RightAngleType\@default + \ifx\psk@fillstylename\@none\else + \pspolygon[linestyle=none,dimen=inner](0,0)(!tx@EcldDict begin /N@#1 GetNode exch Atan \psk@RightAngleSize\space exch PtoC end)% + (!tx@EcldDict begin /N@#1 GetNode exch Atan \psk@RightAngleSize\space exch PtoC end)% (!tx@EcldDict begin /N@#1 GetNode exch Atan /AngleNo1 ED tx@EcldDict begin /N@#3 GetNode exch Atan /AngleNo3 ED AngleNo1 AngleNo3 sub abs 180 gt { /Diff -45 def }{ /Diff 45 def } ifelse AngleNo1 AngleNo3 gt { AngleNo1 Diff sub }{ AngleNo3 Diff sub } ifelse \psk@RightAngleSize\space 2 sqrt mul exch PtoC end)% - (!tx@EcldDict begin /N@#3 GetNode exch Atan - \psk@RightAngleSize\space exch PtoC end)% + (!tx@EcldDict begin /N@#3 GetNode exch Atan \psk@RightAngleSize\space exch PtoC end)% + \fi + \psline[fillstyle=none](!tx@EcldDict begin /N@#1 GetNode exch Atan \psk@RightAngleSize\space exch PtoC end)% + (!tx@EcldDict begin /N@#1 GetNode exch Atan \psk@RightAngleSize\space exch PtoC end)% + (!tx@EcldDict begin /N@#1 GetNode exch Atan /AngleNo1 ED + tx@EcldDict begin /N@#3 GetNode exch Atan /AngleNo3 ED + AngleNo1 AngleNo3 sub abs 180 gt { /Diff -45 def }{ /Diff 45 def } ifelse + AngleNo1 AngleNo3 gt { AngleNo1 Diff sub }{ AngleNo3 Diff sub } ifelse + \psk@RightAngleSize\space 2 sqrt mul exch PtoC end)% + (!tx@EcldDict begin /N@#3 GetNode exch Atan \psk@RightAngleSize\space exch PtoC end)% \else \ifx\psk@RightAngleType\@german +% \ifx\psk@fillstylename\@none\else +% \pscustom[linestyle=none,dimen=inner]{\psline(0,0) +% \pstMarkAngle[MarkAngleRadius=\psk@RightAngleSize,LabelSep=\psk@RightAngleSize\space .5 mul]{#1}{#2}{#3}{}% +% \psline(0,0) +% } +% \fi \pstMarkAngle[MarkAngleRadius=\psk@RightAngleSize,LabelSep=\psk@RightAngleSize\space .5 mul]{#1}{#2}{#3}% {\psscalebox{\psk@RightAngleSize}{\pscircle*{!.08 \psk@xdotscale\space mul}}}% \else @@ -416,7 +431,6 @@ (!tx@EcldDict begin /N@#3 GetNode exch Atan /N@#1 GetNode exch Atan 2 copy lt { exch 360 sub exch } if add 2 div .45 \psk@RightAngleSize\space mul exch PtoC end)% {\psscalebox{\psk@RightAngleSize}{\pscircle*{.08}}}% -% \pspolygon(0,0)% \psline(0,0)% (!tx@EcldDict begin /N@#3 GetNode exch Atan \psk@RightAngleSize\space exch PtoC end )% (!tx@EcldDict begin /N@#1 GetNode exch Atan \psk@RightAngleSize\space exch PtoC end )% @@ -437,7 +451,14 @@ \psset{%MarkAngle=0, #1}% \rput(#3){% - \psarc(0,0){\psk@MarkAngleRadius}{(#2)}{(#4)}% + \ifx\psk@fillstylename\@none\else + \pscustom[linestyle=none,linewidth=0.01pt,arrows=-]{% + \psline(0,0) + \psarc(0,0){\psk@MarkAngleRadius}{(#2)}{(#4)} + \psline(0,0) + } + \fi + \psarc[fillstyle=none](0,0){\psk@MarkAngleRadius}{(#2)}{(#4)}% \rput[\psk@LabelRefPt]{*0}(! tx@EcldDict begin /N@#4 GetNode exch Atan /N@#2 GetNode exch Atan end 2 copy lt { exch 360 sub exch } if @@ -459,26 +480,20 @@ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %% #2 #4 #6 -> coordinates for nodes %% #3 #5 #7 -> nodes name -\def\pstTriangle{\@ifnextchar[\Pst@Triangle{\Pst@Triangle[]}}% -\def\Pst@Triangle[#1]{%NEW DR 14112001 (for default (0,0) coordinates) - \def\pst@par{#1}% - \@ifnextchar(\Pst@Trianglei{\Pst@Trianglei(0,0)}}% -\def\Pst@Trianglei(#1)#2(#3)#4(#5)#6{% - %\pst@killglue% <------------------------------------------------- hv - DR 050315 - \bgroup - \pst@killglue% <------------------------------------------- DR 050315 +\def\pstTriangle{\pst@object{pstTriangle}}% +\def\pstTriangle@i{\@ifnextchar(\pstTriangle@ii{\pstTriangle@ii(0,0)}}% +\def\pstTriangle@ii(#1)#2(#3)#4(#5)#6{% + \pst@killglue %%begin modif alaindelplanque 11/2003 - \pst@@getcoor{#1}\xdef\@@coordi{\pst@coor}%% A<------------------ hv - \pst@@getcoor{#3}\xdef\@@coordiii{\pst@coor}%% B<------------------ hv - \pst@@getcoor{#5}\xdef\@@coordv{\pst@coor}%% C<- ---------------- hv + \pst@getcoor{#1}\@@coordi + \pst@getcoor{#3}\@@coordiii + \pst@getcoor{#5}\@@coordv \pstVerb{ \@@coordi\space\@@coordiii\space exch 4 1 roll \@@coordv\space exch 6 1 roll % x x x y y y add add 3 div /YS exch def add add 3 div /XS exch def - } - %%end modif alaindelplanque 11/2003 - %\bgroup\use@par% % Affectation of local parameters<---- DR 050315 - \use@par% % Affectation of local parameters<---- DR 050315 - %%begin modif alaindelplanque 11/2003 + }% + \bgroup + \use@keep@par \bgroup \ifx\psk@PosAngleA\@undef \psset{PosAngleA={! @@ -491,13 +506,13 @@ \else \psset{PosAngle=\psk@PosAngleA} \fi - %%end modif alaindelplanque 11/2003 \ifx\psk@PosAngleA\@undef\else\psset{PosAngle=\psk@PosAngleA}\fi \let\psk@PointSymbol=\psk@PointSymbolA \ifx\psk@PointNameA\@undef\else\psset{PointName=\psk@PointNameA}\fi - \Pst@Geonode@i[](#1){#2}\egroup%%NEW DR 15112001 - %%begin modif alaindelplanque 11/2003 + \Pst@Geonode@i[](#1){#2} + \egroup \bgroup + \use@keep@par \ifx\psk@PosAngleB\@undef \psset{PosAngleB={! /AngleBC \@@coordiii\space\@@coordv\space tx@EcldDict begin ABVect end exch Atan def @@ -508,12 +523,11 @@ \else \psset{PosAngle=\psk@PosAngleB} \fi - %%end modif alaindelplanque 11/2003 \ifx\psk@PosAngleB\@undef\else\psset{PosAngle=\psk@PosAngleB}\fi - \let\PointSymbol=\psk@PointSymbolB + \let\psk@PointSymbol=\psk@PointSymbolB \ifx\psk@PointNameB\@undef\else\psset{PointName=\psk@PointNameB}\fi - \Pst@Geonode@i[](#3){#4}\egroup%%NEW DR 15112001 - %%begin modif alaindelplanque 11/2003 + \Pst@Geonode@i[](#3){#4}% + \egroup \ifx\psk@PosAngleC\@undef \psset{PosAngleC={! /AngleCB \@@coordv\space\@@coordiii\space tx@EcldDict begin ABVect end exch Atan def @@ -521,15 +535,17 @@ AngleCB AngleCA add 2 div dup 1 exch \tx@PtoC exch \@@coordv\space 4 1 roll add 3 1 roll add XS YS Pyth2 \@@coordv\space XS YS Pyth2 le { 180 add } if }}%% <------ hv - \else\psset{PosAngle=\psk@PosAngleC}\fi%% <----------------------- hv - %%end modif alaindelplanque 11/2003 + \else + \psset{PosAngle=\psk@PosAngleC} + \fi \ifx\psk@PosAngleC\@undef\else\psset{PosAngle=\psk@PosAngleC}\fi - \let\PointSymbol=\psk@PointSymbolC + \let\psk@PointSymbol=\psk@PointSymbolC \ifx\psk@PointNameC\@undef\else\psset{PointName=\psk@PointNameC}\fi \Pst@Geonode@i[](#5){#6}%%NEW DR 15112001 \pst@TraceTriangle{#2}{#4}{#6}% - \egroup% + \egroup }% +% \def\pst@TraceTriangle#1#2#3{\pspolygon(#1)(#2)(#3)}% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %% Line, circle, Arc |