Tectonic version 0.1.6


I’m happy to announce the release of Tectonic version 0.1.6! Tectonic is a complete, self-contained TeX/LaTeX engine exposed as a Rust crate. It derives from the Unicode-capable XeTeX engine but includes significant changes to improve the user experience and work towards providing an embeddable framework for creating beautifully-typeset technical documents quickly, reliably, reproducibly, and in multiple output formats.

The first release announcement on these forums garnered much more attention than I expected so I thought there might be interest in the next release. There haven’t been any earth-shaking changes but I wanted to trumpet the great work done by a bunch of folks who’ve gotten involved in the project. There’s plenty of room for more people to get involved!

The official release notes are on the new Tectonic forum site that I set up in a fit of optimism, but I’ll copy them below.

The version increment may be small but the project has seen an enormous amount of work since the previous release, thanks to an awesome group of new contributors. Here are some of the highlights:

  • Tectonic is now available for installation on Arch Linux as an AUR package and on macOS as a Homebrew formula, thanks to the hard work of Alexander Bauer, Alexander Regueiro, Jan Tojnar, Kevin Yap, and @ilovezfs.
  • The web fetching is more robust and safer, using HTTPS by default (#69, Ronny Chevalier) and more properly handling CDN redirections (#114, @Mrmaxmeier)
  • Input and output filenames with spaces and non-local paths are now handled much better all around (#44, Alexander Bauer; #89, Norbert Pozar; #94, Peter Williams)
  • SyncTeX output is now fully supported, activated with the new --synctex option (#55, #73, Norbert Pozar)
  • The output files can be placed in a directory other than the input directory if the new --outdir or -o option is specified (#104, Felix Döring)
  • Tectonic will cleanly process TeX code provided on standard input if the input path argument is - (#94, Peter Williams)
  • Tectonic’s first new primitive, \TectonicCodaTokens, has been added to allow boilerplate-free document processing (Peter Williams).
  • The API docs can be, and are, built on docs.rs as of this release.

Furthermore, I’ve launched a Tectonic forum site (running an instance of the Discourse.org software). This is a bit of an experiment since the project is so young and there are of course other venues, like GitHub issues and the TeX StackExchange, for having relevant discussions. But, by launching the Discourse site, we gain a venue for project news (like this announcement!), more open-ended technical discussions, Tectonic-specific tips and tricks that may not fit the StackExchange model, and a knowledge base of answers to the roadblocks that are so common in the TeX/LaTeX ecosystem. We hope that the forums will become a valuable complement to the other community areas that are already out there.

Here are some more improvements since the 0.1.5 release:

  • Some early work has occurred to make it possible to build Tectonic on Android (#105, Marco Barbosa)
  • The project’s build infrastructure is now more efficient (#60, Norbert Pozar; #116, Ronny Chevalier)
  • The style of the translated C code has been improved enormously thanks to both manual interventions and the use of the neat tool Coccinelle, reducing warnings and increasing cleanliness and portability (#66, #76, #83, #92, #107, #112, Ronny Chevalier; #105, Norbert Pozar; #94, #98, Peter Williams )
  • The test suite now covers behaviors of the Tectonic command-line program itself (#84, Alexander Bauer)
  • We now correctly run bibtex when using the amsrefs package (#48, Norbert Pozar)
  • Tectonic will correctly try a wider variety of file extensions when trying to open resources (#93, Marek Šuppa; #100, Norbert Pozar)
  • Cached bundle files are now made read-only (#55, Alexander Bauer)
  • We’ve fixed a subtle path handling issue that was harming generation of the standard LaTeX format (#77, Norbert Pozar)
  • Very large bibliographies are now better supported (#87, Marek Šuppa)
  • The UI now makes it clearer that network failures are not likely Tectonic’s fault (#88, Marek Šuppa)
  • It is now theoretically possible to load Omega font metrics files (#97, Peter Williams)
  • Output log files are now produced if --keep-logs is specified and an error occurs (#103, Norbert Pozar)

There are a few known problems with this release:

  • Tectonic doesn’t support HTTP proxies, and in some parts of the world you can’t access the purl.org website that Tectonic checks for its bundle. You can work around this by creating a custom configuration file.
  • Tectonic doesn’t have a mechanism to invoke the biber tool, so it cannot easily work for anyone that uses biblatex. This is a common complaint so it would be great to see a workaround be devised (relevant issue)!

Enormous thanks are in order to everyone who’s started contributing to the project.

Happy typesetting,

Peter Williams (@pkgw)