A font family with a great monospaced variant for programmers.

Overview

Fantasque Sans Mono

A programming font, designed with functionality in mind, and with some wibbly-wobbly handwriting-like fuzziness that makes it unassumingly cool. Download or see installation instructions.

Previously known as Cosmic Sans Neue Mono. It appeared that similar names were already in use for other fonts, and that people tended to extend their instinctive hatred of Comic Sans to this very font of mine (which of course can only be loved). Why the previous name? Here is my original explanation:

The name comes from my realization that at some point it looked like the mutant child of Comic Sans and Helvetica Neue. Hopefully it is not the case any more.

Inspirational sources include Inconsolata and Monaco. I have also been using Consolas a lot in my programming life, so it may have some points in common.

Weights, variants and glyph coverage

The font includes a bold version, with the same metrics as the regular one. Both versions include the same ranges of characters : latin letters, some accented glyphs (quite a lot), some greek letters, some arrows.

Please note that I have not tested all of the glyphs I have drawn (some letters have those two layers of crazy accents that I have never witnessed before), so it might look bad in some cases. Please report these problems: see next section.

It also features a good italic version, which I designed in a fashion similar to Consolas' italic version, with new glyph designs, not just an added slant.

Stylistic set(s)

ss01: nondescript k

No distractive lovely loop. Get the pre-activated version here or see the issue #67 for techniques to activate the stylistic set.

Author and license

Created by Jany Belluz <jany.belluz AT hotmail.fr>

Licensed under the SIL Open Font License (see LICENSE.txt).

Please send me an e-mail or report an issue on Github if you stumble upon bad design or rendering problems (with screen shot if possible), or if you need more characters, or if you want to compliment me (I love compliments).

Installation

You can download the latest version and install it by hand. In the NoLoopK variant, the looped lowercase k is replaced with a straight version. The LargeLineHeight variant is especially useful for users of accented capitals. For more info, see the CHANGELOG.

Automatic installation on macOS with homebrew:

brew tap homebrew/cask-fonts #You only need to do this once for cask-fonts
brew install --cask font-fantasque-sans-mono

Instructions for other platforms might follow.

Building installable font files

The build process requires:

  • FontForge with python scripting support,
  • ttfautohint
  • sfnt2woff (from the woff-tools package on Ubuntu)
  • woff2_compress from the Google WOFF2 tools or woff2 package on Ubuntu

Run make. You should see green stuff and some "OK" messages.

If you are using Ubuntu, please note that the FontForge version in the default Ubuntu repositories is much outdated at the time of this writing, and that is known to have caused subtle problems. You are advised to install FontForge from this PPA (using sudo add-apt-repository ppa:fontforge/fontforge prior to the installation). Alternatively, you can always download the latest prebuilt release of these fonts.

make install will install the TTF fonts into your local .fonts/ directory and update the font cache. It comes in handy while modifying the font.

Alternatively, if you'd like to build Fantasque without installing required dependencies, a Dockerfile is provided. Run the following command, and the fonts will be built to the ./Variants directory.

docker build -t fantasque .
docker run -v "$(pwd)/Variants:/fantasque/Variants" fantasque

Webfonts

Each variant has a Webfonts/ folder which contains various font formats for use on the web, along with the matching CSS font declarations. To use them, you must combine in the same folder:

  • a custom .css file that you can assemble from the *-decl.css fragments (you can only pick the styles that you need, e.g. normal and bold)
  • the matching .svg, .woff, .woff2 files from Webfonts/
  • the matching .ttf files from the TTF/ folder
  • the matching .otf files from the OTF/ folder.

Versions

Check out the changelog.

