The SILE Typesetter
  • Home
  • What is SILE?
  • Examples
    • Global Scripts
    • Packages
  • Manual (PDF)
  • Download
GitHub

SILE v0.10.3 Is Released

04 Feb 2020 — Caleb Maclennan

Version v0.10.3 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 is essentially the same as v0.10.2, but with all the Lua module dependencies bundled again. The previous release would only build either with system provided Lua dependencies or with internet access to download them via luarocks; it was not fully self contained and hence could not be built on some systems.

Notable Bug Fixes

  • tooling: Make sure Lua modules get included in source tarball (ef5bb53)

  • tooling: Unblock standard-version release number bumping (7b18cd5), closes #816

SILE v0.10.2 Is Released

03 Feb 2020 — Caleb Maclennan

Version v0.10.2 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 primarily fixes minor packaging issues. The biggest change is this will be the first release with an officially supported Ubuntu PPA! In addition to the previously available installation methods Ubuntu users will be able to install sile with:

sudo add-apt-repository ppa:sile-typesetter/sile
sudo apt-get update
sudo apt-get install sile

Notable Bug Fixes

  • build: Don't include build *.so modules in dist (4eb2a73)

  • build: Fix version detection in sparse git checkouts (#803) (e46091f)

  • build: Include modules for all supported Lua versions in dist (a4e9f03)

  • build: Look for Lua 5.3 executables with the version in their name (3952bf8)

SILE v0.10.1 Is Released

24 Jan 2020 — Caleb Maclennan

Version v0.10.1 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 small follow up to the v0.10.0 release last week to fix a regression that cropped up and add deprecation warning messages. The last release went out with several major changes, particularly to the node and length APIs. Compatibility shims are in place so that old code still works for now, but this adds warning messages to make it easier to find and track down things that need updating.

Additionally since the last release cycle Docker images have been made available, and now support mapping system fonts into the Docker image.

Notable Bug Fixes

  • backends: Implement cursor tracking to roughly simulate glues (26afcec)
  • core: Actually deprecate old nodefactory instantiators (774f0fc)
  • measurements: Actually deprecate old constructors (bfdb1b8)
  • nodes: Fix pushHbox() regression, recognize zerohoxes (#789) (dae51f1)

New Features

  • backends: Approximate space and break in text output to PDF (9577ae4)

  • docker: Add dockerfile and setup to build an image (4424d44)

  • docker: Add method to inject fonts into Docker container (104124a)

SILE v0.10.0 Is Released

13 Jan 2020 — Caleb Maclennan

Version v0.10.0 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

Most of the many, many improvements in this release are under the hood. The build and test systems have been significantly overhauled, the release process has been streamlined and partially automated, continuous integration now tests code quality and commit messages, and there has been an enormous amount of code refactoring. All of these things make for a more readable code base and a more reliable and maintainable development environment, which we hope will facilitate SILE development in the future. Creating installers should be easier for most platforms than in previous releases, and we hope future releases will come with more pre-built packages.

There are also some user-facing improvements:

  • Installation is made easier, as SILE will now download and bundle the Lua modules that it requires. For those who have their own Lua installation and wish to make use of dependent modules installed with luarocks or their system’s package manager, use the --with-system-luarocks argument to ./configure.
  • Error and warning reporting has been improved; SILE will now tell you where in the document any errors occurred and (with the --trace option) the stack of commands it took to get there.
  • Language support:
    • Fixes to hyphenation in Danish, Greek, Finnish, and Ukrainian.
    • French punctuation conventions are followed, with (optional) non-breaking spaces before high punctuation marks.
    • Numbers can now be formatted as ordinals (at least for English and Turkish), by using the counter display type nth, and as words using the string display type.
  • A new text backend is available to dump a text-only version of the rendering process. This can much more accurate that extracting text versions from a PDF later for search indexing or similar purposes.
  • Improvements to tracking & letter spacing.
  • Dependency system: sile -m will output a Makefile snippet showing all the files required to build a SILE document.
  • Adding the toc=false option to a book section or subsection will cause it not to be added to the table of contents.
  • Added a man page for quick reference of CLI options.

Notable Bug Fixes

  • Boustrophedon, grid, and simpletable packages now work again.
  • Temporarily switching away from fonts specified by filename into a verbatim environment won’t crash any more.

⚠ BREAKING CHANGE

This removes the auto-guessing file extension mechanism that allowed *.sil files to be loaded without specifying the full file name with extensions.

A command like sile test will no longer find and build sile.sil, you must run sile test.sil. The mechanism that was doing this was a hack than only worked in some scenarios anyway, and dropping it instead of trying to cover all the edge cases will make it that much easier to use and document. Importantly it avoids edge cases where both *.xml, *.sil, and/or *.lua files all have the same name and the loader really has so idea which one you mean.

Note that packages may still be loaded with no file extension, this does not affect the require() mechanism that looks for *.lua and various other incantations by default.

Scheduled Deprecations

This release renames and deprecates many internal functions and classes. Most notably the default library used for class models has changed from std to penlight. Old methods are still available for now, but those developing external Lua packages and classes will want to check the wiki for instructions on how to update their code. The next release cycle will start throwing warnings when these deprecated functions are called, and the following cycle will remove them entirely.

SILE v0.9.5 Is Released

07 Jan 2019 — Simon Cozens

Version v0.9.5 of SILE has been released and is available for download! New in in this release:

  • Experimental package manager.

  • The "smart" bare percent unit (where SILE guessed whether you meant height or width) has now moved from deprecated to error. Replace with %pw etc.

  • Language support: variable spaces in Amharic (and other languages if enabled with the shaper.variablespaces setting), improvements to Japanese Ruby processing, Uyghur hyphenation revisited and improved, Armenian hyphenation added.

  • You can now set the stretch and shrink values of a space using the shaper.spaceenlargementfactor, shaper.spaceshrinkfactor and shaper.spacestretchfactor settings.

  • You can use - as input filename to pipe in from standard input, and - as output filename to pipe generated PDF to standard output.

  • New letter class.

  • New commands: \neverindent and \cr

  • New units: ps (parskip) and bs (baselineskip)

  • Links generated via the url package are hyperlinked in the PDF.

  • You can now style folios (page numbers) by overriding the \foliostyle macro.

  • Languages may define their own counting functions by providing a counter function; you may also lean on ICU’s number formatting to format numbers.

  • ICU is now required for correct Unicode processing.

  • Experimental support for SVG graphics and fonts. (see tests/simplesvg.sil)

  • Users may select the Harfbuzz subshaping system used (coretext, graphite, fallback etc.) by setting the harfbuzz.subshapers setting.

  • Fix typos in documentation (Thanks to Sean Leather, David Rowe).

Most other changes in this release are internal and non-user-visible, including:

  • Introduced vertical kern nodes.

  • Various fixes to pushback (end of page) logic, bidi implementation. ICU is now used for bidi.

  • Updated various examples to work with current internals.

  • Many and varied internal fixes and speedups, and improved coding style.

« Prev 1 2 3 4 5 6 7 8 9 10 Next »