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]
TrueType is an outline font standard developed by Apple in the late 1980s as a competitor to Adobe's Type 1 fonts used in PostScript. It has become the most common format for fonts on the classic Mac OS, macOS, and Microsoft Windows operating systems.
OpenType is a format for scalable computer fonts. Derived from TrueType, it retains TrueType's basic structure but adds many intricate data structures for describing typographic behavior. OpenType is a registered trademark of Microsoft Corporation.
Arial is a sans-serif typeface in the neo-grotesque style. Fonts from the Arial family are included with all versions of Microsoft Windows after Windows 3.1, as well as in other Microsoft programs, Apple's macOS, and many PostScript 3 printers. In Office 2007, Arial was replaced by Calibri as the default typeface in PowerPoint, Excel, and Outlook.
Pango is a text layout engine library which works with the HarfBuzz shaping engine for displaying multi-language text.
Scribus is free and open-source desktop publishing (DTP) software available for most desktop operating systems. It is designed for layout, typesetting, and preparation of files for professional-quality image-setting equipment. Scribus can also create animated and interactive PDF presentations and forms. Example uses include writing newspapers, brochures, newsletters, posters, and books.
Arial Unicode MS is a TrueType font and the extended version of the font Arial. Compared to Arial, it includes higher line height, omits kerning pairs and adds enough glyphs to cover a large subset of Unicode 2.1—thus supporting most Microsoft code pages, but also requiring much more storage space. It also adds Ideographic layout tables, but unlike Arial, it mandates no smoothing in the 14–18 point range, and contains Roman (upright) glyphs only; there is no oblique (italic) version. Arial Unicode MS was previously distributed with Microsoft Office, but this ended in 2016 version. It is bundled with Mac OS X v10.5 and later. It may also be purchased separately from Ascender Corporation, who licenses the font from Microsoft.
QuickDraw GX was a replacement for the QuickDraw (QD) 2D graphics engine and Printing Manager inside the classic Mac OS. Its underlying drawing platform was an object oriented, resolution-independent, retained mode system, making it much easier for programmers to perform common tasks. Additionally, GX added various curve-drawing commands that had been lacking from QD, as well as introducing TrueType as its basic font system.
FreeType is a software development library used to render text onto bitmaps, and which provides support for other font-related operations. The FreeType font rasterization engine is free and open-source software with the source code dual-licensed under a BSD-like license and the GPL. FreeType supports a number of font formats, including TrueType, Type 1, and OpenType.
Uniscribe is the Microsoft Windows set of services for rendering Unicode-encoded text, supporting complex text layout. It is implemented in the dynamic link library USP10.DLL. Uniscribe was released with Windows 2000 and Internet Explorer 5.0. In addition, the Windows CE platform has supported Uniscribe since version 5.0.
Cairo is an open-source graphics library that provides a vector graphics-based, device-independent API for software developers. It provides primitives for two-dimensional drawing across a number of different backends. Cairo uses hardware acceleration when available.
A computer font is implemented as a digital data file containing a set of graphically related glyphs. A computer font is designed and created using a font editor. A computer font specifically designed for the computer screen, and not for printing, is a screen font.
XeTeX is a TeX typesetting engine using Unicode and supporting modern font technologies such as OpenType, Graphite and Apple Advanced Typography (AAT). It was originally written by Jonathan Kew and is distributed under the X11 free software license.
Apple Advanced Typography (AAT) is Apple Inc.'s computer technology for advanced font rendering, supporting internationalization and complex features for typographers, a successor to Apple's little-used QuickDraw GX font technology of the mid-1990s.
Complex text layout (CTL) or complex text rendering is the typesetting of writing systems in which the shape or positioning of a grapheme depends on its relation to other graphemes. The term is used in the field of software internationalization, where each grapheme is a character.
Windows Presentation Foundation (WPF) is a free and open-source user interface framework for Windows-based desktop applications. WPF applications are based in .NET, and are primarily developed using C# and XAML.
Graphite is a programmable Unicode-compliant smart font technology and rendering system developed by SIL International as free software, distributed under the terms of the GNU Lesser General Public License and the Common Public License.
A Unicode font is a computer font that maps glyphs to code points defined in the Unicode Standard. The vast majority of modern computer fonts use Unicode mappings, even those fonts which only include glyphs for a single writing system, or even only support the basic Latin alphabet. Fonts which support a wide range of Unicode scripts and Unicode symbols are sometimes referred to as "pan-Unicode fonts", although as the maximum number of glyphs that can be defined in a TrueType font is restricted to 65,535, it is not possible for a single font to provide individual glyphs for all defined Unicode characters. This article lists some widely used Unicode fonts that support a comparatively large number and broad range of Unicode characters.
Apple's Macintosh computer supports a wide variety of fonts. This support was one of the features that initially distinguished it from other systems.
HarfBuzz is a software library for supporting text shaping, which is the process of converting Unicode text to glyph indices and positions. The newer version, New HarfBuzz (2012–), targets various font technologies while the first version, Old HarfBuzz (2006–2012), targeted only OpenType fonts.
DirectWrite is a text layout and glyph rendering API by Microsoft. It was designed to replace GDI/GDI+ and Uniscribe for screen-oriented rendering and was first shipped with Windows 7 and Windows Server 2008 R2, as well as Windows Vista and Windows Server 2008. DirectWrite is hardware-accelerated when running on top of Direct2D, but can also use the CPU to render on any target, including a GDI bitmap.