Re: Features needed for high-end DTP apps



On Sat, 2002-10-19 at 16:51, Damon Chaplin wrote:
> 
> 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.

Do you mean like the kashidas that are used in arabic?

>  o Hyphenation - only applicable to certain scripts. I think Raph
>    wrote a library to do some of this.

AFAIK the hyphenation part of libhnj doesn't work yet on non-english
languages, but it's be a good start point.  In addition, it's pretty
fast.

Also take in account that libhnj doesn't work for germanic languages, as
it uses the same algorithm than TeX.

>  o Underlines - word-underline (only underlines characters, not
>    whitespace), and squiggly red underlines, for spelling errors.

squiggly red underlines are IMO very out of the scope of pango.  It's
the app job to draw these things.

>  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.

And sometimes you need to mix vertical text with horizontal text
(classical mixed with modern mongolian, for instance).  And sometimes
the lines of vertical text run from left to right (again, classical
mongolian), and usually from right to left.  And now that we're speaking
about the direction, sometimes you have to handle mixed right-to-left
and left-to-right text, not in the usual "some occidental text in the
middle of arabic", but in a weirdest odd lines run from right-to-left,
and even lines run from left-to-right.

> 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).

If your goal it's top quality DTP, then you should also try to do
optical kerning.  The literature about how to do acceptable optical
kerning is almost inexistant, but if you're looking for something that
can compete with InDesign, you need it.

>  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.

The list of requeriments that you've listed look more like "what's need
to do a widget to make a wordprocessor", than a list to make a DTP. 
What kind of quality are you looking for?  AbiWord like? MS Word? TeX?
pdfTeX? InDesign?  Do you need real time processing?



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