Glossary

Advances

Unique to the "space" provider type. A dictionary of {character: width of space}.

Aligning

Putting a glyph as far as it can go in a direction without losing pixels.

Allocation

To declare a new codepoint in a font. Programs must have an allocated codepoint to map to before they can be added to a font. In some cases, a codepoint may be allocated, but have no program.

Ascent

The number of pixels at which any pixels below it are considered part of the descender. By default, this is height - scale. See height and scale.

Bitmap

Either a provider type or a texture.

Cell

Alias for glyph cell.

Char

Abbreviation for character.

Character

A single Unicode scalar string. This character's codepoint can range from U+0000 to U+10FFFF. Multi-component graphemes (skin-toned emojis, flags) are not single characters.

Charline

A string inside of a charlist. Contains the characters to map a resource's glyphs to.

Charlist

A list of strings that define which glyphs map to which characters. Used in bitmap providers.

Charstring

An Adobe Type 2 charstring. This is the format chosen to represent OpenType glyphs, and Charstrings are used in exported OpenType fonts. For more information, read https://adobe-type-tools.github.io/font-tech-notes/pdfs/5177.Type2.pdf.

Charstring program

The actual list of instructions inside of a charstring, contains strings that tell how to form a glyph. These are passed into internal exporting functions in order to form an OpenType font.

Codepoint

A number that maps to a specific single character. All characters have exactly 1 codepoint. For example, 🫐 BLUEBERRIES is 1FAD0 in hexadecimal, which is 129744 in decmial. 0x1FAD0 is the same as 129744. See https://en.wikipedia.org/wiki/Code_point.

Compacting

Fitting as many glyphs as possible into a single sheet. See Compacting.

Coverage

Details regarding how many characters and providers a font contains.

Coverage report

An instance of mcfonts.coverage_reports.CoverageReport. Contains information about a font, and functions for displaying this information. See the docstring for more usage details.

Excess

Values of a glyph that define the left padding and the real width.

Export Filter

An instance of mcfonts.providers.AnyFilter that is passed to exporting functions. It controls what characters and providers are exported, and under what conditions.

Exporting

Translating a Minecraft Font into a binary font format, such as OpenType.

Filter

Alias for export filter.

Font

A set of designs for letters, numbers, and symbols. Typefaces and fonts are not the same thing.

fontTools

The Python library used to build exported OpenType fonts. See https://github.com/fonttools/fonttools.

Font XML

Alias for TTX.

Full width

A glyph whose width is the same as its character cell.

Glyph

The texture of an individual Unicode character for a font.

Glyph cell

The dimensions a glyph has in a sheet. Defined as width × height. A cell may 8x8, 9x12, or even 24x24.

Glyph sizes

A binary format that defines how wide a Legacy Unicode character is. The high nibble is the starting width, and the lower nibble is the ending width. The byte's order is the codepoint it's assigned to.

Height

How large a glyph is rendered. Values must be multiples of the resources width; if a glyph's width is 8, acceptable heights are 8, 16, 32, 64, etc. A glyph width of 8 and a height is 16 results in a scale of 2. See ascent and scale.

Importing

Taking a format of a Minecraft font and collecting the providers and referenced textures, and returning a MinecraftFont instance with these collections.

Mode

Alias for PIL's image modes.

Namerecord

A string of text that's attached to a font. Can be the font's name, copyright notice, vendor URL, version, changelog, etc. See https://docs.microsoft.com/en-us/typography/opentype/spec/name#name-records.

Nominals

Alias for excess.

Notdef

The special glyph that is used as a fallback for when a glyph for a codepoint does not exist.

OpenType

The font format that exporting will write in.

Path

The location of a folder or a file.

Path shortcut

Symbols such as ~, %HOME%, and others that will translate to other locations in a path. Helps to shorten path lengths.

Policy

A string declared how to handle a selection. Most often, this is "include", "exclude", but may also add "include_only", "exclude_only".

Program

Alias for charstring program.

Provider

A dictionary obtained from a Minecraft font file that tells the font what glyphs are in it, and what characters they should be assigned to.

Provider type

What the type of a provider is. As of 1.19 JE, types are: bitmap, space, ttf, legacy_unicode.

Reference

Any external file that is specified inside of a provider. Most referenced files are textures. Normally used as past participle "referenced".

Resource

A individual referenced texture.

Scale

The ratio of a character's cell-width to the provider's height.

Sheet

Similar to resource, except that it isn't necessarily referenced. Sheets are local textures that contains a large number of individual glyphs.

Space

A glyph with no program, but only a defined width. Used for defining whitespace.

Texture

A PNG image that contains the pixels for any glyph(s).

TTX

Abbreviation for TrueType XML. TTX is a human-readable XML document that describes how a TrueType font is made. See https://fonttools.readthedocs.io/en/latest/ttx.html. mcfonts uses TTX as an intermediary representation of a font before compiling it.

Unicode

The universally-adopted standard for encoding, representing, and handling of text. See https://en.wikipedia.org/wiki/Unicode.

Unirange

A notation for specifying multiple Unicode characters compactly. See https://pypi.org/project/unirange/.

U+

Notation for representing the codepoints of Unicode characters. Always padded with 0 to a length of 4. However, 5+ digit codepoints are not padded.

0xFD -> U+00FD, 0x194 -> U+0194, 0xFE0F -> U+FE0F, 0x1FAE3 -> U+1FAE3, 0x10F023 -> U+10F023.

Validation

Ensuring that a Minecraft font is correct in structure, and that all referenced textures are correct in resolution.

Vanilla

The base Minecraft: Java Edition game, unmodded.

Width

How wide a glyph is, measured in pixels. This is the first number in the program list, albeit scaled.


Last update: 2023 November 30