Are we digital typesetting yet?

Several solutions of differing quality exist, but the field is fragmented and no mature software satisfies all desirable requirements. Most recently, typst joined the competition.

You might also be interested in the website polytype.dev by the author of SILE. It shows different typesetting engines in different usecases.

Ecosystem

Plaintext approach

WYSIWYG approach

Digital typesetting systems

Definition

“A digital typesetting system is a tool using digital means to arrange text and media into digital documents”

Desirable features

Global scripts
Unicode support to enable writing in as many writing systems as possible
Domain-specific notations
Representations for mathematical formulas, diagrams, chemical formulas, UML diagrams, music sheets, … should be supported out-of-the-box or through extension mechanisms
Single Source Publishing
One or more input formats; many output formats; different approaches are taken to account for format-specific features
Cross-platform
The software should run on a wide range of devices
Easy installation
Installing a sophisticated software stack with many dependencies can be cumbersome for non-tech-savy users. Static executables, tight integration into the OS package manager, Flatpak, Snapcraft, Homebrew, AppImage, WebAssembly with WASI, winget, … are various approaches to improve the situation
Separation of concerns
A separation between the declaration of content, layout, and program logic is desirable to make each component replaceable once it gets out-of-date. HTML5 (content), CSS3 (layout), and ECMAScript (program logic) showed how to do this on the web stack
Modern fonts
Implementation of the features in the OpenType standard
FOSS
free/open source software license according to OSI initiative
Automation
The data might come from a database, the network, a CRM or ERP software, or many other sources. Generation of documents should be possible for a wide range of input data
a11n, l10n, i18n
accessibility (e.g. images must provide alternative text representations for blind people), localization (e.g. numbers should be representable as ‘10,000’ as well as ‘10.000’ depending on the locale settings), internationalization (e.g. support for page size ‘letter’ as well as ‘JIS A’)
performance
Software architecture, algorithmic considerations, and concurrency are means to improve the performance which is desirable for users
web and print
Reflowable formats (HTML5 with CSS3 with WOFF) as well as paged formats (PDF 2.0, DjVu) shall be supported as output

Requirements for entering the ecosystem list

  1. Supports at least Latin and Greek script
  2. The Greek alphabet must be usable and inclusion of images must be possible
  3. Produces HTML5, PostScript, or PDF 1.4 (or later) output
  4. Works on at least two of the three major operating systems (namely Microsoft Windows 11, macOS 13, Linux 6)
  5. A pre-compiled release or a installation guide is provided
  6. A hyperlink to the description of the input language is provided
  7. At least three choices for typefaces exist
  8. The source code of the latest release is accessible for reading
Details

Related

Interested in CSS paged media? print-css.rocks

About

Maintained and funded by the Austrian club “Verein zur Förderung von digitalem Textsatz
Inspired by rust community's webpages: “Are we X yet?” where X ∈ {GUI, game, learning, distributed, …}
Latest update: