Bold version at 9pt and bitmap format
I see on the website this mention:
More than 9000 characters optimized from 9pt to 48pt to guarantee the best possible readability.
This is obviously incredible! I love this carefully crafted aspect of the font, where I suppose a lot of manual hinting has been made. It seems an enormous load of work and only a small amount of fonts have this level of quality. Thank you for your work.
I am enjoying a lot what I see in terms of small sizes in the terminal without antialiasing. I am trying the smallest referenced size, at 9pt and regular characters are all super crisp and legit!
However, it is not exactly the same for the bold version at that size. See the result:
Normally, all the directories listed by the ls command (which are represented in purple) are supposed to be bold. If I go with 10pt, it is effectively the case. But at 9pt, the bold does not show up (or at least not correctly).
If I try to see the difference when bold is fully disabled in my terminal, I have this result:
I realize that some letters are wider in bold mode, without really looking bold. Take the u from the word Pictures. It looks more narrow on the second version without bold enabled. Other letters such as N (in NCYL5996), M (in Music) or w (in Downloads) look a bit bolder. But at that size, pixels are grouped together and it seems there is not enough space for them to make the result distinguishable.
First I wanted to know if what I see is "normal" (because of obvious restrictions)? Then, and if that is normal, does it mean I should find a way to disable bold mode when the size is too low?
I am using Linux (so fontconfig) and my terminal here is xterm invoked with:
xterm -fa "PragmataPro Mono:antialias=false" -fs 9
I would like to avoid having to disable bold mode fully in xterm, because I like being able to dynamically change the font size when I share my screen with colleagues for example (and having the bold in bigger sizes is appreciated). Maybe you know of a way?
And I have a second, but related question. Is PragmataPro available in a bitmap version (say .otb or .bdf for example)? From what I see, I anticipate the response to be "no". So if not, do you know if there are ways to convert the .ttf to a bitmap version? I don't know a lot about font formats, but as the font is good looking at a small size without antialiasing, I have the feeling that the result could be satisfying.
I am asking this because I know that when using the old X11 core fonts system in xterm (for bitmap fonts with the -fn argument and an XLFD font description), the terminal will try to apply "overstriking" (double rendering of the text with a 1px horizontal offset) to simulate bold when a proper bold version is not found. So I was thinking that for small sizes such as 9pt, the effect could maybe work. I know that overstriking does not provide the same quality as a real bold variant, but I am trying to find a compromise here.
Also, some old tools (such as xmessage or lemonbar) don't properly support freetype vector fonts. Having a bitmap version could help in those situations.
Thanks again for your amazing work on that font since the beginning of the project. This is inspiring.
Thank you for your compliments and valuable feedback!
I’m not sure if this issue can be fully resolved, as the limited pixel space available for certain glyphs is often too scarce to achieve a visually pleasing result.
Essentially, I want to avoid the Bold at size 9 from looking like an unreadable Ultra Black.
I'll work on it anyway.
Thanks for your response and for putting that on the roadmap. Much appreciated.
I see that your screenshot does not represent bold glyphs exactly the same as with my xterm window, as we don't have the same visual artefacts.
It is like the N and M from your reference 12 correspond a little bit to what I have. Except that other letters on my terminal don't look as bold as other letters of your 12. I don’t know what could cause this. Anyway, that would be nice if you think there might be room for improvement.
About the bitmap font, did you ever consider releasing a restricted version of PragmataPro in a bitmap format?
(I know that formats such as .bdf don't necessarily support the same encoding as modern formats, so the set of glyphs would be smaller, but this could be an acceptable restriction for some old-tech needs).
Sorry but unfortunately actually the font editors I know no longer allow me to export fonts in bdf format.
If you have an idea of to do this I'll do with pleasure.
May I ask which font software you mainly use?
I saw some old youtube videos where you introduced pragmatapro, and it looks like you were using fontlab on Mac. Is that still acurate?
I see there is a companion app of fontlab which is called "bitfonter" and which is made to edit bitmap fonts.
https://www.fontlab.com/font-editor/bitfonter/
From the feature set, I can see:
Open & Import TrueType-flavored OpenType SBIT font (.ttf with EBLC and EBDT tables) ... Imports: Hinted rasterized bitmaps at any PPM/point size from any TTF font installed on the system
Save & Export Adobe/Unix BDF font (.bdf, monochrome, grayscale and color)
Maybe I could check the trial version of the software.
Also, about fontlab 8, I see:
New in FontLab 8: Batch-export many fonts into many formats. Open and export the .glyphs format in version 2 or 3. Open FontForge SFD files, bitmap BDF fonts and multi-flavor color fonts. Use improved VFJ, UFO, VF support. Export WOFF2 color web fonts.
https://help.fontlab.com/fontlab/8/whats-new/whats-new-11-formats/
But i don't know if it does what I think it does!
Thank you @lobre! I'll try all these solutions
Hey, I take the opportunity to also share a screenshot for size 10.
The bold can be seen here. I am using the Mono variant and in xterm at that size, I do have some small artefacts such as with the NCYL5996-Linux. We can see that 6 feels narrower than 9 for example.
And to complete that one, here is another in between, at 9.5. Bold is also visible but as the bold is rather thick, letters sometimes blend into each other (again the NCYL5996-Linux is a good example).
I know that bold is hard at small sizes and I don't know if there are "solutions" to those problems but I thought it was at least worth sharing the screenshots!
Thanks again.
Oh and another remark about the 9pt version (I really like that size and I wish I could use it all the time!). I am French and common diacritics in French are not all super readable at the size. See that:
And so that they are recognizable, here is a larger version:
Some of them are not that bad already (ä, ë, ï, ö, ù, ü, ÿ, ç), but the others are harder on the eye and not very recognizable. Also, for the é, the accent is too much to the right.
Sorry this has nothing to do with bold, so I could have created another issue.
@lobre could you let me know if these issues are fixed with PragmataPro 0.9, please?
Hey @fabrizioschiavi, before checking, I sent you a message from your contact form, but I was wondering if the fixes are also supposed to be included in the new variable version of PragmataPro?
I see you say on the product page for the Variable one:
Variable fonts are unhinted as TrueType hand-hinting is unnecessary for High Definition monitors.
All glyphs and features match those of the PragmataPro hand-hinted static fonts.
so you can export static fonts with your preferred weights and use them instead.
So I was wondering if I could buy the Variable version of PragmataPro, as it looks super cool. But I really like the "pixel-perfect" aspect of the font at low sizes. And I thought this property of the font was thanks to manual hints. Should I deduce that this variable version of PragmataPro will not render good at small sizes without antialiasing? Even if I extract a static size with fonttools?
Sorry @lobre I forgot to answer at your email. I received hundred of emails in these days.
The screenshot shown alongside the presentation page of PragmataPro Variable demonstrates how one of the weights of the variable font is rendered, and actually shows an improved appearance rather than any loss of sharpness.
and actually shows an improved appearance rather than any loss of sharpness.
@fabrizioschiavi , I see those screenshots of rendering which are great, but they all seem to be at rather large sizes.
Can I consider that PragmataPro Variable will also sharply render "pixel-perfect" for low sizes such as this gif from the initial PragmataPro page? Especially in the context of this issue, I am interested in really low bitmap sizes such as 9pt.
https://fsd.it/wp-content/uploads/PragmataPro_bitmaps.gif
Sorry if I misunderstood something, but I thought that this "pixel-perfect" aspect of PragmataPro at sizes such as 9pt was due to those precise hand-crafted hints. So my concern was that maybe with PragmataPro Variable (which does not have those hand-hints), the pixels would not be as sharp at lower (pixel-visible) sizes.
Maybe you can confirm or infirm that point? Thanks a lot.
You’re absolutely right — the “pixel-perfect” sharpness you see at small sizes like 9pt in the original static PragmataPro is indeed the result of very meticulous hand-hinting. That’s something the static fonts were specifically optimized for, especially for use on non-retina displays or when antialiasing is off.
The PragmataPro Variable version, on the other hand, does not include those manual hints, as it was designed with high-resolution (HiDPI) screens in mind, where hinting is less critical. This means that at very small sizes on non-HiDPI screens — like 9pt with no antialiasing — it won’t achieve the same pixel-perfect rendering as the hinted static version.
If your use case really depends on that kind of sharp rendering at tiny sizes, especially without antialiasing, then the static hinted version would still be the better choice. The variable version is better suited for modern environments with antialiasing and higher pixel density, where flexibility and weight customization take priority over pixel-level precision.
Anyway these are some other screenshots of VS Code, Windows 10, PragmataPro Variable with smaller text. The result seems neat and sometimes improved to me.
Thanks for detailing all of this, and I effectively like this crispness in low sizes. I also like telling my friends that the font I use is the best thanks to this meticulous craft about those hints :-D. It makes me think of watchmaking, where famous makers are preciously crafting the mechanisms. I also like using old-school laptops, so I think I can live without those HiDPI screens for a long time!
I am now running the 0.9 version of PragmataPro. And here are the results. First diacritics:
It is way better, amazing job! If I had to still be critical about details (which I can totally cope with for now), I would say that the accent on the é seems more horizontal than its è counterpart (often, they are symmetrical).
Also, the accent on the â is a bit touching the letter while it is not the case for other letters with the same accent (we see on the screenshot that for îâ, the accent of the î is a bit higher than the one from â.
As for the boldness also at 9pt, this is great! We have it now! Thanks a lot.
Your screenshots are very helpful—I’ve noticed a few details that need improvement, and I’ll take care of them soon.
No problems, if you need more, I can share! Thank you.
Hey, after using that improved version for some time at 9pt (I just love that size), I thought I would post a new screenshot of my terminal with all bold characters.
There might be a few ones that could benefit from improvements, especially M, S. Also, some accentuated characters are really weird (but with that size, don't know if things could be improved).
To finish, we see that some special characters are the same between regular and bold.
Those are my remarks and I know that pixel constraints at that size make it hard to optimise, but I guess it is still worth sharing...
And another one that puts them into "real situations".