Inconsolata font project

1,073 views
Skip to first unread message

Alexei Vanyashin

unread,
Aug 8, 2016, 4:31:32 PM8/8/16
to Google Fonts Discussions
¶ Sprint 2, week 6, August 8, 2016

Today I am starting work on Inconsolata. Here is the project github repo.

N.B. If you use Inconsolata, and have a special development request — please let me know! I will do my best to address it during the currently allocated two-week span. 

A project as popular as Inconsolata in the programming community has many development requests. To tackle this I will create a custom glyph set. During our briefing Raph mentioned a particular request from Nigel Tao. 

Here is what Nigel wrote:
I'm not saying that you need to add any or all of these, but FWIW as a
data point, I scanned all the .go files under my $GOPATH/github.com
for runes not covered by Inconsolata. After trimming out big blocks
like Aramaic, Brahmic, CJK and Hangul, I have:
U+00000100      Ā
U+00000122      Ģ
...
[list of 91 glyphs]
...
U+0000fb02      fl


Following up, I have trimmed out Greek, Cyrillic, and Armenian from Nigel's list, since they are random letters, and don't provide full language support. I suppose we can import Inconsolata-Hellenic for Greek support (which is currently available for the Regular style only). I don't think partial support for Cyrillic, and Armenian is reasonable. GF Cyrillic Plus may be a Milestone 2 for this project. 

After comparing my result against GF Latin Plus, and Pro lists, the glyph count is now down to 29. These are the custom glyphs that extend Inconsolata beyond GF Latin Pro, and fulfil the needs of programming community. 

0x0198  Ƙ
0x01b8  Ƹ
0x01b9  ƹ
0x024d  ɍ
0x0263  ɣ
0x027b  ɻ
0x0298  ʘ
0x029a  ʚ
0x0375  ͵
0x207b  ⁻
0x207f  ⁿ
0x2124  ℤ
0x21e7  ⇧
0x21ea  ⇪
0x2208  ∈
0x2295  ⊕
0x2318  ⌘
0x2325  ⌥
0x232b  ⌫
0x237e  ⍾
0x238b  ⎋
0x23ce  ⏎
0x25cb  ○
0x2620  ☠
0x2639  ☹
0x263a  ☺
0x2660  ♠
0x2714  ✔
0x2e12  ⸒

Here is the full Inconsolata glyph list with GF Latin Pro, Nigel's list, and basic arrows. In total this makes for 740 glyphs. Currently Inconsolata has 300. 

Raph has mentioned very interesting links on discretionary ligatures for programming fonts:
As a first step, I have included basic arrows (from GF Expert set). Additional typographic niceties will be a separate concern later. Let me know what you think? What dlig's do you find useful for programming?

Questions: @kalapi — what dligs are good to have in programming fonts?







Kalapi Gajjar-Bordawekar

unread,
Aug 8, 2016, 6:21:41 PM8/8/16
to Google Fonts Discussions
Interesting question! Let me think about this for a bit, i'll get back to you soon! :)

Cheers,
K

Kalapi Gajjar-Bordawekar

unread,
Aug 8, 2016, 6:24:45 PM8/8/16
to Google Fonts Discussions
This one for sure -> ¯\_(ツ)_/¯ :)


On Tuesday, 9 August 2016 02:01:32 UTC+5:30, Alexei Vanyashin wrote:

Dave Crossland

unread,
Aug 8, 2016, 7:00:22 PM8/8/16
to googlefonts-discuss

I guess it will take Alexei about a week to need to know this


--
You received this message because you are subscribed to the Google Groups "Google Fonts Discussions" group.
To unsubscribe from this group and stop receiving emails from it, send an email to googlefonts-discuss+unsub...@googlegroups.com.
To post to this group, send email to googlefonts-discuss@googlegroups.com.
Visit this group at https://groups.google.com/group/googlefonts-discuss.
To view this discussion on the web visit https://groups.google.com/d/msgid/googlefonts-discuss/5f2cd029-bfd9-48d6-bd96-3155c17968ae%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Alexei Vanyashin

unread,
Aug 10, 2016, 4:33:48 AM8/10/16
to Google Fonts Discussions
On Aug 8, 2016 6:24 PM, "Kalapi Gajjar-Bordawekar" <kalapi...@gmail.com> wrote:
This one for sure -> ¯\_(ツ)_/¯ :)


Nice one, Kalapi!

¶ Sprint 2, week 6, August 9, 2016 

Tuesday I made Regular, and Bold masters compatible, and started expansion towards GF Latin Plus. My goal is to complete the proposed glyphset (GF Latin Plus, Pro, custom list) by this end of this week for both masters. Along the way I am resolving some minor design issues. All the glyphs are now compatible. Combining marks were made, accented characters re-generated. Here is the overall progress:



Following up on the twitter hollar for special requests, I have made the sacred dotted zero. 




It's clearly different enough:




Good idea. Will do as dlig. 



Voila, your wish is my command:




Cheers from Zurich, It's 10.30 AM here or 4:30AM in NY, which means I have travelled to the future. My Wednesday work will be partially done onboard my last leg of the trip home. 


-a

Khaled Hosny

