Version v0.15.10 of SILE has been released and is available for download!
See the included CHANGELOG.md or review the commit history for more explicit details.
Summary of Improvements
This release brings yet another layer of improvements contributed by Didier Willis, especially to the bibliography and indexing features.
The bibliography system now uses CSL (Citation Style Language) by default, with enhanced support for grouped citations via \cites
, better name formatting, and improved style compliance.
The indexer received significant upgrades including page range collapsing, customizable styling hooks, flexible placement in documents, and language-aware sorting.
Font handling saw improvements with new ex-height and cap-height adjustments, particularly benefiting code and verbatim text display.
The CLI also gained a new argument to streamline the process of loading 3rd party modules.
SILE has always found packages in specific system or relative locations easily, but setting the path to custom LuaRocks trees was not trivial.
A new --luarocks-tree
argument should make it much simpler to match however you install with .
Other notable changes include avoiding hyphenation prior to page breaks, and fixes for various language-specific issues including Uyghur hyphenation and UTF-16 handling.
Warning messages involving unsupported languages should also make more sense and not spam the terminal over and over.
New Features
- build: Add tooling to generate tarball of vendored crates (55be5cd)
- cli: Add argument to ease soarch for 3rd party module(s) (4f0d5a4)
- core: Support ex-height and cap-height font adjustment (4e16acf)
- packages: Add
\cites
to output grouped bibliographic citations (bdba2ea)
- packages: Add
\nocite
for marking a bibliography entry as cited (f828e9b)
- packages: Add indexer options minimal/minimal-two for page range collapsing (e272e43)
- packages: Add new styling hooks to the indexer (facf84c)
- packages: Add option for filler between item and page in indexer (691bfe2)
- packages: Allow indexes to be used anywhere in a document (808aaf4)
- packages: Honor bibliography style indentation rules (c08fcaa)
- packages: Partial support for name-parts formatting (18c436e)
- packages: Support links to pages in the indexer (5953e59)
- packages: Support page ranges in indexer (a84d4ef)
- packages: Use the CSL implementation by default for bibliographies (d3c352b)
- shapers: Warn when asked to measure a character not shaped in a font (e0b5cd8)
- typesetters: Add content to text utility to the base typesetter (6af4934)
- typesetters: Discourage page breaks after hyphenated lines (ba49c8c)
Bug Fixes
-
classes,packages: Use ex-height font adjustment for code (5b52afc)
-
font: Properly cache fonts before use so a hook could look at them (7e24648)
-
languages: Account for possible null termination in UTF-16 → 8 conversion (#2243) (e42b8de)
-
languages: Fix Uyghur hyphenation (2bff142)
-
languages: Move language setting declaration to after language supporte exists (447df41)
-
languages: Update tests for changed ICU defaults (bf6e0bc)
-
math: Script 'math' is needed for the ssty feature to work properly (cb64f9e)
-
packages: Always use fake superscripts in bibliography for consistency (97453b1)
-
packages: Apply default locale on locale overrides without xml:lang (cd70266)
-
packages: Automatically register the indexer on endpage class hook (d697388)
-
packages: Correct error handling the locator on some CSL styles (21b751e)
-
packages: Correct invalid links on CSL DOI, PMID, PMCID with affixes (d8386ab)
-
packages: CSL choose must inherit delimiter from nearest ancestor (64eaba4)
-
packages: Honor affixes on multiple CSL citations correctly (5de5607)
-
packages: Option "plural" on bibliography terms can be false (4d4bae5)
-
packages: Suppress empty CSL macros (98a7ebe)
-
packages: Use ex-height font adjustment for verbatim (dae3849)
-
packages: Use language-dependent sorting (collation) in indexer (5db2dcd)
-
shapers: Properly calculate metrics of single characters composed of many glyphs (2b109a0)
-
typesetters: Special punctuation spaces need better italic correction (448ab15)
Version v0.15.9 of SILE has been released and is available for download!
See the included CHANGELOG.md or review the commit history for more explicit details.
Summary of Improvements
This release actually fixes build issues for macOS (Darwin) we tried to fix in v0.15.8 but were more involved than first suspected.
It also packages some CSL files that were missing from previous source distributions and touches up a few other odds and ends.
In non-build related changes, Didier Willis patched up some bibliography behaviour.
As a cherry on top I patched up the ability to generate a completely blank PDF without throwing an error and changed the outputter API to include an official way to throw an error without also generating a blank PDF.
New Features
- outputters: Add a method to handle empty PDFs vs. cleanup after error (5a7694d)
Bug Fixes
-
build: Bundle XML and CSL resources with bibtex package (#2201) (73ffcd5)
-
build: Correct dependencies in non-embedded mode (5805cd4)
-
build: Re-organize rules so sources don't have platform detection artifacts (15a20e0)
-
build: Set correct final permissions on intermediary shell completion artifacts (a3de042)
-
classes: Avoid assuming legacy script tags will return a table (d596d53)
-
deps: Bump luautf8 dependency to restore building against latest LuaJIT (206f4b7)
-
docker: Package bootstrap script so Docker images can be built from source tarballs (15a18c0)
-
packages: CSL subsequent-author-substitute is optional (680df8c)
Version v0.15.8 of SILE has been released and is available for download!
See the included CHANGELOG.md or review the commit history for more explicit details.
Summary of Improvements
This release fixes build issues for macOS (Darwin) we introduced back in v0.15.6 that have been holding back releases on Homebrew and Nix's Darwin support.
In addition to the build support, the macfonts
font loader has been tweaked to support fallback to fontconfig
when a font is not found so it will behave more similarly to Linux builds.
On all platforms, CLI output is a bit cleaner.
Many runtime errors now output cleaner message formatting instead of a jumble of joined lines.
Also some error chains where one error would trigger another have been resolved.
The math support continues to be refined by Didier Willis, this release bringing a few new commands and features, better behavior parity with MathML, and a couple bug fixes.
New Features
- build: Add rockspec and build tooling for rusile module (d1ed71e)
- cli: Output runtime errors pretty-printed for readability (fb45160)
- fonts: Configure macOS to fallback from macfonts to fontconfig (4b6aa5e)
- math: Add (AMS)LaTeX-like stackrel, overset and underset (bfd41c0)
- math: Minimal support for accents in MathML and TeX-like commands (dd0b1b5)
- packages: Add handler for passing raw content to verbatim (46b0164)
Bug Fixes
-
build: Fix Lua module detection to fail if not found (18f707b)
-
build: Remove obsolete workaround for macOS dependency paths (3fb891a)
-
build: Set module build flags needed for darwin shared libraries (625ea69)
-
cli: Correctly pass through font manager preference from Rust CLI (d2fb48a)
-
core: Avoid internal error when also erroring due to user provided content errors (d83e63c)
-
inputters: Discard duplicate values being parsed without keys in XML (4bb31f0)
-
math: Change under/over constructs' inheritance of the base atom type (70d4f69)
-
math: Erroneous capital H and I in fraktur variant (#2183) (3263be3)
-
outputters: Don't attempt to create output if we error before processing even starts (d38ff03)
-
rusile: Adjust module loader to Darwin's shared module extension (2c5ea3e)