Compiling Eats German Umlauts in Style Names

After Compile German umlauts in style names have lost their little dots—Ü becomes U, Ä A, and Ö O. Also ß is converted into an s.

What’s really nasty about this is that the German word for heading happens to contain an Umlaut—Überschrift. So if one sets up a Compile format to just create a generic but structured document there won’t be any structure because these umlaut-less heading styles are not defined in the target word processor’s standard template and therefore don’t have any level.

Interestingly, all this applies to Pages while LibreOffice has Überschrift of all levels with an umlaut—but only Überschrift. All other style names do lose their Umlauts too. I suppose LibreOffice does some thoughtful parsing when opening a document.

No Word here, so I can’t tell how it does handle this.

The simple workaround is to use the English term heading because the word processors translate it into the language of their respective user interface. But as this goes only for headings and users normally don’t know anything about this bug it needs fixing.

I don’t think this is a bug, per se. It seems to be very deliberately ensuring that characters are converted to ASCII-7 safe values so that they can be safely embedded into the stylesheet definitions of an RTF file. It may be this is an unnecessary precaution (both LibreOffice and Nisus Writer Pro don’t seem to mind properly encoded umlauts in stylesheet names), but I don’t have Word and that may be where the problem is that we’re dodging.

At any rate, it might be easier to actually do something about this given the 3.0.3 update, which has a new compile stylesheet option for exporting a style with a different name than what is used internally in Scrivener. A style can go on being “Überschrift 1”, but translate to “Heading 1” upon output to RTF. We would just need to make sure the translators do not translate those fields I suppose. I’ll see if that’s an acceptable approach.

Umlauts are dropped simply because Scrivener isn’t encoding the style name in RTF, but as plain text. I have fixed this for the next update.

All the best,