[luatex] Info on direction primitives/implementation

Joseph Wright joseph.wright at morningstar2.co.uk
Tue Dec 4 14:52:19 CET 2012

Hello Taco,

>> Tracking changes through from one engine to another is pretty tricky,
>> particularly when the docs for the older engines are not so easy to
>> find. I'm also aware that there are lots of things that LuaTeX improves
>> on over older engines, so it's best to be sure what is done and moreover
>> how it works. So I'm keen to find an answer that covers LuaTeX
>> 'directly', if at all possible.
> I could paste the old omega stuff into the luatex reference manual, especially
> since that old omega manual is hard to find. There is also some stuff I wrote
> once to Idris that could be added. But there is nothing I can give right now, I
> have to search through old posts and archives.

Understood: thanks for confirming that the Omega approach is what I
should be looking at).

>> based on LuaTeX manual 'Direction parameters'. However, I still
>> don't know how this is implemented. (e-TeX says \beginR, etc. are an
>> abuse of the math on/off system, so there I have some clue.)
> Omega uses dedicated (whatsit) nodes. These are at least documented in the
> luatex reference, but without any actual explanation. The idea is (roughly)
> that the extra nodes are added to hlists and vlists. Direction start nodes are
> added mostly via explicit user commands, stop modes are added mostly
> via the \endgroup / \egroup handling functions. 

Ah right: I did wonder how the stop part was handled. As I said in some
of the earlier e-mails, I had found some stuff in the LuaTeX manual, but
pulling it all together was a bit more tricky.

> The nodes that come from \textdir tend to span across lines, and that 
> is solved in the linebreak routine by adding extra end nodes at the end /
> start of boxes line boxes.

I see: so each line has an explicit direction if the paragraph starts
with \textdir <whatever>? From the docs on hboxes, I assume the same is
true there.

> There is (of course) much more detail than this, but that is the overview.

Very useful, thanks. Point about detail understood: at the moment I'm
trying to get my head around the entire area, and to see how the LuaTeX
version contrasts with the pdfTeX/XeTeX approach.
Joseph Wright

More information about the luatex mailing list