On 10/12/2013 12:19 PM, Khaled Hosny wrote:

The problem is that OpenType is hard, you already know that. ConTeXt
will never be able to dedicate enough resources to catch up with
development, so it makes much sense to reuse the efforts of other free
software projects. HarfBuzz is used by much more software projects than
what XeTeX was using before (Android, Mozilla, Chrome, LibreOffice,
Pango, EFL, to name few), so it is here to stay. That being said, the

I bet that previous libs and whatever also have that impression .. well, in the end I think that open type will fade away too into something else as its design is sort of a compromise. The dev cycles get smaller each year, the claims for 'being the final solution' get more, who can predict ...

switch in XeTeX did not affect user documents that much (apart from
fixing bugs and supporting more OpenType feature, but so does ConTeXt
all the time). However, I’m not proposing that LuaTeX be dependant on
HarfBuzz or FreeType, but have an optional font loader and shaper that
need not even be managed by LuaTeX team.

once we have a more or less standardized lib loader (the swiglib project) one can use such libraries, i.e. there is no need to have something more in the luatex core; after all, it all boils down to passing info around; anything hard plugged into to core (even options) will be hard to fight if one wants something else

at that point i can look into for instance freetype and see if a better loader can be made, who knows ... for me loading and shaping are different things

Fonts change, font formats evolve, Knuth-style stability is not really
achievable, unless one freezes the source code and the fonts forever,
and you can do this with external libraries, too; TeX Live is
self-contained, just take a snapshot and freeze it forever, and it
should be buildable as long as there are C(++) compilers.

well, practice ... one also needs to freeze the operating system then

but I'm not claiming that long term stability; there was a time that tex was a big system, but nowadays the tds tree is relatively small; unless something magic happens, i think that at some point the complexity of all these big things will explode (one can according to the evangelists get a ruby on rails app up and running in minutes ... but try to update one a few years later) ... with respect to tex: the source tree/build is not trivial (how many folks know all ins-and-outs?) and it makes me already feel quite dependent .. it's the instability of the whole eco system that bothers me

well, the formats don't evolve that much, at least not with respect to what we need in tex ... most features are rather generic, but tex user demands evolve and those will always influence matters; also, in the (context) machinery at some point i want to play with other approaches and then the only thing that matters is having data available (we already have some par optimizing code in place for instance)

(i'm more worried about inconsistencies and a mess in fonts than in the opentype standard ... many characters / scripts / languages have well properties, so in fact designers could do with predefined sets of features and rules ... sort of the reverse of making shapes and then the features: instead of for each font reinventing the wheel, choose a set of logic, make shapes etc ... positioning is probably most of the issue then; but that's another disucssion)

There are already few parts of OpenType that I’m not able to use in my
fonts for years because they break the fonts with LuaTeX horribly. I
understand the priorities of the team, that is why I think that
offloading font support is beneficial to everyone.

break in what sense? what features (just curious) ... anyway, there's always xetex as alternative -)

