[Pkg-fonts-bugs] Bug#255569: Solved!
Jan Willem Stumpel
jstumpel at planet.nl
Sun Jul 9 15:02:48 UTC 2006
Christian Perrier wrote:
> What I actually don't like in this fix is that it cannot be a
> patch that applies to the fonts source...
It can. Just take the .sfd files for all FreeMono variants and
change all occurrences of Width: 0 to Width: 600 (version cvs-5
did this only for characters whose width is not equal to 600 and
*not* equal to 0). It seems that really *all* characters must have
the same width, in order for a font to be recognised as
monospaced. Let fontforge generate new ttf files. The isFixedPitch
entry in the "post" table will now be *automatically* set to 1, so
ftinfo will give the correct result.
>From the fontforge FAQ
(http://fontforge.sourceforge.net/faq.html#monospace):
"How do I mark a font as monospaced?
You don't. Just insure that all the glyphs in the font have
the same width and then FontForge will automatically mark it
as monospaced for you. [..]
When I say "all glyphs" I really mean all glyphs. Even glyphs
which unicode says should be 0 width must have the same width
as everything else. MicroSoft suggests that GPOS be used to do
accent combination (etc.) and then change the advance width on
any marks (accents) to be 0."
I found that the characters which have Width: 0 in the present
version (the combining accents) do not suffer from having their
width changed from 0 to 600. They still work as combining accents
if they are *single* accents. *Multiple* combined accents
sometimes give problems, so MicroSoft's suggestion may be useful.
But multiple combined accents are a problem anyhow, and they also
do not work 100% correctly with Courier New. I think this problem
can be postponed for the moment.
I might also be a good idea to use fontforge to change the "IBM
family" of the font to "SS typewriter" (element -> font info ->
OS/2 -> IBM family). I do not know if this attribute is used by
any programs, but it seems that all other monospaced fonts have
this set. It can also be set in the .sfd file by inserting a line
OS2FamilyClass: 1285
after the line with OS2StrikeYPos.
Unfortunately, no luck yet (i.e. recognition as monospaced by KDE)
with the same treatment on Luxi Mono.
Regards, Jan
More information about the Pkg-fonts-bugs
mailing list