How to Use Em Dashes (–), En Dashes (–), and Hyphens (-)

(merriam-webster.com)

Comments

mmooss 27 March 2025
Here's an easy, if not always precise way to remember:

* Hyphens connect things, such as compound words: double-decker, cut-and-dried, 212-555-5555.

* EN dashes make a range between things: Boston–San Francisco flight, 10–20 years: both connect not only the endpoints, but define that all the space between is included. (Compare the last usage with the phone number example under Hyphens.)

* EM dashes break things, such as sentences or thoughts: 'What the—!'; A paragraph should express one idea—but rules are made to be broken.

Unicode has the original ASCII hyphen-minus (U+002d), as well as a dedicated hyphen (U+2010), other functional hyphens such as soft and non-breaking hyphens, and a dedicated minus sign (U+2212), and some variations of minus such as subscript, superscript, etc.

There's also the figure dash "‒" (U+2012), essentally a hyphen-minus that's the same width as numbers and used aesthetically for typsetting, afaik. And don't overlook two-em-dashes "⸺" and three-em-dashes "⸻" and horizontal bars "―", the latter used like quotation marks!

A_D_E_P_T 27 March 2025
AFAIK most computer keyboards don't have em dashes. Rather than hit ALT+0151 every time, I've always just strung along two hyphens, like: --

Absolutely proper and correct use of em dashes, en dashes, and hyphens is, to me, the most obvious tell of the LLM writer. In fact, I think that you can use it to date internet writing in general. For it seems to me that real em dashes were uncommon pre-2022.

Starlevel004 27 March 2025
I refuse to care about this. A single dash is all I will ever use. I see no possible reason to use the other two.
sandbach 27 March 2025
Robert Bringhurst¹ prefers the en dash in the context of setting off phrases:

"The em dash is the nineteenth-century standard, still prescribed in many editorial style books, but the em dash is too long for use with the best text faces. Like the oversized space between sentences, it belongs to the padded and corseted aesthetic of Victorian typography.

"Used as a phrase marker – thus – the en dash is set with a normal word space either side."

¹https://archive.org/details/isbn_9780881791327/page/80/mode/...

nayuki 27 March 2025
Additionally:

* Use the minus sign /−/ (U+2212) when formatting numbers, because the default hyphen-minus /-/ (U+2D) just looks wrong: "It is −1 °C vs. -1 °C." Moreover, the correct minus has the same width as plus (− vs. +).

* Rare, but use the figure dash /‒/ (U+2012) or figure space / / (U+2007) if you need a placeholder character that is the same width as a single digit. For example, "Guess the PIN: 1‒34."

bangaladore 27 March 2025
Somewhat off topic, however, I'm thoroughly convinced that there is a very high probability something is AI generated when I see Em dashes. Anyone else noticing this?

ChatGPT for example almost always uses them. I'm sure they are more common in academic writing, but its now super common on boards like Reddit.

rsch 27 March 2025
Today in “typesetting before we had typewriters”: …

At least we have dedicated O/0, and l/1 keys now. But we still see a lot of "straight" quotes instead of “those smart quotes Microsoft Word likes to generate”. And dashes. Did you know there is a dedicated ellipsis character? This is often set with slightly more space between dots than ..., and it by definition never wraps across a line between those dots. You still see (C) instead of ©.

It is one of those things that doesn’t really matter for readability, but although they can’t necessarily put a finger on why, people may still notice that some documents or pages appear to be set with more care for details than others.

(edit: I guess if you don’t have to search on Google what the hell a ‘Microsoft Word’ is, then you’re officially old)

aorth 28 March 2025
I read Butterick's Hyphens and dashes some years ago and it stuck with me. Now I regularly use hyphens, en dashes, and em dashes correctly—I even memorized the Unicode sequences and enter them seamlessly on Linux with Ctrl-Shift-U!

https://practicaltypography.com/hyphens-and-dashes.html

a3w 27 March 2025
> spans pages 128–34.

Who omits the 1 from the second number?! That is aweful!

wraptile 28 March 2025
Em dashes without surrounding spaces is such a ugly relic that triggers me to no end and is objectively wrong. The dash object is part of the sentence — not the two words it's separating.
starfezzy 27 March 2025
We need a blog post documenting the ironic trend of people—themselves NPCs, actual human bots, just now realizing the em dash exists despite seeing it hundreds if not thousands of times before LLMs—flattering themselves by suggesting that anyone who understands the language at above a 5th grade level must be an LLM.
o11c 27 March 2025
One point that is very rarely mentioned is how to place em dashes around quotations marks.

If the em dash indicates an interruption (not a planned pause) of the actual speech, the em dashes go inside the quotes (often just one, before the closing quote).

If the em dash is the narrator interjecting with additional information, the em dashes go outside the quotes.

