Jump to content
You must now use your email address to sign in [click for more info] ×

German capital sharp S is not handled correctly by the "All Caps" option


Recommended Posts

Hi,

If I enter a small letter sharp S (ß) and selecting the "All Caps" option in Affinity Designer or Publisher it gets converted into two capital letter S (SS). This is absolutely correct.

But nothing changes if I choose the Stylistic Set "German Capital Sharp S", that my font supports. The small letter sharp S (ß) stays a double S (SS).

Only if I enter the Capital Sharp S as unicode char directly (ẞ) and turn on the Stylistic Set "German Capital Sharp S" it is even displayed in Affinity and also stays as a Capital Sharp S with "All Caps" on. 

This is a bit strange.

In my opinion with the All Caps option on, Affinity should convert a small letter sharp S into two SS if the option Stylistic Set "German Capital Sharp S" is not set and into a German Capital Sharp S if the Stylistic Set is set.

Greetings,
Christoph

German capital sharp S.jpg

Link to comment
Share on other sites

3 hours ago, Christoph Müller said:

In my opinion with the All Caps option on, Affinity should convert a small letter sharp S into two SS if the option Stylistic Set "German Capital Sharp S" is not set and into a German Capital Sharp S if the Stylistic Set is set.

This is going to be affected by how the font is constructed.

What font are you using?

Note: apps typically cannot make exceptions for characters in stylistic sets because they cannot make any assumptions about what is there; they should only follow what the font designer actually did.

Link to comment
Share on other sites

On 8/16/2021 at 8:57 AM, Christoph Müller said:

In my opinion with the All Caps option on, Affinity should convert a small letter sharp S into two SS if the option Stylistic Set "German Capital Sharp S" is not set and into a German Capital Sharp S if the Stylistic Set is set.

Took a look at DIN Pro v7.601 (2018) - not sure if you have Std or Pro, but they are both the same in this situation.

You must have entered the capital ẞ using the Glyph Browser, because the Unicode 1E9E is configured as SS.
So when you selected the capital ẞ using the Glyph Browser it is selecting a glyph named Germandbls.ss13  ...
and glyph Germandbls.ss13 has no Unicode code point  ...
so there is no Uppercase/Lowercase AllCaps available for this un-mapped glyph.

So nothing is amiss in AD - just the way the font is configured.

Link to comment
Share on other sites

21 hours ago, Sean P said:

Hi Christoph,

Unfortunately we don't have access to this font and I'm currently unable to find any others containing a Capital Sharp S Stylistic Set.

Would it be possible for you to attach the font used to our internal Dropbox using the link below please?
https://www.dropbox.com/request/bwL7AQjhyDwYf0qZB2r7

Hi,

Unfortunately I am not allowed to share the font, because we licensed it.

Greetings,

Christoph

Link to comment
Share on other sites

12 hours ago, LibreTraining said:

Took a look at DIN Pro v7.601 (2018) - not sure if you have Std or Pro, but they are both the same in this situation.

You must have entered the capital ẞ using the Glyph Browser, because the Unicode 1E9E is configured as SS.
So when you selected the capital ẞ using the Glyph Browser it is selecting a glyph named Germandbls.ss13  ...
and glyph Germandbls.ss13 has no Unicode code point  ...
so there is no Uppercase/Lowercase AllCaps available for this un-mapped glyph.

So nothing is amiss in AD - just the way the font is configured.

I am not sure. I still think it's a bug in Affinity.

On the unicode.org page there is actually an FAQ article on this topic: https://unicode.org/faq/casemap_charprop.html#11

Briefly, it says that in German it is historically the case that a small sharp S is converted into a double capital S. That's why it's the standard in Unicode. But it also says that there may be the alternative of converting the small sharp S into a real capital sharp S.

In the DIN font, the character "U+1E9E ẞ LATIN CAPITAL LETTER SHARP S" is defined as "SS" by default.

Accordingly, converting to uppercase in Affinity Designer from a "U+00DF ß LATIN SMALL LETTER SHARP S" to a "U+1E9E ẞ LATIN CAPITAL LETTER SHARP S" works correctly. If I enter "U+1E9E ẞ LATIN CAPITAL LETTER SHARP S" directly, "SS" is also displayed. This is also correct.

But now comes where I think the bug is:

Activating the stylistic set "German Capital Sharp S" basically does nothing other than switch an alternative appearance of the character "U+1E9E ẞ LATIN CAPITAL LETTER SHARP S" to the real capital sharp S (ẞ).

