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_10_boldBitmaps[13720] = {
static const uint8_t ubuntu_10_boldBitmaps[13863] = {
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x0F, 0xFF, 0xF0, 0xFF, 0xFF, 0xEF, 0xEF, 0xE7, 0xE7, 0x1E, 0xF0,
0xF7, 0x87, 0x3C, 0x39, 0xCF, 0xFF, 0xFF, 0xFC, 0xF7, 0x87, 0x3C, 0x39, 0xC7, 0xFF, 0xFF, 0xFE,
0xF7, 0x87, 0xBC, 0x39, 0xE1, 0xCE, 0x00, 0x0F, 0x01, 0xE0, 0x7F, 0x9F, 0xF7, 0xFC, 0xF3, 0x9E,
@@ -843,29 +843,38 @@ static const uint8_t ubuntu_10_boldBitmaps[13720] = {
0xDF, 0xEE, 0x1E, 0x3F, 0x9F, 0xC3, 0xC3, 0xE1, 0xF0, 0x00, 0x38, 0xF3, 0xE7, 0x9F, 0x1E, 0x3E,
0x3C, 0x38, 0x00, 0x00, 0xE1, 0xE3, 0xC3, 0xC7, 0xCF, 0x3C, 0x78, 0xE0, 0x00, 0x00, 0xE0, 0x3C,
0x0F, 0x01, 0xE0, 0x78, 0x0F, 0x03, 0xC0, 0x78, 0x1E, 0x03, 0xC0, 0xF0, 0x1E, 0x07, 0x80, 0xE0,
0x3C, 0x00, 0x07, 0xF0, 0xFF, 0x1F, 0xE1, 0xF2, 0x3C, 0x07, 0xFE, 0x7F, 0xC3, 0xC0, 0x7F, 0xC7,
0xFC, 0x3C, 0x01, 0xF3, 0x1F, 0xF0, 0xFF, 0x07, 0xF0, 0xFF, 0xFF, 0xFF, 0xFF, 0xF0, 0xF0, 0x0F,
0xC0, 0xFC, 0x0F, 0xC3, 0xF0, 0x3F, 0xC3, 0xFC, 0x1F, 0xC3, 0xF0, 0x3F, 0x03, 0xF0, 0x0F, 0x00,
0x3F, 0x87, 0xFC, 0x3F, 0xC3, 0x3E, 0xFF, 0xFF, 0xFF, 0x1F, 0x83, 0xF0, 0xFF, 0xFF, 0xFF, 0x78,
0x07, 0xCC, 0x7F, 0xE3, 0xFE, 0x1F, 0xC0, 0x7F, 0xFB, 0xFF, 0xC1, 0xF0, 0x03, 0x87, 0xFF, 0x3F,
0xF8, 0x0F, 0x01, 0xF8, 0x7F, 0x83, 0xF8, 0x1F, 0x00, 0x7C, 0x01, 0xF0, 0x07, 0xC0, 0x1E, 0x00,
0x3F, 0x83, 0xFC, 0x3F, 0xE3, 0x3F, 0x00, 0xF1, 0xFF, 0x3F, 0xF7, 0xFF, 0x7D, 0xFF, 0x0F, 0xF0,
0xF7, 0xBE, 0x7F, 0xE7, 0xFC, 0x1F, 0x80, 0x07, 0x80, 0x0F, 0x80, 0x3F, 0x00, 0x7F, 0x00, 0xFE,
0x03, 0xDC, 0x07, 0xBC, 0x1E, 0x78, 0x3C, 0x78, 0x78, 0xF1, 0xE1, 0xE3, 0xC1, 0xE7, 0xFF, 0xDF,
0xFF, 0xBF, 0xFF, 0x80, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xE0, 0xFF, 0x07, 0xF8, 0x3F, 0xC1, 0xFE,
0x0F, 0xF0, 0x7F, 0x83, 0xFC, 0x1F, 0xE0, 0xFF, 0x07, 0xF8, 0x3F, 0xC1, 0xFE, 0x0F, 0xF0, 0x78,
0xFF, 0xFF, 0xFF, 0xFF, 0xBC, 0x03, 0xC0, 0x7C, 0x07, 0x80, 0x78, 0x0F, 0x01, 0xE0, 0x78, 0x1E,
0x07, 0xC0, 0xF0, 0x3F, 0xFF, 0xFF, 0xFF, 0xE0, 0xFF, 0xFF, 0xFF, 0xFC, 0x00, 0xE0, 0x3C, 0x0F,
0x01, 0xE0, 0x78, 0x0F, 0x03, 0xC0, 0x78, 0x1E, 0x03, 0xC0, 0xF0, 0x1E, 0x07, 0x80, 0xE0, 0x3C,
0x00, 0x77, 0xFE, 0xE0, 0x00, 0x3C, 0x00, 0xE0, 0x07, 0x80, 0x1E, 0x00, 0x70, 0x03, 0xC0, 0x0F,
0x0E, 0x38, 0xFD, 0xE1, 0xF7, 0x87, 0xFC, 0x03, 0xF0, 0x0F, 0xC0, 0x1E, 0x00, 0x78, 0x00, 0x3D,
0xF3, 0xFF, 0xFF, 0xEF, 0xCE, 0x7F, 0xFB, 0xBF, 0xFC, 0xF7, 0xC0, 0x00, 0x07, 0xC7, 0xE3, 0xF3,
0xE1, 0xE0, 0xF0, 0x78, 0x3C, 0x1E, 0x0F, 0x07, 0x83, 0xC1, 0xE0, 0xF0, 0x78, 0x3C, 0x7E, 0x3E,
0x1F, 0x00, 0x00, 0x3C, 0x77, 0xEF, 0x7F, 0xEF, 0xFE, 0xE3, 0xC0, 0x00, 0x3C, 0x77, 0xFF, 0x7F,
0xEF, 0xFE, 0xE3, 0xC0, 0x01, 0x80, 0xE0, 0x3B, 0xFF, 0xFF, 0xFF, 0xF0, 0xE0, 0x70, 0xFF, 0xFF,
0xFF, 0xFD, 0xC0, 0x70, 0x18, 0x00, 0x03, 0xCF, 0xFF, 0xFF, 0xFE, 0xF8, 0x3F, 0xEF, 0xFC, 0xFF,
0x03, 0xC0, 0x0F, 0xFF, 0xFF, 0xFF, 0xC0, 0xF0, 0x3F, 0xCF, 0xFD, 0xFF, 0x07, 0xDF, 0xFF, 0xFF,
0xFC, 0xF0, 0x00, 0x0F, 0xFF, 0xFF, 0xFF, 0xC0,
0x3C, 0x00, 0x7C, 0x7E, 0xFE, 0xE7, 0xE7, 0xE7, 0xFE, 0x7E, 0x7C, 0x1E, 0x3E, 0x7E, 0x6E, 0xFF,
0xFF, 0x0E, 0x0E, 0x7E, 0xFD, 0xC3, 0xE7, 0xE1, 0xD3, 0xFF, 0xFC, 0x1E, 0x3E, 0x78, 0x7E, 0xFE,
0xEE, 0xFE, 0x7E, 0x3C, 0xFE, 0xFE, 0x0E, 0x1C, 0x1C, 0x38, 0x38, 0x38, 0x7C, 0x7E, 0xEE, 0x7E,
0x7E, 0xFE, 0xEF, 0xFE, 0x7E, 0x7C, 0x7E, 0xEE, 0xEE, 0x7E, 0x7E, 0x1E, 0x7C, 0x78, 0x7C, 0x7E,
0xFE, 0xE7, 0xE7, 0xE7, 0xFE, 0x7E, 0x7C, 0x1D, 0xF7, 0xDF, 0x1C, 0x71, 0xC7, 0x1C, 0x7D, 0xFD,
0xB8, 0xF3, 0xCF, 0x1C, 0x7F, 0xFE, 0xFD, 0xFD, 0x79, 0xE3, 0xE1, 0xD3, 0xFF, 0xFC, 0x1E, 0x3E,
0x7E, 0x6E, 0xFF, 0xFF, 0x0E, 0x0E, 0x7E, 0xFD, 0xC3, 0xE7, 0xE1, 0xD3, 0xFF, 0xFC, 0x1E, 0x3E,
0x78, 0x7E, 0xFE, 0xEE, 0xFE, 0x7E, 0x3C, 0xFE, 0xFE, 0x0E, 0x1C, 0x1C, 0x38, 0x38, 0x38, 0x7C,
0x7E, 0xEE, 0x7E, 0x7E, 0xFE, 0xEF, 0xFE, 0x7E, 0x7C, 0x7E, 0xEE, 0xEE, 0x7E, 0x7E, 0x1E, 0x7C,
0x78, 0x07, 0xF0, 0xFF, 0x1F, 0xE1, 0xF2, 0x3C, 0x07, 0xFE, 0x7F, 0xC3, 0xC0, 0x7F, 0xC7, 0xFC,
0x3C, 0x01, 0xF3, 0x1F, 0xF0, 0xFF, 0x07, 0xF0, 0xFF, 0xFF, 0xFF, 0xFF, 0xF0, 0xF0, 0x0F, 0xC0,
0xFC, 0x0F, 0xC3, 0xF0, 0x3F, 0xC3, 0xFC, 0x1F, 0xC3, 0xF0, 0x3F, 0x03, 0xF0, 0x0F, 0x00, 0x3F,
0x87, 0xFC, 0x3F, 0xC3, 0x3E, 0xFF, 0xFF, 0xFF, 0x1F, 0x83, 0xF0, 0xFF, 0xFF, 0xFF, 0x78, 0x07,
0xCC, 0x7F, 0xE3, 0xFE, 0x1F, 0xC0, 0x7F, 0xFB, 0xFF, 0xC1, 0xF0, 0x03, 0x87, 0xFF, 0x3F, 0xF8,
0x0F, 0x01, 0xF8, 0x7F, 0x83, 0xF8, 0x1F, 0x00, 0x7C, 0x01, 0xF0, 0x07, 0xC0, 0x1E, 0x00, 0x3F,
0x83, 0xFC, 0x3F, 0xE3, 0x3F, 0x00, 0xF1, 0xFF, 0x3F, 0xF7, 0xFF, 0x7D, 0xFF, 0x0F, 0xF0, 0xF7,
0xBE, 0x7F, 0xE7, 0xFC, 0x1F, 0x80, 0x07, 0x80, 0x0F, 0x80, 0x3F, 0x00, 0x7F, 0x00, 0xFE, 0x03,
0xDC, 0x07, 0xBC, 0x1E, 0x78, 0x3C, 0x78, 0x78, 0xF1, 0xE1, 0xE3, 0xC1, 0xE7, 0xFF, 0xDF, 0xFF,
0xBF, 0xFF, 0x80, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xE0, 0xFF, 0x07, 0xF8, 0x3F, 0xC1, 0xFE, 0x0F,
0xF0, 0x7F, 0x83, 0xFC, 0x1F, 0xE0, 0xFF, 0x07, 0xF8, 0x3F, 0xC1, 0xFE, 0x0F, 0xF0, 0x78, 0xFF,
0xFF, 0xFF, 0xFF, 0xBC, 0x03, 0xC0, 0x7C, 0x07, 0x80, 0x78, 0x0F, 0x01, 0xE0, 0x78, 0x1E, 0x07,
0xC0, 0xF0, 0x3F, 0xFF, 0xFF, 0xFF, 0xE0, 0xFF, 0xFF, 0xFF, 0xFC, 0x00, 0xE0, 0x3C, 0x0F, 0x01,
0xE0, 0x78, 0x0F, 0x03, 0xC0, 0x78, 0x1E, 0x03, 0xC0, 0xF0, 0x1E, 0x07, 0x80, 0xE0, 0x3C, 0x00,
0x77, 0xFE, 0xE0, 0x00, 0x3C, 0x00, 0xE0, 0x07, 0x80, 0x1E, 0x00, 0x70, 0x03, 0xC0, 0x0F, 0x0E,
0x38, 0xFD, 0xE1, 0xF7, 0x87, 0xFC, 0x03, 0xF0, 0x0F, 0xC0, 0x1E, 0x00, 0x78, 0x00, 0x3D, 0xF3,
0xFF, 0xFF, 0xEF, 0xCE, 0x7F, 0xFB, 0xBF, 0xFC, 0xF7, 0xC0, 0x00, 0x07, 0xC7, 0xE3, 0xF3, 0xE1,
0xE0, 0xF0, 0x78, 0x3C, 0x1E, 0x0F, 0x07, 0x83, 0xC1, 0xE0, 0xF0, 0x78, 0x3C, 0x7E, 0x3E, 0x1F,
0x00, 0x00, 0x3C, 0x77, 0xEF, 0x7F, 0xEF, 0xFE, 0xE3, 0xC0, 0x00, 0x3C, 0x77, 0xFF, 0x7F, 0xEF,
0xFE, 0xE3, 0xC0, 0x01, 0x80, 0xE0, 0x3B, 0xFF, 0xFF, 0xFF, 0xF0, 0xE0, 0x70, 0xFF, 0xFF, 0xFF,
0xFD, 0xC0, 0x70, 0x18, 0x00, 0x03, 0xCF, 0xFF, 0xFF, 0xFE, 0xF8, 0x3F, 0xEF, 0xFC, 0xFF, 0x03,
0xC0, 0x0F, 0xFF, 0xFF, 0xFF, 0xC0, 0xF0, 0x3F, 0xCF, 0xFD, 0xFF, 0x07, 0xDF, 0xFF, 0xFF, 0xFC,
0xF0, 0x00, 0x0F, 0xFF, 0xFF, 0xFF, 0xC0,
};
static const EpdGlyph ubuntu_10_boldGlyphs[] = {
@@ -1425,24 +1434,41 @@ static const EpdGlyph ubuntu_10_boldGlyphs[] = {
{ 7, 11, 7, 0, 11, 10, 13321 }, //
{ 7, 11, 7, 0, 11, 10, 13331 }, //
{ 11, 15, 3, -4, 15, 21, 13341 }, //
{ 12, 15, 12, 0, 15, 23, 13362 }, //
{ 12, 15, 12, 0, 15, 23, 13385 }, //
{ 12, 15, 12, 0, 15, 23, 13408 }, //
{ 13, 15, 12, 0, 15, 25, 13431 }, //
{ 12, 15, 13, 0, 15, 23, 13456 }, //
{ 15, 15, 15, 0, 15, 29, 13479 }, //
{ 13, 17, 15, 1, 15, 28, 13508 }, //
{ 11, 17, 11, 0, 15, 24, 13536 }, //
{ 10, 3, 12, 1, 8, 4, 13560 }, //
{ 11, 15, 3, -4, 15, 21, 13564 }, //
{ 5, 4, 5, 0, 9, 3, 13585 }, //
{ 14, 15, 13, 0, 15, 27, 13588 }, //
{ 13, 7, 13, 0, 10, 12, 13615 }, //
{ 9, 21, 8, 0, 16, 24, 13627 }, //
{ 12, 11, 12, 0, 12, 17, 13651 }, //
{ 10, 14, 12, 1, 14, 18, 13668 }, //
{ 10, 13, 12, 1, 13, 17, 13686 }, //
{ 10, 13, 12, 1, 13, 17, 13703 }, //
{ 8, 9, 8, 0, 15, 9, 13362 }, //
{ 8, 8, 8, 0, 15, 8, 13371 }, //
{ 7, 9, 8, 0, 15, 8, 13379 }, //
{ 8, 9, 8, 0, 15, 9, 13387 }, //
{ 8, 8, 8, 0, 15, 8, 13396 }, //
{ 8, 9, 8, 0, 15, 9, 13404 }, //
{ 8, 9, 8, 0, 15, 9, 13413 }, //
{ 8, 9, 8, 0, 9, 9, 13422 }, //
{ 6, 9, 8, 0, 9, 7, 13431 }, //
{ 7, 9, 8, 0, 9, 8, 13438 }, //
{ 7, 9, 8, 0, 9, 8, 13446 }, //
{ 8, 8, 8, 0, 9, 8, 13454 }, //
{ 7, 9, 8, 0, 9, 8, 13462 }, //
{ 8, 9, 8, 0, 9, 9, 13470 }, //
{ 8, 8, 8, 0, 9, 8, 13479 }, //
{ 8, 9, 8, 0, 9, 9, 13487 }, //
{ 8, 9, 8, 0, 9, 9, 13496 }, //
{ 12, 15, 12, 0, 15, 23, 13505 }, //
{ 12, 15, 12, 0, 15, 23, 13528 }, // ₮
{ 12, 15, 12, 0, 15, 23, 13551 }, // ₴
{ 13, 15, 12, 0, 15, 25, 13574 }, // ₹
{ 12, 15, 13, 0, 15, 23, 13599 }, // ∂
{ 15, 15, 15, 0, 15, 29, 13622 }, // ∆
{ 13, 17, 15, 1, 15, 28, 13651 }, // ∏
{ 11, 17, 11, 0, 15, 24, 13679 }, // ∑
{ 10, 3, 12, 1, 8, 4, 13703 }, //
{ 11, 15, 3, -4, 15, 21, 13707 }, //
{ 5, 4, 5, 0, 9, 3, 13728 }, // ∙
{ 14, 15, 13, 0, 15, 27, 13731 }, // √
{ 13, 7, 13, 0, 10, 12, 13758 }, // ∞
{ 9, 21, 8, 0, 16, 24, 13770 }, // ∫
{ 12, 11, 12, 0, 12, 17, 13794 }, // ≈
{ 10, 14, 12, 1, 14, 18, 13811 }, // ≠
{ 10, 13, 12, 1, 13, 17, 13829 }, // ≤
{ 10, 13, 12, 1, 13, 17, 13846 }, // ≥
};
static const EpdUnicodeInterval ubuntu_10_boldIntervals[] = {
@@ -1466,28 +1492,31 @@ static const EpdUnicodeInterval ubuntu_10_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_10_bold = {
ubuntu_10_boldBitmaps,
ubuntu_10_boldGlyphs,
ubuntu_10_boldIntervals,
35,
38,
24,
20,
-4,