diff options
author | David Kastrup <dak@gnu.org> | 2013-04-23 16:49:19 +0200 |
---|---|---|
committer | David Kastrup <dak@gnu.org> | 2013-12-07 12:48:17 +0100 |
commit | 967416b80210725e3243071ff3fb6b867ed255f2 (patch) | |
tree | 412b188e637e998bd68f03986682581ff3f75360 /ps | |
parent | 6bf9a5a3dbcabff297d5bcdb3cf1dffd0885cbbc (diff) |
Implement option -dstrokeadjust in order to get stroked stems and strokeadjustment
This makes the stroke drawing primitives for long rounded rectangles
dependent on the setting of currentstrokeadjust. As a result,
low-resolution bitmap devices (up to 150 dpi or so) will get stroke
adjustment applied automatically. The option needs to get invoked
explicitly to get stroke adjustment for PDF, giving a large file size
increase and markedly better previews on a number of PDF previewers.
Diffstat (limited to 'ps')
-rw-r--r-- | ps/music-drawing-routines.ps | 75 |
1 files changed, 41 insertions, 34 deletions
diff --git a/ps/music-drawing-routines.ps b/ps/music-drawing-routines.ps index 121897a021..03df7c03cb 100644 --- a/ps/music-drawing-routines.ps +++ b/ps/music-drawing-routines.ps @@ -138,51 +138,58 @@ bind def 0 setlinecap } { % full shape - currentlinewidth 2 div - 0 0 2 index 180 270 arc - 2 index 0 2 index 270 360 arc - 3 copy 0 90 arc - 0 2 index 3 -1 roll 90 180 arc - closepath - 2 copy 2 mul gt - { % horizontal - 2 copy add currentlinewidth add 10 add % large enough - 0 1 index neg moveto - 2 index 1 index neg lineto - 2 index 1 index lineto - 0 exch lineto closepath - gsave clip newpath - 0 1 index 2 div moveto - currentlinewidth add setlinewidth - 0 rlineto - 2 setlinecap - stroke - grestore - } - { - 2 copy exch 2 mul gt - { % vertical + currentstrokeadjust { + currentlinewidth 2 div + 0 0 2 index 180 270 arc + 2 index 0 2 index 270 360 arc + 3 copy 0 90 arc + 0 2 index 3 -1 roll 90 180 arc + closepath + 2 copy 2 mul gt + { % horizontal 2 copy add currentlinewidth add 10 add % large enough - dup neg 0 moveto - dup 0 lineto - dup 2 index lineto - neg 1 index lineto closepath + 0 1 index neg moveto + 2 index 1 index neg lineto + 2 index 1 index lineto + 0 exch lineto closepath gsave clip newpath - 1 index 2 div 0 moveto - exch currentlinewidth add setlinewidth - 0 exch rlineto + 0 1 index 2 div moveto + currentlinewidth add setlinewidth + 0 rlineto 2 setlinecap stroke grestore } { - pop pop - fill + 2 copy exch 2 mul gt + { % vertical + 2 copy add currentlinewidth add 10 add % large enough + dup neg 0 moveto + dup 0 lineto + dup 2 index lineto + neg 1 index lineto closepath + gsave clip newpath + 1 index 2 div 0 moveto + exch currentlinewidth add setlinewidth + 0 exch rlineto + 2 setlinecap + stroke + grestore + } + { + pop pop + fill + } + ifelse } ifelse + newpath + } + { + 1 setlinejoin + 0 0 4 2 roll 4 copy rectstroke rectfill } ifelse - newpath } ifelse } |