{"id":7104,"date":"2012-03-19T12:37:32","date_gmt":"2012-03-19T10:37:32","guid":{"rendered":"http:\/\/ospublish.constantvzw.org\/?p=7104"},"modified":"2012-03-27T21:35:07","modified_gmt":"2012-03-27T19:35:07","slug":"buried-alive-the-new-coffin-layouts-of-latex3","status":"publish","type":"post","link":"http:\/\/ospublish.constantvzw.org\/blog\/news\/buried-alive-the-new-coffin-layouts-of-latex3","title":{"rendered":"Buried alive! The new coffin layouts of LaTeX3"},"content":{"rendered":"

So on my way to the Visual Culture codebase today I happened upon a rabbit hole that was too inviting not to descend into:<\/p>\n

(Note that all names in this email are new to me as of today).<\/p>\n

In response to a new LaTeX users questions about ‘best practices’ for laying out a letterhead, Frank Mittelbach responded with a solution using the new LaTeX3 technique of "coffins".1<\/a><\/sup><\/p>\n

<\/p>\n

After demonstrating the letterhead, he presents a sample of Tschichold and a challenge for others to reproduce the sample ‘without coffins’.<\/p>\n

\"Jan<\/p>\n

Yiannis Lazarides responded with a non-coffin version, though the discussion did not extend very far because the code was not very accurate as a replica.2<\/a><\/sup><\/p>\n

The rabbit hole itself was a thread asking why one would program in LaTeX3 when one can avoid the encumberances of using TeX as a programming language by using the \\directlua{}<\/code> macro (actually one of only a few new TeX macros found in LuaTeX).3<\/a><\/sup> Frank Mittelbach explains that this is a false dichotomy, as LaTeX3 is designed to operate on four separate levels. The main work on LaTeX3 has been in stabilizing it’s underlying programming layer. This has apparently been finalized and so real work can proceed on the other layers. The coffins interface is not set, for instance:<\/p>\n

The implementation of coffins for expl3 is stable. However the
\nuser-level interface isn’t yet! Right now we have two alternatives,
\none with a keyval system and one just with optional arguments, I used
\nthe latter above. But both might get refinements, especially after we
\nget feedback from people actually “designing” with it. user-level interface isn’t yet! Right now we have two alternatives, one with a keyval system and one just with optional arguments, I used the latter above. But both might get refinements, especially after we get feedback from people actually "designing" with it<\/p><\/blockquote>\n

There is no reason, ultimately, that the programming layer (this cryptencoded ‘expl3’) cannot be rewritten in Lua if a situation would warrant it. The flip side of this statement is that any similar venture could build something like coffins purely out of Lua, perhaps with less pain in the meantime. The flip side of that<\/em> flip side is that LaTeX3 only require eTeX, which is supported by all major TeX interpreters in use today, while LuaTeX may or may not reach it’s stated 1.0 in 2012 goal.<\/p>\n

<\/param><\/param><\/param><\/embed><\/object><\/p>\n

Thoughts<\/h1>\n