psb1558 / Junicode-font

A new version of Junicode font
SIL Open Font License 1.1
402 stars 17 forks source link

Character Variants documentation for review #11

Closed kenmcd closed 4 years ago

kenmcd commented 4 years ago

Hi Peter, I have been working on a JuniusX User Guide which will document all OpenType features. While I understand the workings of most OpenType features pretty well, the JuniusX fonts' OpenType features are fairly complex and geared to support something (medieval texts) which I do know much about. So some of the intent is a bit confusing, and I do not know what is more important and what is not. So I am requesting your help. Rather than dump a huge document on you all at once, perhaps small chunks will be easier. Attached is a draft of the Character Variants section. Your feedback would be appreciated.

Specifically ... Do the titles of each feature make sense? e.g. cv06 – a alternates, or cv04 – Yogh flat top etc. If there are better descriptions/titles please advise.

The text in yellow are reminders to myself that this text needs work. Your input would be appreciated on the cv59 to cv65 titles.

I have attached a PDF of just the Character Variants section (3 pages). If you would like you can just add notes or comments in that PDF and send it back.

I am about 2/3 thru the Stylistic Alternates -- that is much more complicated. Warning: a lot more questions there. And I am finding some things which could be issues. Right now I am trying to figure-out why some of the Discretionary Ligatures work and some don't. When you document everything down to the last character some questions arise.

When it is all done I will upload the full ODT source and the PDF via a pull request. Too much of a mess right now.

Regards JuniusX_User_Guide_CharVariants_2020-05-29.pdf

jsbien commented 4 years ago

You have encouraged me to add my question and a comment. As for cv01, why it is needed, as there is 'LATIN SMALL LETTER INSULAR D' (U+A77A)? As for cv65, it looks for me as an alternate shape of 'COMBINING UR ABOVE' (U+1DD1), not the tilde; the reference glyph is different, but cf. N3027 tab. 60 on p. 34.

psb1558 commented 4 years ago

First of all, thanks to kenmcd for undertaking this.

The idea behind the Character Variant (cvNN) feature is in the first place to provide access to the MUFI "Variant letter forms" gathered at the end of each section in the "Alphabetical Order" part of the MUFI specification. There are a couple of advantages to doing this.

First, it may make access easier for people who can use the cvNN features (e.g. users of XeTeX, LibreOffice, and in a roundabout way InDesign)--though I admit that access would be much easier if we could attach names to the cvNN features the way we can to Stylistic Sets.

