Re: Culmus and OpenType tables

"Dov Grobgeld" <[email protected]> Mon, 16 Oct 2006 23:21:49 +0200
Newsgroups gmane.linux.region.israel.ivrix.discuss
Message-ID <[email protected]>
Hi Maxim,

Thanks for your email.

I'm taking the liberty of CC:ing ivrix-discuss, as I believe that
there may be more interesting in this thread. I hope you don't mind.

Regarding the viewing of fonts with OpenType tables, I have found that
both Gtk/Pango and Qt do quite a good job of displaying the fonts
according to the OpenType tables. Thus I simply use gedit or kedit for
the display. I believe the one of the best stress tests for a font is
by displaying the tenach with teamim from:

   http://www.mechon-mamre.org/c/ct/c0101.htm

Currently, the only semi-free font that I am aware of that can display
that nicely is SBL Hebrew from:

    http://www.bible-researcher.com/sblhebrew.html

In my efforts to adding nikud to the Culmus fonts, I have so far only
touched the OpenType anchor tables. I have done quite a lot of
progress during the last weeks and can now automatically add all the
nikud by heuristics based on the bounding box.

But there were things that I did not manage, and that is to the more
complex GSUB and GPOS tables. I have really tried, but I still haven't
got it to work. That is the reason that wrote code that searches for
in the mapiq ligatures and then replaced it with an anchor. This
solved among others the BA problem (Bet-Mapiq-Qamatz), which I could
not get to render properly when Bet-Mapiq was a ligature.

I also started playing around with a goocanvas based tool for manual
placement of the marks, but it is not much more than a proof of
concept yet.

I'm not really sure how to continue and are considering several options:

1. Running all your fonts through my script and and then doing manual
fine tuning of the mapiq positions.

2.a. Improve heuristics code so that it renders the fonts and then
searches for more optical position based on the bitmap.

2.b. Instead of bitmap, do queries on the font contors by using the
program Asymptote (see: .http://asymptote.sourceforge.net/ - This
program inherits the strong mathematical foundation for bezier curve
calculations from MetaFont and MeaPost).

3. Figure out how to do use GPOS and GSUB tables. This is necessary
e.g. for placing the mapiq in the yud and vav for fonts without a
"roof" in order to provide more space for the mapiq. I'd love help on
this one. All I need is a one by one instruction of how to create such
a rule in FontForge.

4. Improve my interactive tool to make it easier to define mark
placement than it is in FontForge.

Finally, as an example I have upload the font
FrankRuehlCLM-Medium-dov.otf generated as followed:

    ./hebpfa-insert-gpos FrankRuehlCLM-Medium-dov.otf

It is available in

    http://imagic.weizmann.ac.il/~dov/FrankRuehlCLM-Medium.pfa

To use it, copy it to ~/.fonts. The font is called AAA and you may
test it by running gedit and choosing the font.

I hope to create a web page describing this work that also includes
the script hebpfa-insert-gpos and its dependencies in the next few
days.

Regards,
Dov

On 10/16/06, Maxim Iorsh <iorsh-TS7m/[email protected]> wrote:
> [Maxim's message deleted, as I have not yet received permission to post it.]
>
> -----Original Message-----
> From: Dov Grobgeld [mailto:[email protected]]
> Sent: Friday, September 22, 2006 9:24 AM
> To: Maxim Iorsh
> Subject: Culmus and OpenType tables
>
> Shalom Maxim,
>
> I just wanted to let you know that I have lately started working on a
> script that adds OpenType nikud positioning to the Culmus fonts. I
> know you started working on it in the Frank Ruehl OT font, but I
> started from your pfa fonts and my plans are to do as much of the
> insertion as automatic as possible.
>
> My initial idea is basically to insert all the heuristics that I used
> for the pango Hebrew module and encode through anchors in the opentype
> table. My method is a perl script that invokes fontforge a couple of
> times for the font stuff.
>
> It turns out that it was was tougher than I thought... All these
> tables really are complicated.
>
> One thing that I wanted to tell you about is that I have a problem
> with the predefined mapiq glyphs. It turns out that that if we want to
> layout e.g. Yud, Mapiq, Patach, then this will not work (at least not
> in pango) if the character order is Yud, Patach, Mapiq. This can be
> solved by replacing the Yud/Mapiq ligature with an anchor point
> instead. I will write my script so that I will search for the position
> that you chose for the mapiq and create an anchor at the same place.
> Do you have any thoughts on this?
>
> Again, thank you for your great work on the fonts!
>
> I'm including my current version script.
>
> Shana Tova!
> Dov
>
>
----
Ivrix-discuss list. See http://ivrix.org.il.
To unsubscribe, please send mail to [email protected] with
only the following line in the message body (NOT SUBJECT!): unsubscribe