summaryrefslogtreecommitdiff
path: root/ps
diff options
context:
space:
mode:
authorDavid Kastrup <dak@gnu.org>2013-04-23 16:49:19 +0200
committerDavid Kastrup <dak@gnu.org>2013-12-07 12:48:17 +0100
commit967416b80210725e3243071ff3fb6b867ed255f2 (patch)
tree412b188e637e998bd68f03986682581ff3f75360 /ps
parent6bf9a5a3dbcabff297d5bcdb3cf1dffd0885cbbc (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.ps75
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
}