unread,
Aug 10, 2016, 6:27:24 AM8/10/16
to googlefon...@googlegroups.com
On Wed, Aug 10, 2016 at 01:33:47AM -0700, Alexei Vanyashin wrote:
> <https://lh3.googleusercontent.com/-ct3V8TcWkNg/V6rkky0-LQI/AAAAAAAAQho/yU43vTmDDKcMrl0R6lHZ4b66lwIl8Uw1wCLcB/s1600/Screen%2BShot%2B2016-08-10%2Bat%2B10.22.49.png>
>
> Good idea. Will do as dlig.

IMO that would be wrong, the ASCII asterisk is supposed to be raised,
the lowered asterisk would be U+2217 ASTERISK OPERATOR.

(In general be careful following the whims of each programmer, not all
what they ask for makes sense, or the craziness of “ligature coding
fonts” wouldn’t have been all the rage these days).

Regards,
Khaled

Alexei Vanyashin

unread,
Aug 10, 2016, 10:09:07 AM8/10/16
to googlefon...@googlegroups.com

Khaled, very interesting, thanks.


--
You received this message because you are subscribed to a topic in the Google Groups "Google Fonts Discussions" group.
To unsubscribe from this topic, visit https://groups.google.com/d/topic/googlefonts-discuss/wgVuOx9yo5k/unsubscribe.
To unsubscribe from this group and all its topics, send an email to googlefonts-dis...@googlegroups.com.
To post to this group, send email to googlefon...@googlegroups.com.

Alexei Vanyashin

unread,
Aug 11, 2016, 4:24:38 AM8/11/16
to Google Fonts Discussions
¶ Sprint 2, week 6, August 10, 2016

On Wednesday I added more glyphs from the GF Latin Plus range:



Particularly challenging was the per-mille sign:



I also worked on the micro level, refining glyph details. Inconsolata has a lot of things going on. My goal is to simplify some features, and enhance others. The vertical bar in t gets an incline to aid the natural handwritten stroke movement. The spiro curve of t is a trademark feature of Inconsolata, that needs to be preserved. 

 


The top spurs are kept on straight verticals, but removed from diagonals (w,v). The spur in left diagonal combined with the flick in the right diagonal produce unclarity. Some simplification is needed. 




This removal of spurs on the left side of /w isn't visible on the coding level.




Inconsolata isn't solely used in programming environments, but also surprisingly in Display typography. 






And here is a personal sample of Inconsolata in use. I like it's informal vibe.



Questions to Raph, and team:


Original Inconsolata has two different treatments of terminals in /s. I made three variants to solidify this question. What is your preference? (The twist is a new idea)






-a



Alexei Vanyashin

unread,
Aug 11, 2016, 2:00:56 PM8/11/16
to Google Fonts Discussions
¶ Sprint 2, week 6, August 11, 2016 

Today I worked on combining accents, Vietnamese, and some extra glyphs.

I revisited per-mille, and found a better solution for it. 


Marks and signed touched today:



And finally, I have a small question for Nhung:





The circumflexes are different widths. Oops. Will fix this tomorrow. 




I admit, I cheated on the horn. What else can you do in a monospace setting?




One last thing:



-a






Alexei Vanyashin

unread,
Aug 13, 2016, 4:44:51 PM8/13/16
to Google Fonts Discussions
¶ Sprint 2, week 6, August 13, 2016  

I am working on a Saturday instead of Friday, since I was attending a friend's wedding that day. Today I fixed the issue with circumflex


Completed GF Latin Plus, took a dive into GF Latin Pro





To summarise, my first week on Inconsolata was mainly focused on character set expansion. I started with 301 glyphs on Monday, and by the end of the week there are 717 glyphs total (+416 new glyphs). 64 more glyphs need to be added next week. My focus next week will be on quality improvements, and additional features, such as discretionary ligatures. 


I also started putting together a deck on Inconsolata

-a


Nhung Nguyen

unread,
Aug 15, 2016, 12:27:00 PM8/15/16
to Google Fonts Discussions
Hi Alexei!

Thank you so much for your helpful informations (in my thread)! xD You're the boss!

Anyway about Vietnamse in Inconsolata, I think they're very good, just one tiny bit thing should be fixed:

- in circumflexcomb_acutecomb: I think the acute should be placed a little bit far from circumflex so it won't looks like they're attached to each others in small size.
- In circumflexcomb_gravecomb: The grave should be moved up and to the left a little bit so it will be more distinguishable, and avoid overlapping angle with the circumflex

They should be like this:




Everything else looks perfect! :3


Alexei Vanyashin

unread,
Aug 15, 2016, 3:27:30 PM8/15/16
to Google Fonts Discussions
Nhung!

Thank you very much for taking the initiative and helping me with the Vietnamese! You are a star!

In your PR I examined I find the position of these accents different in Regular, and Bold. Do you think we can adjust this as suggested in my image?




¶ Sprint 2, week 6, August 15, 2016 


