Table of Contents

Enum OpticalSizing

Namespace
Egami.Fonts
Assembly
Egami.Fonts.dll

Whether a Font sets a variable font's optical size axis from its size.

public enum OpticalSizing

Fields

Auto = 0

The opsz axis follows the font size in canvas units, clamped to the axis, unless the typeface sets opsz itself.

None = 1

The typeface's opsz position is used as it is.

Examples

// A variable font's axes and named instances, and the face at any position on them.
Typeface flex = Typeface.FromFile(VariableFile);
foreach (VariationAxis axis in flex.VariationAxes)
{
    Console.WriteLine($"{axis.Tag} {axis.Name}: {axis.Min} to {axis.Max}, default {axis.Default}");
}

Typeface semiBold = flex.WithVariations(FontVariation.Weight(600), FontVariation.Width(90));
Typeface black = flex.WithNamedInstance(flex.NamedInstances.Count - 1);

// The optical size follows the font size unless the face sets it (OpticalSizing.None turns that off).
var caption = new Font(semiBold, 11);
Typeface drawn = caption.EffectiveTypeface;

// For a PDF, the subset is a static font at the face's position, which every viewer draws as it is.
FontSubset subset = FontSubsetter.Subset(semiBold, caption.Shape("Static at 600").Glyphs.ToArray());