Features needed for high-end DTP apps



Hi All,

I'm currently thinking about trying to write a high-quality DTP app for
GNOME. So I've read a few books, and here's a list of things I think
Pango lacks in this area:

General Stuff
-------------

 o Justification - need to support fill & forced. With options like
   flush-zone, single-word, min/opt/max word space, min/opt/max char
   space. Some scripts prefer to extend chars rather than add space.
 o Hyphenation - only applicable to certain scripts. I think Raph
   wrote a library to do some of this.
 o Underlines - word-underline (only underlines characters, not
   whitespace), and squiggly red underlines, for spelling errors.
 o Tab stops - fill characters, aligning on specific characters.
 o Displaying invisible chars, like spaces, tabs, paragraph terminators.
   Could be done at render-time - don't want this to affect the layout.
 o Vertical text. Needs rotation of horizontal scripts.

High-End DTP Stuff
------------------

 o Drop capitals. May not be appropriate in all scripts.
 o Kerning - customizable kerning (both for specific fonts, and for
   particular character pairs in a document).
 o Tracking - customizable for fonts based on their various sizes,
   and also for particular paragraphs. Again, some scripts may prefer
   to extend characters rather than add space.
 o Flowing along text paths - maybe by splitting into clusters and
   translating straight-line coords to the text path at the last minute.
 o Runarounds & shaped text boxes - would need to cooperate with
   higher-level code to determine where text can be placed on each line.
 o Leading - may need more options, like locking to a baseline grid.


(There are some other higher-level issues, but I'll leave them for
later.)

So my question is - which of these do we think should go in Pango?
(Note that some might be very difficult to do outside Pango.)

I'm willing to work on some of these, so let me know which
ones to start with. Maybe we should pick a few (e.g. the general ones)
and iron out the requirements/designs. (And add bugs for them.)

Damon




[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]