A monospace that looks like a proportional
Canonical
on 14 September 2011
Tags: Design , font , Future , typography , Ubuntu
To join the Ubuntu Monospace beta and give feedback, apply to the ubuntu-typeface-interest team on Launchpad and follow the PPA instructions after being accepted.
Timeline
Hardly a day has gone by in the last six-months without the design team being asking when the Ubuntu Mono monospace is going to be available. Like all of the work on the Ubuntu Font Family, the monospace has been working its way through the phased testing process, gradually being made available to more users, as issues are improved and developed. It’s now at the state where it’s ready to share with the early-access beta team. Depending on how many issues are found it can then proceed to being released via font.ubuntu.com and then finally into a future version of the Ubuntu operating system.
Development on the Ubuntu Mono started back in August/September 2010 with Amélie Bonet at Dalton Maag taking the lead. The Ubuntu Mono consists of four fonts: regular, bold, italic and bold-italic. The full set are true monospace fonts, each character being exactly 0.5em wide and 1.0em high, regardless of the weight. Just like a typewriter there are 12 characters per inch at 12 point. On a typewriter or line-printer, creating “bold” is a matter of printing over the top, building up the ink but keeping the same spacing. The Ubuntu Mono Bold follows this principle.
What took so long?
Making a font takes a really long time, for Ubuntu Mono it has also been necessary to re-learn and re-discover much of a lost-art behind monospace font design; hopefully the experiences from the development (recorded in the bug tracker and design blog) will help others working on monospace development in the future.
In a variable-width font, the letters ‘m’ and ‘w’ are much wider than the letters ‘i’ or ‘l’ leading to two problems. The wider characters must be squeezed to fit, and the narrow characters bulked-out to fill the space. Out of all of these, the Latin ‘i’ and ‘m’ have taken the most time, with many experiments run over several months to try and discern a solution (a compromise is going to be necessary somewhere).
To serif or not to serif?
- Ubuntu Regular (proportional) on the top line, notice the ‘m’ and ‘@’, both much wider than the versions below. In a proportionally-spaced font the designer has a wide array of options in terms of setting the advance-width of a character, or optimising the kerning by setting customised spacing for certain pairs of letters next to each other (‘AV’, ‘Te’)
- Ubuntu Mono Regular (fixed-width) in the middle, making characters work is not just a case of squeezing harder! One needs to find a designed alternative: the ‘m’ has a raised middle stem helping to keep the sensation of lightness and space, and for the at-sign (‘@’) the surrounding circle does half a revolution less, leaving the ‘a’ at the top instead of the bottom.
- Ubuntu Mono Italic (fixed-width) at the bottom, is not just a slanted version of the monospace. The ‘a’ becomes single-storey matching the proportional italic and the letters ‘a’ ‘d’ ‘u’ gain tails in Latin. In Cyrillic Kursive (italic) the character forms often change completely.
The main Latin-based characters that vary are "j1flirt"
. In the end the ‘r’ was finalised without needing a serif, but the other glyphs have been provided with serifs of some form in order to “fill out” the whole of the cell in which they sit: the numeral ‘1’ has a slab serif across the bottom, and for ‘f’ and ‘t’ the cross-bar goes the full width across instead of just the right-hand side. The commas and quotes also gain “typewriter” serif tails.
For more details (along with experimental the PDF diagrams) see bug #677134 (“Style: Mono: discern shape of serifs for i l t “). (Please try to have used the font by testing for one week in your normal use to help filter out knee-jerk reactions).
Where we are now
We need to test the readability of the font, particular the Cyrillic and Greek which have had less testing. We also need to test the technical aspects of the monospace font in as many terminals as possible, including the line-spacing. For this, a set of box-drawing and solid-fill characters have been included in the UbuntuBeta Mono. If working correctly when these are tiled side-by-side each should exactly touch, leaving no overlap and no gap.
This exact 2:1 ratio between height and width means that it can hopefully also be used as an 8×16 bitmap console font. Perhaps in a future version of Ubuntu you’ll be able to see Ubuntu Mono right from the moment the bootloader or CD menu appears! In order to do that, the fonts are being “hinted” to force optimised bitmap forms without “drop-outs” or gaps that appear from the fitting of the complex curve onto a low-resolution grid of pixels. As of this week Jason Campbell at Dalton Maag has handed over his hinted versions of Ubuntu Mono to Vincent Connare for tweaking. The most recent update from Vincent earlier today was “I am reviewing the Monospaced now!”, so hopefully that will reassure everyone that things are a-happening in the background!
Finally, remember that the Ubuntu Font Family is about quality, it’s better that we all get a high-quality monospace font in the long-run than to rush something out of the door too soon. Good things are worth waiting for!
Thank you to a commenter in a previous blog post for inspiring the title.
Talk to us today
Interested in running Ubuntu in your organisation?
Newsletter signup
Related posts
What to know when procuring Linux laptops
Technology procurement directly influences business success. The equipment you procure will determine how your teams deliver projects and contribute to your...
Canonical announces public beta of optimized Ubuntu image for Qualcomm IoT platforms
Today Canonical, the publisher of Ubuntu, and Qualcomm® Technologies announce the official beta launch of the very first optimized image of Ubuntu for...
Entra ID authentication on Ubuntu at scale with Landscape
Authd allows Entra ID authentication on both Ubuntu Desktop and Server. Learn how to configure Authd at scale using Landscape and Cloud-init