Re: Culmus and OpenType tables
Jonathan Ben Avraham <[email protected]> Tue, 17 Oct 2006 09:46:27 +0200 (IST)
| Newsgroups | gmane.linux.region.israel.ivrix.discuss |
|---|---|
| Message-ID | <[email protected]> |
Hi Dov, I think that the way forward is option 3 + option 1 below. I was not aware that the GSUB and GPOS rules were so difficult to compose. I can contribute some time to work on this but in terms of expertise I certainly do not have any more than you at this point. Regards, - yba On Mon, 16 Oct 2006, Dov Grobgeld wrote: > Date: Mon, 16 Oct 2006 23:21:49 +0200 > From: Dov Grobgeld <[email protected]> > Reply-To: Ivrix Discussions <[email protected]> > To: Maxim Iorsh <iorsh-TS7m/[email protected]>, > Ivrix Discussions <[email protected]> > Subject: Re: Culmus and OpenType tables > > 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 > -- EE 77 7F 30 4A 64 2E C5 83 5F E7 49 A6 82 29 BA ~. .~ Tk Open Systems =}------------------------------------------------ooO--U--Ooo------------{= - [email protected] - tel: +972.2.679.5364, http://www.tkos.co.il - ---- 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