Open-source monospace font for code listings, originally by @raphlinus
Inconsolata includes ligatures for a few JavaScript operators:
They are available in two families.
- "Inconsolata" exposes the ligatures as
dlig
. These are disabled by default, and probably won't show up in your editor. You can enable them in CSS with this rule:font-variant-ligatures: discretionary-ligatures;
- "Ligconsolata" exposes the ligatures as
liga
. These are enabled by default. This is the family you should use in your text editor.
Note: the Ligconsolata variant has not yet been upgraded to version 3.000, as we're prioritizing the non-ligature variants.
Upgrade to 2-axis variable font family, with widths from 50 to 200, and weights from 200 to 900.
- Removed ligatures for
fi
andfl
. - Operator ligatures moved to
dlig
. - New variant "Ligconsolata" introduced, which exposes operator ligatures as
liga
.
March 2018 glyph set expansion was completed by @appsforartists, which included:
- Glyph Set expanded to include ligatures for ===, !==, =>, <=, >=, ->, <-
August 2016 glyph set expansion was completed by Alexei Vanyashin ( Cyreal ), which included:
- Glyph Set expanded to GF Latin Pro
- Additional glyphs ⊕↑↗→↘↓↙←↖↔↕⇧⇨⇩⇦⬆⮕⬇⬅●○◆◇☹☺☻♠♣♥♦✓✔✕✗✘␣⎋⌂⇪⌧⌫⌦⌥⌘⏎�
- Minor design improvements (trademark corner spurs)
Further reading: Inconsolata expansion project thread on Google Fonts Discussions
- GF Latin Pro
This Font Software is licensed under the SIL Open Font License, Version 1.1. This license is copied below, and is also available with a FAQ at: http://scripts.sil.org/OFL
Inconsolata fonts can be built using either export from Glyphs or using fontmake. The font files committed to this repo are done using fontmake.
Inconsolata source files are available in .glyphs
format located in the /sources
directory.
- Follow the "Creating the ligature" section of the Glyphs ligatures tutorial.
- Name your new glyph with the suffix
.dlig
, for instancebar_greater.dlig
. - Open the Font Info panel.
- Switch to the Features tab.
- Click dlig in the sidebar.
- Click the Update button at the bottom of the panel.
- Switch to the Instances tab.
- Update the Rename Glyphs value for "Ligconsolata Regular" to include a new line for your new glyph, for instance:
bar_greater.dlig=bar_greater.liga
- Update the Rename Glyphs value for "Ligconsolata Bold".
- Export the font, as explained below.
It's possible to export the project as a single variable font. It's just a bit tricky, because the font uses components with varying 2x2 components, triggering a bug which is present in both fontmake and Glyphs export. Thus, there's an inco_fix.py script in the sources directory that detects this case and decomposes just those components. Run that script before exporting. The script also decomposes corner components, which makes the resulting glyphs
file suitable for fontmake export as well (fontmake currently has no support for corner components).
You can copy the script into the Scripts folder for Glyphs, which will make it available in the Script menu, or you can just copy it into the Macro Panel.
After running the script, the following fontmake invocation will generate a variable font:
fontmake -g sources/Inconsolata-vf.glyphs -o variable
This is the version in the fonts/ directory, as it is slightly smaller than the version generated by Glyphs.
We do not check the result of the inco_fix script into version control, as we want to preserve editability. It's entirely possible that a future version of fontmake (or Glyphs itself) will be able to handle the source file without running a script.
The source file contains 15 instances, including all weights of the normal (100) width, and also all masters. This is a reasonable complement for working on the font. Run the gen_instances.py script to generate a total of 72 instances; all combinations of the weights from 200 to 900, and widths 50, 70, 80, 90, 110, 120, 150, and 200.
There are two other instances for Ligconsolata, and fontmake will attempt to generate those, but the "Rename Glyphs" custom parameter doesn't seem to be respected by fontmake, so these won't have ligatures enabled. Use the Glyphs export instead (detailed below).
Then run this command to generate OTF:
fontmake -g sources/Inconsolata-vf.glyphs -i -o otf
And this command to generate autohinted TTF:
fontmake -g sources/Inconsolata-vf.glyphs -i -o ttf -a
These are the versions in the fonts/ directory.
This is the preferred way to generate the Ligconsolata instances, but
-
TTF and OTF files should be exported into
/fonts/ttf
and/fonts/otf
folders. -
TTFs
should be generated from Glyphs App withAutohint
option checked. At the moment there is no custom build script required to produce font files, since default TTFautohinting options suffice.
OTFs
should be generated with these options:- Remove Overlap
- Autohint
- Save as TTF
- Export destination: $REPO_PATH/fonts/otf
In addition, we want to export a subset not including Vietnamese script coverage, to avoid over-large line spacing on older applications (such as terminals and text editors) that don't understand the "use typo metrics" flag (see googlefonts#35).
Copyright 2006 The Inconsolata Project Authors