Besides this, the question of where to put spaces when multiple forms of punctuation are combined can be quite a complex topic.

psychoslave 28 March 2025
If you are looking for alternative to kebab case to write identifier in programming language which reserve the - (U+002d) as an operator, chances are good you can use · (U+00B7 · MIDDLE DOT), that we use in middot case.

So isMorePleasantToRead, is_more_pleasant_to_read or is·more·pleasant·to·read is up to you.

rednafi 27 March 2025
I like em dashes and use “Option Shift -” to summon them on macOS. However, LLMs tend to overuse them and compose absurdly long sentences. While proofreading a draft, I often instruct an LLM to “keep the original tone intact and don’t create overly complex sentences by fusing together simple ones.” That usually gets the job done.

Writers adores their em dashes. While they can sometimes clarify a concept by adding more context, overusing them can hurt readability. I prefer to read Hemingway-esque sentences that just say what they want to say and end sharply. So that’s how I write too—and sometimes the overuse of em dashes directly conflicts with that, making the content sound as if the author is confused about what they wanted to convey.

rappatic 28 March 2025
I use em dashes all the time in writing, but unfortunately ChatGPT and co. use the em dash frequently—and most people use the em dash infrequently, not knowing how to type it on a keyboard—so it's starting to make my writing look AI-generated sometimes. I fear it'll have to go the way of words like "tapestry."

FWIW, you can type an em dash on Mac with shift + option + hyphen.

lloeki 28 March 2025
> The en dash is the least loved of all; it’s not easily rendered by the average keyboard user (one has to select it as a special character, whereas the em dash can be conjured with two hyphens)

on macOS:

- - => - (hyphen/minus)

- ⌥ - => – (en dash)

- ⇧ ⌥ - => — (em dash)

There are so many of these convenient typographical shortcuts that a long time ago I made Apple layouts for Windows and Linux.

And many are mnemonic too, like:

