freetype-devel
[Top][All Lists]
Advanced

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

Re: [ft-devel] [Fontforge-devel] Peter Wiegel's auto spacing idea


From: Behdad Esfahbod
Subject: Re: [ft-devel] [Fontforge-devel] Peter Wiegel's auto spacing idea
Date: Mon, 18 Jun 2012 14:22:09 -0400
User-agent: Mozilla/5.0 (X11; U; Linux i686 (x86_64); en-US; rv:1.9.2.28) Gecko/20120306 Thunderbird/3.1.20

http://charlesmchen.github.com/typefacet/topics/autokern/index.html


On 06/15/2012 03:20 PM, Nathan Willis wrote:
> My understanding is that the auto-kerning implemented by Zapf's Hz-program is
> now patent-free due to 2010 patent expiration.  Is anyone familiar with the
> approach used there?
> 
> URW supposedly published a book about it, but only in Germany (and doubtless
> in less-than-Twilight quantity).  I've looked for a copy before, without
> success....
> 
> Nate
> 
> On Fri, Jun 15, 2012 at 1:48 PM, <address@hidden
> <mailto:address@hidden>> wrote:
> 
>     On Thu, 14 Jun 2012, Vernon Adams wrote:
>     > This is very interesting, reminds me of David Kindersley's work on
>     > 'optical spacing'. I think that spacing for web and screen fonts could
>     > be dealt with like this fairly straightforward because of the role that
>     > the pixel grid plays in determining final rendered spacing. Would be
>     > interesting to test it. Also thinking this could be built into an app
>     > like robofont very easily - would just need to add a blur effect etc to
>     > the glyphs in spacing mode. could that be done in fontforge too? Using
>     > freetype or pango?
> 
>     There's code in my Tsukurimashou package that implements an auto-kerning
>     algorithm serving a similar purpose to these ideas but with a few more
>     features.  The general idea is that I first calculate a left and right
>     contour for each glyph; the contours follow the actual shape of the glyph
>     except that there's a limit on how shallow the contour angles can be.
>     Then to kern a pair, I compute a distance measure between the contours
>     equal to the average inverse cube of the distance between the left and
>     right glyphs' contours.  The glyphs are kerned to make that measure equal
>     to a constant.
> 
>     Using the actual shapes of the glyphs, even smoothed, is undesirable
>     because it can result in one glyph sliding too far under another, for
>     instance between apostrophe and period; those two can never be pushed
>     together far enough to make them touch because they don't share any
>     subset of the vertical extent.  My existing code still needs some tweaking
>     for this kind of situation, but the slope limit helps a lot.  A glyph like
>     "." is in effect kerned as if it looked like "/" and "\" on its two sides,
>     preventing it from sliding too far under any other glyph.
> 
>     Using "until the contours touch" is undesirable because it places too much
>     weight on the single point of closest approach, which may not be visually
>     significant.  This effect is visible in serif fonts with pairs like "AV",
>     where there may be serifs that should be brought much closer together than
>     the distance you would generally want for flat parts of glyphs;
>     auto-kerning algorithms in general tend to put such pairs too far apart
>     because of putting too much weight on the serifs.  You want to give some
>     weight to both the nearest-approach points, and other parts of the glyphs
>     that may be a little further apart; that requires something a little
>     softer than a pure touch/don't touch test.  Blurring may be intended to
>     serve a similar purpose, but my own code uses nonlinear weighting on
>     the hard outlines in order to produce a more controllable effect.  The
>     exponent of 3 seems to produce the most appealing results in my tests.
> 
>     As I mentioned, there are still some issues with glyphs that have very
>     little vertical extent, such as apostrophe.  I've also found that the
>     adjustable parameters in the algorithm need to be different for Latin,
>     Japanese, and Korean glyphs, in order to produce results that mix well
>     with each other.  The spacing readers expect between characters in those
>     writing systems is simply different.
> 
>     I don't have a link for just the documentation file describing this, but
>     both the code and the PDF user manual explaining how it works are in the
>     Tsukurimashou distribution package available here:
>      
>     
> http://en.sourceforge.jp/projects/tsukurimashou/downloads/54223/tsukurimashou-0.5.zip/
> 
>     --
>     Matthew Skala
>     address@hidden <mailto:address@hidden>                
>     People before principles.
>     http://ansuz.sooke.bc.ca/
> 
>     
> ------------------------------------------------------------------------------
>     Live Security Virtual Conference
>     Exclusive live event will cover all the ways today's security and
>     threat landscape has changed and how IT managers can respond. Discussions
>     will include endpoint security, mobile security and the latest in malware
>     threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/
>     _______________________________________________
>     Fontforge-devel mailing list
>     address@hidden
>     <mailto:address@hidden>
>     https://lists.sourceforge.net/lists/listinfo/fontforge-devel
> 
> 
> 
> 
> -- 
> nathan.p.willis
> address@hidden <mailto:address@hidden>
> aim/ym/gtalk:n8willis
> identi.ca/n8 <http://identi.ca/n8>
> 
> 
> 
> ------------------------------------------------------------------------------
> Live Security Virtual Conference
> Exclusive live event will cover all the ways today's security and 
> threat landscape has changed and how IT managers can respond. Discussions 
> will include endpoint security, mobile security and the latest in malware 
> threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/
> 
> 
> 
> _______________________________________________
> Fontforge-devel mailing list
> address@hidden
> https://lists.sourceforge.net/lists/listinfo/fontforge-devel



reply via email to

[Prev in Thread] Current Thread [Next in Thread]