A general-use 5x7 Unicode font.
Go to file
Lephenixnoir 07ad882f64 slight refinements on runic (#4) 2019-06-28 13:51:23 -04:00
uf5x7 slight refinements on runic (#4) 2019-06-28 13:51:23 -04:00
README.md added Runic block 2019-06-21 09:56:36 +02:00
gen-chars.png initial commit - basic blocks, generator script, readme 2019-06-18 17:40:02 -04:00
gen.py make the generator script output two columns 2019-06-18 19:23:18 -04:00
preview.png initial commit - basic blocks, generator script, readme 2019-06-18 17:40:02 -04:00
uf5x7.png added Runic block 2019-06-21 09:56:36 +02:00

README.md

uf5x7: A 5x7 Unicode font

uf5x7 is a 5x7 font that suports most of the common Unicode blocks. It can be used in C.Basic with the custom font mechanism or in add-ins if the font manager supports it.

Preview image: "Mézalors Δ=2 ⇒ ∀x∈S, x⊆Δ"

The font is under CC0, there are no conditions for using it. A link back here would be appreciated though!

Related topic on Planète Casio: Police 5x7 Unicode pour add-ins et C.Basic

Currently the following blocks have been drawn:

  • U+0020 .. U+007F - ASCII (128 chars)
  • U+00A0 .. U+00FF - Latin-1 Supplement (96 chars)
  • U+0100 .. U+017F - Latin Extended-A (128 chars)
  • U+0370 .. U+03FF - Greek (144 chars)
  • U+0400 .. U+047F - Cyrillic (128 chars)
  • U+16A0 .. U+16FF - Runic (96 chars)
  • U+2010 .. U+205F - General punctuation (80 chars)
  • U+2070 .. U+209F - Subscripts and superscripts (48 chars)
  • U+20A0 .. U+20BF - Currency symbols (32 chars - thanks @Alice!)
  • U+2160 .. U+217F - Roman numerals (32 chars)
  • U+2190 .. U+21FF - Arrows (112 chars)
  • U+2200 .. U+22FF - Mathematical operators (256 chars)
  • U+2440 .. U+244F - Optical character recognition (16 chars - thanks @Alice!)
  • U+25A0 .. U+25FF - Geometric shapes (96 chars)
  • U+2800 .. U+28FF - Braille patterns (256 chars - thanks @Alice!)

The following blocks are being considered for future support:

  • Finish Cyrillic
  • IPA extensions and Phonetic extensions
  • Hiragana and Katakana

Other characters supported in FONTCHARACTER (incomplete list):

  • U+2139 - Imaginary number
  • U+231F - Fraction symbol
  • U+3010 - Special bracket
  • U+3011 - Special bracket

Constructing a full image of the font

The gen.py script can be used to generate uf5x7.png, the full image of the font. You will need Python 3 and Pillow (PIL might be okay).

% ./gen.py uf5x7/*

It will read each block's position from its file name (which should be on the form U\+[0-9A-Fa-f]{4}.png) and guess the block end from the image dimensions. For image files with a different name, it will output an anonymous block.

The file gen-chars.png provides some character templates for it to render the full image.

Using in C.Basic

TODO - Check out the documentation (egadget2.web.fc2.com) for extended font support.

Using in gint

Disclaimer: this is being worked on, but not implemented in gint yet.

When converting the font with fxconv, pass the name of a folder containing block images instead of a simple image and set charset to unicode.

% fxconv -f uf5x7/ name:uf5x7 charset:unicode grid.size:5x7

When using the font, just call dtext() as usual and make sure the string is encoded as utf8. The u8 prefix can be used if your source file is not encoded as utf8.

dtext(5, 5, "Mézalors Δ=2 ⇒ ∀x∈S, x⊆Δ", BLACK, WHITE);