There are several ways to control text flow in an ePub in Scrivener:
-
The simplest is of course the section break, achieved by choosing the Section Layouts that come with one. Front matter, for instance, would often want to use either the “New Page” layout, or the one that also includes the name of the item as a formal heading. A copyright page would prefer the former, while something like a prologue would prefer the latter.
-
The downside of this approach, how such sections populate the automatically generated ToC, is mitigated by two separate tools:
- The custom ToC, whereby one creates a section in the front matter and adds a list of hyperlinks only to the sections they want to appear.
- And exclusive to the Mac (at this point in time), a checkbox in the Settings tab for any section layout that will exclude items using that layout from the ToC. None of our built-in layouts have that option set, to reduce confusion, but some might find that a really good setting for the “New Page” layout, so that entries such as the dedication and copyright are left out of the automatically generated ToC.
-
And of course, CSS. Those that are comfortable designing the book more precisely have ultimate control, and in many cases the concept of controlling page flow should be separated entirely from the concept of a formal section. A good example of that is the full page image. This shouldn’t be in the ToC, and ideally we should not have three HTML files in the ePub (before, image, and after image text). Driving text flow with CSS allows us to cut to a new page without breaking down the file structure in the ebook unnecessarily. I provide some tips for doing so in this thread.[1]
The secret sauce here is that both Styles and Section Layouts generate HTML structure (the latter, optionally), and classed HTML structure is all we need to tell the ebook reader how text flow should be handled around them, with CSS.
I feel these tools cover a very broad spectrum for why one might want to control text flow, and hopefully you find something that works well for you.
Though do note, this specific example uses Scrivener’s Pandoc-based ePub output as a basis, the theory itself is equally applicable to Scrivener’s HTML output. The examples would be slightly different. ↩︎