Skip to content

Language Archiving Technology

Sections
Personal tools
You are here: Home » Tools » Elan » ELAN Forum » Font rendering problems on Mac OS X

Font rendering problems on Mac OS X

Up one level

Font rendering problems on Mac OS X

Posted by jcrippen at 2010-07-24 02:59  
As before, I’m using Mac OS X 10.6.3, and Elan 3.9.0. In this version of Elan, as well as in a few previous versions, font rendering is misbehaving somewhat. It’s easier to show in pictures than describe, but I’ll try to describe what is happening as well. Normally fonts appear “smoothed”, that is rendered with antialiasing. However when editing text that contains non-ASCII Unicode characters Elan instead displays the text with obviously non-antialiased jagged glyphs. This seems to be a property solely of Elan, it doesn’t occur in any other applications on Mac OS X with the same fonts. Also the bug is not discriminating, it seems to apply to all fonts. I’m not entirely certain if it only occurs with certain non-ASCII Unicode characters or to everything non-ASCII, but it definitely doesn’t occur with ordinary ASCII characters. This isn’t a fatal bug, but it is a bit of a nuisance. There is another problem with text rendering that is probably not the fault of Elan since I’ve seen it in a few other apps on Mac OS X. It is perhaps due to the different text renderers that Apple provides. In Elan, when I use the letter “g̱” (U+0067 LATIN SMALL LETTER G and U+0331 COMBINING MACRON BELOW) the diacritic is not properly positioned below the descender of the “g”, but instead overlaps with the descender making it almost impossible to see. This again isn’t a fatal bug, but it’s more serious in that I can’t actually tell the difference between “g” and “g̱”, which is an essential distinction in a number of orthographies in the Pacific Northwest. (Don’t blame me, blame the typewriter.)
  • Ordinary text:
  • Inline edit, default sans:
  • Inline edit, Charis SIL:
  • Window edit (Opt+M “Edit annotation”), normal:
  • Window edit, not antialiased with non-ASCII:
  • Misbehaving U+0331:

Re: Font rendering problems on Mac OS X

Posted by jcrippen at 2010-08-04 01:46  
I think I figured out the basic problem. A post on Tor Norbye’s blog explains a similar problem with NetBeans. The solution is adding -Dapple.awt.graphics.UseQuartz=true to tell Java to use the Quartz renderer, which apparently has been disabled in Mac OS X 10.6 due to complaints about differences between appearance of Java apps on the Mac versus on other operating systems. I don’t think Elan users care too much about that. The solution for Elan is apparently:
  1. Make sure Elan is not running.
  2. Right click (or Ctrl+click) on the “ELAN 3.9.0.app” file.
  3. Select “Show Package Contents”.
  4. In the new window, open the “Contents” folder
  5. Open the file “Info.plist” in your favorite text editor, or use the Property List Editor if you have the Apple developer tools (e.g. XCode) installed.
  6. In the section called “VMOptions”, beneath the line containing -Djava.library.path=lib/cocoa_qt/1.4:extensions:$java.library.path add the following:
    • -Dapple.awt.graphics.UseQuartz=true
  7. Start Elan and if it breaks you get to keep both pieces.
It should “just work”. Fonts will be rendered on the screen in a somewhat heavier weight, in my experience. But more importantly, they will always be antialiased and will appear as expected. This does not solve the problem with diacritic placement below descenders like “g̱”. That is presumably a text rendering bug which is probably in either the Java implementation or perhaps deeper in Mac OS X. It probably has to do with the different renderers used for Cocoa versus non-Cocoa apps.

Re: Re: Font rendering problems on Mac OS X

Posted by hasloe at 2010-08-04 11:35  

Thanks for this information.
I think you're right with respect to the rendering problems of the diacritic(s); this is part of the Java implementation. I don't have the impression that the situation on Windows is much better.

-Han

 

Powered by Plone

This site conforms to the following standards: