I’ve been drawing these Capital Eszetts for fonts lately. And I am aware there is a bit of controversy weather or not to use the Capital Eszett or simply replace it with SS. That being said, how do you deal with substituting the cap for the lowercase in the OpenType code? Which way makes the most sense and why?
If people want this glyph, they’ll access it directly. Most people will confuse it, though.
sub @Uppercase germandbls' @Uppercase by germandbls.case; sub @Uppercase @Uppercase germandbls' by germandbls.case;
… and also in locl, right after the script latn; and before the first language tag, so it is always on in InD and QXp. And you can substitute germandbls by germandbls.case in case, but that won't be effective in InD.
In the case of the eszett, there are two different casing options. The standard casing is still ß -> SS, and that is enshrined in both DIN standards and Unicode casing rules. So while Rainer's contextual substitution quite cleverly deals with the case in which a lowercase ß character is keyed in the middle of all-caps, it also masks what is actually encoded in the text, and will result in what may be unexpected changes in the appearance if someone then selects and applies an all-caps case conversion to the text: what appeared as an uppercase eszett glyph will become SS. I think it is better to encourage clean text encoding, now what we have an uppercase eszett character to support the non-standard casing option.
sub @lc by @uc;in my
smcpis a different animal, correct?
Let's say I do want to implement a feature, then the best place to put it is in calt.
@Renier. I don't understand, why would you need to rename uni1E9E at all?
I understand you suggestion for calt:
sub @Uppercase germandbls' @Uppercase by uni1E9E;
sub @Uppercase @Uppercase germandbls' by uni1E9E;
But wouldn't you still need something like:
sub @Uppercase germandbls' space @Uppercase @Uppercase by uni1E9E;
...just in case the words Aß and Iß appear in an all caps title?
Chris and John are right.
What you're trying to do is have hacks to guess what the user means. That might be right in some cases but will be wrong in others.
So in calt, I don’t think I am case-converting, am I? That’s why I use the regular germandbls with a suffix (perhaps .case is confusing, but I deemed it the most appropriate one) instead of uni1E9E. And I use calt because the ß is simply adapting its shape to its context.
(Now I see, I should have used germandbls.calt instead.)
In official German orthography, there simply is no uppercase ß. That’s why it’s tricky to encourage its use. And sometimes it is simply impossible, think all-caps last names in passports or other documents, where ß cannot be replaced by double-S or cap-ß. But its shape can change to adapt to the letters surrounding it. Hmmm, no. »Iß ALLES auf!« (‘eat up EVERYTHING’) is an example where you must not capitalize the ß. This would be the guessing Denis referred to, whereas in ‘WEIß’ or ‘HEIßEN’, it is clear.
These technicalities aside, you know there’s not only prescriptive linguistics, there’s also descriptive linguistics. And from a descriptive standpoint, people do use ß in all caps. I see it so often, even handwritten, perhaps it’s even the majority. A type designer, who also sells fonts to these users, may want the font to look good for that kind of use as well. I have encountered people who defended the practice, even.
As a compromise solution, I am tempted to suggest that uni1E9E and germandbls.calt may very well look different, the former being a ‘true’ cap, the latter the lowercase shape, but reaching only the cap height, and drawn a little wider to better fit between caps.
(Sorry about adding yet another sidenote to this endless topic. I really don't want to be the new you-know-who of this forum.)
“Eats shoots and leaves” is a recent classic example.
Somewhat related, I recently came across this book by Lean In (something like Lianne Ng?):
My own experience was almost the opposite. Last year I read a couple of books and articles all printed before ca 1905. It took a couple of them until I noticed that there was not a single ‘ß’ in them.
Btw, I do consider smcp as problematic in that it implicitly maps lowercase (shapes) to uppercase (shapes). InDesign’s approach is a clean one, iirc, first doing casing on application level and then applying cpsp.
> InDesign’s approach is a clean one, iirc, first doing casing on application level and then applying cpsp.
Karsten meant to write 'c2sc' not 'cpsp', I am sure.
Although I was initially surprised when this approach was suggested, I have become more and more sure it is a good choice over the years.