- of course ÷ (division) is ⌥ / (slash, which is poor man's division)

- of course ¿ is ⇧ ⌥ / because ⇧ / is ? so logically ⇧ ⌥ / is ⌥ ? which is ¿

- guess what ≤ ≥ ± ≠ are

- ¬ (logical negation) is ⌥ L because it's a L sideways

- £ (pound) is ⌥ 3 because ⇧ 3 is # (octothorpe, abused as sharp or pound - the other kind)

ludicity 27 March 2025
I use em-dashes correctly because a reader emailed me, and I was dreadfully embarrassed. You can actually see them become correct in my writing after the "I will pile drive you" AI thing.

It never occurred to me that doing this correctly might make people think I use LLMs in my writing.

Edit: I'm sure the many typos protect me from that, actually.

culi 27 March 2025
> If you want to be official about things, use the en dash to replace a hyphen in compound adjectives when at least one of the elements is a two-word compound.

How is a literal dictionary making fun of people who "wanna be official about things" lol. That's the entire basis for dictionaries themselves

Stratoscope 28 March 2025
I had one minor quarrel with this article: The use of spaces (of any kind) before and after the em dash or any dashes.

Personally, I am fond of using either a hair space or a thin space before and after the em dash. Not a full space!

To explore the various options, I wrote a little program to print the various combinations of dashes and spaces. I think what looks best depends a lot on what typeface you're using. But let's see how they look in the Verdana font used here. You should be able to paste this into your favorite word processor to see it in other fonts:

ASCII 0x2D hyphen-with no spaces

ASCII 0x2D hyphen - with U+200A hair spaces

ASCII 0x2D hyphen - with U+2009 thin spaces

ASCII 0x2D hyphen - with 0x20 full spaces

Unicode U+2010 hyphen‐with no spaces

Unicode U+2010 hyphen ‐ with U+200A hair spaces

Unicode U+2010 hyphen ‐ with U+2009 thin spaces

Unicode U+2010 hyphen ‐ with 0x20 full spaces

Unicode U+2013 en dash–with no spaces

Unicode U+2013 en dash – with U+200A hair spaces

Unicode U+2013 en dash – with U+2009 thin spaces

Unicode U+2013 en dash – with 0x20 full spaces

Unicode U+2014 em dash—with no spaces

Unicode U+2014 em dash — with U+200A hair spaces

Unicode U+2014 em dash — with U+2009 thin spaces

Unicode U+2014 em dash — with 0x20 full spaces

It looks like HN is really mangling this. Hair spaces are rendered wider than thin spaces?

If anyone wants to experiment, here is the Python code:

  from dataclasses import dataclass
  
  @dataclass
  class Character:
      char: str
      name: str
  
  DASHES = [
      Character( "-", "ASCII 0x2D hyphen" ),
      Character( "\u2010", "Unicode U+2010 hyphen" ),
      Character( "\u2013", "Unicode U+2013 en dash" ),
      Character( "\u2014", "Unicode U+2014 em dash" ),
  ]
  
  SPACES = [
      Character( "", "no" ),
      Character( "\u200A", "U+200A hair" ),
      Character( "\u2009", "U+2009 thin" ),
      Character( "\x20", "0x20 full" ),
  
  ]
  
  for dash in DASHES:
      for space in SPACES:
          print( f"{dash.name}{space.char}{dash.char}{space.char}with {space.name} spaces\n" )
the__alchemist 27 March 2025
If you're on Windows, install PowerToys, and check out the KeyBoard manager. It lets you set up shortcuts. I overload my keys using right alt for greek letters. (science stuff). Could do it for these dashes as well.
perihelions 27 March 2025
Dupe—https://news.ycombinator.com/item?id=43447819 ("How to use an en-dash and em-dash correctly?", 43 comments)
sethaurus 28 March 2025
For anyone finding em-dashes too small, behold the majesty of U+2E3B, the triple-em dash: ⸻
jeffhuys 28 March 2025
I used a lot of these, but actually stopped due to my text sometimes being called out as chatgpt output. I also thorw in the occasional spelling mistake. If a piece of text on reddit/x has "–" (not "-") in it, you can be 95% sure it's an LLM.
dskhatri 28 March 2025
For Windows users, PowerToys has a Quick Accent tool, that lets you type in an em dash or figure dash by holding down the hyphen (-) and then toggling the space bar. Interestingly, the en dash is not available.
mvdtnz 27 March 2025
I genuinely do not care one tiny bit about doing this right. At all. I will use the minus key for all of these like I always have and nothing bad will ever come of it. Find a better way to channel your limited energy.
pwdisswordfishz 28 March 2025

        0          0  000048   48             H      LATIN CAPITAL LETTER H
        1          1  00006F   6F             o      LATIN SMALL LETTER O
        2          2  000077   77             w      LATIN SMALL LETTER W
        3          3  000020   20                     SPACE
        4          4  000074   74             t      LATIN SMALL LETTER T
        5          5  00006F   6F             o      LATIN SMALL LETTER O
        6          6  000020   20                     SPACE
        7          7  000055   55             U      LATIN CAPITAL LETTER U
        8          8  000073   73             s      LATIN SMALL LETTER S
        9          9  000065   65             e      LATIN SMALL LETTER E
       10         10  000020   20                     SPACE
       11         11  000045   45             E      LATIN CAPITAL LETTER E
       12         12  00006D   6D             m      LATIN SMALL LETTER M
       13         13  000020   20                     SPACE
       14         14  000044   44             D      LATIN CAPITAL LETTER D
       15         15  000061   61             a      LATIN SMALL LETTER A
       16         16  000073   73             s      LATIN SMALL LETTER S
       17         17  000068   68             h      LATIN SMALL LETTER H
       18         18  000065   65             e      LATIN SMALL LETTER E
       19         19  000073   73             s      LATIN SMALL LETTER S
       20         20  000020   20                     SPACE
       21         21  000028   28             (      LEFT PARENTHESIS
       22         22  002013   E2 80 93       –      EN DASH
       23         25  000029   29             )      RIGHT PARENTHESIS
Ironic.
TomasEkeli 27 March 2025
I'm just gonna say it: this does not matter. Just use whatever you want. If you're afraid that someone is going to think less of you for it: the people who matter won't.
colanderman 27 March 2025
Note also that the "hyphen" on your keyboard is actually a "hyphen-minus". Unicode provides separate characters for hyphen (‐) and minus (−).
8bithero 28 March 2025
The only problem with correctly using the Em or En dash is that people will automatically assume the text was written by an LLM -_-
renatoboo 28 March 2025
My therapist: "homoglyph and punycode attacks are made up term by computer people to justify their paycheck".

Also Merriam-Webster:

low_tech_punk 28 March 2025
The problem with en and em dash is that

1) they are too hard to type.

2) using them without surrounding thin space or hairspace breaks the horizontal rhythm and draws unnecessary attention to the punctuation; but thin and hair spaces are equally hard to type

3) Most people write markdown with mono space fonts, making these dashes and spaces indistinguishable.

cporios 27 March 2025
if anyone's wondering, the post title is wrong -- both of the first two characters are en dashes (U+2013).
Imagenuity 28 March 2025
I could never remember which was the longer dash. Now it's easy, because the en dash – is the approximate length of a capital N, and a em dash — is the approximate length of a capital M. Today I Learned!
ubermonkey 28 March 2025
I use the hyphen key, and hit it once for a hyphen or for a minus sign, and I use it twice for an em dash.

At some point, many things I type into started replacing "--" with an em dash, but my precambrian computer typing muscle memory is fine with "hyphenhyphen" meaning "em dash".

I will admit right here in front of god & everybody that I'm pretty sure I've never typed an en dash at all.

