10th ConTEXt Meeting: Kalenberg, The Netherlands, September 25–October 1, 2016


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

Introducing Continuous Integration (CI) to TeX binaries

Mojca Miklavec

TeX Live binaries are being built once per year for about 20 different platforms by a number of volunteers and never get updated during the year. This is a good compromise between users' demand for reasonably new binaries, stability and the burden on volunteer builders and packagers.

ConTeXt community on the other hand strongly depends on the availability of the latest binaries of LuaTeX at any given time. There are also occasional requests for the latest binaries of XeTeX when new features get implemented.

We have recently set up a build infrastructure that can automatically build TeX binaries after every commit for a number of platforms, send emails when builds break, show reports and make the binaries available to users.

This approach puts a lot of burden off the shoulders of people previously responsible for building TeX binaries while at the same it time gives us freedom to run the builds a lot more frequently, getting binaries to users much faster and providing earlier feedback about problems to developers.

Piece of break

Arthur Reutenauer

abstract to follow

Updates and TODOs "Cewe/XML to PDF" photobook conversion

Harald König

my TODOs for the photobooks:
- JPEG tooling (EXIF orientation/rotation)
- hue/staturatoin changes on JPEGs (background images)

Processing of delimiter separated values in ConTeXt

Tomáš Hála

It happens often that data for typesetting comes from other than TeX sources. In such a situation, use of delimiter separated values belongs to quite frequent ways of data transfer.

Methods used for processing of delimiter separated values (including external files) will be reviewed across TeX implementations, with emphasis on ConTeXt solutions (m-database, HandleCSV, etc.). The related topic -- computing à la spreadsheets (m-spreadsheet) -- will be also covered.

Finally, some simple algorithms for easy extensions of the repertoir of tools will be presented, such as alternative reading and writing module, some simple computations on table/columns, and simple chart drawing (with lua and MetaPost).

The aim of this contribution is not only to review existing tools but to open discussion about data processing, about users needs and developers possibilities.

Good old times or good riddance

Taco Hoekwater, Ton Otten, Hans Hagen, everybody

(informat evening session)
When one cleans up a machine, there is a good chance that you run into long forgotten ideas, proposals and recipies ... some show how much has happened in decades, others might induce sentimental feelings. Did it all really become such a piece of cake? You are invited to bring your own stories.

Vexillography in ConTeXt

Marek Treťák, Tomáš Hála

Vexillography is the part of vexillology that deals with drawing flags and banners. The common way how to use flags in a document is to download ready files, sometimes in vector format, sometimes as bitmaps, but there is no tool available for simple drawing in ConTeXt.

This is the reason why the ConTeXt module for drawing facilitation has been prepared. The module provides not only the basic set of flags and banners of European countries but brings the tool for defining own flags or banners which will be shown using some examples.

The talk will also cover basics of terminology and the most frequently used patterns of flags.


Taco Hoekwater and Hans Hagen

When Mojca asked about adding rules to the end of lines, Taco offered to provide some insight in tricks to achieve this using Lua. This is also an anchor for explaining how the linebreak algorithm works and what eventually comes out.

As a follow up Hans implemented a mechanism in the core (in fact it was mostly an extension of an existing mechanism) and used the opportunity to extend some related mechanisms as well. Of course we also kick in some MP code (for Alan).

Color fonts

Hans Hagen (maybe Arthur on emoji in unicode)

Several parties came up with specifications for color fonts (emoij need them) and of course the fight continues. In ConTeXt we currently support the microsoft model (a clean and efficient glyph layering mechanism) and the svg based model (more demanding and conversion needed). Examples will be given of both mechamisms. This also provides a starting point for an interesting discussion about the directions Unicode is taking and weird ways fonts develop.

This topic is unrelated to color support in general and color related goodie mechanisme.


Wolfgang Schuster (and Hans Hagen)

The user interface is described in xml files but the actual descriptions lagged behind development. Wolfgang spent a considerable amount of time to describe all commands in detail and we updated the descriptive format in the process. The rendering was partly redone, as was the help system and scripts that use this information.


Hans Hagen (optional)

Most users will only run the mtxrun and context scripts (and maybe the font one) but there are few more. I will give an update in what there is and what they are used for: how they help me and how they can help you.


Hans Hagen with everyone

What problems do we face when we integrate ConTeXt in a workflow and how can we deal with them. (Follow up on previous topic.) What more is needed.

Adding extra features to fonts

Hans Hagen

