Please remember this category is for features inside the latest pre-release only. To make a new suggestion for Java (like a block or gameplay suggestion), please use the appropriate category for your suggestion.

1

Resource Pack Fonts should have support for both Kerning and Ligatures

2 Comments

Please sign in to leave a comment.

Sorted by oldest
  • 1
    Registered User commented
    Comment actions Permalink

    RTL and Spacing

    The ligature and bitmap providers now would also have 2 new json keys, right_to_left which would be a simple boolean field (false by default) and a space field which would take an integer input (1 by default) which would work similarly to the space provider but wouldn't erase the character in the process. Another key which is to be considered but not necessary would be a width key which would make it easier to create monospaced fonts (for languages like Japanese) using the bitmap provider instead of having to add translucent pixels at the end of glyphs as a workaround.

    Here's an example of a bitmap defining the Arabic "ت" character:

    {
        "providers":
        [
            {
                "type":"bitmap",
    "file":"custom:font\/arabic.png",
                "ascent":7,
                "height":8,
                "right_to_left":true,
    "space":0,
                "chars":[
                    "
              ]
            }
    ]
    }

     

  • 1
    Registered User commented
    Comment actions Permalink

    Kerning

    Kerning would be defined by a new kerning provider which would contain a chars key and a spacing key. The chars key would only contain a list of strings, where said strings would only support double-symbol strings. The spacing key would contain a list of spacings that would all correspond directly to the list of chars.

    Here's an example of the kerning provider being used to move the T character left by 3 pixels for "LT" and the a character being moved left by 2 pixels for "Ta"

    {
        "providers":
        [
            {
                "type":"kerning",
                "chars":[
                    "LT",
                    "Ta"
                ],
                "spacing":[
                    -3,
                    -2
                ]
            }
        ]
    }