Thus, whenever a "U+1E9E ẞ LATIN CAPITAL LETTER SHARP S" is displayed with the stylistic set "German Capital Sharp S" activated, Affinity Designer should always display a real capital sharp S (ẞ). 
It should not matter whether the "U+1E9E ẞ LATIN CAPITAL LETTER SHARP S" was entered manually or was created by a conversion to capital letters.

However, it only works when "U+1E9E ẞ LATIN CAPITAL LETTER SHARP S" is entered directly. When converting a lowercase sharp S to uppercase, "SS" is still displayed.

Accordingly, I think it is a bug that the stylistic set "German Capital Sharp S" is not applied after converting to capital letters. Possibly this also applies to all stylistic sets.

Greetings,
Christoph

Link to comment
Share on other sites

2 minutes ago, Christoph Müller said:

Accordingly, I think it is a bug that the stylistic set "German Capital Sharp S" is not applied after converting to capital letters. Possibly this also applies to all stylistic sets.

Please show us exactly what setting you used to "convert to capital letters". I think you may be using one that doesn't do what you think it does.

-- Walt
Designer, Photo, and Publisher V1 and V2 at latest retail and beta releases
PC:
    Desktop:  Windows 11 Pro, version 23H2, 64GB memory, AMD Ryzen 9 5900 12-Core @ 3.00 GHz, NVIDIA GeForce RTX 3090 

    Laptop:  Windows 11 Pro, version 23H2, 32GB memory, Intel Core i7-10750H @ 2.60GHz, Intel UHD Graphics Comet Lake GT2 and NVIDIA GeForce RTX 3070 Laptop GPU.
iPad:  iPad Pro M1, 12.9": iPadOS 17.3, Apple Pencil 2, Magic Keyboard 
Mac:  2023 M2 MacBook Air 15", 16GB memory, macOS Sonoma 14.3.1

Link to comment
Share on other sites

1 hour ago, Christoph Müller said:

See the screenshot of my initial post.

I pressed the TT-Button (All Caps) in typography settings of the text.

Thanks; missed that.

The TT option in Typography changes the appearance of the letters, but it does not change the letters. Thus, if you had "now is the time" in Arial, and selected them, and pressed TT you would see  "NOW IS THE TIME" but the actual letters are still "now is the time".

Publisher is correctly, in my opinion, changing the appearance of the lower-case sharp S to the appearance of the upper-case sharp S, but it is still really the same character. It is not making any changes to the actual glyphs being used, and is not intended to do that. So if you want your alternate sharp S glyph to be used you will need to actually change the letter.

That's my interpretation, at least.

It is similar in some ways to the Text > Capitalization menu item. The upper entries (1) in the menu just change the appearance of the characters (All Caps will make n look like N, but it is still really n). The lower entries (2) actually transform the characters (Upper Case will change n into N, and if you were to copy the text and paste it somewhere else you would get N). The TT flag is like "All Caps" in this menu, not like "Upper Case".

image.png.ca21ec800bc6a499f137b9f6bc133219.png

 

 

-- Walt
Designer, Photo, and Publisher V1 and V2 at latest retail and beta releases
PC:
    Desktop:  Windows 11 Pro, version 23H2, 64GB memory, AMD Ryzen 9 5900 12-Core @ 3.00 GHz, NVIDIA GeForce RTX 3090 

    Laptop:  Windows 11 Pro, version 23H2, 32GB memory, Intel Core i7-10750H @ 2.60GHz, Intel UHD Graphics Comet Lake GT2 and NVIDIA GeForce RTX 3070 Laptop GPU.
iPad:  iPad Pro M1, 12.9": iPadOS 17.3, Apple Pencil 2, Magic Keyboard 
Mac:  2023 M2 MacBook Air 15", 16GB memory, macOS Sonoma 14.3.1

Link to comment
Share on other sites

5 hours ago, Christoph Müller said:

Hi,

Unfortunately I am not allowed to share the font, because we licensed it.

Greetings,

Christoph

Actually, the font maker/distributor will allow you to share a font to a bonafide application developer such as Serif. Go ahead and ask them. However, if Serif has an Adobe subscription, they may have access to FF Din...at least, Adobe Fonts use to offer it. Same with inquiring directly to FF themselves, they may send a copy should Serif ask.

All that aside, I do not have access to a newer version of FF Din, so my copy is older than yours and neither has a cap sharp S nor has the stylistic set for it.

