version 1.70, 2018/08/08 14:03:27 |
version 1.79, 2022/06/02 14:51:41 |
|
|
.\" $Id$ |
.\" $Id$ |
.\" |
.\" |
.\" Copyright (c) 2003 Jason McIntyre <jmc@openbsd.org> |
.\" Copyright (c) 2003 Jason McIntyre <jmc@openbsd.org> |
.\" Copyright (c) 2009, 2010, 2011 Kristaps Dzonsons <kristaps@bsd.lv> |
.\" Copyright (c) 2009, 2010, 2011 Kristaps Dzonsons <kristaps@bsd.lv> |
.\" Copyright (c) 2011, 2013, 2015, 2017 Ingo Schwarze <schwarze@openbsd.org> |
.\" Copyright (c) 2011, 2013, 2015, 2017-2020, 2022 |
|
.\" Ingo Schwarze <schwarze@openbsd.org> |
.\" |
.\" |
.\" Permission to use, copy, modify, and distribute this software for any |
.\" Permission to use, copy, modify, and distribute this software for any |
.\" purpose with or without fee is hereby granted, provided that the above |
.\" purpose with or without fee is hereby granted, provided that the above |
Line 62 escape sequences to represent national language charac |
|
Line 63 escape sequences to represent national language charac |
|
names; instead, provide ASCII transcriptions of the names. |
names; instead, provide ASCII transcriptions of the names. |
.Ss Dashes and Hyphens |
.Ss Dashes and Hyphens |
In typography there are different types of dashes of various width: |
In typography there are different types of dashes of various width: |
the hyphen (-), |
the hyphen (\(hy), |
the en-dash (\(en), |
the en-dash (\(en), |
the em-dash (\(em), |
the em-dash (\(em), |
and the mathematical minus sign (\(mi). |
and the mathematical minus sign (\(mi). |
|
|
lorry-driver |
lorry-driver |
.Ed |
.Ed |
.Pp |
.Pp |
If a word on a text input line contains a hyphen, a formatter may decide |
|
to insert an output line break after the hyphen if that helps filling |
|
the current output line, but the whole word would overflow the line. |
|
If it is important that the word is not broken across lines in this |
|
way, a zero-width space |
|
.Pq Sq \e& |
|
can be inserted before or after the hyphen. |
|
While |
|
.Xr mandoc 1 |
|
never breaks the output line after hyphens adjacent to a zero-width |
|
space, after any of the other dash- or hyphen-like characters |
|
represented by escape sequences, or after hyphens inside words in |
|
macro arguments, other software may not respect these rules and may |
|
break the line even in such cases. |
|
.Pp |
|
Some |
|
.Xr roff 7 |
|
implementations contains dictionaries allowing to break the line |
|
at syllable boundaries even inside words that contain no hyphens. |
|
Such automatic hyphenation is not supported by |
|
.Xr mandoc 1 , |
|
which only breaks the line at whitespace, and inside words only |
|
after existing hyphens. |
|
.Pp |
|
The en-dash is used to separate the two elements of a range, |
The en-dash is used to separate the two elements of a range, |
or can be used the same way as an em-dash. |
or can be used the same way as an em-dash. |
It should be written as |
It should be written as |
Line 131 supporting it, for example in |
|
Line 108 supporting it, for example in |
|
.Fl T Cm utf8 |
.Fl T Cm utf8 |
and |
and |
.Fl T Cm html . |
.Fl T Cm html . |
But currently, no practically relevant manual page formatter actually |
But currently, no practically relevant manual page formatter requires |
requires that subtlety, so in manual pages just write plain |
that subtlety, so in manual pages, it is sufficient to write plain |
.Sq - |
.Sq - |
to represent hyphen, minus, and hyphen-minus. |
to represent hyphen, minus, and hyphen-minus. |
|
.Pp |
|
If a word on a text input line contains a hyphen, a formatter may decide |
|
to insert an output line break after the hyphen if that helps filling |
|
the current output line, but the whole word would overflow the line. |
|
If it is important that the word is not broken across lines in this |
|
way, a zero-width space |
|
.Pq Sq \e& |
|
can be inserted before or after the hyphen. |
|
While |
|
.Xr mandoc 1 |
|
never breaks the output line after hyphens adjacent to a zero-width |
|
space, after any of the other dash- or hyphen-like characters |
|
represented by escape sequences, or after hyphens inside words in |
|
macro arguments, other software may not respect these rules and may |
|
break the line even in such cases. |
|
.Pp |
|
Some |
|
.Xr roff 7 |
|
implementations contains dictionaries allowing to break the line |
|
at syllable boundaries even inside words that contain no hyphens. |
|
Such automatic hyphenation is not supported by |
|
.Xr mandoc 1 , |
|
which only breaks the line at whitespace, and inside words only |
|
after existing hyphens. |
.Ss Spaces |
.Ss Spaces |
To separate words in normal text, for indenting and alignment |
To separate words in normal text, for indenting and alignment |
in literal context, and when none of the following special cases apply, |
in literal context, and when none of the following special cases apply, |
Line 220 where it introduces a |
|
Line 221 where it introduces a |
|
request or a macro, and when appearing alone as a macro argument in |
request or a macro, and when appearing alone as a macro argument in |
.Xr mdoc 7 . |
.Xr mdoc 7 . |
In such situations, prepend a zero-width space |
In such situations, prepend a zero-width space |
.Pq Sq \e&. |
.Pq Sq \e&.\& |
to make it behave like normal text. |
to make it behave like normal text. |
.Pp |
.Pp |
Do not use the |
Do not use the character pair |
.Sq \e. |
.Sq \e. |
escape sequence. |
to escape a period because |
It does not prevent special handling of the period. |
.Sq \e. |
|
is not a character escape sequence, does not prevent special handling |
|
of the period under normal circumstances, and is only intended to |
|
be used in the very special situation of defining a user-defined |
|
macro that, when called, defines another user-defined macro, which |
|
no manual page is ever supposed to do. |
.Ss Backslashes |
.Ss Backslashes |
To include a literal backslash |
To include a literal backslash |
.Pq Sq \e |
.Pq Sq \e |
Line 261 subsection of the |
|
Line 267 subsection of the |
|
.Xr roff 7 |
.Xr roff 7 |
manual. |
manual. |
.Pp |
.Pp |
Spacing: |
Spaces, non-breaking unless stated otherwise: |
.Bl -column "Input" "Description" -offset indent -compact |
.Bl -column "Input" "Description" -offset indent -compact |
.It Em Input Ta Em Description |
.It Em Input Ta Em Description |
.It Sq \e\ \& Ta unpaddable non-breaking space |
.It Sq \e\ \& Ta unpaddable space |
.It \e\(ti Ta paddable non-breaking space |
.It \e\(ti Ta paddable space |
.It \e0 Ta unpaddable, breaking digit-width space |
.It \e0 Ta digit-width space |
.It \e| Ta one-sixth \e(em narrow space, zero width in nroff mode |
.It \e| Ta one-sixth \e(em narrow space, zero width in nroff mode |
.It \e^ Ta one-twelfth \e(em half-narrow space, zero width in nroff |
.It \e^ Ta one-twelfth \e(em half-narrow space, zero width in nroff |
.It \e& Ta zero-width space |
.It \e& Ta zero-width space |
|
.It \e) Ta zero-width space transparent to end-of-sentence detection |
.It \e% Ta zero-width space allowing hyphenation |
.It \e% Ta zero-width space allowing hyphenation |
|
.It \e: Ta zero-width space allowing line break |
.El |
.El |
.Pp |
.Pp |
Lines: |
Lines: |
|
|
.It \e(en Ta \(en Ta en-dash |
.It \e(en Ta \(en Ta en-dash |
.It \e(hy Ta \(hy Ta hyphen |
.It \e(hy Ta \(hy Ta hyphen |
.It \ee Ta \e Ta back-slash |
.It \ee Ta \e Ta back-slash |
.It \e. Ta \. Ta period |
|
.It \e(r! Ta \(r! Ta upside-down exclamation |
.It \e(r! Ta \(r! Ta upside-down exclamation |
.It \e(r? Ta \(r? Ta upside-down question |
.It \e(r? Ta \(r? Ta upside-down question |
.El |
.El |
Line 543 Accented letters: |
|
Line 550 Accented letters: |
|
.It \e(\(aqI Ta \('I Ta acute I |
.It \e(\(aqI Ta \('I Ta acute I |
.It \e(\(aqO Ta \('O Ta acute O |
.It \e(\(aqO Ta \('O Ta acute O |
.It \e(\(aqU Ta \('U Ta acute U |
.It \e(\(aqU Ta \('U Ta acute U |
|
.It \e(\(aqY Ta \('Y Ta acute Y |
.It \e(\(aqa Ta \('a Ta acute a |
.It \e(\(aqa Ta \('a Ta acute a |
.It \e(\(aqe Ta \('e Ta acute e |
.It \e(\(aqe Ta \('e Ta acute e |
.It \e(\(aqi Ta \('i Ta acute i |
.It \e(\(aqi Ta \('i Ta acute i |
.It \e(\(aqo Ta \('o Ta acute o |
.It \e(\(aqo Ta \('o Ta acute o |
.It \e(\(aqu Ta \('u Ta acute u |
.It \e(\(aqu Ta \('u Ta acute u |
|
.It \e(\(aqy Ta \('y Ta acute y |
.It \e(\(gaA Ta \(`A Ta grave A |
.It \e(\(gaA Ta \(`A Ta grave A |
.It \e(\(gaE Ta \(`E Ta grave E |
.It \e(\(gaE Ta \(`E Ta grave E |
.It \e(\(gaI Ta \(`I Ta grave I |
.It \e(\(gaI Ta \(`I Ta grave I |
Line 705 Their syntax is similar to special characters, using |
|
Line 714 Their syntax is similar to special characters, using |
|
and |
and |
.Sq \e*[N] |
.Sq \e*[N] |
.Pq N-character . |
.Pq N-character . |
For details, see the |
|
.Em Predefined Strings |
|
subsection of the |
|
.Xr roff 7 |
|
manual. |
|
.Bl -column "Input" "Rendered" "Description" -offset indent |
.Bl -column "Input" "Rendered" "Description" -offset indent |
.It Em Input Ta Em Rendered Ta Em Description |
.It Em Input Ta Em Rendered Ta Em Description |
.It \e*(Ba Ta \*(Ba Ta vertical bar |
.It \e*(Ba Ta \*(Ba Ta vertical bar |
Line 761 For backward compatibility with existing manuals, |
|
Line 765 For backward compatibility with existing manuals, |
|
.Xr mandoc 1 |
.Xr mandoc 1 |
also supports the |
also supports the |
.Pp |
.Pp |
.Dl \eN\(aq Ns Ar number Ns \(aq |
.Dl \eN\(aq Ns Ar number Ns \(aq and \e[ Ns Cm char Ns Ar number ] |
.Pp |
.Pp |
escape sequence, inserting the character |
escape sequences, inserting the character |
.Ar number |
.Ar number |
from the current character set into the output. |
from the current character set into the output. |
Of course, this is inherently non-portable and is already marked |
Of course, this is inherently non-portable and is already marked |
as deprecated in the Heirloom roff manual. |
as deprecated in the Heirloom roff manual; |
For example, do not use \eN\(aq34\(aq, use \e(dq, or even the plain |
on top of that, the second form is a GNU extension. |
|
For example, do not use \eN\(aq34\(aq or \e[char34], use \e(dq, |
|
or even the plain |
.Sq \(dq |
.Sq \(dq |
character where possible. |
character where possible. |
.Sh COMPATIBILITY |
.Sh COMPATIBILITY |