The JunicodeVF Enlarge Axis

Beginning with version 1.010, JunicodeVF (the variable version of Junicode) includes a new axis, Enlarge. This document explains what it is and how to use it.

The character recommendation of the Medieval Unicode Font Initiative (MUFI) includes a class of characters called “Enlarged Minuscules,” for representing characters that are lowercase in shape but intermediate between lowercase and uppercase in size: these are often used to begin sentences in medieval manuscripts. Various early Norse texts in the MENOTA archive use enlarged minuscules in this way. MUFI encodes these characters in the Private Use Area, posing accessibility and searchability problems, as explained in This document.

Junicode provides a solution to these problems via Stylistic Set 6 (“Enlarged minuscules”). SS06 also works in JunicodeVF, which in addition offers a far more flexible way of representing enlarged minuscules—namely, the Enlarge axis.

An “axis” is an aspect of a font that can be varied along a numerical range. A family of traditional fonts like Times New Roman has a weight axis with a font file on either end: Regular and Bold. Other font families have more weights along this axis: for example, Light, Medium, ExtraBold. Most variable fonts also have a weight axis, but all weights are contained in a single file, and users can select any weight between the extremes. In JunicodeVF, for example:

Light
Regular
An arbitrary weight between Regular and Medium
Medium
SemiBold
Bold

JunicodeVF has two axes defined by the OpenType standard: weight and width. You can see how these function on the specimen page, where you can select a weight from Light to Bold and a width from Compressed to Regular (but expanded widths are available as well). Enlarge, on the other hand, is a custom axis: it is not defined in the OpenType standard, but is consistent with and allowed by the standard.

The Enlarge axis affects only lowercase letters. When you vary text along this axis, the overall height of lowercase characters remains constant: the letter b is always the same height. But the width of the character changes, and so does the x-height—that is, the height of the letter x, or of the bowl of the letter b. This axis combines easily with the width and weight axes so that you can select any combination of values, as you can demonstrate to yourself by playing with these sliders, which control the text in the editable box below.

Her Cynewulf benam Sigebryht his rices ond Westseaxna wiotan for unryhtum dædum buton Hamtunscire, ond he hæfde þa oþ he ofslog þone aldormon þe him lengest wunode, ond hiene þa Cynewulf on Andred adræfde, ond he þær wunade oþ þæt hiene an swan ofstang æt Pryfetesflodan, ond he wræc þone aldormon Cumbran. Ond se Cynewulf oft miclum gefeohtum feaht uuiþ Bretwalum, ond ymb .xxxi. wintra þæs þe he rice hæfde, he wolde adræfan anne æþeling se was Cyneheard haten, ond se Cyneheard wæs þæs Sigebryhtes broþur.

The chief advantage of the Enlarge axis, as compared with the “Enlarged Minuscules” Stylistic Set, is its flexibility. Because an a affected by this axis is still simply an a, there are no accessibility issues at all when using it. Further, all a + diacritic combinations are equally affected by the axis: ā ä á. The same OpenType features that apply to a also apply to enlarged a: for example, with cv01[2], aa.

Finally, since lowercase letters are continuously variable along the Enlarge axis, you can scale your enlarged characters however you want, making the effect subtle or obvious: a a a a.

To use the Enlarge axis in a web page, define a class, e.g.

.enl {
  font-variation-settings: "wght" 400, "wdth" 100, "ENLA" 1;
  color: #9b1617;
}

where ENLA is the tag for the Enlarged axis and 1 is the upper end of the Enlarge scale (which runs 0–1). Add any other features you want, e.g. a color; or enlarge the letter further. Then apply the class (probably via the <span> element) to any letter or stretch of text that should be enlarged:

<span class="enl">u</span>re lau͛d iþe godspel

ure lau͛d iþe godspel

At present the Enlarge axis affects only the characters enumerated in the MUFI Enlarged Minuscules set (B.I.3) and a few others: it will eventually affect all lowercase letters commonly used in medieval texts.

Word processors do not yet provide access to the axes of variable fonts, but all major browsers should handle the Enlarge axis (and the other axes of JunicodeVF) correctly. Adobe applications like InDesign, Photoshop and Illustrator also work well with variable fonts.

Junicode/Junicode font copyright © 1998–2022 by Peter S. Baker.

Development site · Specimen Page · Junicode and Searchability

Licensed under the Open Font License, v. 1.1.