Fonts and faces
How AppliedFont names a font family and FontStyle a face, how InDesign spells them, and why Fonts.xml lists a document's fonts without containing any.
A run names its typeface in two parts: AppliedFont is the family and FontStyle is the face within it.
In short AppliedFont names a font family, such as Minion Pro, and FontStyle names a
face of that family, such as Bold or Semibold Italic. Both can be set on a run, a character
style or a paragraph style, and resolve like any other attribute. InDesign writes AppliedFont as
a typed <Properties> child and FontStyle as an attribute. An IDML package contains no font
data: Resources/Fonts.xml lists the fonts the document uses, so that the application opening
it can tell which are missing.
How InDesign spells the font
On a <CharacterStyleRange>, a <CharacterStyle> or a <ParagraphStyle>:
<Properties><AppliedFont type="string">Minion Pro</AppliedFont></Properties>— the family;FontStyle="Bold Italic"— the face, as an attribute.
InDesign ignores an AppliedFont attribute: a run or style that names its font only that way
opens in the default face. In the census of real documents, paragraph styles carry
AppliedFont as a <Properties> child in 271 documents.
The face name is the font's own style name, so it varies between families: Bold, Black,
Semibold Condensed, 75 Bold. A run that names a face the family does not have is a missing
font, exactly like a missing family.
| Attribute · CharacterStyleRange | Values | Paged | paged.set |
|---|---|---|---|
| AppliedFont | ref | read · written | characterFontFamily |
| FontStyle | text | read · written | characterFontStyle |
| PointSize | length (pt) | read · written | characterFontSize |
Fonts.xml lists fonts, it does not contain them
Every package has a Resources/Fonts.xml part, referenced from the
design map as idPkg:Fonts. It holds one
<FontFamily> per family and, inside it, one <Font> per face the document uses, with the face's
Name, PostScriptName, FontStyleName, FontType and Status. Status records whether the
face was installed when the file was written; the census of real documents shows
Installed, Substituted and NotAvailable.
| Attribute · Font | Values | Paged | paged.set |
|---|---|---|---|
| FontFamily | enum / text | written | |
| FontStyleName | enum / text | written | |
| FontType | OpenTypeCFF | OpenTypeCID | OpenTypeTT | TrueType | written | |
| Name | text | written | |
| PostScriptName | builtin / enum / text | written | |
| Self | Font reference | written | |
| Status | Installed | NotAvailable | Substituted | written | |
| FontStyleNameNative | enum / text | written |
Fonts.xml also holds <CompositeFont> definitions. A composite font, common in Japanese
layouts, combines faces per script under one name: Latin letters from one face, kana and kanji
from another. A run applies a composite font through AppliedFont like any family.
When an application opens a package, it looks the families and faces up among its own installed
fonts. A face it cannot find is reported missing and set in a substitute. Fonts packaged next to
a document by InDesign's Package command sit in a Document fonts folder beside the .indd or
.idml, not inside the package.
In Paged: a face is looked up among the fonts the host registered, by family and style name: first the exact family and style, then the family alone, then a configured default font. A
FontStyleofRegularlooks up the bare family.Fonts.xmlis not read, composite fonts are not supported, and a missing bold or italic is not synthesised: the run takes whichever face the lookup finds. Supported · verified
Frequently asked questions
What is the difference between AppliedFont and FontStyle?
AppliedFont is the family (Minion Pro); FontStyle is the face within it (Bold Italic).
Together they name one font.
How should I write the font in IDML so InDesign reads it?
As a typed child: <Properties><AppliedFont type="string">Minion Pro</AppliedFont></Properties>,
with FontStyle as an attribute. InDesign ignores an AppliedFont attribute.
Does an IDML file contain the font files?
No. Resources/Fonts.xml lists the families and faces the document uses, with their PostScript
names and status, but no font data. The application that opens the file uses its own installed
fonts.
What is a composite font?
A font defined in Fonts.xml that combines several faces under one name, one per script, so that
Latin text and Japanese text in the same run come from different faces.
Typography
What IDML's typographic attributes mean — fonts, spacing, OpenType features, composition, drop caps, tabs, lists, keeps and columns — and where each one is set.
Spacing and leading
Tracking and kerning (KerningMethod as $ID/Metrics, $ID/Optical or $ID/None, KerningValue), Leading and auto leading, baseline shift, scaling and skew.