In contrast to a proportionally spaced font a the characters in a monospace occupy all exactly the same width. In the past monospace type was used on typewriters, and more recently in some specialised printing environments such as Credit Card embossing, or ticketing. Today, monospace fonts are primarily used within a programming environment working on terminal windows. The monospace font answers the need for clear code structuring and predictable line lengths. Using monospace fonts allows the programmer to immediately spot a mis-typed character or double space, any of which would prevent the code from compiling as expected.
The new Ubuntu Mono in a code enironment.
Courier is probably one of the most widely recognised monospace fonts, available on many computers. Its pitch sits at 12 glyphs per inch, set at 12 point. Based on an em-square of 1,000 units this is equal to 600 font units. As Courier is widely used it must be considered as a baseline for new monospace designs.
When starting the work on Ubuntu Mono we soon felt that we could narrow the pitch and thus increase the character count per line without compromising legibility. Only a few other monospace fonts have departed from the Courier pitch, amongst them Consolas available in the latest Clear Type collection from Microsoft. We carried out numerous trials to establish the right pitch width for Ubuntu Mono and arrived at 560 unit width. The narrower pitch also helped with spacing of the font as many characters tend to have too much space on the left and right, locking the lowercases together for enhanced legibility. Naturally, the narrower width does create a conundrum on some wide characters such as ‘m’ and ‘w’ but we are confident to have found an acceptable compromise.

Comparing Ubuntu Mono Regular with Courier
Of course, as the font weight gets bolder the narrower width does create a number of design challanges, even more so with the critical characters mentioned above. But the tighter density of the type allows the type designer to compensate by reducing the stroke width of the characters compared to the proportionally spaced font, without deacreasing colour texture, or contrast against the Regular. The biggest difference between creating a proportional font and a monospace is that a proportional design allows the designer to draw the glyph in harmony within itself and agains the other glyphs. A monospace design is dictated by the width and side-bearings (space to left and right of glyph) leaving the designer challanged to find creative solutions to maintain harmony.
A number of alternative designs to solve the problem of the ‘m’-density. Sometimes we just have to live with a compromise.
The monospaced fonts are planned to be part of the next Ubuntu release in Spring 2011 after being exposed to extensive testing. This is to ensure that they meet as many needs as possible, and being aware that it will be used primarily within a coding environment our emphasis will be to create it with this user group in mind.

The challanges of placing the bold style onto the fixed narrow pitch
The dot within the zero helps to distinguish this glyph agains both the O and Danish Oslash.



