Skip to content

Releases: tectonic-typesetting/tectonic

tectonic_bridge_core 0.3.1

03 Oct 13:14
Compare
Choose a tag to compare

tectonic_bridge_core 0.3.1 (2022-10-03)

  • Remove C's time_t from internal FFI APIs to avoid portability issues. This
    should avoid issues with Linux Musl builds.

tectonic 0.10.0

03 Oct 13:14
Compare
Choose a tag to compare

tectonic 0.10.0 (2022-10-03)

This release updates Tectonic to support TeXLive 2022.0! There are not many code changes in the engines, so the primary user-visible changes will stem from the many package updates incorporated into the new TeXLive 2022.0 bundle. To switch a preexisting Tectonic document to use the new bundle, update the doc.bundle field in Tectonic.toml to https://data1.fullyjustified.net/tlextras-2022.0r0.tar. Newly-created documents and one-off compilations will use this bundle (or subsequent updates) by default.

This release also adds a new “drop-in” installation method. This adds a way to quickly install Tectonic in the popular curl/sh style. On a Unix-like operating system, run:

curl --proto '=https' --tlsv1.2 -fsSL https://drop-sh.fullyjustified.net |sh

... to drop a system-appropriate tectonic binary in the current working directory. On Windows, run the following in a PowerShell terminal:

[System.Net.ServicePointManager]::SecurityProtocol = [System.Net.ServicePointManager]::SecurityProtocol -bor 3072
iex ((New-Object System.Net.WebClient).DownloadString('https://drop-ps1.fullyjustified.net'))

