Version 5.5.22

LoadFontfile

Load a font file (.otf, .ttf, .pfb) and associate it with an internal name. If a glyph is not found in the font file, an error will be raised (this can be configured via the Options command). You can specify fallbacks as a child element of Loadfontfile.

Child elements

Axis, Fallback

Parent elements

AtPageCreation, AtPageShipout, Case, Contents, ForAll, Include, Layout, Loop, Otherwise, Record, SavePages, Section, Until, While

Attributes

features (text, optional, since version 3.9.29)
A comma separated list of OpenType features, such as +liga,-kern
filename (text)
The name (with extension) of the font file.
marginprotrusion (0 up to 100, optional)
The amount of protrusion glyphs like -, . and - stick into the right margin. Defaults to 0. The value is multiplied with 0.001em from the current font, so a setting of 200 allows these characters to stick out of the margin 0.2em.
mode (optional, since version 3.9.29)
Set the shaping mode of the font. Defaults to harfbuzz.
  • fontforge: The old font handler. Renders western scripts, but no right-to-left or other complex scripts.
  • harfbuzz: The renderer that handles all scripts including right-to-left (default).
name (text)
The internal name of the font file. To be used within DefineFontfamily.
oldstylefigures (optional)
Use oldstyle figures if the font includes them. (OpenType feature “onum”)
  • yes: Use oldstyle figures.
  • no: Use lining figures.
shrink (number, optional, since version 4.19.17)
Set the maximum shrinkage factor of the fonts. Default is disabled. Values divided by 10 = percent. For example 20 means shrink by maxium of 2%.
smallcaps (optional)
Use small caps glyphs when the font supplies them.
  • yes: Use small caps for this font.
  • no: Don’t switch to small caps (default).
space (0 up to 100, optional)
The natural width between words. Can be stretched by 30% and shrunk by 10%. Defaults to 25. The value is a percentile of the font size.
step (number, optional, since version 4.19.17)
Set the step values for shrinkage / stretching. Value divided by 10 is step in percentage. For example: a value of 20 means increase / decrease size in 2% steps. Default 10.
stretch (number, optional, since version 4.19.17)
Set the maximum stretch factor of the fonts. Default is disabled. Values divided by 10 = percent. For example 20 means stretch by maxium of 2%.
weight (number, optional, since version 5.5.12)
Set the weight axis (wght) of a variable font. This is a shortcut for using the Axis child element with name="wght". Common values are 100 (Thin), 400 (Regular), 700 (Bold), 900 (Black).
width (number, optional, since version 5.5.12)
Set the width axis (wdth) of a variable font. This is a shortcut for using the Axis child element with name="wdth". A value of 100 is normal width, lower values are condensed, higher values are expanded.

Example

<LoadFontfile name="Helvetica" filename="texgyreheros-regular.otf" />
<LoadFontfile name="Helvetica Bold" filename="texgyreheros-bold.otf" />
<LoadFontfile name="Helvetica Italic" filename="texgyreheros-italic.otf" />
<LoadFontfile name="Helvetica Bold Italic" filename="texgyreheros-bolditalic.otf" />

<!-- Variable font with weight shortcut -->
<LoadFontfile name="MyFont Regular" filename="MyFont-Variable.ttf" weight="400" />
<LoadFontfile name="MyFont Bold" filename="MyFont-Variable.ttf" weight="700" />

<!-- Variable font with generic axes -->
<LoadFontfile name="MyFont Custom" filename="MyFont-Variable.ttf">
  <Axis name="wght" value="600" />
  <Axis name="wdth" value="75" />
</LoadFontfile>

Info

The fonts are optionally taken from the local search path. On Windows the path %WINDIR%\Fonts (usually C:\Windows\Fonts) and on Mac OS X the paths /Library/Fonts and /System/Library/Fonts can be used as fallbacks for fonts. This can be configured with the setting fontpath.