# Fonts with consistent ligature support for Julia

**URL:** <https://discourse.julialang.org/t/fonts-with-consistent-ligature-support-for-julia/43584>\
**Category:** General Usage\
**Created:** [July 23, 2020, 8:27pm UTC](https://discourse.julialang.org/t/fonts-with-consistent-ligature-support-for-julia/43584 "2020-07-23T20:27:57Z")\
**Posts on this page:** 15\
**Page:** 1

<div class="post-metadata">

**Author:** ![pauljurczak](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/pauljurczak/32/921_2.png) [@pauljurczak](https://discourse.julialang.org/u/pauljurczak)\
**Post date:** [July 23, 2020, 8:27pm UTC](https://discourse.julialang.org/t/fonts-with-consistent-ligature-support-for-julia/43584/1 "2020-07-23T20:27:57Z")

</div>

I’ve used JetBrains Mono for coding before and I kept using it for Julia, but I’m not happy with some ligatures, especially the dot operator:

![dot-ligature](https://global.discourse-cdn.com/julialang/original/3X/5/e/5e3c72dfb7a372a89a1371262944e4df03bc40c9.png)

There was a post mentioning the same issue with Fira Code ([Fira Code Font and Ligatures for Julia](https://discourse.julialang.org/t/fira-code-font-and-ligatures-for-julia/9367)). Has anyone found a font with more consistent ligatures?

---

<div class="post-metadata">

**Author:** ![marius311](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/marius311/32/3953_2.png) [@marius311](https://discourse.julialang.org/u/marius311)\
**Post date:** [July 23, 2020, 9:22pm UTC](https://discourse.julialang.org/t/fonts-with-consistent-ligature-support-for-julia/43584/2 "2020-07-23T21:22:48Z")

</div>

This is a great summary of good fonts to try in case you haven’t seen it (although I haven’t found any that don’t have at least one odd ligature issue):

> [@Recommendation for a font with good Unicode support?](https://discourse.julialang.org/t/recommendation-for-a-font-with-good-unicode-support/39885/8):
>
> 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…

There was also some questions about this on e.g. the Fira repo,

> <https://github.com/tonsky/FiraCode/issues/670#issuecomment-632724785>
>
> Julia uses dotted operators extensively to broadcast operations (basically vecto…rizing them.) Any operator can have a dot added to it, and this includes all unicode operators as well.
> 
> Fira Code has ligatures for a small number of dotted operators, namely \`.-\` and \`.=\` (as far as I know). In code that looks inconsistent:
> \<img width="62" alt="screenshot 2018-10-10 at 14 05 50" src="https://user-images.githubusercontent.com/7106412/46735148-b09be400-cc95-11e8-994d-931e96267563.png"\>
> 
> Since there is no realistic way that ligatures can be added for \_all\_ allowable operators, is it possible to disable the ligatures for \`.=\` and \`.-\`?

and someone lists pretty detailed instruction how one might go about compiling a custom version of the font with customized ligatures. It would be awesome if someone made a Julia-specific version and could share it!

---

<div class="post-metadata">

**Author:** ![JosephPollacco](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/josephpollacco/32/51404_2.png) [@JosephPollacco](https://discourse.julialang.org/u/JosephPollacco)\
**Post date:** [July 23, 2020, 9:38pm UTC](https://discourse.julialang.org/t/fonts-with-consistent-ligature-support-for-julia/43584/3 "2020-07-23T21:38:11Z")

</div>

> [@pauljurczak](#):
>
> JetBrains Mono

Thanks for your usefull comments, how can I install JetBrain Mono or Fira Code front in VScode ?

---

<div class="post-metadata">

**Author:** ![simeonschaub](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/simeonschaub/32/216566_2.png) [@simeonschaub](https://discourse.julialang.org/u/simeonschaub)\
**Post date:** [July 23, 2020, 9:43pm UTC](https://discourse.julialang.org/t/fonts-with-consistent-ligature-support-for-julia/43584/4 "2020-07-23T21:43:47Z")

</div>

FYI, I have a fork [here](https://github.com/simeonschaub/FiraCode), where I removed some of them manually.

---

<div class="post-metadata">

**Author:** ![pauljurczak](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/pauljurczak/32/921_2.png) [@pauljurczak](https://discourse.julialang.org/u/pauljurczak)\
**Post date:** [July 23, 2020, 10:11pm UTC](https://discourse.julialang.org/t/fonts-with-consistent-ligature-support-for-julia/43584/5 "2020-07-23T22:11:31Z")

</div>

Follow [https://www.jetbrains.com/lp/mono/#how-to-install](https://www.jetbrains.com/lp/mono/#how-to-install) to install the font for your OS. In VS Code, go to Settings → Editor: Font Family and select JetBrains Mono.

You can also manually edit `settings.json` file. Here is the part with font configuration I have:

```julia
    "editor.fontFamily": "JetBrains Mono",
    "editor.fontLigatures": true,

```

---

<div class="post-metadata">

**Author:** ![stevengj](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/stevengj/32/71_2.png) [@stevengj](https://discourse.julialang.org/u/stevengj)\
**Post date:** [July 23, 2020, 10:47pm UTC](https://discourse.julialang.org/t/fonts-with-consistent-ligature-support-for-julia/43584/6 "2020-07-23T22:47:53Z")

</div>

As a general remark about ligature-heavy fonts for Julia, see [this comment](https://github.com/tonsky/FiraCode/issues/559) from one of the FiraCode authors:

> Fira Code is for languages that don’t support Unicode and resort to ASCII pseudo-graphics instead, for historical or other reasons. If you can use full Unicode range, I definitely recommend that (I believe that’s the future) and you probably don’t need something like Fira Code

---

<div class="post-metadata">

**Author:** ![pauljurczak](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/pauljurczak/32/921_2.png) [@pauljurczak](https://discourse.julialang.org/u/pauljurczak)\
**Post date:** [July 23, 2020, 10:56pm UTC](https://discourse.julialang.org/t/fonts-with-consistent-ligature-support-for-julia/43584/7 "2020-07-23T22:56:39Z")

</div>

> [@stevengj](#):
>
> If you can use full Unicode range

Can I have `!=` and `->` in Julia as:  
 ![lig](https://global.discourse-cdn.com/julialang/original/3X/7/0/70fe8a107d9fd60254b97e95b88ddcf518c1a259.png)  
without resorting to font ligatures?

---

<div class="post-metadata">

**Author:** ![pauljurczak](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/pauljurczak/32/921_2.png) [@pauljurczak](https://discourse.julialang.org/u/pauljurczak)\
**Post date:** [July 23, 2020, 11:01pm UTC](https://discourse.julialang.org/t/fonts-with-consistent-ligature-support-for-julia/43584/8 "2020-07-23T23:01:17Z")

</div>

Yes, I can! `\ne` and the other one I still have to find.

---

<div class="post-metadata">

**Author:** ![dalejordan](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/dalejordan/32/2196_2.png) [@dalejordan](https://discourse.julialang.org/u/dalejordan)\
**Post date:** [July 23, 2020, 11:17pm UTC](https://discourse.julialang.org/t/fonts-with-consistent-ligature-support-for-julia/43584/9 "2020-07-23T23:17:48Z")

</div>

\to or \rightarrow, but Julia parser doesn’t seem to allow them as -\>.

---

<div class="post-metadata">

**Author:** ![stevengj](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/stevengj/32/71_2.png) [@stevengj](https://discourse.julialang.org/u/stevengj)\
**Post date:** [July 27, 2020, 3:23am UTC](https://discourse.julialang.org/t/fonts-with-consistent-ligature-support-for-julia/43584/10 "2020-07-27T03:23:01Z")

</div>

> [@dalejordan](#):
>
> `\to` or `\rightarrow`, but Julia parser doesn’t seem to allow them as `->`.

`→` is a distinct operator in Julia (along with the other arrows, like `⟶` or `⇒`), that you can define as whatever function you want.

---

<div class="post-metadata">

**Author:** ![carlomontec](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/carlomontec/32/2011_2.png) [@carlomontec](https://discourse.julialang.org/u/carlomontec)\
**Post date:** [July 30, 2020, 11:29am UTC](https://discourse.julialang.org/t/fonts-with-consistent-ligature-support-for-julia/43584/11 "2020-07-30T11:29:12Z")

</div>

I use Iosevka with Sublime Text. [https://github.com/be5invis/Iosevka](https://github.com/be5invis/Iosevka) Its an open source font, so there is plenty to configure 🙂

---

<div class="post-metadata">

**Author:** ![PetrKryslUCSD](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/petrkryslucsd/32/215825_2.png) [@PetrKryslUCSD](https://discourse.julialang.org/u/PetrKryslUCSD)\
**Post date:** [July 30, 2020, 5:46pm UTC](https://discourse.julialang.org/t/fonts-with-consistent-ligature-support-for-julia/43584/12 "2020-07-30T17:46:29Z")

</div>

How does the new JuliaMono compare?

---

<div class="post-metadata">

**Author:** ![jling](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/jling/32/212909_2.png) [@jling](https://discourse.julialang.org/u/jling)\
**Post date:** [July 30, 2020, 5:51pm UTC](https://discourse.julialang.org/t/fonts-with-consistent-ligature-support-for-julia/43584/13 "2020-07-30T17:51:13Z")

</div>

[https://github.com/cormullion/juliamono/issues/3](https://github.com/cormullion/juliamono/issues/3) it’s broken on Windows FYI

---

<div class="post-metadata">

**Author:** ![Tamas\_Papp](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/tamas_papp/32/25949_2.png) [@Tamas\_Papp](https://discourse.julialang.org/u/Tamas_Papp)\
**Post date:** [November 22, 2020, 10:03am UTC](https://discourse.julialang.org/t/fonts-with-consistent-ligature-support-for-julia/43584/14 "2020-11-22T10:03:18Z")

</div>

The Irreal blog had a [nice post today about coding fonts](https://irreal.org/blog/?p=9297), linking two sites which provides comparison samples (both include Julia Mono).

> **[CSS-Tricks](https://css-tricks.com)**
>
> CSS-Tricks is a website about websites.

> **[Dev Fonts](https://devfonts.gafi.dev/)**
>
> List of the best coding fonts with live preview & themes 😍 https://devfonts.gafi.dev/
> by @imGaafar

---

<div class="post-metadata">

**Author:** ![cormullion](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/cormullion/32/49131_2.png) [@cormullion](https://discourse.julialang.org/u/cormullion)\
**Post date:** [November 22, 2020, 11:05am UTC](https://discourse.julialang.org/t/fonts-with-consistent-ligature-support-for-julia/43584/15 "2020-11-22T11:05:18Z")

</div>

Thanks for the links! I think the DevFonts is better, because it shows an editable text box.

There’s also [ProgrammingFonts](https://www.programmingfonts.org)…

So many ways to procrastinate… 😃
