ppmraw -r300 CAT_LOGO.ps - a line width is bigger in a Type 1 stroked Reported by Julia as a regression from Dec 09, 2003. Reproduced by Igor with today's CVS HEAD This is moved from bug 687582, which inaccurately grouped 2 different problems.
Created attachment 897 [details] Altona-Testsuite_p2_S_x3-.pdf A reduced test file with a single JPEG inage.
Comment on attachment 897 [details] Altona-Testsuite_p2_S_x3-.pdf Oops, I've attached it to a wrong bug. Please ignore.
By my computation, the line width must be StrokeWidth * FontMatrix * CTM * HWResolution / 72 = 20.48 * 0.052734375 * 0.24 * 300 / 72 = 1.08 pixels. GS renders it with 2 pixels width.
It applies fill adjustment to the stroked path, but the stroked path is a 'linewidth' wide area. Likely fill adjustemnt must be zero. With GS_7_0X it is zero.
Well, in GS_7_0X, igs->fill_adjust is set by gs_type1_endchar as a hack agains the emboldness. Later we dropped that hack, and now fill adjustment uses the default value, which is "any part of pixel inside" emulaton. We definitely should set it to 0 when stroking a character. The question is whether to set it to 0 for any stroking, and whether to do it before or after 8.50 release.
With regular "stroke" operation, GS_7_0X sets fill_adjust equal to 0.5 pixels. We beliebe it should be zero since the path accounts the line width precisely.
We did some experimenting with CPSI about stroking lines, which are not within a font character. With "false setstrokeadjust" it rounds the width to pixels, then applies the "any part of pixel inside" rule. With "true setstrokeadjust" it rounds the width to pixels, then applies the "pixel center inside" rule. In any case, likely it never paints a fractional width, but need to test more for sure. For now, I'll fix the line width in fonts. I'll open an enhancement for tracking the rest of the issue.
See bug 687715 about non-character strokes.
Patch http://www.ghostscript.com/pipermail/gs-cvs/2004-September/004893.html