Tag Archives: PragmataPro


Do you want to use the Serif Italic instead of the default Italic?

Now is possible to customize PragmataPro, and other fonts, using OpenType features via OpenType Feature Freezer

OpenType Feature Freezer

A very useful tool, available also as command-line, designed by Adam Twardoch and others that freeze OpenType features to fonts, by remapping their Unicode assignments.

The complete command-line syntax:

usage: pyftfeatfreeze [-h] [-f FEATURES] [-s SCRIPT] [-l LANG] [-z] [-S]
                      [-U USESUFFIX] [-R REPLACENAMES] [-i] [-r] [-n] [-v]
                      inpath [outpath]

With pyftfeatfreeze you can "freeze" some OpenType features into a font. These
features are then "on by default", even in apps that don't support OpenType
features. Internally, the tool remaps the "cmap" table of the font by applying
the specified GSUB features. Only single and alternate substitutions are

positional arguments:
  inpath                input .otf or .ttf font file
  outpath               output .otf or .ttf font file (optional)

optional arguments:
  -h, --help            show this help message and exit

options to control feature freezing:
  -f FEATURES, --features FEATURES
                        comma-separated list of OpenType feature tags, e.g.
  -s SCRIPT, --script SCRIPT
                        OpenType script tag, e.g. 'cyrl' (default: 'latn')
  -l LANG, --lang LANG  OpenType language tag, e.g. 'SRB ' (optional)
  -z, --zapnames        zap glyphnames from the font ('post' table version 3,
                        .ttf only)

