Release Notes

New Features and Bugfixes in Publican 4.0

Laura Bailey

Red Hat
Documentation Team

Petr Bokoč

Red Hat
Documentation Team

Tomas Capek

Red Hat
Documentation Team

Zac Dover

Red Hat
Documentation Team

Laura Novich

Red Hat
Documentation Team

Dayle Parker

Red Hat
Documentation Team

David Ryan

Red Hat
Documentation Team

Copyright © 2013 Red Hat, Inc. This material may only be distributed subject to the terms and conditions set forth in the GNU Free Documentation License (GFDL), V1.2 or later (the latest version is presently available at


This document describes the enhancements and fixes included in Publican 4.1.

Publican is available for download at

The Publican User Guide is available at

Publican 4 Release Notes

PDF refinements

Publican 4.1 includes a number of bug fixes and enhancements for PDF generation with wkhtmltopdf:

  • Previously, Publican's PDF generation failed when no <author> elements was present in the <authorgroup> of a document. This precluded documents that were attributed only to a <corpauthor> or <editor>. Publican 4.1 no longer requires an <author> to be defined for a document. BZ#1050975

  • Previously, when rendering PDF files with wkhtmltopdf, Publican created entries in the table of contents for individual letters of the alphabet within <glossary> and <index> elements. Publican 4.1 creates only a table of contents entry for the glossary or index itself, not the letters within it. BZ#1058545

  • Previously, there was a blank page missing after the cover of a PDF, meaning that Publican was presenting title-page information on the verso of the document cover. Publican 4.1 introduces a blank page here so that when printed, the title page correctly appears on the recto of the leaf. BZ#1050770

  • PDF files rendered with wkhtmltopdf contained unexpected font rendering when opened with Adobe Acrobat if the document source contained PNG images that contained transparency. Publican 4.1 contains a patch to change the colourspace of a PDF page that contains such an image so that Adobe Acrobat renders the page correctly. BZ#1038393; see also upstream bug against wkhtmltopdf issue 1577

  • PDF files could not be searched within Adobe Acrobat (that is, Ctrl+F did not return results). This issue was fixed in wkhtmltopdf 0.12. Publican 4.1 now uses this later version of the tool. BZ#1065810

entrytbl now supported

Previously, Publican did not support the <entrytbl> element in DocBook, because FOP could not render it. In Publican 4.1, this element is now supported. Additionally, the error message for tables with incorrect values set in the <cols> element now outputs the number of entries found, instead of a hash.BZ#1069405

<td> elements now translatable

Previously, Publican did not include the contents of <td> elements in PO files. As a result, the content of tables that use HTML markup was not available for translation. Now, the content of <td> elements is available in PO files that Publican generates and matches on, and can be translated like any other translatable element. BZ#1059938

Simplelists can have up to 10,000 children

Previously, Publican only supported <simplelist> elements with 300 children or fewer. Publican 4.1 supports <simplelist> elements with up to 10,000 children. BZ#1035525

linenumbering="numbered" attribute now supported

Previously, Publican did not support the linenumbering="numbered" attribute for DocBook 5. This support is now available in Publican 4.1. BZ#1074709

Style refinements

Publican 4.1 includes a number of style fixes and refinements, including:

  • applying proportional bold italic styles consistently. BZ#1054462

  • differentiating the numbering of items in <orderedlist>s nested within each other. BZ#1080236

  • correctly aligning procedure <step>s and <substeps>s. BZ#1080236

<releaseinfo> now added to covers of documents

Publican 4.1 presents the contents of the <releaseinfo> element (when present) through to the cover of a document. This support allows writers to present detailed information about the release of a document in a prominent position. BZ#1050789

Stray space after <productname> removed

Previously, Publican inserted a stray space after the content of a <productname> element. This was especially noticeable when the productname preceded punctuation. In documents produced with Publican 4.1, the stray space no longer appears. BZ#1039382

Desktop-only packaging fixed

Publican 4.0 introduced a bug where RPM packaging of a document for desktop use only (that is, publican package --desktop) failed because the spec file, as generated, was invalid. Publican 4.1 uses the same mechanism to generate desktop RPMs as it uses to generate web RPMs, correcting the problem. BZ#1081087

Documentation suite navigation now embedded in splash pages

Publican 4.1 uses a template to embed product navigation elements into splash pages. BZ#1081300

Non-minified sources of JavaScript files now provided

Previously, Publican shipped two files (web/jquery.min.js and web/jquery.jcarrousel.min.js) as minified JavaScipt files. Providing these files in minified form made it harder for people distributing Publican to meet their obligations under the General Public License and the packaging requirements of various Linux distributions. The Publican source tarball now contains the non-minified versions of these files, although the minified versions are the ones installed with the software. BZ#1062109

XML::TreeBuilder requirement now made explicitly version-specific

The Publican 4.0 spec file did not explicitly require the version of the XML::TreeBuilder module that it needs (5.1). Combined with a situation where XML::TreeBuilder 4.0 provided itself unversioned, upgrades to Publican 4.0 on RPM-based systems did not also upgrade XML::TreeBuilder. and Publican would not work. Publican 4.1 explicitly requires XML::TreeBuilder 5.1, so updates to Publican will also install the required version of that module. BZ#1053609

<term>s now have ids and are linkable

Previously, Publican did not set an id on <term> elements, which meant that they could not be linked to directly. In Publican 4.1, <term> elements have ids and can be linked to. BZ#1050836

XML processing instructions preserved in PO file merges

Previously, Publican stripped XML processing instructions out of PO files when they were merged into the XML of the source language. In Publican 4.1, processing instructions are preserved when generating the translated XML files. BZ#1045463

Depth of tables of contents in PDF files now controllable

Previously, Publican only used its chunk_section_depth parameter to determine structure for its HTML outputs. This meant that the section depth displayed in the table of contents in a PDF file was not controllable. Publican 4.1 passes the chunk_section_depth parameter to wkhtmltopdf and uses it to determine the depth of entries presented in the table of contents of the PDF. BZ#1044848

Empty config files in brands no longer cause errors

Previously, if Publican attempted to load a config file that was empty or contained only comments, it would die and only return a generic error message to the user. Publican 4.1 loads brand default.cfg and overrides.cfg files without error, and dies with a descriptive error message if it tries to load an empty document config file. BZ#1037037

API compatibility enforced between documents and websites

Previously, Publican did not enforce API compatibility between documents packaged with Publican and a Publican-driven website. As a result, old documentation packages could be installed on a webserver but the documents would not be incorporated into the website navigation because the syntax of the publican install_book would be incorrect. Publican now provides an API version in its spec file, and requires this API in the documentation packages that it produces. Attempts to install packages on a webserver with a different API will fail because of an unmet dependency. BZ#1029293

Publican passes now passes a --previous option to msgmerge

Publican 4.1 supports --previous as a new option for publican update_po. This passes the PO merging to msgmerge and preserves the previous msgid as comments in the PO files. BZ#1034836

Documentation packages now provide an equivalent package with a POSIX-style language code

Publican 4.1 adds a provides parameter for documentation packages so that they provide package names with POSIX-style language codes alongside the XML-style language codes that Publican uses. For example, the Publican-Users_Guide-4.1-en-US package also provides a versioned Publican-Users_Guide-4.1-en_US. BZ#1083102

Publican ensures that tables do not exceed the width of a page

Publican 4.1 ensures that the contents of tables do not exceed the page width of a document, wrapping text even in places where it ordinarily wouldn't, so that it preserves the table presentation. BZ#1082444

Format for desktop RPMs now controllable.

Previously, Publican only offered its desktop HTML output in single-page format. Publican 4.1 adds the dt_format to allow documents or brands to specify the format that should be provided in the desktop RPM. BZ#1081808

Revision History

Revision History
Revision 4.1-1Mon May 5 2014Rüdiger Landmann
Create Release Notes afresh for Publcian 4.1