Hyphen-minus

The hyphen-minus, is a character used in digital documents and computing to represent a hyphen , a minus sign , or an en dash . Typewriter keyboards and early computer encodings had only one character that looked like this, so its design had to be a compromise between the different typographical appearances. The proper name is rarely used: the character is referred to as a hyphen, a minus, or a dash according to the context where it is being used.

Description

– + −
hyphen-minus, plus, minus signs compared

The use of a single character for both hyphen and minus was a compromise made in the early days of fixed-width (monospaced font) typewriters and computer displays. Currently, however, the Unicode Standard specifies distinct characters for dashes, the minus sign, and various types of hyphen including the Unicode hyphen with code point U+2010. Usage of the hyphen-minus persists in many contexts, however, as it is well known, easy to enter on keyboards, and in the same location in all common character sets. According to the Unicode Standard, the U+2010 hyphen is “preferred” over the hyphen-minus, though the Standard itself uses the hyphen-minus as its hyphen character.

In proportional fonts the hyphen-minus is usually the size of a Unicode hyphen, and smaller than a minus sign (which is usually the same width as a plus sign). This results in an unattractive appearance when mixed with plus signs. Also many word processors will allow a word wrap after a hyphen-minus, unlike the minus sign proper which is treated as a mathematical symbol no different (typographically) from any unspaced number or letter.

Uses

Typing

This character is often typed when a hyphen, a minus sign or an en dash (as in “the Boston–London flight”) is wanted. Based on old typewriter conventions, it is common to use a pair  to represent an em dash , and some word processors automatically convert this pair to an em dash. The character can also be typed multiple times to simulate a horizontal line though, in most fonts, repeated typing of the underscore  _ will produce a smoother line. Alternating the hyphen-minus with spaces produces a “dashed” line to indicate where paper is to be cut.

Programming languages

Most programming languages use the hyphen-minus for denoting subtraction and negation. It is almost never used to indicate a range, due to ambiguity with subtraction. Generally other characters, such as the Unicode U+2212 − MINUS SIGN are not recognized.

In some programming languages -- marks beginning of a comment. Likewise, it can occasionally start the signature block. YAML uses a triple dash --- to end a section.

Command line

The character is often used when specifying command-line options, a convention mostly started by Unix. Options might be -x or -y, a user can specify both by using -xy. Various implementations of the getopt function allow two hyphen-minuses to specify “long” option names as --description, which are much easier to read while being much harder to memorize and write (recent software does not care about the number of hyphen-minuses, and either doesn’t allow combinations of single-letter options or require the user to rearrange them so they don’t match a long option). A double hyphen-minus by itself (followed by a space) indicates that there are no more options, which is useful when one needs to specify a filename that starts with a hyphen-minus. An option of just a hyphen-minus (followed by a space) may be recognized in lieu of a filename and indicates that stdin is to be read.

Encoding

The glyph has a code point in Unicode as U+002D – HYPHEN-MINUS; it is also in ASCII with the same value.