[tug-summer-of-code] A couple of project proposals

Arthur Reutenauer arthur.reutenauer at normalesup.org
Fri Feb 13 12:12:15 CET 2009

	Hello Scott,

>    1) Grand Unified TeX
>       pdfTeX has cool features (micro-justification); eTeX has cool
>       features (extra developer primitives); LuaTeX has cool features
>       (cleaner scripting interface); XeTeX has cool features (ease of
>       using operating system fonts).  While the first three of those
>       are already integrated in modern TeX distributions, it'd be
>       really nice to further include XeTeX's font support into the
>       mix.

  This is certainly a grand project, but it's probably too vague, and,
as Jonathan says, certainly too much for a student's summer project.
I'd like to reformulate it thus:

  The different extensions to the TeX typesetting engine all add some
features to the original program; some are compatible with the other
ones', some aren't.  Today, there are mostly two branches in active
development: the "LuaTeX way", that builds on pdfTeX, where eTeX
features have already been merged; and the "XeTeX way", a completely
independent path (that also includes eTeX features, by the way).

  LuaTeX adds the Lua language to TeX, but not simply as a scripting
language: it opens up TeX's typesetting engine completely and enables to
rewrite parts of it entirely in Lua (like the page-building routines,
font loading, etc.).  XeTeX enables advanced font support by using
external libraries -- which need not necessarily be tied to some
operating system, by the way: although it started on Mac OS, by using
system libraries, and has thus special properties on the Mac, the Linux
port (now also available on Windows) uses independent libraries like
ImageMagick, FreeType and IBM's International Component for Unicode.
Needless to say, the Linux port has also been ported back to Mac OS, so
you really have two options on Mac OS, residing in the choice of the
backend program that produces PDF.

  Both those TeX extensions have features that the other lacks, and it
would be desirable to enhance each of them.  For LuaTeX, it's built-in
advanced font support; but given the program's capabilities, I don't
think it would make sense to add that support by copying XeTeX's
approach (external libraries); on the contrary, one should rather write
the appropriate Lua code that would take care of it, thus shifting that
part of the system to the macro package.  This is already what ConTeXt
does, and its support for OpenType fonts is rather advanced now.  One
would need to port that code to LaTeX.

  As far as XeTeX is concerned, what it lacks is Lua, but I don't think
it would make much sense to take the same "open-belly surgery" approach
as LuaTeX's; rather, one would like to add Lua only as a scripting
language, with a simple interface with TeX's core to do input/output.
Jonathan Kew already mentioned the idea, by the way.

  Those could be, in my opinion, two different projects.

  Needless to say, there will need to be appropriately knowledgeable
mentors who could supervise the potential student's work; I am already
in search of someone for the LuaTeX project, and can look for one for
XeTeX, too.  TUG is not going to submit such projects otherwise.

>    2) LaTeX handwriting-based symbol search
>       There are occasional posts to comp.text.tex asking by
>       description for a particular LaTeX symbol ("a capital U with a
>       dot...no, not with the dot above the U but centered within
>       it...no, not such a small dot, a bigger dot...").  It'd be a
>       great help to produce a Web site in which a user can draw a
>       symbol with the mouse and have the site return a list of LaTeX
>       symbols (glyph + package + control sequence) that best match the
>       user's drawing.

  This sounds like a great idea, and certainly a lot of fun.  But again,
we do need a potential mentor.  Would you agree to play that role?
You're certainly well indicated for it :-)



More information about the summer-of-code mailing list