phkahler 27 March 2025
Let's not forget the minus symbol at U2212. I was making a Simulink like diagram editor and the dashes just didn't look good. 2212 worked nicely.
graiz 28 March 2025
Hyphens - I'm normal, breaking up thoughts. En / Em - I'm an AI or I'm using AP style guide to write articles.
perilunar 28 March 2025
The eternal debate between minimalism and the ornate.

There's room for both: when presentation matters I use them; when it doesn't, I don't.

kazinator 28 March 2025
Use three repetitions of the ASCII minus for em-dash, two for en-dash.

Do not use the Unicode characters, or people will think you are an AI bot.

pahbloo 28 March 2025
Fun fact: In Portuguese, the em dash is often used to introduce direct discourse, much like double quotes are used in English, but only when the direct discourse opens the paragraph. So instead of:

"Hello," said John, "how are you today?"

You'd see:

— Hello — said John — how are you today?

irrational 28 March 2025
I’m all about spelling things correctly. To, too, two or their, there, they’re matter. But using the correct dash/hyphen is way too pedantic to me. In isolation, I can’t tell the difference between them.
quitit 28 March 2025
Invoking these from the mac keyboard:

    Hyphen for hyphen

    Option + Hyphen for n-dash

    Shift + Option + Hyphen for m-dash
While I'm here, Shift+Return for a soft return (i.e. not a new paragraph.)
the-mitr 28 March 2025
In LaTeX simple to remember hyphen (-), an en-dash (--), and an em-dash (---).
dankwizard 27 March 2025
a human has never used an em dash in the wild
anon1094 28 March 2025
I've been writing for years and never used en or em dashes before LLMs.
apparent 27 March 2025
This shows both the en dashes and hyphens for page ranges. Is one preferred?
babypuncher 27 March 2025
Or, you can avoid an awful lot of headache by just sticking to hyphens.
NegativeLatency 28 March 2025
My personal rule is simple I just use - for everything
account42 28 March 2025
Thanks, but I'll keep using good old U+002D. Widening a glyph is a font/typesetting concern and doesn't make it a different character.
porridgeraisin 28 March 2025
I simply do not care. I will just use - (the one next to zero on the keyboard) everywhere. There are a grand total of zero situations where using one in place of the other hampers information reconstruction or reading comprehension (although the latter is subjective, I suppose)
zahlman 27 March 2025

  $ python -m this | grep '--' -
bilater 28 March 2025
I'm sick of em dashes cause somehow that's become the tell its AI generated text.
iLemming 31 March 2025
Simple reminder for those who don't know this: the easiest way to insert em-dash in Vim-supported editor (Evil-mode in Emacs) is to use digraphs feature. In insert mode you'd press Control+k, then type a digraph sequence. For em-dash is `C-k -M` — you literally type: "Control+K minus capital M".

For vanilla Emacs (without evil-mode), you can always do — "C-x 8 RET EM DASH" or "C-x 8 RET 2014". That's what "M-x describe-char" would tell you.

numbers 27 March 2025
On macOS you can enter these by doing the following:

* em dash: ⌥ + ⇧ + - (alt + shift + hyphen)

* en dash: ⌥ + - (alt + hyphen)

lispybanana 28 March 2025
Super- or subhuman intelligence can be identified in the pre-Mason–Dixon line era.
darajava 28 March 2025
Most people don't use the em dash. It's too hard to type and looks too similar to a hyphen.

As a result, a hallmark of GPT-generated text is its (over)using of the em dash--I have stopped using it for this reason an just use two hyphens now instead.

MetaWhirledPeas 28 March 2025
If it's important in English, it should have a key on the keyboard. It follows that if it doesn't have a key, it's not important.
appleorchard46 27 March 2025
Hot take - differentiating between these at all is dumb. There is virtually no situation when using one instead of another improves clarity.
velcrovan 28 March 2025
Here's my AutoHotkey script for making my favorite punctuation hotkeys on my Windows laptops the same as my Mac:

    #-::Send("–")     ; Win+- = en-dash
    #+-::Send("—")    ; Win+SHIFT+- = em-dash
    #]::Send("‘")
    #+]::Send("’")
    #[::Send("“")
    #+[::Send("”")
    #;::Send("…")
    #+>::Send("→")
    #+<::Send("←")
    #8::Send("•")
    #+x::Send("×")      ; multiplication symbol
edit...downvoted, why? weird
kayo_20211030 28 March 2025
It might not be completely true that nobody cares, but I feel that almost nobody cares.

> comma, a colon, or parenthesis

They're all different. There is a difference between clear writing and typesetting. Why mix them up? A narcissism of small differences?

867-5309 27 March 2025
minus (US negative) enters the chat..
fareesh 28 March 2025
emdashes are on the rise thanks to people copying and pasting chatgpt
dwighttk 28 March 2025
“So, you want to be accused of being an AI…”