Other changes:

  • Make it so that running tectonic -Zhelp works (#929, @pkgw). Before it would error out because the argument parser wanted an input filename.
  • Fix -Z continue-on-errors (#917, @vlasakm). This was broken in an earlier refactoring.
  • Add a -Z shell-escape-cwd=<dir> unstable option (#909, @0x00002a). This can work around issues in Tectonic's handing of shell-escape processing, which is very conservative about defaulting to launching programs in a limited environment. In particular, if you set the directory to the document source directory, commands like \inputminted can work.
  • It is possible for one .tex file to generate multiple .aux files. Even if more than one of those files should have triggered its own bibtex run, Tectonic only ran bibtex once. This is now fixed (#906, #907, @Starrah).
  • Give some more context in the error message if an external (shell-escape) tool tries to open a file that's missing (#899, @matz-e).

The known issue relating to OpenSSL 3 is believed to still be relevant:

  • The generic prebuilt Tectonic binaries for Linux are built for the version 1.1 series of OpenSSL. The latest Ubuntu release, 22.04 (Jammy Jellyfish), now targets OpenSSL 3, with no compatibility fallback, which means that the prebuilt binaries won’t run. To run Tectonic on these systems, compile it yourself, use the “semistatic” MUSL Linux builds, or install a package built specifically for this OS. To be clear, there are no actual issues with OpenSSL 3 compatibility — we just need to provide an alternative set of builds. See #892 for updates.

Thank you to everyone who contributed to this release!

tectonic 0.9.0

27 Apr 03:20
Compare
Choose a tag to compare

tectonic 0.9.0 (2022-04-27)

This release updates Tectonic to correspond with TeXLive 2021.3, jumping
forward from the previous sync point of TeXLive 2020.0.

  • The primary user-visible changes will stem from the many package updates
    incorporated into the new TeXLive 2021.3 bundle. We don't actually have a
    listing of all of the updates, but they are numerous. To switch a preexisting
    Tectonic document to use the new bundle, update the doc.bundle field in
    Tectonic.toml to https://data1.fullyjustified.net/tlextras-2021.3r1.tar.
    Newly-created documents will use this bundle (or subsequent updates) by
    default.
  • The XeTeX engine has mostly low-level updates, but there was a significant
    rework of OpenType math kerning and sub/super-scripting. There is a new
    \tracingstacklevels integer parameter. See the changelog for the
    tectonic_engine_xetex Rust crate
    for more details.
  • The xdvipdfmx engine has numerous updates including improvements for Japanese
    font fallbacks. See the changelog for the tectonic_engine_xdvipdfmx Rust
    crate
    for more details.

Separately, the “GitHub Discussions” feature for the Tectonic repository has
been activated:

https://github.com/tectonic-typesetting/tectonic/discussions

@pkgw has found himself unable to pay proper attention to the
tectonic.newton.cx Discourse service, which has been fairly moribund. The
intention is to sunset it.

We have one known issue worth highlighting:

  • The generic prebuilt Tectonic binaries for Linux are built for the version 1.1
    series of OpenSSL. The latest Ubuntu release, 22.04 (Jammy Jellyfish), now
    targets OpenSSL 3, with no compatibility fallback, which means that the
    prebuilt binaries won’t run. To run Tectonic on these systems, compile it
    yourself, use the “semistatic” MUSL Linux builds, or install a package built
    specifically for this OS. To be clear, there are no actual issues with OpenSSL
    3 compatibility — we just need to provide an alternative set of builds. See
    #892 for updates.

Other improvements include:

  • Some TeX packages attempt to read input from external processed using a “pipe”
    syntax. This capability is not currently implemented in Tectonic. Such uses
    now trigger a warning (#859, #888, @pkgw).
  • The location of the Tectonic cache is now customizable by setting the
    TECTONIC_CACHE_DIR environment variable (#884, @wischi-chr). People are
    encouraged to use the default whenever possible, but flexibility here can be
    useful in some circumstances.
  • Document the V2 -X flag better in the documentation and CLI output (#877,
    @clbarnes).
  • Some memory leaks during failed builds have been plugged as part of an ongoing
    (albeit slow) effort to get it so that Tectonic can be used with modern input
    fuzzing tools (@pkgw).
  • Allow basic \openin of un-closed \openout files to succeed (#882, @pkgw).
    This should get hyperxmp working (#862).

tectonic_xetex_layout 0.2.0

26 Apr 14:40
Compare
Choose a tag to compare

tectonic_xetex_layout 0.2.0 (2022-04-26)

Update for TeXLive 2021 (#882, @pkgw).

  • Add new C API needed for TeXLive 2021: ttxl_font_get_point_size.

tectonic_xetex_format 0.2.0

26 Apr 14:40
Compare
Choose a tag to compare

tectonic_xetex_format 0.2.0 (2022-04-26)

Update for TeXLive 2021 (#882, @pkgw):

  • There is one new integer parameter: \tracingstacklevels
  • Bump PRIM_SIZE to 510, since we have passed 500 primitives!

tectonic_pdf_io 0.2.0

26 Apr 14:40
Compare
Choose a tag to compare

tectonic_pdf_io 0.2.0 (2022-04-26)

Update xdvipdfmx for TeXLive 2021 (#882, @pkgw). A brief summary of changes based
on the TeXLive 2021 release notes:

  • Not applicable to Tectonic: GhostScript safety improvements
  • If an image file is not found, exit with bad status.
  • Extended special syntax for color support.
  • Specials for manipulating ExtGState.
  • Compatibility specials pdfcolorstack and pdffontattr.
  • Experimental support for dviluatex’s extended fnt_def.
  • Support new feature of virtual font to fallback Japanese font definition.

There are other internal changes; see the low-level ChangeLog. See also
the tectonic_xdvipdfmx crate, which actually contains only a few pieces of
this update.

Additionally, some new memory leaks have been plugged (@pkgw).

tectonic_engine_xetex 0.3.0

26 Apr 16:25
Compare
Choose a tag to compare

tectonic_engine_xetex 0.3.0 (2022-04-26)

Update the XeTeX engine for TeXLive 2021 (#882, @pkgw).

  • Present as XeTeX revision 0.999993
  • Update the XeTeX format specification to the new version 32
  • Import \Ucharcat update from 2018 that I seem to have missed before
  • Fixes for TeX bugs 430-440
    • 430: not relevant to Tectonic (interactive features)
    • 431: not relevant to Tectonic (interactive features)
    • 432: skipped (date/time in system variables; no discernable impact on Tectonic)
    • 433: "After nine parameters, delete both # and the token that follows" — breaking change!
    • 434: Don't accept an implicit left brace after # in macro head
    • 435: Keep garbage out of the buffer if a |\read| end unexpectedly
    • 436: Zero out nonexistent chars, to prevent rogue TFM files
    • 437: Don't classify fraction noads as inner noads
    • 438: Properly identify tabskip glue when tracing repeated templates
    • 439: not relevant to Tectonic
    • 440: Normalize newlinechar when printing the final stats
  • Significant rework/improvement of OpenType math kerning and super/sub-scripting
  • Honor PRIM_SIZE correctly now that we have to change it!
  • Implement \tracingstacklevels
  • Guard against expansion depth overflow
  • When reporting "lost characters", provide hex/UCS codes
  • TECkit updated to TL21: version 2.5.10, upgrading from 2.5.9
    • This updates Unicode character names and normalization data to 13.0.0

Also:

  • Allow \openin of \openout files to succeed (addresses #862, @pkgw).

tectonic_engine_xdvipdfmx 0.2.0

26 Apr 16:25
Compare
Choose a tag to compare

tectonic_engine_xdvipdfmx 0.2.0 (2022-04-26)

Update xdvipdfmx for TeXLive 2021 (#882, @pkgw). A brief summary of changes
based on the TeXLive 2021 release notes:

  • Not applicable to Tectonic: GhostScript safety improvements.
  • If an image file is not found, exit with bad status.
  • Extended special syntax for color support.
  • Specials for manipulating ExtGState.
  • Compatibility specials pdfcolorstack and pdffontattr.
  • Experimental support for dviluatex’s extended fnt_def.
  • Support new feature of virtual font to fallback Japanese font definition.

There are other internal changes; see the low-level ChangeLog. Note
that most of these changes are actually found in the tectonic_pdf_io crate,
which contains most of the actual exported xdvipdfmx code.

tectonic_bundles 0.3.0

26 Apr 14:40
Compare
Choose a tag to compare

tectonic_bundles 0.3.0 (2022-04-26)

This minor bump contains a breaking change!

  • The default bundle URL is now parametrized with the "format version", which
    captures the internal capabilities of the XeTeX engine. Since the bundle and
    the engine are fairly tightly coupled, this allows us to provide bundles that
    track the capabilities of newer engine versions, while preserving the behavior
    of older engine versions. Anyway, instead of exporting a FALLBACK_BUNDLE_URL
    const, we now export a get_fallback_bundle_url() method that takes the
    format version as an argument. This argument should be the value of
    tectonic_engine_xetex::FORMAT_SERIAL if you have a module that actually
    links to the XeTeX engine.
  • Make the cache location customizable with the environment variable
    TECTONIC_CACHE_DIR (#880, #884, @wischi-chr).
  • Fix "fetching" of zero-size files to succeed without attempting any I/O (#888,
    @pkgw).

tectonic_bridge_harfbuzz 0.2.5

26 Apr 14:40
Compare
Choose a tag to compare

tectonic_bridge_harfbuzz 0.2.5 (2022-04-26)

  • Update the vendored harfbuzz to 4.1.0.