Mac Musings

Cocoa Ligature Behavior Can Drive You Crazy

Daniel Knight - 2006.05.03, updated

Have you ever run into a computing problem you just couldn't solve? You use Apple's help. You Google. You go to Mac OS X Hints. You search Macintouch. And you learn a lot, get some promising leads, but finally come up dry.

I've been having one of those problems for 2-3 months now, and I've been unable to figure out how to fix it. I'm hoping some Low End Mac reader can help.

Ligatures

That problem has to do with ligatures, a typographic term for special characters such as substituting fi for fi and fl for fl. In some apps - but far from all of them - one of my two work Macs automatically replaces certain letter combinations with these ligatures. (I used to work with text as a book designer, otherwise I wouldn't even know the terminology.)

I first noticed this when using GyazMail, my email app of choice, on my eMac. Every time I'd type "fi", it would substitute "fi" - and in a slightly different font at that (I use Lucida Sans as my default font in GyazMail, and this font has no ligatures). Another oddity is that these programs started using smart (curly) quotes at the same time as the ligature problem popped up. But only on my eMac; never on my Power Mac.

Font panelI eventually discovered several Cocoa apps, such at Text Edit, were doing the same thing. Some of these apps let me disable ligatures in the Font panel (cmd-T, click-hold the gear icon, choose Typography), something I did learn how to do through my Google searches. But GyazMail, as a plain text email program, has no Font panel where I can change this setting, nor does it inherit changes made in other programs.

Plain Text Email

The reason this is a problem isn't simply that it's disconcerting to see your computer change your text like this, but that I'm a firm believe in plain text email. That's one of the reasons I chose to use GyazMail in the first place; it has great plain text support. (It was also far more responsive than Apple's Mail in those days. Additionally, it has built-in support for SpamSieve.)

Ligatures are not plain text....

Ligatures are not plain text, so I keep getting warning messages that GyazMail has to use the UTF-8 (Unicode) character set. That can cause problems for recipients using older email clients. This being Low End Mac, we do have people still using Claris Emailer, classic versions of Eudora, etc.

How Do I Fix This?

As you may have guessed, I'm working on my eMac this week, and I'm tired of this ligature problem. I'm asking for help, because I've exhausted my resources. And I promise to share the solution here, because I'm sure I'm not the only person who has experienced this problem.

As far as I know, I didn't do anything to enable this behavior, and it only applies to Cocoa apps. It only impacts my eMac, despite the fact that the Power Mac's hard drive was cloned from the eMac's hard drive. And the problem only popped up 2-3 months ago, about the same time as the OS X 10.4.5 update.

UPDATE: see Inexplicable Cocoa Ligature Problem Solved!