Package: rinohtype
rinohtype is a batch-mode document processor. It renders structured documents
to PDF based on a document template and a style sheet. An important design goal
of rinohtype is make document layout and style customization user-friendly. See
thedocumentationto learn how to customize the style of your document.Call for ContributionsSince rinohtype is a fairly sizable project and currently being maintained by a
single person, your contribution can make a big difference. Specifically, the
following things can help move rinohtype forward:development of professional-looking stylesheets and document templatesvolunteering to be a maintainer: fix issues that pop up when new versions of
dependencies are released (Python, Sphinx, …), or handling
platform-specific regressions (development is mainly on macOS).help with maintaining and improving the documentationdevelopment of new features, e.g. widow/orphan handling, Knuth-Plass line
breaking, mathematics typesetting, performance improvements, …companies might be interested in funding the development of particular
featuresSo if you are interested in helping with any of these items, please don’t
hesitate to get in touch viaDiscussions,Gitterorbrecht@opqode.com!Featuresrinohtype is still in beta, so you might run into some issues when using it.
I’d highly appreciate it if you couldcreate a ticketfor any bugs you may
encounter. That said, rinohtype is already quite capable. For example, it
should be able to replaceSphinx’s LaTeX builder in most cases. Here is an
overview of the main features:a powerful page layout system supporting columns, running headers/footers,
floatable elements and footnotessupport for figures and (large) tables, optionally rendered sidewaysautomatic generation of table of contents and indexautomatic numbering and cross-referencing of section headings, figures and
tablesconfigure one of the included document templates or create your ownan intuitive style sheet system inspired by CSS allowing changing almost
every aspect of how document elements are renderedmodular design allowing for multiple frontends (such as reStructuredText,
Markdown, DocBook, …)handles OpenType, TrueType and Type1 fonts with support for advanced
typographic features such as kerning, ligatures, small capitals and old style
figuresbuilt-in support for the 1000+ libre licensed fonts onGoogle Fontsembeds PDF, PNG and JPEG images, preserving transparency and color profileseasy to install and deploy; pure-Python with few dependenciesbuilt on Unicode; ready for non-latin languagesrinohtype’s primary input format isreStructuredText. Therinohcommand
line tool renders reStructuredText documents and the includedSphinxbuilder
makes it possible to output large documents with your own style applied. Have
a look at therinohtype manualfor an example of the output.There is also a commercialDITAfrontend, but it’s development is currently
on hold. Pleasecontact meif you are interested in testing it.Requirementsrinohtype supports all stable Python 3 versions that have not reachedend-of-lifestatus. For parsing reStructuredText and CommonMark documents,
rinohtype depends ondocutilsandrecommonmarkrespectively.piptakes care
of installing these requirements when you install rinohtype.Syntax highlighting of code blocks is enabled ifPygmentsis installed, which
will be installed automatically withSphinx. If you want to include images
other than PDF, PNG or JPEG, you also need to installPillow.Getting StartedInstallation is trivial:pip install rinohtypeIf you want to have access to bug fixes and features that are not available in
a release, you can install the current development version:pip install https://github.com/brechtm/rinohtype/archive/refs/heads/master.zipreStructuredText RendererThe easiest way to get started with rinohtype is to render a reStructuredText
document (such asCHANGES.rstfrom this repository) using therinohcommand line tool:rinoh CHANGES.rstWhenrinohfinishes, you will findCHANGES.pdfalongside the input
file.By defaultrinohrenders the input document using the article template. Runrinoh--helpto see how you can tellrinohwhich document template and
style sheet to use.Sphinx Builderrinohtype can be used as a drop-in replacement for the LaTeX builder (thelatex_documentsconfiguration variable has to be set). Simply select therinohbuilder when building the Sphinx project:sphinx-build -b rinoh . _build/rinohContributingSeeCONTRIBUTING.rstandDEVELOPING.rstLicenseAll of rinohtype’s source code is licensed under theAffero GPL 3.0, unless
indicated otherwise in the source file (such ashyphenator.pyandpurepng.py).The Affero GPL requires for software that builds on rinohtype to also be
released as open source under this license. For building closed-source
applications, you can obtain acommercial license. The author of rinohtype
is also available for consultancy projects involving rinohtype.