Include superscripts and subscripts in the builtin fonts

This commit is contained in:
cor
2026-01-05 00:08:13 +01:00
parent d2f90c3b75
commit 77d4ce1ab3
53 changed files with 22613 additions and 18159 deletions

View File

@@ -7,7 +7,7 @@
#pragma once
#include "EpdFontData.h"
static const uint8_t ubuntu_12_boldBitmaps[18633] = {
static const uint8_t ubuntu_12_boldBitmaps[18832] = {
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFB, 0xDC, 0x07, 0x7F, 0xFF, 0x70, 0xF7, 0xFD, 0xFF, 0x7F, 0xDF,
0xF3, 0xFC, 0xEF, 0x38, 0x0F, 0x3C, 0x0F, 0x3C, 0x0F, 0x3C, 0x0F, 0x3C, 0xFF, 0xFE, 0xFF, 0xFE,
0xFF, 0xFE, 0x1E, 0x78, 0x1E, 0x78, 0x3C, 0x78, 0xFF, 0xFE, 0xFF, 0xFE, 0xFF, 0xFE, 0x3C, 0xF0,
@@ -1142,37 +1142,49 @@ static const uint8_t ubuntu_12_boldBitmaps[18633] = {
0x0E, 0x1F, 0x3E, 0x7C, 0x7C, 0xF8, 0x7C, 0x7C, 0x3E, 0x1F, 0x0E, 0x08, 0x10, 0x78, 0x78, 0x7C,
0x3E, 0x3E, 0x1F, 0x3E, 0x3E, 0x7C, 0x78, 0x78, 0x10, 0x00, 0x78, 0x01, 0xE0, 0x0F, 0x80, 0x3C,
0x01, 0xF0, 0x07, 0x80, 0x3C, 0x00, 0xF0, 0x07, 0x80, 0x1E, 0x00, 0xF0, 0x03, 0xC0, 0x1E, 0x00,
0x78, 0x03, 0xC0, 0x0F, 0x00, 0x78, 0x01, 0xE0, 0x00, 0x07, 0xF8, 0x3F, 0xE1, 0xFF, 0x87, 0xC4,
0x3E, 0x00, 0xF0, 0x0F, 0xFE, 0x3F, 0xF8, 0x7C, 0x01, 0xF0, 0x0F, 0xFE, 0x3F, 0xF0, 0x3C, 0x00,
0xFC, 0xE1, 0xFF, 0x87, 0xFE, 0x07, 0xF8, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xC1, 0xE0, 0x07, 0xB0,
0x1F, 0xC0, 0x7F, 0x07, 0xF8, 0x3F, 0x80, 0xFF, 0xC1, 0x7F, 0x01, 0xFC, 0x3F, 0xC0, 0xFE, 0x01,
0xF8, 0x01, 0xE0, 0x07, 0x80, 0x1F, 0xE0, 0xFF, 0xC3, 0xFF, 0x06, 0x3E, 0xFF, 0xFF, 0xFF, 0xFF,
0xFF, 0xC3, 0xF8, 0x1F, 0x83, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x7C, 0x01, 0xF9, 0xC3, 0xFF, 0x8F,
0xFE, 0x0F, 0xF0, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xC1, 0xF8, 0x01, 0xE3, 0xFF, 0xEF, 0xFF, 0x80,
0xF8, 0x0F, 0xE3, 0xFF, 0x0F, 0xF8, 0x3F, 0xC0, 0xFC, 0x01, 0xF8, 0x01, 0xF0, 0x03, 0xE0, 0x07,
0xC0, 0x1F, 0xC0, 0x7F, 0xE0, 0x7F, 0xE0, 0xCF, 0xC0, 0x07, 0xC0, 0x07, 0x83, 0xFF, 0x0F, 0xFE,
0x3F, 0xFC, 0xFC, 0xF9, 0xE0, 0xF3, 0xC1, 0xE7, 0x83, 0xCF, 0x0F, 0x9F, 0x3E, 0x3F, 0xFC, 0x3F,
0xF0, 0x3F, 0x80, 0x03, 0xE0, 0x00, 0xF8, 0x00, 0x7F, 0x00, 0x1F, 0xC0, 0x07, 0xF8, 0x03, 0xFE,
0x00, 0xF7, 0xC0, 0x7D, 0xF0, 0x1E, 0x3C, 0x07, 0x8F, 0x83, 0xE3, 0xE0, 0xF0, 0x7C, 0x7C, 0x1F,
0x1F, 0x03, 0xC7, 0xFF, 0xFB, 0xFF, 0xFE, 0xFF, 0xFF, 0x80, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0x81, 0xFF, 0x03, 0xFE, 0x07, 0xFC, 0x0F, 0xF8, 0x1F, 0xF0, 0x3F, 0xE0, 0x7F, 0xC0, 0xFF, 0x81,
0xFF, 0x03, 0xFE, 0x07, 0xFC, 0x0F, 0xF8, 0x1F, 0xF0, 0x3F, 0xE0, 0x7F, 0xC0, 0xFF, 0x81, 0xFF,
0x03, 0xE0, 0xFF, 0xFB, 0xFF, 0xEF, 0xFF, 0x9F, 0x00, 0x3E, 0x00, 0xF8, 0x01, 0xF0, 0x03, 0xE0,
0x0F, 0x80, 0x1F, 0x00, 0xFC, 0x03, 0xE0, 0x1F, 0x00, 0xFC, 0x03, 0xE0, 0x1F, 0x00, 0x7C, 0x03,
0xFF, 0xEF, 0xFF, 0xBF, 0xFE, 0xFF, 0xFF, 0xFF, 0xFF, 0xF0, 0x00, 0x78, 0x01, 0xE0, 0x0F, 0x80,
0x3C, 0x01, 0xF0, 0x07, 0x80, 0x3C, 0x00, 0xF0, 0x07, 0x80, 0x1E, 0x00, 0xF0, 0x03, 0xC0, 0x1E,
0x00, 0x78, 0x03, 0xC0, 0x0F, 0x00, 0x78, 0x01, 0xE0, 0x00, 0x79, 0xFF, 0xDF, 0x78, 0x00, 0x0F,
0x00, 0x0F, 0x00, 0x1E, 0x00, 0x1E, 0x00, 0x1E, 0x00, 0x3C, 0x00, 0x3C, 0x00, 0x3C, 0x1C, 0x78,
0x7E, 0x78, 0x7E, 0x78, 0x7F, 0xF0, 0x7F, 0xF0, 0x0F, 0xF0, 0x07, 0xE0, 0x07, 0xE0, 0x03, 0xE0,
0x03, 0xC0, 0x3E, 0x7C, 0x7F, 0xFE, 0x7F, 0xFE, 0xF7, 0xEE, 0xF7, 0xEE, 0x7F, 0xFE, 0x7F, 0xFE,
0x3E, 0x7C, 0x00, 0x01, 0xF0, 0xFC, 0x7F, 0x1F, 0x07, 0x81, 0xE0, 0x78, 0x1E, 0x07, 0x81, 0xE0,
0x78, 0x1E, 0x07, 0x81, 0xE0, 0x78, 0x1E, 0x07, 0x81, 0xE0, 0x78, 0x3E, 0x3F, 0x8F, 0xC3, 0xE0,
0x00, 0x00, 0x3E, 0x1D, 0xFE, 0xF7, 0xFF, 0xBD, 0xFE, 0x71, 0xF0, 0x00, 0x03, 0xE1, 0xDF, 0xEF,
0x7F, 0xFB, 0xDF, 0xE7, 0x1F, 0x00, 0x00, 0xC0, 0x1E, 0x01, 0xCF, 0xFF, 0xFF, 0xFF, 0xFF, 0x07,
0x00, 0xF0, 0xFF, 0xFF, 0xFF, 0xFF, 0xF3, 0x80, 0x78, 0x03, 0x00, 0x01, 0xF3, 0xFF, 0xFF, 0xFF,
0xFF, 0xFF, 0xEF, 0xC0, 0xFF, 0xEF, 0xFF, 0xFF, 0xF3, 0xFF, 0x01, 0xF0, 0x00, 0xFF, 0xFF, 0xFF,
0xFF, 0xF0, 0x78, 0x0F, 0xFC, 0xFF, 0xFF, 0xFF, 0x3F, 0xF0, 0x3F, 0x7F, 0xFF, 0xFF, 0xFF, 0xFF,
0xFC, 0x78, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xF0,
0x78, 0x03, 0xC0, 0x0F, 0x00, 0x78, 0x01, 0xE0, 0x00, 0x3E, 0x3F, 0xBD, 0xFE, 0x7E, 0x3F, 0x1F,
0xCF, 0xEF, 0x7F, 0x1F, 0x00, 0x0F, 0x0F, 0x87, 0xC7, 0xE7, 0x73, 0xBB, 0xFF, 0xFF, 0x07, 0x03,
0x80, 0x7F, 0x3F, 0x9C, 0x0E, 0x07, 0xE3, 0xF8, 0x3C, 0x8E, 0x7F, 0x7F, 0x00, 0x0F, 0x1F, 0x9F,
0x8F, 0x07, 0xF7, 0xFB, 0xDE, 0xEF, 0x7F, 0x1F, 0x00, 0xFF, 0xFF, 0xC3, 0xC1, 0xE1, 0xE0, 0xF0,
0x70, 0x78, 0x3C, 0x1E, 0x00, 0x3F, 0x3F, 0xBD, 0xEE, 0xE7, 0xF3, 0xFB, 0xDF, 0xEF, 0xFF, 0xBF,
0x80, 0x3E, 0x3F, 0xBD, 0xDE, 0xF7, 0xFB, 0xFC, 0x1C, 0x3E, 0x7E, 0x3E, 0x00, 0x3E, 0x3F, 0xBD,
0xFE, 0x7E, 0x3F, 0x1F, 0xCF, 0xEF, 0x7F, 0x1F, 0x00, 0x1E, 0xFD, 0xFB, 0xF0, 0xE1, 0xC3, 0x87,
0x0E, 0x1C, 0x7E, 0x7F, 0x9B, 0xC1, 0xE1, 0xF1, 0xF1, 0xF0, 0xF0, 0x7F, 0x7F, 0x80, 0x7E, 0xFF,
0x6F, 0x0F, 0x3E, 0x3F, 0x0F, 0x47, 0xFF, 0xFE, 0x0F, 0x0F, 0x87, 0xC7, 0xE7, 0x73, 0xBB, 0xFF,
0xFF, 0x07, 0x03, 0x80, 0x7F, 0x3F, 0x9C, 0x0E, 0x07, 0xE3, 0xF8, 0x3C, 0x8E, 0x7F, 0x7F, 0x00,
0x0F, 0x1F, 0x9F, 0x8F, 0x07, 0xF7, 0xFB, 0xDE, 0xEF, 0x7F, 0x1F, 0x00, 0xFF, 0xFF, 0xC3, 0xC1,
0xE1, 0xE0, 0xF0, 0x70, 0x78, 0x3C, 0x1E, 0x00, 0x3F, 0x3F, 0xBD, 0xEE, 0xE7, 0xF3, 0xFB, 0xDF,
0xEF, 0xFF, 0xBF, 0x80, 0x3E, 0x3F, 0xBD, 0xDE, 0xF7, 0xFB, 0xFC, 0x1C, 0x3E, 0x7E, 0x3E, 0x00,
0x07, 0xF8, 0x3F, 0xE1, 0xFF, 0x87, 0xC4, 0x3E, 0x00, 0xF0, 0x0F, 0xFE, 0x3F, 0xF8, 0x7C, 0x01,
0xF0, 0x0F, 0xFE, 0x3F, 0xF0, 0x3C, 0x00, 0xFC, 0xE1, 0xFF, 0x87, 0xFE, 0x07, 0xF8, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF, 0xC1, 0xE0, 0x07, 0xB0, 0x1F, 0xC0, 0x7F, 0x07, 0xF8, 0x3F, 0x80, 0xFF, 0xC1,
0x7F, 0x01, 0xFC, 0x3F, 0xC0, 0xFE, 0x01, 0xF8, 0x01, 0xE0, 0x07, 0x80, 0x1F, 0xE0, 0xFF, 0xC3,
0xFF, 0x06, 0x3E, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xC3, 0xF8, 0x1F, 0x83, 0xFF, 0xFF, 0xFF, 0xFF,
0xFF, 0x7C, 0x01, 0xF9, 0xC3, 0xFF, 0x8F, 0xFE, 0x0F, 0xF0, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xC1,
0xF8, 0x01, 0xE3, 0xFF, 0xEF, 0xFF, 0x80, 0xF8, 0x0F, 0xE3, 0xFF, 0x0F, 0xF8, 0x3F, 0xC0, 0xFC,
0x01, 0xF8, 0x01, 0xF0, 0x03, 0xE0, 0x07, 0xC0, 0x1F, 0xC0, 0x7F, 0xE0, 0x7F, 0xE0, 0xCF, 0xC0,
0x07, 0xC0, 0x07, 0x83, 0xFF, 0x0F, 0xFE, 0x3F, 0xFC, 0xFC, 0xF9, 0xE0, 0xF3, 0xC1, 0xE7, 0x83,
0xCF, 0x0F, 0x9F, 0x3E, 0x3F, 0xFC, 0x3F, 0xF0, 0x3F, 0x80, 0x03, 0xE0, 0x00, 0xF8, 0x00, 0x7F,
0x00, 0x1F, 0xC0, 0x07, 0xF8, 0x03, 0xFE, 0x00, 0xF7, 0xC0, 0x7D, 0xF0, 0x1E, 0x3C, 0x07, 0x8F,
0x83, 0xE3, 0xE0, 0xF0, 0x7C, 0x7C, 0x1F, 0x1F, 0x03, 0xC7, 0xFF, 0xFB, 0xFF, 0xFE, 0xFF, 0xFF,
0x80, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x81, 0xFF, 0x03, 0xFE, 0x07, 0xFC, 0x0F, 0xF8, 0x1F,
0xF0, 0x3F, 0xE0, 0x7F, 0xC0, 0xFF, 0x81, 0xFF, 0x03, 0xFE, 0x07, 0xFC, 0x0F, 0xF8, 0x1F, 0xF0,
0x3F, 0xE0, 0x7F, 0xC0, 0xFF, 0x81, 0xFF, 0x03, 0xE0, 0xFF, 0xFB, 0xFF, 0xEF, 0xFF, 0x9F, 0x00,
0x3E, 0x00, 0xF8, 0x01, 0xF0, 0x03, 0xE0, 0x0F, 0x80, 0x1F, 0x00, 0xFC, 0x03, 0xE0, 0x1F, 0x00,
0xFC, 0x03, 0xE0, 0x1F, 0x00, 0x7C, 0x03, 0xFF, 0xEF, 0xFF, 0xBF, 0xFE, 0xFF, 0xFF, 0xFF, 0xFF,
0xF0, 0x00, 0x78, 0x01, 0xE0, 0x0F, 0x80, 0x3C, 0x01, 0xF0, 0x07, 0x80, 0x3C, 0x00, 0xF0, 0x07,
0x80, 0x1E, 0x00, 0xF0, 0x03, 0xC0, 0x1E, 0x00, 0x78, 0x03, 0xC0, 0x0F, 0x00, 0x78, 0x01, 0xE0,
0x00, 0x79, 0xFF, 0xDF, 0x78, 0x00, 0x0F, 0x00, 0x0F, 0x00, 0x1E, 0x00, 0x1E, 0x00, 0x1E, 0x00,
0x3C, 0x00, 0x3C, 0x00, 0x3C, 0x1C, 0x78, 0x7E, 0x78, 0x7E, 0x78, 0x7F, 0xF0, 0x7F, 0xF0, 0x0F,
0xF0, 0x07, 0xE0, 0x07, 0xE0, 0x03, 0xE0, 0x03, 0xC0, 0x3E, 0x7C, 0x7F, 0xFE, 0x7F, 0xFE, 0xF7,
0xEE, 0xF7, 0xEE, 0x7F, 0xFE, 0x7F, 0xFE, 0x3E, 0x7C, 0x00, 0x01, 0xF0, 0xFC, 0x7F, 0x1F, 0x07,
0x81, 0xE0, 0x78, 0x1E, 0x07, 0x81, 0xE0, 0x78, 0x1E, 0x07, 0x81, 0xE0, 0x78, 0x1E, 0x07, 0x81,
0xE0, 0x78, 0x3E, 0x3F, 0x8F, 0xC3, 0xE0, 0x00, 0x00, 0x3E, 0x1D, 0xFE, 0xF7, 0xFF, 0xBD, 0xFE,
0x71, 0xF0, 0x00, 0x03, 0xE1, 0xDF, 0xEF, 0x7F, 0xFB, 0xDF, 0xE7, 0x1F, 0x00, 0x00, 0xC0, 0x1E,
0x01, 0xCF, 0xFF, 0xFF, 0xFF, 0xFF, 0x07, 0x00, 0xF0, 0xFF, 0xFF, 0xFF, 0xFF, 0xF3, 0x80, 0x78,
0x03, 0x00, 0x01, 0xF3, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xEF, 0xC0, 0xFF, 0xEF, 0xFF, 0xFF, 0xF3,
0xFF, 0x01, 0xF0, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xF0, 0x78, 0x0F, 0xFC, 0xFF, 0xFF, 0xFF, 0x3F,
0xF0, 0x3F, 0x7F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFC, 0x78, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xF0,
};
static const EpdGlyph ubuntu_12_boldGlyphs[] = {
@@ -1732,24 +1744,41 @@ static const EpdGlyph ubuntu_12_boldGlyphs[] = {
{ 8, 13, 8, 0, 14, 13, 18095 }, //
{ 8, 13, 8, 0, 14, 13, 18108 }, //
{ 14, 18, 4, -5, 18, 32, 18121 }, //
{ 14, 17, 14, 1, 17, 30, 18153 }, //
{ 14, 17, 14, 0, 17, 30, 18183 }, //
{ 14, 17, 14, 0, 17, 30, 18213 }, //
{ 14, 17, 14, 1, 17, 30, 18243 }, //
{ 15, 18, 15, 0, 18, 34, 18273 }, //
{ 18, 17, 17, 0, 17, 39, 18307 }, //
{ 15, 21, 18, 2, 18, 40, 18346 }, //
{ 14, 20, 14, 0, 17, 35, 18386 }, //
{ 12, 3, 14, 1, 9, 5, 18421 }, //
{ 14, 18, 4, -5, 18, 32, 18426 }, //
{ 6, 5, 6, 0, 10, 4, 18458 }, //
{ 16, 18, 15, 0, 18, 36, 18462 }, //
{ 16, 8, 16, 0, 11, 16, 18498 }, //
{ 10, 25, 10, 0, 19, 32, 18514 }, //
{ 14, 11, 14, 0, 13, 20, 18546 }, //
{ 12, 14, 14, 1, 14, 21, 18566 }, //
{ 12, 15, 14, 1, 15, 23, 18587 }, //
{ 12, 15, 14, 1, 15, 23, 18610 }, //
{ 9, 10, 9, 0, 18, 12, 18153 }, //
{ 9, 10, 9, 0, 18, 12, 18165 }, //
{ 9, 10, 9, 0, 18, 12, 18177 }, //
{ 9, 10, 9, 0, 18, 12, 18189 }, //
{ 9, 10, 9, 0, 18, 12, 18201 }, //
{ 9, 10, 9, 0, 18, 12, 18213 }, //
{ 9, 10, 9, 0, 18, 12, 18225 }, //
{ 9, 10, 9, 0, 11, 12, 18237 }, //
{ 7, 10, 9, 0, 11, 9, 18249 }, //
{ 9, 10, 9, 0, 11, 12, 18258 }, //
{ 8, 10, 9, 0, 11, 10, 18270 }, //
{ 9, 10, 9, 0, 11, 12, 18280 }, //
{ 9, 10, 9, 0, 11, 12, 18292 }, //
{ 9, 10, 9, 0, 11, 12, 18304 }, //
{ 9, 10, 9, 0, 11, 12, 18316 }, //
{ 9, 10, 9, 0, 11, 12, 18328 }, //
{ 9, 10, 9, 0, 11, 12, 18340 }, //
{ 14, 17, 14, 1, 17, 30, 18352 }, //
{ 14, 17, 14, 0, 17, 30, 18382 }, // ₮
{ 14, 17, 14, 0, 17, 30, 18412 }, // ₴
{ 14, 17, 14, 1, 17, 30, 18442 }, // ₹
{ 15, 18, 15, 0, 18, 34, 18472 }, // ∂
{ 18, 17, 17, 0, 17, 39, 18506 }, // ∆
{ 15, 21, 18, 2, 18, 40, 18545 }, // ∏
{ 14, 20, 14, 0, 17, 35, 18585 }, // ∑
{ 12, 3, 14, 1, 9, 5, 18620 }, //
{ 14, 18, 4, -5, 18, 32, 18625 }, //
{ 6, 5, 6, 0, 10, 4, 18657 }, // ∙
{ 16, 18, 15, 0, 18, 36, 18661 }, // √
{ 16, 8, 16, 0, 11, 16, 18697 }, // ∞
{ 10, 25, 10, 0, 19, 32, 18713 }, // ∫
{ 14, 11, 14, 0, 13, 20, 18745 }, // ≈
{ 12, 14, 14, 1, 14, 21, 18765 }, // ≠
{ 12, 15, 14, 1, 15, 23, 18786 }, // ≤
{ 12, 15, 14, 1, 15, 23, 18809 }, // ≥
};
static const EpdUnicodeInterval ubuntu_12_boldIntervals[] = {
@@ -1773,28 +1802,31 @@ static const EpdUnicodeInterval ubuntu_12_boldIntervals[] = {
{ 0x2030, 0x2030, 0x228 },
{ 0x2039, 0x203A, 0x229 },
{ 0x2044, 0x2044, 0x22B },
{ 0x20AC, 0x20AC, 0x22C },
{ 0x20AE, 0x20AE, 0x22D },
{ 0x20B4, 0x20B4, 0x22E },
{ 0x20B9, 0x20B9, 0x22F },
{ 0x2202, 0x2202, 0x230 },
{ 0x2206, 0x2206, 0x231 },
{ 0x220F, 0x220F, 0x232 },
{ 0x2211, 0x2212, 0x233 },
{ 0x2215, 0x2215, 0x235 },
{ 0x2219, 0x221A, 0x236 },
{ 0x221E, 0x221E, 0x238 },
{ 0x222B, 0x222B, 0x239 },
{ 0x2248, 0x2248, 0x23A },
{ 0x2260, 0x2260, 0x23B },
{ 0x2264, 0x2265, 0x23C },
{ 0x2070, 0x2070, 0x22C },
{ 0x2074, 0x2079, 0x22D },
{ 0x2080, 0x2089, 0x233 },
{ 0x20AC, 0x20AC, 0x23D },
{ 0x20AE, 0x20AE, 0x23E },
{ 0x20B4, 0x20B4, 0x23F },
{ 0x20B9, 0x20B9, 0x240 },
{ 0x2202, 0x2202, 0x241 },
{ 0x2206, 0x2206, 0x242 },
{ 0x220F, 0x220F, 0x243 },
{ 0x2211, 0x2212, 0x244 },
{ 0x2215, 0x2215, 0x246 },
{ 0x2219, 0x221A, 0x247 },
{ 0x221E, 0x221E, 0x249 },
{ 0x222B, 0x222B, 0x24A },
{ 0x2248, 0x2248, 0x24B },
{ 0x2260, 0x2260, 0x24C },
{ 0x2264, 0x2265, 0x24D },
};
static const EpdFontData ubuntu_12_bold = {
ubuntu_12_boldBitmaps,
ubuntu_12_boldGlyphs,
ubuntu_12_boldIntervals,
35,
38,
29,
24,
-5,