Second (and this depends very much on the software used), when you produce, say, a round d with cv01, the result, both in the original document and (here's the software-dependent part) in the generated PDF, allows searching on "d" instead of U+A77A.

But then, the cvNN features also seemed the best way of taking care of most unencoded variants of single characters. For example, Janusz's variants of ø.

I'm going to address individual queries in separate posts, but note that these features are likely to change. In particular, the OpenType spec encourages treating casing pairs with the same cvNN feature, and that makes sense, so I'll probably be merging the uppercase features (cv35-cv55) with the lowercase ones.

psb1558 commented 4 years ago

The proposed doc looks good! I offer the following notes for information only: they are just a list of the names I've got in the source, with the occasional note.

The names for cvNN features are not reproduced in the font, so they are like comments in the source.

01: Round form of d 02: Alternate Tironian nota 03: Alternate e + ogonek 04: Flat-top yogh 05: Alternate round d 06: Alternate a 07: Alternate e 08: Alternate f 09: Alternate g 10: Alternate h 11: Alternate i 12: Alternate k 13: Alternate l 14: Alternate m 15: Alternate n 16: Alternate o [17: Alternate p] [18: Alternate q] 20: Alternate r 21: Alternate s 22: Alternate t 25: Alternate v 26: Alternate x 27: Alternate y [35-55 Will be merged with the preceding.] 59: Alternate l with high stroke 60: Alternate -rum sign 61: Alternate zigzag 62: Alternate combining flattened a 63: Alternate combining r rotunda 64: Alternate combining bar 65: Alternate combining tilde (but see next post)

The ss features do have names in the font file, though most software does not display these (yet).

ss01: Nordic letter-forms (overrides language setting) ss02: Insular letter-forms ss03: Historical forms (duplicates hist--long s only) ss04: High overline ss05: Medium-high overline ss06: Enlarged minuscules ss07: Underdotted ss08: Sticky long s ss09: Unused ss10: r rotunda ss12: Early English futhorc ss13: Elder futhark ss14: Younger futhark (this needs work!) ss15: Long branch to short twig ss16: Sticky r rotunda ss17: IPA alternates ss18: Old-style punctuation spacing ss19: Latin to Gothic ss20: English thorn and eth (overrides language setting)

Note for ss01 and ss20: The correct form of thorn and eth should be selected automatically, depending on the language of the document: default is Nordic (as in most fonts), but English forms when the language is English. These features are for overriding that automatic selection.

Note on ss08 and ss16: In English and French, rules are applied to distribute long s according to 18th-c. typographical rules (I'd be glad to have guidance for other languages--I know that in German the situation is too complicated for OpenType rules to handle). For all languages, r rotunda is distributed according to the most common rules for medieval manuscripts and early printed books. ss08 and ss16 override these behaviors, providing forms of long s and r rotunda that are not subject to contextual substitution.

psb1558 commented 4 years ago

cv65: This is enormously confusing. N3027 p. 8 shows a form for "COMBINING UR ABOVE" that matches MUFI U+F1C2 "COMBINING ABBREVIATION MARK SUPERSCRIPT UR LEMNISKATE FORM" but the forms p. 34 fig. 60 are a better match for U+F1CC "COMBINING CURLY BAR ABOVE." It's baffling why U+F1CC isn't listed among the "COMBINING UR" forms.

I don't think I have a feature yet linking U+1DD1 with U+F1C2. Should I put U+F1CC with these?

psb1558 commented 4 years ago

@kenmcd : Be very glad to hear which discretionary ligatures are not working.

psb1558 commented 4 years ago

Here's the new cvNN scheme, capitals merged with lc:

cv35, 37-51 are gone, merged with the lowercase features. To keep features in order as much as possible,

cv45 (P) becomes cv17. cv46 (Q) becomes cv18. cv55 (Z) becomes cv28.

This can't be done with cv36 (C), since I didn't leave a space for C in the lowercase sequence.

I could, though, if the (very few) users of this new font didn't think it too disruptive, renumber the cvNN features to get them in the right sequence, leaving spaces for, e.g., Bb, which has no variants yet.

What do you think?

jsbien commented 4 years ago

cv65: I think the answer to your question is no. We can ask on the MUFI list, but my guess is that U+F1CC "COMBINING CURLY BAR ABOVE" is never used meaning "ur". As for MUFI U+F1C2 "COMBINING ABBREVIATION MARK SUPERSCRIPT UR LEMNISKATE (BTW, what about writing just M+F1C2 etc.? I use it in my papers for some time already :-)), I think it should be deprecated, perhaps it predates "COMBINING UR ABOVE"? I enclose some examples of the variant form of "COMBINING UR ABOVE" from a 16th century book printed in Poland. Zaborowski_Polona_6_accipitur Zaborowski_WBC_02_pronuncietur Zaborowski_WBC_08_partitur Zaborowski_Polona_8_legitur

kenmcd commented 4 years ago

The names for cvNN features are not reproduced in the font, so they are like comments in the source.

01: Round form of d 02: Alternate Tironian nota 03: Alternate e + ogonek 04: Flat-top yogh 05: Alternate round d 06: Alternate a 07: Alternate e 08: Alternate f 09: Alternate g 10: Alternate h 11: Alternate i 12: Alternate k 13: Alternate l 14: Alternate m 15: Alternate n 16: Alternate o [17: Alternate p] [18: Alternate q] 20: Alternate r 21: Alternate s 22: Alternate t 25: Alternate v 26: Alternate x 27: Alternate y [35-55 Will be merged with the preceding.] 59: Alternate l with high stroke 60: Alternate -rum sign 61: Alternate zigzag 62: Alternate combining flattened a 63: Alternate combining r rotunda 64: Alternate combining bar 65: Alternate combining tilde (but see next post)

Thanks. This is exactly the sort of info I was looking for - using the nomenclature familiar to the font users. I will make the changes in the place where they are now and wait for you to re-arrange.

kenmcd commented 4 years ago

@kenmcd : Be very glad to hear which discretionary ligatures are not working.

OK, I will post the Discretionary Ligatures section for review and discussion next. Yesterday I had already spent sooooo many hours on it that I needed a break to see it fresh. So far they all work when testing in FontCreator OpenType designer, but when I do it in LibreOffice some of them do not work. So today I am going to test the same features in Affinity Publisher to see if they work there. And I am also going to test some other fonts with the same features in LibreOffice to see if they work or if it is an issue with LibreOffice. Regardless I plan to post that section (dlig) either today or tomorrow.

kenmcd commented 4 years ago

The ss features do have names in the font file, though most software does not display these (yet).

ss01: Nordic letter-forms (overrides language setting) ss02: Insular letter-forms ss03: Historical forms (duplicates hist--long s only) ss04: High overline ss05: Medium-high overline ss06: Enlarged minuscules ss07: Underdotted ss08: Sticky long s ss09: Unused ss10: r rotunda ss12: Early English futhorc ss13: Elder futhark ss14: Younger futhark (this needs work!) ss15: Long branch to short twig ss16: Sticky r rotunda ss17: IPA alternates ss18: Old-style punctuation spacing ss19: Latin to Gothic ss20: English thorn and eth (overrides language setting)

Note for ss01 and ss20: The correct form of thorn and eth should be selected automatically, depending on the language of the document: default is Nordic (as in most fonts), but English forms when the language is English. These features are for overriding that automatic selection.

Note on ss08 and ss16: In English and French, rules are applied to distribute long s according to 18th-c. typographical rules (I'd be glad to have guidance for other languages--I know that in German the situation is too complicated for OpenType rules to handle). For all languages, r rotunda is distributed according to the most common rules for medieval manuscripts and early printed books. ss08 and ss16 override these behaviors, providing forms of long s and r rotunda that are not subject to contextual substitution.

OpenType Designer does display those ss descriptions so I do have those already. I have been having some issues with getting to the before characters to demonstrate the replacements and did realize it is language related. I did have issues with both long s and r rotunda yesterday. And I did notice ss20 as I was quitting yesterday, and assumed that may help. But I expect to have some questions.

kenmcd commented 4 years ago

Here's the new cvNN scheme, capitals merged with lc:

cv35, 37-51 are gone, merged with the lowercase features. To keep features in order as much as possible,

cv45 (P) becomes cv17. cv46 (Q) becomes cv18. cv55 (Z) becomes cv28.

This can't be done with cv36 (C), since I didn't leave a space for C in the lowercase sequence.

I could, though, if the (very few) users of this new font didn't think it too disruptive, renumber the cvNN features to get them in the right sequence, leaving spaces for, e.g., Bb, which has no variants yet.

What do you think?

I am all for reorganizing it - I like order. And it will make it easier to maintain, and to add to in the future. Users understand that this is a work-in-progress and not the final release.

When you are done users will have detailed documentation of exactly how it all works. So I am all for changing it now before before it is complete and gets more popular. That includes putting the C, etc. in the proper sequence and renumbering.

psb1558 commented 4 years ago

Here's the new layout for character variants. Sorry for any inconvenience, but this should be final.

cv01: A cv02: A+ ogonek cv04: C cv05: D cv06: Alternate round d cv07: E cv08: E + ogonek cv09: F cv10: G cv11: Yogh cv12: H cv13: I cv15: K cv16: L cv17: l with high stroke cv18: M cv19: N cv21: o + slash cv22: P cv23: Q cv24: R cv25: S cv26: T cv28: V cv30: X cv31: Y cv32: Z cv40: Tironian sign cv41: -rum sign cv42: combining zigzag cv43: combining open a cv44: combining r rotunda cv45: combining bar above cv46: combining tilde (should this be removed?)

psb1558 commented 4 years ago

Additional notes:

rule added in cv05

order of subs for capital S changed in c v25

kenmcd commented 4 years ago

Great! I like it. Once I have the updated fonts to work with ... I will get the cvNN doc section updated and post it here. We can point any current users with questions to this updated PDF doc.

psb1558 commented 4 years ago

The fonts are up to date now.

kenmcd commented 4 years ago

Another draft of the Character Variants section for your review/input. I added all the changes noted in _Changes_post_MUFI4.0 (2020-06-17)

Additional changes as of 17/06/2020:
- ss17 "IPA Alternates" moved to cv50 "Alternate glottal stop."
- Added one alternate to cv30 (x): uniF232
- Added Eogonek.alt1 to font and access via cv08
- Added rule "sub Eogonek.alt1 by eogonek.alt1.sc" to c2sc
- moved contents of cv06 to cv05, which now offers choice of two shapes of round d
- Added dotless i to cv13

Plus I added the other changes added for various Small Caps. Reviewed all the OpenType code again in detail so I think I got it all. Removed all the en dashes in the titles - think it looks OK, less visual noise. Removed the duplicate number lines (1,2,3,4,5, etc.) to reduce clutter and increase clarity. Added a section menu to enable users to do a quick scan of what is available there. Changed the headings font from Lato to Fira Sans for slashed zero, and non-ambiguous characters. Any feedback/corrections/updates would be appreciated.

JuniusX_User_Guide_Character_Variants_cvNN_2020-07-06.pdf

psb1558 commented 4 years ago

It looks very elegant, and, better yet, clear and usable. The question it raises for me is about the font's treatment of long s and r rotunda. For these letters there are both normal and "sticky" forms, the sticky ones not subject to alteration by calt (but sticky long s forms ligatures in the normal way). Should cv24 and cv25 produce the sticky rather than the normal forms? The idea is that use of those cv features is an assertion that one really wants those particular forms, not the contextually sensitive ones.

kenmcd commented 4 years ago

The question it raises for me is about the font's treatment of long s and r rotunda. For these letters there are both normal and "sticky" forms, the sticky ones not subject to alteration by calt (but sticky long s forms ligatures in the normal way). Should cv24 and cv25 produce the sticky rather than the normal forms? The idea is that use of those cv features is an assertion that one really wants those particular forms, not the contextually sensitive ones.

I agree 100% that the sticky forms should be the result. Users will be as confused as I was at first as to why the long s is not appearing sometimes. And in this case that is even more confusing when the user is asking for a specific character. They should not have to have to disable calt to get the desired character.

Note: In the calt documentation I have been gathering your various notes about what is being done using the Contextual Alternates. Even though users are not required to do anything it is helpful to understand what is happening. It has certainly helped me in writing the docs to understand why certain unexpected things were happening, and then be able to work around them or with them. Anyone writing about medieval text may be writing in multiple languages and get as totally confused as I was, or being more knowledgeable about the subject they may get it right away. :-) Either way good docs should help.

I have cleaned-up the cvNN doc section formatting some more, and after testing these changes that section will be done (for now).

psb1558 commented 4 years ago

Okay, thanks. I have pushed the source and the newly built (static) fonts reflecting the changes to cv24 and cv 25.

kenmcd commented 4 years ago

OK. All appears to be working great. Deleted all my yellow text. This should be the final/working cvNN documentation for now.

JuniusX_User_Guide_Character_Variants_cvNN_2020-07-11.pdf

psb1558 commented 4 years ago

It occurred to me this morning that there are some small caps that ought to be included in this feature. The new rule for JuniusX is that wherever there is a casing pair there must be a small cap (that's why the "small caps" feature has gone from 108 characters to 563), and I haven't yet accounted for all the new stuff in various relevant OpenType features. Sorry.

I will document everything I add.

psb1558 commented 4 years ago

Here are the updates to the cvNN features (basically catching up to smcp changes):

cv05 d.sc --> dinsular.sc cv09 f.sc --> finsular.sc cv10 g.sc --> ginsular.sc cv24 r.sc --> rrotunda.sc, rinsular.sc cv25 s.sc --> sinsular.sc cv26 v.sc --> vend.sc