%% $Id: pstricks-dots.tex 273 2021-09-27 08:11:44Z herbert $ %% %% This is file `pstricks-dots.tex', %% %% IMPORTANT NOTICE: %% %% Herbert Voss %% %% 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. %% %% DESCRIPTION: %% `pstricks-dots' base code for dots %% %% fileversion and filedate see main file pstricks.tex %% \define@key[psset]{pstricks}{dotsize}[2pt 2]{% \pst@expandafter\pst@getdimnum{#1} 0 {} {}\@nil% \edef\psk@@dotsize{\pst@number\pst@dimg}% \let\psk@@@dotsize\pst@tempg% \edef\psk@dotsize{ /DS \psk@@dotsize \psk@@@dotsize CLW mul add 2 div def }} \psset[pstricks]{dotsize=2pt 2} % \define@key[psset]{pstricks}{dotscale}[1]{% \pst@getscale{#1}\psk@dotscale \ifx\psk@dotscale\@empty \def\psk@xdotscale{1 }% \def\psk@ydotscale{1 }% \else \let\psk@xdotscale\pst@tempg \let\psk@ydotscale\pst@temph \fi} % \def\pst@Getangle#1#2{% \pst@getangle{#1}\pst@tempg \def\pst@temph{0. }% \ifx\pst@tempg\pst@temph\def#2{}\else\edef#2{\pst@tempg\space rotate }\fi} % \define@key[psset]{pstricks}{dotangle}[0]{% \pst@getangle{#1}\psk@@dotangle \ifdim\psk@@dotangle\p@=\z@ \let\psk@dotangle\@empty \else \edef\psk@dotangle{\psk@@dotangle rotate }% \fi} \psset[pstricks]{dotangle=0} % \def\pst@getdotsize{% \pst@dimg=\psk@@@dotsize\pslinewidth \advance\pst@dimg\psk@@dotsize\p@ \pst@dimh=\psk@ydotscale\pst@dimg \pst@dimg=\psk@xdotscale\pst@dimg \divide\pst@dimh 2 \divide\pst@dimg 2\relax} % \psset[pstricks]{dotscale=1} % \def\psdot{\pst@object{psdot}} \def\psdot@i{\@ifnextchar({\psdot@ii}{\psdot@ii(\z@,\z@)}} \def\psdot@ii(#1){% \begin@SpecialObj% % hv modification 1.13 2005-11-28 \solid@star% % hv modification end \pst@@getcoor{#1}% \addto@pscode{ \psk@dotsize \@nameuse{psds@\psk@dotstyle} \tx@setStrokeTransparency \pst@coor Dot}% \end@SpecialObj} % \def\psdots{\pst@object{psdots}} \def\psdots@i{% \begin@SpecialObj% \pst@getcoors[\psdots@ii} \def\psdots@ii{% \addto@pscode{ false \tx@NArray \psdots@iii }% \end@SpecialObj} \def\psdots@iii{% \psk@dotsize \@nameuse{psds@\psk@dotstyle} \tx@setStrokeTransparency newpath n { transform floor .5 add exch floor .5 add exch itransform Dot } repeat } % % DG: dead code (to suppress until \psset[pstricks]{dotstyle) ? - Aug. 4, 1997 \def\tx@SQ{SQ } \def\tx@ST{ST } \def\tx@SP{SP } % \def\pst@gdot#1{ /Dot { gsave T \psk@dotangle \psk@dotscale #1 grestore } def } % \@namedef{psds@*}{\pst@gdot{ 0 0 DS \tx@SD }} \@namedef{psds@o}{% /r2 DS CLW sub def \pst@gdot{ 0 0 DS \tx@SD \pst@usecolor\psfillcolor SLW 0 0 r2 \tx@SD }} \@namedef{psds@square*}{ /r1 DS .886 mul def \pst@gdot{r1 \tx@SQ }} \@namedef{psds@square}{% /r1 DS .886 mul def /r2 r1 CLW sub def \pst@gdot{r1 \tx@SQ \pst@usecolor\psfillcolor r2 \tx@SQ}} \@namedef{psds@triangle*}{% /y1 DS .778 mul neg def /x1 y1 1.732 mul neg def \pst@gdot{x1 y1 \tx@ST}} \@namedef{psds@triangle}{% /y1 DS .778 mul neg def /x1 y1 1.732 mul neg def /y2 y1 CLW add def /x2 y2 1.732 mul neg def \pst@gdot{x1 y1 \tx@ST x2 y2 \tx@ST}} \@namedef{psds@pentagon*}{% /r1 DS 1.149 mul def \pst@gdot{r1 \tx@SP}} \@namedef{psds@pentagon}{% DS .93 mul dup 1.236 mul /r1 ED CLW sub 1.236 mul /r2 ED \pst@gdot{r1 \tx@SP r2 \tx@SP}} \@namedef{psds@+}{% /DS DS 1.253 mul def \pst@gdot{DS 0 moveto DS neg 0 L stroke 0 DS moveto 0 DS neg L stroke}} \@namedef{psds@|}{% \psk@tbarsize CLW mul add 2 div /DS ED \pst@gdot{0 DS moveto 0 DS neg L stroke}} % DG: end dead code? % \define@key[psset]{pstricks}{dotstyle}[*]{% \@ifundefined{psds@#1}% {\@pstrickserr{Dot style `#1' not defined}\@eha}% {\edef\psk@dotstyle{#1}}} % \psset[pstricks]{dotstyle=*} % \def\tx@FontDot{FontDot } \def\newpsfontdot#1[#2]#3#4{% \@namedef{psds@#1}{% /#3 \psk@@dotangle [#2] \tx@FontDot /Dot { moveto gsave \psk@dotscale #4 show grestore } bind def }} \def\newpsfontdotH#1[#2]#3#4#5{% for filled objects \@namedef{psds@#1}{% /#3 \psk@@dotangle [#2] \tx@FontDot /Dot { moveto gsave \psk@dotscale \pst@usecolor\psfillcolor #5 show grestore % fill first gsave \psk@dotscale #4 show grestore % show the unfilled one } bind def }} % \ifPSTlualatex\else\pstheader{pst-dots.pro}\fi % load the type 1 font %%40 % /.notdef /BoldAdd /.notdef /BoldCircle /BoldDiamond /SolidOtimes /BoldOctogon /SolidHexagon % /BoldHexagon /BoldBar /SolidAsterisk /BoldAsterisk /.notdef /BOplus /BOtimes /.notdef %%50 % /BoldPentagon /.notdef /.notdef /BoldSquare /BoldTriangle /.notdef /.notdef /.notdef % /BoldMul /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef %%60 % /.notdef /Add /Bullet /Circle /Diamond /SolidOplus /Octogon /SolidOctogon % /Hexagon /Bar /.notdef /Asterisk /SolidDiamond /Oplus /Otimes /.notdef %%70 % /Pentagon /SolidPentagon /SolidSquare /Square /Triangle /SolidTriangle /.notdef /.notdef % /Mul /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef \newpsfontdot{+}[1.0 0.0 0.0 1.0 0 0]{PSTricksDotFont}{<61>} \newpsfontdot{Add}[1.0 0.0 0.0 1.0 0 0]{PSTricksDotFont}{<61>} \newpsfontdot{B+}[1.0 0.0 0.0 1.0 0 0]{PSTricksDotFont}{<41>} \newpsfontdot{BoldAdd}[1.0 0.0 0.0 1.0 0 0]{PSTricksDotFont}{<41>} % \newpsfontdot{x}[1.0 0.0 0.0 1.0 0 0]{PSTricksDotFont}{<78>} \newpsfontdot{times}[1.0 0.0 0.0 1.0 0 0]{PSTricksDotFont}{<78>} \newpsfontdot{Mul}[1.0 0.0 0.0 1.0 0 0]{PSTricksDotFont}{<78>} % \newpsfontdot{bullet}[1.0 0.0 0.0 1.0 0 0]{PSTricksDotFont}{<62>} \newpsfontdot{Bullet}[1.0 0.0 0.0 1.0 0 0]{PSTricksDotFont}{<62>} \newpsfontdot{*}[1.0 0.0 0.0 1.0 0 0]{PSTricksDotFont}{<62>} % \newpsfontdotH{o}[1.0 0.0 0.0 1.0 0 0]{PSTricksDotFont}{<63>}{<62>} \newpsfontdotH{Circle}[1.0 0.0 0.0 1.0 0.0 0.0]{PSTricksDotFont}{(c)}{(b)} \newpsfontdotH{Bo}[1.0 0.0 0.0 1.0 0.0 0.0]{PSTricksDotFont}{(C)}{(b)} \newpsfontdotH{BoldCircle}[1.0 0.0 0.0 1.0 0.0 0.0]{PSTricksDotFont}{(C)}{(b)} % \newpsfontdot{oplus}[1.0 0.0 0.0 1.0 0 0]{PSTricksDotFont}{<6D>} \newpsfontdotH{Oplus}[1.0 0.0 0.0 1.0 0.0 0.0]{PSTricksDotFont}{(m)}{(b)} \newpsfontdotH{Oplus*}[1.0 0.0 0.0 1.0 0 0]{PSTricksDotFont}{(e)}{(b)} \newpsfontdotH{SolidOplus}[1.0 0.0 0.0 1.0 0.0 0.0]{PSTricksDotFont}{(e)}{(b)} \newpsfontdotH{BoldOplus}[1.0 0.0 0.0 1.0 0.0 0.0]{PSTricksDotFont}{(M)}{(b)} % \newpsfontdot{otimes}[1.0 0.0 0.0 1.0 0 0]{PSTricksDotFont}{<6E>} \newpsfontdotH{Otimes}[1.0 0.0 0.0 1.0 0.0 0.0]{PSTricksDotFont}{(n)}{(b)} \newpsfontdot{BoldMul}[1.0 0.0 0.0 1.0 0 0]{PSTricksDotFont}{<58>} \newpsfontdotH{BoldOtimes}[1.0 0.0 0.0 1.0 0.0 0.0]{PSTricksDotFont}{(N)}{(b)} \newpsfontdotH{SolidOtimes}[1.0 0.0 0.0 1.0 0.0 0.0]{PSTricksDotFont}{(E)}{(b)} % \newpsfontdot{asterisk}[1.0 0.0 0.0 1.0 0 0]{PSTricksDotFont}{<6B>} \newpsfontdot{Asterisk}[1.0 0.0 0.0 1.0 0 0]{PSTricksDotFont}{<6B>} \newpsfontdot{Asterisk*}[1.0 0.0 0.0 1.0 0 0]{PSTricksDotFont}{<4A>} \newpsfontdotH{SolidAsterisk}[1.0 0.0 0.0 1.0 0.0 0.0]{PSTricksDotFont}{(J)}{(b)} \newpsfontdot{BoldAsterisk}[1.0 0.0 0.0 1.0 0 0]{PSTricksDotFont}{<4B>} \newpsfontdot{Basterisk}[1.0 0.0 0.0 1.0 0 0]{PSTricksDotFont}{<4B>} % \newpsfontdot{Bar}[1.0 0.0 0.0 1.0 0 0]{PSTricksDotFont}{<69>} \newpsfontdot{|}[1.0 0.0 0.0 1.0 0 0]{PSTricksDotFont}{<69>} \newpsfontdot{BoldBar}[1.0 0.0 0.0 1.0 0 0]{PSTricksDotFont}{<49>} \newpsfontdot{B|}[1.0 0.0 0.0 1.0 0 0]{PSTricksDotFont}{<49>} % \newpsfontdotH{triangle}[1.0 0.0 0.0 1.0 0.0 0.0]{PSTricksDotFont}{(t)}{(u)} \newpsfontdotH{Btriangle}[1.0 0.0 0.0 1.0 0.0 0.0]{PSTricksDotFont}{(T)}{(u)} \newpsfontdotH{Triangle}[1.0 0.0 0.0 1.0 0.0 0.0]{PSTricksDotFont}{(t)}{(u)} \newpsfontdotH{BoldTriangle}[1.0 0.0 0.0 1.0 0.0 0.0]{PSTricksDotFont}{(T)}{(u)} \newpsfontdot{triangle*}[1.0 0.0 0.0 1.0 0 0]{PSTricksDotFont}{<75>} \newpsfontdot{SolidTriangle}[1.0 0.0 0.0 1.0 0 0]{PSTricksDotFont}{<75>} % \newpsfontdotH{square}[1.0 0.0 0.0 1.0 0.0 0.0]{PSTricksDotFont}{(s)}{(r)} \newpsfontdot{square*}[1.0 0.0 0.0 1.0 0 0]{PSTricksDotFont}{<72>} \newpsfontdot{SolidSquare}[1.0 0.0 0.0 1.0 0 0]{PSTricksDotFont}{<72>} \newpsfontdotH{Bsquare}[1.0 0.0 0.0 1.0 0.0 0.0]{PSTricksDotFont}{(S)}{(r)} \newpsfontdotH{Square}[1.0 0.0 0.0 1.0 0.0 0.0]{PSTricksDotFont}{(s)}{(r)} \newpsfontdotH{BoldSquare}[1.0 0.0 0.0 1.0 0.0 0.0]{PSTricksDotFont}{(S)}{(r)} % \newpsfontdotH{diamond}[1.0 0.0 0.0 1.0 0.0 0.0]{PSTricksDotFont}{(d)}{(l)} \newpsfontdotH{Diamond}[1.0 0.0 0.0 1.0 0.0 0.0]{PSTricksDotFont}{(d)}{(l)} \newpsfontdotH{BoldDiamond}[1.0 0.0 0.0 1.0 0.0 0.0]{PSTricksDotFont}{(D)}{(l)} \newpsfontdotH{Bdiamond}[1.0 0.0 0.0 1.0 0.0 0.0]{PSTricksDotFont}{(D)}{(l)} \newpsfontdot{diamond*}[1.0 0.0 0.0 1.0 0 0]{PSTricksDotFont}{<6C>} \newpsfontdot{SolidDiamond}[1.0 0.0 0.0 1.0 0 0]{PSTricksDotFont}{<6C>} % \newpsfontdotH{pentagon}[1.0 0.0 0.0 1.0 0.0 0.0]{PSTricksDotFont}{(p)}{(q)} \newpsfontdotH{Bpentagon}[1.0 0.0 0.0 1.0 0.0 0.0]{PSTricksDotFont}{(P)}{(q)} \newpsfontdotH{BoldPentagon}[1.0 0.0 0.0 1.0 0.0 0.0]{PSTricksDotFont}{(P)}{(q)} \newpsfontdotH{Pentagon}[1.0 0.0 0.0 1.0 0.0 0.0]{PSTricksDotFont}{(p)}{(q)} \newpsfontdot{pentagon*}[1.0 0.0 0.0 1.0 0 0]{PSTricksDotFont}{<71>} \newpsfontdot{SolidPentagon}[1.0 0.0 0.0 1.0 0 0]{PSTricksDotFont}{<71>} % \newpsfontdotH{Hexagon}[1.0 0.0 0.0 1.0 0.0 0.0]{PSTricksDotFont}{(h)}{(G)} \newpsfontdot{SolidHexagon}[1.0 0.0 0.0 1.0 0 0]{PSTricksDotFont}{<47>} \newpsfontdotH{BoldHexagon}[1.0 0.0 0.0 1.0 0.0 0.0]{PSTricksDotFont}{(H)}{(G)} \newpsfontdot{BoldHexagon}[1.0 0.0 0.0 1.0 0 0]{PSTricksDotFont}{<48>} % \newpsfontdotH{Octogon}[1 0 0 1 0 0]{PSTricksDotFont}{(f)}{(g)} \newpsfontdot{Octogon*}[1.0 0.0 0.0 1.0 0 0]{PSTricksDotFont}{<67>} \newpsfontdotH{BoldOctogon}[1 0 0 1 0 0]{PSTricksDotFont}{(F)}{(g)} \newpsfontdot{SolidOctogon}[1.0 0.0 0.0 1.0 0 0]{PSTricksDotFont}{<67>} %% %% END: pstricks-dots.tex \endinput