Question

I am using FontForge to alter fonts. Problem is i want to change letters (space and U00A0 (non-break space)) from an Arial font file in order to have those two characters to be shown different for a special use-case in my enterprise.

When i open Fontforge and try to manipulate the space character or the non-break space character - both characters get changed. I need them to look different. It does not seem to be a reference problem (i already tried to unlink reference both characters before editing).

They are somehow linked together and i would like to know: How can i unlink them?

Any suggestions are highly appreciated.

Was it helpful?

Solution

In Arial, as in many other fonts, both the space (U+0020) and non-breaking space (U+00A0) characters map to the same glyph. You will first need to create a new glyph (which can be done by simply copying and pasting). Then, edit the mappings through Char Info. Ideally, the lower-numbered glyph will map to space/U+0020, and the higher-numbered glyph will map to the non-breaking space, but this is not essential. Once you've separated the mappings, you can effect changes on each one as you desire.

HOWEVER: there are a couple of important things to understand: 1) the Arial font data is owned and controlled by Microsoft. You have a license to use it in a very specific way, and unless you have been specifically licensed otherwise, you do not have the right to distribute modified versions of the font.

2) Some applications will use the glyph referenced by U+0020 for both U+0020 and U+00A0 regardless of what is in the font. So your modifications may be for naught. Unfortunately I'm not aware of a definitive list of applications that exhibit this behavior; you'll have to test carefully.

OTHER TIPS

To solve this issue in fontforge you have to:

  • select the targeted character
  • in menu, click Encoding->Detach Glyphs: this will dissociate the character from the current glyph, which in your case will also remove the association between space and non-breaking space
  • copy or create whatever glyph you want in the new empty character

We solved that issue using a second fontforge font which gets loaded before Arial. In the context in which we use the new font (a rte) we map the protected space to another character with almost same behaviours (i think it was a figure space). So in that new font we use different letters for U+0020 and the replacement character.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top