> Unfortunately pic chops broken lines into separate segments, > so it can't directly fill general polygons.
But then again, the nice thing about pic doing this is that its dashed lines always begin and end with a stroked segment. Many programs don't get this right. And the nice thing about using groff with the ps device is that it makes it easy to add features not natively supported by supplying the appropriate device code. See the attached example. Of course this needs to be made configurable with parameters to allow it to be used more generally, but for a first start it's not bad.
.\" pic .\" ---------------------------------------------------------------- .po 2.5c .ll 21c-5c .sp 2c .\" ---------------------------------------------------------------- .de XX ps: mdef 2 /blam! { 0 -25 moveto 10 { 18 rotate 0 -15 lineto 18 rotate 0 -25 lineto } repeat closepath gsave 1 1 0 setrgbcolor fill grestore [ 6 2.5 1.6922 2.5 4 2.5 1.6922 2.5 ] 3 setdash stroke } def /shift { currentpoint 2.2 sub translate } def .. .devicem XX .PS define blam { [ box width 0.5 invis "\X'ps: exec gsave shift blam! grestore'" ] } box "foo" arrow right blam "bar" arrow right circle "baz" .PE
pictest.pdf
Description: Adobe PDF document