[tug-summer-of-code] Project idea: LaTeX3 "microkernel"
Joseph Wright
joseph.wright at morningstar2.co.uk
Sun Mar 8 13:19:59 CET 2009
Will Robertson wrote:
> The current expl3 is set up to provide this already. There is an option
> when l3names is processed to remove all of the old TeX primitives from
> the user namespace; this automatically makes any documents processed
> "secure", since users can't change catcodes and the only commands
> provided to them are "document-level" macros.
What about \ExplSyntaxOn?
> However, this to be useful requires all the rest of LaTeX3 to be
> organised, and that's what this microkernel project is all about getting
> started with. We're not talking about actually being able to write
> proper documents in LaTeX3 yet, just to be able to create the format and
> write "hello world".
>
> To be absolutely clear here: there is *no* user interface to LaTeX3 yet.
> All of our work recently has been in the programming subsystem that is
> intended to also be used for LaTeX2e packages.
My idea would be that a microkernel would start with things which seem
most likely to survive (in concept, if not in implementation) from
LaTeX2e to LaTeX3. So concepts-wise:
- Some kind of document class idea (pre-set layout: probably *not*
extra functionality)
- Some division between a header and a body
- Some "end of body" command to mirror the "start of body" command
- Some basic formatting macros
would be somewhere to start.
As a work-in-progress, I'd envisage not changing the LaTeX2e interface
in the first pass. Hence my "Hello World" document example looks exactly
like a LaTeX2e one.
Depending on time, I'd hope that a successful microkernel project would
then look at some more extended concepts (although probably sticking to
LaTeX2e syntax):
- Some basic document divisions
- Some basic lists (enumeration, itemisation, ...)
- The concept of environments
with the target of reversing "l3in2e" to "l2ein3". This would (I think)
be an interesting coding challenge for a student and would also be a
major contribution to LaTeX3 and therefore to TeX in general.
--
Joseph Wright
More information about the summer-of-code
mailing list