The quest for the ffi ligature

Posted
January 6 2004

Something that has been a personal annoyance factor in webdesign for many years now, is the fact that the fi, ffi, fl and ffl ligatures are not supported in HTML documents. Other ligatures, like the ae ligature (æ) have been properly supported, while the —for me— most important, have not. I had put it at rest, and got on with my webdesigning life, but I've never really got comfortable with it. The way the the first f seems to be hesitating to touch the next letter, and the eerie white space, are things I will just not take for granted. There has got to be a way.

Today, it really got on my nerves again, and I decided to act to it. The general idea was to add a module to the Document Type Definition. The XHTML1.x DTDs have three entity declarations, being xhtml1-lat1, xhtml1-special, and xhtml1-symbol. Needless to say, non of these contain character data of any of the f ligatures. The ISOPUB Entity Declaration, on the other hand, supports the ffi ligature (ffi), ff ligature (ff), etc. It only seemed logical to add the ISOPUB Entity Declaration to the list of Entity Declarations of the Document Type Definition.


<!ENTITY % isopub PUBLIC
  "ISO 8879:1986//ENTITIES Publishing//EN//XML"
  "isopub.ent"
>
%isopub;

&ffilig; kept being displayed as &ffilig;, so I decided to take a somewhat more drastical step. I decided to write my own tiny little markup language (called ACJ), and write a little DTD for it, with two elements (fi and ffi), and with ISOPUB as its only entity declaration. I then created HTML, XHTML, and XML files with xmlns:acj specified in the html element, and with the following code in the body:


<acj:fi xmlns="http://home.planet.nl/~acjbizar/tests/20040105/omg.dtd">&ffilig;</acj:fi>

Unfortunately, no luck, still. The only thing that seems to be working in at least some browsers is &#x0FB03;... but that appears to be some standard thing, rather than the actual ffi ligature from its parents font family. It causes more trouble than it's worth (it doesn't pay too much attention to CSS, etc).

Argh! I guess I will keep searching...


ACJ