(unless you're referring to wanting to use the microsoft word math renderer trickery -)

One problem of moving to for instance freetype is that we then need
to get at least the same kind of data structures (ok, one could
interface compatible using lua, but then I'd end up in a rewrite
again, and it makes no sense to spend my live rewriting every few
years).

I think that is small price to pay for the gains of not having to worry
about every minute detail of OpenType support. Besides doing the
shaping with HarfBuzz means that many of the structures exposed by the
current font loader will not be even needed, which simplifies things
greatly.

it all depends on what one wants to do with fonts, what one wants to control, etc but as said, at some point one can consider (either or not as alternative to a lua based variant) to push node list data (in an already existing callback) to a library and get something back .. of course one then also need to take care of possible interferences (assuming that the backend can load the relevant graphic data from the font)

In the end I'd still need to construct and cache lua tables
in order to be able to do the same (and more). A nice thing about
the current fontforge libs (which taco wants to isolate as
independent lib too) is that we also have a open source editor that
has a similar structure / view on the font. And that was a
delibarate choice!

That is nice to have indeed, but for me having a well tested and robust
font loader and feature-full OpenType engine are much more important.

but that will then be a matter of offloading to a wrapper around those libs, won't it? and, if i would use that (who knows) i'd definitely do it in a very controllable way so that it integrates nicely with other alternatives (we have 'base' mode and 'node' mode and that could be 'external' mode for instance), after all, in the end the only thing luatex itself needs is a reference to a slot in a font

Concerning a shaper, it would demand list deconstruction and
construction, working within the constaints of the shaper that
normally operates on different data structures than node lists,
where (i guess) it becomes pretty hard then to do intermediate
steps, mess around a bit, bypass etc etc. while in luatex we have a
more or less consistent view on matters (read: lists). So, in the
end one ends up with a patched shaper to deal with some matters
which then defeats the purpose.

I don’t quit get this, but I think lots of what ConTeXt does can be done
with HarfBuzz or after it is done with the shaping.

maybe, but if i'd have to work within similar constraints as with the typeone/bitmap machinery, i'd probably quickly loose interest tex, because playing with and experimenting with fonts is part of the game

If we'd have chose a shaper a few
years ago, would we switch now? And in 5 years? And in 10?

Pango was using what is now called HarfBuzz continually since 2001…

Of course, when we have the swiglib interface ready (sometime next
year), one can always load a library and mess with it, but on
purpose we keep libraries outside the core then. So, in that case
one could serialize a node list to wherever and push back the
result. Of course that could not play well with existing (mixed)
font models but that is then up to the user.

That is pretty much what I want, except that I want to be able to use
that with ConTeXt or it will be pretty much useless for me (I still get
bad dreams for having to use LaTeX to write a font manual because I
can’t use XeTeX with ConTeXt and the font would often just break ConTeXt
MkIV).

hm, in what sense? I don't claim that all can be done and indeed maybe for some applications offloading makes sense, but I'm pretty sure that there are also cases (and kind of docs) that would work out better with an integrated approach (fonts and features are just one aspect) so there will never be a perfect solution for everything (can also be read as: don't use tex for everything)

One important aspect is that when using tex, one also wants
flexibility and control and so a font system will have hooks and
such. Using a mixed library / lua / tex approach would become pretty
complex. Sure, the current lua code is not trivial either but can
probably be simplified over time once settled down. One reason for
me not to use xetex (plus its libs) is inflexibility. If we hadn't
started luatex I might as well have opt out of tex altogether,
especially because only with luatex i can do some of our projects
within acceotable bounds (dev time, speed of machinery,
flexibility).

I don’t think much of LuaTeX’s flexibility (or XeTeX’s inflexibility) is
related to the OpenType layout engine used.

I can imagine cases where things happen before shaping that have to be taken into account when shaping, and also that shaping signals things to be done later ... once we start thinking out of the box ... but, i don't see a problem in having multiple shapers (dozens) as long as (in context) they can cooperate, be isolated, controlled, etc. My main point is that I don't like a hard coded choice in luatex (also performance wise). The current core components still resemble tex.

But at some points libraries will at least provide a way to play with all that is around (and undoubtely to come ... like plugging in an html rendered).

Hans

-----------------------------------------------------------------
                                          Hans Hagen | PRAGMA ADE
              Ridderstraat 27 | 8061 GH Hasselt | The Netherlands
    tel: 038 477 53 69 | voip: 087 875 68 74 | www.pragma-ade.com
                                             | www.pragma-pod.nl
-----------------------------------------------------------------
___________________________________________________________________________________
If your question is of interest to others as well, please add an entry to the 
Wiki!

maillist : ntg-context@ntg.nl / http://www.ntg.nl/mailman/listinfo/ntg-context
webpage  : http://www.pragma-ade.nl / http://tex.aanhet.net
archive  : http://foundry.supelec.fr/projects/contextrev/
wiki     : http://contextgarden.net
___________________________________________________________________________________

Reply via email to