Originally published on eve.gd on 27 February 2014, last updated 6 September 2026.
Read this post on the web (with images, PDF and citation details)
meTypeset is, in essence, a transcoder for text. While “transcode” is usually used in a multimedia context, we are transcoding from one XML specification (Microsoft's OOXML) to another (JATS XML). This involves several stages of action:
There is potential for unexpected results at every stage of this process.
While it is possible, when developing, to step through most of the processes, because we have multiple portions of the transform handled by different technologies, it is often difficult to pinpoint the stage at which something went wrong. For instance: if the NLM isn't right, was the TEI right? If the TEI isn't right, was it right before we put it through python (and which module messed it up?)
To solve this, when meTypeset is passed the debug flag (“-d” or “--debug”) it will now initialize all of its output directories as git repositories and regularly commit after each module has performed its transforms, thereby providing an easy way of logging in any environment (and cloning the output to another machine). As a self-contained filesystem, git is ideal for this kind of work. It adds very little overhead (either in terms of space or processing time) and makes life a lot easier in this kind of debug work. You can see the implementation of this in GitPython in the dev branch of the project.
Please include the DOI in your citation: http://dx.doi.org/10.6084/m9.figshare.946260
You can view this post's XML with lens.
http://dx.doi.org/10.6084/m9.figshare.946260
view this post's XML with lens
This reference list has been generated, in many cases, through an automated process and may therefore contain errors or incomplete metadata. It is provided purely as assistance for finding the items mentioned within this post.
1. Eve, Martin Paul, Debugging meTypeset using a git filesystem, figshare, 2014 <https://doi.org/10.6084/m9.figshare.946260>
https://doi.org/10.6084/m9.figshare.946260
Martin Paul Eve
Professor of Literature, Technology and Publishing
Short thoughts /thoughts
Today I learned /til
What I’m up to /now
CV /cv (PDF)
Accounts /accounts
https://bsky.app/intent/compose?text=Debugging+meTypeset+using+a+git+filesystem+https://eve.gd/2014/02/27/debugging-metypeset-using-a-git-filesystem/
https://www.facebook.com/sharer/sharer.php?u=https://eve.gd/2014/02/27/debugging-metypeset-using-a-git-filesystem/
On automatically detecting parenthetical citations
CaSSius now supports full headless PDF creation from JATS XML
Object Thinking, Systems Description Languages and the Future of the Book
/thoughts
Janeway is pleased to announce a new collaboration with PLOS to develop and extend the Janeway codebase for use in parts of PLOS’s article submission process https://www.openlibhums.org/news/1025/
We've gone from Andy and me coding Janeway by hand, in those pre-AI days, over a weekend or so, to Janeway, a solid structure for OA journal publication workflows. Now being used and developed by a major scientific publisher.
I never had aspirations for it like this. I just wanted it to do what we needed it to do. If there is a cool way for other organisations to make it do what they need, too, so long as it does not violate our ethical principles, then that is fantastic.
https://www.openlibhums.org/news/1025/
14 October 2026, 11:27
Fluke
Future Bones
Tina Turner
Rich Lane
Faff
Scrobbled on Last.fm