Today I have completed Math Symbols and punctuation. Now I am only six characters away from completing GF Latin Pro, and 35 from the full glyphs set (+Nigel's list). 





For Math Symbols, this was the first time I used my Math Font for this purpose. I placed a reference glyph in the background, and used the slider to visually match the darkness. After this process, I still had to do some manipulations with slant and size manually. I also encountered a bug, that Jacques has pointed out on the issue tracker. Fixed it. 




Now, to some major design issues, 

Raph picked the "spur" variant, which also seams a best fit for me. In my opinion, visually the spur does look closer to the original, but it has an extra node that makes is more prominent, and brings clarity. The flare has same number of nodes as original, but it's design is different.  


Following the confirmation from Raph, I happily created a corner component for the spur, that will unify all similar design features across the whole fonts. The previous treatment was somewhat unclear, and the new approved design is more defined:


Left:original; Right : new v.2.0



Here is a line-up of the horizontal's department showing off their shiny new corner components, that were added with one click. 



Last, but not least. I am questioning over x: poor fella, he hasn't yet grown a set of left-side spurs, while his peers are fully fledged:

To resolve this injustice, I propose banning left-side spurs for diagonal characters. Only the squarish-types get the privilege to wear them as corner components. Fair?


I anticipate your thoughts.


-a



PS. Tried to install Xi via xcode, but get this error:

failed to run custom build command for `onig_sys v0.8.1`


I am guessing I need to install rust-onig








Alexei Vanyashin

unread,
Aug 16, 2016, 1:03:48 PM8/16/16
to Google Fonts Discussions
¶ Sprint 2, week 6, August 16, 2016 

Today I completed the last ingredient of GF Latin Plus ‚ superior figures. 

I started by scaling down figures to the required size, and made basic adjustments. This is my starting point of the new design. The matrix test clearly shows jumps in darkness of newly created glyphs (567890)


Here is the same test after fixing the contrast issue:






I also checked base glyphs for consistency, and some changes were made:

— O o made symmetrical

— All stems in squares/verticals aligned to a common value. 


These changes aren't very evident. To me this is a good sign. 



Tomorrow:

There are two possible directions — expand to Nigel's list, and refine UC and lc glyphs. 


-a

Alexei Vanyashin

unread,
Aug 17, 2016, 5:01:25 PM8/17/16
to Google Fonts Discussions
¶ Sprint 2, week 6, August 17, 2016 

Today I took the less travelled path of quality improvements. I refined Basic Latin glyphs and figures. 


For this task I used Speedpunk Plugin to add more zest to existing spiro curves. Parts of /g were redrawn, and harmonised. 



Particularly worth mentioning is the trademark /t glyph. During our briefing Raph questioned if we should keep this "favourite" glyph in the lines of "chose your favourite glyph, and remove it" adage. I think its incline in the vertical brings an interesting counter movement, that should be kept. "Okay, we keep it. Done!" — Raph answered.


So here is my proposal on the t:



Top bar remains strictly vertical, while the bottom gets the incline. Contrast game. Horizontal is slanted, adding to the cursive movements. 


Here is how this effect is achieved technically.



I also added extra unencoded glyphs following Kalapi's suggestion. 

This resulted in many extra figures. 






-a




Alexei Vanyashin

unread,
Aug 18, 2016, 2:49:18 PM8/18/16
to Google Fonts Discussions
¶ Sprint 2, week 6, August 18, 2016 

Today was emoji day!

I was working on these characters from the custom glyphs set. The option character lives on two spaces, with the help of negative left sidebearings. Otherwise it is just too small to fit within the fixed mono width. 



Tomorrow is final day in the two-week time-box, I plan to do some fancy extras: dligs. 


-a


 

Denis Jacquerye

unread,
Aug 18, 2016, 5:50:24 PM8/18/16
to Google Fonts Discussions
Hi Alexei,

I’m all for language and phonetic transcription support but the first line and the first character of the second line don’t make sense for coding purposes (as you mentioned earlier) and those uses would require a much larger set.

Cheers


--
You received this message because you are subscribed to the Google Groups "Google Fonts Discussions" group.
To unsubscribe from this group and stop receiving emails from it, send an email to googlefonts-dis...@googlegroups.com.

To post to this group, send email to googlefon...@googlegroups.com.
Visit this group at https://groups.google.com/group/googlefonts-discuss.

Alexei Vanyashin

unread,
Aug 18, 2016, 6:04:18 PM8/18/16
to Google Fonts Discussions
On Friday, August 19, 2016 at 12:50:24 AM UTC+3, Denis Moyogo Jacquerye wrote:
Hi Alexei,

I’m all for language and phonetic transcription support but the first line and the first character of the second line don’t make sense for coding purposes (as you mentioned earlier) and those uses would require a much larger set.

Cheers


Hi Denis, 

Actually you are right.
This custom glyph list was generated by Nigel by scanning for runes. 
I'm not saying that you need to add any or all of these, but FWIW as a
data point, I scanned all the .go files under my $GOPATH/github.com
for runes not covered by Inconsolata. After trimming out big blocks
like Aramaic, Brahmic, CJK and Hangul, I have:
The list among others included partial support for Cyrillic, which doesn't cover any language:
U+0000042c      Ь
U+00000430      а
U+00000445      х
U+00000447      ч
U+00000449      щ
U+0000044e      ю
U+00000460      Ѡ
U+0000047f      ѿ
U+00000497      җ
U+000004a4      Ҥ
U+00000505      ԅ

So I removed these characters, as well as three stray Armenian glyphs. But for some reason kept the Latin. I guess the Latin range doesn't make sense too. 

It was fun to draw them though :)


Alexei Vanyashin

unread,
Aug 19, 2016, 3:37:16 PM8/19/16
to Google Fonts Discussions
¶ Sprint 2, week 6, August 19, 2016 

Final chapter. Inconsolata. Now comes in 4 styles! 




For my last day I was playing genie, and fulfilled more wishes on twitter:




This is a calt substitution that makes some programmers happy. 



I was reading comments about dligs for coding fonts. It seems not everyone is happy when the font unexpectedly changes => into a single glyph. Here are the only ligatures I have hardcoded:




