Text shaping is the process of converting text to glyph indices and positions as part of text rendering.[1] It is complementary to font rendering as part of the text rendering process; font rendering is used to generate the glyphs, and text shaping decides which glyphs to render and where they should be put on the image plane.[2] Unicode is generally used to specify the text to be rendered.

Text shaping results in substantially better results on Latin script; for some scripts with complex text layout such as Arabic script, text shaping is necessary for text to be readable at all.[3]

Most graphical user interface systems, including those in MacOS, iOS,[4] and Microsoft Windows have their own native text rendering engines that include text shaping. Microsoft's Uniscribe framework permits the use of pluggable shaping engines.[5] Monotype's WorldType system also provides shaping functions.[6]

In the open source world, HarfBuzz is a popular text shaping engine. According to HarfBuzz's developers, HarfBuzz is used by a range of software products including Android, Chrome, ChromeOS, Firefox, GNOME, GTK+, KDE, Qt, LibreOffice, OpenJDK, XeTeX, PlayStation, Microsoft Edge, Adobe Photoshop, Illustrator, InDesign, and Godot Engine.[7]

Text shaping engines require descriptions of shaping properties and rules packaged in a format known as a shaping model. Shaping models include OpenType Layout, Graphite, and Apple Advanced Typography.[8]

See also

edit

References

edit
  1. ^ "What is HarfBuzz?: HarfBuzz Manual". harfbuzz.github.io. Retrieved 2024-06-23.
  2. ^ "Shaping – Fonts Knowledge". Google Fonts. Retrieved 2024-06-23.
  3. ^ "Shaping – Fonts Knowledge". Google Fonts. Retrieved 2024-12-07.
  4. ^ "Language Tag Table - TrueType Reference Manual - Apple Developer". developer.apple.com. Retrieved 2024-06-24.
  5. ^ Karl-Bridge-Microsoft (2021-01-07). "Uniscribe - Win32 apps". learn.microsoft.com. Retrieved 2024-06-25.
  6. ^ "WorldType | Monotype". www.monotype.com. 2019-10-22. Retrieved 2024-06-25.
  7. ^ harfbuzz/harfbuzz, HarfBuzz, 2024-06-23, retrieved 2024-06-24
  8. ^ "text-shaping/docs/otl.md at main · typotheque/text-shaping". GitHub. Retrieved 2024-06-25.