They are still here; maybe another issue with your browser?Bhikkhu Pesala wrote: ↑Sun Feb 28, 2021 6:28 am Note: Some of the inline images have disappeared from the server.
diacritic stacking: positioning problem
-
- Moderator
- Posts: 11160
- Joined: Fri Oct 04, 2002 12:41 am
- Location: Bilthoven, The Netherlands
- Contact:
Re: diacritic stacking: positioning problem
-
- Top Typographer
- Posts: 9878
- Joined: Tue Oct 29, 2002 5:28 am
- Location: Seven Kings, London UK
- Contact:
Re: diacritic stacking: positioning problem
Missing images at bottom of this topic:
More in this older thread: viewtopic.php?f=4&t=1215
Note the http:// prefix:
Code: Select all
https://forum.high-logic.com/download/file.php?id=9410
Note the http:// prefix:
Code: Select all
http://forum.high-logic.com/postedimages/Diacritic%20Alignment.png
http://forum.high-logic.com/postedimages/Diacritic%20Position.png
http://forum.high-logic.com/postedimages/FontInformation.png
http://forum.high-logic.com/postedimages/LowProfileAcute.png
Code: Select all
http://forum.high-logic.com/postedimages/CopyCompositeGlyphMembers.png
http://forum.high-logic.com/postedimages/PasteCompositeGlyphMembers.png
http://forum.high-logic.com/postedimages/AlignCompositeGlyphMembers.png
-
- Moderator
- Posts: 11160
- Joined: Fri Oct 04, 2002 12:41 am
- Location: Bilthoven, The Netherlands
- Contact:
Re: diacritic stacking: positioning problem
Oops; now I understand. I thought you referred to images in this topic, but you were talking about the old images. It should now be restored.
-
- Top Typographer
- Posts: 9878
- Joined: Tue Oct 29, 2002 5:28 am
- Location: Seven Kings, London UK
- Contact:
Re: diacritic stacking: positioning problem
Looking good now. I deleted the missing attachment from the first thread.
Re: diacritic stacking: positioning problem
Thank you. Having read the tutorial and the pdf, and after looking at CompositeData.xml, I still have some questions, if I may:They are the decimal code-points of the defined glyphs. See the Complete Composites Tutorial
1. Can <InheritSB> with Boolean value be placed inside the <Member> tag?
2. What's the <Member id="Rule">?
3. Is there a limit to how many <GlyphName> tags can be placed inside <Member>?
4. Do the <GlyphName> tags or <GlyphMapping> tags order inside the <Member> tag determine the order in which they are used, or is it determined by name suffixes, such as ".case"?
4a. If the latter, are other suffixes also possible?
4a1. If yes, what's their order?
5. Can <GlyphName> tags be mixed with <GlyphMapping> tags inside the <Member> tag?
5a. f yes, does it have bearing on the order in which they are used?
6. <Offset> expressed in em: with or without a space?
7. Can any <Offset> expression (fixed/percentage/em) be used with any <Position> value?
8. Which elements are/aren't case-sensitive?
9. There are 2 cases of fractions omitting 0 before the dot. Is that an error or also allowed?
I apologise if some of these questions do have answers in the provided materials. Thank you for your help
-
- Top Typographer
- Posts: 9878
- Joined: Tue Oct 29, 2002 5:28 am
- Location: Seven Kings, London UK
- Contact:
Re: diacritic stacking: positioning problem
NinnaD wrote: ↑Sun Feb 28, 2021 8:52 pmThank you. Having read the tutorial and the pdf, and after looking at CompositeData.xml, I still have some questions, if I may:They are the decimal code-points of the defined glyphs. See the Complete Composites Tutorial
1. Can <InheritSB> with Boolean value be placed inside the <Member> tag?
2. What's the <Member id="Rule">?
3. Is there a limit to how many <GlyphName> tags can be placed inside <Member>?
4. Do the <GlyphName> tags or <GlyphMapping> tags order inside the <Member> tag determine the order in which they are used, or is it determined by name suffixes, such as ".case"?
4a. If the latter, are other suffixes also possible?
4a1. If yes, what's their order?
5. Can <GlyphName> tags be mixed with <GlyphMapping> tags inside the <Member> tag?
5a. f yes, does it have bearing on the order in which they are used?
6. <Offset> expressed in em: with or without a space?
7. Can any <Offset> expression (fixed/percentage/em) be used with any <Position> value?
8. Which elements are/aren't case-sensitive?
9. There are 2 cases of fractions omitting 0 before the dot. Is that an error or also allowed?
I apologise if some of these questions do have answers in the provided materials. Thank you for your help
- No. It applies to the glyph only
- Names must be unique. You may give them meaningful names.
- Perhaps, but I never found it. Composites with 9 or 10 members can certainly be created.
- The glyphnames or glyph mappings are used in the order in which they appear. Many composites have fallback glyphs in case the first glyph is not found in the font. I believe there are only a limited number of valid suffixes that will be recognised by the feature.
- IIRC one may use either glyph names or glyph mappings in defining a glyph member, but not both. I think it is OK to define different glyph members using different methods. Try and see as I have never tried it. I compiled the CompositeData.xml file, but Erwin wrote the code that interprets it.
- I have never used em. I suspect that the space is needed.
- If any <Position> value means Left, Right, Center, Top, Bottom, Middle, then I assume that the answer is "yes."
- Glyph names are case-sensitive: Agrave is not equal to agrave.
- Which ones? Line number or glyph name. I doubt if it matters. 0.4 is easier to read than .4 that is all.
Re: diacritic stacking: positioning problem
Great
9. 7455, 7456
But:The glyphnames or glyph mappings are used in the order in which they appear
If glyphs are mapped to Uppercase diacritics they will be used in preference to regular sized diacritics over capitals
It is allowable to mix <GlyphName> with <GlyphMapping> in the same definition but if both are used for the same glyph member the one defined with a mapping will be used first.
What does it mean?IIRC one
But no other values?Glyph names are case-sensitive
9. 7455, 7456
Re: diacritic stacking: positioning problem
And more questions:
10. Are there tags that are mutually-exclusive - not logically, but programmatically - in that using both in one definition will result in error?
11. Several tags designate decimal code-point - can all these cases use Hexadecimal instead?
12. In the case of fallback glyph members, I presume whatever is defined inside the <Member> tag will apply to all fallback glyph members uniformly and there's no way to have different instructions for different fallback glyph members?
10. Are there tags that are mutually-exclusive - not logically, but programmatically - in that using both in one definition will result in error?
11. Several tags designate decimal code-point - can all these cases use Hexadecimal instead?
12. In the case of fallback glyph members, I presume whatever is defined inside the <Member> tag will apply to all fallback glyph members uniformly and there's no way to have different instructions for different fallback glyph members?
-
- Top Typographer
- Posts: 9878
- Joined: Tue Oct 29, 2002 5:28 am
- Location: Seven Kings, London UK
- Contact:
Re: diacritic stacking: positioning problem
IIRC = If I recall correctly.
All code syntax words are case-sensitive, e.g. <Pos>Auto</pos> will produce a syntax error, e.g.
9. I could not find any errors on lines 7455, 7456 Paste the code for the entire composite definition where you think the error is. If it parses, then it passes. Don't worry about it.
10. If you open CompositeData.xml in a browser it will be parsed and will stop at syntax errors.
11. All tags use decimal code-points. I started programming with ANSI character sets, and got used to 65=A, 65+32=97 = a, etc. Hexadecimal codes may be used if you prefer them.
12. There is no way that I know of to apply different instructions for fallback glyphs.
In brief, CompositesData.xml that comes with the installed program can be modified to suit your own needs. Copy the user data files to the user data folder and edit the copy. If it exists, FontCreator will use it in preference to the default CompositeData.xml file.
There are hundreds of definitions that perhaps no one will use, but they were added to show what is possible with the code, and thousands more that could have been added for other languages, but my free time is very limited. Even more so now than when I was working on this for earlier versions of FontCreator.
All code syntax words are case-sensitive, e.g. <Pos>Auto</pos> will produce a syntax error, e.g.
If uppercase diacritics are defined in the font, e.g. <GlyphMapping>57365</GlyphMapping>, they will be used before the fallback glyph grave accent (Decimal codepoint 96).This page contains the following errors:
error on line 568 at column 18: Opening and ending tag mismatch: Pos line 0 and pos
Below is a rendering of the page up to the first error.
9. I could not find any errors on lines 7455, 7456 Paste the code for the entire composite definition where you think the error is. If it parses, then it passes. Don't worry about it.
Code: Select all
<Composite><!-- A Grave -->
<GlyphMapping>192</GlyphMapping>
<Member id="1">
<GlyphMapping>65</GlyphMapping>
<UseMetrics>TRUE</UseMetrics>
</Member>
<Member id="2">
<GlyphMapping>57365</GlyphMapping>
<GlyphMapping>96</GlyphMapping>
<Pos>Auto</Pos>
</Member>
</Composite>
11. All tags use decimal code-points. I started programming with ANSI character sets, and got used to 65=A, 65+32=97 = a, etc. Hexadecimal codes may be used if you prefer them.
12. There is no way that I know of to apply different instructions for fallback glyphs.
In brief, CompositesData.xml that comes with the installed program can be modified to suit your own needs. Copy the user data files to the user data folder and edit the copy. If it exists, FontCreator will use it in preference to the default CompositeData.xml file.
There are hundreds of definitions that perhaps no one will use, but they were added to show what is possible with the code, and thousands more that could have been added for other languages, but my free time is very limited. Even more so now than when I was working on this for earlier versions of FontCreator.
Re: diacritic stacking: positioning problem
Yes, I understand about the xml tags; I was asking about the values, other than <GlyphName> value, e.g. "Auto" vs. "auto", "TRUE" vs. "True" vs. "true", etc.All code syntax words are case-sensitive
And in the case of fallback glyphs, do any other suffixes determine precedence - and if they do, what's the order of that precedence?If uppercase diacritics are defined in the font, e.g. <GlyphMapping>57365</GlyphMapping>, they will be used before the fallback glyph grave accent (Decimal codepoint 96).
I could not find any errors on lines 7455, 7456 Paste the code for the entire composite definition
Code: Select all
<Composite><!-- Glottal Stop Mod -->
<GlyphMapping>704</GlyphMapping>
<InheritSB>63</InheritSB>
<Member id="1">
<GlyphMapping>63</GlyphMapping>
<XScale>.65</XScale>
<YScale>.75</YScale>
</Member>
<AlignVertical>
<Source>
<Position>CapHeight</Position>
<Offset>-75%</Offset>
</Source>
<Dest>
<Member>1</Member>
<Position>Bottom</Position>
</Dest>
</AlignVertical>
</Composite>
As in instead of, or will use both, and if there are definitions for the same composites, the user-created one will be used first?Copy the user data files to the user data folder and edit the copy. If it exists, FontCreator will use it in preference to the default CompositeData.xml file.
I understand, and that's kind of what I'm working on - but I need to understand data and how it fits together, hence my various questions.and thousands more that could have been added for other languages, but my free time is very limited
Re: diacritic stacking: positioning problem
And this question is probably more for Erwin:
10. Are there tags that are mutually-exclusive - not logically, but programmatically - in that using both in one definition will result in error?
because I meant conflicts that will arise from FC, not syntax errors, but more like:10. If you open CompositeData.xml in a browser it will be parsed and will stop at syntax errors.
IIRC one may use either glyph names or glyph mappings in defining a glyph member, but not both.
-
- Moderator
- Posts: 11160
- Joined: Fri Oct 04, 2002 12:41 am
- Location: Bilthoven, The Netherlands
- Contact:
Re: diacritic stacking: positioning problem
Glyphs mappings are always processed first, then the glyph names.Bhikkhu Pesala wrote: ↑Sun Feb 28, 2021 11:09 pmThe glyphnames or glyph mappings are used in the order in which they appear. Many composites have fallback glyphs in case the first glyph is not found in the font. I believe there are only a limited number of valid suffixes that will be recognised by the feature.
No, it usually will not generate errors, but there is a strict order in the positioning.
- NextPos
- AutoPos
- AlignHorizontal
- AlignVertical
- LSB
- RSB
- SB
- AW
Re: diacritic stacking: positioning problem
Wonderful, thank you.
I think I got what I needed.
In spare time (sic!): I put together an xml file with what I understood about the CompositeData.xml and its rules. If it's correct, maybe it will help others.
I think I got what I needed.
In spare time (sic!): I put together an xml file with what I understood about the CompositeData.xml and its rules. If it's correct, maybe it will help others.
- Attachments
-
- structure.xml
- (4.41 KiB) Downloaded 232 times
-
- Moderator
- Posts: 11160
- Joined: Fri Oct 04, 2002 12:41 am
- Location: Bilthoven, The Netherlands
- Contact:
Re: diacritic stacking: positioning problem
Yes, that seems to cover it all.
Re: diacritic stacking: positioning problem
And the famous last question:
As in instead of, *or* will use both, and if there are definitions for the same composites, the user-created one will be used first?Copy the user data files to the user data folder and edit the copy. If it exists, FontCreator will use it in preference to the default CompositeData.xml file.