I did some tests on Ubuntu 20.04, in the Gnome terminal and in the browser (e.g. Jupyter in Chrome or Firefox) and Juno. It appears that
- some fonts work well in the terminal but not in the browser
- some work well in the browser but cannot be selected in the Gnome terminal
Here’s a summary, testing for support of combining hat character on greek letters, such as "θ̂ " (obtained with \theta\hat
).
Font | Version (head/name) | Gnome Terminal | Browser/Juno | Open license |
---|---|---|---|---|
Bitstream Vera Sans Mono | 2.000/1.10 | ![]() |
![]() |
![]() |
Cascadia Code | 2005.150 | ![]() |
![]() |
![]() |
Consolas | 1.000 | ![]() |
![]() |
![]() |
Cousine | 1.220 | ![]() |
![]() |
![]() |
DejaVu Sans Mono | 2.370 | ![]() |
![]() |
![]() |
Fira Code | 4.000 | ![]() |
![]() |
![]() |
Go Mono | 2.008 | ![]() |
![]() |
![]() |
Hack | 3.003 | ![]() |
![]() |
![]() |
Inconsolata | 3.001 | ![]() |
![]() |
![]() |
Iosevka | 1.000/3.0.1 | ![]() |
![]() |
![]() |
JetBrains Mono | 1.000/1.0.3 | ![]() |
![]() |
![]() |
Latin Modern Mono | 2.004 | N/A | ![]() |
![]() |
Liberation Mono | 2.100/2.1.0 | ![]() |
![]() |
![]() |
Linux Libertine Mono O | 5.100/5.1.7 | N/A | ![]() |
![]() |
Menlo | 6.100/6.1d5e14 | ![]() |
![]() |
![]() |
Monaco | 2.000/5.1d1e1 | ![]() |
![]() |
![]() |
Nimbus Mono PS | 1.000 | ![]() |
![]() |
![]() |
Noto Mono | 1.000 | ![]() |
![]() |
![]() |
Noto Sans Mono | 2.002 | N/A | ![]() |
![]() |
SF Mono | 0.000/15.0d5e1 | ![]() |
![]() |
![]() |
TeX Gyre Cursor | 2.004 | N/A | ![]() |
![]() |
Ubuntu Mono | 0.800 | ![]() |
![]() |
![]() |
So on my system at least, the winners are Fira Code and SF Mono (edit: and Iosevka). They’re the only fonts that work both in the terminal and in Jupyter and Juno. I find SF Mono a bit nicer but the license seems to be very restrictive (though I couldn’t find any licensing information in the dmg file downloaded from Apple’s website).
Now I can write
Edit: It looks like some font files have conflicting metadata between the “head” and “name” tables (fontRevision and Version fields respectively). I’ve put both versions when they don’t agree.