Glyphs won't let me export TTFs, so I am leaving it to the professionals. Here is the Git repo.





BONUS! I made special cuts for the Dracula theme — they are adapted to work on a dark background, and are just lighter enough to optically match the normal style on a white background. Since I cannot export from Glyphs, you will have to believe me. 

And here is the glyph repertoire, 808 glyphs total (505 new glyphs!):



Acknowledgements to Nhung for making the Vietnamese native-looking. 


To summarise during the 2 week time-box, I have resolved the first-priority glyph set issue, and made bonus negative cuts for dark text editor themes. Also invested time in improving the outlines, while keeping the original vibe. I am hoping this will add to the value of Iconsolata, and make it even more popular. 


As a future milestone I am looking forward to making Italics for Inconsolata. This will take me approximately 3 weeks to complete.


Have a fabulous weekend everyone!

Alexei Vanyashin

unread,
Aug 19, 2016, 3:43:51 PM8/19/16
to Google Fonts Discussions

One more fix:



Raph Levien

unread,
Aug 19, 2016, 3:56:12 PM8/19/16
to googlefon...@googlegroups.com
Some thoughts (apologies for the terseness, and I haven't had a chance to review the font in the repo yet).

I'm _not_ in favor of raising the asterisk, and feel fairly strongly that the default should be vertically aligned with other operators such as +. Code is the primary use case for this font. We shouldn't require a contextual alternate. If anything, I'd be in favor of a "typographic" stylistic set that would put symbols like *, maybe also ^ and ~, higher, but would not be the default.

I'm not a fan of the "t". It's an interesting idea, but to my eyes it makes the continuity of the stem look broken.

When doing "programmer ligatures", I think it's important that the ligature doesn't affect the metrics. So if you're making a "->" ligature, it needs to be a long arrow, twice the normal width. (on second reading, this might not be an issue in what you've actually done, but just throwing it out there).

I'm not sure how I feel about "option" (U+2325) being double-width. I think I'd prefer it to be single-width. This might look a little squashed, but I think it's worth it to get a column of ⌘X ⌥X ^X and ⇧X to all vertically align.

Overall I'm really pleased with how it's shaping up, don't take these suggestions as negative.

For building xi, you currently need cmake (I get it from homebrew) because of the onig dependency for syntax highlighting. The README needs to be updated, and maybe it should build without the syntax highlighting plugin as an option. Long term, I hope to switch to a pure-Rust implementation, but that's another story altogether.

Take care,

Raph

On Fri, Aug 19, 2016 at 12:43 PM, Alexei Vanyashin <a...@cyreal.org> wrote:

One more fix:



--
You received this message because you are subscribed to the Google Groups "Google Fonts Discussions" group.
To unsubscribe from this group and stop receiving emails from it, send an email to googlefonts-discuss+unsub...@googlegroups.com.
To post to this group, send email to googlefonts-discuss@googlegroups.com.

Alexei Vanyashin

unread,
Aug 19, 2016, 5:37:21 PM8/19/16
to googlefon...@googlegroups.com

Raph,

Thank you very much for your input. I will make all these fixes week.

Have a good weekend,
-a


On Fri, Aug 19, 2016, 22:56 'Raph Levien' via Google Fonts Discussions <googlefon...@googlegroups.com> wrote:
Some thoughts (apologies for the terseness, and I haven't had a chance to review the font in the repo yet).

I'm _not_ in favor of raising the asterisk, and feel fairly strongly that the default should be vertically aligned with other operators such as +. Code is the primary use case for this font. We shouldn't require a contextual alternate. If anything, I'd be in favor of a "typographic" stylistic set that would put symbols like *, maybe also ^ and ~, higher, but would not be the default.

I'm not a fan of the "t". It's an interesting idea, but to my eyes it makes the continuity of the stem look broken.

When doing "programmer ligatures", I think it's important that the ligature doesn't affect the metrics. So if you're making a "->" ligature, it needs to be a long arrow, twice the normal width. (on second reading, this might not be an issue in what you've actually done, but just throwing it out there).

I'm not sure how I feel about "option" (U+2325) being double-width. I think I'd prefer it to be single-width. This might look a little squashed, but I think it's worth it to get a column of ⌘X ⌥X ^X and ⇧X to all vertically align.

Overall I'm really pleased with how it's shaping up, don't take these suggestions as negative.

For building xi, you currently need cmake (I get it from homebrew) because of the onig dependency for syntax highlighting. The README needs to be updated, and maybe it should build without the syntax highlighting plugin as an option. Long term, I hope to switch to a pure-Rust implementation, but that's another story altogether.

Take care,

Raph

On Fri, Aug 19, 2016 at 12:43 PM, Alexei Vanyashin <a...@cyreal.org> wrote:

One more fix:



--
You received this message because you are subscribed to the Google Groups "Google Fonts Discussions" group.
To unsubscribe from this group and stop receiving emails from it, send an email to googlefonts-dis...@googlegroups.com.

To post to this group, send email to googlefon...@googlegroups.com.
--
You received this message because you are subscribed to a topic in the Google Groups "Google Fonts Discussions" group.
To unsubscribe from this topic, visit https://groups.google.com/d/topic/googlefonts-discuss/wgVuOx9yo5k/unsubscribe.
To unsubscribe from this group and all its topics, send an email to googlefonts-dis...@googlegroups.com.
To post to this group, send email to googlefon...@googlegroups.com.

