Word 2013 non-breaking space width: an end to the insanity!

Pre-Word 2013, a persistent annoyance was that non-breaking spaces (Chr(160)) were fixed width, even in justified text.  Word 2013 changed that.  Now, in justified text, regular spacing and non-breaking spaces are the same width.

Sometimes.

If you’re lucky.

User slasza on Microsoft Answers posted this test case from Word 2013, in which everything should have been right, but the nonbreaking spaces still didn’t show up:

NBSP failure – image by slasza

I ran some test files and took a look at the Word XML, and found the culprit at last!  It is the <w:useFELayout/> tag in the <w:compat> group in word/settings.xml.  If that tag is present in a Word 2013 document, nonbreaking spaces are fixed-width.  If it is absent, nonbreaking spaces are variable-width.

More detailed instructions on how to fix this are coming soon.  But rejoice that at least now you know what the problem is!

Edit 1

I just fixed one legacy file by going on an odyssey through the UI and the XML.  I:

  1. In the UI, turned off all the fancy OpenType features
  2. Set the proofing language to US-English for all text
  3. In word/settings.xml, removed FELayout, everything under w:compat except for w:compatSetting, and I think a few other things under /w:settings.
  4. In word/*.xml, removed just about every mention of the word “asia” (case-insensitive)

And my NBSPs are finally variable-width!