truetype - Difference between OTF (Open Type) or TTF (True Type) font formats?

08
2013-08
  • Rich Bradshaw

    On a Mac, when I'm downloading fonts am often given the choice between OTF (OpenType Format) and TTF (TrueType Format).

    Is there any difference in the way ligatures work or anything between the two formats?

  • Answers
  • bobince

    OTF is more likely to be a “better” font, as it supports more advanced typesetting features (smallcaps, alternates, ligatures and so on actually inside the font rather than in fiddly separate expert set fonts). It can also contain either spline (TTF-style) or Bezier (PostScript Type 1-style) curves, so hopefully you're getting the shapes the font was originally designed in and not a potentially-poorer-quality conversion.

    On the other hand, if you're downloading free fonts from shovelware sites, you're unlikely to get any of that. Indeed, you may simple be getting a TTF font renamed to OTF.

  • Electrons_Ahoy

    OTF is a more recent format than TTF, so OTF has some features that TTF doesn't. (Which is a moot point if the font's creator didn't use them.)

    One note from personal experience however: depending on what you're going to be doing with these fonts, I've found it's much easier to get tools that work with TTF as opposed to OTF. If you're just using them for desktop publishing / word processing, either will work fine, but if you're going to be doing anything programmatic, I'd recommend TTF just due to the higher number of tools / libraries out there.

  • Debilski

    Please note that when file endings are converned, both .otf and .ttf may denote fonts in the OpenType format. (See OpenType in Wikipedia – actually, this is more accurately pronounced in the German version.)

    This comes a little confusing as some .ttf font files may look as if they are in legacy ANSI-Windows TrueType format, whereas in fact they may be full featured OpenType fonts.

    The main difference between both flavours being that .ttf style fonts use quadratic Bézier splines whereas .otf style fonts use cubic Bézier splines. (Historically, quadratic Bézier curves have been used for the ‘legacy’ TrueType format; cubic Bézier curves have come from a PostScript background.) Cubic Béziers are potentially more accurate (every quadratic Bézier curve can be exactly reproduced with a cubic Bézier curve) but may be approximated with smaller segmented sequences of quadratic Béziers. (Also note that neither cubic nor quadratic Bézier splines may exactly reproduce a circle. There is always some approximation error.)

    Another minor difference in the specification seems to be that ttf flavoured OpenType fonts may address the same glyph with several code points. Therefore, this saves some space, if e.g. the upper case versions of b, β and в (read: latin, greek and cyrillic ‘B’) have the same shape.

  • Fabrizio

    I don’t agree with those who say it is best format OTF. TTF format offers the possibility at the designer of treat more thoroughly the details of the rasterization on screen and in print (if the designer knows how to do it)


  • Related Question

    Installing Microsoft ttf fonts on Ubuntu
  • therefromhere

    I want to install a Microsoft Vista TTF font (lets say Consolas), on Ubuntu 9.04 (Jaunty Jackalope).

    How do I go about doing that?


  • Related Answers
  • Diago

    This article explains how to install the Microsoft fonts on Ubuntu step by step. It's part of the Universe repository.

    This article explain how to install the Vista fonts which includes Consolas on Ubuntu. You need to extract the fonts from the Microsoft Powerpoint Viewer.

  • therefromhere

    If you've got a Windows machine handy (IANAL but I think you need a Vista licence in order to legally use the Consolas font), copy the file somewhere convenient.

    Then in a terminal:

    sudo cp *.ttf /usr/local/share/fonts
    cd /usr/local/share/fonts
    sudo chown root:root *.ttf
    sudo fc-cache
    
  • Kirill

    Check out this script.

    winetricks is a quick and dirty script to download and install various redistributable runtime libraries...