Cristian Adam

unread,
Aug 21, 2016, 5:12:00 PM8/21/16
to Google Fonts Discussions


On Monday, August 8, 2016 at 10:31:32 PM UTC+2, Alexei Vanyashin wrote:
¶ Sprint 2, week 6, August 8, 2016

Today I am starting work on Inconsolata. Here is the project github repo.

N.B. If you use Inconsolata, and have a special development request — please let me know! I will do my best to address it during the currently allocated two-week span. 

A project as popular as Inconsolata in the programming community has many development requests. To tackle this I will create a custom glyph set. During our briefing Raph mentioned a particular request from Nigel Tao. 

Here is what Nigel wrote:
I'm not saying that you need to add any or all of these, but FWIW as a
data point, I scanned all the .go files under my $GOPATH/github.com
for runes not covered by Inconsolata. After trimming out big blocks
like Aramaic, Brahmic, CJK and Hangul, I have:
U+00000100      Ā
U+00000122      Ģ
...
[list of 91 glyphs]
...
U+0000fb02      fl


Following up, I have trimmed out Greek, Cyrillic, and Armenian from Nigel's list, since they are random letters, and don't provide full language support. I suppose we can import Inconsolata-Hellenic for Greek support (which is currently available for the Regular style only). I don't think partial support for Cyrillic, and Armenian is reasonable. GF Cyrillic Plus may be a Milestone 2 for this project. 

After comparing my result against GF Latin Plus, and Pro lists, the glyph count is now down to 29. These are the custom glyphs that extend Inconsolata beyond GF Latin Pro, and fulfil the needs of programming community. 


Hi Alexei,

thank you for adding proper support for Romanian language (șțȘȚ)!

Cheers,
Cristian.

nigel.t...@gmail.com

unread,
Aug 23, 2016, 2:30:29 AM8/23/16
to Google Fonts Discussions
On Tuesday, August 9, 2016 at 6:31:32 AM UTC+10, Alexei Vanyashin wrote:
Here is what Nigel wrote:
I'm not saying that you need to add any or all of these, but FWIW as a
data point, I scanned all the .go files under my $GOPATH/github.com
for runes not covered by Inconsolata. After trimming out big blocks
like Aramaic, Brahmic, CJK and Hangul, I have:
U+00000100      Ā
U+00000122      Ģ
...
[list of 91 glyphs]
...
U+0000fb02      fl


Sorry to chime in only after it looks like most if not all of the work and time is done, but I only just discovered this mail thread...

First of all, I like the sound of having more Inconsolata!

Nonetheless, for glyph coverage, the list I sent Raph a while ago was merely indicative of the sort of Unicode blocks to consider. It wasn't a shopping list of "I want exactly these glyphs, but nothing else outside of the list".

