A Cambridge PhD student just broke every typography rule. And it works.
His entire thesis: just 2 fonts. PragmataPro and Georgia.
The pairing shouldn’t work. But somehow it’s perfect.
Would you have thought of this combo?
Edward William Ayers thesis typeset in Georgia and PragmataPro





Golova AI showcases its brand with PragmataPro as the default typeface across its app, websites (golova.ai, golova.one, golova.io, golova.help) and social networks. The combination of this font with their geometric and minimalistic illustrations creates an impressive visual identity that enhances user engagement and brand recognition.
Rive’s code editor now includes PragmataPro as the default programming font.
Rive saves developers the hassle of font setup and delivers a professional coding environment from the start.
On the PragmataPro Semiotics page you can search through 13,427 symbols, all identified and named manually.
Each glyph can be found by name and codepoint or copied directly.
A useful tool for those working with code, design, or technical texts who want quick access to the font’s complete Unicode set.
These are the Unicode ranges included:
- Arrows
- Mathematical Operators
- Miscellaneous Technical
- Control Pictures
- Enclosed Alphanumerics
- Box Drawing
- Block Elements
- Geometric Shapes
- Miscellaneous Symbols
- Dingbats
- Misc. Mathematical Symbols-A
- Suppl. Arrows-A
- Braille
- Supplemental Arrows-B
- Misc. Math Symbols-B
- Supplemental Math Operators
- Misc. Symbols and Arrows
- Private Use Area (Nerd icons)
- Playing Cards
- Eclosed Alphanumeric Symbols suppl.
- Misc. Symbols & Pictographs
- Supplemental Arrows-C
- Symbols for Legacy Computing
- Supplementary Private Use Area-A (Nerd icons)
A new PragmataPro and PragmataPro Variable update includes important fixes:
► OpenType feature ss15 Tags uses language keywords only; to apply Reversed background to text enclosed in [ ] use OT feature ss20
► Nerd fonts included are updated to version 3.0 and improved for Mono versions too.
► Numbers was added to ss08, ss09, ss10 and ss16 OT features.
► =>>> and <<<= ligatures for Verilog/SystemVerilog language added.
► ;; ;;; ;;;; and ;;;;; ligatures for Lisp added.
► =!= ligature added.
► === ligature becomes three lines, !== and =/= ligature becomes slashed thee lines enabling cv04 OT feature.
► <= ligatures becomes a equal with arrow shape pointing left enabling cv05 OT feature.
Feel free to contact me directly or notify an issue via Github to improve the PragmataPro project.
Thank you!
Unicode U+270A RAISED FIST added to the latest PragmataPro font and variable font release.
— all weights: completed the Unicode Dingbats set for Mono and Modular-spaced versions
— all weights: adjusted spacing of the ̌ caron symbol U+02C7 spacing to 1024 em, the caron accent U+030C remains at 0 spacing.
— all weights: fixed TrueType hinting of some Texture Healing glyphs.
Changes are applied to the variable font version too
Feel free to contact me directly or notify an issue via Github to improve the PragmataPro project.
Thank you!
This minor update contains numerous fixes and a handful of improvements:
— New Markdown ligatures design
Now the ballot boxes are more geometric and wider in the modular-spaced versions of PragmataPro.
This solution fixes some overlapping issues in Terminal applications.
— Looking for a text-only loading animation?
New design of arc glyphs ◜ ◠ ◝ ◞ ◡ ◟
Now more consistent with the related circle symbol
— Other changes:
— all weights: added Math glyphs with the same weight of the Latin letters activable, enabling ss19 Stylistic Set 19 feature.
— all weights: improved TrueType hinting of some digits, $ symbol and == === ligatures.
— all weights Mono: added missing Powerline symbols.
— all weights Mono: added new stars Dingbats.
— all weights: added <--- <---> ---> ligatures.
— all weights: — emdash and – endash are now monospaced in modular-spaced versions.
Feel free to contact me directly or notify an issue via Github to improve PragmataPro and PragmataPro Variable again and again.
Thank you!
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
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]
[-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
supported.
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.
'smcp,c2sc,onum'
-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
tags)
-U USESUFFIX, --usesuffix USESUFFIX
use a custom suffix when --suffix is provided
-R REPLACENAMES, --replacenames REPLACENAMES
search for strings in the font naming tables and
replace them, format is
'search1/replace1,search2/replace2,...'
-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:
To understand better how OT features works on PragmataPro I suggest to take a look at PragmataPro Handbook

Thanks to Aaron Madlon-Kay my PragmataPro Semiotics reached another level!
https://fabrizioschiavi.github.io/pragmatapro-semiotics/
Type a keyword to find one of the 12,000 symbols included in PragmataPro
Starting today, PragmataPro has an even more comfortable readability!
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!

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.

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.
— 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
— Extended the range of ligatures
Ligatures helps a lot the programmers. Now the help is increased!
— 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!

— 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.

Click here to see the entire HTML 5 list set in PragmataPro™
— Comodore 64 nostalgia?

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

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

PragmataPro Runic is the first monospaced Runic of all time
— 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

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 Arabic with accents

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!


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
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
In all the weights of all the versions.
— Enabled 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

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!

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 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 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

My son surprised me with this video, a creative live installation of PragmataPro, where a roller coaster winds through the hints shaped by the font’s large spiral. What a wonderful surprise! ❤️

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)!
— Harmonized APL symbols
Thanks to the help of abrudz now PragmataPro has more consistent 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!
— 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.
The entire map of the metro of Milan I redesigned using this exclusive box drawing method
Perfect also for text only diagrams
— 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
— Added all the icons of Nerd font
Nerd font contents a lot icons useful to Vim users. More info: http://nerdfonts.com/
— Regular: improved the design of the entire Fullwidth and Halfwidth letters
PragmataPro can interact more better with other CJK fonts.
— 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.
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
➋ Arabic alphabet improved
PragmataPro now it’s more Kufi style to improve the readability at low sizes
➌ Hebrew alphabet improved
and added important glyphs in the Unicode Alphabetic Presentation Form set
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
http://xahlee.info/comp/unicode_user_interface_icons.html
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!
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)
➋ 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’
➌ 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
➍ 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
Feel free to contact me directly or notify an issue via Github to improve PragmataPro again and again.
Thank you!









































