groff_char(7)

๐ŸŽ€ NAME ๐ŸŽ€

groff_char(7) โ€” GNU roff special character and glyph repertoire. (Miscellaneous Information Manual, bestie โ€” manual name folded in right here at the top, no cap.) ๐Ÿฆ‹

โœจ DESCRIPTION โœจ

Okay so the GNU roff typesetting system has a large glyph repertoire that is suitable for production of varied literary, professional, technical, and mathematical documents. groff works with characters; an output device renders glyphs. And hereโ€™s the vibe check: groffโ€™s input character set is restricted to that defined by ISO Latin-1 (ISO 8859-1). For ease of document maintenance in UTF-8 environments, it is advisable to use only Unicode basic Latin code points; these correspond to ISO 646:1991 IRV (US-ASCII), a subset of all of the foregoing which has only 94 visible, printable code points. In groff, these are termed ordinary characters. Often, many more are desired in output. ๐Ÿ’…

AT&T troff in the 1970s faced a similar problem: the available typesetterโ€™s glyph repertoire differed from that of the computers that controlled it. troffโ€™s solution was a form of escape sequence known as a special character to access several dozen additional glyphs available in the fonts prepared for mounting in the phototypesetter. These glyphs were mapped onto a two-character name space for a degree of mnemonic convenience; for example, the escape sequence \(aa encoded an acute accent and \(sc a section sign.

groff has lifted historical roff limitations on special character name lengths, but recognizes and retains compatibility with the historical names. groff expands the lexicon of glyphs available by name and permits users to define their own special character escape sequences with the char request. Special character names are groff identifiers; see section โ€œIdentifiersโ€ in groff(7). Our discussion uses the terms โ€œglyph nameโ€ and โ€œspecial character nameโ€ interchangeably; we assume no character translations or redefinitions.

This document lists all of the glyph names predefined by groffโ€™s font description files and presents the systematic notation by which it enables access to arbitrary Unicode code points and construction of composite glyphs. Glyphs listed may be unavailable, or may vary in appearance, depending on the output device and font chosen when the page was formatted. This page was rendered for device utf8 primarily using font R.

A few escape sequences that are not groff special characters also produce glyphs; these exist for syntactical or historical reasons. These raw escapes are translated on input, respectively, like this:

\'  -> \[aa]
\`  -> \[ga]
\-  -> \[-]
\_  -> \[ul]

Others include \\, \. (backslash-dot), and \e; see groff(7). A small number of special characters represent glyphs that are not encoded in Unicode; examples include the baseline rule \[ru] and the Bell System logo \[bs]. ๐Ÿ”ฅ

In groff, test support for any character (ordinary or special) with the conditional expression operator c. Like, literally:

.ie c \[bs] \{Welcome to the \[bs] Bell System;
did you get the Wehrmacht helmet or the Death Star?\}
.el No Bell System logo.
Careful, bestie: while groff accepts eight-bit encoded input, not all such code points are valid as input. Character codes 0, 11, 13โ€“31, and 128โ€“159 are invalid. (This is all C0 and C1 controls except for SOH through LF [Control+A to Control+J], and FF [Control+L].) Some of these code points are used by groff for internal purposes, which is one reason it does not support UTF-8 natively. ๐Ÿ’€

๐ŸŒธ Fundamental character set ๐ŸŒธ

The ordinary characters catalogued above, plus the space, tab, newline, and leader (Control+A), form the fundamental character set for groff input; anything in the language, even over one million code points in Unicode, can be expressed using it. Code points in the range 33โ€“126 comprise a common set of printable glyphs in all of the aforementioned ISO character encoding standards. It is this character set and (with some noteworthy exceptions) the corresponding glyph repertoire for which AT&T troff was implemented.

All of the following characters map to glyphs as you would expect:

! # $ % & ( ) * + , . / 0 1 2 3 4 5 6 7 8 9 : ; < = > ? @
A B C D E F G H I J K L M N O P Q R S T U V W X Y Z [ ] _
a b c d e f g h i j k l m n o p q r s t u v w x y z { | }

The remaining ordinary characters surprise computing professionals and others intimately familiar with the ISO character encodings. The developers of AT&T troff chose mappings for them that would be useful for typesetting technical literature in a broad range of scientific disciplines: Bell Labs used the system to prepare AT&Tโ€™s patent filings with the U.S. government. Further, the prevailing character encoding standard in the 1970s, USAS X3.4-1968 (ASCII), deliberately supported semantic ambiguity at some code points, and outright substitution at several others, to suit the localization demands of various national standards bodies. ๐Ÿงš

The list below is the row-by-row version of the table: it presents the seven exceptional code points with their typical keycap engravings, their glyph mappings and semantics in roff systems, and the escape sequences producing the Unicode basic Latin character they replace. The first, the neutral double quote, is a partial exception because it does represent itself, but since the roff language also uses it to quote macro arguments, groff supports a special character escape sequence as an alternative form so that the glyph can be easily included in macro arguments without requiring the user to master the quoting rules that AT&T troff required in that context. (Some requests, like ds, also treat " non-literally at the beginning of an argument.) Furthermore, not all of the special character escape sequences are portable to AT&T troff and all of its descendants; these groff extensions are presented using its special character form \[], whereas portable special character escape sequences are shown in the traditional \( form. \- and \e are portable to all known troffs. \e means โ€œthe glyph of the current escape characterโ€; it therefore can produce unexpected output if the ec request is used. On devices with a limited glyph repertoire, glyphs in the โ€œkeycapโ€ and โ€œappearanceโ€ columns on the same row of the lookup may look identical; except for the neutral double quote, this will not be the case on more-capable devices. Review your document using as many different output devices as possible. ๐Ÿซถ

  • keycap " โ€” appearance and meaning: " neutral double quote; special character and meaning: \[dq] neutral double quote.
  • keycap ' โ€” appearance and meaning: โ€™ closing single quote; special character and meaning: \[aq] neutral apostrophe.
  • keycap - โ€” appearance and meaning: โ€ hyphen; special character and meaning: \- or \[-] minus sign/Unix dash.
  • keycap \ โ€” appearance and meaning: (escape character); special character and meaning: \e or \[rs] reverse solidus.
  • keycap ^ โ€” appearance and meaning: ห† modifier circumflex; special character and meaning: \[ha] circumflex/caret/โ€œhatโ€.
  • keycap ` โ€” appearance and meaning: โ€˜ opening single quote; special character and meaning: \(ga grave accent.
  • keycap ~ โ€” appearance and meaning: หœ modifier tilde; special character and meaning: \[ti] tilde.

The hyphen-minus is a particularly unfortunate case of overloading. Its awkward name in ISO 8859 and later standards reflects the many distinguishable purposes to which it had already been put by the 1980s, including a hyphen, a minus sign, and (alone or in repetition) dashes of varying widths. For best results in roff systems, use the โ€œ-โ€ character in input outside an escape sequence only to mean a hyphen, as in the phrase โ€œlong-termโ€. For a minus sign in running text or a Unix file name or command-line option dash, use \- (or \[-] in groff if you find it helps the clarity of the source document). (Another minus sign, for use in mathematical expressions, is available as \(mi.) AT&T troff supported em-dashes as \(em, as does groff. ๐ŸŒˆ

The special character escape sequence for the apostrophe as a neutral single quote is typically needed only in technical content โ€” like, you are not gonna type canโ€™t and Anneโ€™s with an escape every single time, bestie. โœจ When you type words like โ€œcanโ€™tโ€ and โ€œAnneโ€™sโ€ in a natural way, itโ€™ll render correctly, because in ordinary prose an apostrophe gets typeset either as a closing single quotation mark or as a neutral single quote, depending on what the output device can actually do. ๐Ÿ’…

By contrast, special character escape sequences should be used for quotation marks unless portability to limited or historical troff implementations is necessary. On those systems, the input convention is to pair the grave accent with the apostrophe for single quotes, and to double both characters for double quotes. AT&T troff defined no special characters for quotation marks or the apostrophe. Repeated single quotes (โ€˜โ€˜thusโ€™โ€™) will be visually distinguishable from double quotes (โ€œthusโ€) on terminal devices, and perhaps on others (depending on the font selected and its kerning configuration). ๐Ÿ‘‘

Hereโ€™s the input-convention vibe check:

AT&T troff input          recommended groff input
A Winter's Tale           A Winter's Tale
`U.K. outer quotes'       \[oq]U.K. outer quotes\[cq]
`U.K. ``inner'' quotes'   \[oq]U.K. \[lq]inner\[rq] quotes\[cq]
``U.S. outer quotes''     \[lq]U.S. outer quotes\[rq]
``U.S. `inner' quotes''   \[lq]U.S. \[oq]inner\[cq] quotes\[rq]

If you frequently require quotation marks in your document, see if the macro package youโ€™re using supplies strings or macros to facilitate quotation, or define them yourself (except in man pages). ๐Ÿซถ

Using Unicode basic Latin characters to compose boxes and lines is ill-advised. roff systems have dedicated features for drawing horizontal and vertical lines, the \l, \L, and \D escape sequences. Also see subsection โ€œRules and linesโ€ below. Preprocessors like tbl(1) and pic(1) draw boxes and will produce the best possible output for the device, falling back to basic Latin glyphs only when necessary. ๐Ÿ“ฆ

๐ŸŒˆ Eight-bit encodings and Latin-1 supplement ๐ŸŒˆ

Okay so ISO 646 is a seven-bit code encoding 128 code points; eight-bit codes are literally twice the size. ๐Ÿ˜ญ ISO Latin-1 (8859-1) allocated the additional space to what Unicode calls โ€œC1 controlsโ€ (control characters) and the โ€œLatin-1 supplementโ€. The C1 controls are neither printable nor usable as GNU troff input. Periodt.

GNU troff handles two Latin-1 supplement characters specially, and never produces them as output. ๐Ÿšจ

  • NBSP โ€” encodes a no-break space; it maps to \~, the adjustable non-breaking space escape sequence.
  • SHY โ€” encodes a soft hyphen; it maps to \%, the hyphenation control escape sequence.

The remaining characters in the Latin-1 supplement represent themselves. Although they can be specified directly with the keyboard on systems configured to use Latin-1 as the character encoding, it is more portable, both to other roff systems and to UTF-8 environments, to use their special character escape sequences, shown below. The glyph descriptions we use are non-standard in some cases, for brevity. ๐ŸŽ€

Hereโ€™s the full Latin-1 supplement lineup โ€” every character and its escape, no skips:

  • ยก \[r!] โ€” inverted exclamation mark
  • ยข \[ct] โ€” cent sign
  • ยฃ \[Po] โ€” pound sign
  • ยค \[Cs] โ€” currency sign
  • ยฅ \[Ye] โ€” yen sign
  • ยฆ \[bb] โ€” broken bar
  • ยง \[sc] โ€” section sign
  • ยจ \[ad] โ€” dieresis accent
  • ยฉ \[co] โ€” copyright sign
  • ยช \[Of] โ€” feminine ordinal indicator
  • ยซ \[Fo] โ€” left double chevron
  • ยฌ \[no] โ€” logical not
  • ยฎ \[rg] โ€” registered sign
  • ยฏ \[a-] โ€” macron accent
  • ยฐ \[de] โ€” degree sign
  • ยฑ \[+-] โ€” plus-minus
  • ยฒ \[S2] โ€” superscript two
  • ยณ \[S3] โ€” superscript three
  • ยด \[aa] โ€” acute accent
  • ยต \[mc] โ€” micro sign
  • ยถ \[ps] โ€” pilcrow sign
  • ยท \[pc] โ€” centered period
  • ยธ \[ac] โ€” cedilla accent
  • ยน \[S1] โ€” superscript one
  • ยบ \[Om] โ€” masculine ordinal indicator
  • ยป \[Fc] โ€” right double chevron
  • ยผ \[14] โ€” one quarter symbol
  • ยฝ \[12] โ€” one half symbol
  • ยพ \[34] โ€” three quarters symbol
  • ยฟ \[r?] โ€” inverted question mark
  • ร€ \[A]` โ€” A grave
  • ร \['A] โ€” A acute
  • ร‚ \[^A] โ€” A circumflex
  • รƒ \[~A] โ€” A tilde
  • ร„ \[:A] โ€” A dieresis
  • ร… \[oA] โ€” A ring
  • ร† \[AE] โ€” AE ligature
  • ร‡ \[,C] โ€” C cedilla
  • รˆ \[E]` โ€” E grave
  • ร‰ \['E] โ€” E acute
  • รŠ \[^E] โ€” E circumflex
  • ร‹ \[:E] โ€” E dieresis
  • รŒ \[I]` โ€” I grave
  • ร \['I] โ€” I acute
  • รŽ \[^I] โ€” I circumflex
  • ร \[:I] โ€” I dieresis
  • ร \[-D] โ€” uppercase eth
  • ร‘ \[~N] โ€” N tilde
  • ร’ \[O]` โ€” O grave
  • ร“ \['O] โ€” O acute
  • ร” \[^O] โ€” O circumflex
  • ร• \[~O] โ€” O tilde
  • ร– \[:O] โ€” O dieresis
  • ร— \[mu] โ€” multiplication sign
  • ร˜ \[/O] โ€” O slash
  • ร™ \[U]` โ€” U grave
  • รš \['U] โ€” U acute
  • ร› \[^U] โ€” U circumflex
  • รœ \[:U] โ€” U dieresis
  • ร \['Y] โ€” Y acute
  • รž \[TP] โ€” uppercase thorn
  • รŸ \[ss] โ€” lowercase sharp s
  • ร  \[a]` โ€” a grave
  • รก \['a] โ€” a acute
  • รข \[^a] โ€” a circumflex
  • รฃ \[~a] โ€” a tilde
  • รค \[:a] โ€” a dieresis
  • รฅ \[oa] โ€” a ring
  • รฆ \[ae] โ€” ae ligature
  • รง \[,c] โ€” c cedilla
  • รจ \[e]` โ€” e grave
  • รฉ \['e] โ€” e acute
  • รช \[^e] โ€” e circumflex
  • รซ \[:e] โ€” e dieresis
  • รฌ \[i]` โ€” i grave
  • รญ \['i] โ€” e acute
  • รฎ \[^i] โ€” i circumflex
  • รฏ \[:i] โ€” i dieresis
  • รฐ \[Sd] โ€” lowercase eth
  • รฑ \[~n] โ€” n tilde
  • รฒ \[o]` โ€” o grave
  • รณ \['o] โ€” o acute
  • รด \[^o] โ€” o circumflex
  • รต \[~o] โ€” o tilde
  • รถ \[:o] โ€” o dieresis
  • รท \[di] โ€” division sign
  • รธ \[/o] โ€” o slash
  • รน \[u]` โ€” u grave
  • รบ \['u] โ€” u acute
  • รป \[^u] โ€” u circumflex
  • รผ \[:u] โ€” u dieresis
  • รฝ \['y] โ€” y acute
  • รพ \[Tp] โ€” lowercase thorn
  • รฟ \[:y] โ€” y dieresis

โœจ Special character escape forms โœจ

Glyphs that lack a character code in the basic Latin repertoire to directly represent them are entered by one of several special character escape forms. Such glyphs can be simple or composite, and accessed either by name or numerically by code point. Code points and combining properties are determined by character encoding standards, whereas glyph names as used here originated in AT&T troff special character escape sequences. Predefined glyph names use only characters in the basic Latin repertoire. ๐Ÿงš

  • \(gl โ€” is a special character escape sequence for the glyph with the two-character name gl. This is the original syntax form supported by AT&T troff. The acute accent, \(aa, is an example.
  • \C'glyph-name' โ€” is a special character escape sequence for glyph-name, which can be of arbitrary length. The delimiter, shown here as a neutral apostrophe, can be any character not occurring in glyph-name. This syntax form was introduced in later versions of AT&T device-independent troff. The foregoing acute accent example can be expressed as \C'aa'.
  • \[glyph-name] โ€” is a special character escape sequence for glyph-name, which can be of arbitrary length but must not contain a closing square bracket โ€œ]โ€. (No glyph names predefined by groff employ โ€œ]โ€.) The foregoing acute accent example can be expressed in in GNU troff as \[aa].

\C'c' and \[c] are not synonyms for the ordinary character โ€œcโ€, but request the special character named โ€œ\cโ€. For example, โ€œ\[a]โ€ is not โ€œaโ€, but rather a special character with the internal glyph name (used in font description files and diagnostic messages) \a, which is typically undefined. The only such glyph name groff predefines is the minus sign, which can therefore be accessed as \C'-' or \[-]. ๐Ÿ’€

  • \[base-char composite-1 composite-2 ... composite-n] โ€” is a composite glyph. Glyphs like a lowercase โ€œeโ€ with an acute accent, as in the word โ€œcafรฉโ€, can be expressed as \[e aa].

Normally, the formatter advances the drawing position after setting a special character, as it does for ordinary ones. groffโ€™s composite request designates a special character as combining, suppressing advancement. ๐Ÿฆ‹

You can obtain a report of mappings defined by the composite request on the standard error stream with the pcomposite request. The composite.tmac macro file, loaded automatically by the default troffrc, maps certain special characters to combining characters as shown in subsection โ€œAccentsโ€ below.

Unicode encodes far more characters than groff has names for; special character escape forms based on numerical code points enable access to any of them. Frequently used glyphs or glyph combinations can be stored in strings, and new glyph names can be created ad hoc with the char request; see groff(7). ๐Ÿ”ฅ

  • \[unnnn[n[n]]] โ€” is a Unicode numeric special character escape sequence. Any Unicode code point can be accessed with four to six hexadecimal digits, with hexadecimal letters accepted in uppercase form only. Thus, \[u02DA] accesses the (spacing) ring accent, producing โ€œหšโ€.

Unicode code points can be composed as well; when they are, GNU troff requires NFD (Normalization Form D), where all Unicode glyphs are maximally decomposed. (Exception: precomposed characters in the Latin-1 supplement described above are also accepted. Do not count on this exception remaining in a future GNU troff that accepts UTF-8 input directly.) Thus, GNU troff accepts โ€œcaf\['e]โ€, โ€œcaf\[e aa]โ€, and โ€œcaf\[u0065_0301]โ€, as ways to input โ€œcafรฉโ€. (Due to its legacy 8-bit encoding compatibility, at present it also accepts โ€œcaf\[u00E9]โ€ on ISO Latin-1 systems.) ๐ŸŒธ

  • \[ubase-char[_combining-component]...] โ€” constructs a composite glyph from Unicode numeric special character escape sequences. The code points of the base glyph and the combining components are each expressed in hexadecimal, with an underscore (_) separating each component. Thus, \[u006E_0303] produces โ€œรฑโ€.
  • \[charnnn] โ€” expresses an eight-bit code point where nnn is the code point of the character, a decimal number between 0 and 255 without leading zeroes. This legacy numeric special character escape sequence is used to map characters onto glyphs via the trin request in macro files loaded by grotty(1). ๐Ÿ’…

โœจ Glyph tables โœจ

Okay bestie, this is the big iconic glyph-name inventory, served in table form in the original. The columns mean this:

  • Output โ€” shows the glyph as it appears on the device used to render this document; although it can have a notably different shape on other devices (and is subject to user-directed translation and replacement), groff attempts reasonable equivalency on all output devices.
  • Input โ€” shows the groff character (ordinary or special) that normally produces the glyph. Some code points have multiple glyph names.
  • Unicode โ€” is the code point notation for the glyph or combining glyph sequence as described in subsection โ€œSpecial character escape formsโ€ above. It corresponds to the standard notation for Unicode short identifiers such that groffโ€™s unnnn is equivalent to Unicodeโ€™s U+nnnn.
  • Notes โ€” describes the glyph, elucidating the mnemonic value of the glyph name where possible.

A plus sign โ€œ+โ€ indicates that the glyph name appears in the AT&T troff userโ€™s manual, CSTR #54 (1992 revision). When using the AT&T special character syntax \(xx, widespread portability can be expected from such names. ๐Ÿ”ฅ

Entries marked with โ€œ***โ€ denote glyphs used for mathematical purposes. On typesetting devices, such glyphs are typically drawn from a special font (see groff_font(5)). Often, such glyphs lack bold or italic style forms or have metrics that look incongruous in ordinary prose. A few that are not uncommon in running text have โ€œtext variantsโ€, which should work better in that context. Conversely, a handful of glyphs that are normally drawn from a text font may be required in mathematical expressions. Both sets of exceptions are noted in the tables where they appear (โ€œLogical symbolsโ€ and โ€œMathematical symbolsโ€). ๐Ÿงš

Each row below goes: Output / Input / Unicode โ€” notes.

๐Ÿ”ค Basic Latin ๐Ÿ”ค

Apart from basic Latin characters with special mappings, described in subsection โ€œFundamental character setโ€ above, a few others in that range have special character glyph names. These were defined for ease of input on non-U.S. keyboards lacking keycaps for them, or for symmetry with other special character glyph names serving a similar purpose.

The vertical bar is overloaded; the \[ba] and \[or] escape sequences may render differently. See subsection โ€œMathematical symbolsโ€ below for unstyled variants of the plus, minus, and equals signs normally drawn from this range. ๐Ÿ‘‘

  • Output " / Input \[dq] / Unicode u0022 โ€” neutral double quote
  • Output # / Input \[sh] / Unicode u0023 โ€” number sign
  • Output $ / Input \[Do] / Unicode u0024 โ€” dollar sign
  • Output ' / Input \[aq] / Unicode u0027 โ€” apostrophe, neutral single quote
  • Output / / Input \[sl] / Unicode u002F โ€” slash, solidus +
  • Output @ / Input \[at] / Unicode u0040 โ€” at sign
  • Output [ / Input \[lB] / Unicode u005B โ€” left square bracket
  • Output \ / Input \[rs] / Unicode u005C โ€” reverse solidus
  • Output ] / Input \[rB] / Unicode u005D โ€” right square bracket
  • Output ^ / Input \[ha] / Unicode u005E โ€” circumflex, caret, โ€œhatโ€
  • Output { / Input \[lC] / Unicode u007B โ€” left brace
  • Output | / Input | / Unicode u007C โ€” bar +
  • Output | / Input \[ba] / Unicode u007C โ€” bar
  • Output | / Input \[or] / Unicode u007C โ€” bitwise or +
  • Output } / Input \[rC] / Unicode u007D โ€” right brace
  • Output ~ / Input \[ti] / Unicode u007E โ€” tilde

๐ŸŒธ Supplementary Latin letters ๐ŸŒธ

Historically, \[ss] developed from a ligature of โ€œszโ€. An uppercase form is available as \[u1E9E], but in the German language it is of specialized use; รŸ does not normally uppercase-transform to it, but rather to โ€œSSโ€. โ€œLowercase f with hookโ€ is also used as a function symbol; see subsection โ€œMathematical symbolsโ€ below. ๐Ÿฆ‹

  • Output ร / Input \[-D] / Unicode u00D0 โ€” uppercase eth
  • Output รฐ / Input \[Sd] / Unicode u00F0 โ€” lowercase eth
  • Output รž / Input \[TP] / Unicode u00DE โ€” uppercase thorn
  • Output รพ / Input \[Tp] / Unicode u00FE โ€” lowercase thorn
  • Output รŸ / Input \[ss] / Unicode u00DF โ€” lowercase sharp s
  • Output ฤฑ / Input \[.i] / Unicode u0131 โ€” i without tittle
  • Output ศท / Input \[.j] / Unicode u0237 โ€” j without tittle
  • Output ฦ’ / Input \[Fn] / Unicode u0192 โ€” lowercase f with hook, function
  • Output ล / Input \[/L] / Unicode u0141 โ€” L with stroke
  • Output ล‚ / Input \[/l] / Unicode u0142 โ€” l with stroke
  • Output ร˜ / Input \[/O] / Unicode u00D8 โ€” O with stroke
  • Output รธ / Input \[/o] / Unicode u00F8 โ€” o with stroke

๐ŸŽ€ Ligatures and digraphs ๐ŸŽ€

  • Output ff / Input \[ff] / Unicode u0066_0066 โ€” ff ligature +
  • Output fi / Input \[fi] / Unicode u0066_0069 โ€” fi ligature +
  • Output fl / Input \[fl] / Unicode u0066_006C โ€” fl ligature +
  • Output ffi / Input \[Fi] / Unicode u0066_0066_0069 โ€” ffi ligature +
  • Output ffl / Input \[Fl] / Unicode u0066_0066_006C โ€” ffl ligature +
  • Output ร† / Input \[AE] / Unicode u00C6 โ€” AE ligature
  • Output รฆ / Input \[ae] / Unicode u00E6 โ€” ae ligature
  • Output ล’ / Input \[OE] / Unicode u0152 โ€” OE ligature
  • Output ล“ / Input \[oe] / Unicode u0153 โ€” oe ligature
  • Output ฤฒ / Input \[IJ] / Unicode u0132 โ€” IJ digraph
  • Output ฤณ / Input \[ij] / Unicode u0133 โ€” ij digraph

๐Ÿ’– Accents ๐Ÿ’–

The non-combining code point in parentheses is used when the special character occurs in isolation (compare caf\[e aa] and caf\[aa]e). ๐Ÿ˜ญ

  • Output ห / Input \[a"] / Unicode u030B (u02DD) โ€” double acute accent
  • Output ยฏ / Input \[a-] / Unicode u0304 (u00AF) โ€” macron accent
  • Output ห™ / Input \[a.] / Unicode u0307 (u02D9) โ€” dot accent
  • Output ^ / Input \[a^] / Unicode u0302 (u005E) โ€” circumflex accent
  • Output ยด / Input \[aa] / Unicode u0301 (u00B4) โ€” acute accent +
  • Output ` / Input \[ga] / Unicode u0300 (u0060) โ€” grave accent +
  • Output ห˜ / Input \[ab] / Unicode u0306 (u02D8) โ€” breve accent
  • Output ยธ / Input \[ac] / Unicode u0327 (u00B8) โ€” cedilla accent
  • Output ยจ / Input \[ad] / Unicode u0308 (u00A8) โ€” dieresis accent
  • Output ห‡ / Input \[ah] / Unicode u030C (u02C7) โ€” caron accent
  • Output หš / Input \[ao] / Unicode u030A (u02DA) โ€” ring accent
  • Output ~ / Input \[a~] / Unicode u0303 (u007E) โ€” tilde accent
  • Output ห› / Input \[ho] / Unicode u0328 (u02DB) โ€” hook accent

๐ŸŒˆ Accented characters ๐ŸŒˆ

All of these glyphs can be composed using combining glyph names as described in subsection โ€œSpecial character escape formsโ€ above; the names below are short aliases for convenience. ๐Ÿซถ

  • Output ร / Input \['A] / Unicode u0041_0301 โ€” A acute
  • Output ฤ† / Input \['C] / Unicode u0043_0301 โ€” C acute
  • Output ร‰ / Input \['E] / Unicode u0045_0301 โ€” E acute
  • Output ร / Input \['I] / Unicode u0049_0301 โ€” I acute
  • Output ร“ / Input \['O] / Unicode u004F_0301 โ€” O acute
  • Output รš / Input \['U] / Unicode u0055_0301 โ€” U acute
  • Output ร / Input \['Y] / Unicode u0059_0301 โ€” Y acute
  • Output รก / Input \['a] / Unicode u0061_0301 โ€” a acute
  • Output ฤ‡ / Input \['c] / Unicode u0063_0301 โ€” c acute
  • Output รฉ / Input \['e] / Unicode u0065_0301 โ€” e acute
  • Output รญ / Input \['i] / Unicode u0069_0301 โ€” i acute
  • Output รณ / Input \['o] / Unicode u006F_0301 โ€” o acute
  • Output รบ / Input \['u] / Unicode u0075_0301 โ€” u acute
  • Output รฝ / Input \['y] / Unicode u0079_0301 โ€” y acute
  • Output ร„ / Input \[:A] / Unicode u0041_0308 โ€” A dieresis
  • Output ร‹ / Input \[:E] / Unicode u0045_0308 โ€” E dieresis
  • Output ร / Input \[:I] / Unicode u0049_0308 โ€” I dieresis
  • Output ร– / Input \[:O] / Unicode u004F_0308 โ€” O dieresis
  • Output รœ / Input \[:U] / Unicode u0055_0308 โ€” U dieresis
  • Output ลธ / Input \[:Y] / Unicode u0059_0308 โ€” Y dieresis
  • Output รค / Input \[:a] / Unicode u0061_0308 โ€” a dieresis
  • Output รซ / Input \[:e] / Unicode u0065_0308 โ€” e dieresis
  • Output รฏ / Input \[:i] / Unicode u0069_0308 โ€” i dieresis
  • Output รถ / Input \[:o] / Unicode u006F_0308 โ€” o dieresis
  • Output รผ / Input \[:u] / Unicode u0075_0308 โ€” u dieresis
  • Output รฟ / Input \[:y] / Unicode u0079_0308 โ€” y dieresis
  • Output ร‚ / Input \[^A] / Unicode u0041_0302 โ€” A circumflex
  • Output รŠ / Input \[^E] / Unicode u0045_0302 โ€” E circumflex
  • Output รŽ / Input \[^I] / Unicode u0049_0302 โ€” I circumflex
  • Output ร” / Input \[^O] / Unicode u004F_0302 โ€” O circumflex
  • Output ร› / Input \[^U] / Unicode u0055_0302 โ€” U circumflex
  • Output รข / Input \[^a] / Unicode u0061_0302 โ€” a circumflex
  • Output รช / Input \[^e] / Unicode u0065_0302 โ€” e circumflex
  • Output รฎ / Input \[^i] / Unicode u0069_0302 โ€” i circumflex
  • Output รด / Input \[^o] / Unicode u006F_0302 โ€” o circumflex
  • Output รป / Input \[^u] / Unicode u0075_0302 โ€” u circumflex
  • Output ร€ / Input \[A]/ **Unicode**u0041_0300` โ€” A grave
  • Output รˆ / Input \[E]/ **Unicode**u0045_0300` โ€” E grave
  • Output รŒ / Input \[I]/ **Unicode**u0049_0300` โ€” I grave
  • Output ร’ / Input \[O]/ **Unicode**u004F_0300` โ€” O grave
  • Output ร™ / Input \[U]/ **Unicode**u0055_0300` โ€” U grave
  • Output ร  / Input \[a]/ **Unicode**u0061_0300` โ€” a grave
  • Output รจ / Input \[e]/ **Unicode**u0065_0300` โ€” e grave
  • Output รฌ / Input \[i]/ **Unicode**u0069_0300` โ€” i grave
  • Output รฒ / Input \[o]/ **Unicode**u006F_0300` โ€” o grave
  • Output รน / Input \[u]/ **Unicode**u0075_0300` โ€” u grave
  • Output รƒ / Input \[~A] / Unicode u0041_0303 โ€” A tilde
  • Output ร‘ / Input \[~N] / Unicode u004E_0303 โ€” N tilde
  • Output ร• / Input \[~O] / Unicode u004F_0303 โ€” O tilde
  • Output รฃ / Input \[~a] / Unicode u0061_0303 โ€” a tilde
  • Output รฑ / Input \[~n] / Unicode u006E_0303 โ€” n tilde
  • Output รต / Input \[~o] / Unicode u006F_0303 โ€” o tilde
  • Output ล  / Input \[vS] / Unicode u0053_030C โ€” S caron
  • Output ลก / Input \[vs] / Unicode u0073_030C โ€” s caron
  • Output ลฝ / Input \[vZ] / Unicode u005A_030C โ€” Z caron
  • Output ลพ / Input \[vz] / Unicode u007A_030C โ€” z caron
  • Output ร‡ / Input \[,C] / Unicode u0043_0327 โ€” C cedilla
  • Output รง / Input \[,c] / Unicode u0063_0327 โ€” c cedilla
  • Output ร… / Input \[oA] / Unicode u0041_030A โ€” A ring
  • Output รฅ / Input \[oa] / Unicode u0061_030A โ€” a ring

๐Ÿฆ‹ Quotation marks ๐Ÿฆ‹

The neutral double quote, useful in documenting programming languages, is also available as a special character for convenient embedding in macro arguments; see subsection โ€œFundamental character setโ€ above.

like, picking right back up with the quote glyphs โ€” here's the rest of the squad, bestie ๐Ÿ‘‡

Output   Input   Unicode   Notes
โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€
โ€ž        \[Bq]   u201E     low double comma quote
โ€š        \[bq]   u201A     low single comma quote
โ€œ        \[lq]   u201C     left double quote
โ€        \[rq]   u201D     right double quote
โ€˜        \[oq]   u2018     single opening (left) quote
โ€™        \[cq]   u2019     single closing (right) quote
'        \[aq]   u0027     apostrophe, neutral single quote
"        "       u0022     neutral double quote
"        \[dq]   u0022     neutral double quote
ยซ        \[Fo]   u00AB     left double chevron
ยป        \[Fc]   u00BB     right double chevron
โ€น        \[fo]   u2039     left single chevron
โ€บ        \[fc]   u203A     right single chevron

โœจ PUNCTUATION โœจ

okay so tiny rant first ๐Ÿ™ˆ โ€” the Unicode name for U+00B7 is "middle dot", which is unfortunately confusable with the groff mnemonic for the visually similar but semantically completely different multiplication dot. like, they look the same and mean different things, which is the worst possible vibe. see the "Mathematical symbols" subsection below for the tea โ˜•

Output   Input   Unicode   Notes
โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€
ยก        \[r!]   u00A1     inverted exclamation mark
ยฟ        \[r?]   u00BF     inverted question mark
ยท        \[pc]   u00B7     centered period
โ€”        \[em]   u2014     emโ€dash +
โ€“        \[en]   u2013     enโ€dash
โ€        -       u2010     hyphen +
โ€        \[hy]   u2010     hyphen +

๐ŸŽ€ BRACKETS ๐ŸŽ€

okay this one's a whole saga so buckle up ๐Ÿซถ

on typesetting devices, the bracket extensions are fontโ€invariant glyphs โ€” meaning they render exactly the same way no matter what font you're in (they get drawn with a drawing escape sequence). on terminals? nah, they are not font-invariant, and groff maps them arbitrarily to U+23AA ("curly bracket extension"). and in AT&T troff, bestie, only one glyph was even available to vertically extend brackets, braces, and parentheses: \(bv. one. iconic in a tragic way ๐Ÿ’€

also not all devices supply bracket pieces that can be piled up with \b, because of the restrictions of the formatter's piling algorithm. so the following macro offers a more general bracketโ€building solution, periodt:

.\" Make a pile centered vertically 0.5em above the baseline.
.\" The first argument is placed at the top.
.\" The pile is returned in string 'pile'.
.eo
.de pile-make
.  nr pile-wd 0
.  nr pile-ht 0
.  ds pile-args
.
.  nr pile-# \n[.$]
.  while \n[pile-#] \{\
.    nr pile-wd (\n[pile-wd] >? \w'\$[\n[pile-#]]')
.    nr pile-ht +(\n[rst] - \n[rsb])
.    as pile-args \v'\n[rsb]u'\"
.    as pile-args \Z'\$[\n[pile-#]]'\"
.    as pile-args \v'-\n[rst]u'\"
.    nr pile-# -1
.  \}
.
.  ds pile \v'(-0.5m + (\n[pile-ht]u / 2u))'\"
.  as pile \*[pile-args]\"
.  as pile \v'((\n[pile-ht]u / 2u) + 0.5m)'\"
.  as pile \h'\n[pile-wd]u'\"
..
.ec

further complicating matters ๐Ÿ˜ญ โ€” some glyphs representing bracket pieces in AT&T troff can also be used for other mathematical symbols. for example, \(lf and \(rf provide the floor operator. and some output devices, like dvi, don't unify such glyphs. so for this reason, the glyphs \[lf], \[rf], \[lc], and \[rc] are not unified with similarโ€looking bracket pieces. in groff, only glyphs with long names are guaranteed to pile up correctly for all devices โ€” provided those glyphs are available. lowkey important, don't skip it ๐Ÿ’…

Output   Input               Unicode   Notes
โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€
[        [                   u005B     left square bracket
[        \[lB]               u005B     left square bracket
]        ]                   u005D     right square bracket
]        \[rB]               u005D     right square bracket
{        {                   u007B     left brace
{        \[lC]               u007B     left brace
}        }                   u007D     right brace
}        \[rC]               u007D     right brace
โŸจ        \[la]               u27E8     left angle bracket
โŸฉ        \[ra]               u27E9     right angle bracket
โŽช        \[bv]               u23AA     brace vertical extension + ***
โŽช        \[braceex]          u23AA     brace vertical extension

โŽก        \[bracketlefttp]    u23A1     left square bracket top
โŽข        \[bracketleftex]    u23A2     left square bracket extension
โŽฃ        \[bracketleftbt]    u23A3     left square bracket bottom

โŽค        \[bracketrighttp]   u23A4     right square bracket top
โŽฅ        \[bracketrightex]   u23A5     right square bracket extension
โŽฆ        \[bracketrightbt]   u23A6     right square bracket bottom

โŽง        \[lt]               u23A7     left brace top +
โŽจ        \[lk]               u23A8     left brace middle +
โŽฉ        \[lb]               u23A9     left brace bottom +
โŽง        \[bracelefttp]      u23A7     left brace top
โŽจ        \[braceleftmid]     u23A8     left brace middle
โŽฉ        \[braceleftbt]      u23A9     left brace bottom
โŽช        \[braceleftex]      u23AA     left brace extension

โŽซ        \[rt]               u23AB     right brace top +
โŽฌ        \[rk]               u23AC     right brace middle +
โŽญ        \[rb]               u23AD     right brace bottom +
โŽซ        \[bracerighttp]     u23AB     right brace top
โŽฌ        \[bracerightmid]    u23AC     right brace middle
โŽญ        \[bracerightbt]     u23AD     right brace bottom
โŽช        \[bracerightex]     u23AA     right brace extension

โŽ›        \[parenlefttp]      u239B     left parenthesis top
โŽœ        \[parenleftex]      u239C     left parenthesis extension
โŽ        \[parenleftbt]      u239D     left parenthesis bottom
โŽž        \[parenrighttp]     u239E     right parenthesis top
โŽŸ        \[parenrightex]     u239F     right parenthesis extension
โŽ         \[parenrightbt]     u23A0     right parenthesis bottom

โžก๏ธ ARROWS โžก๏ธ

pointy things, all of them, here's the lineup ๐Ÿน

Output   Input   Unicode   Notes
โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€
โ†        \[<-]   u2190     horizontal arrow left +
โ†’        \[->]   u2192     horizontal arrow right +
โ†”        \[<>]   u2194     bidirectional horizontal arrow
โ†“        \[da]   u2193     vertical arrow down +
โ†‘        \[ua]   u2191     vertical arrow up +
โ†•        \[va]   u2195     bidirectional vertical arrow
โ‡        \[lA]   u21D0     horizontal double arrow left
โ‡’        \[rA]   u21D2     horizontal double arrow right
โ‡”        \[hA]   u21D4     bidirectional horizontal double arrow
โ‡“        \[dA]   u21D3     vertical double arrow down
โ‡‘        \[uA]   u21D1     vertical double arrow up
โ‡•        \[vA]   u21D5     bidirectional vertical double arrow
โŽฏ        \[an]   u23AF     horizontal arrow extension

๐Ÿ“ RULES AND LINES ๐Ÿ“

on typesetting devices, the fontโ€invariant glyphs (see the "Brackets" subsection above ๐Ÿ’–) \[br], \[ul], and \[rn] form corners when they're adjacent โ€” so yes, you can straight up build boxes with them. slay. on terminal devices though, they're mapped as shown in the table. and just so you know, the Unicodeโ€derived names of these three glyphs are approximations.

the ordinary character _ accesses the underscore glyph in a font; \[ul], by contrast, may be fontโ€invariant on typesetting devices. two different guys, two different jobs ๐Ÿซก

the baseline rule \[ru] is a fontโ€invariant glyph, namely a rule of oneโ€half em.

in AT&T troff, \[rn] also served as a one en extension of the square root symbol. groff favors \[radicalex] for this purpose instead โ€” see the "Mathematical symbols" subsection below.

Output   Input   Unicode   Notes
โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€
|        |       u007C     bar
|        \[ba]   u007C     bar
โ”‚        \[br]   u2502     box rule +
_        _       u005F     underscore, low line +
_        \[ul]   โ€โ€โ€       underrule +
โ€พ        \[rn]   u203E     overline +
_        \[ru]   โ€โ€โ€       baseline rule +
ยฆ        \[bb]   u00A6     broken bar
/        /       u002F     slash, solidus +
/        \[sl]   u002F     slash, solidus +
\        \[rs]   u005C     reverse solidus

๐Ÿ”– TEXT MARKERS ๐Ÿ”–

lil symbols that mean stuff โ€” bullets, daggers, hands pointing at things, the works. so useful, so underrated ๐ŸŽ€

Output   Input   Unicode   Notes
โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€
โ—‹        \[ci]   u25CB     circle +
โ€ข        \[bu]   u2022     bullet +
โ€         \[dg]   u2020     dagger +
โ€ก        \[dd]   u2021     double dagger +
โ—Š        \[lz]   u25CA     lozenge, diamond
โ–ก        \[sq]   u25A1     square +
ยถ        \[ps]   u00B6     pilcrow sign
ยง        \[sc]   u00A7     section sign +
โ˜œ        \[lh]   u261C     hand pointing left +
โ˜ž        \[rh]   u261E     hand pointing right +
@        @       u0040     at sign
@        \[at]   u0040     at sign
#        #       u0023     number sign
#        \[sh]   u0023     number sign
โ†ต        \[CR]   u21B5     carriage return
โœ“        \[OK]   u2713     check mark

the copyright squad, the trademark crew, all the โ„ข energy you could ever want ๐Ÿ’…

heads up bestie: the Bell System logo is not supported in groff. rip to that one specifically ๐Ÿ˜ญ
Output   Input   Unicode   Notes
โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€
ยฉ        \[co]   u00A9     copyright sign +
ยฎ        \[rg]   u00AE     registered sign +
โ„ข        \[tm]   u2122     trade mark sign
         \[bs]   โ€โ€โ€       Bell System logo +

๐Ÿ’ฐ Currency symbols ๐Ÿ’ฐ

Money money money bestie, it's giving โœจ capitalism era โœจ โ€” here's your bag of coin glyphs! Real talk: yes, you can literally just type $ for a dollar sign, but there's also a fancy \[Do] input name that spits out the exact same thing, so pick your fighter ๐Ÿซถ. Oh and heads up, the little + and *** footnote markers in the table? Those are explained back up in Description โ€” iykyk, no need to re-litigate it here ๐Ÿ’….

Output   Input   Unicode   Notes
โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€
$        $       u0024     dollar sign
$        \[Do]   u0024     dollar sign
ยข        \[ct]   u00A2     cent sign +
โ‚ฌ        \[eu]   u20AC     Euro sign
โ‚ฌ        \[Eu]   u20AC     variant Euro sign
ยฅ        \[Ye]   u00A5     yen sign
ยฃ        \[Po]   u00A3     pound sign
ยค        \[Cs]   u00A4     currency sign

๐Ÿ“ Units ๐Ÿ“

Degrees, per-mille, arc minutes, arc seconds, and the little ordinal indicators โ€” it's giving "measurement girlie" energy ๐ŸŽ€. Note the degree sign and the foot/arc-minute mark both got that + friend, and the micro sign is the actual ยต looking all cute. Slay.

Output   Input   Unicode   Notes
โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€
ยฐ        \[de]   u00B0     degree sign +
โ€ฐ        \[%0]   u2030     per thousand, per mille sign
โ€ฒ        \[fm]   u2032     arc minute sign, foot mark +
โ€ณ        \[sd]   u2033     arc second sign
ยต        \[mc]   u00B5     micro sign
ยช        \[Of]   u00AA     feminine ordinal indicator
ยบ        \[Om]   u00BA     masculine ordinal indicator

๐Ÿง  Logical symbols ๐Ÿง 

okay so the not sign besties? The variants of it may differ in appearance or spacing depending on your device and the font you selected, so like, don't come for me if it's a lil' off ๐Ÿ˜ญ. Also โ€” and this is highkey fascinating โ€” Unicode does not encode a discrete "bitwise or" sign. So on typesetting devices, it gets drawn shorter than the bar, about the same height as a capital letter. And terminal devices? They straight up unify \[ba] and \[or], so don't expect them to be different there, fr fr ๐Ÿ’€.

Output   Input    Unicode   Notes
โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€
โˆง        \[AN]    u2227     logical and
โˆจ        \[OR]    u2228     logical or
ยฌ        \[no]    u00AC     logical not + ***
ยฌ        \[tno]   u00AC     text variant of \[no]
โˆƒ        \[te]    u2203     there exists
โˆ€        \[fa]    u2200     for all
โˆ‹        \[st]    u220B     such that
โˆด        \[3d]    u2234     therefore
โˆด        \[tf]    u2234     therefore
|        |        u007C     bar +
|        \[or]    u007C     bitwise or +

๐Ÿงฎ Mathematical symbols ๐Ÿงฎ

First off, quick cross-reference bestie: \[Fn] also appears in subsection "Supplementary Latin letters" above, so if it looks familiar, that's why ๐Ÿฆ‹.

Now for the tea โ˜•: the plus-minus, multiplication, and division signs โ€” \[+-], \[mu], and \[di] โ€” are normally drawn from the special font, but they have text font variants. Meanwhile the plus, minus, and equals signs are normally drawn from the text fonts, but they have special font variants. And yeah, variants may differ in appearance or spacing depending on the device and font selected. It's giving "it's complicated" ๐Ÿ˜….

Historical lore drop ๐Ÿ“œ (and this is iconic, pay attention): In AT&T troff, \(rn ("root en extender") served as the horizontal extension of the radical (square root) sign, \(sr, and was drawn at the maximum height of the typeface's bounding box โ€” enabling it to double as an overline (see subsection "Rules and lines" above). BUT โ€” and here's the catch โ€” a contemporary font's radical sign might not ascend to such an extreme ๐Ÿ™ˆ. In groff, you can instead use \[radicalex] to continue the radical sign \[sr]; these special characters are intended for use with text fonts. And \[sqrt] and \[sqrtex] are their unstyled counterparts. Periodt. ๐Ÿ’…

Fractions & superscripts besties:

Output   Input          Unicode      Notes
โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€
ยฝ        \[12]          u00BD        one half symbol +
ยผ        \[14]          u00BC        one quarter symbol +
ยพ        \[34]          u00BE        three quarters symbol +
โ…›        \[18]          u215B        one eighth symbol
โ…œ        \[38]          u215C        three eighths symbol
โ…        \[58]          u215D        five eighths symbol
โ…ž        \[78]          u215E        seven eighths symbol
ยน        \[S1]          u00B9        superscript one
ยฒ        \[S2]          u00B2        superscript two
ยณ        \[S3]          u00B3        superscript three

The math operators (plus / minus / times / divide core four):

Output   Input          Unicode      Notes
โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€
+        +              u002B        plus
+        \[pl]          u002B        special variant of plus + ***
-        \[-]           u002D        minus
โˆ’        \[mi]          u2212        special variant of minus + ***
โˆ“        \[-+]          u2213        minusโ€plus
ยฑ        \[+-]          u00B1        plusโ€minus + ***
ยฑ        \[t+-]         u00B1        text variant of \[+-]
โ‹…        \[md]          u22C5        multiplication dot
ร—        \[mu]          u00D7        multiplication sign + ***
ร—        \[tmu]         u00D7        text variant of \[mu]
โŠ—        \[c*]          u2297        circled times
โŠ•        \[c+]          u2295        circled plus
รท        \[di]          u00F7        division sign, obelus + ***
รท        \[tdi]         u00F7        text variant of \[di]
โ„        \[f/]          u2044        fraction slash
*        *              u002A        asterisk
โˆ—        \[**]          u2217        mathematical asterisk +

Comparisons & relations (the "is it bigger tho" club):

Output   Input          Unicode      Notes
โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€
โ‰ค        \[<=]          u2264        less than or equal to +
โ‰ฅ        \[>=]          u2265        greater than or equal to +
โ‰ช        \[<<]          u226A        much less than
โ‰ซ        \[>>]          u226B        much greater than
=        =              u003D        equals
=        \[eq]          u003D        special variant of equals + ***
โ‰         \[!=]          u003D_0338   not equals +
โ‰ก        \[==]          u2261        equivalent +
โ‰ข        \[ne]          u2261_0338   not equivalent
โ‰…        \[=~]          u2245        approximately equal to
โ‰ƒ        \[|=]          u2243        asymptotically equal to +
~        \[ti]          u007E        tilde +
โˆผ        \[ap]          u223C        similar to, tilde operator +
โ‰ˆ        \[~~]          u2248        almost equal to
โ‰ˆ        \[~=]          u2248        almost equal to
โˆ        \[pt]          u221D        proportional to +

Set theory slay (โˆฉ and โˆช are literally the girlboss icons):

Output   Input          Unicode      Notes
โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€
โˆ…        \[es]          u2205        empty set +
โˆˆ        \[mo]          u2208        element of a set +
โˆ‰        \[nm]          u2208_0338   not element of set
โŠ‚        \[sb]          u2282        proper subset +
โŠ„        \[nb]          u2282_0338   not subset
โŠƒ        \[sp]          u2283        proper superset +
โŠ…        \[nc]          u2283_0338   not superset
โІ        \[ib]          u2286        subset or equal +
โЇ        \[ip]          u2287        superset or equal +
โˆฉ        \[ca]          u2229        intersection, cap +
โˆช        \[cu]          u222A        union, cup +

Geometry, calculus & the ceiling/floor girlies:

Output   Input          Unicode      Notes
โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€
โˆ         \[/_]          u2220        angle
โŠฅ        \[pp]          u22A5        perpendicular
โˆซ        \[is]          u222B        integral +
โˆซ        \[integral]    u222B        integral ***
โˆ‘        \[sum]         u2211        summation ***
โˆ        \[product]     u220F        product ***
โˆ        \[coproduct]   u2210        coproduct ***
โˆ‡        \[gr]          u2207        gradient +
โˆš        \[sr]          u221A        radical sign, square root +
โ€พ        \[rn]          u203E        overline +
โ€พ        \[radicalex]   โ€โ€โ€          radical extension
โˆš        \[sqrt]        u221A        radical sign, square root ***
โ€พ        \[sqrtex]      โ€โ€โ€          radical extension ***
โŒˆ        \[lc]          u2308        left ceiling +
โŒ‰        \[rc]          u2309        right ceiling +
โŒŠ        \[lf]          u230A        left floor +
โŒ‹        \[rf]          u230B        right floor +

Misc math icons (infinity, aleph, blackletter, etc. โ€” main character energy โœจ):

Output   Input          Unicode      Notes
โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€
โˆž        \[if]          u221E        infinity +
โ„ต        \[Ah]          u2135        aleph symbol
ฦ’        \[Fn]          u0192        lowercase f with hook, function
โ„‘        \[Im]          u2111        blackletter I, imaginary part
โ„œ        \[Re]          u211C        blackletter R, real part
โ„˜        \[wp]          u2118        Weierstrass p
โˆ‚        \[pd]          u2202        partial differential
โ„        \[-h]          u210F        h bar
โ„        \[hbar]        u210F        h bar

๐Ÿ‡ฌ๐Ÿ‡ท Greek glyphs ๐Ÿ‡ฌ๐Ÿ‡ท

Okay so before you go thinking this is for writing cute Greek love letters โ€” no bestie, these glyphs are intended for technical use, not for typesetting Greek language text ๐Ÿซถ. Normally the uppercase letters have upright shape, and the lowercase ones are slanted. And for those slanted lowercase ones, they include in parentheses under "Unicode" the more appropriate code points from the Mathematical Alphanumeric Symbols block of the Supplementary Multilingual Plane. It's giving "extra but correct" ๐Ÿ’….

Output   Input   Unicode          Notes
โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€
ฮ‘        \[*A]   u0391            uppercase alpha +
ฮ’        \[*B]   u0392            uppercase beta +
ฮ“        \[*G]   u0393            uppercase gamma +
ฮ”        \[*D]   u0394            uppercase delta +
ฮ•        \[*E]   u0395            uppercase epsilon +
ฮ–        \[*Z]   u0396            uppercase zeta +
ฮ—        \[*Y]   u0397            uppercase eta +
ฮ˜        \[*H]   u0398            uppercase theta +
ฮ™        \[*I]   u0399            uppercase iota +
ฮš        \[*K]   u039A            uppercase kappa +
ฮ›        \[*L]   u039B            uppercase lambda +
ฮœ        \[*M]   u039C            uppercase mu +
ฮ        \[*N]   u039D            uppercase nu +
ฮž        \[*C]   u039E            uppercase xi +
ฮŸ        \[*O]   u039F            uppercase omicron +
ฮ         \[*P]   u03A0            uppercase pi +
ฮก        \[*R]   u03A1            uppercase rho +
ฮฃ        \[*S]   u03A3            uppercase sigma +
ฮค        \[*T]   u03A4            uppercase tau +
ฮฅ        \[*U]   u03A5            uppercase upsilon +
ฮฆ        \[*F]   u03A6            uppercase phi +
ฮง        \[*X]   u03A7            uppercase chi +
ฮจ        \[*Q]   u03A8            uppercase psi +
ฮฉ        \[*W]   u03A9            uppercase omega +

Lowkey obsessed with the fact that \[*Y] is eta and \[*H] is theta โ€” the letter mapping is not vibing the way you'd expect, so bookmark this table bestie ๐Ÿฆ‹๐Ÿ’–.

still in the Greek table, bestie โ€” no heading repeat, just rows โ€” and yes, the trailing + is literally part of the row, so donโ€™t come for me ๐Ÿ’…

  • ฮฑ โ€” input \[*a] โ€” Unicode u03B1 (u1D6FC) โ€” lowercase alpha +
  • ฮฒ โ€” input \[*b] โ€” Unicode u03B2 (u1D6FD) โ€” lowercase beta +
  • ฮณ โ€” input \[*g] โ€” Unicode u03B3 (u1D6FE) โ€” lowercase gamma +
  • ฮด โ€” input \[*d] โ€” Unicode u03B4 (u1D6FF) โ€” lowercase delta +
  • ฮต โ€” input \[*e] โ€” Unicode u03B5 (u1D700) โ€” lowercase epsilon +
  • ฮถ โ€” input \[*z] โ€” Unicode u03B6 (u1D701) โ€” lowercase zeta +
  • ฮท โ€” input \[*y] โ€” Unicode u03B7 (u1D702) โ€” lowercase eta +
  • ฮธ โ€” input \[*h] โ€” Unicode u03B8 (u1D703) โ€” lowercase theta +
  • ฮน โ€” input \[*i] โ€” Unicode u03B9 (u1D704) โ€” lowercase iota +
  • ฮบ โ€” input \[*k] โ€” Unicode u03BA (u1D705) โ€” lowercase kappa +
  • ฮป โ€” input \[*l] โ€” Unicode u03BB (u1D706) โ€” lowercase lambda +
  • ฮผ โ€” input \[*m] โ€” Unicode u03BC (u1D707) โ€” lowercase mu +
  • ฮฝ โ€” input \[*n] โ€” Unicode u03BD (u1D708) โ€” lowercase nu +
  • ฮพ โ€” input \[*c] โ€” Unicode u03BE (u1D709) โ€” lowercase xi +
  • ฮฟ โ€” input \[*o] โ€” Unicode u03BF (u1D70A) โ€” lowercase omicron +
  • ฯ€ โ€” input \[*p] โ€” Unicode u03C0 (u1D70B) โ€” lowercase pi +
  • ฯ โ€” input \[*r] โ€” Unicode u03C1 (u1D70C) โ€” lowercase rho +
  • ฯƒ โ€” input \[*s] โ€” Unicode u03C3 (u1D70E) โ€” lowercase sigma +
  • ฯ„ โ€” input \[*t] โ€” Unicode u03C4 (u1D70F) โ€” lowercase tau +
  • ฯ… โ€” input \[*u] โ€” Unicode u03C5 (u1D710) โ€” lowercase upsilon +
  • ฯ• โ€” input \[*f] โ€” Unicode u03D5 (u1D717) โ€” lowercase phi +
  • ฯ‡ โ€” input \[*x] โ€” Unicode u03C7 (u1D712) โ€” lowercase chi +
  • ฯˆ โ€” input \[*q] โ€” Unicode u03C8 (u1D713) โ€” lowercase psi +
  • ฯ‰ โ€” input \[*w] โ€” Unicode u03C9 (u1D714) โ€” lowercase omega +

and the variant girlies, living their best alternate-glyph lives:

  • ฯต โ€” input \[+e] โ€” Unicode u03F5 (u1D716) โ€” variant epsilon (lunate)
  • ฯ‘ โ€” input \[+h] โ€” Unicode u03D1 (u1D717) โ€” variant theta (cursive form)
  • ฯ– โ€” input \[+p] โ€” Unicode u03D6 (u1D717) โ€” variant pi (similar to omega)
  • ฯ† โ€” input \[+f] โ€” Unicode u03C6 (u1D71B) โ€” variant phi (curly shape)
  • ฯ‚ โ€” input \[ts] โ€” Unicode u03C2 (u1D70D) โ€” terminal lowercase sigma +

๐Ÿƒ Playing card symbols ๐Ÿƒ

same energy, different suits โ€” iconic honestly:

  • โ™ฃ โ€” input \[CL] โ€” Unicode u2663 โ€” solid club suit
  • โ™  โ€” input \[SP] โ€” Unicode u2660 โ€” solid spade suit
  • โ™ฅ โ€” input \[HE] โ€” Unicode u2665 โ€” solid heart suit
  • โ™ฆ โ€” input \[DI] โ€” Unicode u2666 โ€” solid diamond suit

๐Ÿ“œ History ๐Ÿ“œ

okay, history time, because this is actually so interesting: if you look at the typefaces that AT&T nroff and troff originally had, a bunch of conventions that seem kinda idiosyncratic fifty years later suddenly make sense. (Thereโ€™s more context in the โ€œHistoryโ€ section of roff(7).) The Teletype Model 37 terminals in the Murray Hill Unix Room used a face based on ASCII, but it gave several code points multiple meanings โ€” as suggested by that standard. Decimal 34 (") served as a dieresis accent and a neutral double quotation mark; decimal 39 (') as an acute accent, an apostrophe, and a closing (right) single quotation mark; decimal 45 (-) as a hyphen and a minus sign; decimal 94 (^) as a circumflex accent and a caret; decimal 96 (`) as a grave accent and an opening (left) single quotation mark; and decimal 126 (~) as a tilde accent and, with a half-line motion, a swung dash. The Model 37 also bore an optional extended character set offering upright Greek letters and several mathematical symbols; these were documented as early as the kbd(VII) man page of the (First Edition) Unix Programmerโ€™s Manual.

At the time Graphic Systems delivered the C/A/T phototypesetter to AT&T, the ASCII character set was not considered a standard basis for a glyph repertoire by traditional typographers. In the stock Times roman, italic, and bold styles available, several ASCII characters were not present at all, nor was most of the Teletypeโ€™s extended character set. So AT&T commissioned a โ€œspecialโ€ font to retain their accustomed repertoire.

A representation of the coverage of the C/A/Tโ€™s text fonts follows. The glyph resembling an underscore is a baseline rule, and the one resembling a vertical line is a box rule. In italics, the box rule was not slanted. We also observe that the hyphen and minus sign were already โ€œde-unifiedโ€ by the fonts provided; a decision whither to map an input - therefore had to be taken.

               โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
               โ”‚ A B C D E F G H I J K L M N O P Q R S T U V W X Y Z โ”‚
               โ”‚ a b c d e f g h i j k l m n o p q r s t u v w x y z โ”‚
               โ”‚ 0 1 2 3 4 5 6 7 8 9 fi fl ffi ffl                   โ”‚
               โ”‚ ! $ % & ( ) โ€˜ โ€™ * + - . , / : ; = ? [ ] โ”‚           โ”‚
               โ”‚ โ€ข โ–ก โ€” โ€ _ ยผ ยฝ ยพ ยฐ โ€  โ€ฒ ยข ยฎ ยฉ                         โ”‚
               โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜

The special font supplied the missing ASCII and Teletype extended glyphs, among several others. The plus, minus, and equals signs appeared in the special font despite availability in text fonts โ€œto insulate the appearance of equations from the choice of standard [read: text] fontsโ€ โ€” a priority since troff was turned to the task of mathematical typesetting as soon as it was developed.

We note that AT&T took the opportunity to de-unify the apostrophe/right single quotation mark from the acute accent (a choice ISO later duplicated in its 8859 series of standards). A slash intended to be mirror-symmetric with the backslash was also included, as was the Bell System logo; we do not attempt to depict the latter.

            โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
            โ”‚ ฮฑ ฮฒ ฮณ ฮด ฮต ฮถ ฮท ฮธ ฮน ฮบ ฮป ฮผ ฮฝ ฮพ ฮฟ ฯ€ ฯ ฯƒ ฯ‚ ฯ„ ฯ… ฯ• ฯ‡ ฯˆ ฯ‰         โ”‚
            โ”‚ ฮ“ ฮ” ฮ˜ ฮ› ฮž ฮ  ฮฃ ฮฅ ฮฆ ฮจ ฮฉ                                     โ”‚
            โ”‚ " ยด \ ^ _ ` ~ / < > { } # @ + โˆ’ = โˆ—                       โ”‚
            โ”‚ โ‰ฅ โ‰ค โ‰ก โ‰ˆ โˆผ โ‰  โ†‘ โ†“ โ† โ†’ ร— รท ยฑ โˆž โˆ‚ โˆ‡ ยฌ โˆซ โˆ โˆš โ€พ โˆช โˆฉ โŠ‚ โŠƒ โІ โЇ โˆ… โˆˆ โ”‚
            โ”‚ ยง โ€ก โ˜œ โ˜ž | โ—‹ โŽง โŽฉ โŽซ โŽญ โŽจ โŽฌ โŽช โŒŠ โŒ‹ โŒˆ โŒ‰                         โ”‚
            โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜

One ASCII character as rendered by the Model 37 was apparently abandoned. That device printed decimal 124 (|) as a broken vertical line, like Unicode U+00A6 (ยฆ). No equivalent was available on the C/A/T; the box rule \[br], brace vertical extension \[bv], and โ€œorโ€ operator \[or] were used as contextually appropriate.

Devices supported by AT&T device-independent troff exhibited some differences in glyph detail. For example, on the Autologic APS-5 phototypesetter, the square \(sq became filled in the Times bold face.

๐Ÿ“ Files ๐Ÿ“

The files below are loaded automatically by the default troffrc.

  • /usr/share/groff/1.24.2/tmac/composite.tmac โ€” assigns alternate mappings for identifiers after the first in a composite special character escape sequence. See subsection โ€œAccentsโ€ above.
  • /usr/share/groff/1.24.2/tmac/fallbacks.tmac โ€” defines fallback mappings for Unicode code points such as the increment sign (U+2206) and upper- and lowercase Roman numerals.

๐Ÿ‘‘ Authors ๐Ÿ‘‘

This document was written by James Clark, with additions by Werner Lemberg and Bernd Warken, revised to use tbl(1) by Eric S. Raymond, and largely rewritten by G. Branden Robinson.

๐Ÿ”Ž See also ๐Ÿ”Ž

  • Groff: The GNU Implementation of troff, by Trent A. Fisher and Werner Lemberg, is the primary groff manual. Section โ€œUsing Symbolsโ€ may be of particular note. You can browse it interactively with info '(groff) Using Symbols'.
  • โ€œAn extension to the troff character set for Europeโ€, E.G. Keizer, K.J. Simonsen, J. Akkerhuis; EUUG Newsletter, Volume 9, No. 2, Summer 1989
  • The Unicode Standard
  • โ€œ7-bit Character Setsโ€ by Tuomas Salste documents the inherent ambiguity and configurable code points of the ASCII encoding standard.
  • โ€œNroff/Troff Userโ€™s Manualโ€ by Joseph F. Ossanna, 1976, AT&T Bell Laboratories Computing Science Technical Report No. 54, features two tables that throw light on the glyph repertoire available to โ€œtypesetter roffโ€ when it was first written. Be careful of re-typeset versions of this document that can be found on the Internet. Some do not accurately represent the original document: several glyphs are obviously missing. More subtly, lowercase Greek letters are rendered upright, not slanted as they appeared in the C/A/Tโ€™s special font and as expected by troff users.
  • groff_rfc1345(7) describes an alternative set of special character glyph names, which extends and in some cases overrides the definitions listed above.
  • groff(1), troff(1), groff(7)

and thatโ€™s the whole page, bestie ๐Ÿ’– source/version groff 1.24.2, date 2026โ€10โ€01, page groff_char(7) โ€” mwah ๐Ÿซถ

๐Ÿ“ฆ where this page comes from