3

I'm using Firefox 80.0.1 in Kubuntu and Xubuntu Focal with language set to German on OS level and FF itself. locale returns de_DE.UTF-8 for everything except LC_ALL (empty).

Firefox converts the source text "Nr." to the numero sign "№" for display. This doesn't happen with FF on Windows and in Chromium on Kubuntu/Xubuntu.

Link to a sample page with a comment where the problem occurs ("Bestell-Nr." displays as "Bestell-№").

A similar behaviour was observed in LibreOffice, but for input and hinting at system locale settings, which should be correct in my case (see locale output above). Someone commented that he experiences the same problem in FF, but without a response.

This is caused by Ubuntu's font matching choice Nimbus Sans as replacement for Helvetica, which has ligature rules defined, including one to automatically convert "Nr." to "№".

Based on the answer by pLumo I re-routed the font matching by creating a ~/.config/fontconfig/fonts.conf with the following content, which fixes the problem (requires the package ttf-mscorefonts-installer to be installed):

<?xml version='1.0'?>
<!DOCTYPE fontconfig SYSTEM 'fonts.dtd'>
<fontconfig>
  <match>
    <test name="family"><string>Helvetica</string></test>
    <edit name="family" mode="assign" binding="strong">
      <string>Arial</string>
    </edit>
  </match>
</fontconfig>
3
  • 1
    Firefox should not change page contents based on locale settings, but only its own language and data formats. Might you be running some plugins that automatically replace certain contents?
    – FelixJN
    Sep 22, 2020 at 10:42
  • @Fiximan No, I created entirely fresh installations of Kubuntu/Xubuntu and Firefox with no plugins in VirtualBox for testing.
    – lmoly
    Sep 22, 2020 at 11:22
  • I can confirm, LANG is english, but formats are german
    – pLumo
    Sep 22, 2020 at 11:42

2 Answers 2

1

It's not Firefox converting Nr. to №, but the Font that is being used.

This website uses Helvetica which gets automatically replaced by Nimbus Sans, as Linux usually does not provide Helvetica because it is not free to use.

Open your Libre Office, chose Nimbus Sans and type "Nr." and see the magic.

Run fc-match in the terminal to see the default replacement fonts:

fc-match helvetica

See also How do I figure out which font file is chosen for a system generic font alias?

3
  • Ah, OK. So I need to re-configure the font matching. But why doesn't this happen in Chromium on Linux as well? Isn't Chromium using the same font replacement mechanism provided by the OS?
    – lmoly
    Sep 22, 2020 at 12:23
  • The Nr. in the sample page are normal ASCII letters, not the combined Nr Unicode symbol.
    – Oskar Skog
    Sep 22, 2020 at 12:35
  • 1
    @OskarSkog I was able to confirm it in LibreOffice Calc: enter "Bestell-Nr." into a field, choose Nimbus Sans and Nr. turns to № while in the formula field it's still "Bestell-Nr.". If there's a switch somewhere to disable this replacement instead of re-assigning to font, let me know.
    – lmoly
    Sep 22, 2020 at 13:10
0

I just installed ttf-mscorefonts-installer to fix the problem. No need for the fonts.conf on Kubuntu 20.04 in my case.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.