CARVIEW |
Navigation Menu
-
-
Notifications
You must be signed in to change notification settings - Fork 101
Releases: sile-typesetter/sile
v0.15.13
675afeb
Compare
Summary of Improvements
Work on v0.16 is well underway including finally refactoring the internal module layout for languages, frames, fonts, font managers, and much more. But in the meantime less dramatic (and less disruptive) improvements have accumulated.
@Omikhleia has touched up CSL support and added support for position tracking. @turtlegarden sent in some updates to Norwegian localization. I fixed up some handling of unset settings, kept reloading modules from re-registering commands, and sped up development cycles by enabling a debug mode that skips time consuming build time optimizations.
New Features
- packages: Add position tracking for bibliography citations (5930a0c)
- packages: Support the position condition in CSL engine (0c732a2)
Bug Fixes
- build: Pass --enable-debug through to Cargo to actually get a debug-enabled binary (443551a)
- fonts: Properly account for settings allowed to be nil (792518e)
- languages: Update Bokmål messages (a10e0f4)
- languages: Update Nynorsk messages (4ec6654)
- packages: Add missing boolean coercion for strip-periods in CSL engine (5af2842)
- packages: Always apply punctuation-in-quotes in CSL citations (689c8e2)
- packages: Fine-tune CSL post-rendered cleaning hacks (487f3f0)
- packages: Fix package reload to not call for command reregistration unless asked (41846f7)
Assets 13
- sha256:427dc99b85884d596455f4ebfe16591c767db91d5160f19145073befb4b72ea81.07 MB
2025-05-31T22:16:55Z - sha256:71a27858fc4dc51963a4c1ce88fa7cfa27b032d09dff13f6dec5dafc01ee5b2b833 Bytes
2025-05-31T22:21:28Z - sha256:00c7d4e7669fc81ee2e2f0718e61b5b95b0f152fcce1ba295064695385b86272331 Bytes
2025-05-31T22:16:54Z - sha256:5e97c19651aff710687b93292d5361cb411652094bcc8c62c811c19f7a81464b3.21 MB
2025-05-31T22:16:55Z - sha256:225c1ce18b2833afd499b3b8d76772ce8a4b9703b667bd9f5e2ce459bf4ecee1833 Bytes
2025-05-31T22:21:28Z - sha256:8d9a53664f651295e8f8af1c8e093d3b6cb99b4a8ae3b888b4f4640272c60e474.53 MB
2025-05-31T22:16:55Z - sha256:c07a9ffe9fbbb6a91ebbb351b4d83a98461685df0c521fb0f823079f74292a5a833 Bytes
2025-05-31T22:21:28Z - sha256:ac8fd9513708aae1cfdeba33883e29ec6475c5dc25661a034be457765553327a26.3 MB
2025-05-31T22:16:55Z - sha256:2739ac5e430d85e6a146d89f6f70e69dce94ad3a59e0167f0bf122a0df8d92ea833 Bytes
2025-05-31T22:21:28Z - sha256:f9f875447ecade9515e984ee66039c67d64c99fbfc904f95fe7f1ed0edbfe19414 MB
2025-05-31T22:16:55Z -
2025-05-31T21:50:31Z -
2025-05-31T21:50:31Z - Loading
v0.15.12
0938a45
Compare
Summary of Improvements
The last release went out with really obnoxious inverted logic for a deprecation message that spammed the terminal warning users when their usage of various modules was correct and up to date and not when they were using a deprecated interface. This just puts the noise to rest.
Bug Fixes
Assets 13
v0.15.11
fa70301
Compare
Summary of Improvements
This release isn't ground breaking, but it is line breaking. A major bug in our hyphenation algorithm went undetected for a long time because (by a virtue of a bug canceling out a bug) it didn't happen to affect English or Turkish—far and away the most utilized languages in SILE's history. But it did affect French, where @Omikhleia found and squashed it. Hyphenation minima settings should be properly set for many other languages now and follow the current language. Several languages also got hyphenation pattern updates.
In other minor details, length and measurement types no longer silently 'succeeds' when asked to parse non-compliant input. Additionally disabling the (default on) variablespaces
setting will actually take effect now and not continue to use any of the related settings in some contexts.
New Features
- cli: Include deps file itself as output target so it gets remade (696aafe)
- languages: Update hyphenation patterns for Bulgarian (e1bd96e)
- languages: Update hyphenation patterns for el/grc (e5e30d6)
- languages: Update hyphenation patterns for Portuguese (1298af4)
- languages: Update hyphenation patterns for Spanish (cf289b6)
- languages: Update hyphenation patterns for Thai (4abed66)
- packages: Add revert for space handling bug fix to retrograde (951e47e)
Bug Fixes
- cli: Correctly output makedeps files from the Rust CLI the same as from Lua (42a879a)
- cli: Pass current binary name of Rust wrapper through for errors and make-deps (62820ce)
- core: Error on excess unparsable input on measurements and lengths (#2260) (4d33389)
- hyphenators: Correctly apply hyphenation minima, isolate per language (6143d54)
- languages: Set proper hyphenation minima for Esperanto (a014353)
- outputters: Update cairo backend to work with current API (13bd9d4)
- shapers: Actually disable variablespaces if setting set to false (a6628b5)
- shapers: Update pango shaper to work with current API (541cb8d)
Assets 13
v0.15.10
36f25f3
Compare
Summary of Improvements
This release brings yet another layer of improvements contributed by @Omikhleia, 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)
Assets 13
v0.15.9
4ff5c60
Compare
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, @Omikhleia patched up some bibliography behavior. 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)
Assets 13
v0.15.8
0f5364d
Compare
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 @Omikhleia, 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)
Assets 11
v0.15.7
10c3084
Compare
Summary of Improvements
Please welcome CSL support. This is still a bit experimental, but this begins the deprecation of the home grown bibliography styling in our bibtex package. SILE can now leverage industry standard Citation Style Language specifications, which opens up a world of existing locale and style guide support. This is thanks to long-running work from from @Omikhleia on overhauling bibliography support. His work on the math package also continues with many operator and layout fixes and a few new features continuing to round out out MathML compatibility.
For folks calling out to Lua functions or system tools in their classes, packages, or documents, those calls will now track the document locale. If you use an OS function or external tool that supports localization, you should now get results that match the locale in the document at the time it was called. Responsiveness to locale modifiers might be a little rough until we normalize our locale format to be BCP-47 compliant, but it already works for basic locales. Incidentally this also provides a utility API that can be used to set any ENV variable you want before running external tooling.
Of interest only to SILE developers, some new configure flags have been added for convenience. Any individual tool used in the development and release process can be skipped or overridden using standard --with[out]-PACKAGE=PATH
flags. Additionally skipping all the tooling checks can be done with --without-developer-tools
even when --with-developer-mode
is used.
Finally for distribution packagers, cross compilation of the Rust binaries should be a bit easier now.
New Features
- build: Add configure flag to skip checks for all developer tools (c01c867)
- build: Enable --with[out]-EXECUTABLE=PATH configure flags for tooling dependencies (89b5836)
- core: Set Lua's internal locale so builtin functions respond to document language (a614169)
- core: Set system locale for subprocesses to match the document language (b28cafd)
- math: Add pre-defined TeX-like operator functions (cos, sin, etc.) (8d83821)
- math: Support TeX-like apostrophe and multiplication sign as primes and asterisk (b8f35ff)
- math: Support TeX-like left..right delimiter syntax (960dc3f)
- math: Support the MathML operator dictionary and many TeX-like aliases (3dd25e9)
- packages: Add lightweight CSL engine (8d3961c)
- packages: Keep track of cited bibliography entries (57b3b7c)
- packages: Use experimental CSL renderer for BibTeX (808c6bb)
- utilities: Add function to set environment variables (0f0ed02)
Bug Fixes
- build: Support cross-compilation of Rust binaries (#2178) (19c7c1d)
- math: A period must be allowed in TeX-like math syntax for numbers (56edc14)
- math: Add math.font.script.feature setting, defaulting to ssty (2adc912)
- math: Improve spacing rules on limit-like operators (781f62a)
- math: Spacing rules must distinguish binary and unary operators (81a1be5)
- math: Suppress invisible operators in MathML (#2177) (72faad5)
- math: The (escaped) percent is an ordinary atom in TeX-like syntax (4170719)
- packages: Fix bogus command in Pandoc module's definition lists leaking bold (8c9348b)
Assets 11
v0.15.6
007b2da
Compare
Summary of Improvements
Things got away from me. This release has more features and fixes than we usually let pile up in a patch release. I’ve spent a good deal of time over the last month in the hospital with my son and PR notifications just kept pouring in!
Most of the substantive features and fixes again come from @Omikhleia. This release includes a whole bunch of his work on math feature support fleshing out the MathML compatibility and correcting various math layout issues. It also his work updating hyphenation support for a number of languages and adding support for many more, mostly adapted from TeX hyphenation libraries. He also normalized some inconsistencies in the AST generated by the SIL and XML readers and fixed line layout in the verbatim package. His work towards CSL support is still pending my bandwidth to review in the bibliography project.
Additionally this release should be a bit more flexible in working with 3rd party modules. Notably we've accommodated some Lua limitations on macOS and Homebrew installations should be more versatile now. For Docker workflows, the SILE-provided LuaRocks should be visible to the host system as well.
Behind the scenes some minor features provided by vendored Lua libraries have been ported to Rust instead. This shouldn't even be noticeable to end users at this point, but serves as a proof of concept for implementing other internals in Rust while still bridging seamlessly to Lua. Many issues with building static binaries with embedded resources were resolved and build conflicts with ICU 76.1 resolved. Passing the class options via a CLI flag is again parsed correctly. Finally a few error messages and warnings have been cleaned up to be more readable and perspicuous.
New Features
- build: Add --with-vendored-luarocks=dir for use in distros with pseudo-system path handling (e93f072)
- cli: Catch missing required arguments at parse time (84f0d78)
- cli: Mimic Lua VM's
;;
to extend not replace the default package paths (bb47f21) - core: Add px unit as 0.75pt as per CSS3 (59f4bfd)
- core: Add separate crate to enable exporting interfaces to Lua (3a95a48)
- core: Extend SU.collatedSort for complex table sorting (3854be8)
- docker: Splice SILE's vendored rocks tree into system LuaRocks (548f426)
- languages: Add Albanian (sq) basic support (a1eedfc)
- languages: Add Belarusian (be) basic support (084f81d)
- languages: Add bibliography localizations for Swedish (#2125) (17371f3)
- languages: Add bibliography localizations for Turkish (84f15e9)
- languages: Add Church Slavonic (cu) basic support (01bead5)
- languages: Add Coptic (cop) basic support (e25b806)
- languages: Add Friulan (fur) basic support (4b88d91)
- languages: Add Galician (gl) basic support (b5116ed)
- languages: Add Interlingua (ia) basic support (6f920e6)
- languages: Add Kurmanji (kmr) basic support (c700786)
- languages: Add Macedonian (mk) basic support (c4ef9e9)
- languages: Add Occitan (oc) basic support (4610122)
- languages: Add Pāli (pi) basic support (13c2531)
- languages: Add Telugu (te) basic support (237d06d)
- languages: Add Upper Sorbian (hsb) basic support (51ac4f8), closes #1994
- math: Add mathcal, mathbb and similar commands in TeX-like math (c867d60)
- math: Add more TeX-like math commands behaving as big operators (ac9337e)
- math: Support a TeX math like text command (518e497)
- math: Support MathML bevelled fractions (567ac54)
- math: Support MathML maction (basic) and mstyle (partial) (0df93b1)
- math: Support MathML movablelimits attribute (92c678a)
- math: Support MathML mpadded and refactor TeX-like phantoms (d579096)
- math: Support MathML mphantom and TeX-like phantom, hphantom, vphantom (46e5954)
- math: Support MathML mroot element (88ebff7)
- math: Support MathML mtext and ms elements (3023b93)
- math: Support mathvariant on special extra greek characters (6f379da)
- math: Support square roots (7efd24d)
- math: Support TeX-like math limits (eb402c5)
- rusile: Enable embedding of Rusile module (693d7d4)
Bug Fixes
- build: Correct regression in v0.15.5 in generating embedded files list (dae2f7f)
- build: Smooth out build on ICU 76.1 per Homebrew report (8390534), closes #2152
- cli: Correct return value handling when process() doesn't lift weight (fb6b866)
- cli: Fix handling of --option flag in Rust CLI (a77170e)
- core: Correct module load paths when building in developer mode (4fbb6c0)
- docker: Setup system locales in containers where it actually counts, not before (55a4ba3)
- inputters: SIL commands and environments must generate the same syntax tree (4854992)
- languages: Add missing hyphenation patterns in polytonic Greek (42d14dd)
- math: Add missing MathML mathvariant mappings (803d699)
- math: Avoid page breaks before display math equations (19fd61f), closes #2160
- math: Correct math greek symbols and their var-alternate (6346a2d)
- math: Correct sub/superscript position for subformulas vs. symbols (6827eb9), closes #2122
- math: Default table row/column spacing must depend...
Assets 11
v0.15.5
f673110
Compare
Summary of Improvements
This is a relatively minor maintenance release. Thanks again to ongoing work by @Omikhleia, support for bibtex format bibliographies is improving. Date and author parsing and rendering has been improved. Support for CSL is still brewing in the bibliography project.
Additionally the --quiet
flag now correctly suppresses all parts of warning messages for cleaner output when you don't want to debug your project. Even more behind the scenes, the entire code base has also been spell-checked, with hundreds of words in comments, code, and documentation being corrected.
New Features
- packages: Support biblatex date field and improve date formatting (5169d67)
Bug Fixes
- build: Fix distribution of unit tests clean up dist file list (00abf9b)
- classes: Make document state available during class's post init (71336b9)
- cli: Suppress trace info in quiet for warnings but do show errors (e12dcc9)
- packages: Parse and split all bibtex name fields (e3a7dc1), closes #2052
- packages: Use non-breakable space in bibTeX name splitting, not tilde (f4ea4ed)
Assets 11
v0.15.4
b738c1c
Compare
Summary of Improvements
The dust finally settled on the big v0.15.0 release. This patch does include a few more build system touch ups affecting the source tarball that made in require automake when it didn't really need it. But the impetus for this release is actually new features and typesetter bug fixes.
On the language front, @jodros has jumped in with some more domain expertise and Portuguese should now fully support hyphenation of Brazilian locale specific patterns. Additionally we fixed two bugs in the localization system. The locale set for Fluent localizations now properly tracks the document language at any given moment whether set by a font or even a Latin interjection in a bibliography.
Speaking of bibliographies, @Omikhleia is in the middle of a deep overhaul of our bibliography handling. This release has a number of features and bug fixes that lay some groundwork for better parsing and handling bibtex files. More fixes and features are also in progress and even ready for testing. If you have any interest in bibliographies feel free to review ongoing issues and PRs in the bibliography cleanup project.
New Features
- build: Add a developer target to test build dist without automake (7bdaf16)
- languages: Add Brazilian Portuguese specific hyphenation points (895c575)
- packages: Biblatex data inheritance and field mapping (646e3a4)
- packages: Support
@string
syntax in bibTeX bibliography (63083ad), closes #2051 - packages: Support
@xdata
entry type and xdata field in bibTeX bibliography (ca906f0) - packages: Support crossref field in bibTeX bibliography (c4ae919), closes #2021
- tooling: Add developer target to build Rust API docs (384fa46)
Bug Fixes
- build: Avoid building sile binaries if not using them (bbde8e6)
- build: Avoid the perceived need for an extra automake cycle in dist tarball (f634a60)
- build: Do not distribute main man page, requires Rust tooling (26a6346)
- build: Don't distribute distfiles list with configure option specific output (b9d95fd)
- build: Flag transitive dependency on Git if not using system LuaRocks (ea2d501)
- languages: Always set Fluent locale when setting
document.language
(283fdc3) - packages: Correct handling of ampersands and tildes in bibtex (aaa613f), closes #2050 #1860
- packages: Ignore
@preamble
in bibTeX bibliography (742a0c4), closes #2051