The mechanism for adding features to fonts has been extended a bit. It was already possible to add your own features using Lua code, but a bit more is possible. Some examples will be given of such extensions. We will also discuss how to deal with features in general as this is an area where fonts can differ fundamentally. Users are welcome to come up with needs (if possible in advance).

Rendering math

Hans Hagen

Now that the OpenType specification explicitly mentions math the renderer can be improved. One of the problems has always been that the fuzzyness of the specification resulted in all OpenType math fonts doing things slightly different. There is no way an engine can deal with this so either the fonts need to be improved (what happens indeed) or we need ways to manipulate them. Some examples will be given.

MP update

Hans Hagen and Luigi Scarso

After Taco retired from the active MP development (of course he's still on the team) Luigi is now responsible for the code base. Last year a project was started to solve some left over bugs and issues. Some are a real challenge and Luigi will report on these.

Independent of that the MetaFun code keeps evolving. I will give some details on what was added and what got improved.

Columnsets redone

Hans Hagen

From MkII we inherited two column handlers: a mechanism that could mix single and multi colummn mode, and a more rigid columnsets model. Both are still present, but replaced by mixed columns and pagegrids. Eventually the old models will be removed from the core (and become modules) as the new ones can perform better (and can still be extended). I will discuss some of the problems we face and solutions provided.


Alan Braslau and Hans Hagen

There are two categories of manuals: those that describe basic everyday functionality (beginners start with these) and the more technical ones. Apart from the limited beginners manual. The first category is now the responsibility of the group and its users and Alan will report on their state.

The second category comes from the developers and evolves as functional evolves and writing also help to get interfaces more consistent. These more technical manuals are (stepwise) made part of the distribution in the expectation that eventually they are complete enough to also offer them in printing on demand (as some use for instance fonts that are not commonly available). Hans will report on this.

Math schoolbooks

Ton Otten

For several years we have been involved in typesetting math books for education. Some projects use xml and others TeX as input. All use very structured input so that information can be filtered and rendering has enough hooks. This talk will explore the input, results, pitfalls, process and more.

Math spacing

Hans Hagen

To get vertical spacing in math is not entirely trivial. Recently this mechanism was cleaned up and at the same time support for backgrounds was added. I will show some of the complications we run into.

Combining the power

Hans Hagen

The TeX, MetaPost and Lua languages each have their charm and strength and in ConTeXt we bring them together. In this presentation I'll give an example (or maybe a few more) about where this integration happens and what makes me decide which language to use for what aspect of a solution. (Stepcharts)


Hans Hagen (optional)

How did color support evolve and what is available and why. How do \TEX\ and MetaPost deal with this in a consistent way.

Wasting time

Hans Hagen (optional)

Sometimes questions show up that will only be silenced by providing a solution. I will give an example of old-school font mess to illustrate how one can waste my time.

GNU Lilypond

Henning Hraban Ramm

[no abstract yet]

Cowfont update

Taco Hoekwater & Hans Hagen

[no abstract yet]

Piece of Snake

Taco Hoekwater

How to implement snake-justification in ConTeXt, or: how to automatically fill in the ragged borders of non-justified paragraph text using embellishments. See http://xkcd.com/1676/ for the inspiration.

A short history of punctuation

Taco Hoekwater

Punctuation is "the use of spacing, conventional signs, and certain typographical devices as aids to the understanding and correct reading, both silently and aloud, of handwritten and printed texts." (Encyclopaedia Brittanica).

Punctuation evolved over time, just like everything else related to writing. This talk gives a short overview of the development process until now.

CAKE: Source overview

Taco Hoekwater

ConTeXt Advanced Knowledge Essentials: Knowing where the various functionalities of ConTeXt are found in the source tree is helpful in (almost a prerequisite to) getting better acquainted with advanced functionality. This is an overview of what is where in the ConTeXt source after the rewrite for MkIV.

CAKE: The TUC file

Taco Hoekwater

ConTeXt Advanced Knowledge Essentials: The temporary file ConTeXt uses to maintain state between consecutive runs of the typesetting engine contains lots of important information, but it is not easy to interpret by a novice. We will have a look at all the various objects contained in the temporary file, and how it can help to deepen your understanding of ConTeXt.

CAKE: Modules

Taco Hoekwater

ConTeXt Advanced Knowledge Essentials: An short browse over the available modules in the core ConTeXt distribution, and a few hints on how to write your own. But mostly a tour of to the newly rewritten modules.contextgarden.net website, and a chance for you to make feature requests.

Cake in Pieces

Taco Hoekwater

Not abstractable.