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.

Rangestring#

A notation for specifying multiple Unicode codepoints, see rangestrings.

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.

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.