Skip to content
This repository has been archived by the owner on Sep 9, 2019. It is now read-only.

khaledhosny/harftex

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Use LuaTeX HarfBuzz variant, luahbtex, instead.

Build Status

HarfTeX

HarfTeX is a TeX engine based on LuaTeX and aims to combine the flexibility of LuaTeX with comprehensive support world languages and writing systems more-or-less out of box (à la XeTeX).

HarfTeX achieves this by including widely used text layout and font loading libraries (such as HarfBuzz 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 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

Run the build script from the top level directory (see the comment at the op of the script for a list of the options it take):

$ ./build.sh

About

A TeX enginge with embedded HarfBuzz and Lua

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • C 64.0%
  • Makefile 8.4%
  • C++ 8.1%
  • CWeb 4.7%
  • TeX 3.6%
  • HTML 3.2%
  • Other 8.0%