options to control font renaming:
  -S, --suffix          add a suffix to the font family name (by default, the
                        suffix will be constructed from the OpenType feature
                        use a custom suffix when --suffix is provided
                        search for strings in the font naming tables and
                        replace them, format is
  -i, --info            update font version string

reporting options:
  -r, --report          report languages, scripts and features in font
  -n, --names           output names of remapped glyphs during processing
  -v, --verbose         print additional information during processing
  -V, --version         show program's version number and exit

Some snippets:

PragmataPro Mono Liga Script (Italics → Script)

pyftfeatfreeze -R 'PragmataPro Mono Liga/PragmataPro Mono Liga Script' PragmataPro_Mono_R_liga_0830.ttf PragmataPro_Mono_R_liga_0830_Script.ttf &&
pyftfeatfreeze -f 'ss06' -R 'PragmataPro Mono Liga/PragmataPro Mono Liga Script' PragmataPro_Mono_I_liga_0830.ttf PragmataPro_Mono_I_liga_0830_Script.ttf &&
pyftfeatfreeze -R 'PragmataPro Mono Liga/PragmataPro Mono Liga Script' PragmataPro_Mono_B_liga_0830.ttf PragmataPro_Mono_B_liga_0830_Script.ttf &&
pyftfeatfreeze -f 'ss07' -R 'PragmataPro Mono Liga/PragmataPro Mono Liga Script' PragmataPro_Mono_Z_liga_0830.ttf PragmataPro_Mono_Z_liga_0830_Script.ttf

PragmataPro Mono Liga Serif (Italics & Bolds → Serif)

pyftfeatfreeze -R 'PragmataPro Mono Liga/PragmataPro Mono Liga Serif' PragmataPro_Mono_R_liga_0830.ttf PragmataPro_Mono_R_liga_0830_Serif.ttf &&
pyftfeatfreeze -f 'ss09' -R 'PragmataPro Mono Liga/PragmataPro Mono Liga Serif' PragmataPro_Mono_I_liga_0830.ttf PragmataPro_Mono_I_liga_0830_Serif.ttf &&
pyftfeatfreeze -f 'ss08' -R 'PragmataPro Mono Liga/PragmataPro Mono Liga Serif' PragmataPro_Mono_B_liga_0830.ttf PragmataPro_Mono_B_liga_0830_Serif.ttf &&
pyftfeatfreeze -f 'ss10' -R 'PragmataPro Mono Liga/PragmataPro Mono Liga Serif' PragmataPro_Mono_Z_liga_0830.ttf PragmataPro_Mono_Z_liga_0830_Serif.ttf

PragmataPro Mono Liga Fraktur (Italics → Fraktur)

pyftfeatfreeze -R 'PragmataPro Mono Liga/PragmataPro Mono Liga Fraktur' PragmataPro_Mono_R_liga_0830.ttf PragmataPro_Mono_R_liga_0830_Fraktur.ttf &&
pyftfeatfreeze -f 'ss03' -R 'PragmataPro Mono Liga/PragmataPro Mono Liga Fraktur' PragmataPro_Mono_I_liga_0830.ttf PragmataPro_Mono_I_liga_0830_Fraktur.ttf &&
pyftfeatfreeze -R 'PragmataPro Mono Liga/PragmataPro Mono Liga Fraktur' PragmataPro_Mono_B_liga_0830.ttf PragmataPro_Mono_B_liga_0830_Fraktur.ttf &&
pyftfeatfreeze -f 'ss04' -R 'PragmataPro Mono Liga/PragmataPro Mono Liga Fraktur' PragmataPro_Mono_Z_liga_0830.ttf PragmataPro_Mono_Z_liga_0830_Fraktur.ttf

A lighter MacOS script by Benas Svipas if somebody wants to use it instead of OpenType Feature Freezer GUI:

#!/usr/bin/env bash

# Install - python and pipx
brew install python pipx &> /dev/null
pipx ensurepath &> /dev/null

# Download - OpenType Feature Freezer (https://github.com/twardoch/fonttools-opentype-feature-freezer)
pipx install opentype-feature-freezer &> /dev/null

# Build - Italic stylistic alternates
pyftfeatfreeze -f 'ss09' PragmataProI_liga_0830.ttf PragmataProI_liga_0830_script.ttf
pyftfeatfreeze -f 'ss09' PragmataPro_Mono_I_liga_0830.ttf PragmataPro_Mono_I_liga_0830_script.ttf
echo "Italic stylistic alternates have been built"

# Build - Bold Italic stylistic alternates
pyftfeatfreeze -f 'ss10' PragmataProZ_liga_0830.ttf PragmataProZ_liga_0830_script.ttf
pyftfeatfreeze -f 'ss10' PragmataPro_Mono_Z_liga_0830.ttf PragmataPro_Mono_Z_liga_0830_script.ttf
echo "Bold Italic stylistic alternates have been built"

After it’s done you will find new .ttf files which will end with _script.ttf. Install them and you’re good to go. Remember to kill and relaunch your IDE or Terminal so it recognizes new font files.

The actual PragmataPro OpenType feature list:

PragmataPro OpenType features

To understand better how OT features works on PragmataPro I suggest to take a look at PragmataPro Handbook

PragmataPro Semiotics ui

Thanks to Aaron Madlon-Kay my PragmataPro Semiotics reached another level!


Type a keyword to find one of the 12,000 symbols included in PragmataPro


Starting today, PragmataPro has an even more comfortable readability!

PragmataPro 0.830 out now! Starting today, PragmataPro has an even more comfortable readability. Wider glyphs and less space between glyphs.PragmataPro 0.830 coding demo

Try to believe!

Other changes:

— all weights: added and updated the Nerd font icons
for the first time was added to Mono versions

— all weights: added notabene ligature available at codepoint 100010

— all weights: added Battery symbols at the codepoints EE00-EE05

— all weights: all the ligatures and Nesteruk glyphs for diagrams are moved to Unicode set 100000-10FFF0

— all weights: fixed the ⟜⊸○∘--- alignment

— Regular: fixed (U+2264) and (U+2A87) alignment

— all weights: improved some APL symbols design

— all weights: disabled ^^ -> ligature and Git Tree glyphs as default
Git Tree glyphs are activable using OpenType Feature ss13


Feel free to contact me directly or notify an issue via Github to improve PragmataPro again and again.
Thank you!

PragmataPro Fraktur 1.2 2023

Under the numerous requests of expansion of the essential set, I finally completed the PragmataPro Fraktur typeface.

I designed numbers, lowercase numbers are default but uppercase ones are available via OpenType feature Lining Figures (lnum).
s lowercase is available also in historical version enabling OpenType feature Historical Forms (hist)
The set includes for the first time, I suppose, the unreleased design for Fraktur alphabets of glyphs like currency symbols (€ $ £ ¢ ¥) the ampersand (&) etc.
I designed all these unseen before glyphs in Fraktur using the priciples used in the Middle Ages: slants of the parts of the outlines (55° and 72°), variable weights of these parts and modular horizontal rhythm.

PragmataPro Fraktur 1.2 2023 OpenType Ligatures

I also designed ligatures to improve the readability and to respect North European tradition.
There are two kind of hyphen, endash, emdash and equal: default ones at 55° and the alternative at 0°, enabling using OpenType Stylistic Set 01 feature (ss01).

If you are interested to see more about this upgrade visit PragmataPro Fraktur page.


This version coming from my experience as web developer.
Often I exchanged colon (:) with semicolon (;) and sometime I had the suspect that L lowercase can be more distinguished using a new design. After this redesign I can work now more sure to avoid misinterpretations.

Redesign dollar l colon eszett in PragmataPro 0.829

— Curly slash and backslash in Git tree command line

It’s possible to enable it using Pragmata Pro™ with OpenType Stylistic Set 13 named ‘git tree’.
Every slash and backslash, at specific conditions, will appears with curly terminations even with Italic versions.
From now coders can see a more nice Git tree in their command line editor

PragmataPro command line git tree

— Extended the range of ligatures

Ligatures helps a lot the programmers. Now the help is increased!

PragmataPro 0829 ligatures

— Added Bulgarian and Serbian language support

Cyrillic set now includes also Bulgarian and Serbian characters

— Other improvements:

— Regular: Soft dotted improved and Mathematical Alphanumeric Symbols glyphs can be accented
like other standard letters using Combining Diacritical Marks set

Regular: improved the design of APL glyphs

Regular: improved the design of Mathematical Operators

Regular: BQN programming glyphs like
˜˘•÷׬⎉⚇⍟◶⊘⎊⍎⍕⟨⟩√⋆⌽∊↑∧⊔⊏⊐π←↙⍷⍋⊑⊒⍳⊣⊢⍉↕⊸∘○⟜⋄↩↖⌾⥊↓∨⌊⍒⌈≢≤≥⇐… are improved by design

Regular: added curly arrows ︎↖︎↗ ↙↘︎ ↘︎↙ ↗↖︎ ligature coming from ↘︎ ↖︎ ↗ ↙ diagonal arrows combinations

Regular: Geometric Shapes set are more distinguished at small sizes

Regular: added Combining Diacritical Marks Extended and Combining Diacritical Marks Supplemental set

all weights: checkmarks appears by default from now, no more from Stylistic Set ss12

all weights: added Creative Commons glyphs and harmonized © copyright sign also

all weights: added Hellschreiber pause symbol

all weights: improved design and positioning of Graphics for Legacy Computing symbols

Feel free to contact me directly or notify an issue via Github to improve PragmataPro again and again.
Thank you!


Amazing use of my typeface PragmataPro by Rai, the public Italian TV broadcast, to promote the 50th Internet Day.

Art director: Roberto Bagatti

Happy Internet Day to all!

PragmataPro HTML5 Entity compared with other fonts

— All the 2109 HTML 5 entities are included in this version

From now your web page can supports HTML5 entities without worries with Pragmata Pro because it’s one of the rarest fonts that can do this.

HTML5 requires also some weird combined characters hard to find.

All the 2109 HTML5 entities was designed and available since PragmataPro 0.828

Click here to see the entire HTML 5 list set in PragmataPro™

— Comodore 64 nostalgia?

Sample of PragmataPro Graphic for Legacy Computing coming from Teletext, Atari and Comodore64

Pragmata Pro™ is the first monospaced typeface offering ‘Graphic for Legacy Computing’ Unicode set. All these glyphs coming from Teletext, Atari and Comodore 64 system.

These symbols converted as text are designed to build images. Practically is a ‘Block Elements’ set extension.

— Added Runic set

PragmataPro Runic, includes Elder Futhark, Younger Futhark, Anglo-Saxon and Medieval Runes

I love the design of Runic letters and, after the request of a user, I’ve added them with pleasure to PragmataPro

PragmataPro Runic coding sample

PragmataPro Runic is the first monospaced Runic of all time

— New # TODO, # ERROR and other useful programming ligatures

PragmataPro new # TODO, # ERROR and other useful programming ligatures

Do you remember [TODO], [ERROR]… ligatures?
The same trick was extended also # TODO, # ERROR

— Better Drawings with Boxes and Arrows

PragmataPro 0.828 - All the glyphs of the 'Box Drawing' set are vertically aligned to 'Arrows', 'Supplemental Arrows', 'Supplemental Arrows-C' and 'Geometric Shapes' when they are next

The position of the arrows or geometric shapes like triangles are now correct when them are next to Box Drawing symbols.
Since v_0.828 diagrams and schemas are now more consistent

— Greek letters are more distinguishable

PragmataPro new Greek Theta, theta and zero. Letters are more distinguishable

— PragmataPro Arabic with accents

PragmataPro Arabic with accents planned to works as automatic composition

PragmataPro Arabic diacritics are combinable with Arabic script

— Other improvements:

Regular: ‘Greek’, ‘Cyrillic’,’Latin Extended-A’ and ‘Latin Extended-B’ sets
are combinable with ‘Combining Diacritical Marks’

all weights: added these new ligatures:
->- -<- =>= =<=

all weights: added and updated new Nerd symbols from Nerd font

Regular: improved the design of  л (el), м (em), н (en), ģ (gcommaccent)

Regular: improved the design of some ‘Mathematical Operators’ and ‘Miscellaneous Technical’ glyphs to improve APL programming

Bold, Italic and Bold Italic: added ‘Latin Extended-B’ and ‘Latin Extended Additional’ sets

all weights: added the glyphs set by two numbers ‘Enclosed Alphanumerics’ like 11, 12, 13… 20

Feel free to contact me directly or notify an issue via Github to improve PragmataPro again and again.Thank you!

Kus-stenen retraced by Fabrizio Schiavi, set in PragmataPro Runic

PragmataPro 0.827 loading time, a giant running like a cheetahWith the help of @kelas and other good friends of Pragmata Pro from the open source community, version 0.827 comes with a brand new ligature substitution engine which is 10-20x faster than before, depending on the input.

Now Pragmata Pro, with its 9437 glyphs, can be loaded in a few µs.
Practically a giant who run like a cheetah!


— Java and C/C++ reserved keywords are now kerned

PragmataPro C++ and Java reserved keywords kerned with GPOS table

Pragmata Pro™ is the first monospaced typeface to offer precise glyph positioning in common programming keywords, enabled by default in editors that support OpenType GPOS table.
The consistency and orthogonality of fixed pitch is now combined with the finesse of a proportional font.
The result is less tiring, aesthetically pleasing coding experience.
Your eye will know the difference before you do.



— Added Enclosed Alphanumerics set

Pragmata Pro Enclosed Alphanumerics

In all the weights of all the versions.



— Enabled Hebrew Nikkud

Pragmata Pro Hebrew Nikkud

At the moment only in Regular versions. In the next releases the same marking system will be added to all the weights and also in Arabic alphabet.



— Added Markdown checklist ligatures

Markdown checklist ligatures are available enabling OpenType Stylistic Set 12 in your editor and are based on these combinations:

- [ ]    - [-]    - [v]    - [x]


— Marks and accents are combinable with letters

PragmataPro sample of letters combined with marksMarks  are often used in Phonetics texts and Mathematical formulas.
Since this version they are in their right place.



— Other improvements:

all weights: problems with some terminal emulators have been resolved

all weights: added these ligatures:
|- turnstile like
||- double turnstile like
_|_ bottom like
=~= <-< >-> <--> <== <<== ==>>

all weights: vertical position of * (asterisk) are aligned to x-height

Regular: improved TrueType hinting of → ← ↑ ↓ # { } / \

Regular: improved the consistency between Mathematical Operators and Miscellaneous Technical set

— Bold, Italic and Bold Italic: added IPA characters and its extensions

all weights: typing us after numbers and space will appears microsecond µs in serif variant



Feel free to contact me directly or notify an issue via Github to improve PragmataPro again and again.
Thank you!

PragmataPro optimized for Terminal app

I’m working at the PragmataPro 0.827 release and in order to fixing the slowdown of Terminal with the complete PragmataPro issue I’ll include in the package also Essential PragmataPro with the characters and symbols essential for programming.

For this I need your help in identify the very essential Unicode characters for this new Essential version.

Please select the Unicode Ranges and the OpenType features you feel essential or contact me directly if you prefer

Thanks for your time!

PragmataPro 0.826 all characters
PragmataPro 0.826 OpenType features
2018-06-25 Essential Pragmata Pro survey results
PragmataPro Live perimetral view

PragmataPro Live is the exhibition of the first set of 9,000 glyphs of the Regular weight printed on a Forex panel of 21 meters folded into a big spiral.

PragmataPro hint created between the folded panel

PragmataPro exhibition is hosted by Aiap at the first floor of Palazzo Poli, the palace where was build Trevi Fountain in Rome and it’s visible until October 1, 2017

PragmataPro Live Rome poster

My son presents PragmataPro Live installation to you in a unusual way: a roller coaster inside the hint created by the big spiral. He makes a great surprise to me with this video. ❤️

PragmataPro is here, Palazzo Poli Rome

After many requests, I decided to change the font files structure of PragmataPro:


New font files structure since PragmataPro 0.826

The PragmataPro complete pack includes two folders: Fonts with ligatures and Fonts without ligatures
Both folders includes two kind of fonts grouped as Modularspaced and Monospaced.

The goal is to fit the need to have Modularspaced fonts without ligatures, Monospaced fonts with ligatures.
Two situations impossible to get before.


— New ligatures for R language and C#

Now the entire set of ligatures has reached 177 for every weight (Regular, Bold, Italic and Bold Italic)!


PragmataPro 0.826 new ligatures




— Harmonized APL symbols

Thanks to the help of abrudz now PragmataPro has more consistent APL symbols


PragmataPro 0.826 APL symbols



— Minor improvements:

— Regular and Italic: improved the TrueType hinting

— all weights: ligatures are now more compatible with IDEs like IntelliJ IDEA



Log-in and download your updated files for free, if you purchased the license from this site.

Feel free to contact me directly or notify an issue via Github to improve PragmataPro again and again.
Thank you!


Thanks to the numerous suggestions arrived, PragmataPro now is even a more complete professional typeface:


— Added Extra Bow Drawing symbols suggested by Dmtri Nesteruk

Some month ago Dmtri Nesteruk wrote me an email with a sketched good idea: to add a bullet to some used box drawing glyphs. The result is very interesting! By now  also a lot of graphic designers can be rethink the use of box drawing.


Milano Metro map text only

The entire map of the metro of Milan I redesigned using this exclusive box drawing method

Milano Metro map text only

Perfect also for text only diagramsdiagram using PragmataPro box drawing extra



— Added [FIXME] [TODO] [BUG] [NOTE] [HACK] [MARK] ligatures to emphasize important messages in command line

After all these notifications I suppose now has all the command line messages emphasized

Pragmata Pro command line messages ligatures



— Added all the icons of Nerd font

Nerd font contents a lot icons useful to Vim users. More info: http://nerdfonts.com/

nerd fonts combined with pragmatapro font



— Regular: improved the design of the entire Fullwidth and Halfwidth letters

PragmataPro can interact more better with other CJK fonts.

pragmatapro fullwidth alphabet



— Minors improvements:

Regular: added power symbols to Miscellaneous Technical set

all weights: improved the TrueType hinting above all for Microsoft Windows

all weights: added :<: :>: ligatures for Scala

all weights: added :) :-) :( :-( :D :P :3 ligatures for text chatting


Feel free to contact me directly or notify an issue via Github to improve PragmataPro again and again.
Thank you!


A command line chart system based on Unicode glyphs

Today I released on GitHub my idea of a trading chart based on Terminal or other command line applications.

Terminal Trading Chart sample

The mixing of volumes data and prices data:
│ (Unicode U+2502) = small volumes
┃ (Unicode U+2503) = medium volumes
█ (Unicode U+2588) = big volumes
Red and green colors are used to have a more clear idea visually of the percentage of selling and buying contracts referred on a defined time.
The simplification of the chart through a small grid helps to find the right moment for investing.

Feel free to contact me if you are interested in using this unprecedented chart system
Feedbacks are welcome


Three important reached goals and changes in the version 0.823 of PragmataPro:


➊ Completion of Math support!

It seems impossible to me but it’s really happens


PragmataPro first modular font with all math support


➋ Arabic alphabet improved

PragmataPro now it’s more Kufi style to improve the readability at low sizes


PragmataPro Arabic 2016


➌ Hebrew alphabet improved

and added important glyphs in the Unicode Alphabetic Presentation Form set


PragmataPro Hebrew 2016


 Last but not least:

* Regular: improved the design of many Math symbols
/universal now has an alternative version available using OpenType ss12 feature
/emptyset now has an alternative version available using OpenType ss13 feature

* all weights: now PragmataPro is completely compatible with IntelliJ IDEA software

* all weights: removed U+3000-303F CJK Symbols and Punctuation set
to avoid conflicts with other CJK fonts

* all weights: added the greek glyphs useful for LaTeX /Digamma and /digamma

* Regular: improved the hinting of Latin sets glyphs

* Regular: added the missing subscript and superscript Latin and Greek small letters,
available using OpenType feature “sinf” “sups”

* all weights: now Braille alphabet haven’t helpers lines
to use the Braille alphabet with helpers line use
OpenType Stylistic Set 11 “ss11” feature

* all weights: added these important ligatures:
<--- <!-- --> :=> <->

* Regular: added and improved the design of the glyphs for Computer User Interface



Log-in and download your updated files for free, if you purchased the license from this site.
Feel free to contact me directly or notify an issue via Github to improve PragmataPro again and again.
Thank you!


PragmataPro font v_0.822

There are a lot of changes in the version 0.822 of PragmataPro:


➊ Perfect integration with CJK fonts and Emoji

All the glyphs are been scaled to exactly 0.5 em² wide (= 1024-unit em) so they are compatible with CJK (Chinese/Japanese/Korean) characters, where every character are exactly 1 em² wide (= 2048 unit)

PragmataPro integration with CJK monospaced fonts



➋ All the arrows, planned by Unicode until now, are been designed

PragmataPro is now the first modular/monospaced font of the history that includes all these arrows.
You can see all from my Github repository named ‘Arrow Finder

Arrows of PragmataPro displayed by pointing orientation



➌ Towards completion of Math support

It’s been improved the design of U+2200 – U+22FF Mathematical Operators set
added the U+2980 – U+29FF Misc. Mathematical Symbols-B set
added the U+2A00 – U+2AFF Supplemental Math Operators set
under the precious supervision of Pierre Le Marre

PragmataPro improved thanks by Pierre Le Marre annotations



➍ New ligatures for functional programming languages

The design of ligatures that includes < and > is changed
Added a lot of new ligatures to improve the programming in Haskell, Scala, Swift … in all the weights available

PragmataPro 0.822 ligatures for functional programming


Feel free to contact me directly or notify an issue via Github to improve PragmataPro again and again.
Thank you!

  • No products in the cart.