Comments
  • Ligatures and contextual alternatives

    Ligatures and contextual alternatives

    love your font, but having tasted the beauty that is Fira Code’s ligatures, i can’t go back.

    having both fantasque and those ligatures would be perfection!

    the contextual alternatives are also amazing: having e.g. the * in *ptr and - in foo-bar adjusted based on the height of the characters next to them… yum!

    opened by flying-sheep 29
  • Is it possible to rename the font?

    Is it possible to rename the font?

    Hi,

    First of all thanks for creating such a wonderful font. I'm trying to package this font for Debian and filed my intent for the same. Here I got some concern raised by a fellow developer on the name of font.

    Is it possible for upstream to consider a name change for the font?.

    Thank you,

    opened by copyninja 17
  • Underscores disappear at size 14 in Intellij (Windows)

    Underscores disappear at size 14 in Intellij (Windows)

    Hi,

    I'm not sure if this is actually an issue with IJ or the actual font, but I've noticed that at size 13 or 14 (I guess this is pts?) in intelliJ on windows, underscores aren't visible. See this screenshot:

    14

    It's okay at 12 or 16 though, however "12" in IntelliJ is a lot smaller than "12" in the Windows font preview tool, and a bit too small for me.

    font-preview

    Any ideas?

    Otherwise - I love this font! Thanks!

    opened by amyers735 14
  • Can't choose this font anymore in PyCharm on Linux

    Can't choose this font anymore in PyCharm on Linux

    Don't know if that's related to the renaming or the PyCharm IDE, but the latest Cosmic Sans was working flawlessly, i could choose "CosmicSansNeueMono" just fine: i then updated to the latest version via AUR (Arch Linux) and now i can't even look it up in the font selection. Any ideas?

    EDIT: just to add this is one of the most awesome coding fonts i've seen in a lot of time, this is even better than Monaco, Menlo and Meslo! Keep up the fantastic work!

    opened by manuelbua 11
  • Line height is wrong in Mac OS X

    Line height is wrong in Mac OS X

    This is how 14pt looks in Xcode, and also in Terminal. Note the caret location/size line height – it's too high, like there is too much padding on top. image

    For comparison, this is Inconsolata 14pt – line height is correct, no extra padding on top: image

    And this one is Menlo 14pt, note how big it is compared with Fantasque and Inconsolata. image

    Strangely, some apps don't show this extra padding on top, like BBEdit (but they may be using Carbon font rendering) and Java-based apps (AppCode).

    opened by glebd 10
  • Bold replaces Medium on Windows

    Bold replaces Medium on Windows

    On my Windows 7 PC, I installed the medium weight and when I tried the installing the bold weight it asked me to replace the first weight that I installed. I'm guessing that it's because the OpenType font name is the same and that's how Windows decides if it needs to replace an existing font. Let me know if you need some more details.

    Thanks for a great monospaced font!

    opened by 1deadpixl 9
  • Italic variant of lowercase 'l' somehow looks like uppercase 'L'

    Italic variant of lowercase 'l' somehow looks like uppercase 'L'

    I find it misleading from time to time when skimming the source code like this: Screenshot

    This screenshot above is Rust Syntax highlighted by Sublime Text 3 + Fantasque Sans Mono v1.7.2, macOS High Sierra.

    In case you're wondering, in Rust, like ES6 let, we use let to start the declaration of variable or constant.

    Any other variants look Okay for me, except the italic variant of lowercase l that somehow looks like uppercase L in general when skimming.

    opened by Thammachart 7
  • Closing single quote issue

    Closing single quote issue

    In GCC output, single quotes are distinct from apostrophes:

    ../fstext/deterministic-fst-compo.h:96:12: error: ‘state_table_’ was not declared in this scope
    

    I get the following rendering issue with Fantasque Sans Mono Bold 1.7 on this line: image

    opened by kartynnik 7
  • `Q` and `@` are a bit muddy/blurry at 12/13/14pt. on OS X

    `Q` and `@` are a bit muddy/blurry at 12/13/14pt. on OS X

    1 john john2x tmux attach -t work tmux at 10 19 07 am

    Not sure if this is an issue or not, as it's very subjective. But the tiny little space at the bottom of the Q is too small, and makes it look blurry/muddy.

    opened by john2x 6
  • Issues with backticks and curly-quotes

    Issues with backticks and curly-quotes

    So, I've never submitted an issue about type before, so, I'm not sure about the etiquette here … it's a bit more subjective, and artistic, than anything I've ever commented on before. So, take my complaints as ‘this is my experience using your work,’ instead of as any instruction to change your style, I suppose? :P

    I use a lot of backticks, for a variety of reasons; amongst others,

    • I write a lot of Markdown documentation for code.
    • I write a lot of shell-script (often, with Markdown documentation within it. O_O)

    Unfortunately, although I've been so happy with switching to Fantasque as my code-editing typeface (as opposed to Terminal-window typeface), it's made any task involving backticks a bit … hellish.

    Take a gander at how difficult it is to figure out what's going on in these:

    screen shot 2015-12-13 at 11 52 19 pm screen shot 2015-12-13 at 11 52 57 pm screen shot 2015-12-13 at 11 53 18 pm

    In order, those are:

    • Two backticks, followed by ‘curly single-quotes,’ and a single 'straight-quote.'
    • A "straight double-quote", a 'straight-quote', and two backticks.
    • Two pairs of backticks followed by two pairs of ‘curly single-quotes.’

    It's gotten to the point where I've bound a hotkey to swap my editor's typeface out, when I'm staring at a block of text and I just can't determine what the mess of quotes are.


    So, if I were to have my way in all things, I'd love to see:

    • Straight-quotes that are distinguishable from curly-quotes (after all, ’this’ doesn't look very pretty anyway; if you can't differentiate between start and end quotes, then why are you trying to make them faux-curly at all?), and that are preferably … well, straight. Although the latter is more of taste thing for myself than a usability issue. ¯_(ツ)_/¯
    • And, so very, very importantly for me, visually-distinguished backticks. Glancing at a couple other specimens, it looks like most editing typefaces go with a very “sharp” appearance for the backtick; but even when it's not super thin / pointed at the bottom, it's always straight as an arrow. I really do think it'd be best to make the backtick straight, to distinguish from the opening-curly-quote and straight-single-quote.

    Here's a couple samples from other fixed-width faces I've used. Out of all of them, DejaVu Sans is (unsurprisingly) the most usable, and probably, the most elegant; but I don't think the approach that works for it is going to work for Fantasque's feel, so …

    screen shot 2015-12-14 at 12 04 44 am
    opened by ELLIOTTCABLE 5
  • Thoughts on Recent Changes

    Thoughts on Recent Changes

    I absolutely love this font, and I use it in every IDE I work with. I just recently discovered that it was no longer called Cosmic Sans Neue, and thus that there were new versions available.

    I was initially excited to see what had changed, but I think I like some aspects of the older versions better. The new italic variant is too oblique: it's hard to read, and the corners of some italic glyphs overlap with the characters next to them. (This is particularly egregious with brackets and parentheses.) The old italics were already pretty easily distinguishable.

    The new quotation marks are also a bit confusing. In a vacuum, I think they'd be pretty cool. But unfortunately, a lot of text editors and IM clients have taken to substituting standard ASCII quotes with specialized left and right versions. Which, of course, don't compile if they find their way into source code. The old ones might be bland, but they're much less scary. :)

    I hope this is the right place to submit this sort of feedback; I couldn't find any other outlet for it. And either way, I have the old version of the font, so I'm good. Just wanted to do what little I could to contribute to a great project.

    opened by orochi235 5
  • Build: fix range error for missing module 'past'

    Build: fix range error for missing module 'past'

    On systems without future, there would issues with missing past.

        from past.builtins import xrange
    ModuleNotFoundError: No module named 'past'
    

    Installing future like pip install future can help, but it bothers.

    Changing xrange to range can be OK since python3 has no xrange anymore, while both 2 and 3 can have range.

    The performance impact with python2 should be minor.

    Tested OK on latest Debian bullseye/bookworm, Ubuntu jammy, and Archlinux, with python2 linked to 2.7.18, or 2.7.3, while python linked to 3.10.8, 3.10.6, or 3.9.2.

    opened by ashang 1
  • Driac notation symbol

    Driac notation symbol

    Hi,

    I found that this font does not include the Dirac notation: '⟨' and '⟩'.

    They are ubiquitous in theoretical physics and mathematics.

    Could you add them to your font?

    Another question is that I wish you could use dot zero in this font, or release another version with dot zero.

    Sincerely,

    opened by Photonico 1
  • Tilde a bit too

    Tilde a bit too "flat"

    Hi,

    FSM makes a great programmer's font, which I use a lot. The distinction between 1Iil|, 0O, 56S and 8B is excellent, and FSM does not run as wide as some other mono fonts, so it fits better when combined with proportional fonts in a documentation. The one (small) gripe I have is that the tilde ~ is a bit too flat and could be mistaken for an - on "diagonal" reading. Hack (https://github.com/source-foundry/Hack), IMHO, has a better, stronger curved, tilde.

    Thanks Engelbert

    opened by ebuxbaum 1
  • Fantasque smaller than other fonts at same font size?

    Fantasque smaller than other fonts at same font size?

    A recent YouTube video about a non-free font called Comic Code prompted me to start comparing it to a number of different free and open source monospace fonts. Fantasque Sans Mono was actually the closest I've come to finding something close to Comic Code. It's very nice. But I noticed something odd about it.

    I don't know much about font design, but I'm really curious whether it's a deliberate design choice to make Fantasque Sans Mono a bit smaller than other similar fonts. I'm using Font Manager from Flathub to compare a number of different fonts and I noticed that Fantasque is just... smaller. I was switching fonts in Visual Studio Code and noticed that I always wanted to zoom in or increase the editor font size whenever I tried Fantasque. The Font Manager app showed that this wasn't just my imagination. It really is relatively smaller at the same "size".

    The screenshot below shows the font compared to four other fonts that share the same purpose of being good monospace "coding" fonts. You can see that there is an unusually large difference in length and height with Fantasque Sans Mono and the other fonts, even though they are all being set to the same "font size" for the comparison. All the other fonts are basically exactly the same length for the same string of characters, not even a single character width of difference. Fantasque has a bit less space between some of the letters, but it's also just physically smaller in general, leading to about a dozen character widths difference in length.

    Is this something done on purpose? Or is it an issue with the settings used while generating the font that might be adjusted to match some sort of font size vs pixel dimensions standard better? Just curious.

    image

    opened by RedBearAK 4
