diff options
author | Karl Berry <karl@freefriends.org> | 2021-12-28 22:49:15 +0000 |
---|---|---|
committer | Karl Berry <karl@freefriends.org> | 2021-12-28 22:49:15 +0000 |
commit | 44536de21976580d6897abaf43eb8cab5ea98dca (patch) | |
tree | 5a2323c2fda5578d38e3ffb7299c1717dee595ac /Master/texmf-dist/tex/generic | |
parent | 3a8f490ec582c95b7adc117b1f8d3debb60b7f88 (diff) |
pst-geometrictools (28dec21)
git-svn-id: svn://tug.org/texlive/trunk@61430 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/tex/generic')
-rw-r--r-- | Master/texmf-dist/tex/generic/pst-geometrictools/pst-geometrictools.tex | 149 |
1 files changed, 77 insertions, 72 deletions
diff --git a/Master/texmf-dist/tex/generic/pst-geometrictools/pst-geometrictools.tex b/Master/texmf-dist/tex/generic/pst-geometrictools/pst-geometrictools.tex index cad64e8e3c2..608e29ef560 100644 --- a/Master/texmf-dist/tex/generic/pst-geometrictools/pst-geometrictools.tex +++ b/Master/texmf-dist/tex/generic/pst-geometrictools/pst-geometrictools.tex @@ -1,6 +1,7 @@ %% This is file `pst-geometrictools.tex', %% %% Thomas Söll +%% fixes for lualatex by Herbert Voß %% %% This program can redistributed and/or modified under %% %% the terms of the LaTeX Project Public License %% @@ -15,18 +16,17 @@ \csname PSTgeometrictoolsLoaded\endcsname \let\PSTgeometrictoolsLoaded\endinput % Requires PSTricks, pst-xkey, pst-node packages -\ifx\PSTricksLoaded\endinput\else\input pstricks.tex\fi -\ifx\PSTXKeyLoaded\endinput\else\input pst-xkey.tex\fi -\ifx\PSTnodeLoaded\endinput\else\input pst-node.tex\fi -\def\fileversion{1.1} -\def\filedate{2017/09/16} +\ifx\PSTricksLoaded\endinput \else\input pstricks.tex\fi +\ifx\PSTXKeyLoaded\endinput \else\input pst-xkey.tex\fi +\ifx\PSTEuclideLoaded\endinput\else\input pst-eucl.tex\fi +\ifx\PSTnodeLoaded\endinput \else\input pst-node.tex\fi +\def\fileversion{1.3} +\def\filedate{2021/12/28} \message{`PST' v\fileversion, \filedate} \edef\PstAtCode{\the\catcode`\@} \catcode`\@=11\relax - - \pst@addfams{pst-geometrictools} - +% \define@boolkey[psset]{pst-geometrictools}[Pst@]{Ghost}[true]{} \define@key[psset]{pst-geometrictools}{ProLineCol}[cyan]{\pst@getcolor{#1}\ProLineCol} \define@key[psset]{pst-geometrictools}{ProFillCol}[gray!60]{\pst@getcolor{#1}\ProFillCol} @@ -44,62 +44,60 @@ \def\psProtractor{\def\pst@par{}\pst@object{psProtractor}} -\def\psProtractor@i#1(#2){\@ifnextchar(% -{\psProtractor@ii{#1}(#2)}% -{\psProtractor@ii{#1}(#2)(#2)}}% +\def\psProtractor@i#1(#2){\@ifnextchar({\psProtractor@ii{#1}(#2)}{\psProtractor@ii{#1}(#2)(#2)}}% + \def\psProtractor@ii#1(#2)(#3){%------------------------------- #1 Winkel, #2 Ursprung P, zweiter Punkt Q für Winkel -\begin@SpecialObj -\pst@killglue -\begingroup% -\pnode(#2){@PGD}% -\pnode(#3){@QGD}% -\use@par% -\pst@getcoor{@QGD}\pst@tempB % -------------------------- Hohle die Koordinaten und speichere sie in \pst@tempB -\pst@getcoor{@PGD}\pst@tempA % -------------------------- Hohle die Koordinaten und speichere sie in \pst@tempA -\addto@pscode{% -/sysfill {systemdict /fill get exec} def -/Country (\pst@country) def + \begin@SpecialObj + \pst@killglue +% \begingroup + \pnode(#2){@PGD}% + \pnode(#3){@QGD}% + \use@par + \pst@getcoor{@QGD}\pst@tempB % -------------------------- Hohle die Koordinaten und speichere sie in \pst@tempB + \pst@getcoor{@PGD}\pst@tempA % -------------------------- Hohle die Koordinaten und speichere sie in \pst@tempA + \addto@pscode{% + /sysfill {systemdict /fill get exec} def + /Country (\pst@country) def /cm {28.45274 mul} def % ---------------------------------------- Definiere cm als Längeneinheit mit der multipliziert wird \pst@tempA \tx@UserCoor /@y1 ED /@x1 ED % ---------- Definiere die Koordinaten des Ursprungs (zur Winkelberechnung benötigt) \pst@tempB \tx@UserCoor /@y2 ED /@x2 ED % ---------- Definiere die Koordinaten des zweiten Punktes (zur Winkelberechnung benötigt) - @y1 @y2 sub @x1 @x2 sub Atan /@delta ED %------------ Winkelberechnung + @y1 @y2 sub @x1 @x2 sub Atan /@delta ED %------------ Winkelberechnung \pst@tempA \pst@coor T % ------------------------------------ Tranformiere den Koordinatenursprung in P @delta #1 add 180 add rotate % ------------------------------ Drehe das gesamte Geodreieck - \pst@ProScale dup scale % -------- Skaliere das ganze Geodreieck -%------------------------------------------------------------------------------------------------------------- -\ifPst@Ghost\else -gsave -%------------------------------------------------------------------------------------------------------------- -%-------------- Äußere Begrenzung des Geodreiecks ----------------------------------------------- -gsave - newpath + \pst@ProScale dup scale % -------- Skaliere das ganze Geodreieck + %------------------------------------------------------------------------------------------------------------- + gsave + \ifPst@Ghost\else + %-------------- Äußere Begrenzung des Geodreiecks ----------------------------------------------- + gsave + newpath -8 cm 0 moveto 16 cm 0 rlineto -8 cm 8 cm rlineto - closepath - gsave - 0.7 setlinewidth - 0.1 setgray - stroke + closepath +% gsave + 0.7 setlinewidth + 0.1 setgray + stroke +% grestore grestore -grestore %------------------------------------------------------------------------------------------------------------- %-------------- Gefüllter innerer Teil des Geodreiecks ----------------------------------------------- -gsave + gsave newpath -7.5 cm 0.5 22.5 tan mul cm moveto 15 cm 0 rlineto -7.5 cm 7.5 cm rlineto closepath - gsave +% gsave \pst@usecolor\ProFillCol - [ /ca .1 /SetTransparency pdfmark % set transparency +% [ /ca .1 /SetTransparency pdfmark % set transparency 0.1 .setopacityalpha sysfill +% grestore grestore -grestore %------------------------------------------------------------------------------------------------------------- %-------------- Millimetereinteilung auf der Grundseite ------------------------------------------- - /mmBlinie { newpath + /mmBlinie { newpath -7 cm 0 cm moveto 0 cm 0.17 cm rlineto % closepath @@ -185,12 +183,12 @@ grestore 0 0 5.1 cm 6 174 arc 0 0 4.8 cm 174 6 arcn closepath - gsave +% gsave \pst@usecolor\ProLineCol - [ /ca .4 /SetTransparency pdfmark % set transparency +% [ /ca .4 /SetTransparency pdfmark % set transparency 0.4 .setopacityalpha sysfill - grestore +% grestore grestore %--------------------------------------------------------------------------------------------------------------------------------------------- %--------------- 1-Grad-Winkeleinteilung an der linken Kathete ----------------------------------------------------------------- @@ -428,7 +426,7 @@ grestore 0 -1 rlineto closepath setrgbcolor - [ /ca .5 /SetTransparency pdfmark % set transparency +% [ /ca .5 /SetTransparency pdfmark % set transparency 0.5 .setopacityalpha sysfill } def Country (France) eq { @@ -452,8 +450,8 @@ Country (Germany) eq { grestore %-------------------------------------------------------------------------------------------------------------------------------------------------- %--------------- Ende nur grestore von gsave ganz am Anfang ------------------ -grestore \fi +grestore }% \pnode(! /cm {28.45274 mul} def % ---------------------------------------- Definiere cm als Längeneinheit mit der multipliziert wird @@ -474,17 +472,18 @@ grestore @delta #1 add 180 add rotate % ------------------------------ Drehe die rechte untere Ecke des Geodreiecks \pst@ProScale\space \pst@ProScale\space scale % -------- Skalieren! 8 0){GeodrB}% -\endgroup% -\end@SpecialObj\ignorespaces +%\endgroup% + \end@SpecialObj + \ignorespaces }% - \definecolor{HolzCol}{rgb}{1,0.937,0.835}% \define@key[psset]{pst-geometrictools}{PenScale}[1]{\def\pst@PenScale{#1 }}% \define@key[psset]{pst-geometrictools}{PenLength}[5]{\def\pst@PenLength{#1 }}% \define@key[psset]{pst-geometrictools}{pencilColA}[red]{\pst@getcolor{#1}\pencilColA} \define@key[psset]{pst-geometrictools}{pencilColB}[HolzCol]{\pst@getcolor{#1}\pencilColB} \psset[pst-geometrictools]{PenLength=5,pencilColA=red,pencilColB=HolzCol,PenScale=1} + \def\psPencil{\def\pst@par{}\pst@object{psPencil}} \def\psPencil@i#1(#2){%------------------------------- #1 Winkel, #2 Ursprung P \begin@SpecialObj @@ -659,7 +658,7 @@ gsave closepath gsave \pst@usecolor\RulerFillCol - [ /ca .25 /SetTransparency pdfmark % set transparency +% [ /ca .25 /SetTransparency pdfmark % set transparency 0.25 .setopacityalpha sysfill grestore grestore @@ -676,7 +675,7 @@ gsave closepath gsave \pst@usecolor\RulerFillCol - [ /ca .15 /SetTransparency pdfmark % set transparency +% [ /ca .15 /SetTransparency pdfmark % set transparency 0.15 .setopacityalpha sysfill grestore gsave @@ -1151,28 +1150,34 @@ grestore % \def\psParallels{\def\pst@par{}\pst@object{psParallels}} \def\psParallels@i(#1)(#2)(#3){% -\begin@SpecialObj % -\pnode(#1){pointA}% -\pnode(#2){pointB}% -\pnode(#3){pointC}% -\pcline[nodesep=-3](pointA)(pointB) -\psdots(pointA)(pointB)(pointC) -\uput[l](pointA){A} -\uput[l](pointB){B} -\uput[r](pointC){C} +% \begin@SpecialObj + \pst@killglue + \begingroup + \use@par + \pnode(#1){pointA}% + \pnode(#2){pointB}% + \pnode(#3){pointC}% + \pcline[nodesep=-3](pointA)(pointB) + \psdots(pointA)(pointB)(pointC) +% \uput[l](pointA){A}\uput[l](pointB){B}\uput[r](pointC){C} % -\psProtractor[Ghost]{0}(pointA)% -\psAngleAB(pointA)(pointB){alpha1} -\psAngleAB(pointA)(GeodrA){alpha2} -\psProtractor[Ghost]{alpha1 alpha2 sub}(pointA)% -\psRuler{0}(GeodrB)(GeodrC) + \psProtractor[Ghost]{0}(pointA)% + \psAngleAB(pointA)(pointB){alpha1} + \psAngleAB(pointA)(GeodrA){alpha2} +% \psdot(GeodrA)\uput[-90](GeodrA){A'}% right edge of triangle + \psProtractor[Ghost]{alpha1 alpha2 sub }(pointA)% +% \psdot(GeodrA)\uput[-90](GeodrA){A''}% right edge of triangle +% \psdot(GeodrB)\uput[-90](GeodrB){B''}% left edge of triangle +% \psdot(GeodrC)\uput[-90](GeodrC){C''}% bottom edge of triangle + \psRuler{0}(GeodrB)(GeodrC) % -\pstProjection[PointName={},PointSymbol=none]{pointA}{pointB}{pointC}[pointI]% -\pstRotation[RotAngle=45,PointSymbol=none,PointName={}]{pointC}{pointI}[pointJ]% -\pstInterLL[PointSymbol=none,PointName={}]{pointA}{pointB}{pointC}{pointJ}{pointK}% -\pstTranslation[PointSymbol=none,PointName={},DistCoef=\pst@DistCoeff]{pointK}{pointC}{pointA}[pointA*] -\psProtractor{alpha1 alpha2 sub}(pointA*)% -\end@SpecialObj\ignorespaces% + \pstProjection[PointName={},PointSymbol=none]{pointA}{pointB}{pointC}[pointI]% + \pstRotation[RotAngle=45,PointSymbol=none,PointName={}]{pointC}{pointI}[pointJ]% + \pstInterLL[PointSymbol=none,PointName={}]{pointA}{pointB}{pointC}{pointJ}{pointK}% + \pstTranslation[PointSymbol=none,PointName={},DistCoef=\pst@DistCoeff]{pointK}{pointC}{pointA}[pointA*] + \psProtractor{alpha1 alpha2 sub}(pointA*)% + \endgroup + \ignorespaces% }% %\define@boolkey[psset]{pst-geometrictools}[Pst@]{Ruler}[true]{} |