composing characters in MKIV: adding "mark" feature
Dear Hans, as a follow up to the topic I brought up again last week (and as it was partially brought up on the tex-font mailing list as well), here are some of my thoughts (for discussion). When thinking a bit about it, it appears to me that the best approach for fixing accent positioning would be to implement "mark"/"mkmk" feature for both Type1 and OpenType fonts using lfg files. The things that come to my mind and would have to be done are the following: 1.) with some configuration, but universal accross fonts: One might have to copy a normal caron into combining caron (and copy all other accents as well), to enable <c><combining caron> to work properly. (Arthur would probably argue about normalization at this point, but I'm also talking about combinations that don't exist in Unicode; maybe <eogonek><combining caron> etc.) 2.) universal accross fonts: Let TeX determine "bottom marks" and "top marks" for all letters (that is: eogonek and scedilla also need at least the "top mark"). The code to calculate those values is already there. It would be helpful to have both graphical output displaying those marks on top of letters as well as an option to output those settings into a file (to enable easy manual editing of values and loading them again). 3.1.) Allow editing the values that TeX returned (from point 2) and loading them. 3.2.) Allow shifting "top marks" separately on lowercase/uppercase/smallcaps. Among those, allow exceptions for single letters (like lowercase l in Lucida which is taller than uppercase letters and requires special handling). Allow shifting "bottom marks" and allow exceptions. 4.) Allow shifting both marks to left/right (I'm not sure about units, but they may be the same units as used for bounding boxes; people who want to fix that have to experiment anyway). 5.) Allow shifting positioning marks on accents. There is some confusion since some accents come with their "natural bounding box", while combining accents don't. 6.) Low priority: For fonts that do have mark/mkmk feature, allow fixing mark positions on single letters and allow adding new marks on letters that lack them. 7.) Very low priority: Allow "faking accents" (creating bottom circumflex out of top circumflex). 8.) Lower priority, but might be kept in mind: this has to be done for Latin, but other scripts (like Cyrillic) might want to have that functionality on request as well. It makes little sense to add marks on all glyphs, including Chinese etc. The autocomposing feature should probably be switched off by default, but if one wants to switch it on and if one wants to add positioning marks, it might make sense to "ask the user" to which glyphs those marks have to be added. I can try to come up with more precise specification, but to start with: how would one add mark/mkmk features to lfg files? (I'm asking for some minimal example of syntax which doesn't have to work.) Mojca
(Arthur would probably argue about normalization at this point, but I'm also talking about combinations that don't exist in Unicode; maybe <eogonek><combining caron> etc.)
No, what you're proposing is independent of any processing of the character stream, since it happens later, in the font. This is distinct from normalisation. (I think normalisation should be done anyway when you're processing some text in any system, using the form that best fits the expectation, but that is a separate issue.) Arthur
participants (2)
-
Arthur Reutenauer
-
Mojca Miklavec