My university name is "FJFI", with e-mail/web addresses containing lowercase "fjfi". Then "fi" gets ligatured whereas "fj" does not, and the result looks a bit strange. My question is, which possibility would you choose:

  1. Leave it as is.
  2. Forbid ligature for "fi".
  3. Generate/define a ligature for "fj". (With an extra question: how?)
  4. Some other solution?

Below you see the shapes in Computer Modern and New Century Schoolbook, the second one is with forbidden ligature (for comparison).

"fjfi" in different fonts

  • 3
    My suggestion would be 4.: Look for a font that does have the fj ligature (a few do) and use that. You're right, the result does look strange as it is now.
    – Thomas
    Feb 28, 2012 at 14:01
  • @Thomas Any suggestions for such fonts? I prefer cmr for math texts and I would like not to change this, but I'm open to any ideas ;)
    – yo'
    Feb 28, 2012 at 14:02
  • @AndreyVihrov Since it is an isolated problem for me (only "fjfi" is the issue), I'm open to use it in the form \charXYZ, just I cannot find the symbol in my LaTeX fonts...
    – yo'
    Feb 28, 2012 at 14:11
  • 22
    Being an acronym, I'd suggest breaking the fi ligature. Using a fixed width font for email addresses guarantees this.
    – egreg
    Feb 28, 2012 at 14:35
  • 3
    @tohecz Difficult to say, of course, without knowing the context of your use, and without having a really knowledgeable person look at it (I'm a bloody amateur myself). But just to answer your question and give you a few ideas: the following fonts have 'fj' ligatures - I checked in fontforge. (The question how you would use these ligs in TeX is of course left as an exercise to the reader...): Adobe Garamond, Adobe ArnoPro, Linux Libertine, Storm Baskerville. Another possibility, of course: use a font where the ligature isn't needed because there is no clash...
    – Thomas
    Feb 28, 2012 at 16:55

3 Answers 3


Here's a horrible, completely wrong way to get a "fj" ligature that will only work with Computer Modern. A proper way to solve the problem would be to get (or create) a font that has the ligature. Latin Modern may have this ligature in the future.



  % Use the 'fi' ligature
  % Erase the 'i' part
  % Overlay a dotless j instead
  % Kern back a little




enter image description here

  • 3
    +1 - first I saw the image and the reaction was shudder. Then I read your introduction and was delighted to have this disclaimer. Otherwise: very nice solution.
    – topskip
    Feb 28, 2012 at 14:42
  • Thanks, I thought of hacking the fonts this way and your work is just perfect, mainly because it can be adapted to other fonts as well by changing the dimensions slightly.
    – yo'
    Feb 28, 2012 at 15:12

As per Andrey's comment, I formulate this as an answer: I see two ways you could go:

  1. Use a font where "fi/fj" don't clash and which doesn't need the ligatures. Two examples that come to mind are Palatino/TeXGyre Pagella or Gentium.
  2. A number of fonts have the fj ligature. A quick look at some of the fonts I have here brings up as professional fonts: Adobe Garamond Pro and Garamond Premier Pro, ArnoPro, MinionPro, or Storm Baskerville, and free fonts: Linux Libertine, Xits.

Just to give you an idea: in ConTeXt mkiv, using this ligature is as simple as this:





{\it fifj}

{\bf fifj}

{\bi fifj}


Which looks like this:

ligatures in Minion

  • Thanks for the list of fonts, it is very useful! However, I don't plan to switch to ConTeXt.
    – yo'
    Feb 28, 2012 at 22:04
  • 1
    @tohecz If you have a proper OT-font or are willing to add the OT-features for fj yourself, XeLaTeX will also use it without too much relearing. If you don't want to or aren't allowed to mess with the font itself, you could use a font-mapping scheme, cf fontspec's manual section IV.12.1 to get fj replaced with the proper ligature while typesetting.
    – Florian
    Jun 26, 2012 at 12:40

"fj" should absolutely be typeset with a ligature (for these fonts). The reason it is not is simply because "fj" is very uncommon in English.

In Garamond "fj" looks horrible.

  • 6
    unicode hasn't got an "fj" ligature either, although it has "st" with both long and short s, but no "ct". of course, these few ligatures are only there for "compatibility" reasons with grandfathered character sets, and are pretty much deprecated. this is considered a typographical, not a coding, matter. unicode technical report #17 deals with this in a way that just about guarantees that use of the (also deprecated) private use area is unavoidable. Feb 28, 2012 at 14:31
  • I don't see how it "guarantees that use of the private use area is unavoidable" - fonts aren't required to assign code points to all their glyphs.
    – Random832
    Feb 28, 2012 at 19:53
  • 1
    @Randolph832 -- no, fonts aren't required to assign code points to all glyphs, but each glyph does have to have some id plus attributes that make it uniquely identifiable, and if a font claims to be based on unicode, for a ligature that isn't an alternate for a single other glyph with a distinct unicode, the pua is the most obvious approach. what alternatives are you thinking of/recommending? Feb 28, 2012 at 21:04
  • 2
    @tohecz The symbols like "fi" in unicode are only there because they were present in older encodings (like adobe or apple) that had more limitations. Modern systems don't need a "fj" character to have a "fj" glyph in the font. If they were absent, we could still have a "fi" ligature that is only used by using the two letters normally.
    – Random832
    Mar 19, 2012 at 20:24
  • 2
    @barbarabeeton why do glyphs have to be identified based on unicode (or pua) at all? I'm saying each glyph could have an arbitrary id (a=1 b=2 c=3 d=4 e=5 f=6 fi=7 fj=8 g=9, say), some of these are mapped to code points (but not fj), and some are in the ligature table (both fi and fj). There doesn't need to be an "alternative", because the need to have a code point to identify it doesn't exist at all.
    – Random832
    Mar 19, 2012 at 20:27

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.