From 1922501ccb6d8c4b9149d77948ee6354ee84dc79 Mon Sep 17 00:00:00 2001 From: Khaled Hosny Date: Tue, 30 Apr 2019 23:20:13 +0200 Subject: [PATCH] Add some background information [ci skip] --- README.md | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/README.md b/README.md index cfada53a7..61b6a7847 100644 --- a/README.md +++ b/README.md @@ -11,6 +11,28 @@ HarfTeX achieves this by including widely used text layout and font loading libraries (such as [HarfBuzz][1] and ICU). That is while keeping the ability for its users to replace the text layout engine. +Background +---------- + +LuaTeX does not provide native support for text layout other than what TeX +originally provided, and instead provide hooks to its internals and Lua +scripting capabilities that allow users (or macro packages) to provide such +support. + +While this is a worthwhile goal, the complexity of text layout and font +processing means developing such support from scratch is a complex, +time-consuming task that also needs active ongoing development. This resulted +in practically having only one text layout engine for LuaTeX written by the +ConTeXt team (available through the [`luaotfload`][2] package for LaTeX and +Plain TeX). Though it is a very capable engine, it falls short of supporting +many world writing systems or some advanced text layout capabilities. + +HarfTeX started as an attempt to integrate the HarfBuzz text layout library +into LuaTeX as a Lua module and a Lua support package, allowing users to +benefit from a mature, well supported and featureful text layout engine. +However, the LuaTeX team preferred to avoid the extra dependencies and +suggested building a separate engine instead. + Building -------- @@ -21,3 +43,4 @@ the script for a list of the options it take): [1]: https://github.com/harfbuzz/harfbuzz +[2]: https://github.com/u-fischer/luaotfload