Releases(v1.8.0)
A New Approach to Overgenerating and Scoring Abstractive Summaries

We provide the source code for the paper "A New Approach to Overgenerating and Scoring Abstractive Summaries" accepted at NAACL'21. If you find the code useful, please cite the following paper.

Kaiqiang Song 4 Apr 03, 2022
Deeper DCGAN with AE stabilization

AEGeAN Deeper DCGAN with AE stabilization Parallel training of generative adversarial network as an autoencoder with dedicated losses for each stage.

Tyler Kvochick 36 Feb 17, 2022
Ascend your Jupyter Notebook usage

Jupyter Ascending Sync Jupyter Notebooks from any editor About Jupyter Ascending lets you edit Jupyter notebooks from your favorite editor, then insta

Untitled AI 254 Jan 08, 2023
Monify: an Expense tracker Program implemented in a Graphical User Interface that allows users to keep track of their expenses

💳 MONIFY (EXPENSE TRACKER PRO) 💳 Description Monify is an Expense tracker Program implemented in a Graphical User Interface allows users to add inco

Moyosore Weke 1 Dec 14, 2021
"Moshpit SGD: Communication-Efficient Decentralized Training on Heterogeneous Unreliable Devices", official implementation

Moshpit SGD: Communication-Efficient Decentralized Training on Heterogeneous Unreliable Devices This repository contains the official PyTorch implemen

