Fwd: Re: [SW-L] Smart font for ISWA 2010

Jonathan Duncan duncanjonathan at YAHOO.CA
Fri Dec 14 04:29:40 UTC 2012



On 12/12/2012 1:44 PM, Eduardo Trápani wrote:
>> That is why I was hopeful that Jonathan's  compressed font development
>> might work better instead providing us with one two-colored font for the
>> entire ISWA, rather than separate fonts for each sign language? Or have
>> I completely misunderstood what is happening?
Val,
     I believe that Eduardo's problem is different than mine. His 
limiting factor isn't the size in MB of the font but rather how many 
items (glyphs) he can name. He says that he has a limit of around 
32500.  And he needs one per symbol and there are 37811 symbols in ISWA 
2010.  But I do have a wild idea for Eduardo, who knows...  See below.
> The compressed font would not work with Graphite.  It's hard enough to
> map all fill/rotations, if we had to somehow include the building
> information ... no, I don't think that would work (I'd be really glad to
> be proven wrong).
Eduardo you previously wrote:

* Graphite internally only deals with glyphs, so for SW we need a glyph
for each one of the symbols and their alternate forms (fill and
rotation)*and*  for things like numbers, rotations, fills and the like.
  Sharing glyphs should work and would save some space but  Graphite does
not deal with those shared glyphs consistently, so, for now I've decided
to create a new glyph for each unicode point that needs to be dealt with.


Eduardo,
	I am wondering if there is any way you can display symbols that have a regular change by the rotation without creating glyph for each one, you could probably keep it below 32500.  Such symbols are nearly all of the hand symbols.  You would need to be able to do a rotation, mirror (negative scale) and translate for each of the base and fill combinations.  The rotation and mirror are quite consistent but for the translate you would need a lookup table as it is different for each symbol.

   

The transform attribute of the first g tag in the SVG Refinement font can give you the information you need.

  

1 	<g>
2 	<g transform="scale(0.913 0.938) translate(-9 10.667) rotate(315)">
3 	<g transform="translate(0 15) rotate(270)">
4 	<g transform="scale(0.938 0.913) translate(10.667 32) rotate(225)">
5 	<g transform="translate(15 30) rotate(180)">
6 	<g transform="scale(0.913 0.938) translate(32 21.333) rotate(135)">
7 	<g transform="translate(30 0) rotate(90)">
8 	<g transform="scale(0.938 0.913) translate(21.333 -9) rotate(45)">
9 	<g transform="translate(15 0) scale(-1,1)">
10 	<g transform="scale(0.913 0.938) translate(32 10.667) rotate(45) 
scale(-1,1)">
11 	<g transform="translate(30 15) rotate(90) scale(-1,1)">
12 	<g transform="scale(0.938 0.913) translate(21.333 32) rotate(135) 
scale(-1,1)">
13 	<g transform="translate(0 30) rotate(180) scale(-1,1)">
14 	<g transform="scale(0.913 0.938) translate(-9 21.333) rotate(225) 
scale(-1,1)">
15 	<g transform="rotate(270) scale(-1,1)">
16 	<g transform="scale(0.938 0.913) translate(10.667 -9) rotate(315) 
scale(-1,1)">
17 	<g>
18 	<g transform="scale(0.913 0.938) translate(-9 10.667) rotate(315)">
19 	<g transform="translate(0 15) rotate(270)">
20 	<g transform="scale(0.938 0.913) translate(10.667 32) rotate(225)">
21 	<g transform="translate(15 30) rotate(180)">
22 	<g transform="scale(0.913 0.938) translate(32 21.333) rotate(135)">
23 	<g transform="translate(30 0) rotate(90)">
24 	<g transform="scale(0.938 0.913) translate(21.333 -9) rotate(45)">
25 	<g transform="translate(15 0) scale(-1,1)">
26 	<g transform="scale(0.913 0.938) translate(32 10.667) rotate(45) 
scale(-1,1)">
27 	<g transform="translate(30 15) rotate(90) scale(-1,1)">
28 	<g transform="scale(0.938 0.913) translate(21.333 32) rotate(135) 
scale(-1,1)">
29 	<g transform="translate(0 30) rotate(180) scale(-1,1)">
30 	<g transform="scale(0.913 0.938) translate(-9 21.333) rotate(225) 
scale(-1,1)">
31 	<g transform="rotate(270) scale(-1,1)">
32 	<g transform="scale(0.938 0.913) translate(10.667 -9) rotate(315) 
scale(-1,1)">
33 	<g>
34 	<g transform="scale(0.938 0.913) translate(0 1.667) rotate(315)">
35 	<g transform="translate(0 15) rotate(270)">
36 	<g transform="scale(0.913 0.938) translate(1.667 32) rotate(225)">
37 	<g transform="translate(15 30) rotate(180)">
38 	<g transform="scale(0.938 0.913) translate(32 21.333) rotate(135)">
39 	<g transform="translate(30 0) rotate(90)">
40 	<g transform="scale(0.913 0.938) translate(21.333 0) rotate(45)">
41 	<g transform="translate(15 0) scale(-1,1)">
42 	<g transform="scale(0.938 0.913) translate(32 1.667) rotate(45) 
scale(-1,1)">
43 	<g transform="translate(30 15) rotate(90) scale(-1,1)">
44 	<g transform="scale(0.913 0.938) translate(21.333 32) rotate(135) 
scale(-1,1)">
45 	<g transform="translate(0 30) rotate(180) scale(-1,1)">
46 	<g transform="scale(0.938 0.913) translate(0 21.333) rotate(225) 
scale(-1,1)">
47 	<g transform="rotate(270) scale(-1,1)">
48 	<g transform="scale(0.913 0.938) translate(1.667 0) rotate(315) 
scale(-1,1)">

  There are 261 Hand basesymbols which would be using up 96 glyphs each, roughly 25056 glyphs (there are a couple of exceptions)
  If you managed to rotate, mirror and translate the base-fill combinations without using a glyph for each you would save 25056 glyphs which would put you well under your 32500 limit. The font would be a little smaller too.

What are the inconsistencies with shared glyphs in Graphite? You wrote:
Graphite does not deal with shared glyphs consistently

My SVG font has a lot of smaller pieces refactored out to save more space but I am not suggesting this for you as you want to keep the number of glyphs down to a minimum and that would just add more as you previously mentioned.

I don't know what all of your limitations are but there go my 2 cents worth.

Jonathan

> So, the idea of the reduced fonts is to work around the current glyph
> limit (whether in Firefox or in Graphite I still don't know).  It is
> just temporary, to move on with the Wikipedia.
>
> Eduardo.
>
>




-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://listserv.linguistlist.org/pipermail/sw-l/attachments/20121213/86077367/attachment.htm>


More information about the Sw-l mailing list