Releases: tectonic-typesetting/tectonic
tectonic 0.3.1
tectonic 0.3.0
tectonic 0.3.0 (2020-11-01)
The 0.3 series updates the core Tectonic engines to align with the code in
TeXLive 2020.0. The default “bundle” of support files will soon be
updated to match TeXLive 2020.0 as well. Standard usages should work if you use
an older version of Tectonic with the new bundle, and vice versa, but we
recommend that you update your installations to the 0.3 promptly if you can.
This release introduces a straightforward but breaking change to the API of
the tectonic
Rust crate, documented below.
For context, Tectonic’s core TeX implementation is forked from the XeTeX
engine. Accumulated changes to XeTeX are periodically reviewed and imported into
Tectonic, a process that must be done manually because Tectonic’s modernized
developer and user experiences demand a huge amount of customization. (The
scripts to support the first stage of this process may be found in the
tectonic-staging repository.) It has been a while since the last
synchronization, but this release incorporates the new changes introduced
between the last update and the release of TeXLive 2020.0.
The changes for TeXLive 2020.0 include:
- New low-level primitives including
\filemoddate
,\filedump
,
\uniformvariate
,\elapsedtime
, and a few others. - Tweaks to how font design sizes are mapped to TeX values
- New magic numbers used in PDF last x/y position accounting,
instead ofcur_[hv]_offset
. - Don't
print_raw_char
inshow_context
withtrick_buf
- Back up
cur_cs
inscan_keyword
andcompare_strings
. - Handle
XETEX_MATH_GIVEN
inscan_something_internal
- If encountering an unexpandable primitive in
scan_something_internal
,
try to deal with it. Ditto forscan_int
. - Do something different with active characters in
str_toks_cat
- Rework how file names are scanned.
- Defend against undefined eTeX registers in
main_control
- Some
uc_hyph
tweak deep in the linebreaking algorithm
There are also numerous changes in Tectonic’s included xdvipdfmx
.
The implementation of the \filemoddate
API required a breaking change to
the API of the tectonic
Rust crate:
- We needed to add more data to the data structures of the
MemoryIo
provider.
Migration should be pretty easy: instead offiles
containing a bunch of
Vec<u8>
s, it now contains a bunch ofMemoryFileInfo
structs that contain a
Vec<u8>
field nameddata
. So you just need to add some.data
field
accessors to existing code. This API clearly needs some polish to allow
greater stability going forward.
Other changes:
- Issue a warning if
xdvipdfmx
needs to translate a VF font to PK format,
which is unimplemented in Tectonic (it relies onmktexpk
) and so causes
failures on certain documents that work with XeTeX. - The Windows vcpkg-based build is temporarily disabled, as vcpkg currently has
a debilitating issue relating to SSL on Windows. - There is a new
-Z continue-on-errors
unstable option that tells the engine
to emulate the classic TeX style of plunging on ahead even in the face of
severe errors. This is a nice example of the possibilities unlocked by the new
-Z
infrastructure introduced in 0.2!
tectonic_xdv 0.1.10
tectonic_xdv 0.1.10 (2020-10-21)
- No code changes; just issuing a new release to update deps and silence
Cranko's change detection.
tectonic_cfg_support 0.1.1
tectonic_cfg_support 0.1.1 (2020-10-21)
- No code changes; just issuing a new release to update deps and silence
Cranko's change detection.
tectonic 0.2.0
tectonic 0.2.0 (2020-10-21)
The 0.2 series finally adds "unstable" -Z
flags! These allow you to configure
engine options that are relatively low-level. The hope is to eventually set
these kinds of things in a Tectonic.toml
file, so their use is mildly
discouraged, and long-term availability is not guaranteed. But there are plenty
of times when such flags can be helpful. The currently supported options are:
-Z min-crossrefs=<num>
controls the-min-crossrefs
option of standalonebibtex
-Z paper-size=<spec>
lets you control the output paper size, rather than
hardcoding it to be US Letter.
Enormous thanks to @ralismark for finally implementing this! (#657) Now that the
infrastructure is in place, suggestions for additional flags are more than
welcome.
tectonic 0.1.17
tectonic 0.1.17 (2020-10-13)
- Fix source-based installation by updating to cbindgen 0.15, after later
releases in the 0.14 series were yanked (@qtfkwk, #656) - Fix unreachable code in the CID/Type0 code (@burrbull, @pkgw, #639, #646)
- Update the
cargo vcpkg
build process to use a newer version ofvcpkg
, fixing
Windows builds when msys2.org is unreliable (@pkgw).
tectonic 0.1.16
tectonic 0.1.16 (2020-10-02)
- Add a "plain" backend for reporting status, used when the program is not
attached to a TTY. It will print out reports without colorization. (#636,
@ralismark) - Start adding infrastructure to automate the creation of bindings from the
C/C++ code to the Rust code, usingcbindgen
. (#643, @ralismark) - Update the code-coverage infrastructure to gather coverage information
from invocations of the CLI executable inside the test suite (@pkgw) - Fully automated deployment should really actually totally work this time.
tectonic 0.1.15
tectonic 0.1.15 (2020-09-10)
- Building on the work done in 0.1.13, we now capture and report diagnostics
nearly everywhere! Great work contributed by @ralismark (#635). - Yet more revisions to the automated deployment system. Maybe this will be
the time that it all works (@pkgw, #637).
tectonic 0.1.14
tectonic 0.1.14 (2020-09-08)
- No code changes from 0.1.13. Just trying to iron out some of the automated
deployment systems. Is this the time that the Arch Linux auto-deployment
finally works??
tectonic_cfg_support 0.1.0
tectonic_cfg_support 0.1.0 (2020-09-07)
- No code changes; new release to exercise Cranko release workflow and mollify
Cargo versioning