Font Variant: Caps & Numerals

PeachPDF prefers a font's real OpenType GSUB substitution for font-variant-caps and font-variant-numeric, falling back to a synthesized approximation only where the standard specifically allows one.

font-variant-caps: real GSUB vs. synthesized fallback

Source Sans 3 has real smcp/c2sc/titl data, so its small-caps/all-small-caps/titling-caps below use actual substituted glyphs and the text stays a single run. Source Code Pro has none of those features, so the same CSS instead synthesizes small-caps/all-small-caps by upper-casing and shrinking the affected letters - petite-caps/unicase never synthesize, so on a font that lacks them (both bundled fonts here) they render identically to normal text.

font-variant-capsSource Sans 3 (real GSUB)Source Code Pro (synthesized/none)
small-capsHello WorldHello World
all-small-capsHello WorldHello World
titling-capsHello WorldHello World
petite-capsHello WorldHello World

font-variant-numeric: real GSUB numeric substitution

Source Sans 3 has real onum/tnum/zero data - oldstyle figures use lowercase-height/descending forms instead of the default lining figures, tabular figures fix every digit to the same advance width for column alignment, and slashed-zero adds a distinguishing slash through the digit 0.

font-variant-numericSample
normal (lining, default)1234567890
oldstyle-nums1234567890
tabular-nums1234567890
slashed-zero1002000