=================================================================== RCS file: /cvs/mandoc/roff.7,v retrieving revision 1.92 retrieving revision 1.101 diff -u -p -r1.92 -r1.101 --- mandoc/roff.7 2017/06/14 22:51:25 1.92 +++ mandoc/roff.7 2018/08/19 17:46:14 1.101 @@ -1,7 +1,7 @@ -.\" $Id: roff.7,v 1.92 2017/06/14 22:51:25 schwarze Exp $ +.\" $Id: roff.7,v 1.101 2018/08/19 17:46:14 schwarze Exp $ .\" .\" Copyright (c) 2010, 2011, 2012 Kristaps Dzonsons -.\" Copyright (c) 2010,2011,2013-2015,2017 Ingo Schwarze +.\" Copyright (c) 2010-2018 Ingo Schwarze .\" .\" Permission to use, copy, modify, and distribute this software for any .\" purpose with or without fee is hereby granted, provided that the above @@ -15,7 +15,7 @@ .\" ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF .\" OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. .\" -.Dd $Mdocdate: June 14 2017 $ +.Dd $Mdocdate: August 19 2018 $ .Dt ROFF 7 .Os .Sh NAME @@ -86,13 +86,9 @@ character, and, in certain circumstances, the tab char The backslash character .Sq \e indicates the start of an escape sequence, used for example for -.Sx Comments , -.Sx Special Characters , -.Sx Predefined Strings , +.Sx Comments and -user-defined strings defined using the -.Sx ds -request. +.Sx Special Characters . For a listing of escape sequences, consult the .Sx ESCAPE SEQUENCE REFERENCE below. @@ -169,34 +165,6 @@ Text decoration is recommended for .Xr mdoc 7 , which encourages semantic annotation. -.Ss Predefined Strings -Predefined strings, like -.Sx Special Characters , -mark special output glyphs. -Predefined strings are escaped with the slash-asterisk, -.Sq \e* : -single-character -.Sq \e*X , -two-character -.Sq \e*(XX , -and N-character -.Sq \e*[N] . -.Pp -Examples: -.Bl -tag -width Ds -offset indent -compact -.It Li \e*(Am -Two-letter ampersand predefined string. -.It Li \e*q -One-letter double-quote predefined string. -.El -.Pp -Predefined strings are not recommended for use, -as they differ across implementations. -Those supported by -.Xr mandoc 1 -are listed in -.Xr mandoc_char 7 . -Manuals using these predefined strings are almost certainly not portable. .Ss Whitespace Whitespace consists of the space character. In text lines, whitespace is preserved within a line. @@ -206,7 +174,7 @@ Unescaped trailing spaces are stripped from text line literal context. In general, trailing whitespace on any input line is discouraged for reasons of portability. -In the rare case that a blank character is needed at the end of an +In the rare case that a space character is needed at the end of an input line, it may be forced by .Sq \e\ \e& . .Pp @@ -665,7 +633,7 @@ produces .Pp in the input stream, and thus in the output: \fI\^XtFree\^\fP. Each occurrence of \e\e$* is replaced with all the arguments, -joined together with single blank characters. +joined together with single space characters. .Pp Since macros and user-defined strings share a common string table, defining a macro @@ -922,15 +890,15 @@ The following .Ar font arguments are supported: .Bl -tag -width 4n -offset indent -.It Cm B , BI , 3 , 4 +.It Cm B , BI , CB , 3 , 4 switches to .Sy bold font -.It Cm I , 2 +.It Cm I , CI , 2 switches to .Em underlined font -.It Cm R , CW , 1 +.It Cm R , CR , CW , 1 switches to normal font .It Cm P No "or no argument" switches back to the previous font @@ -1037,13 +1005,13 @@ is or .Sq o .Pq odd page , -it evaluates to true. +it evaluates to true, and the +.Ar body +starts with the next character. .It If the first character of .Ar condition is -.Sq c -.Pq character available , .Sq e .Pq even page , .Sq t @@ -1051,11 +1019,24 @@ is or .Sq v .Pq vroff mode , -it evaluates to false. +it evaluates to false, and the +.Ar body +starts with the next character. .It If the first character of .Ar condition is +.Sq c +.Pq character available , +it evaluates to true if the following character is an ASCII character +or a valid character escape sequence, or to false otherwise. +The +.Ar body +starts with the character following that next character. +.It +If the first character of +.Ar condition +is .Sq d , it evaluates to true if the rest of .Ar condition @@ -1346,9 +1327,12 @@ Currently unsupported. Temporarily turn off line numbering. Currently unsupported. .It Ic \&nop Ar body -Execute the rest of the input line as a request or macro line. -Currently unsupported. -.It Ic \&nr Ar register Oo Cm + Ns | Ns Cm - Oc Ns Ar expression +Execute the rest of the input line as a request, macro, or text line, +skipping the +.Ic \&nop +request and any space characters immediately following it. +This is mostly used to indent text lines inside macro definitions. +.It Ic \&nr Ar register Oo Cm + Ns | Ns Cm - Oc Ns Ar expression Op Ar stepsize Define or change a register. A register is an arbitrary string value that defines some sort of state, which influences parsing and/or formatting. @@ -1360,6 +1344,14 @@ below. If it is prefixed by a sign, the register will be incremented or decremented instead of assigned to. .Pp +The +.Ar stepsize +is used by the +.Ic \en+ +auto-increment feature. +It remains unchanged when omitted while changing an existing register, +and it defaults to 0 when defining a new register. +.Pp The following .Ar register is handled specially: @@ -1471,7 +1463,7 @@ This is a groff extension and currently ignored. .It Ic \&rchar Ar glyph ... Remove glyph definitions. Currently unsupported. -.It Ic \&rd Op Ar prompt Op Ar agument ... +.It Ic \&rd Op Ar prompt Op Ar argument ... Read from standard input. Currently ignored. .It Ic \&recursionlimit Ar maxrec maxtail @@ -1840,6 +1832,12 @@ is an unpaddable space-sized non-breaking space charac .Ss \e\(dq The rest of the input line is treated as .Sx Comments . +.Ss \e# +Line continuation with comment. +Discard the rest of the physical input line and continue the logical +input line on the next physical input line, joining the text on +both lines together as if it were on a single input line. +This is a groff extension. .Ss \e% Hyphenation allowed at this point of the word; ignored by .Xr mandoc 1 . @@ -1854,17 +1852,32 @@ instead. .Sx Special Characters with two-letter names, see .Xr mandoc_char 7 . -.Ss \e*[ Ns Ar name ] +.Ss \e* Ns Bq Ar name Interpolate the string with the -.Ar name ; -see -.Sx Predefined Strings -and -.Sx ds . +.Ar name . For short names, there are variants .No \e* Ns Ar c and .No \e*( Ns Ar cc . +.Pp +One string is predefined on the +.Nm +language level: \e*(.T expands to the name of the output device, +for example ascii, utf8, ps, pdf, html, or markdown. +.Pp +Macro sets traditionally predefine additional strings which are not +portable and differ across implementations. +Those supported by +.Xr mandoc 1 +are listed in +.Xr mandoc_char 7 . +.Pp +Strings can be defined, changed, and deleted with the +.Ic \&ds , +.Ic \&as , +and +.Ic \&rm +requests. .Ss \e, Left italic correction (groff extension); ignored by .Xr mandoc 1 . @@ -1874,7 +1887,7 @@ Special character .Ss \e/ Right italic correction (groff extension); ignored by .Xr mandoc 1 . -.Ss \e[ Ns Ar name ] +.Ss \e Ns Bq Ar name .Sx Special Characters with names of arbitrary length, see .Xr mandoc_char 7 . @@ -1930,14 +1943,14 @@ Move down by half a line; ignored by .Xr mandoc 1 . .Ss \ee Backslash special character. -.Ss \eF[ Ns Ar name ] +.Ss \eF Ns Bq Ar name Switch font family (groff extension); ignored by .Xr mandoc 1 . For short names, there are variants .No \eF Ns Ar c and .No \eF( Ns Ar cc . -.Ss \ef[ Ns Ar name ] +.Ss \ef Ns Bq Ar name Switch to the font .Ar name , see @@ -1946,7 +1959,7 @@ For short names, there are variants .No \ef Ns Ar c and .No \ef( Ns Ar cc . -.Ss \eg[ Ns Ar name ] +.Ss \eg Ns Bq Ar name Interpolate the format of a number register; ignored by .Xr mandoc 1 . For short names, there are variants @@ -1956,11 +1969,14 @@ and .Ss \eH\(aq Ns Oo +|- Oc Ns Ar number Ns \(aq Set the height of the current font; ignored by .Xr mandoc 1 . -.Ss \eh\(aq Ns Ar width Ns \(aq -Horizontal motion relative to the current position. +.Ss \eh\(aq Ns Oo Cm \&| Oc Ns Ar width Ns \(aq +Horizontal motion. +If the vertical bar is given, the motion is relative to the current +indentation. +Otherwise, it is relative to the current position. The default scaling unit is .Cm m . -.Ss \ek[ Ns Ar name ] +.Ss \ek Ns Bq Ar name Mark horizontal input place in register; ignored by .Xr mandoc 1 . For short names, there are variants @@ -1975,14 +1991,14 @@ Draw a horizontal line of .Ar width using the glyph .Ar c . -.Ss \eM[ Ns Ar name ] +.Ss \eM Ns Bq Ar name Set fill (background) color (groff extension); ignored by .Xr mandoc 1 . For short names, there are variants .No \eM Ns Ar c and .No \eM( Ns Ar cc . -.Ss \em[ Ns Ar name ] +.Ss \em Ns Bq Ar name Set glyph drawing color (groff extension); ignored by .Xr mandoc 1 . For short names, there are variants @@ -1993,13 +2009,19 @@ and Character .Ar number on the current font. -.Ss \en[ Ns Ar name ] +.Ss \en Ns Oo +|- Oc Ns Bq Ar name Interpolate the number register .Ar name . For short names, there are variants .No \en Ns Ar c and .No \en( Ns Ar cc . +If the optional sign is specified, +the register is first incremented or decremented by the +.Ar stepsize +that was specified in the relevant +.Ic \&nr +request, and the changed value is interpolated. .Ss \eo\(aq Ns Ar string Ns \(aq Overstrike, writing all the characters contained in the .Ar string @@ -2020,9 +2042,9 @@ Change point size; ignored by Alternative forms .No \es Ns Oo +|- Oc Ns Ar n , .No \es Ns Oo +|- Oc Ns \(aq Ns Ar number Ns \(aq , -.No \es Ns [ Oo +|- Oc Ns Ar number ] , +.No \es Ns Bq Oo +|- Oc Ns Ar number , and -.No \es Ns Oo +|- Oc Ns [ Ar number Ns ] +.No \es Ns Oo +|- Oc Ns Bq Ar number are also parsed and ignored. .Ss \et Horizontal tab; ignored by @@ -2030,7 +2052,7 @@ Horizontal tab; ignored by .Ss \eu Move up by half a line; ignored by .Xr mandoc 1 . -.Ss \eV[ Ns Ar name ] +.Ss \eV Ns Bq Ar name Interpolate an environment variable; ignored by .Xr mandoc 1 . For short names, there are variants @@ -2057,7 +2079,7 @@ as device control function; ignored in nroff mode and .Ss \ex\(aq Ns Ar number Ns \(aq Extra line space function; ignored by .Xr mandoc 1 . -.Ss \eY[ Ns Ar name ] +.Ss \eY Ns Bq Ar name Output a string as a device control function; ignored in nroff mode and by .Xr mandoc 1 . For short names, there are variants