Remember when I talked about using em dash vs. ellipses with dialogue? Here’s another quick em dash tip regarding surrounding punctuation, which can be found in CMOS 6.87.
A question mark or exclamation point can precede an em dash. A comma, colon, and semicolon cannot.
Example (from CMOS):
Only if—heaven forbid!—you lose your passport should you call home.
In this case, the exclamation point is grammatically correct. BUT consider:
Only if—heaven forbid,—you lose your passport should you call home.
Now, obviously in this case a comma wouldn’t even make sense anyway, but let’s just say it did. You do not use a comma, semicolon, or colon before an em dash. In rare cases a period is acceptable, but since CMOS didn’t give me an example and I can’t recall a time I’ve ever seen one, we’re both out of luck. Leave a comment if you can think of a good example of a period preceding an em dash! Maybe for a quotation?
Also, I had a few questions on the last post about em dashes and where it is on the keyboard. Unfortunately, for some reason there isn’t a key for the em dash. What I did is make a keyboard shortcut so it’s always handy. Hope that helps!
For more on this topic: