glayout

Main Features

This is really just a wishlist for now, as there is no code.

glayout is intended to be a page layout program for the X Window System, working within the Gnome desktop.

You would use glayout to design brochures, posters, newsletters, books or reports. It's not a word processor, though; you might want to create your files in another program, save them as XML, and then import them. For the first version that's probably what you'll have to do.

Layout

Layout is automatic with manual intervention; it's designed to do the right thing wherever possible, by applying one or more rules in succession until a set of constraints are met.

Advanced users can edit the rules and constraints. A scripting language interface might also be provided.

Run-arounds
where text flows around an image, piece of text etc.
Balanced Columns
where the text is split so two columns are the same height, adjusting paragraph spacing, word spaces or line spacing (option) if necessary
Parallel Columns
E.g. margin notes or translations, where text in one column has to lign up with text in another
Footnotes and Marginalia
Automatic placement of footnotes on the correct page (this is hard)
Figure Placement
Automatic placement of figures on the first referenced page (with manual override)
Cross references and Index
automatic index and TOC generation from hints in the text; automatic section/page numbers in cross references
Master Pages
Text flows into text boxes which are linked into sequences. You can design master pages, so that when a new page is needed, the right page design is used; you can say that a particular style or XML element uses a particular master page, too. If you prefer, you can ignore master pages.
Mistress Pages
These are used to discipline bad printers.

Text

Kerning
Adjusting the spcacing between glyph pairs such as VA or f), either systematically throughout all uses of a font, or on a one-off basis
Tracking
addingor subtracting a fixed amount of space between each pair of glyphs (interacts with lgatures!)
Ligatures
Replacement of a sequence of characters with a glyp or glyph sequence, e.g. (f, f, l) with an "ffl" ligature
Small Caps
Automatic small caps based on regexp? Or at the very least both [A-Z] -> [A-Z], [a-z] -> sc, and the reverse, using a smallcap/expert font if available.

Justification

Left
Aligned to left margin, right margin ragged; this is the default for LtoR (Western) text.
Right
Aligned to right margin, left margin ragged; this is the default for RtoL text (e.g. Hebrew).
Both
Adjust spaces between words, letter-spacing, word spacing or use alternate glyphs in order to keep text aligned to both margins.
Centre
Center
Extra horizontal space is distributed either side of each lines, so that the lines are centred between the margins.
Flush Zone
In conjunction with any of the above justification modes, if a line falls within the flush zone (e.g. is at least 85% of the width available) it is spread to fill the line, provided that doing so does not increase the word spacing beyond the maximum permitted value.
Justification rules

These are applied in order to each line, after line-breaking. The default list is

  1. expand spaces;
  2. glyph substitution;
  3. unkerning;
  4. spelling changes, if permitted;
  5. letterspacing;
  6. set line short

Output

PostScript
Used by all high-end typesetters and printers.
Separations
Separate C M Y and K PostScript files for four-colour printing; maybe hexachrome?
Trapping and Undercolour Removal
Needed for quality printing on four-colour presses with ink

Papers

XML Data Structure
How the XML might be read, stored and manipulated.