Skip to content

The future of pTeX ng

kberry edited this page Dec 18, 2016 · 1 revision

For the reason that this is a personal project without any funding or enough donation, this project will be temporarily frozen for about four months, till next spring. There are some TODOs for pTeX-ng (2015).

1 Rearranging Inner Data Structure

pTeX-ng's array, eqtb, will be splited into serval sparse dynamic arrays and one static array. The dynamic arrays are planned to be used to store catcode/uccode/lccode/sfcode with the capacity up to 0x10FFFF elements (the upper bound of Unicode). The kinsoku table in pTeX will also be extended to the Unicode range.

2 Embedding a Dynamic Programming Language

Embedding a dynamic programming language is there on the todo list of pTeX-ng. However, I haven't decided which one should be embedded in, and these languages are now taking into consideration:

  • Scheme (GNU Guile)
  • JavaScript (Google V8/SpiderMonkey)
  • Ruby (mruby)
  • Lua

Extensions that are developed for pTeX-ng should not reduce the efficiency of pTeX-ng's typesetting. That is, the embedded-in language will only play a supporting role in the TeX marco programming.

3 Introducing an OpenType Layout Engine

libm17n and libotf will be introduced into the development of pTeX-ng in the spring of the year 2015. pTeX-ng would have the ability to access the fmt file, which allows pTeX-ng to acquire the infomation provided by OpenType font files and write them into fmt files (both XeTeX and LuaTeX do not support this feature).

4 Figure Support

There is no primitive that is relating to figures' support, and it will be added into pTeX-ng in next spring. Additionally, DVIPDFMx (libdpx) is used as a static library for pTeX-ng to output PDF files. However, pTeX-ng does not support EPS figures out of the concern for performance.

[please choose lua. anything else will drive the tex world and tex developers crazy! -karl]