Re: Features needed for high-end DTP apps



Damon Chaplin <damon kendo fsnet co uk> writes:

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

What is a "flush-zone"?

The justification algorithm should consider the entire paragraph, like
TeX does. Another TeX-thing that may be needed is its concept of
"glue", ie. space that can stretch and shrink in a user specified
manner.

Also, "skyline" layout would be nice:

        - when putting finished lines together to form a paragraph,
          and deciding the leading between two lines, instead of using
          the maximum ascent of the lower line and the maximum descent
          of the upper line, consider the "skylines" of the lines and
          use the natural leading if there aren't any conflicts

        - When using whole-paragraph optimization a demerit (in the
          TeX sense) could be assigned if the leading between two
          lines would have to be increased. That is, the algorithm
          would try to rearrange the line breaks to avoid increasing
          the leading.
          
        - TeX's algorithm can be extended to handle this without any
          additional computational complexity .

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

It doesn't handle utf-8 as I recall, but otherwise seems to work
well. I am not sure have to handle special cases like
"backen->bak-ken". Can they be generated automatically, or do we need
to require "discretionarys" in the input?

The library is libhnj in GNOME cvs. It also contains a TeX-like
justification algorithm, but I haven't looked at it.


Hyphenation and TeX-like line breaking are on my list of things that I
would like to have a look at at some point. (But of course, if you
want to work on it, don't let that stop you).

>  o Drop capitals. May not be appropriate in all scripts.

And capitalization on a per-line bases. Eg. you might want the first
line of a paragraph to be set with small-caps.

> So my question is - which of these do we think should go in Pango?

Owen will have to answer that question, but my feeling is "all of them
should go in Pango if they should go anywhere".

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

That sounds like a good idea.


Søren



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