Please do not reply directly to this email. All additional comments should be made in the comments box of this bug.
https://bugzilla.redhat.com/show_bug.cgi?id=478332
James Cloos cloos@jhcloos.com changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |cloos@jhcloos.com
--- Comment #1 from James Cloos cloos@jhcloos.com 2008-12-28 11:20:28 EDT --- It is actually worse than that:
:; awk '/WX/ {print $4 " " $5}' urw-fonts/n022024l.afm|sort|uniq -c 544 WX 747 116 WX 774
shows that two widths exist in the metrics in the afm file.
:; t1disasm urw-fonts/n022024l.pfb |awk '/hsbw/ {print $(NF-1)}'|sort|uniq -c 544 579 116 600 1 775
confirms that info. (The one char with width 775 in the font is /.notdef.)
And it is not just bold oblique. Oblique shows:
:; t1disasm urw-fonts/n022023l.pfb |awk '/hsbw/ {print $(NF-1)}'|sort|uniq -c 1 583 1 592 547 598 111 600 1 775
and bold shows:
:; t1disasm urw-fonts/n022004l.pfb |awk '/hsbw/ {print $(NF-1)}'|sort|uniq -c 546 578 114 600 1 775
Only the base face gets it right:
:; t1disasm urw-fonts/n022003l.pfb |awk '/hsbw/ {print $(NF-1)}'|sort|uniq -c 661 600
(Courier is defined to have a width of 600 in 1000 unit/em space; that makes for a 2:1 aspect ratio when set 10/12. Most other monowidth fonts match that width; CMTT is the most prevalent exception, given that it was designed for use in a narrow book page.)
The fix is best started with t1disasm, t1asm and one's choice of sed, awk, perl or a text editor.
In the t1disasm output, do:
s/\d+ hsbw/600 hsbw/
then bump the font’s version and then use t1asm to convert that back to a pfb.
For the afm files, it is:
s/ WX \d+ / WX 600 /
and a similar bump to the Version: line. (Yes, the afm files for Nimbus Mono are completely screwed if it is supposed to be Courier-compatible.)
That might leave some glyphs uncentered. If so, a bit of tweaking will be necesary. A quick check, however, using ftview suggests that the above changes are enough.