Up until now, Scribus had only a simple text layout engine with no support for CTL. Work is underway to rewrite the layout engine to support:
CTL and BiDi
OpenType features
- paragraph-wide linebreak optimization
- optical margins and hanging punctuation
- justification using a mix of glyph alternates, glyph extension, kashida, word spacing, and letter spacing
- discretionary hyphenation
- initials and special styles for the first char / word / line of a paragraph
- and more
Especially linebreaking becomes challenging when you also have to cater for irregular frameshapes, possibly with holes, bidirectional text and vertical alignment. I'll describe how Scribus will handle these cases and how Scribus caches information to speed up the layout process. The existing prototype uses a forked version of the Qt3 shaper but I'm somewhat unhappy with it. I'll describe what requirements Scribus has of a shaper and hope to use a unified text layout engine in the future.
Andreas Vox