Yandex Research 21 Oct 18, 2022
Toward Multimodal Image-to-Image Translation

BicycleGAN Project Page | Paper | Video Pytorch implementation for multimodal image-to-image translation. For example, given the same night image, our

Jun-Yan Zhu 1.4k Dec 22, 2022
PyTorch implementation of the Pose Residual Network (PRN)

Pose Residual Network This repository contains a PyTorch implementation of the Pose Residual Network (PRN) presented in our ECCV 2018 paper: Muhammed

Salih Karagoz 289 Nov 28, 2022
Reusable constraint types to use with typing.Annotated

annotated-types PEP-593 added typing.Annotated as a way of adding context-specific metadata to existing types, and specifies that Annotated[T, x] shou

125 Dec 26, 2022
A set of examples around hub for creating and processing datasets

Examples for Hub - Dataset Format for AI A repository showcasing examples of using Hub Uploading Dataset Places365 Colab Tutorials Notebook Link Getti

Activeloop 11 Dec 14, 2022
A collection of loss functions for medical image segmentation

A collection of loss functions for medical image segmentation

Jun 3.1k Jan 03, 2023
RealFormer-Pytorch Implementation of RealFormer using pytorch

RealFormer-Pytorch Implementation of RealFormer using pytorch. Includes comparison with classical Transformer on image classification task (ViT) wrt C

