Inconsolata, a monospace font for print

raph's picture

I'm working on a monospace font specifically geared to print and other high-resolution reproduction. Many of the other available monospace fonts are optimized for screen rendering and don't really have the craftsmanship of a print font. I hope you agree that Inconsolata does.

For samples, including downloadble draft versions, visit the page I've created for the font.

All feedback is welcome. Obviously, monospace is a narrow niche, but for some things, like code listings in books and journal articles, it has continuing appeal. Would you be likely to use Inconsolata in this context? Are there other places you can imagine a monospace font being a good choice?

incoshow.png11.11 KB
hankzane's picture

It has a very weird feeling to it. Comes from incosistensy perhaps. But hard to say ... if it's for print I'll have to print it out at school. Can you provide a PDF sample with a more appropriate content with which you actually see your typeface being used?

(A monospaced typeface is a good choice for it's creator. As an exersize in working within artificial boundries.)

ebensorkin's picture

I agree with Sergej. I would like to have a PDF with some code in it & some running text to be able to better evaluate what you have. It looks quite good initially but I too get a weird feeling from it. A sort of unfocused drifty feeling. But that could be an artifact of the low rez PNG.

Also, is your purpose really not primarily to render well on screen? I have a monospace in progress as well and I have been thinging about this issue alot. Feel free to email me. I wouldn't mind comparing notes with you. I have been assuming screen is going to be the dominant use but I want to bring some elegance to the face as well.

Have you looked at Luc(as)'s Consolas? It prints beautifully and it meant to render well in a specific environment. As you desxcribe your font so far ( have the craftsmanship of a print font) Consolas seems to fit extremely well. How does your face's purpose ( as opposed to it's 'look' ) differ from Consolas? Or does it?


ebensorkin's picture

I just found this which explains quite a bit, and answers several of my questions ! Not my question about the role of screen use though.

There you write that ' Some details will be most apparent in print, such as the subtle curves in lowercase "t", "v", "w", and "y". '

I think that maybe the curves many be the reason I got a weird feeling from the face. The curves don't seem to be consistant with the other glyphs. I am not saying they are wrong just that the whole face should be comming from the same point of view. It maybe be letter heights or weight distribution too. I will look at the PDF & see what I find.

Sergej, ( or anybody else ) here is a PDF sample :

raph's picture

Thanks for the feedback. I was starting to wonder if I was being deliberately ignored or if I had just posted the least interesting face on the critique board.

Eben: as you suggest, the goals of this font are quite similar to those of Consolas, and of course Luc(as)'s command of the craft of fontmaking is awe-inspiring. There are going to be some differences in the details, but there are two main things I saw in Consolas that I didn't much like, or at least wanted to do differently.

First, the primitive curve in 'bdpq' has a very strong diagonal stress. That's fine, it's almost his signature, but I personally much prefer the round forms of classical typeface.

Second, I see several places where the needs of ClearType called for horizontal strokes to be perfectly horizontal (or near enough to perfectly that there is no significant rendering difference, particularly after hinting). Letters most noticeably affected are the top and bottom stems of the 'g', the 's', and, to a lesser degree top of 'f' and bottom of 't'. I wanted to see what might happen if the constraint of good CT rendering contrast were removed. So yes, I am specifically not trying to optimize for low-resolution screen rendering. The client, the TeX User Group, is primarily concerned with print and their software does not do interactive screen rendering.

At some point in the Star Trek future, I also expect screens to be high resolution, at which point I expect the rendering considerations will be more similar to those of print than those of low-res screen rendering. Of course, by then it's possible that monospace will have become completely obsolete.

A lot of the letters ended up coming out looking much like News Gothic, especially with respect to the roundness of bdpq and the curviness of fgs. Of course, my good friend Morris Fuller Benton didn't mess around with the curvy tvwy on the News/Franklin family, so maybe my introduction of them does not adequately respect his memory. (Memories of Souvenir and Hobo, of course, would be a different story :)

I'm surprised to hear that the feeling of the font is "wierd". I was more concerned that it looks too generic (especially the uppercase, which could be mistaken for Letter Gothic). I'd really appreciate it if you guys could put that sense into more precise words.

Also, I've put up examples of Inconsolata in both C code and Python. The links on this site may be aesthetically pleasing because they don't stand out so much, but on the other hand it can also make them quite a bit harder to find.

ebensorkin's picture

I found your typeface and have started to play with it some. My observations were based on what I saw on screen & shouldn't be taken too seriously. After I play with the face a bit more and see it in print then I should have something less provisional to say.

Typefaces on Typophile often seem to be ignored these days because of the structure of the site & because many many people don't feel that they are up to evaluating a font. In all fairness it is easier to crit a logo or identify a type face.

> At some point in the Star Trek future


> become completely obsolete

I don't think so - programmers will always want a monospace. If you search typophile or typophile via google ( sometimes smarter ) your will find plenty of useful threads about this topic. I believe Sergej disagrees with me on this point however.

> more precise words.

I will do my best.

I still can't beleive that you are making a mono mainly for print... It seems wacky. Is the font hinted at all? I understand that you wanted a mono for open source & for ghostscript but with out a screen core purpose - who will use it?

hankzane's picture

Well, I have a small confession to make. I have only made monospaced bitmap fonts and at some point I vowed never to develop monospaced fonts again (bitmap or not). So I have a certain degree of antipathy about this, but for what it's worth:

I printed the sample of you font today (only the original one, since the PDF with C-code didn't want to print) together with an excerpt of that same C-code set in Consolas, Lucida Console, and Vera Mono. Okay, so Consolas is pretty nice. But I also printed the code set in Lucida Sans to compare it with it's monospaced version, and I must say I don't see what is gained by fitting letters to an imaginary grid. Lucida Console was just uglier. So, my million dollar question is: do you want a "programmer's" typeface or a monospaced one? Because I don't think a programmer's typeface has to be monospaced. So maybe Times New Roman or Myriad aren't a staircase to heaven for the hacker next door, but has anyone attempted to make proportional typeface with code listing in mind?

Now, about your font. It goes without saying that it looks generic. It feels weird because you made it a pasticcio of all your nice little ideas. But it's not bad - I've seen things that are much worse. I just think it's lacking in the basics department. It's too spaced out - make it tighter, or bolder. Consistency! c is too big, z is too black. N seems to be wider than M and H. A as the only spiky letter - why? g a bit too light, W too. G too complex. What's with the ugly Matthew Carter tail on the Q? I'd shift J and j a bit to the left, especially j. Cross-sections on X and x could use a fix. The point of a few curvy letters is exactly ... what?

One thing I can't stop wondering about is why you don't recreate Consolas with your own flavour if you like it so much. Why use News Gothic or whatever as a template?

ebensorkin's picture

> Because I don’t think a programmer’s typeface has to be monospaced.

I should be clear that while there are other people who agree with Sergej on this topic they are few in number. And the vast majority of programmers are not only clear that they want to use monospaced fonts - they give many articulate reasons why. Sergej can of course code however he likes. And you may not care about programmers' screens anyway. Neither attitude makes sense to me yet - but there you are.

> make it tighter, or bolder.

This is complicated in most monospaced fonts by the question of how many pixel spaces you put between glyphs. My own mono is is one pixel type which creates one kind of problem. Most monos assume two until about 8 pt on screen. Two pixels tends to look pretty light when printed. And your font looks like these. ( Courier doesn't because it is quite exagerated.)

On the other hand you said that you don't care about sceeen use so you could go bolder, and alter your glyph shapes where needed without much worry. I think doing this is a good idea if you don't care about screen use or plan to let cleartype hinting fuzz your way out of the pixel issue. That's what Consolas does to some minor extent. Consolas is quite rational most of the time and hinted nicely the rest of the time - which is why it looks good on screen in Cleartype.

> I just think it’s lacking in the basics department.

I would have put this more gently but I garee that the face doesn't quite hang together yet. The biggest offender is the 'g'. It simply doesn't fit. There are many way to fix this & I don't want to prescribe one over another. The two primary issues with the g are that it doesn't seem to be the same weight as the rest of the glyphs ( and it isn't it actually is light ) and it looks shorter at the x height than the other glyphs. I see it is not shorter but that's visual illusion for you.

The 'a' feels like it is too tall. The overshoot seems to go too far down too.

The glyphs with curves are too strong, too noticeable. The v, t & w jump out too much.

I like your s. and too a lesser extent your o. I think this is partly because they seem heavier than the others & that seems right. In the case of the s I think you have a nice motion and a nice forward ballance.

The contrast on your p seems too strong in the context of the rest of the face. The contrast in the d is too weak. Oddly the b seems better. Something to do with the foot of the b I think.

> Cross-sections on X and x could use a fix.

I agree.

But the main thing I notice is more systemic. Even though it is impossible to make a mono where all the srokes are even ( not that they would look even if you did) there is not enough evenness in the overall look of the font. The m & W seem pale. I know why but they have to be a little paler but I think you have gone too far. The N seems dark.

This uneven feeling is also cause by the curves you are using, and the slighly overzealous contrast in the diagonals.

Sergej's last point about Consolas is a good one. If you really like Consolas why not step out & do something more humanistic?

On the other hand you could probably whip this into shape. It's got a nice openess too it. It has a nice feeling.

As I said before I don't quite get your motivation for making this font. I don't quite get who will use it or how. Despite this, I hope I have been of some small help.

raph's picture

Great, these detailed comments are really helpful. Some of the consistency issues I agree with completely and will fix next go-round. On the "G" complexity, I went back and forth between Univers and News Gothic models, and will probably go back to the Univers on Sergej's advice. I did want to address some of the more philosophical concerns before going back to the drawing board, though.

Do we still need monospace fonts? I am in partial agreement with Sergej here. Given the choice, the constaints of monospace force an overall degradation of text quality. Also, while monospace is traditional, just because it's code doesn't mean it has to be monospace.

That said, monospace does have its strengths. In particular, when the text needs internal alignment, monospace offers a clear solution. Examples in C include lining up multiline expressions just to the right of the opening paren, and, in some coding styles, putting declarations in two columns with the types on the left and the variable names on the right. It's also possible to use the width of strings to determine their length, which can be tricky especially when spaces are involved. " " and "  " are easily distinguished in a monospace font, less readily so otherwise.

Other languages and contexts have their own alignment needs. For example, assembly language always lines up in columns, and just wouldn't look right proportionally spaced. Of course, in the Star Trek future, there is a question whether we'll still need that.

But the argument for simplicity may be more compelling. The simpler something is, the less likely it will be screwed up. A typographer may well be able to hand-align code listings so that meaning is not degraded, but it aesthetics are much better than with a monospace font. However, this requires fairly sophisticated tools, and an understanding by the typographer of the meaning of the spacing. Programmers cannot be expected to possess those tools, as they usually use editors rich in logic but poor in typography.

Just deciding to use a monospace font makes the world simpler, at some aesthetic cost. The space bar becomes a powerful and precise tool for alignment, and the formatting is robust against changes in font, tools, and other variables.

Why am I doing this font? Several reasons. As Sergej suggests, it's a good learning exercise to adopt difficult constraints. These are especially comforting because this is my first real original design, as opposed to a revival of old metal type. Also, because monospace is such a specialized niche, I have a pretty good shot at achieving one of the ten best in the category.

The specific usage intended for this font is code listings in books and journal articles. These publications (the ones that contain code) are often made with TeX software, and its default monospace font is quite poor typographically. Other common choices are also fairly poor, notably Courier because it's too light and too wide. I checked recently and saw that O'Reilly uses TheSans, which is good for them. There are some people who care what this stuff looks like!

Why not closer to Consolas? Simple, my personal taste favors the round basic forms of classical fonts over the strong diagonal stress of much of Luc(as)'s work. Since this is my font, I get to draw it the way I like :)

Why the curves? Well, I'm getting beaten up enough on these that I may relent. I thought that they'd make the font more lively and friendly, but perhaps their inconsistency with the rest of the font is a stronger argument. When I was drawing these glyphs, I had Evert Bloemsma's dictum in my head, "a straight line is a dead line," but perhaps in order to make that work I would have had to apply it consistently across all the letters in the font.

I probably won't get serious drawing time until the weekend, but then hopefully I can post a revised version and see what you guys think. Thanks again for the crit so far.

hankzane's picture

In respect to Consolas I had more than just the forms in mind. Luc nailed down the letter proporitions and weight pretty well. Perhaps not 101% the way I would have them, but they are solid. Proportions, I think, are the hardest to change at a later stage in typeface development - especially in a monospaced typeface. Play with what you have now, but keep in mind that you may end up thinking you caught yourself in the wrong Matrix.

I've looked at your font in FontForge. Measuring N compared to M showed that it's not wider. But it looks that way. Did you make H so narrow on purpose? It also has an unusually thin horizontal stem. I mentioned spacing before - I think reducing width to 550 is pretty safe. Not completelly safe if you consider bold style, so maybe plus-minus 10.

Out of pure curiosity, how come you have so many curve points in round glyphs?

ebensorkin's picture

Nice analysis Sergej! The reason the N & M look different is of course visual Illusions. The same illusions make us use overshoots on O & o. I agree about think through your sizes really carefully in advance. It is also true that you will learn from mistakes and not everything can be anticipate or learned about ahead of time. Especially when multiple type elements form complex feedback loops. Which they will.

Ralph, Book use of monospaced fonts is pretty small - so I still don't quite get your motivation. But I don't have to. I agree it's a great excercise even if many of the tasks in a mono are completely unique to monos. In some wasys making a humanist mono when Luc(as) has already made several wonderful ones is silly for me to do. But I think it's interesting. So there I am. Not so different. I am hoping my focus on screen rendering makes it worthwhile to someone.

> I get to draw it the way I like :)

The one big reward really.

Given what you were saying I wonder if it would be cool ( maybe ) pick a classic sans you love that has never had a mono & see what you can do.

My advice earlier about the humanist angle is actually what I am trying to do. So in some ways it's just as well if you don't try it too. I am curious though, who else's mono do you like? I tried to survey the other monos carefully before I started.

hankzane's picture

Eben, today Raph makes a monospaced for print, tomorrow I might hint it for screen. Or maybe someone five years from now will modify it for screen. Open development is not a very linear thing, so don't dwell on this too much.

I think Raph's motivation for now is just to have fun. I mean, it's his first real typeface. Well, now he's being sponsored to make something useable, but I doubt he's yet at a stage where he begins to angst about his work being good enough. :-)

ebensorkin's picture

Sergej, good points!

I had been assuming a single author model. On the other hand if you know sombody is going to hint something later & what that means you might well make your forms partly based on that insight. The model you are describing can't happen unless he hints his font himself - and then he makes a second monospace font. So in the case of type Open development isn't 100% sweetness & light. Still, good points - especially about having fun with it!

raph's picture

Thanks again for the detailed crit. Good spotting, Eben, on the perceived height of the 'g'. I don't have a theoretical understanding why, but it does indeed need considerably more overshoot than most of its siblings.

I tightened the spacing by 30 units. Overall, I agree it looks better, but I'm not happy by the crowding around the 'm' (and I did narrow it as well). I guess that comes with the monospace territory, though.

(and please see the pdf link at the Inconsolata page)

I still haven't carefully fit the caps yet, but I did incorporate (most of) the fixes suggested, especially the relative widths of HMN. Of course, the monospace constraint will again make the M look a bit squoonched (TM).

Sergej, how would you do the Q? I'm not in love with what I have, but I think it's a reasonably good interpretation of the Franklin model. And I still don't know what you guys mean when about fixing the xX cross-sections. Are you talking about some kind of trapping?

ebensorkin's picture

Sorry I don't have more time to get into more aspects or in more detail - but these two are easy - in the case of the X if you look at classic typefaces you will notice that the 'legs' of the x they do not align in a litteral way but they look right anyway. What has happened is that the legs have been adjusted to acount for an optical illusion which happens with the x shape. The legs modified are the lower left & upper right. But don't take my word for it - my explanation is incomplete - examine the classic fonts carefully & see what you find.

BTW Re: the Q. I think the tail seems somewhat over expressive for the face. I think several possible solutions would work better including a straight vertical centered & a short diagonal. On the other hand the Q comes up rarely so making it eccentric is a problem either. If you do keep the idea of the Q tail I would either center the tail or more it more decisively to the left. My eye keeps attempting to resolve whether it is cetered or not & I find it distracting. Just my 2 cents.

Sometime in the next few weeks I will check on the changes you made.


raph's picture

Ah yes, now I see what the issue is with the X. I looked at News Gothic and found that there was some adjustment, but it was very subtle. Do you think I've more or less got it now?

The Q tail is now centered, which is definitely an improvement. I'm still not completely decided.

I've fine-tuned the color and spacing quite a bit, and also filled out the complete Latin-9 character set. The biggest single open issue are the curvy 'ty' (and, to a lesser extent, 'wv') forms. Should I draw straighter variants and put them up for a comparison?

ebensorkin's picture

I am choc a bloc for the next few days with an illustration project but I will dig in with gusto as soon as I can.

hankzane's picture

Keep working on it, Raph.

ebensorkin's picture

I grabbed your Open type font & I will look it over this week. I am looking foreward to it.

Spire's picture

As a professional software developer and an amateur type enthusiast, I am always excited to see a new monospaced font designed for code.

A few quick comments:

The r seems too "seriffy" compared to the rest of the face. It sticks out like a sore thumb.

The i, which has serifs out of necessity, seems to cause uneven spacing. Perhaps it could be moved a bit to the right within its cell. Same goes for the f, j, and J.

Similarly, the G might benefit from being nudged a tiny bit to the left. (Or, if that is not possible, narrowed slightly to allow more space on the right.)

The curvy and nonvertical t seems too "happy" compared to the rest of the characters.

The way many of the stems have slightly flared ends is a little disorienting. I'm not quite sure what to make of it. Even at very large sizes, these tiny serifs seem too subtle -- especially next to the giant exaggerated slab serifs of the i, j, l, and so on. At smaller sizes, they might disappear entirely. I know that Inconsolata is designed for high-resolution print; however, it is still not a display face. While I understand and appreciate the desire to inject some character into the design, I have a feeling that this sort of subtlety might be inappropriate for this kind of face.

On the whole, I think this face shows a lot of promise, and I am looking forward to seeing the finished product. I hope these observations are of some help.

(BTW, I composed my post before reading the whole thread, so as not to be influenced by others. I now see that some of the things I said have already been mentioned.)

ebensorkin's picture

I was looking at the font today in Fontlab ( in the airport) & I started noticing a couple of things - there is more say later as I firm up my ideas about this but two things to begin.

The more I think about it the more I think that making it easier for somebody to make decent bitmaps later aught to be a part of the outline design process - especially in an open source monospace. It raises hairy issues but I think they are better dealt with in the begining. It's your thing as I said before and you should do eacatly what you want but that is my opinion.

There are some weird things going on with the way the dlyphs are drawn. There is a little tooth at the top of the o O & Q at the top of the counter. Zoom in & you will see it. The splines are not being drawn as effciently as they might be and that is making for uneven slighly uncontrolled color I think. I will look for some examples and maybe redraw one of the glyphs later so you can see what I mean. In ther meantime I would encourage you to look into what the orthodox font spline drawing methods are.

There is more specific stuff but I will have to wait to get it down in a day or two.


raph's picture

There are some weird things going on with the way the dlyphs are drawn.

Yes. As you can imagine, this is driving me nuts. What you're seeing is the result of FontForge's "simplify" operation, which simply does not have The Quality. If I don't do that, then there are way too many points, and FF uses a lot of "div" operations to store the fractional coordinate values, further bloating the footprint of the font. But perhaps I simply shouldn't care about that.

I think I'm just going to have to code up my own algorithms to produce optimized outlines. I've done a little research into doing that for TrueType, and that seems promising. My current prototype doesn't try to optmize for eliding the on-curve point between two off-curves, and that seems very worth doing.

Optimizing for Type1 outlines is trickier, because there are so many more choices. It's tempting just to stay with TT because it makes life simpler.

Why am I working on my own tools instead of using "orthodox" spline drawing? Why am I so unconcerned about bitmap generation? Because I'm stark raving mad, that's why. Mwahahahaha!

Spire: I think you're right about the serifs on the 'r'. I'll try a sans version and see if I can make it beefy enough. Luc(as) probably knew what he was doing going for the sans in Consolas!

I can live with the 't' being "happy", but perhaps I can be persuaded to tone it down a bit. I have already done so with the 'y'. The spacing of the rest of the font can also use a bit of touchup - I agree about the 'G', but last time I did the 'nanbncn oaobo' test, the 'ifjJ' seemed pretty balanced within the cell. I can take a closer look next time, because you're probably seeing something real.

Thanks for all the feedback and encouragement, everybody! I'm going to be crazy travelling for the next two weeks, but am looking forward to getting back and putting the finishing touches on the face. One of the client specs is Latin-2 coverage, so I get to have some fun drawing the ogoneks. [Thanks Adam!]

ebensorkin's picture

> I can live with the ‘t’ being “happy”, but perhaps I can be persuaded to tone it down a bit.

Or the rest of the face could be 'happier' too :-)

You are using font forge for this right? Does it not let you place points & extend & control the splines? I have never used the program so I have no idea. Can you explain this a bit more. I will see if I can get my exaples up tonight. Do you already know what I am talking about anyway?

raph's picture

Eben: I use a combination of my own tools and FontForge. Generally, my own tools to draw the "masters", and FontForge to package those into a font file. I could tell you more detail, but then I'd have to kill you.

And yes, I already know what you're talking about. I could touch up the splines by hand in FF, but I'd much rather spend my time coding up an optimized TT outline converter.

hankzane's picture

"Finishing touches" you say? I think you've just began! Heh heh.

ebensorkin's picture

Okay - I undersdtand your doing fancy stuff technically but in order to talk to you about the splines without teching your gradmaother to suck eggs as it were I needed to know how much you already knew about optimal point placement & splines etc.

> Heh heh

:-) your right of course. We are always starting from where we are. How is that for a 'new age' style spin on your comment? Actually I agree that this font is still in need of deeper work.

Ralph, refering back to what I was saying above. It still isn't clear to me if you already know about what I am talking about & it is also not clerar to me why when you are making a font you don't start with type one outlines which are easier to control & then go to TT afterwards.

386sky's picture

Raph could add ligatures in Inconsolata and give an TrueType version!

ebensorkin's picture

Ralph, I do finally get why now. Cheers!

Syndicate content Syndicate content