adobe-fonts / source-code-pro

Monospaced font family for user interface and coding environments
https://adobe-fonts.github.io/source-code-pro/
SIL Open Font License 1.1
19.74k stars 1.62k forks source link

Proposal: Revise TRIANGLE to be connecting for 'legacy computing' text-graphics #301

Open clort81 opened 1 year ago

clort81 commented 1 year ago

Greetings and thank you for the Source Code Pro font. It is very good and is used as default monospace in many linux distributions (e.g. Fedora).

Monospace fonts are also used for terminal-based GUIs using text block glyphs such as: █ ▊ ▋ ▌ ▍ ▎ ▏ ▐ ▕ ▁ ▂ ▃ ▄ ▅ ▆ ▇ ▀ ▬ ░ ▒ ▓ ▔ ▘ ▝ ▖ ▗ ▟ ▙ ▜ ▛ ▚ ▞ ◢ ◣◥ ◤

We notice that most font designers have chosen to make the triangles non-connecting (full height, width). U+25E2 ◢ e2 97 a2 BLACK LOWER RIGHT TRIANGLE U+25E3 ◣ e2 97 a3 BLACK LOWER LEFT TRIANGLE U+25E4 ◤ e2 97 a4 BLACK UPPER LEFT TRIANGLE U+25E5 ◥ e2 97 a5 BLACK UPPER RIGHT TRIANGLE

This precludes their use as a block-graphic element

One font implements full-height 25E2-25E5, namely unscii http://viznut.fi/unscii/ It properly renders classic PETSCII art. (I was a PETSCII artist in the 80s)

In discussions about inclusion of full-height triangles for this purpose, the unicode consortium rejected inclusion of full-height TRIANGLES in the "legacy computing" extension. Their argument was that they were pre-existing in 25E2-25E5 and that unicode does not specify a glyph's particular representation in a font, merely the MEANING.

This is obviously flawed when applied to legacy computing; the MEANING of legacy terminal-graphic characters is only achieved by being connecting elements, having full-height and width. We note for example that these have dedicated glyphs despite both being 'blocks:

U+2588 █ FULL BLOCK U+2580 ▀ UPPER HALF BLOCK

Rejection of full-height triangles means terminal-based utilities and art can not make use of diagonal elements. We should be able to draw a diamond, for example, without space between rows. ◢◣ ◥◤ Despite being an 'old' tradition, text art continues to thrive to this day, and lacking full-height diagonals makes rendering historic works of computer art impossible, as well as denying us the ability to draw diagonal elements..

Would you consider revising Source Code Pro U25E2-U25E5 to use full height triangles, as well as including the 'legacy computing' glyph extensions?

pauldhunt commented 1 year ago

@clort81 i’ll look into it.

pauldhunt commented 1 year ago

@clort81 In looking into this issue, I find that the characters in question U+25E2–U+25E5 are not currently included in the fonts so any behavior you are seeing in connection with these will be due to fall-back font character replacement. To remedy this issue, I will add the characters in question to the next revision of the Source Code fonts.

clort81 commented 1 year ago

Thank's pauldhunt! It's an issue i'm bringing to every font designer I can reach. I refer also to: https://hpjansson.org/blag/2021/09/16/chafa-1-8-terminal-graphics-with-a-side-of-everything/ https://en.wikipedia.org/wiki/PETSCII Cheers and be well.