best OT substitution for uni2116 (numero) symbol

Synthview's picture

Dear typophiles,

I’m asking myself which substitution is the best to obtain the № symbol. I’d use a stylistic set for it.
I was thinking about these ways :

1. sub N o space by numero; < o sign

2. sub N ° by numero; < degree sign

3. sub N º by numero; < ordmasculine sign

4. sub N ° space by numero; < degree sign

5. sub N º space by numero; < ordmasculine sign

I’m more oriented to 2 and/or 3, and you?
Thanks,
Jan

Frode Bo Helland's picture

Why not just

sub N o by numero;

?

But make sure it’s not a default setting! It makes more sense to include this in some stylistic set.

JamesT's picture

If it's a stylistic set, I'd go for option one. Most people have a hard enough time figuring out stylistic sets as it is. The easier you make it, the more likely people will use it.

hrant's picture

I think it makes more sense to have "N ordmasculine"* be subbed
with the numero by default, but have a stylistic set that undoes it.

* No space after.

hhp

riccard0's picture

Thinking of possible usage, and keyboard’s offering, the most common and useful scenario would be "Ndegreesign". But then you should hope no one will use your font for setting mathematical problems ;-)
Substituting "No" or "No." with № would be very likely be unwanted. And anyone able and willing to insert a ordmasculine sign would also be able to use a numero sign.

kentlew's picture

Call me a purist, but since the numero (№) is just a logotype for Nº, then why not make that the substitution?

sub N ordmasculine by numero;

Igor Freiberger's picture

Jan,

I had the same question some time ago regarding the development of my own font. A small research did show the problem needs different solution according to the language/keyboard in use.

N+° makes sense where keyboards offer an easy access to degree sign, but does not help if the keyboard does not brings this key. The same about N+º as ordmasculine is not present in many keyboard layouts. And N+o+[ ] cannot be used in any language where the word "no" is present.

The solution I built was a stylistic set with Numero substitutions based on the language in use.

1 Spanish, Portuguese, Catalan, Galego: N+º as ordmasculine is available on these keyboards.

2 Latin American Spanish, French, Canadian French, Italian, German, Dutch, Polish, Romanian: N+° as the degree sign is the one available.

As an universal shortcut, I also added the substitution \+N+o = Numero, but I'm unsure if this is the best option. And I still need to verify the keyboard used for Provençal (Occitan), which I supposed is the default French.

Synthview's picture

Thank you all!
In fact, of course it will be a stylistic set (so not on by default)

I don't like the N o (letter o) solution as all words as Normal None November would be screw up.

sub N ordmasculine by numero; seems the most proper, but what about having both

ss01{
sub N ordmasculine by numero;
sub N degree by numero;
}ss01;

for compatibility and simplicity sake?

@Igor
I’m ashamed of my ignorance, but how do you code to combine a ssxx with locl feature?

Thanks,
Jan

hrant's picture

> not on by default

Since a non-numeral followed by an ordinal is so rare I'd actually
make the sub the default behavior to save your users extra clicks.

hhp

Igor Freiberger's picture

You don't need to use locl feature. Inside any OT feature you can define the script and/or language scope for the substitution. Like this:

feature ss01 {   # Numero substitution
  language FRA ; # French
  language ITA ; # Italian
  language DEU ; # German
  script DFLT;   # Default
    sub N degree by numero;
  language ESP ; # Spanish
  language POR ; # Portuguese
  script DFLT;   # Default
    sub N ordmasculine by numero;
} ss01;
Synthview's picture

Ohhh amazing!
Thanks you a lot!
In fact it’s like inside the locl feature. I should have though about it by myself :)

But in this case, what happens if the language used is none of the ones listed here?

Igor Freiberger's picture

I wrote the code above by memory as I do not have FLS available right now. But IIRC you firstly insert a generic sub command to be applied to all languages of the default script (of course, if this is desired) and then add the language-specific substitutions. I believe you can find sample codes in most recent "pro" fonts.

agisaak's picture

Igor's code should actually look like this (the include_dflt statements being optional but included below for clarity):

feature ss01 {   # Numero substitution
  script dflt;
    sub N degree by numero; # default script behavior
  script latn;
        sub N degree by numero; # default latin behavior
      language FRA include_dflt ; # French
      language ITA include_dflt ; # Italian
      language DEU include_dflt ; # German
      language ESP exclude_dflt ; # Spanish
        sub N ordmasculine by numero;
      language POR exclude_dflt  ; # Portuguese
        sub N ordmasculine by numero;
} ss01;

In response to Synthview's question about languages not listed above, what happens will depend on which script the language belongs to and whether the language has been registered using a languagesystem statement.

For languages which belong to a script which has not been registered, the substitution following script dflt will be applied.

For languages belonging to the latin script which have not been registered, the substitution following script latn will be applied (which in this case is identical to the one above).

For languages or scripts which have been registered but which have not been included above, nothing will happen.

André

agisaak's picture

Sorry - the first line of that feature should read script DFLT rather than script dflt .

André

Syndicate content Syndicate content