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

SILE v0.12.3 Is Released

02 Mar 2022 — Caleb Maclennan

Version v0.12.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 patch release changes the way new frames are generated to inherit settings differently. These changes should qualify as "fixes", but could affect workarounds for anybody that had trouble before. Loading the BiDi package (which happens by default) now changes the default typesetter in addition to the current one. This affects some features such as the commands to typeset into a different frame than the current one when RTL languages are involved. Additionally, the way frames are created has changed so that direction settings such RTL set on the class are inherited by default to default and new frames unless otherwise specified. This affects folio, footnote, and other default frames as well as any created programmatically.

Both changes are likely the behavior most users would expect anyway –hence the minor patch release– but could cause unexpected results in documents that had other ways of dealing with the previous unexpected behavior.

Bug Fixes

  • frames: Inherit class direction setting in new frames (35c8a25)

  • packages: Make boxaround respect shrink/stretch (rules package) (9d8f708)

  • packages: Make underline respect shrink/stretch (rules package) (a5d99f0)

  • typesetter: Enable bidi for default typesetter on package load (6a8d7f4)

SILE v0.12.2 Is Released

28 Jan 2022 — Caleb Maclennan

Version v0.12.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 patch release is to fix a regression in handling negative width spaces — something that turn up when typesetting Nastaliq. Thanks to first-time contributor Michael Brown for both the report and fix. Also the documentation for the dropcap package added in the last release is now in the manual. The only other thing possibly worth noting is that the prebuilt Docker images now run on the recently released Lua 5.4.4.

Bug Fixes

  • shaper: Fix line length calcs with negative width word spacing (685d12d), closes #579

SILE v0.12.1 Is Released

12 Jan 2022 — Caleb Maclennan

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

The first minor release in the v0.12.x series brings several new features relevant to paragraph shaping. Didier Willis has fleshed out the linebreak mechanism with full parity of LaTeX's settings including hangingIndent and parShape. Having fully featured paragraph-wise hanging indent settings enabled a new package, dropcaps, to provide much more robust dropcap functionality than the previous floating frame mechanism we used for this. (Note the dropcap package documentation did not make it in the manual at release time, see the example on the website or the manual from a newer release for usage.) Additionally the paragraph shape callback function can now be used to create fancy paragraph shapes using any geometry you can specify or calculate.


Dropcaps
(source) (PDF)

Dynamically computed paragraph shapes
(source) (PDF)

Bugfixes in this release cover several issues with French language, PDF metadata encoding, color fonts, book class headers, and more.

Features

  • build: Accommodate SOURCE_DATE_EPOCH for reproducible builds (16c81a8)
  • classes: Add \noop function for versatile SILE.call() use (2b04507)
  • core: Add OpenType post (v1) table parser (a985aed)
  • core: Implement Knuth's hangAfter and hangIndent (5417189)
  • core: Implement paragraph duration hanging indent settings (18ee23b)
  • core: Implement paragraph shaping (parshape) (c2c0235)
  • packages: Add dropcaps package (cb9105a)
  • packages: Add shift, raise, and size options to dropcaps (0a88948)
  • packages: Implement color option for dropcaps (d042bcf)
  • packages: Use font's post table to determine underline position (ae1b929)

Bug Fixes

  • backends: Move Lua 5.1 macro so covers whole file (9b40772)

  • classes: Reset state when calling running headers (ec0a7b8)

  • classes: Unnumbered book sections shall not display a number in running headers (4afde42)

  • Fixes name of accented math symbol, eliminates duplicate newStandardHspace assignment (4c38f1a), closes #1274

  • languages: Correct hyphenation after apostrophe in French and Catalan (4c93891)

  • languages: Correct synchronisation between indexes in French word breaking (94ca931)

  • languages: Repair broken French hyphenation patterns (c25d9d7)

  • packages: Add \pdf:metadata support for dates (1b87305)

  • packages: Apply OpenType x and y offsets to color fonts (d66dc5f), closes #1147

  • packages: Correct rebox to not output duplicate content (2802d9b)

  • packages: Don't over-isolate functions run in Pandoc imports (#1254) (84507a5)

  • utilities: Fix UTF-16 encode/decode utility functions (7180081), closes #1280

  • utilities: Set language of roman numerals to Latin to avoid casing issues (#1253) (95c4e2c)

SILE v0.12.0 Is Released

22 Sep 2021 — Caleb Maclennan

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

Please welcome MATH typesetting!

While this release follows close on the heels of previous releases it represents over 2 years of work from community contributors. Rui Xia started work on a native math feature in April of 2019. While this initial phase was never completed, it did get as far as a working prototype. In November of 2020, Oliver Nicole picked up on the work and transformed the prototype into the shape as found in this release. Additional thanks to Mateusz Czapliński for input throughout the process.

On a conceptual level the math support is based on MathML and relies on OpenType math fonts. The input notation may be MathML (either directly using the native XML syntax or using an 1-to-1 equivalent SILE syntax) or an alternative math shorthand similar to the math notation used by TeX. See section 5.29.5 in the v0.12.0 manual for detailed documentation on the new math package. Examples are given for various formulas and syntax options. A math example has also been added to the packages example gallery on this website.


Math
(source) (PDF)

Additionally Didier Willis contributed several new features and fixes including much more control over Table of Contents, styling options for PDF links, correct French punctuation treatment, and more.

Thanks to the contributions of Doron Behar, as of this release SILE is usable as a Nix Flake (in addition to the usual Nix package). This is an easy way to test run the latest Git HEAD version at any time from almost any OS. One you have flake support enabled, just run nix run github:sile-typesetter/sile -- <sile orguments>. This website uses this to regenerate some of the examples in the gallery.

Even though the math package is a major new feature, ultimately the major version bump was caused by a breaking change elsewhere. Previous to this release, the font used for footnotes was the SILE default unless specifically set. Setting changes were relative to the SILE default rather than the document default. This behavior was workable, but usually came as a surprise to most users. With this release, footnote and folio frame font settings default to being relative to the current document font. The font family, size, leading, and all other aspects of footnotes and folios are still configurable with the same tools as before. But this is a breaking change because those settings are now relative to a different base which might cause many documents to need updating.

⚠ BREAKING CHANGES

  • packages: Previous to this release footnote and folio frames took their font settings from a new typesetter with default settings. With this release the settings are now derived from the typesetter in the default frame, hence inheriting font family, size, leading, and other settings. Values can still be set using the same functions, but relative values such as font sizes are based on a different base.

Features

  • core: Add MATH variants table parser (b6c554e)
  • core: Add OpenType MATH table parser (835da21)
  • math: Add ‘debug’ option to math command (58cc9dc)
  • math: Add “big operator” support (5b9a150)
  • math: Add fixes to support less complete fonts (1c22af3)
  • math: Add italic correction to superscript; correct subscript size (d81fdee)
  • math: Add math.font.filename setting (522d70b)
  • math: Add math.font.size setting (5077d1c)
  • math: Add operator defaults (14bdf1a)
  • math: Add parameter to draw debug boxes around math components (2458d18)
  • math: Add parameters and support mathvariant param for mi tag (869dca8)
  • math: Add plain text support (3a09e9d)
  • math: Add subscript and superscript; add math constants (0489c04)
  • math: Add support for “symbol macros”, expanding to strings (27658f5)
  • math: Add support for fractions (6f4fc24)
  • math: Add tags for some mathematical symbols (b9fd771)
  • math: Add tex-like math parser (edceaf7)
  • math: Allow vertical stacking of top-level ‘mrow’s (56b553c)
  • math: Center display math neatly (8951378)
  • math: Implement and use munder and mover (61eac7a)
  • math: Implement generic bbox shaper (9c86aff)
  • math: Output error if rending with non-math font (c79617b)
  • math: Replace leading - with − in numbers (f8d490c)
  • math: Support double-struck identifiers (29674bf)
  • math: Support for simple macros (5b4ecf7)
  • math: Support italic (c9b2884)
  • math: Support more integral-like operators (90a6c44)
  • math: Support of UTF-8 in texmath, support of mo, mi and mn in-grammar (959d1cc)
  • math: Turn "-" (hyphen) into "−" (minus) in math (fbed523)
  • packages: Add border style and color to hyperlinks (bb880be)
  • packages: Add function to remove last added fallback font (acf987b)
  • packages: Add linking support to toc entries (e589cb9)
  • packages: Add toc depth option and hooks for showing section numbers (c48fcde)
  • packages: Allow URLs to have many breakpoints (#1233) (b145605)
  • packages: Warn if toc contents have changed (5b6eed8)
  • tooling: Enable use as a Nix flake (8b503bb)

Bug Fixes

  • classes: Don't increment counters on unnumbered book sections (6cfca4d)

  • core: Correct --help output to reflect required values (da487ec)

  • languages: Add test 704 for French punctuations, fix expected 621 and 702 results (8e9b056)

  • languages: Correct Armenian support to use ISO 639 code ‘hy’ (ffafbe6)

  • languages: Correct punctuation rules for French (95c2398)

  • languages: Don't initialize Japanese unless actually called for (3aba931)

  • languages: Shortcut ICU soft breaks in French (ed8734c)

  • math: Fix underover error with sub wider than base but no sup (bc87393)

  • packages: Don't replace shaper unless actually initializing color-fonts package (269ca59)

  • packages: Fix deprecation warning command in package docs (a69d774)

  • packages: Reset footnote and folio settings top level state (3795a4e)

  • shaper: Fix memory leak in Harfbuzz library (#1243) (035dcc8)

SILE v0.11.1 Is Released

03 Sep 2021 — Caleb Maclennan

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

Today’s small patch release is mostly to help out downstream packagers with some small issues that cropped up. First it’s a stab in the dark hoping we made things easier to get Homebrew packaging working on ARM based macOS. Secondly we added a build time check for git, which is required in order to use SILE’s internal package manager. This dependency may change in the future, but since we use it now it’s helpful that system compatibility is checked at build time. Lastly we fixed up some internal usage of an API we deprecated 6 releases ago and documented as going away in v0.11.0, but forgot to stop using ourselves. Notably the French language support module was affected.

Bug Fixes

  • build: Avoid implied line continuation in makefile (f2af48f)

  • build: Require Git even building tarballs, used by package manager (aba8662)

  • languages: Update deprecated syntax in language options (3fb1719)

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