Context mkiv has xml capabilities and it can now publish a xml database. The Speedata publisher is based on LuaTeX and is made to do database publishing.

How do these systems compare? Can ConTeXt do the dynamic pagelayout/virtual page of speedata? Also speedata have an example of putting a figure symmetrically in between two columns. Is that doable in context?

  • 4
    (Author of the speedata Publisher here) Interesting question, I will take a moment and try to give an answer. But too bad I don't know ConTeXt's XML processing capabilities well enough, so this will be a biased answer. So hopefully someone can do the “ConTeXt part” of that question.
    – topskip
    Sep 1, 2016 at 8:09

2 Answers 2


As mentioned: the answer I give is based on my limited view of ConTeXT's XML processing capabilities. So please edit the answer as I might be wrong.

Input: The input of ConTeXt is mixed TeX and XML. Data is XML, layout (style information) is TeX. The input of speedata is only XML, the layout language is written as XML.

Features: ConTeXt is much older than my software, so there are many more features in ConTeXt than there are in the speedata Publisher. That said: the publisher has enough features to do many typesetting tasks, especially in the direction of “product catalogs”

Virtual pages: ConTeXt can do the virtual boxes as well. This is a basic feature of TeX so there is not much difference here. My software is doing the calculation in grid cells and ConTeXt does the calculation in (scaled) points, but in practice this does not make a difference.

Image shape: I don't know if ConTeXt allows such a thing, I'd appreciate an answer.

My very personal conclusion is: ConTeXt (as LaTeX) is more focused towards text output with complex structures (footnotes, math, ...) and my tool is more focused on the layout aspect. ConTeXt very likely able to create the same layouts as the speedata Publisher.

(Community wiki, anybody please edit this answer and add things)

  • What do you mean with Image shape ? Text flowing around a generic shape ? Sep 1, 2016 at 15:18
  • @LuigiScarso yes, see the following example: speedata.github.io/publisher/manual/examples-en/imageshape/…
    – topskip
    Sep 1, 2016 at 15:28
  • 1
    @topskip: how do you determine the shape of the image? Does the user have to specify it as in \parshape, or do you infer it directly from the image? If the latter, then how?
    – Aditya
    Sep 2, 2016 at 1:46
  • @Aditya you need to provide an XML file that describes the image shape (white / non-white). Example is the directory, see this file. This can be automatically generated. I'll post a link to a small Go program in the next comment.
    – topskip
    Sep 2, 2016 at 7:12
  • @Aditya you need go installed for this: gist.github.com/pgundlach/218d45700548309c18299f56f9984252 just run go run main.go. You might need to edit the file to change the filename.
    – topskip
    Sep 2, 2016 at 7:22

Having built a database publishing system based on ConTeXt I can confirm it's very well suited for the task, however IT IS NOT a database publishing system which means you have to build such system yourself from data acquisition via data processing and transformation to typesetting, but neither seems to be the Speedata publisher. You certainly don't expect users to edit xml files, do you? So you still have to build the whole part of the transmission belt from a user interface (GUI or web interface) to an xml file. The question arises whether you need an xml file at all? E.g. one could think of a web API directly generating ContTeXt code. Coming back to your question. You certainly can set up ConTeXt to process any XML file, however I have always preferred to use XSLT to obtain a simpler XML file which could be processed by ConTeXT in document order.

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.