Skip to content
Version 3.3.0

Pagination

Pagination is now a first-class citizen. Page count accuracy should be
good enough to refer between a PDF and your Fountain script within
Emacs. The pagination commands are all located in the menu under
Fountain > Pagination.

Given that counting pages is computationally intensive, pagination is
now handled by applying text properties with command
fountain-pagination-update (C-c C-x p), which can be triggered with
fountain-mode-hook. This applies a fountain-pagination text property
of (PAGE . LENGTH) to all buffer text, where PAGE is the linear page
count and LENGTH is each page's length in characters.  Counting pages
then checks whether each PAGE property is correctly ordered and LENGTH
is accurate within fountain-pagination-max-change (default 150
characters). If either of these checks fails, pagination properties
are recalculated. These properties are now used for all page-related
functions.

All this does require some care on the part of the user in ensuring
some options are set correctly in the group fountain-pagination:

- New option fountain-pagination-double-space-scene-headings to count
  scene headings as two lines if your export uses double-space scene
  headings.

- New option fountain-pagination-break-sentences to if your export
  allows page breaks to occur within sentences.

- New option fountain-pagination-max-change -- set this to a lower
  value if you want more accurate pagination, or higher if you don't
  care.

- New commands fountain-forward-page and fountain-backward-page. These
  navigate by the actual page breaks, not by a page length back/forth
  from point.

- Rename option fountain-page-ignore-restriction to
  fountain-pagination-ignore-restriction. It's useful to set this option
  to nil if you're working on a narrowed section of your script and want
  the page count to refer only to this.

The title page is considered page 0.

Other Fixes

- Rewrite of fountain-get-element and fountain-move-forward-page to
  account for dual dialogue.
- Fix fountain-export-view locating the last modified file (was
  previously using access-time).
- When calling an export command that uses the buffer file as input
  but the buffer is not saved, prompt to save buffer first.
- fountain-export-view will no longer wait for external viewer to
  terminate.
- Avoid matching transitions (e.g. CUT TO:) as metadata when at
  beginning of buffer.
- Fix for Font Lock not recognizing lowercase scene headings.
- Remove unused fountain-get-block-bounds function.

Thanks to @ZungBang for contributing many fixes to this release.