summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2018-12-11 22:20:35 +0000
committerKarl Berry <karl@freefriends.org>2018-12-11 22:20:35 +0000
commit61964850e31f2ce6c97f6115fc73bec3ead475e2 (patch)
treed7a5559fb98e3188dfab2529e5f019b5b936ce3b
parentfcb05e5badc5ccfca4b1539572f63e487ed4fce5 (diff)
pst-eucl (11dec18)
git-svn-id: svn://tug.org/texlive/trunk@49386 c570f23f-e606-0410-a88d-b1316a301751
-rw-r--r--Master/texmf-dist/doc/generic/pst-eucl/Changes1
-rw-r--r--Master/texmf-dist/doc/generic/pst-eucl/pst-eucl-doc.pdfbin541233 -> 543582 bytes
-rw-r--r--Master/texmf-dist/doc/generic/pst-eucl/pst-eucl-doc.tex12
-rw-r--r--Master/texmf-dist/tex/generic/pst-eucl/pst-eucl.tex68
4 files changed, 68 insertions, 13 deletions
diff --git a/Master/texmf-dist/doc/generic/pst-eucl/Changes b/Master/texmf-dist/doc/generic/pst-eucl/Changes
index 1eb86cf496f..a8b453161a3 100644
--- a/Master/texmf-dist/doc/generic/pst-eucl/Changes
+++ b/Master/texmf-dist/doc/generic/pst-eucl/Changes
@@ -5,6 +5,7 @@ pst-eucl.pro --------
pst-eucl.tex --------
+1.61 2018/12/11 - added macros for inner and outer circle of a triangle
1.60a 2018/12/08 - fix for typos in the documentation
1.60 2018/10/06 - added \pstDistCalc, which usee algebraic
notation for the argument
diff --git a/Master/texmf-dist/doc/generic/pst-eucl/pst-eucl-doc.pdf b/Master/texmf-dist/doc/generic/pst-eucl/pst-eucl-doc.pdf
index 0c700a7edc2..5d57db0728a 100644
--- a/Master/texmf-dist/doc/generic/pst-eucl/pst-eucl-doc.pdf
+++ b/Master/texmf-dist/doc/generic/pst-eucl/pst-eucl-doc.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/generic/pst-eucl/pst-eucl-doc.tex b/Master/texmf-dist/doc/generic/pst-eucl/pst-eucl-doc.tex
index d4405c9af98..120d6630d03 100644
--- a/Master/texmf-dist/doc/generic/pst-eucl/pst-eucl-doc.tex
+++ b/Master/texmf-dist/doc/generic/pst-eucl/pst-eucl-doc.tex
@@ -297,13 +297,16 @@ The length and the separation of multiple hases can be set by \Lkeyword{MarkHash
The more classical figure, it has its own macro for a quick definition:
\begin{BDef}
-\Lcs{pstTriangle}\OptArgs\coord1\Largb{A}\coord2\Largb{B}\coord3\Largb{C}
+\Lcs{pstTriangle}\OptArgs\coord1\Largb{A}\coord2\Largb{B}\coord3\Largb{C}\\
+\Lcs{pstTriangleIC}\OptArgs\Largb{A}\Largb{B}\Largb{C}\\
+\Lcs{pstTriangleOC}\OptArgs\Largb{A}\Largb{B}\Largb{C}
\end{BDef}
\begin{sloppypar}
Valid optional arguments are \Lkeyword{PointName},
- \Lkeyword{PointNameSep}, \Lkeyword{PosAngle}, \Lkeyword{PointSymbol}, \Lkeyword{PointNameA},
+ \Lkeyword{PointNameSep}, %\Lkeyword{PosAngle},
+ \Lkeyword{PointSymbol}, \Lkeyword{PointNameA},
\Lkeyword{PosAngleA}, \Lkeyword{PointSymbolA}, \Lkeyword{PointNameB},
\Lkeyword{PosAngleB}, \Lkeyword{PointSymbolB}, \Lkeyword{PointNameC},
\Lkeyword{PosAngleC}, and \Lkeyword{PointSymbolC}.
@@ -328,9 +331,14 @@ same rule.
\pstTriangle[PointSymbol=square,PointSymbolC=o,
linecolor=blue,linewidth=1.5\pslinewidth]
(1.5,-1){A}(0,1){B}(-1,-.5){C}
+\pstTriangleIC[linecolor=red]{A}{B}{C}
+\pstTriangleOC[linecolor=red]{A}{B}{C}
\end{pspicture}
\end{LTXexample}
+The center of the inner circle is called \verb|IC_O| and the outer circle \verb|OC_O|. They are
+only defined, if the macros \Lcs{pstTriangleIC} and \Lcs{pstTriangleOC} are used.
+
\subsection{Angles}
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 afb5ca1b25d..a2039c87dbb 100644
--- a/Master/texmf-dist/tex/generic/pst-eucl/pst-eucl.tex
+++ b/Master/texmf-dist/tex/generic/pst-eucl/pst-eucl.tex
@@ -19,8 +19,8 @@
\csname PSTEuclideLoaded\endcsname
\let\PSTEuclideLoaded\endinput
%
-\def\fileversion{1.60a}
-\def\filedate{2018/12/09}
+\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
@@ -71,9 +71,22 @@
\define@key[psset]{pst-eucl}{PointNameSep}{\edef\psk@PointNameSep{#1}}%
% position angle for positionning a point name
\define@key[psset]{pst-eucl}{PosAngle}{\edef\psk@PosAngle{#1}}%
-\define@key[psset]{pst-eucl}{PosAngleA}[undef]{\edef\psk@PosAngleA{#1}}%
-\define@key[psset]{pst-eucl}{PosAngleB}[undef]{\edef\psk@PosAngleB{#1}}%
-\define@key[psset]{pst-eucl}{PosAngleC}[undef]{\edef\psk@PosAngleC{#1}}%
+\iffalse
+\define@key[psset]{pst-eucl}{PosAngle}{\expandafter\psk@@Pos@Angle#1,,!}%
+\def\psk@@Pos@Angle#1,#2,#3#4#5!{%
+ \typeout{1: #1; 2: #2; 3: #3; 4: #4; 5: #5}%
+ \def\psk@PosAngle{#1}%
+ \def\@temp{#1}%
+ \ifx\@temp\@undef \typeout{Nichts machen}\else\typeout{Winkel setzen}%
+ \ifx\relax#1\relax \def\psk@PosAngle{undef}\else\def\psk@PosAngleA{#1}\fi
+ \ifx\relax#2\relax \else\def\psk@PosAngleB{#2}\fi
+ \ifx\relax#3\relax \else\def\psk@PosAngleC{#3}\fi
+ \fi
+}
+\fi
+\define@key[psset]{pst-eucl}{PosAngleA}[undef]{\def\psk@PosAngleA{#1}}%
+\define@key[psset]{pst-eucl}{PosAngleB}[undef]{\def\psk@PosAngleB{#1}}%
+\define@key[psset]{pst-eucl}{PosAngleC}[undef]{\def\psk@PosAngleC{#1}}%
% dimension of the right angle mark
\define@key[psset]{pst-eucl}{RightAngleSize}[4]{\edef\psk@RightAngleSize{#1}}%
\define@key[psset]{pst-eucl}{RightAngleType}[default]{\edef\psk@RightAngleType{#1}}%
@@ -139,7 +152,8 @@
PointSymbol=*, PointSymbolA=*, PointSymbolB=*, PointSymbolC=*,
PointName=default, PointNameA=undef, PointNameB=undef, PointNameC=undef,
PtNameMath=true, PointNameMathSize=\textstyle, PointNameSize=\normalsize,
- PointNameSep=default, PosAngle=undef, PosAngleA=undef,
+ PointNameSep=default, PosAngle=undef,
+ PosAngleA=undef,
PosAngleB=undef, PosAngleC=undef, Mark=undef, mark=undef,SegmentSymbol=MarkHashh,
SegmentSymbolA=MarkHashh, SegmentSymbolB=MarkHash, SegmentSymbolC=MarkHashhh,
RightAngleSize=.4, RightAngleType=default, LabelAngleOffset=0, LabelSep=1,
@@ -450,7 +464,8 @@
\@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
+ \bgroup
+ \pst@killglue% <------------------------------------------- DR 050315
%%begin modif alaindelplanque 11/2003
\pst@@getcoor{#1}\xdef\@@coordi{\pst@coor}%% A<------------------ hv
\pst@@getcoor{#3}\xdef\@@coordiii{\pst@coor}%% B<------------------ hv
@@ -463,7 +478,8 @@
%\bgroup\use@par% % Affectation of local parameters<---- DR 050315
\use@par% % Affectation of local parameters<---- DR 050315
%%begin modif alaindelplanque 11/2003
- \bgroup\ifx\psk@PosAngleA\@undef
+ \bgroup
+ \ifx\psk@PosAngleA\@undef
\psset{PosAngleA={!
/AngleAB \@@coordi\space\@@coordiii\space tx@EcldDict begin ABVect end exch Atan def
/AngleAC \@@coordi\space\@@coordv\space tx@EcldDict begin ABVect end exch Atan def
@@ -471,21 +487,26 @@
1 exch \tx@PtoC exch \@@coordi\space 4 1 roll add 3 1 roll add XS YS Pyth2 % test if inside/outside
\@@coordi\space XS YS Pyth2 le { 180 add } if
}}%% <------ hv
- \else\psset{PosAngle=\psk@PosAngleA}\fi
+ \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
- \bgroup\ifx\psk@PosAngleB\@undef
+ \bgroup
+ \ifx\psk@PosAngleB\@undef
\psset{PosAngleB={!
/AngleBC \@@coordiii\space\@@coordv\space tx@EcldDict begin ABVect end exch Atan def
/AngleBA \@@coordiii\space\@@coordi\space tx@EcldDict begin ABVect end exch Atan def
AngleBA AngleBC add 2 div dup 1 exch \tx@PtoC exch \@@coordiii\space 4 1 roll add 3 1 roll add XS YS Pyth2
\@@coordiii\space XS YS Pyth2 le { 180 add } if
}}%% <------ hv
- \else\psset{PosAngle=\psk@PosAngleB}\fi
+ \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
@@ -1528,6 +1549,31 @@
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% Special macros for parameters
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+\def\pstTriangleIC{\pst@object{pstTriangleIC}}% inner circle of a triangle
+\def\pstTriangleIC@i#1#2#3{%
+ \begingroup
+ \psset{PointSymbol=none,PointName=none,linestyle=none,CodeFig=false}
+ \pstBissectBAC{#3}{#1}{#2}{IC_BC}
+ \pstBissectBAC{#2}{#3}{#1}{IC_AB}
+ \pstInterLL{#3}{IC_AB}{#1}{IC_BC}{IC_O}
+ \pstProjection{#1}{#2}{IC_O}[IC_OAB]
+ \endgroup
+ \begingroup
+ \use@par
+ \pstCircleOA{IC_O}{IC_OAB}
+ \endgroup
+}
+%
+\def\pstTriangleOC{\pst@object{pstTriangleOC}}% inner circle of a triangle
+\def\pstTriangleOC@i#1#2#3{%
+ \begingroup
+ \addbefore@par{PointSymbol=none,PointName=none}
+ \use@par
+ \pstCircleABC{#1}{#2}{#3}{OC_O}
+ \endgroup
+}
+%
%% Distance between two points
\def\pstDistAB#1#2{%
tx@EcldDict begin /N@#1 GetNode /N@#2 GetNode ABDist end