I am typing a document in French and I need to automatically get a fine space (unbreakable) after opening emdash and before closing dash. ---\, blahblah\, --- is not very good...

How can I do that.

Best, Fred

  • 3
    Crosspost – Johannes_B Nov 16 '15 at 11:42
  • 1
    Depending on what blahblah semantically is supposed to mean I'd define a new macro or environment \newcommand\thought[1]{---\,#1\,---} and then use \thought{blahblah} – cgnieder Nov 16 '15 at 11:47
  • 1
    BTW: the example in your post has thin spaces in addition to normal ones… – cgnieder Nov 16 '15 at 11:59
  • 1
    Doesn't frenchb ensure this automatically? – Bernard Nov 16 '15 at 12:53
  • You can adapt the code from here: tex.stackexchange.com/questions/22419/… – Ulrike Fischer Nov 16 '15 at 16:19

You can use LaTeX unbreakable space ~:


This will create a space and force the TeX engine to link the part before and after the tilde to be on the same line of text produced.

You can create a command to not type them:


For a thin space you can use \, without space around:


With newcommand:

| improve this answer | |
  • Thanks.But ~ generates a normal space, not a thin one... – Fred_O Nov 16 '15 at 11:35
  • @Fred_O see my edit for a thin space. – Romain Picot Nov 16 '15 at 11:41
  • 2
    isn't it usual to use an en-dash (--) rather than a hyphen between the spaces? – barbara beeton Nov 16 '15 at 14:01

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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