A general framework for globally optimized pagination. (22nd March 2018) - Mittelbach, Frank
Abstract: Pagination problems deal with questions around transforming a source text stream into a formatted document by dividing it up into individual columns and pages, including adding auxiliary elements that have some relationship to the source stream data but may allow a certain amount of variation in placement (such as figures or footnotes). Traditionally, the pagination problem has been approached by separating it into one of micro‐typography (eg, breaking text into paragraphs, also known as h&j) and one of macro‐typography (eg, taking a galley of already formatted paragraphs and breaking them into columns and pages) without much interaction between the two. While early solutions for both problem areas used simple greedy algorithms, Knuth and Plass introduced in 1981 a global‐fit algorithm for line breaking that optimizes the breaks across the whole paragraph. This algorithm was implemented in (see Computers & Typesetting, Volume B: TeX: The Program by Knuth in 1986) and has since kept its crown as the best available solution for this space. However, for macro‐typography there has been no (successful) attempt to provide a globally optimized page layout: All systems to date (including ) use greedy algorithms for pagination. Various problems in this area have been researched, and the literature documents some prototype development. However, none of them have been made widely available to the research community or ever made it into a generally usable and publicly available system. This paper is an extended version of the author's work in 2016 originally presented at the 16th ACM Symposium on Document Engineering in Vienna, Austria. It presents a framework for a global‐fit algorithm for page breaking based on the ideas of Knuth/Plass. It is implemented in such a way that it is directly usable without additional executables with any modern installation. It therefore can serve as a test bed for future experiments and extensions in this space. At the same time, a cleaned‐up version of the current prototype has the potential to become a production tool for the huge number of users worldwide. This paper also discusses 2 already implemented extensions that increase the flexibility of the pagination process (a necessary prerequisite for successful global optimization): the ability to automatically consider existing flexibility in paragraph length (by considering paragraph variations with different numbers of lines) and the concept of running the columns on a double spread a line long or short. It concludes with a discussion of the overall approach, its inherent limitations and directions for future research.