For example, my "scan all the Go code I've downloaded" script reported a U+237E ⍾ "Bell Symbol". On closer inspection, the only reason my script found it was in this file (https://github.com/hajimehoshi/ebiten/blob/master/ebitenutil/internal/assets/bindata.go) and it's just binary data that happens to contain a UTF-8 encoded U+237E. That glyph isn't really needed for a programming font. I suspect that some of the other emoji / dingbats fall into the same bucket.

Similarly, it looks weird for Inconsolata 2.0 to have U+2660 ♠ "Black Spade Suit" but not the other three suits (U+2663, U+2665, U+2666). It looks weird to have U+2124 ℤ "Double-Struck Capital Z", often used by mathematicians to denote integral numbers, but not U+2102, U+2115 or U+211D, often used to denote complex, natural or real numbers. I think that somebody already mentioned that the IPA glyphs that I found were an incomplete set. There may be other examples of incomplete sets of related code points.

If anything, instead of an ad hoc list for glyphs outside of GF Latin Plus, a principled approach might have been to start with something like WGL4 (https://en.wikipedia.org/wiki/Windows_Glyph_List_4) and subtract out entire blocks like Greek, Cyrillic and Box drawing characters. But I suspect that it is too late. If I understand correctly, you are more or less done.

As for minor tweaks, for a programming font, I'm not keen on ligatures, for smiley faces or otherwise, but I suppose that they are discretionary.

I'm not entirely sure how dotted vs slashed zero works, but it seems to me that if you have both a dotted and slashed forms (or three of dotted, slashed and empty forms??) for a regular zero, you need both or all three forms for the superscript / subscript flavors too.

On the other hand, if I can ask for ponies, I'd like a U+FFFD � "Replacement Character".

Overall, though, I'm pleasantly surprised to discover that you're working on expanding Inconsolata! 

Alexei Vanyashin

unread,
Aug 24, 2016, 7:21:14 PM8/24/16
to Google Fonts Discussions

Hi, 


Christian, you are welcome! It's great that adding just a few symbols makes someone happy.


Raph, thank you for the instructions on Rust. I will try that. 


When doing "programmer ligatures", I think it's important that the ligature doesn't affect the metrics. So if you're making a "->" ligature, it needs to be a long arrow, twice the normal width


That's right. I have also seen another method with single-width -> and a negative left RSB offset, which in total equal to two spaces. The downside of this method is that an extra space is needed before the ligature. 


Nigel, I appreciate your input on the glyph sets! As I said previously, when you think you're done with the font, the font isn't done with you. I'll be happy to put more love into Inconsolata, and extend the glyph set further within the next project milestones.


It is quite an interesting diagnosis method you used for defining the most wanted glyphs. I have added more characters to make complete sets.


I'm not entirely sure how dotted vs slashed zero works

Default is slashed zero. Noslash is mapped as Stylistic set 02, and a dotted version is accessible via 'zero' feature, or subsetted in a separate font version. (Regular Dotted)


Sorry I am not able to add the Math symbols in this update, but here's your pony!





Changes in today's update


Fixes as per Raph's requests:

— lowered *. Made alternate higher-placed versions of *^~ as stylistic set 1 (.ss01)

reshaped t closer to original

— ⌥ (option) glyph fits standard width


Fixes as per Nigel's requests:

— added �

— added more symbols to complete full sets (♠♣♥♦, ⌂⇪⌧⌫⌦⌥⌘⏎, ☹☺☻, ◆◇, ↑↗→↘↓↙←↖↔↕⇧⇨⇩⇦⬆⮕⬇⬅)

— added dotted and noslashed versions to inferior and superior figures. 


Todos for next update:

— Math symbols ℂℕℝ

— Control symbol


Special dotted-zero version with straight quotes is released as two separate font files. This was a development request from British Columbia Ministry of Education


Default curly quotes, and straight quotes as stylistic set 3 (.ss03)


Figures:





-a


Khaled Hosny

unread,
Aug 24, 2016, 7:39:07 PM8/24/16
to googlefon...@googlegroups.com
On Wed, Aug 24, 2016 at 04:21:14PM -0700, Alexei Vanyashin wrote:
> Todos for next update:
>
> — Math symbols ℂℕℝ

Note that Unicode has a complete set of double struck math symbols:
𝔸𝔹ℂ𝔻𝔼𝔽𝔾ℍ𝕀𝕁𝕂𝕃𝕄ℕ𝕆ℙℚℝ𝕊𝕋𝕌𝕍𝕎𝕏𝕐ℤ𝕒𝕓𝕔𝕕𝕖𝕗𝕘𝕙𝕚𝕛𝕜𝕝𝕞𝕟𝕠𝕡𝕢𝕣𝕤𝕥𝕦𝕧𝕨𝕩𝕪𝕫, if you are starting
to add them.

Regards,
Khaled

Alexei Vanyashin

unread,
Aug 24, 2016, 7:44:29 PM8/24/16
to Google Fonts Discussions, khale...@eglug.org
Note that Unicode has a complete set of double struck math symbols:
𝔸𝔹ℂ𝔻𝔼𝔽𝔾ℍ𝕀𝕁𝕂𝕃𝕄ℕ𝕆ℙℚℝ𝕊𝕋𝕌𝕍𝕎𝕏𝕐ℤ𝕒𝕓𝕔𝕕𝕖𝕗𝕘𝕙𝕚𝕛𝕜𝕝𝕞𝕟𝕠𝕡𝕢𝕣𝕤𝕥𝕦𝕧𝕨𝕩𝕪𝕫, if you are starting
to add them.

Oh, my! Interesting. Thanks.

Nigel Tao

unread,
Aug 26, 2016, 1:10:48 AM8/26/16
to Google Fonts Discussions
On Thursday, August 25, 2016 at 9:21:14 AM UTC+10, Alexei Vanyashin wrote:

when you think you're done with the font, the font isn't done with you.


Heh, nice sentiment. :-)



Thanks for being so responsive.

Still, looking once again at my list, I'd take a few more glyphs out, despite your lovely renderings:
U+2295 'CIRCLED PLUS'
U+237E 'BELL SYMBOL'
U+238B 'BROKEN CIRCLE WITH NORTHWEST ARROW'
U+2620 'SKULL AND CROSSBONES'
U+2714 'HEAVY CHECK MARK'
These are all part of larger sets, not one-off glyphs, but my guess is that these sets don't actually come up often enough to be worth it.

I'd also leave these two:
U+FB01 'LATIN SMALL LIGATURE FI'
U+FB02 'LATIN SMALL LIGATURE FL'
out as I don't usually associate ligatures with programming fonts, and again, these are just two glyphs of an incomplete set (https://en.wikipedia.org/wiki/Alphabetic_Presentation_Forms).

I also suspect that these three:
U+2113 'SCRIPT SMALL L'
U+212E 'ESTIMATED SYMBOL'
U+25CA 'LOZENGE'
are relatively rare, but they weren't on my original list, so perhaps you had a separate reason to add them. Maybe they're on a Google Fonts list?? I'm not that familiar with the GF sets, sorry.

On a similar theme of set completeness, if you're going to have
U+25CB 'WHITE CIRCLE'
then I'd either add
U+25CF 'BLACK CIRCLE'
or leave both of them out. But really, it's hard to know where to draw the metaphorical leave-in / leave-out line in the https://en.wikipedia.org/wiki/Geometric_Shapes set.

As for the double struck math symbols, again, I'm not sure if the full set comes up that often. I've only ever seen the upper case forms used, in math, and not the lower case forms.

For all these glyphs mentioned above, I think it's fine to just leave them out of Inconsolata 2.0. You could of course do the extra work to complete the various sets, if you're having fun and, as you said, it's a labor of love. But completing these rarer glyphs means you're spending less time on other fonts. Inconsolata 2.0 is already looking like a great improvement in coverage, and I also already have my pony! The final decision is, of course, up to you. Just my two cents' worth of opinion from somebody not doing the work. :-)

On a separate note, looking at an earlier rendering,
U+2248 'ALMOST EQUAL TO'
looks a little low to me. It should be vertically similar to the ASCII equals sign '=', instead of top-aligned with the ASCII tilde sign '~'.

Out of curiousity, what's your plan for hinting all these new glyphs? 

Raph Levien

unread,
Aug 26, 2016, 2:52:43 AM8/26/16
to googlefon...@googlegroups.com
Again, some quick thoughts. I actually did get a chance to review in more detail.

Just having the double-struck Z is fine, I think. It's vastly more likely to be used in code than the other double-struck caps because of its role in cryptography. At some point you want a font with a complete set of math symbols, which is a worthy project but well beyond the scope of this one.

I'd prefer the straight quotes to be in the default ASCII slots, and the semi-curly ones to be a stylistic set. This isn't personally a dealbreaker for me because I'll add the OpenType feature stuff to xi, but for people using other editors and IDE's I think it could make a big difference. And I think it's consistent with the theme that the defaults work like a terminal, but if you want a more "typographic" treatment you can get it (in a tool that supports it).

U+0259 schwa seems upside down.

If U+FB02 is encoded, then FB01 should be as well. I'm also ok with neither, but I occasionally find them useful because you can tell if text is accidentally encoded using these codepoints. If FB02 remains, please remove the ligature forming this from "f" and "l"; in a monospace font I'd consider that a bug. I'd prefer if it this weren't even available as a dlig. Regarding the others in this block, I'm looking at some character frequency data and (surprisingly) the others in FBxx are used almost as much as 01 and 02. I'd probably lean towards no FBxx

I'm reluctant to take many more of the symbols out. U+25CA is used in modal logic, which is fairly specialized but is a thing. U+2295 represents "exclusive or" which will get some use. U+2714 will actually be fairly common to represent a checkbox or the result of a passing test. I think U+238B is included to round out keyboard symbols (it represents "escape"). They keyboard symbols are looking great, by the way! U+2620 looks stylistically out of place and I would be ok with taking it out; I don't think it gets used much.

I think U+FA04 should be deleted, it's probably in my original font by mistake.

Thanks for all your work on this! It has a bunch of technical requirements that I'm sure are unusual.

Raph

--
You received this message because you are subscribed to the Google Groups "Google Fonts Discussions" group.
To unsubscribe from this group and stop receiving emails from it, send an email to googlefonts-discuss+unsub...@googlegroups.com.
To post to this group, send email to googlefonts-discuss@googlegroups.com.

Nigel Tao

unread,
Aug 26, 2016, 10:39:29 PM8/26/16
to Google Fonts Discussions
On Friday, August 26, 2016 at 4:52:43 PM UTC+10, Raph Levien wrote:
I'm reluctant to take many more of the symbols out. U+25CA is used in modal logic, which is fairly specialized but is a thing. U+2295 represents "exclusive or" which will get some use. U+2714 will actually be fairly common to represent a checkbox or the result of a passing test. I think U+238B is included to round out keyboard symbols (it represents "escape"). They keyboard symbols are looking great, by the way! U+2620 looks stylistically out of place and I would be ok with taking it out; I don't think it gets used much.

My thing with U+2714 'HEAVY CHECK MARK' is, do you also take U+2713 'CHECK MARK', or any other nearby code points (https://en.wikipedia.org/wiki/Dingbat)?

As for what programmers actually use, grepping my collection of source code yields:

No uses of U+2716 or U+2717 (in my sample).

I'll leave the decision up to you (Raph and Alexei). I'm just giving data.

 
I think U+FA04 should be deleted, it's probably in my original font by mistake.

Did you mean U+F40A 'Private Use'?

Alexei Vanyashin

unread,
Sep 1, 2016, 5:31:17 AM9/1/16
to Google Fonts Discussions
Hi Raph, Nigel,

Thank you for your the compliment, and your detailed comments on the glyph set. It has been a pleasure to work with you on Inconsolata.

I have updated Inconsolata 2.0

— As Raph suggested I kept ⊕✔⍾⎋.
— the checkmark is now a in complete set ✓✔✗✘ U+2713 U+2714 U+2717 U+2718
— ligatures fi and fl are unligated(unconnected), and the liga/dlig fetaures are disabled. So that ligatures are only present for compatibility purposes, will not disrupt the text flow.
— ℓ℮◊ are part of GF Latin Pro symbols set.
— added black circle ●○.
— U+2248 'ALMOST EQUAL TO' has been raised
— fixed ə U+0259 schwa
— removed F40A

I think I missed ✕ U+2715 MULTIPLICATION X. Will update this now.


Out of curiousity, what's your plan for hinting all these new glyphs? 

Inconsolata 2.0 TTFs are autohinted with ttfautohint during export from Glyphs App. This is our `default` workflow unless there is manual hinting involved.






-a

Alexei Vanyashin

unread,
Sep 1, 2016, 5:42:34 AM9/1/16
to Google Fonts Discussions
A user reported an issue with the noslash version on Inconsolata.
 

On my machine (Windows 7, Acrobat Reader  11.0.17), the PDF renders flawlessly. On a co-worker's machine, the zeroes and twos appear as superscripts? See attached. The PDF was rendered using a web-based version of Outlook, instead of Adobe Acrobat Reader.




zero is changing to zerosuperior

two > twosuperior.


I think this may have to do with unicode, and the fact that superior figures are encoded.


To remedy this, I renamed zerosuperior > zero.sups which also removes the unicode values, making superior figures unencoded.








Nigel Tao

unread,
Sep 7, 2016, 8:36:36 PM9/7/16
to Google Fonts Discussions
On Thursday, September 1, 2016 at 7:31:17 PM UTC+10, Alexei Vanyashin wrote:
— As Raph suggested I kept ⊕✔⍾⎋.

I don't think Raph suggested keeping ⍾ U+237E 'BELL SYMBOL', and I'd still drop it. (I'm fine with keeping the other three). The only reason that that code point made my original list was an accident. To quote my earlier post:

The only reason my script found it was in this file (https://github.com/hajimehoshi/ebiten/blob/master/ebitenutil/internal/assets/bindata.go) and it's just binary data that happens to contain a UTF-8 encoded U+237E.

Thanks again for your time.

Raph Levien

unread,
Sep 23, 2016, 1:15:44 PM9/23/16
to googlefon...@googlegroups.com
Not sure this is the best place for this, but I see some problems with vertical metrics. I'm trying the font (TTF's from the github) in an IDE (Eclipse) and see that line spacing is very tall. Further, looks usWinDescent is 0, which is likely to cause serious problems on older Windows machines.

I recommend the vmetrics values be set to the same values as Inco 1, otherwise I expect quite a bit of breakage.

Raph

--
You received this message because you are subscribed to the Google Groups "Google Fonts Discussions" group.
To unsubscribe from this group and stop receiving emails from it, send an email to googlefonts-discuss+unsub...@googlegroups.com.
To post to this group, send email to googlefonts-discuss@googlegroups.com.
Visit this group at https://groups.google.com/group/googlefonts-discuss.

Alexei Vanyashin

unread,
Sep 23, 2016, 3:38:05 PM9/23/16
to Google Fonts Discussions
On Friday, September 23, 2016 at 7:15:44 PM UTC+2, Raph Levien wrote:
Not sure this is the best place for this, but I see some problems with vertical metrics. I'm trying the font (TTF's from the github) in an IDE (Eclipse) and see that line spacing is very tall. Further, looks usWinDescent is 0, which is likely to cause serious problems on older Windows machines.

I recommend the vmetrics values be set to the same values as Inco 1, otherwise I expect quite a bit of breakage.

Raph


Hi Raph, 

After adding Vietnamese, the tallest and deepest glyphs have changed. So the vertical metrics were realigned accordingly. I can only revert to the old metrics if we strip out the Vietnamese. I can create a new set with legacy metrics and minus VIT glyphs. 

Left: Inco 2. Right: Inco Go 1


Question to all: any thoughts on this?

 

Khaled Hosny

unread,
Sep 24, 2016, 7:39:32 AM9/24/16
to googlefon...@googlegroups.com
> <https://lh3.googleusercontent.com/-w0XnmGDXxZQ/V-WDsMxgAcI/AAAAAAAARL4/v2Yafyz_IE0BE0ssImdAOZY3wIAZbQOzgCLcB/s1600/Screen%2BShot%2B2016-09-23%2Bat%2B21.32.28.png>
>
>
> Question to all: any thoughts on this?

Keep hhea and typo metrics on the old values and only change the win
metrics to the new ones. So you get old line spacing for conforming
applications, and only degrade it for broken applications that can be
helped anyway.

Regards,
Khaled

Alexei Vanyashin

unread,
Sep 24, 2016, 7:42:14 AM9/24/16
to googlefon...@googlegroups.com

Khaled, thank you.

To confirm: by old metrics you mean values from v.1
And new - v.2?


--

You received this message because you are subscribed to a topic in the Google Groups "Google Fonts Discussions" group.
To unsubscribe from this topic, visit https://groups.google.com/d/topic/googlefonts-discuss/wgVuOx9yo5k/unsubscribe.
To unsubscribe from this group and all its topics, send an email to googlefonts-dis...@googlegroups.com.
To post to this group, send email to googlefon...@googlegroups.com.

Khaled Hosny

unread,
Sep 24, 2016, 7:43:17 AM9/24/16
to googlefon...@googlegroups.com
Yes.
> You received this message because you are subscribed to the Google Groups "Google Fonts Discussions" group.
> To unsubscribe from this group and stop receiving emails from it, send an email to googlefonts-dis...@googlegroups.com.
> To post to this group, send email to googlefon...@googlegroups.com.
> Visit this group at https://groups.google.com/group/googlefonts-discuss.
> To view this discussion on the web visit https://groups.google.com/d/msgid/googlefonts-discuss/CADUrt2F9mYtHnn%3Do1qwmEq%2B8WQSMD6qH_HRnchXhER5Y%2Bwx%2B-A%40mail.gmail.com.

Marc Foley

unread,
Sep 26, 2016, 7:28:30 AM9/26/16
to Google Fonts Discussions, khale...@eglug.org
I agree with Khaled.

I always change the win ascent and win descent. However, I still do an inspection with different browsers. I will only recalculate the hhea and typo metrics if there are huge problems.

Cheers,
Marc

Alexei Vanyashin

unread,
Oct 13, 2016, 11:21:52 AM10/13/16
to Google Fonts Discussions
Marc updated Inconsolata to inherit legacy metrics, and inspected the fonts in browsers.

I have made a git release of the update v.2.000
Reply all
Reply to author
Forward
0 new messages