Version v0.15.7 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
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 Didier Willis 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)
Version v0.15.6 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
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 Didier Willis.
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 beveled 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 on the math font size (9ce5271)
-
math: Empty mrow's in munderover should not affect the baseline (6f67be5)
-
math: Fractions must have padding to avoid visual confusion (1c009c7)
-
math: Handle LaTeX-like math top accent commands correctly (f4c513a)
-
math: Honor stretchy attribute on MathML mo elements (bde46cd)
-
math: Paired open/close atoms shall be forced in a mrow in TeX-like math (4bbeaa6)
-
math: Stretchy symbols should work on large content (workaround) (589c058)
-
math: Support basic operator stretching along the inline axis (b6e054e)
-
math: Support linethickness attribute on MathML mfrac (e0559e8)
-
math: Top-level math element must behave as an (horizontally stacked) mrow (1f1a1a0), closes #1293
-
math: Wrong condition on moveable limits (workaround) (19906b9)
-
math: Wrong vertical alignment of integral signs (a42181f)
-
packages: Ensure package dependency verbatim is loaded when using autodoc (3a0ef46)
-
packages: Honor margins and base line skips in verbatim mode (58f65d5)
-
shapers: Measure a character should also return its depth (e243b2f)
-
typesetters: Obey blank lines in verbatim-like context (94cfe06)
-
utilities: Fixup AST debugger to handle anonymous content (c50dd07)
-
utilities: Normalize formatting of messages, warnings, and errors (a47b8f3)
Version v0.15.5 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 is a relatively minor maintenance release.
Thanks again to ongoing work by Didier Willis, 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)