-.\" $Id: roff.7,v 1.109 2018/12/16 00:17:02 schwarze Exp $
+.\" $Id: roff.7,v 1.116 2021/09/18 12:23:06 schwarze Exp $
.\"
.\" Copyright (c) 2010, 2011, 2012 Kristaps Dzonsons <kristaps@bsd.lv>
-.\" Copyright (c) 2010-2018 Ingo Schwarze <schwarze@openbsd.org>
+.\" Copyright (c) 2010-2019 Ingo Schwarze <schwarze@openbsd.org>
.\"
.\" Permission to use, copy, modify, and distribute this software for any
.\" purpose with or without fee is hereby granted, provided that the above
.\" ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
.\" OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
.\"
-.Dd $Mdocdate: December 16 2018 $
+.Dd $Mdocdate: September 18 2021 $
.Dt ROFF 7
.Os
.Sh NAME
requests and escapes.
Even though this manual page lists all
.Nm
-requests, it only has partial information about requests not supported by
+requests and escape sequences, it only contains partial information
+about requests not supported by
.Xr mandoc 1
and about language features that do not matter for manual pages.
For complete
.Sx Comments
and
.Sx Special Characters .
-For a listing of escape sequences, consult the
+For a complete listing of escape sequences, consult the
.Sx ESCAPE SEQUENCE REFERENCE
below.
.Ss Comments
.It i
inch
.It P
-pica (~1/6 inch)
+pica (1/6 inch)
.It p
-point (~1/72 inch)
+point (1/72 inch)
.It f
scale
.Sq u
.It u
default horizontal span for the terminal
.It M
-mini-em (~1/100 em)
+mini-em (1/100 em)
.El
.Pp
Using anything other than
The proper spacing is also intelligently preserved if a sentence ends at
the boundary of a macro line.
.Pp
+If an input line happens to end with a period, exclamation or question
+mark that isn't the end of a sentence, append a zero-width space
+.Pq Sq \e& .
+.Pp
Examples:
.Bd -literal -offset indent -compact
Do not end sentences mid-line like this. Instead,
end a sentence like this.
A macro would end like this:
\&.Xr mandoc 1 \&.
+An abbreviation at the end of an input line needs escaping, e.g.\e&
+like this.
.Ed
.Sh REQUEST SYNTAX
A request or macro line consists of:
.It Ic \&br
Break the output line.
.It Ic \&break
-Break out of a
+Break out of the innermost
.Ic \&while
loop.
-Currently unsupported.
.It Ic \&breakchar Ar char ...
Optional line break characters.
This is a Heirloom extension and currently ignored.
.Pp
or
.Bd -literal -offset indent
-.Pf . Ic \&de Ar macroname Ar endmacro
+.Pf . Ic \&de Ar macroname endmacro
.Ar definition
.Pf . Ar endmacro
.Ed
.Pp
Specifying a custom
.Ar endmacro
-macro works in the same way as for
+works in the same way as for
.Ic \&ig ;
namely, the call to
.Sq Pf . Ar endmacro
Enable or disable an OpenType feature.
This is a Heirloom extension and currently ignored.
.It Ic \&fi
-Switch to fill mode.
-See
-.Xr man 7 .
-Ignored in
-.Xr mdoc 7 .
+Break the output line and switch to fill mode,
+which is active by default but can be ended with the
+.Ic \&nf
+request.
+In fill mode, input from subsequent input lines is added to
+the same output line until the next word no longer fits,
+at which point the output line is broken.
+This request is implied by the
+.Xr mdoc 7
+.Ic \&Sh
+macro and by the
+.Xr man 7
+.Ic \&SH ,
+.Ic \&SS ,
+and
+.Ic \&EE
+macros.
.It Ic \&fkern Ar font minkern
Control the use of kerning tables for a font.
This is a Heirloom extension and currently ignored.
before the next trap or the bottom of the page.
Currently ignored.
.It Ic \&nf
-Switch to no-fill mode.
-See
-.Xr man 7 .
-Ignored by
-.Xr mdoc 7 .
+Break the output line and switch to no-fill mode.
+Subsequent input lines are kept together on the same output line
+even when exceeding the right margin,
+and line breaks in subsequent input cause output line breaks.
+This request is implied by the
+.Xr mdoc 7
+.Ic \&Bd Fl unfilled
+and
+.Ic \&Bd Fl literal
+macros and by the
+.Xr man 7
+.Ic \&EX
+macro.
+The
+.Ic \&fi
+request switches back to the default fill mode.
.It Ic \&nh
Turn off automatic hyphenation mode.
Currently ignored.
.Xr mandoc 1
.Nm
parser recognises the following escape sequences.
-Note that the
-.Nm
-language defines more escape sequences not implemented in
-.Xr mandoc 1 .
In
.Xr mdoc 7
and
.Sx LANGUAGE SYNTAX
section above.
.Pp
-In
-.Xr mandoc 1 ,
-a backslash followed by any character not listed here
+A backslash followed by any character not listed here
simply prints that character itself.
.Bl -tag -width Ds
.It Ic \e<newline>
The escape sequence backslash-space
.Pq Sq \e\ \&
is an unpaddable space-sized non-breaking space character; see
-.Sx Whitespace .
+.Sx Whitespace
+and
+.Xr mandoc_char 7 .
.It Ic \e!
Embed text up to and including the end of the input line into the
current diversion or into intermediate output without interpreting
Hyphenation allowed at this point of the word; ignored by
.Xr mandoc 1 .
.It Ic \e&
-Non-printing zero-width character; see
-.Sx Whitespace .
+Non-printing zero-width character,
+often used for various kinds of escaping; see
+.Sx Whitespace ,
+.Xr mandoc_char 7 ,
+and the
+.Dq MACRO SYNTAX
+and
+.Dq Delimiters
+sections in
+.Xr mdoc 7 .
.It Ic \e\(aq
Acute accent special character; use
.Ic \e(aa
.Xr mandoc 1 .
.It Ic \e-
Special character
-.Dq mathematical minus sign .
+.Dq mathematical minus sign ;
+see
+.Xr mandoc_char 7
+for details.
.It Ic \e/
Right italic correction (groff extension); ignored by
.Xr mandoc 1 .
.Ar string
conforms to the syntax of
.Sx Numerical expressions
-explained above and
+explained above or
.Sq 0
otherwise.
.It Ic \eb\(aq Ns Ar string Ns Ic \(aq
Escape character intended to not be interpreted in copy mode.
In
.Xr mandoc 1 ,
-it does the same as
+it currently does the same as
.Ic \e
-itself for now.
+itself.
.It Ic \ee
Backslash special character.
.It Ic \eF[ Ns Ar name Ns Ic \&]
.Pp
The special semantics of the
.Cm nS
-number register is an idiosyncracy of
+number register is an idiosyncrasy of
.Ox
manuals and not supported by other
.Xr mdoc 7
.At v2 ,
then ported nroff to C as troff, which Brian W. Kernighan released with
.At v7 .
-In 1989, James Clarke re-implemented troff in C++, naming it groff.
+In 1989, James Clark re-implemented troff in C++, naming it groff.
.Sh AUTHORS
.An -nosplit
This