Thanks Dave. I understand what you're saying, but this book is using UK standards (For em dashes, the UK English prefers the shorter en dash – with a space either side – for the same purpose.)
Many languages have their own rules for whether or not a given type of dash is surrounded by spaces. Heck, there are style guides in North American English that require spaces around some dashes - AP style guide is one example. Not all style guides specify hair spaces, either. Given that I work with lots of languages that have a single central authority in charge of matters of style, or of typography, I can't help but notice that there isn't any one authority in charge of such matters in the States, or in the English language at all. Maybe here, in this particular community the central authority for English Langage typography is Bringhurst?
Anyhow, Dave's suggestion was just to set your type without worrying about exactly what's going to break, then to make a GREP style to apply the No Break property to the glyphs you needed to stick together. This is a good strategy, in my opinion. But it requires that you already have all the right glyphs in your story, which you currently don't. His regex is set to find the hair-space-followed-by-endash. But if you really want to do a Find/Change operation where you change all em dashes to a sequence of:
- nonbreaking space
- en dash
- normal space
I'd use a GREP query like this:
