A collection of beautiful free and open source fonts: instructions for installing, Unicode fallback chains, instructions to replace Windows ClearType and fix browser fonts
A collection of beautiful free and open source fonts: instructions for installing, Unicode fallback chains, instructions to replace Windows ClearType and fix browser fonts.
Contents:
First of all OTF and TTF versions of every font have different display weight on Windows on small sizes for some reason (see this and that) hence use TTF version as it looks closer to original design.
Sans serif fonts used for main fonts and fallbacks have the following support of the top writing systems** of the internet:
Only 3 fonts are maintained for multilingual stylistic fit: Source Sans Pro, Open Sans, Roboto.
** Top 15 writing systems of the internet: Threshold to include languages was via Wikipedia statistics of Total page views over Last 12 Months: it should be more than 115M (10.2020). And a language should either be in the Font Library list or in the Google Fonts list.
Honorable 2: Math, Emoji. Top 15: Latin, Greek, Cyrillic, Chinese, Japanese, Korean, Arabic, Armenian, Bengali, Georgian, Hebrew, Hindi-Devanagari, Hindi-Urdu, Tamil, Thai.
My favorite!
In the latest version the “Source Sans Pro” name was changed to “Source Sans 3”. I hope that it would be reverted but for now I recommend to use both latest version stll named 'Source Sans Pro'
and 'Sourcing Sans Pro'
(that is simply a renamed 'Source Sans 3'
) in the fallback chain:
Font fallback chain: 'Source Sans Pro', 'Sourcing Sans Pro', 'Noto Sans', 'Noto Sans Armenian', 'Noto Sans Devanagari', 'Noto Sans Bengali', 'Noto Sans Georgian', 'Noto Sans Arabic', Catamaran, 'Noto Sans Thai', 'DejaVu Sans', 'STIX Two Math', Symbola, 'Source Han Sans', sans-serif
.
'Source Sans Pro', 'Sourcing Sans Pro', 'Noto Sans Hebrew', ...
'Noto Nastaliq Urdu'
'Twemoji Mozilla'
I had a bug when 'Source Sans Pro'
did not work properly in LibreOffice with language variations. But 'Sourcing Sans Pro'
worked fine. But this might be some re-installation bug. Check yourself.
Fallback fonts:
@font-face {
font-family: 'Twemoji Mozilla';
src: url("file:///C:/Windows/Fonts/TwemojiMozilla.ttf") format("truetype");
font-weight: 400;
font-style: normal;
}
They are almost the same font. But still not the same font!
Mind that Noto Sans has more font weghts than Open Sans so if using them together as here do not use 100, 200, 500, 800 (use 900 instead).
Font fallback chain: 'Open Sans', 'Noto Sans', 'Noto Sans Devanagari', 'Noto Sans Bengali', 'Noto Sans Georgian', 'Noto Sans Arabic', 'Noto Sans Hebrew', Catamaran, 'Noto Sans Thai', 'DejaVu Sans', 'STIX Two Math', Symbola, 'Source Han Sans', sans-serif
.
'Open Sans'
'Noto Nastaliq Urdu'
'Twemoji Mozilla'
Font fallback chain: Roboto, 'Noto Sans', 'Noto Sans Devanagari', 'Noto Sans Bengali', 'Noto Sans Georgian', 'Noto Sans Arabic', 'Noto Sans Hebrew', 'Noto Sans Tamil', 'Noto Sans Thai', 'DejaVu Sans', 'STIX Two Math', Symbola, 'Source Han Sans', sans-serif
.
Urdu alterantive to Arabic: 'Noto Nastaliq Urdu'
Font fallback chain: Lato, sans-serif
.
First of all OTF and TTF versions of every font have different display weight on Windows on small sizes for some reason (see this and that) hence use TTF version as it looks closer to original design.
Serif fonts used for main fonts and fallbacks have the following support of the top writing systems of the internet:
Only 3 fonts are maintained for multilingual stylistic fit: STIX Two Text, Source Serif Pro, Vollkorn.
My favorite math font!
Font fallback chain: 'STIX Two Text', 'STIX Two Math', 'Noto Serif Armenian', 'Noto Serif Devanagari', 'Noto Serif Bengali', 'David Libre', 'Noto Serif Georgian', 'Noto Naskh Arabic', 'Noto Serif', 'Noto Serif Tamil', 'Noto Serif Thai', 'DejaVu Serif', Symbola, 'Source Han Serif', serif
.
'Noto Nastaliq Urdu'
Amiri
'Twemoji Mozilla'
'XITS Two Text'
and 'XITS Two Math'
that is simply STIX Two converted to TTF. Download XITS Two (TTF format).Archives above also contain XITS Two Math (TTF format) and STIX Two Math (OTF format) font families for OpenType math-capable applications like LuaTeX, XeTeX or MS Word 2007+.
Fallback fonts:
@font-face {
font-family: 'Twemoji Mozilla';
src: url("file:///C:/Windows/Fonts/TwemojiMozilla.ttf") format("truetype");
font-weight: 400;
font-style: normal;
}
My favorite text body font!
Font fallback chain: 'Source Serif Pro', 'STIX Two Text', 'STIX Two Math', 'Noto Serif Armenian', Halant, 'Noto Serif Bengali', 'David Libre', 'Noto Serif Georgian', 'Noto Naskh Arabic', 'Noto Serif', 'Noto Serif Tamil', 'Noto Serif Thai', 'DejaVu Serif', Symbola, 'Source Han Serif', serif
.
'Noto Nastaliq Urdu'
Amiri
'Twemoji Mozilla'
Font fallback chain: Vollkorn, 'STIX Two Text', 'STIX Two Math', 'Noto Serif Armenian', Halant, 'Noto Serif Bengali', 'Noto Serif Georgian', 'Noto Naskh Arabic', 'Noto Serif', 'Noto Serif Tamil', 'Noto Serif Thai', 'DejaVu Serif', Symbola, 'Source Han Serif', serif
.
font-feature-settings: 'tnum' 1, 'lnum' 1;
See all features here.font-weight: 420;
'Noto Nastaliq Urdu'
Amiri
'Twemoji Mozilla'
Semibold italic Cyrillics are terrible in the original Linux Libertine. So it’s recommended to use Linus Libertinus fork that is simply a renamed Libertinus Serif without semibolds (Libertinus Serif is a bugfixed fork of Linux Libertine by Khaled Hosny with Cyrillic bold itallics by Stefan Peev). Though Cyrillic bold italics are suboptimal too.
Libertinus Serif is OTF-only font and is a bit heavier on Windows display. Download Libertinus Serif (OTF format, thickening distortion on Windows). This can be useful on small sizes: 'Libertinus Serif'
. Mind that Cyrillic semibold italics (600) of Libertinus Serif look terrible. On Windows first install all styles then only install 4 main styles.
Font fallback chain: 'Linus Libertinus', serif
.
Archives above also contain Linus Libertinus Math (TTF format) and Libertinus Math (OTF format) font families for OpenType math-capable applications like LuaTeX, XeTeX or MS Word 2007+. But I find it to be of lower quality than STIX Two Math (Libertinus Math has MS Word issues and Greek italics are of suboptimal quality. I never tested for LaTeX issues).
Font fallback chain: 'XITS', 'XITS Math', serif
.
I find that XITS Greek leters are of suboptimal quality but XITS and XITS Math are the closest alternative to Times New Roman that I know of.
Note that XITS is OTF only font. Hence it would look heavier on Windows than it’s original design (that’s not necessary a bad thing). But you can use 'XITS One Text'
and 'XITS One Math'
that is simply XITS converted to TTF. Download XITS One (TTF format).
Archives above also contain XITS One Math (TTF format) and XITS Math (OTF format) font families for OpenType math-capable applications like LuaTeX, XeTeX or MS Word 2007+.
First of all OTF and TTF versions of every font have different display weight on Windows on small sizes for some reason (see this and that) hence use TTF version as it looks closer to original design.
Monospace fonts used for main fonts and fallbacks have the following support of the top writing systems of the internet:
Main fonts and fallback chains were optimized for SugarTeX.
My favorite!
Italic in Roboto Mono has different width so it’s recommended to use Robotization Mono fork that is simply a renamed monospacified version of Roboto Mono.
Font fallback chain: 'Robotization Mono', 'Noto Sans Mono', 'IBM Plex Mono', 'Kawkab Mono', 'DejaVu Sans Mono', Cousine, 'ST1X Two Math For Robot0 Mono', 'Symbola For Robot0 Mono', 'Source Han Sans', monospace
.
Fallback fonts:
Inconsolata lacks italics, Cyrillic and Greek. Inconsolata LGC lacks some whitespace characters, has off-style backtick, italic Latin a and Cyrillic д are controversial design decisions. For SugarTeX it’s recommended to use Inconsolata Sugar fork that is simply a renamed Inconsolata LGC with these issues fixed.
Font fallback chain: 'Inconsolata Sugar', 'Robotization Mono', 'Noto Sans Mono', 'IBM Plex Mono', 'Kawkab Mono', 'DejaVu Sans Mono', Cousine, 'ST1X Two Math For Robot0 Mono', 'Symbola For Robot0 Mono', 'Source Han Sans', monospace
.
Source Code Pro lacks some whitespace characters and has broken division slash. For SugarTeX it’s recommended to use Sourcing Code Pro fork that is simply a renamed Source Code Pro with these issues fixed (slash was simply removed). For other purposes original Source Code Pro should be OK.
SugarTeX Font fallback chain: 'Sourcing Code Pro', 'Noto Sans Mono', 'IBM Plex Mono', 'Kawkab Mono', 'DejaVu Sans Mono', Cousine, 'ST1X Two Math For Robot0 Mono', 'Symbola For Robot0 Mono', 'Source Han Sans', monospace
.
Alt: 'Source Code Pro'
This is a proprietary font but included here for SugarTeX installation instruction.
It’s preinstalled with Windows. Consolas can also be installed together with Microsoft PowerPoint Viewer till April, 2018. SHA256: 249473568EBA7A1E4F95498ACBA594E0F42E6581ADD4DEAD70C1DFB908A09423. But note that it’s license says that “You may use the software only to view and print files created with Microsoft Office software. You may not use the software for any other purpose.” so you might not be even allowed to print Consolas font text from LibreOffice. But at the same time if you incorporate Microsoft Word into your pipeline (for example even if postprocessing .docx files by other software as a next step) you might satisfy “created with Microsoft Office software”. And printing to PDF via Chrome browser might also be printing.
Font fallback chain: Consolas, 'DejaVu Sans Mono For Conso1as', 'ST1X Two Math For Conso1as', 'Symbola For Conso1as', 'Source Han Sans', monospace
Fallback fonts:
Font fallback chains contain fonts monospacified via monospacifier.py (Backup). If you don’t like Consolas, Roboto Mono, Source Code Pro or Inconsolata that much you can pick there monospacified fallbacks for other monospace fonts.
MathJax uses emboldened version of Computer Modern (by Donald Knuth). It looks nice both in browser and in PDF. It can only be used with MathJax. Latin Modern Math is it’s closest alternative for OpenType math but it has original hairline serif design that doesn’t look very good in browsers. But I guess it can be ported to OpenType math.
My favourite! Follow the link to the section above.
See this list.
If on Windows it’s recommended to install MacType because Windows original ClearType is capable of rendering only fonts that were pre-optimized for ClearType - it cannot display arbitrary font in a beautiful way (or capable but for some reason doesn’t do that on default settings!). MacType can do it (and does with default settings). Now that Full HD is everywhere it’s a shame for ClearType.
Important:
NormalWeight=0
instead of 16 (with this the difference between Chrome and other programs is not so big).Here is my custom part of the config that tunes Consolas font to look thinner and also makes fonts in Explorer look thicker. Update appropriate sections:
[General]
NormalWeight=0
BoldWeight=0
RenderWeight=1.3
[Individual]
Times New Roman=0,,4,,,
Segoe UI=0,,4,,,
Tahoma=0,,4,,,
[UnloadDll]
inkscape.exe
PaintDotNet.exe
VBoxSvc.exe
VirtualBox.exe
Paste to the end:
[Experimental@pycharm64.exe]
ClipBoxFix=1
[General@pycharm64.exe]
;PyCharm fix + Consolas
NormalWeight=-10
BoldWeight=-4
[General@notepad++.exe]
;for Consolas
BoldWeight=-2
[General@notepad.exe]
;for Consolas
BoldWeight=-2
UPD: You can also try Stylus (GPL) or Stylish (Freeware)
Stylebot is an open source Google Chrome extension that allows users to manipulate a web page’s appearance. Install.
I haven’t checked if it’s safe. But it looks safe.
This extesnion would help you to make internet less messy in style :-)
And even more! Stylebot can fix issues that arise from thinner fonts in Chrome with MacType: swap badly looking fonts. For example add this to the Global Stylesheet:
@font-face {
font-family: 'Times New Roman';
src: url("file:///C:/Windows/Fonts/LibertinusSerif-Regular.otf") format("opentype");
font-weight: normal;
font-style: normal;
}
@font-face {
font-family: 'Times New Roman';
src: url("file:///C:/Windows/Fonts/LibertinusSerif-Bold.otf") format("opentype");
font-weight: bold;
font-style: normal;
}
@font-face {
font-family: 'Times New Roman';
src: url("file:///C:/Windows/Fonts/LibertinusSerif-Italic.otf") format("opentype");
font-weight: normal;
font-style: italic;
}
@font-face {
font-family: 'Times New Roman';
src: url("file:///C:/Windows/Fonts/LibertinusSerif-BoldItalic.otf") format("opentype");
font-weight: bold;
font-style: italic;
}
You can use standard Libertinus Serif
(otf, “opentype”) or Linus Libertinus
(ttf, “truetype”) font via local URLs (OTF is heavier on small sizes).
update_deps.bat
from repo’s directory,TO DO list of ideas that I have or had about font development.
Backup repos: