Joe (et al.) I have made a copy of FreeMono that has mostly characters all of the same width, but some diacritical marks of zero width, and done some experiments to see how well it works.
At this point, I am leaning toward making the combining diacritics in FreeMono to be of zero width, and advising Windows users to install the OpenType versions. This seems to solve several problems. Please let me know of any objections. The issues ========= The zero-width characters are desirable for applications that do a brain-dead form of glyph positioning: the technique make the diacritical mark zero-width, and put its rightmost side on the negative side of 0, and then... it appears over the preceding character (maybe, if the character is short enough, etc). Modern typographical systems have much better positioning mechanisms, such as placing alignment points in the description of the characters and diacritical marks. But many modern apps don't use these features. HOWEVER, FreeMono, and other monospace fonts ought to have characters all of the same width. And many applications that require monospace fonts will refuse to recognize any font whose character widths vary. It occurred to me there might be a loophole. Maybe it would be OK for some characters in an otherwise "monospace" font to have exactly zero width. Experiments =========== Linux ------- Both gedit and kedit are both happy with monospace fonts that have zero width characters, and play well with them. Xterm doesn't seem to notice (although I still haven't got Joe's stargate example to display the diacritics properly). I have also recently checked: just one character of nonzero width different from the normal width will cause kedit to ignore it . Firefox also sees such fonts as being monospace. Windows ------------ The situation is more complicated, depending on whether the font is installed as TrueType or OpenType. PuTTy, gVim, Firefox: only see such fonts as monospace if loaded as OpenType. The TrueType version can be loaded and used, but I have never seen it regarded as monospace. Cheers! > > > > 2) Combining accents don't work as you expect > > > > Not only do combining accents not work as I expect, they are currently > > completely broken and do not work as anyone should expect. Or at > > least they are completely broken in xterm. Since all other fonts that > > support combining accents that I can test right now work with xterm > > (e.g., DejaVu Sans Mono, Lucida Sans Typewriter, CMU Typewriter Text), > > I just tried this. > > In my xterms, on my Ubuntu gutsy system, DejaVu Sans Mono also doesn't > work on your combining diacriticals test. I opened it up with > FontForge. It works the same way FreeFont does. > Lucida Sans Typewriter doesn't have combining diacriticals in the > range in your example. Something is probably pulling these out of > other fonts on your system. (However, it does contain glyphs of zero > width: combining marks in Hebrew, it seems...) > I don't have CMU Typerwriter Text... > I have a Windows system...and here's Courier New. And it seems to > have glyphs of all uniform width, and it doesn't work with your > example. > > And...your example also doesn't work with FreeFont of the last 2006 release. > But it does work with the 2003 release. > > So now it is clear to me what is going on. The combining diacritic > glyphs in the 2003 release are of zero width, as in the Serif and Sans > faces. The more recent releases have glyphs all of a single width. > > I can make combining diacritcs work by making them zero width, as in > the other faces. But a decision was made years ago in FreeFont that > this was a bad idea, that unless the characters were all the same > width, it would not be regarded as a fixed-width font by many > applications that require fixed-width fonts. > > It has occurred to me that these applications may accept a font that > has all characters of a single width, except perhaps a few of width 0. > But this will take some testing to determine. > >