# Slashed 0 in IBM Plex - freeze alt. characters in otf fonts

DevFeed: [Slashed 0 in IBM Plex - freeze alt. characters in otf fonts](<https://devfeed.tech/articles/slashed-0-in-ibm-plex-freeze-alt-characters-in-otf-fonts-25250.md>)

Original publisher: [Read original article](<https://kau.sh/blog/freeze-alt-char-open-type-font/>)

Author: Kaushik Gopal

Published: 2023-11-27T01:41:42Z

Content type: tutorial

Language: en

Sources: [Kaushik Gopal's Site](<https://devfeed.tech/sources/kaushik-gopal-s-site.md>)

Topics: [Font](<https://devfeed.tech/topics/font.md>), [ibm](<https://devfeed.tech/topics/ibm.md>), [Open Source](<https://devfeed.tech/topics/open-source.md>), [Zsh](<https://devfeed.tech/topics/zsh.md>)

Tags: [commands](<https://devfeed.tech/tags/commands.md>), [fonts](<https://devfeed.tech/tags/fonts.md>), [ibm](<https://devfeed.tech/tags/ibm.md>), [install](<https://devfeed.tech/tags/install.md>), [open-source](<https://devfeed.tech/tags/open-source.md>), [plex](<https://devfeed.tech/tags/plex.md>)

## AI overview

This tutorial explains how to permanently enable selected alternative glyphs in an OpenType font. Using IBM Plex Mono as an example, it covers obtaining the complete OTF file, identifying stylistic character sets, and using pyftfeatfreeze to generate a customized font variant.

## Source excerpt

OpenType fonts have font features or variants that you can use to represent certain characters differently. For example, my beloved IBM Plex Mono1 has quite a few alternative glyphs to pick from: I prefer the single story "g" and slashed "0" characters for clarity. But you'll find no obvious way to turn these version of the characters on permanently. After searching and trying quite a few ways to do this, I found an approach that works pretty well. This blog post will explain how you can pick alternative characters that come with certain open type fonts like IBM Plex Mono and build a version of the font that will permanently switch these alternative character variants on. Step 1: obtain the complete .otf font file ## It's important to have your source .otf file have the complete list of characters. If your font doesn't have these to begin with, this approach will not work. As an example, IBM Plex Mono's full otf can be downloaded here. Step 2: identify the alternative character sets you want ## Upload your font to wakamaifondue.com. You'll get a neat summary of your font and all the available features variants. Step 3: use pyftfeatfreeze ## pyftfeatfreeze is a fantastic open source tool that allows you to create a new version of your font with the specific set of alternative characters chosen. Here's the entire set of commands I used to generate my variant of IBM Plex Mono: #!/bin/zsh fontSuffix="KG" # create a new directory for your font mkdir -p "IBM-Plex-Mono-$fontSuffix" # change to directory that has original otf font cd IBM-Plex-Mono # install the tool pipx install opentype-feature-freezer # Pick the right combination of stylistic characters # By default IBM Plex Mono ships: # Regular - styled g; styled a (with caps) # Italic - plain g ; plain a (without cap) # I prefer keeping it all consistent # so I change my italic fonts to also have the styled versions of g/a # In the non-italic versions of IBM Plex Mono, change # ss03 - slashed 0 for f in $(fd -HI ibmple