CSS voodoo¶
The PDF layout is configured via CSS files and their definitions.
You can use some Sphinx mechanism to set specific CSS class inside the rst, so that you can control the output a little bit.
Predefined css classes¶
Page breaks¶
Some Sphinx directives allow to use the option :class:.
If this is set to break, then a page break will be introduced in front of the element.
Example:
.. csv-table:: CSV Table
:file: example.csv
:class: break
Page Orientation¶
The default orientation is portrait. To change the page orientation for a side, you can add the css class
ssp-landscape to
directives supporting the option
:class:or by using the
.. rst-class::directive in the document with classes as argumentsor by using the
.. container::directive with the options for the used classes
Examples:
.. rst-class:: break_before, ssp-landscape, break_after
.. csv-table:: CSV Table
:file: example.csv
.. or as alternaitve
.. container:: break_before ssp-landscape
**Landscape page orientation**
.. csv-table:: CSV Table
:file: /_static/example.csv
:header-rows: 2
If the default page orientation is changed to landscape, you can use ssp-portrait to change to portrait.
Table content wrap¶
By default table content is wrapped at whitespaces. If you have table content that can not be wrapped due to
side limitations, the table is drawn out of the margins. This behaviour can be changed by using the css class
ssp-table-wrap. This allows the table to break the content anywhere.
This requires a fixed table layout, so you have to set the widths options (or e.g. colwidths option
in needtable) to get good results.
This option is by default added to all Sphinx-Needs elements or could be explicitly set by applying the
ssp-table-wrap as style option to Sphinx-Needs directives.
Example:
.. list-table::
:widths: 10,80
:class: ssp-table-wrap
Table size¶
ssp-tinier and ssp-tiny can be set for a table to reduce the font-size and the internal padding of
rows and columns. Together with Page Orientation huge tables can be presented inside a PDF.
Example:
.. container:: break_before ssp-landscape
.. csv-table:: CSV Table
:file: /_static/example.csv
:class: ssp-tiny
Take a look into our Demo PDF for some examples of how tables could look like.
Sphinx-Needs elements¶
This works also for most Sphinx-Needs elements.
Example:
.. spec:: Specification Example
:id: SPEC_001
:style: break
or for needtable:
.. needtable::
:filter: 'sphinx' in tags
:class: break
Customizing theme¶
config() functions¶
Inside scss files you can use config(name, default) to get access to the values from
simplepdf_vars.
The default values is used, if the name can not be found inside simplepdf_vars, which is the normal case, as
simplepdf_vars is an empty dictionary by default.