Simo Ryu 90 Dec 08, 2022
Implementation of H-Transformer-1D, Hierarchical Attention for Sequence Learning

H-Transformer-1D Implementation of H-Transformer-1D, Transformer using hierarchical Attention for sequence learning with subquadratic costs. For now,

Phil Wang 123 Nov 17, 2022
Image-Adaptive YOLO for Object Detection in Adverse Weather Conditions

Image-Adaptive YOLO for Object Detection in Adverse Weather Conditions Accepted by AAAI 2022 [arxiv] Wenyu Liu, Gaofeng Ren, Runsheng Yu, Shi Guo, Jia

liuwenyu 245 Dec 16, 2022
PyTorch Implementation of Daft-Exprt: Robust Prosody Transfer Across Speakers for Expressive Speech Synthesis

PyTorch Implementation of Daft-Exprt: Robust Prosody Transfer Across Speakers for Expressive Speech Synthesis

Ubisoft 76 Dec 30, 2022
HiFi++: a Unified Framework for Neural Vocoding, Bandwidth Extension and Speech Enhancement

HiFi++ : a Unified Framework for Neural Vocoding, Bandwidth Extension and Speech Enhancement This is the unofficial implementation of Vocoder part of

Rishikesh (ऋषिकेश) 118 Dec 29, 2022
OpenAi's gym environment wrapper to vectorize them with Ray

Ray Vector Environment Wrapper You would like to use Ray to vectorize your environment but you don't want to use RLLib ? You came to the right place !

Pierre TASSEL 15 Nov 10, 2022
Implementation of Continuous Sparsification, a method for pruning and ticket search in deep networks

Continuous Sparsification Implementation of Continuous Sparsification (CS), a method based on l_0 regularization to find sparse neural networks, propo

Pedro Savarese 23 Dec 07, 2022
The source code of the paper "Understanding Graph Neural Networks from Graph Signal Denoising Perspectives"

GSDN-F and GSDN-EF This repository provides a reference implementation of GSDN-F and GSDN-EF as described in the paper "Understanding Graph Neural Net

Guoji Fu 18 Nov 14, 2022
ReferFormer - Official Implementation of ReferFormer

The official implementation of the paper: Language as Queries for Referring Video Object Segmentation Language as Queries for Referring Video Object S

Jonas Wu 232 Dec 29, 2022
This is code to fit per-pixel environment map with spherical Gaussian lobes, using LBFGS optimization

Spherical Gaussian Optimization This is code to fit per-pixel environment map with spherical Gaussian lobes, using LBFGS optimization. This code has b

41 Dec 14, 2022