3 or 4 years ago, I did add a cap sharp S to a font and add a stylistic set for it.

Capture_000836.png.56ea1652bf8c09fe2b83161d9e7c19b5.png

Capture_000837.png.26f8a1f7e347a543eeb70af1fd856959.png

Capture_000838.png.a667e6185ca2e0bcce0c9160c2948db3.png

Affinity apps seem to work fine here with my font.

If the above is what you expect and FF Din doesn't work that way, it will be missing GSUB and/or lookups, and/or they are in the wrong order inside the font. If that is true, FF needs to change/fix the font.

Mike

 

Link to comment
Share on other sites

2 hours ago, Christoph Müller said:

Accordingly, I think it is a bug that the stylistic set "German Capital Sharp S" is not applied after converting to capital letters. Possibly this also applies to all stylistic sets.

So basically what you are saying is that the stylistic set should be applied when the capital letters is toggled. You may have a point there. But if you enter the  directly using the Glyph Browser that will never work (because it has no code point). 

On my phone at the moment, but will test this in some other shaping engines in a couple hours - LibreOffice (Harfbuzz), MS Word (DirectWrite), and QuarkXPress - and see how they handle it.

Link to comment
Share on other sites

6 hours ago, Christoph Müller said:

However, it only works when "U+1E9E ẞ LATIN CAPITAL LETTER SHARP S" is entered directly. When converting a lowercase sharp S to uppercase, "SS" is still displayed.

Accordingly, I think it is a bug that the stylistic set "German Capital Sharp S" is not applied after converting to capital letters.

Did some tests and the the results surprised me a bit.
How this is handled (AllCaps + sharp s) is not good in any app I tested.

APub is doing what @walt.farrell described above - the underlying text is still small caps.
So there is no uppercase sharp s to apply the stylistic set to.
But I think you are right in that that is what users would, and should, expect it to do (replace the capital character).
I do not know why the underlying characters are still lowercase - does not make sense to me.

I knew that in LibreOffice applying Uppercase to the text actually changes the text - it is uppercase codes now.
But it did not work either because it changed the lowercase sharp s to two capital S characters (not uppercase sharp s).
So the stylistic set did not work there either.
If I manually entered the code for the uppercase sharp s, then the stylistic set worked as expected.

The MS Word All Caps feature did actually change the characters to uppercase - except the lowercase sharp s.
The lowercase sharp s remained lowercase (which is one of the ways this used to be handled).
Again, if I manually entered the code for the uppercase sharp s, then the stylistic set worked as expected.

QuarkXPress appeared to be doing the same as APub - the underlying text remains lowercase.
So the same issue - applying the stylistic set had no effect.

So how apps handle this is kinda all over the place, just like how it is in the various locales with different rules.

I did try to think of why Affinity would leave the actual characters as lowercase, but I got nothin' on that.
This is not like OpenType replacements which leave the codes of the original characters.
But there may be some other interaction which we are just not aware of which requires this.
Perhaps someone from Affinity can explain the logic on that decision.

 

Link to comment
Share on other sites

7 minutes ago, LibreTraining said:

I did try to think of why Affinity would leave the actual characters as lowercase, but I got nothin' on that.

Because the Typography settings just change the appearance of the text, not the actual text values. Just like, when you activate ligatures, your "st" doesn't actually become a single character at some code-point. It's still an "s" and a "t", they just look like they're joined when you view them on-screen or printed.

-- Walt
Designer, Photo, and Publisher V1 and V2 at latest retail and beta releases
PC:
    Desktop:  Windows 11 Pro, version 23H2, 64GB memory, AMD Ryzen 9 5900 12-Core @ 3.00 GHz, NVIDIA GeForce RTX 3090 

    Laptop:  Windows 11 Pro, version 23H2, 32GB memory, Intel Core i7-10750H @ 2.60GHz, Intel UHD Graphics Comet Lake GT2 and NVIDIA GeForce RTX 3070 Laptop GPU.
iPad:  iPad Pro M1, 12.9": iPadOS 17.3, Apple Pencil 2, Magic Keyboard 
Mac:  2023 M2 MacBook Air 15", 16GB memory, macOS Sonoma 14.3.1

Link to comment
Share on other sites

Just now, walt.farrell said:

Because the Typography settings just change the appearance of the text, not the actual text values. Just like, when you activate ligatures, your "st" doesn't actually become a single character at some code-point. It's still an "s" and a "t", they just look like they're joined when you view them on-screen or printed.

