Em-dashes — when used to separate parenthetical clauses — are often used without any spacing, but I rather prefer them with a hair (or perhaps thin) space on either side.

The ‘obvious’ way to do this is probably to write A\,---\,B rather than A---B (no spaces) or A --- B (unfortunately large spaces). However, this does not allow line breaks around the dash, should they be needed.

The best solution I've been able to come up with is this:

\newcommand{\mdash}
           {\discretionary{}{}{\kern 0.1em}---\discretionary{}{}{\kern 0.1em}}

It looks like that works, but:

  • Does this look like good practice?
  • Is there a standard way to do this?
  • Is there any way to, say, call this command ---- rather than \mdash{}?
  • 2
    You can call it \frenchdash since it's the typographical norm in French… – Bernard Jan 29 at 22:26
  • @Bernard fr.wikipedia.org/wiki/Tiret appears to suggest a full-width space around an em-dash, as well as a prohibition on line breaks… – tjollans Jan 29 at 22:46
  • Your own solution is OK. If you like the result, do it. Or, if you always use a particular font, you might edit that font (in FontForge) so that its ordinary emdash looks like you want, with space on either side. That's what I do. – user139954 Jan 29 at 22:47
  • 4
    @tjollans: More precisely: a normal space before an opening emdash and a thin unbreakable space after, and the symmetric layout for a closing emdash (cf Jacques André, Petites leçons de typographie, p.32 — I suppose you read French :o) – Bernard Jan 29 at 23:08
  • 2
    take a look at how ltugboat.cls defines \Dash. we've been using it for years, and have had no line-breaking problems (although i seem to remember that we chose to allow breaks only after the dash). – barbara beeton Jan 30 at 15:24
up vote 3 down vote accepted

tugboat has been setting em-dashes with thin spaces for years. (the editors are not fond of the dash nearly crashing into whatever is on either side.)

here is a somewhat simplified version of the tugboat definitions. Observe that it wipes out preceding and following spaces so results are uniform.

\DeclareRobustCommand{\thinskip}{\hskip 0.16667em\relax}
\def\emdash{---}
\def\d@sh#1#2{\unskip#1\thinskip#2\thinskip\ignorespaces}
\def\Dash{\d@sh\nobreak\emdash}
\def\Ldash{\d@sh\empty{\hbox{\emdash}\nobreak}}
\def\Rdash{\d@sh\nobreak\emdash}

a line break is permissible on either side of the basic \Dash. (the use of \thinskip with \hskip rather than \thinspace is what allows this.)

if a line break should be permitted on only the right or left of the dash, \Rdash and \Ldash are provided to accommodate that.

  • Thanks, though it looks like \Dash and \Rdash are identical in this definition. That should be easily fixed by changing \Dash to \def\Dash{\d@sh\empty\emdash} – tjollans Feb 5 at 9:30
  • it's a fact that in tugboat \Dash and \Rdash are identical. ordinarily (for tugboat, anyhow) it's not really desirable to have a "following" dash break to a new line; the exception is when the first of paired em-dashes encloses a parenthetical comment, and then a break is allowed intentionally (hence the \Ldash). – barbara beeton Feb 5 at 15:02

Your Answer

 

By clicking "Post Your Answer", you acknowledge that you have read our updated terms of service, privacy policy and cookie policy, and that your continued use of the website is subject to these policies.

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