~~~~~~~~~~~~~~~~~~~~~~~~~~
New Features:
* Google Fonts: if a specified typeface is not installed, rinohtype attempts
to download the corresponding fonts from Google Fonts. Simply supply the font
name as listed on https://fonts.google.com as a value for the ``typeface``
style property.
* Table: in addition to fixed and relative-width columns, you can indicate
columns to be automatically sized by specifying a value of 'auto' in the
'column_widths' style parameter in your style sheet.
* docutils frontend: support the ``:align:`` option to table directives, which
will override the alignment set for the table in the style sheet.
* The starting number of enumerated lists in reStructuredText is respected.
* Table column widths can be specified in the style sheet, which take effect
when these haven't been specified in the source document.
* Document elements now store where they have been defined (document tree,
style sheet file or template configuration file); when you specify relative
paths (e.g. for images), they are interpreted relative to the location of
their source. This should make things more intuitive.
* The ``page_break`` style attribute is no longer reserved for sections; a
page break can be forced before any flowable.
* Enumerated list items with a hidden label ('hide' style attribute) are no
longer counted in the numbering.
* Templates and typefaces can be registered by name at runtime. This makes them
referencable from template configuration and style sheet files. For example,
custom templates/typefaces can be imported in a Sphinx project's `conf.py`
(to be documented).
* It's now possible to add arbitrary reStructuredText content to the front/back
matter or elsewhere by adding a ``.. container::`` with the 'out-of-line'
class and a ``:name:`` to reference it by in the document template
configuration, e.g. in the list of front matter flowables (to be documented).
* Selectors in style sheet files (.rts) now support boolean and 'None' values.
For example, you can select StaticGroupedFlowables based on whether they have
any children or not: e.g ``TableCell(empty=true)`` selects empty table cells.
* The document's title and author are now stored in the PDF metadata.
* "0" is now accepted as a valid value for Dimension-type attributes in style
sheets and template configurations.
Changed:
* Rendering speed was more than doubled (caching)! (PR 197 by Alex Fargus)
* Sphinx frontend: ``rinoh_documents`` now takes a list of dictionaries, one
for each PDF document to be built. This allows selecting e.g. the template
and logo on a per-document level. Support for ``rinoh_template``,
``rinoh_stylesheet``, ``rinoh_paper_size``, ``rinoh_domain_indices`` and
``rinoh_logo`` was removed. Fallback to ``latex_documents`` is retained.
(PR 182, 192, 195, 208 and 216 by Alex Fargus)
* The default stylesheet ('Sphinx') now prevents captions from being separated
from their image/table/code block (across pages).
* Font weights and widths are now internally represented by integer classes.
In addition to integer values, string values are still accepted (mapped to
classes).
* OpenTypeFont now determines the font weight, slant and width from the file.
For backward compatibility, it still accepts these as arguments on
instantiation but warns when they don't match the values stored in the font.
Fixed:
* Table column width determination was overhauled. Now fixed-width tables are
supported and automatic-width columns should be handled better.
* The 'nested bulleted/enumerated list' selectors were broken; their
corresponding styles were never applied
* Items inside a table cannot be referenced (issue 174)
* Sphinx frontend: fix handling of relative image paths in .rst files inside
a directory in the Sphinx project root
* rinoh: fix --install-resources (broken since PyPI disabled XMLRPC searches)
* GroupedLabeledFlowables: respect label_min_width and fix a crash with respect
to space_below handling
* Duplicate rendering of content in columns; if content was too small to fill
the first column, it was rendered again in subsequent columns.
* Crash on encountering a style for which no selector is defined.
Part of the work included in this release was kindly sponsored by `Joby
Aviation <https://www.jobyaviation.com>`_.