Ligatures are an OpenType substitution (for the most part) where it is normal to keep the underlying characters.
But I do not see why AllCaps would do that - the user wants All Caps - that is not an OpenType substitution.
I do see any reason to not replace the characters (to avoid situations like this if nothing else).

Maybe I am just used to apps like LibreOffice and Word where All Caps and Toggle Case actually replace the characters.
Which makes more sense to me.

Link to comment
Share on other sites

5 minutes ago, LibreTraining said:

Maybe I am just used to apps like LibreOffice and Word where All Caps and Toggle Case actually replace the characters.
Which makes more sense to me.

Perhaps.

On the other hand, if the Affinity application user really wanted them replaced they could use Text > Capitalization and replace them. That sounds more like what LibreOffice is doing, rather than using Typography features.

-- Walt
Designer, Photo, and Publisher V1 and V2 at latest retail and beta releases
PC:
    Desktop:  Windows 11 Pro, version 23H2, 64GB memory, AMD Ryzen 9 5900 12-Core @ 3.00 GHz, NVIDIA GeForce RTX 3090 

    Laptop:  Windows 11 Pro, version 23H2, 32GB memory, Intel Core i7-10750H @ 2.60GHz, Intel UHD Graphics Comet Lake GT2 and NVIDIA GeForce RTX 3070 Laptop GPU.
iPad:  iPad Pro M1, 12.9": iPadOS 17.3, Apple Pencil 2, Magic Keyboard 
Mac:  2023 M2 MacBook Air 15", 16GB memory, macOS Sonoma 14.3.1

Link to comment
Share on other sites

Word has always had issues working properly, esp. with combinations of OT features and/or its case routines when combined with OT features.

QXP, ID, XDP, CD and LO all work as expected using my font. The font just needs to be made to do the substitutions (excepting Word and likely others).

In general, Affinity applications handle OT features exceptionally well in most all circumstances and Serif has worked hard to rectify issues I've pointed out in the past.

Link to comment
Share on other sites

10 minutes ago, walt.farrell said:

On the other hand, if the Affinity application user really wanted them replaced they could use Text > Capitalization and replace them. That sounds more like what LibreOffice is doing, rather than using Typography features.

You gave me hope there for a moment, but that appears to do the same thing as LibreOffice - the sharp s is converted to two uppercase S characters - so again the stylistic set replacement fails.

But it is nice to know that Upper Case command does actually convert characters to upper case. :-)

Link to comment
Share on other sites

3 minutes ago, MikeW said:

QXP, ID, XDP, CD and LO all work as expected using my font. The font just needs to be made to do the substitutions (excepting Word and likely others).

Is your font doing something different which can work around this Affinity All Caps issue?
If Yes, I would love to see it.

The DIN font ss13 is real simple:

lookup SingleSubstitution28 {
  sub Germandbls -> Germandbls.ss13;
}

 

Link to comment
Share on other sites

I'm not sure I understand the question re my font.

FF Din. I have no idea what is being sub'd as I don't have a current version. But if the sub is pointing to a single SS glyph, there is likely nothing for FF Din in its coding to swap to a cap sharp S.

FF Din could be made to work.

Link to comment
Share on other sites

4 hours ago, MikeW said:

FF Din could be made to work.

FF DIN works fine. It does exactly what is expected - ss13 swaps the SS (in 1E9E) for the ẞ (uppercase).
They also handle the small caps and case sensitive forms.

The Glyphs App site has an example using calt to replace the characters when in between other capital letters.
But that will not work here either.

What is it that your font does which would do anything different in this situation?
You mentioned this:

4 hours ago, MikeW said:

QXP, ID, XDP, CD and LO all work as expected using my font. The font just needs to be made to do the substitutions (excepting Word and likely others).

What exactly does that mean related to this problem?

Link to comment
Share on other sites

19 hours ago, MikeW said:

What doesn't work is the SS does not change when the cap sharp S stylistic set is added.

Duh. And why is that?
I guess you have not actually read the entire thread.

Still waiting to hear exactly how your magic font will solve the original issue.

Link to comment
Share on other sites

Usually I like a smart ass reply.

I'm likely too stupid to understand the issue. So please forgive me in thinking the issue was that the cap SS was suppose to, or was desired to change, to a cap sharp S when the stylistic set was chosen. 

I'll leave you to espousing your innate wisdom. 

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
×
×
  • Create New...

Important Information

Terms of Use | Privacy Policy | Guidelines | We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.