I am writing a book about LuaTeX - what topics would you like to see in that book? More beginner's topics or more advanced sections? Both? I'd like to hear your opinion.

  • This is a quite vague question unless you state elaborate on your motivation for writing the book and any possible restrictions. – N.N. Sep 9 '11 at 8:57
  • 2
    There are no restrictions except that the book has to be some reasonable size (not 1000 or 10 pages) and that I'd like to listen to the audience. - I know that this is vague but I am sure the answers will make it less vague. – topskip Sep 9 '11 at 9:00
  • 1
    Is it precisely that book announced by OpenSourcePress for July 2011? In case yes, would you mind to inform the publisher about the remote possibility of a short delay? I've been curious about the book for monthes and now? – Keks Dose Sep 9 '11 at 10:50
  • 2
    Well, it is more targeted towards plain and LaTeX. Perhaps I'll have an "excursion into ConTeXt" chapter. – topskip Sep 12 '11 at 6:26
  • 1
    @Dr.ManuelKuehner Nothing, I've abandoned the idea of writing a book. Herbert Voss has one. I think one day I'll delete this question. – topskip Apr 7 at 13:28

Some suggestions

  • A very quick chapter with some good examples to get someone started quickly (This shouldn't include installation instructions, rather put that in an Appendix and don't forget Window users).

  • Quick Lua scripting guide (all examples to solve particular problems)

  • Font management
  • Under the hood (how it all relates and works)
  • Chapters on more advanced topics (extending LuaTeX, packages etc..)

In general with code I would envisage a book of about 300 pages.


This could include:

  • Migration from PDFTeX (mostly, what doesn't need to be done anymore -- inputenc, etc.);
  • Font management, and comparison with XeTeX;
  • Scripting with Lua.

These are quite obvious points, I'm sure others will have more fine answers.

  • What added value LuaTeX offers (what is possible or easier than with pdflatex, xetex, xelatex, ...) and how best to achieve the benefits. (Why should I move?)

  • Same question but with pre-processing and post-processing tools (e.g. for image preparation, PSTricks, importing pdf pages, bibliographies, citations, indexing). (Will "x" still work as it does now? If not, how best do I achieve it the same or a better result?)

  • Can fonts and font tools that are designed for/with TeX and LaTeX still be used, e.g. Computer Modern bitmap fonts, virtual fonts, commercial fonts such as Lucida and MTPro, EPS images, pdf pages). (Partly this is extending Raphink's point on font management comparison with XeTeX to include TeX and PDFLaTeX) (Can I still use font y or glyph z?)

  • The basic working set: do I have everything I need if I have the current TeX Live?

Finally, is your book aimed at first-time users of (Any)TeX or at users migrating from other already familiar with, and using, another member of the TeX and friends family?

  • The book is not aimed at first-time users. The reader should be familiar (at least a bit) with plain or LaTeX. – topskip Sep 9 '11 at 9:49

I’m delighted to hear that there’s a book in the works.

Because of UTF-8 and fontspec, LuaTeX is attractive to those who work with languages and literature. This means that we’ll be looking for ways around babel where it’s only “partially working” (p. 13 of Manuel Pégourié-Gonnard’s A guide to LuaLaTeX). Paul Isambert’s article on French punctuation (pp. 87–100 of the current issue of Cahiers Gutenberg) is an example of the kind of thing we need to know about, but while I follow most of his discussion, we non-programmers could use some help applying it, and also making sure it doesn’t apply to any non-French parts of a document. And what do we do with Greek? I’ve found, by trial and error, that I should just type the Greek and not enclose it in \textgreek{}, but what about hyphenation and the like?

As for fonts, I’m now happily using Adobe Jenson Pro and other favorites for which I was pining, but although I’m accustomed to reviewing log files for warnings about missing characters, with LuaTeX I find that missing characters are silently skipped. So I’ve taken to proofreading the output more closely and examining each font in FontForge to make sure that it contains every accented character required by my text, but maybe there’s something to be explained here?


I'd warmly welcome a chapter or two that guides users of latex2e (mostly pdflatex these days, right?) along the path they'll have to take to adapt the code of their existing documents so that they'll compile under lua(la)tex. For instance, if they've been using some font packages (say, mathpazo or mathptmx), how will they have to change their setup to make it compile in lualatex?


I have only recently begun my excursions in luatex, and so far have done basic things with the node library's post_linebreak_filter, like count the number of lines, convert raggedright text to raggedleft, change color of lines. So far I have read the node library description in luatex manual (which leaves many questions unanswered as there are no visual aids or examples) and I got to this page while searching a book (in English) on luatex. Here's what I can think of:

  1. A pipeline diagram that describes the flow of things in luatex in relation to underlying tex & user content, like what is the nature of data available at each stage of pipeline. For instance I traversed hlist nodes with post_linebreak_filter in my experiments, because I know at that time the data available is the prepared/typeset lines (available as nodes) from tex/luatex. Though I do not know what kind of data (user contents or tex state) can I act on with pre_linebreak_filter, or with linebreak_filter, as things have not been typeset then. Another example is the description of hpack filter, is it called for each line while tex is performing paragraph breaking? If yes then I would know I can do something with it (or not) in combination with linebreak_filter. Is it called only once internally per typeset line? That type of information could be known if one were to see a finite state machine associated with such pipestages. Without a pipeline diagram, finite state machine, and knowledge of nature of data available at each stage, it can be hard to visualize what surgical changes can one do/ not do at each stage

  2. At least one terse practical example of a thing that can be achieved with each type of callback that would be otherwise impossible to achieve with other callbacks. One example of something that can be achieved with two different callbacks.

  3. Some annotation that shows what functions are relevant at what stage of the pipeline. For instance, in my first failed attempt to convert raggedright lines to raggedleft using post_linebreak_filter, I called command tex.setglue to change right/left/parfill skips & called hpack function on every hlist, it didn't work. Upon my question here, I was informed that this is an invalid sequence of calls as tex.setglue won't work after it is done converting paragraph to a list of hlists.

  4. User defined nodes, when would one need them.

  5. Playing with fonts using font loader... like perform a read-modify-write operation on font outlines, and/or use post_linebreak_filter to add randomness to glyph shapes, and glues after paragraphs have been typeset to produce art with text. Even though this sounds like esoteric typographic art, an example like this will give insight into how multiple libraries can be combined together to affect layout, appearance, and contents of the document.

The only book I have come across, so far, on luatex is in German language: Einführung in LuaTeX und LuaLaTeX, by Herbert Voß It gives examples on how to use your script viznodelist.lua too.

  • I think a nice book on LuaTeX (not only LuaLaTeX) should include some information on ConTeXt Mark IV. After all, LuaTeX is originally suited for that format and now for the new LuaMetaTeX.
  • The native MetaPost support and its extensions (e.g. Metafun).
  • Basics of programming on Lua and practical examples of use, as well as how to write bindings to external libraries, a really useful feature of LuaTeX (e.g. QR codes, symbolic calculations, graph drawing), and Lua module writing (use of local variables, etc.).
  • Font management and multilingual support, especially compared with XeTeX (pros and contras of using one over the other).
  • The "jump" from Lua to TeX and vice versa: \directlua, LuaTeX libraries (tex, texio, etc.). Processors and callbacks (personally I find them a bit obscure to understand and I think I'm not the only one in TEX.SE, as seen in the previous comments).

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.