Great work!!
PPA please :)
Excellent work and fantastically informative post as always.
The monospace is looking divine.
Thanks for the informative update. The font looks terrific. I am looking forward to testing it with my terminal and editor to see how it works.
Hi Bruno, the font looks great! :)
I wonder if it would be worthy to compare it with Inconsolata (http://www.levien.com/type/myfonts/inconsolata.html), which is for many the best font for coding. From what I have seen, the weight looks slightly different.
Well done, chr
Well done. This monospace looks very nice, readable and usable!
Still, I do have a quibble: the lowercase “r” looks a little less readable than the other letters: I have the feeling that the stem is too much in the middle, which makes the curve too undersized compared to the leftwards serifs (or the serifs too important compared to the curve).
Looks good…
My personal favorite is the one called “Monospaced” on my Ubuntu machine (not sure that is the real name though…).
The main reason for using that font, is that it is fully Unicode and supports all the alphabets I’ve had to work with so far…(Arabic, Hebrew, Chinese, Hindi, Japanese etc.)
Thus the question is… Will this new font support all these as well ?
I just noticed that the official ttf-ubuntu-font-family package has replaced ubuntu-private-fonts. Will ubuntu-private-fonts still be used for testing? Right now, which package has the most recent version of the font? It tells me that if I install it, it will remove ttf-ubuntu-font-family (which is recommended by ubuntu-desktop).
How will beta testing be done? Will it be Ubuntu members only, like for the other beta test?
Yann,
ttf-ubuntu-font-familyis the current version, and the only version that you should have installed (it replaces the temporary-privateversions. The fonts in this package (there is no monospace included yet) are considered part of Ubuntu (the operating system desktop) and without the font is incomplete which is why the message appears.Dieki: the phased beta test is open to anyone with an interest and who takes the time to join the phased beta group and add the special personalised PPA (not just Ubuntu Members!): the instructions are at wiki.ubuntu.com/Ubuntu Font Family#Howto. Note that there is currently (2010-11-18) nothing to beta test, as the latest released version is already in Ubuntu 10.10 by default!). The screenshot shown above is still in-progress.
Yes I understand that `ttf-ubuntu-font-family` is the current (stable) version, but when there will be beta testing of the mono font, will it be in the `ubuntu-private-fonts` package?
The lowercase ‘m’ looks kinda crowded, but it looks good otherwise.
Colin: Which m looks crowded? (There are eight (8) variations shown, because of the difficulty with this character in particular). Of those eight, which do you think look best, or better, or worse?
It hasn’t yet been decided, but I don’t think that “private” will be after of the name. A lot of the issue depends on whether people will need to install both the latest stable and latest beta versions at the same time, and if this is the case the packages will have to have different names. The
.ttffile themselves will probably have their internal names set to “UbuntuBeta” so nobody selects them by accident. Your input and ideas for how to handle this is welcomed.The “Monospace” alias is currently provided by Bitstream Vera Sans Mono, progressively falling back to DejaVu Sans Mono, Liberation Mono, Inconsolata, Free Mono and others to get the maximum coverage possible. You can investigate how this mapping is done (it varies for different Unicode ranges) by looking in the files matched by:
grep 'monospace' /etc/fonts/conf.d/*The same substitution mechanism should occur when the Ubuntu(Beta) Mono is selected, meaning that any missing glyphs (ones that are not yet included) will fallback and be rendered by other fonts, continuing to work just as they are at the moment.
I’ve been developing software exclusively in a Ubuntu environment for several years, and look forward to a solid monospace font.
(BTW, consider posting your sample images as PNG, since JPEG leaves compression artifacts, which are distracting when trying to see the minutia of font details.)
Personally, I find the second-to-last ‘m’ glyph (the one with the shortened middle leg) to be the best.
yaaaaay! :D
Realy Great Work :)
I’ve always loved the ubuntu font, and was looking forward to using it for my programming purposes. Hope we get it for testing soon.
I agree.
Awesome font! Just like the normal Ubuntu font really rocks. And you seem to have done the bold “m” done right, which so many monospace fonts don’t. Although i haven’t seen it in small font sizes, that’s probably the hardest to get right.
Personally, I find all the Ms to be crowded, but the last M in the line of 8 Ms looks best. However, I don’t think it looks as good as Courier New Monospace. :-(
The top of the ‘m’ certainly needs to be different from the ‘n’. So I prefer the one used now, or the last ‘m’ from the list, with the shorter leg. The last one might help against overcrowding.
Hmm, looks quite similar to M+ 1mn
http://en.wikipedia.org/wiki/M%2B_Fonts
David:
yes, all of the glyphs and scripts in the typeface will be present across all thirteen fonts(four of these are the Ubuntu Mono variants). Designing a typeface as big as the Ubuntu Font Family takes a long time: the variable-width Hebrew and Arabic forms are still in the design phase and need to be mostly completed first, as they are then used as the starting point for everything else (condensed, light, medium, bold and monospace).update (2011-06-06): Currently the Hebrew expansion for Ubuntu Mono would be for community expansion after the initial Dalton Maag boot-strapping is done. By that time the Hebrew for the proportional fonts should have been completed, which should provide a starting point for doing a monospace version. Would you like to try and help lead this afterwards? It’ll require finding a type-designer to work with Dalton Maag on the expansion of Ubuntu Mono to Hebrew?
I agree, too. But I think that most of the crowded effect in the first pic (the code example) is due to the blurriness of the JPG. I think it’s not that bad, even at that size, look at the “(min + max)” line, for some reason those “m” do look good while the other ones are blurry.
Will this include Hebrew? If so, are there plans for when? Currently, the only general-purpose monospaced fonts I’ve found that actually include Hebrew are Courier New and FreeMono, neither of which is as appealing as what you’ve produced (and many other monospaced fonts).
Zarggg and Austin: could you each just clarify, do you mean the ‘m’ with the thin centre stem (second-to-last), or the ‘m’ with the short centre stem (last).
Personally, I find the one with the short middle stem (second from the right) to be the least crowded looking.
Of all of the m characters, I find the short middle stem ones to look the least tall, thin, and crowded.
Mind you, I’d have to see these during testing at a couple of point sizes. Most programmers I know use between 8 and 10 points for coding.
Personally, I use 8 point fonts for coding.
Personally, I find the one with the short middle stem (second from the right) to be the least crowded looking.
Of all of the m characters, I find the short middle stem ones to look the least tall, thin, and crowded.
Mind you, I’d have to see these during testing at a couple of point sizes. Most programmers I know use between 8 and 10 points for coding.
Personally, I use 8 point fonts for coding so it would be nice to see a good hinting at that size.
Awesome… Waiting for it to come !! Gr8 work :-D and as usual very informative !!
Thanks for the png tip. I freely admit that to me one format is like the other and that I don’t know much about the technical stuff in image files.
David, Paul: I need to clarify this. All fonts we’re currently developing are Lat A+B Ext, Greek Poly, Cyrillic Ext. Arabic and Hebrew will for now only be in the core four fonts that were released with 10.10. This is our contractual mandate. However, we will be here to assist the community in extending these fonts in the future into all sorts of scripts.
So, when you say 8pt, can you give me an idea of the rasteriser resolution? If it’s 8ppm we can probably still do it but there will be some compromises regarding distinction of cap against x-height proportions due to the simple fact that we haven’t got enough pixels available.
I am sure, though, that Vincent will do his best to get this done.
The ‘m’ with the thin centre stem (second-to-last) looks best. The ones with a short centre stem look odd, I’ve never seen a short centre stem for an ‘m’ not capitalized.
Around our office, all of the coders are working on monitors that display 1920×1200 resolution. Right now my laptop has a 1920×1200 resolution In general, the idea is to be able to see as much source code as possible without having to scroll around.
I could live with 9 pt font, but many monospace fonts look squished at that size on my displays. Anything bigger than that defeats the purpose of having the larger resolution.
I’d be happy to supply a screen shot of what code looks like on my current setup using the default Ubuntu monospace font at a few point sizes.
Font looks great. What is the vertical height like? For me number of lines on the screen is one of the most important factors in choosing a monospace font.
JPEG is good for pictures and uses lossy compression (creates artifacts).
PNG is good for graphics like those above and uses losless compression (creates no artifacts.)
The basic rule is:
For pictures taken from the “real world” => JPEG.
For everything else => PNG.
Yes, I agree on that. If anything, the stem should be thinner, not shorter. I think that the shorter ones make it look like McDonalds font.
The M looks too small in comparison to other letters such I, A, and B. The middle line in it looks like it’s too much to the left, and takes too much space from the inside of the M. This isn’t all that noticeable in small type, but when I looked at the large versions of the images here it bugged me. I don’t know if it’s even possible to do a better job, but I think you should try.
I forgot to say that Ubuntu Monospace Bold looks perfectly fine to me.
The font hinting is performed based on pixels-per-em (PPEM), the relationship between PPEM and point size depends on the dots-per-inch (DPI) on the device. “Resolution” here is the density of your display, not the physical size of it.
PPEM = Point size × DPI / 72So at 72 DPI they are the same, but if the computer is configured with your monitor resolution is 96 DPI, or 120 DPI (modern smartphones have 250–300 DPI) then there are more pixels to play with and it is easier to get a better rendered form. In this case, the “resolution” that Bruno needs to know is the DPI setting selected.
Sorry for my misunderstanding. The DPI setting on my laptop and the machines around the office is 96 DPI. The DPI is not anything I have ever experimented with, so I’m assuming that is the default?
yman: could you clarify, is the description of the issue about the ‘M’ (uppercase) or the ‘m’ (lowercase—and ig so, which one of the eight?).
I’ll ignore the “n” characters:
The one I dislike the most is the first from the right. The middle stem is too thick and looks like it is too far to the right, because the place where it connect to the top arc looks somehow warped. Having a higher density of black makes it look small in comparison to more spread out characters, especially those that have big ellipses.
The last ‘m’ (of the eight) tries to use the same apparent bridge shape to form both of the arches. The middle stem is actually currently off-centre (you are correct about this). If the middle (short) stem was adjusted to be truely centred, would it look better?
At the moment the lowercase ‘m’ is proving to be the hardest character so far, and any suggestions, or ideas (or even designs!) on how to improve it would be greatfully accepted.
This version of the m is actually my favourite. I like the short middle stem and I like the fact that it is off-centre a bit, so I think some of this is taste. :-)
In the comparison picture of the monospace’s bold and regular styles, I find the m with the long stem looks crowded compared to all of the other letters. It sticks out conspicuously. It would be interesting to see the same example using an m with a short middle stem.