Re: Features needed for high-end DTP apps



On Sat, 2002-10-19 at 20:23, Joaquín Cuenca Abela wrote:
> 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?

I don't know. I just noticed this comment for
pango_layout_set_justify():

 * Sets whether or not each complete line should be stretched to
 * fill the entire width of the layout. This stretching is typically
 * done by adding whitespace, but for some scripts (such as Arabic),
 * the justification is done by extending the characters.


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

What extra features are needed? Is this the thing Søren mentioned about
having to change certain characters when hyphenated?

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

Since Pango already does underlining, it would be fairly easy to add,
and would make it pretty simple for applications to do this. So I think
I'd be in favor of adding it.

 

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

Yes, they do boast about it a bit. But shouldn't fonts be optically
kerned before they are distributed (or possibly by some external
utility)? Then optical kerning in the application would only be useful
if you have characters from different fonts next to each other. So it
seems a bit picky for me, but I'm not a DTP expert.

 
> >  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?
> 
> From your list, I guess that you're targetting ms word like quality.

My list came from reading books about Quark XPress 5, MS Publisher 2000,
and general typography. I'm not really sure what level I'm aiming at
yet.
 
> If you're looking for top-of-the-crown quality, I have some ideas to add
> to that list, but imo almost all of that stuff should be out of pango. 

I'd be interested in any more high-end features you can think of, just
to get more of an idea of where we stand. I did notice that InDesign
also boasts of 'Optical margin alignment', so we could add that to the
list - it is something to do with punctuation at the end of lines.

Note that one of the original goals of Pango was high quality
typography, though it has changed focus a bit to supporting GTK+.


> You should also be aware that many people has tried before to make a
> high level, high typographic quality library, without success (I guess
> that big projects are too attached to their implementation, to throw it
> out and pick another one that any cheap application can have).

If we can add good quality typography to Pango, then it becomes
available to all GTK+ and GNOME apps. I'd like to see Drop Caps in
GtkTextView!

Damon




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