From: A BC <eg...@gm...> - 2015-03-06 21:26:59
|
Hello, my name is Jon Brown and I am using graphite to program a font to behave correctly and I want to code the following effects, can you provide me with suggestions: (These two involve "smart" diacritics behavior) 1. If there is no base character, then diacritics mark will not display. I want diacritics mark to lock if first condition is not met. In other words, if the user presses a diacritics key and if the previous character is not a base character then the diacritics will not appear on the screen. 2. If there is already a base character followed by a diacritics then I want, then next diacritics to not display. I don't want diacritics overlapping. If the above cannot be achieved with font, can it be accomplished with programming a keyboard such as Tavultesoft keyman? |
From: Martin H. <mar...@si...> - 2015-03-07 03:35:55
|
Dear Jon, > my name is Jon Brown and I am using graphite to program a font to behave > correctly and I want to code the following effects, can you provide me with > suggestions: > > (These two involve "smart" diacritics behavior) > 1. If there is no base character, then diacritics mark will not display. I > want diacritics mark to lock if first condition is not met. In other words, > if the user presses a diacritics key and if the previous character is not a > base character then the diacritics will not appear on the screen. > > 2. If there is already a base character followed by a diacritics then I > want, > then next diacritics to not display. I don't want diacritics overlapping. The easiest way to achieve this in GDL is to have a masking rule that keeps the diacritics and then otherwise delete them: cBase cDiacritic > @1 @2; cDiacritic > _; The first rule says: if there is a base and a diacritic, do nothing The second rule is shorter and so will not fire unless the first rule fails. It says delete any cDiacritic. But this will give warnings. So a better second rule is: ANY cDiacritic > @1:(1 2) _; This says: any glyph followed by a diacritic has the diacritic deleted and the glyph associated with both underlying characters. > If the above cannot be achieved with font, can it be accomplished with > programming a keyboard such as Tavultesoft keyman? Having shown how to do this in Graphite, I would recommend not doing this in the font. I would recommend encouraging people to enter good data in the first place. Tavultesoft Keyman would do a fine job: begin Unicode > use(main) store(cBase) c list of base chars unicode values store(cBaseK) c corresponding list of keystroks for the base chars store(cDia) c list of diacritic unicode codes store(cDiaK) c corresponding list of keystrokes for diacritics group(main) using keys + cBaseK > index(cBase, 1) cBase + cDiaK > context index(cDia, 2) + cDiaK > beep Should just about cover it. Obviously this is just a code outline fragment. The reason for using the keyboard is that if people type stuff into their text and it doesn't display, it makes it nearly impossible to delete it and clear it up and also you won't know why searching will not work properly. A better solution is to flag the problem in the font using a dotted circle: cBase cDiacritic; _ cDiacritic > g25CC:(1 2) @2; For those wondering why I didn't do: _ > g25CC / _ cDiacritic; The problem is that that would insert an infinite (limited down to 5) dotted circles before a diacritic since the cursor would not advance beyond the diacritic. HTH, GB, Martin |
From: Martin H. <mar...@si...> - 2015-06-08 09:12:28
|
Dear John, > my name is Jon Brown and I am using graphite to program a font to behave > correctly and I want to code the following effects, can you provide me with > suggestions: > > (These two involve "smart" diacritics behavior) > 1. If there is no base character, then diacritics mark will not display. I > want diacritics mark to lock if first condition is not met. In other words, > if the user presses a diacritics key and if the previous character is not a > base character then the diacritics will not appear on the screen. > > 2. If there is already a base character followed by a diacritics then I > want, > then next diacritics to not display. I don't want diacritics overlapping. > > If the above cannot be achieved with font, can it be accomplished with > programming a keyboard such as Tavultesoft keyman? Both of these can be achieved in a font, but are almost certainly not what you want to do in a font. A font should do its best to show you what is in the underlying data stream as beautifully as it can, but including all the faults so that a user can fix them. The input method (keyboard), on the other hand, can and perhaps should be designed to encourage people to enter good data. This would include things like stopping them typing a diacritic if there is no base or limiting which diacritics they can type after each other, etc. Tavultesoft's Keyman is an excellent tool to allow you to write keyboards that have rules in them to control such things. You can make the keyboard beep if the user presses a 'wrong' key. You can reorder sequences already entered. Etc. As to diacritics not overlapping. That is a question the font and graphite can help with. I'm not sure which script you are interested in. But with Graphite you can have diacritics stack outwards from a base, or assemble themselves into any visual representation you want. But I would not advise implementing fonts that make things disappear (even though you can), because then it makes it nearly impossible for a user to fix their typing mistakes. And the typing mistakes, however you may make them look, are going to cause problems when it comes to searching. The strings will not be the same and so the search engine will seem to miss things. HTH, Yours, Martin Hosken |
From: Sharon C. <sha...@si...> - 2015-06-08 12:39:00
Attachments:
efeabheb.png
|
<html> <head> <meta content="text/html; charset=windows-1252" http-equiv="Content-Type"> </head> <body bgcolor="#FFFFFF" text="#000000"> The standard way to display an incorrect diacritic that has no appropriate base is to use a dotted circle - 25CC. For example:<br> <br> <img src="cid:par...@si..." alt=""><br> <br> So I would suggest inserting a dotted circle where you have no base character, or where there are two diacritics in a row (if they are not allowed to stack). An insertion rule for the latter would look like this:<br> <br> diac _ diac > @1 dottedCircle:3 @3;<br> <br> The ":3" means that the dotted circle is associated with the extra diacritic. So if you select the diacritic you will also select the circle.<br> <br> <br> <div class="moz-cite-prefix">On 6/8/2015 3:43 AM, Martin Hosken wrote:<br> </div> <blockquote cite="mid:20150608154356.22629531@sil-mh7" type="cite"> <pre wrap="">Dear John, </pre> <blockquote type="cite"> <pre wrap="">my name is Jon Brown and I am using graphite to program a font to behave correctly and I want to code the following effects, can you provide me with suggestions: (These two involve "smart" diacritics behavior) 1. If there is no base character, then diacritics mark will not display. I want diacritics mark to lock if first condition is not met. In other words, if the user presses a diacritics key and if the previous character is not a base character then the diacritics will not appear on the screen. 2. If there is already a base character followed by a diacritics then I want, then next diacritics to not display. I don't want diacritics overlapping. If the above cannot be achieved with font, can it be accomplished with programming a keyboard such as Tavultesoft keyman? </pre> </blockquote> <pre wrap=""> <snip> As to diacritics not overlapping. That is a question the font and graphite can help with. I'm not sure which script you are interested in. But with Graphite you can have diacritics stack outwards from a base, or assemble themselves into any visual representation you want. But I would not advise implementing fonts that make things disappear (even though you can), because then it makes it nearly impossible for a user to fix their typing mistakes. And the typing mistakes, however you may make them look, are going to cause problems when it comes to searching. The strings will not be the same and so the search engine will seem to miss things. </pre> </blockquote> <br> </body> </html> |
From: Jim B. <jim...@si...> - 2015-06-09 00:37:52
|
<html> <head> <meta content="text/html; charset=windows-1252" http-equiv="Content-Type"> </head> <body bgcolor="#FFFFFF" text="#000000"> On several occassions, I have found fonts that I wanted to use for a minority language, but the designer had restricted it to supporting only the character sequences that occur in the national language. Before limiting a font by prohibiting certain sequences of characters, careful thought should be given to who may use the font. You may wish to design Font A to be used with Language X (i.e. your intended audience), but someone else may wish to use it with Language Y (your unintended audience). <br> <br> Of course, it is not possible to anticipate every potential use, or to invest the development time to support sequences for which there is no known demand. But at least one should not invest time to restrict sequences that someone else could plausibly use.<br> <br> Jim Brase<br> <br> <br> On 6/8/2015 7:12 AM, Sharon Correll wrote:<br> <blockquote cite="mid:557...@si..." type="cite"> <meta content="text/html; charset=windows-1252" http-equiv="Content-Type"> The standard way to display an incorrect diacritic that has no appropriate base is to use a dotted circle - 25CC. For example:<br> <br> <img src="cid:par...@si..." alt=""><br> <br> So I would suggest inserting a dotted circle where you have no base character, or where there are two diacritics in a row (if they are not allowed to stack). An insertion rule for the latter would look like this:<br> <br> diac _ diac > @1 dottedCircle:3 @3;<br> <br> The ":3" means that the dotted circle is associated with the extra diacritic. So if you select the diacritic you will also select the circle.<br> <br> <br> <div class="moz-cite-prefix">On 6/8/2015 3:43 AM, Martin Hosken wrote:<br> </div> <blockquote cite="mid:20150608154356.22629531@sil-mh7" type="cite"> <pre wrap="">Dear John, </pre> <blockquote type="cite"> <pre wrap="">my name is Jon Brown and I am using graphite to program a font to behave correctly and I want to code the following effects, can you provide me with suggestions: (These two involve "smart" diacritics behavior) 1. If there is no base character, then diacritics mark will not display. I want diacritics mark to lock if first condition is not met. In other words, if the user presses a diacritics key and if the previous character is not a base character then the diacritics will not appear on the screen. 2. If there is already a base character followed by a diacritics then I want, then next diacritics to not display. I don't want diacritics overlapping. If the above cannot be achieved with font, can it be accomplished with programming a keyboard such as Tavultesoft keyman? </pre> </blockquote> <pre wrap=""><snip> As to diacritics not overlapping. That is a question the font and graphite can help with. I'm not sure which script you are interested in. But with Graphite you can have diacritics stack outwards from a base, or assemble themselves into any visual representation you want. But I would not advise implementing fonts that make things disappear (even though you can), because then it makes it nearly impossible for a user to fix their typing mistakes. And the typing mistakes, however you may make them look, are going to cause problems when it comes to searching. The strings will not be the same and so the search engine will seem to miss things. </pre> </blockquote> <br> <br> <fieldset class="mimeAttachmentHeader"></fieldset> <br> <pre wrap="">------------------------------------------------------------------------------ </pre> <br> <fieldset class="mimeAttachmentHeader"></fieldset> <br> <pre wrap="">_______________________________________________ Silgraphite-fonts mailing list <a class="moz-txt-link-abbreviated" href="mailto:Sil...@li...">Sil...@li...</a> <a class="moz-txt-link-freetext" href="https://lists.sourceforge.net/lists/listinfo/silgraphite-fonts">https://lists.sourceforge.net/lists/listinfo/silgraphite-fonts</a> </pre> </blockquote> <br> </body> </html> |