summaryrefslogtreecommitdiff
path: root/graphics/pstricks/base/generic/pstricks-arrows.tex
diff options
context:
space:
mode:
Diffstat (limited to 'graphics/pstricks/base/generic/pstricks-arrows.tex')
-rw-r--r--graphics/pstricks/base/generic/pstricks-arrows.tex54
1 files changed, 31 insertions, 23 deletions
diff --git a/graphics/pstricks/base/generic/pstricks-arrows.tex b/graphics/pstricks/base/generic/pstricks-arrows.tex
index 5684f3d792..0d89aa6b98 100644
--- a/graphics/pstricks/base/generic/pstricks-arrows.tex
+++ b/graphics/pstricks/base/generic/pstricks-arrows.tex
@@ -1,4 +1,4 @@
-%% $Id: pstricks-arrows.tex 164 2021-08-25 19:26:42Z herbert $
+%% $Id: pstricks-arrows.tex 168 2021-08-28 08:43:24Z herbert $
%%
%% This is file `pstricks-arrows.tex',
%%
@@ -279,35 +279,18 @@
\psset[pstricks]{filledveearrowlength=3mm} % default projected length
\define@key[psset]{pstricks}{filledveearrowangle}[15]{\pst@getangle{#1}\psk@filledveearrowangle}
\psset[pstricks]{filledveearrowangle=15} % default angle
-\define@key[psset]{pstricks}{filledveearrowlinewidth}[0.35mm]{\pst@getlength{#1}\psk@filledveearrowlinewidth}
-\psset[pstricks]{filledveearrowlinewidth=0.35mm} % default vee arrow line width
+\define@key[psset]{pstricks}{filledveearrowlinewidth}[0.8pt]{\pst@getlength{#1}\psk@filledveearrowlinewidth}
+\psset[pstricks]{filledveearrowlinewidth=\pslinewidth} % default vee arrow line width
\define@key[psset]{pstricks}{arrowlinestyle}[solid]{%
\@ifundefined{psls@#1}%
{\@pstrickserr{Line style `#1' not defined}\@eha}%
{\def\psarrowlinestyle{#1}}}
\psset[pstricks]{arrowlinestyle=solid} % default
-\pst@def{VeeArrow}<%
- 1 setlinecap % round caps
- 1 setlinejoin % round join
- setlinewidth % vee arrow line width
- /y ED % projected length
- 2 div /a ED % angle (divide by 2)
- /t ED % false = inside, true = outside
- a sin a cos div y mul /x ED % perpendicular length : x=tan(a).y
- t { 1 -1 scale } if % if outside : symmetry
- x neg y moveto % point #1
- 0 0 L % point #2
- x y L % point #3
- { closepath gsave fill grestore } if % if filled : close and fill
- \@nameuse{psls@\psarrowlinestyle}
- \ps@check@tipcolor
- stroke % draw line
- 0 t { y 2 mul } { 0 } ifelse moveto> % if outside : twice longer line
-
-% VeeArrow : filled? outside? (total) angle (projected) length (arrow) line width
\@namedef{psas@|}{\ps@check@tipcolor \psk@tbarsize \tx@Tbar}
+% VeeArrow : filled? outside? (total) angle (projected) length (arrow) line width
+
\@namedef{psas@v}{%
\ps@check@tipcolor
false false \psk@veearrowangle \psk@veearrowlength \psk@veearrowlinewidth \tx@VeeArrow}
@@ -315,12 +298,37 @@
\ps@check@tipcolor
false true \psk@veearrowangle \psk@veearrowlength \psk@veearrowlinewidth \tx@VeeArrow}
\@namedef{psas@f}{%
- \ps@check@tipcolor
+ \ps@check@tipcolor
true false \psk@filledveearrowangle \psk@filledveearrowlength \psk@filledveearrowlinewidth \tx@VeeArrow}
\@namedef{psas@F}{%
\ps@check@tipcolor
true true \psk@filledveearrowangle \psk@filledveearrowlength \psk@filledveearrowlinewidth \tx@VeeArrow}
+\pst@def{VeeArrow}<%
+ 5 dict begin
+ \pst@arrowscale\space div SLW % vee arrow line width
+ /y ED % projected length
+ 2 div /a ED % angle (divide by 2)
+ /t ED % false = inside, true = outside
+ a sin a cos div y mul /x ED % perpendicular length : x=tan(a).y
+ /x2 x dup add def
+ t { 1 -1 scale } if % if outside : symmetry
+% newpath x2 neg y moveto 0 y neg rlineto x2 dup add 0 rlineto 0 y rlineto closepath clip % to get rid of linecap problem
+ newpath
+ x neg y moveto % lower left
+ 0 0 lineto % arrow tip
+ x y lineto % upper left
+ 0 setlinecap % round caps
+ 2 setlinejoin % round join
+ { closepath 0 setlinewidth gsave fill grestore } if % if filled : close and fill
+ \@nameuse{psls@\psarrowlinestyle}
+ \ps@check@tipcolor
+ stroke % draw line
+ 0 t { y 2 mul } { 0 } ifelse moveto
+ end
+> % if outside : twice longer line
+
+
% And An another arrowhead
% architectural tick / oblique arrow