Re: Features needed for high-end DTP apps



On Sun, 2002-10-20 at 16:22, Damon Chaplin wrote:
> 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.

Yup.  In Arabic, to justify a line instead of adding white space, you
just make the line that ties together the characters a bit longer.  That
usually means that you should draw horizontal lines (more or less
longer) between the characters.

If you're drawing in Nastaliq, things becomes a bit harder, though. 
Btw, Uniscribe manages it, so I guess that it fits pretty well pango.

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

yes.  If I remember right, german people have keep using a special macro
to get these words rightly hyphenated with TeX.  The TeXBook explains
this problem (I think that the hyphenation algorithm was explained in
appendix H, but I read it two years ago, so I don't really remember)

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

I don't discuss that it will be easy or not to do in pango.  But we're
speaking about typographical characteristics of text.  Underline is a
typographical characteristic.  It will be used on screen, on the
printer, everywhere.  Squiggly underlines are not a characteristic of
the text or anything.

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

Fonts are usually already kerned (mechanically or by a human expert). 
The problem is interfont kerning (and fonts poorly kerned).  One
classical example is italics next to roman fonts.

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

Fair enough.

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

More or less.  The main idea is that even if you make all your lines
perfectly (mathematically) fully justified, the right edge may still
look not perfectly straight to the human eye (it may also happen in the
left edge, but that's rare).

That's specially visible if the last character is a punctuation sign (a
hyphen, a comma or a dot), because these signs are very little, and the
human eye usually skips them.  You should then make the lines that ends
with one of these characters a bit longer.

A related technique is "hanging punctuation".  That's justify all the
line, making the punctuation sign hang completely out of the line. 
That's considered to be too much, and the exact amount that a character
should hang depends on the exact shape of the glyph (some glyphs need an
inverse correction, ie to reduce the length of the line).

Somebody send a link to Han The Tanh thesis.  You will find there an
explanation of optical margins.  Han uses a fixed table to get optically
aligned margins in pdfTeX (for palatino and computer modern fonts).

Besides from that, I think that InDesign also includes a rivers
detector.  "Rivers" appears in text when several spaces (approx.) align
vertically in the same paragraph.  That can distract the readers, so
they should be avoided.

Add to this list what I said in another email yesterday, and you will
have a killer in your hands :)

Cheers,

-- 
Joaquín Cuenca Abela
cuenca pacaterie u-psud fr




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