12th ConTEXt Meeting: Prague–Sibřina, Czech Republic, September 2–8, 2018


New proposals should be addressed to Taco Hoekwater or Hans Hagen.

LuaTeX: the move from 5.2 to 5.3

Hans Hagen and Luigi Scarso

At the end of 2017 we started experimenting with Lua 5.3 that we wanted to switch to at some point. Because the number system in Lua is now automatically working with integers or floats we expected some issues. In this talk we will discuss what we really ran into.

LuaTeX: how useful is FFI

Hans Hagen and Luigi Scarso

For a while we can now interface to external modules using the FFI mechanism, which has advantages as well as drawbacks. Here we will give an update on where we stand and how ConTeXt can (or might) use it.

ConTeXt: running remote

Hans Hagen

When you want to use ConTeXt as a service you will face the problem that a run takes time and can block the parent process. The past decades we have come up with several solutions. Here I will present the approach we use currently.

ConTeXt: unexpected usage

Hans Hagen

The development of ConTeXt (with LuaTeX) is a continuous process and is driven by user demands, changes in the ecosystem, like fonts, but also by personal needs. Because we’re not talking of macros alone but also of a rather large library of Lua code, I can also run applications on top of LuaTeX with ConTeXt supporting them one way or another. In this talk I will discuss how I abuse the system in domotica.

ConTeXt: stepwise execution

Hans Hagen

In a ConTeXt run you’re either in TeX or in Lua. Switching between them is easy but it happens in chunks: as with some distributed processing systems you pipe TeX source code from Lua to TeX’s input and when done transfer goes back to TeX and the pipeline is processed. In that pipeline you can of course go back to Lua etc. and we so that frequently in ConTeXt. Here I will discuss a variant based on going to TeX and back in the middle of a Lua callout.

ConTeXt: bidi

Idris Samawi Hamid, Luigi Scarso and Hans Hagen

While Idris Samawi Hamid and Luigi Scarso are cooking up bidi in an editor, and Idris Samawi Hamid baking a new font, we also decided to further finetune right to left typesetting in ConTeXt. There is already a whole repertoire of (largely font related) features but many of them are dedicated to fonts and checking issues with fonts and opentype rendering (in engines). The low level system in LuaTeX has recently be cleaned up a bit too so this is a good moment to wrap up the state.

ConTeXt: side floats

Hans Hagen

Putting floats next to the text is sort of tricky. There are simply too many border cases to cover. After stepwise improving the code, which of course then broke existing (user) tricks I decided to do a more drastic cleanup, using a bit more of what we can do with Lua. The new approach is mostly compatible but might give different spacing but at least we’re more predectable so that we can at some point say “This is it”.

Using TeXLua for trackplan graphics

Taco Hoekwater

TeXLua, combined with some of the Lua library files from ConTeXt, can easily be used to do parsing of almost any file format. I am using that approach to generate graphics from my model railroad trackplan that is itself designed in xtrkcad. The LPeg library and some helpers are used to parse the file format and generate Metapost source that is then converted into PNG images.

A use case for \valign

Taco Hoekwater

The TeX primitive command \halign is the backbone of traditional macros for predominantly horizontal tabular material. Its companion primitive \valign can be used for predominantly vertical material, but column-based tabular material is rare so there is no pre-made support for it in ConTeXt. Since I was required to typeset a table like that, I wrote a small set of higher-level macros to allow use of \valign in a ConTeXt-friendly manner.

mtxrun scripts

Taco Hoekwater

The mtxrun command allows the execution of separate scripts. Most of these are written by Hans, and he occasionally creates new ones. This talk will walk through the mtxrun scripts in the distribution, and show you how to write your own.

MFLua 1.0

Luigi Scarso

MFLua 1.0 is the first tagged release, to appear in TeXLive 2019. This talk aims to show how can be used to make a simple font delegating Lua to implement the backend.

MARCS—An online report card system with ConTeXt back end

Pavneet Arora

The very specific needs of a Canadian Study-Abroad high school for a remotely accessible report card system had become acute. Unlike standardized report cards which primarily focus on grades, and stock phrases on a per course level, the requirements were for extensive feedback in the form of teacher comments on a per unit or module basis. Students were thus given the opportunity to use the guidance to improve their work right from the outset and throughout each course. A final, published report card needed to be output. The system had to serve multiple constituencies: students, parents, teachers, teaching assistants, administrative staff, school directors, and school boards with differing granularity of access and control. The work done to develop MARCS, a web based report card system based on the Laravel PHP framework, and with its ConTeXt back-end for creating print ready report cards will be presented.

ConTeXt: in one second


On the web you can find these “Learn ‘foo’ in 1 second” tutorials (well, Luigi Scarso did find them). In this group activity we will see how far we can come in one, two, five, ten or more seconds. It can even become a wiki corner.

The ConTeXt "nodes" package

Alan Braslau

A MetaPost based package for the graphical drawing of textual diagrams has been integrated into the core macros. It may be used powerfully through its MetaPost interface or directly through a simple ConTeXt interface. Presented in its developing form at the 2017 ConTeXt Meeting, the released version and its documentation will be presented and discussed.

Luapost graphics, or rebuilding the (Hobby) graph package.

Alan Braslau

The lua/metapost interface has been expanded and the implementation of the integrated MPlib has been overhauled, where now only one MP run is necessary rather than two as in the past. This has led to a significant gain in performance whenever an intensive use of MetaPost is included. In the manipulation and graphical presentation of data, lua can be used to greater efficiency, delegating the reading of data and calculations to lua and graphical display to MetaPost. We have begun an experiment in re-implementing John Hobby's graph package or something similar in a way that can handle "big data", that is very large data sets. A discussion will be led as to needs and what should be included.

Edward Tufte's Presenting Data and Information

Alan Braslau

I attended Edward Tufte's class on Presenting Data and Information in Denver on July 30th. Much of the course was devoted to a presentation based on his four books: Envisioning Information, Visual Explanations, The Visual Display of Quantitative Information, and Beautiful Evidence. Tufte's more recent work on The Future of Data Analysis is captured in a keynote presentation at the Microsoft Machine Learning & Data Science Summit in 2016, a one hour video that we can watch together.

We will also watch a 37 minute film "Teaching to See" by Inge Druckrey and produced by Edward Tufte on graphic design.

Running ConTeXt in a Docker container. Some problems to solve to build a ConTeXt cluster.

Massimiliano Farinella

ConTeXt can be run inside a Docker container with minimal overhead. Container isolation lets you run different versions or configurations of ConTeXt on the same machine without conflicts. But you may want to run different instances of ConTeXt on all the cores of your CPU or all the CPUs of a cluster.

Making manual typesetting adjustments in an XHTML to PDF workflow in ConTeXt: some hints.

Massimiliano Farinella

Every automatic typesetting needs some manual adjustments. When your source is XHTML, you also need to code those adjustments with XHTML objects. But they have nothing to do with your structured content. How to prevent them from messing up your markup? How to highlight them in a visual editor?

ConTeXt: font tracing and tricks

Hans Hagen

This is a placeholder for some examples (like the virtual hz example from the manual).

Brainstorming session

(proposed by Alan Braslau)

A session or rather a couple of sessions to discuss general issues, a sort of free-for-all to air new ideas, thus giving prime to all who attend the meeting(s). It would have to be moderated in order not to go everywhere, and should not be a forum for grievances but rather a type of "brainstorming".

Maybe this could result in a (revision of the) "roadmap".

I suggest that this could run over several sessions, at least two, in order to allow the participants to think about the discussion before concluding.

In most likelihood, most that will come up is already handled, yet we may not realize or know this or might have forgotten.