TTF vs OTF: the differences that actually matter
TTF and OTF differ in one thing — the outline engine inside — and everything practical follows from it. A plain-language comparison, with a decision rule.
TTF and OTF differ in one thing — the outline engine inside — and every practical difference follows from it. Both are OpenType table containers, both can carry the same layout features; the split is TrueType's quadratic curves versus CFF's cubic curves. Pick the wrong one and nothing breaks — but you make life harder for whoever (or whatever pipeline) touches the file next.
The core difference
| | TTF | OTF |
| --- | --- | --- |
| Outline curves | Quadratic Béziers | Cubic Béziers |
| Outline table | glyf + loca | CFF |
| Hinting | Bytecode instructions | Coarser, rasterizer-driven |
| Curve math lineage | Apple / TrueType | Adobe / PostScript |
| Typical home | Systems, devices, UI fonts | Print, foundry, pro typography |
Curves
A quadratic curve uses one control point; a cubic uses two. Cubics can describe certain curves (notably near-circles) with fewer segments; quadratics are cheaper to rasterize and simpler to manipulate programmatically — which is why subsetting pipelines often normalize to TrueType outlines.
Converting between the two is lossless in one direction only: quadratic → cubic is exact; cubic → quadratic approximates.
Hinting
TrueType carries a small bytecode program per font that nudges outlines onto the pixel grid at small sizes. CFF hinting is simpler, and modern rasterizers do more of the work themselves — one reason hinting matters less than it did in the 1990s.
Layout features
OpenType layout tables (GSUB/GPOS — ligatures, kerning, alternates) live
alongside either outline engine. A modern TTF can carry the same features
as an OTF; only very old TTF files tend to lack them.
Which should you use?
- Installing on devices → TTF is the safe default
- Print / professional publishing → OTF
- Web → neither directly: wrap in WOFF (or WOFF2, where available), which happily carries either outline engine
- Programmatic editing → TTF's
glyfis easier to transform
Converting between them
Because the curve math differs, TTF↔OTF conversion is a real outline conversion, not a rename: curves are translated engine-to-engine, composite glyphs are flattened on the TrueType side, and the outline tables are rebuilt. Shapes match to the eye, with at most sub-pixel rasterization differences at small sizes.
Font Studio does this conversion on device, with a per-item report of what carried over and what was dropped. WOFF conversions, by contrast, are pure re-packaging — the outlines are untouched.
One workflow detail worth knowing when editing: OTF files opened for editing have their CFF outlines converted to TrueType form — so an edited "OTF" keeps its container and name, but its outlines come out TrueType.
See it for yourself
The fastest way to internalize the difference is to open one of each in the Font Inspector and compare what the file declares — the outline tables, the hinting tables, the metrics. Table-by-table background is in the OpenType tables reference.
What to try next
- Need TTF→WOFF for a website? How to convert TTF to WOFF
- Full format references: TTF and OTF in the docs
Full documentation
