1*bbf21555SRichard Lowe.\" $Id: roff.7,v 1.116 2021/09/18 12:23:06 schwarze Exp $ 2*bbf21555SRichard Lowe.\" 3*bbf21555SRichard Lowe.\" Copyright (c) 2010, 2011, 2012 Kristaps Dzonsons <kristaps@bsd.lv> 4*bbf21555SRichard Lowe.\" Copyright (c) 2010-2019 Ingo Schwarze <schwarze@openbsd.org> 5*bbf21555SRichard Lowe.\" 6*bbf21555SRichard Lowe.\" Permission to use, copy, modify, and distribute this software for any 7*bbf21555SRichard Lowe.\" purpose with or without fee is hereby granted, provided that the above 8*bbf21555SRichard Lowe.\" copyright notice and this permission notice appear in all copies. 9*bbf21555SRichard Lowe.\" 10*bbf21555SRichard Lowe.\" THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES 11*bbf21555SRichard Lowe.\" WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF 12*bbf21555SRichard Lowe.\" MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR 13*bbf21555SRichard Lowe.\" ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES 14*bbf21555SRichard Lowe.\" WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN 15*bbf21555SRichard Lowe.\" ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF 16*bbf21555SRichard Lowe.\" OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. 17*bbf21555SRichard Lowe.\" 18*bbf21555SRichard Lowe.Dd $Mdocdate: September 18 2021 $ 19*bbf21555SRichard Lowe.Dt ROFF 7 20*bbf21555SRichard Lowe.Os 21*bbf21555SRichard Lowe.Sh NAME 22*bbf21555SRichard Lowe.Nm roff 23*bbf21555SRichard Lowe.Nd roff language reference for mandoc 24*bbf21555SRichard Lowe.Sh DESCRIPTION 25*bbf21555SRichard LoweThe 26*bbf21555SRichard Lowe.Nm roff 27*bbf21555SRichard Lowelanguage is a general purpose text formatting language. 28*bbf21555SRichard LoweSince traditional implementations of the 29*bbf21555SRichard Lowe.Xr mdoc 7 30*bbf21555SRichard Loweand 31*bbf21555SRichard Lowe.Xr man 7 32*bbf21555SRichard Lowemanual formatting languages are based on it, 33*bbf21555SRichard Lowemany real-world manuals use small numbers of 34*bbf21555SRichard Lowe.Nm 35*bbf21555SRichard Lowerequests and escape sequences intermixed with their 36*bbf21555SRichard Lowe.Xr mdoc 7 37*bbf21555SRichard Loweor 38*bbf21555SRichard Lowe.Xr man 7 39*bbf21555SRichard Lowecode. 40*bbf21555SRichard LoweTo properly format such manuals, the 41*bbf21555SRichard Lowe.Xr mandoc 1 42*bbf21555SRichard Loweutility supports a subset of 43*bbf21555SRichard Lowe.Nm 44*bbf21555SRichard Lowerequests and escapes. 45*bbf21555SRichard LoweEven though this manual page lists all 46*bbf21555SRichard Lowe.Nm 47*bbf21555SRichard Lowerequests and escape sequences, it only contains partial information 48*bbf21555SRichard Loweabout requests not supported by 49*bbf21555SRichard Lowe.Xr mandoc 1 50*bbf21555SRichard Loweand about language features that do not matter for manual pages. 51*bbf21555SRichard LoweFor complete 52*bbf21555SRichard Lowe.Nm 53*bbf21555SRichard Lowemanuals, consult the 54*bbf21555SRichard Lowe.Sx SEE ALSO 55*bbf21555SRichard Lowesection. 56*bbf21555SRichard Lowe.Pp 57*bbf21555SRichard LoweInput lines beginning with the control character 58*bbf21555SRichard Lowe.Sq \&. 59*bbf21555SRichard Loweare parsed for requests and macros. 60*bbf21555SRichard LoweSuch lines are called 61*bbf21555SRichard Lowe.Dq request lines 62*bbf21555SRichard Loweor 63*bbf21555SRichard Lowe.Dq macro lines , 64*bbf21555SRichard Lowerespectively. 65*bbf21555SRichard LoweRequests change the processing state and manipulate the formatting; 66*bbf21555SRichard Lowesome macros also define the document structure and produce formatted 67*bbf21555SRichard Loweoutput. 68*bbf21555SRichard LoweThe single quote 69*bbf21555SRichard Lowe.Pq Qq \(aq 70*bbf21555SRichard Loweis accepted as an alternative control character, 71*bbf21555SRichard Lowetreated by 72*bbf21555SRichard Lowe.Xr mandoc 1 73*bbf21555SRichard Lowejust like 74*bbf21555SRichard Lowe.Ql \&. 75*bbf21555SRichard Lowe.Pp 76*bbf21555SRichard LoweLines not beginning with control characters are called 77*bbf21555SRichard Lowe.Dq text lines . 78*bbf21555SRichard LoweThey provide free-form text to be printed; the formatting of the text 79*bbf21555SRichard Lowedepends on the respective processing context. 80*bbf21555SRichard Lowe.Sh LANGUAGE SYNTAX 81*bbf21555SRichard Lowe.Nm 82*bbf21555SRichard Lowedocuments may contain only graphable 7-bit ASCII characters, the space 83*bbf21555SRichard Lowecharacter, and, in certain circumstances, the tab character. 84*bbf21555SRichard LoweThe backslash character 85*bbf21555SRichard Lowe.Sq \e 86*bbf21555SRichard Loweindicates the start of an escape sequence, used for example for 87*bbf21555SRichard Lowe.Sx Comments 88*bbf21555SRichard Loweand 89*bbf21555SRichard Lowe.Sx Special Characters . 90*bbf21555SRichard LoweFor a complete listing of escape sequences, consult the 91*bbf21555SRichard Lowe.Sx ESCAPE SEQUENCE REFERENCE 92*bbf21555SRichard Lowebelow. 93*bbf21555SRichard Lowe.Ss Comments 94*bbf21555SRichard LoweText following an escaped double-quote 95*bbf21555SRichard Lowe.Sq \e\(dq , 96*bbf21555SRichard Lowewhether in a request, macro, or text line, is ignored to the end of the line. 97*bbf21555SRichard LoweA request line beginning with a control character and comment escape 98*bbf21555SRichard Lowe.Sq \&.\e\(dq 99*bbf21555SRichard Loweis also ignored. 100*bbf21555SRichard LoweFurthermore, request lines with only a control character and optional 101*bbf21555SRichard Lowetrailing whitespace are stripped from input. 102*bbf21555SRichard Lowe.Pp 103*bbf21555SRichard LoweExamples: 104*bbf21555SRichard Lowe.Bd -literal -offset indent -compact 105*bbf21555SRichard Lowe\&.\e\(dq This is a comment line. 106*bbf21555SRichard Lowe\&.\e\(dq The next line is ignored: 107*bbf21555SRichard Lowe\&. 108*bbf21555SRichard Lowe\&.Sh EXAMPLES \e\(dq This is a comment, too. 109*bbf21555SRichard Lowe\&example text \e\(dq And so is this. 110*bbf21555SRichard Lowe.Ed 111*bbf21555SRichard Lowe.Ss Special Characters 112*bbf21555SRichard LoweSpecial characters are used to encode special glyphs and are rendered 113*bbf21555SRichard Lowedifferently across output media. 114*bbf21555SRichard LoweThey may occur in request, macro, and text lines. 115*bbf21555SRichard LoweSequences begin with the escape character 116*bbf21555SRichard Lowe.Sq \e 117*bbf21555SRichard Lowefollowed by either an open-parenthesis 118*bbf21555SRichard Lowe.Sq \&( 119*bbf21555SRichard Lowefor two-character sequences; an open-bracket 120*bbf21555SRichard Lowe.Sq \&[ 121*bbf21555SRichard Lowefor n-character sequences (terminated at a close-bracket 122*bbf21555SRichard Lowe.Sq \&] ) ; 123*bbf21555SRichard Loweor a single one character sequence. 124*bbf21555SRichard Lowe.Pp 125*bbf21555SRichard LoweExamples: 126*bbf21555SRichard Lowe.Bl -tag -width Ds -offset indent -compact 127*bbf21555SRichard Lowe.It Li \e(em 128*bbf21555SRichard LoweTwo-letter em dash escape. 129*bbf21555SRichard Lowe.It Li \ee 130*bbf21555SRichard LoweOne-letter backslash escape. 131*bbf21555SRichard Lowe.El 132*bbf21555SRichard Lowe.Pp 133*bbf21555SRichard LoweSee 134*bbf21555SRichard Lowe.Xr mandoc_char 7 135*bbf21555SRichard Lowefor a complete list. 136*bbf21555SRichard Lowe.Ss Font Selection 137*bbf21555SRichard LoweIn 138*bbf21555SRichard Lowe.Xr mdoc 7 139*bbf21555SRichard Loweand 140*bbf21555SRichard Lowe.Xr man 7 141*bbf21555SRichard Lowedocuments, fonts are usually selected with macros. 142*bbf21555SRichard LoweThe 143*bbf21555SRichard Lowe.Ic \ef 144*bbf21555SRichard Loweescape sequence and the 145*bbf21555SRichard Lowe.Ic \&ft 146*bbf21555SRichard Lowerequest can be used to manually change the font, 147*bbf21555SRichard Lowebut this is not recommended in 148*bbf21555SRichard Lowe.Xr mdoc 7 149*bbf21555SRichard Lowedocuments. 150*bbf21555SRichard LoweSuch manual font changes are overridden by many subsequent macros. 151*bbf21555SRichard Lowe.Pp 152*bbf21555SRichard LoweThe following fonts are supported: 153*bbf21555SRichard Lowe.Pp 154*bbf21555SRichard Lowe.Bl -tag -width CW -offset indent -compact 155*bbf21555SRichard Lowe.It Cm B 156*bbf21555SRichard LoweBold font. 157*bbf21555SRichard Lowe.It Cm BI 158*bbf21555SRichard LoweA font that is both bold and italic. 159*bbf21555SRichard Lowe.It Cm CB 160*bbf21555SRichard LoweBold constant width font. 161*bbf21555SRichard LoweSame as 162*bbf21555SRichard Lowe.Cm B 163*bbf21555SRichard Lowein terminal output. 164*bbf21555SRichard Lowe.It Cm CI 165*bbf21555SRichard LoweItalic constant width font. 166*bbf21555SRichard LoweSame as 167*bbf21555SRichard Lowe.Cm I 168*bbf21555SRichard Lowein terminal output. 169*bbf21555SRichard Lowe.It Cm CR 170*bbf21555SRichard LoweRegular constant width font. 171*bbf21555SRichard LoweSame as 172*bbf21555SRichard Lowe.Cm R 173*bbf21555SRichard Lowein terminal output. 174*bbf21555SRichard Lowe.It Cm CW 175*bbf21555SRichard LoweAn alias for 176*bbf21555SRichard Lowe.Cm CR . 177*bbf21555SRichard Lowe.It Cm I 178*bbf21555SRichard LoweItalic font. 179*bbf21555SRichard Lowe.It Cm P 180*bbf21555SRichard LoweReturn to the previous font. 181*bbf21555SRichard LoweIf a macro caused a font change since the last 182*bbf21555SRichard Lowe.Ic \ef 183*bbf21555SRichard Loweeascape sequence or 184*bbf21555SRichard Lowe.Ic \&ft 185*bbf21555SRichard Lowerequest, this returns to the font before the last font change in 186*bbf21555SRichard Lowethe macro rather than to the font before the last manual font change. 187*bbf21555SRichard Lowe.It Cm R 188*bbf21555SRichard LoweRoman font. 189*bbf21555SRichard LoweThis is the default font. 190*bbf21555SRichard Lowe.It Cm 1 191*bbf21555SRichard LoweAn alias for 192*bbf21555SRichard Lowe.Cm R . 193*bbf21555SRichard Lowe.It Cm 2 194*bbf21555SRichard LoweAn alias for 195*bbf21555SRichard Lowe.Cm I . 196*bbf21555SRichard Lowe.It Cm 3 197*bbf21555SRichard LoweAn alias for 198*bbf21555SRichard Lowe.Cm B . 199*bbf21555SRichard Lowe.It Cm 4 200*bbf21555SRichard LoweAn alias for 201*bbf21555SRichard Lowe.Cm BI . 202*bbf21555SRichard Lowe.El 203*bbf21555SRichard Lowe.Pp 204*bbf21555SRichard LoweExamples: 205*bbf21555SRichard Lowe.Bl -tag -width Ds -offset indent -compact 206*bbf21555SRichard Lowe.It Li \efBbold\efR 207*bbf21555SRichard LoweWrite in \fBbold\fP, then switch to regular font mode. 208*bbf21555SRichard Lowe.It Li \efIitalic\efP 209*bbf21555SRichard LoweWrite in \fIitalic\fP, then return to previous font mode. 210*bbf21555SRichard Lowe.It Li \ef(BIbold italic\efP 211*bbf21555SRichard LoweWrite in \f(BIbold italic\fP, then return to previous font mode. 212*bbf21555SRichard Lowe.El 213*bbf21555SRichard Lowe.Ss Whitespace 214*bbf21555SRichard LoweWhitespace consists of the space character. 215*bbf21555SRichard LoweIn text lines, whitespace is preserved within a line. 216*bbf21555SRichard LoweIn request and macro lines, whitespace delimits arguments and is discarded. 217*bbf21555SRichard Lowe.Pp 218*bbf21555SRichard LoweUnescaped trailing spaces are stripped from text line input unless in a 219*bbf21555SRichard Loweliteral context. 220*bbf21555SRichard LoweIn general, trailing whitespace on any input line is discouraged for 221*bbf21555SRichard Lowereasons of portability. 222*bbf21555SRichard LoweIn the rare case that a space character is needed at the end of an 223*bbf21555SRichard Loweinput line, it may be forced by 224*bbf21555SRichard Lowe.Sq \e\ \e& . 225*bbf21555SRichard Lowe.Pp 226*bbf21555SRichard LoweLiteral space characters can be produced in the output 227*bbf21555SRichard Loweusing escape sequences. 228*bbf21555SRichard LoweIn macro lines, they can also be included in arguments using quotation; see 229*bbf21555SRichard Lowe.Sx MACRO SYNTAX 230*bbf21555SRichard Lowefor details. 231*bbf21555SRichard Lowe.Pp 232*bbf21555SRichard LoweBlank text lines, which may include whitespace, are only permitted 233*bbf21555SRichard Lowewithin literal contexts. 234*bbf21555SRichard LoweIf the first character of a text line is a space, that line is printed 235*bbf21555SRichard Lowewith a leading newline. 236*bbf21555SRichard Lowe.Ss Scaling Widths 237*bbf21555SRichard LoweMany requests and macros support scaled widths for their arguments. 238*bbf21555SRichard LoweThe syntax for a scaled width is 239*bbf21555SRichard Lowe.Sq Li [+-]?[0-9]*.[0-9]*[:unit:] , 240*bbf21555SRichard Lowewhere a decimal must be preceded or followed by at least one digit. 241*bbf21555SRichard Lowe.Pp 242*bbf21555SRichard LoweThe following scaling units are accepted: 243*bbf21555SRichard Lowe.Pp 244*bbf21555SRichard Lowe.Bl -tag -width Ds -offset indent -compact 245*bbf21555SRichard Lowe.It c 246*bbf21555SRichard Lowecentimetre 247*bbf21555SRichard Lowe.It i 248*bbf21555SRichard Loweinch 249*bbf21555SRichard Lowe.It P 250*bbf21555SRichard Lowepica (1/6 inch) 251*bbf21555SRichard Lowe.It p 252*bbf21555SRichard Lowepoint (1/72 inch) 253*bbf21555SRichard Lowe.It f 254*bbf21555SRichard Lowescale 255*bbf21555SRichard Lowe.Sq u 256*bbf21555SRichard Loweby 65536 257*bbf21555SRichard Lowe.It v 258*bbf21555SRichard Lowedefault vertical span 259*bbf21555SRichard Lowe.It m 260*bbf21555SRichard Lowewidth of rendered 261*bbf21555SRichard Lowe.Sq m 262*bbf21555SRichard Lowe.Pq em 263*bbf21555SRichard Lowecharacter 264*bbf21555SRichard Lowe.It n 265*bbf21555SRichard Lowewidth of rendered 266*bbf21555SRichard Lowe.Sq n 267*bbf21555SRichard Lowe.Pq en 268*bbf21555SRichard Lowecharacter 269*bbf21555SRichard Lowe.It u 270*bbf21555SRichard Lowedefault horizontal span for the terminal 271*bbf21555SRichard Lowe.It M 272*bbf21555SRichard Lowemini-em (1/100 em) 273*bbf21555SRichard Lowe.El 274*bbf21555SRichard Lowe.Pp 275*bbf21555SRichard LoweUsing anything other than 276*bbf21555SRichard Lowe.Sq m , 277*bbf21555SRichard Lowe.Sq n , 278*bbf21555SRichard Loweor 279*bbf21555SRichard Lowe.Sq v 280*bbf21555SRichard Loweis necessarily non-portable across output media. 281*bbf21555SRichard LoweSee 282*bbf21555SRichard Lowe.Sx COMPATIBILITY . 283*bbf21555SRichard Lowe.Pp 284*bbf21555SRichard LoweIf a scaling unit is not provided, the numerical value is interpreted 285*bbf21555SRichard Loweunder the default rules of 286*bbf21555SRichard Lowe.Sq v 287*bbf21555SRichard Lowefor vertical spaces and 288*bbf21555SRichard Lowe.Sq u 289*bbf21555SRichard Lowefor horizontal ones. 290*bbf21555SRichard Lowe.Pp 291*bbf21555SRichard LoweExamples: 292*bbf21555SRichard Lowe.Bl -tag -width ".Bl -tag -width 2i" -offset indent -compact 293*bbf21555SRichard Lowe.It Li \&.Bl -tag -width 2i 294*bbf21555SRichard Lowetwo-inch tagged list indentation in 295*bbf21555SRichard Lowe.Xr mdoc 7 296*bbf21555SRichard Lowe.It Li \&.HP 2i 297*bbf21555SRichard Lowetwo-inch tagged list indentation in 298*bbf21555SRichard Lowe.Xr man 7 299*bbf21555SRichard Lowe.It Li \&.sp 2v 300*bbf21555SRichard Lowetwo vertical spaces 301*bbf21555SRichard Lowe.El 302*bbf21555SRichard Lowe.Ss Sentence Spacing 303*bbf21555SRichard LoweEach sentence should terminate at the end of an input line. 304*bbf21555SRichard LoweBy doing this, a formatter will be able to apply the proper amount of 305*bbf21555SRichard Lowespacing after the end of sentence (unescaped) period, exclamation mark, 306*bbf21555SRichard Loweor question mark followed by zero or more non-sentence closing 307*bbf21555SRichard Lowedelimiters 308*bbf21555SRichard Lowe.Po 309*bbf21555SRichard Lowe.Sq \&) , 310*bbf21555SRichard Lowe.Sq \&] , 311*bbf21555SRichard Lowe.Sq \&' , 312*bbf21555SRichard Lowe.Sq \&" 313*bbf21555SRichard Lowe.Pc . 314*bbf21555SRichard Lowe.Pp 315*bbf21555SRichard LoweThe proper spacing is also intelligently preserved if a sentence ends at 316*bbf21555SRichard Lowethe boundary of a macro line. 317*bbf21555SRichard Lowe.Pp 318*bbf21555SRichard LoweIf an input line happens to end with a period, exclamation or question 319*bbf21555SRichard Lowemark that isn't the end of a sentence, append a zero-width space 320*bbf21555SRichard Lowe.Pq Sq \e& . 321*bbf21555SRichard Lowe.Pp 322*bbf21555SRichard LoweExamples: 323*bbf21555SRichard Lowe.Bd -literal -offset indent -compact 324*bbf21555SRichard LoweDo not end sentences mid-line like this. Instead, 325*bbf21555SRichard Loweend a sentence like this. 326*bbf21555SRichard LoweA macro would end like this: 327*bbf21555SRichard Lowe\&.Xr mandoc 1 \&. 328*bbf21555SRichard LoweAn abbreviation at the end of an input line needs escaping, e.g.\e& 329*bbf21555SRichard Lowelike this. 330*bbf21555SRichard Lowe.Ed 331*bbf21555SRichard Lowe.Sh REQUEST SYNTAX 332*bbf21555SRichard LoweA request or macro line consists of: 333*bbf21555SRichard Lowe.Pp 334*bbf21555SRichard Lowe.Bl -enum -compact 335*bbf21555SRichard Lowe.It 336*bbf21555SRichard Lowethe control character 337*bbf21555SRichard Lowe.Sq \&. 338*bbf21555SRichard Loweor 339*bbf21555SRichard Lowe.Sq \(aq 340*bbf21555SRichard Loweat the beginning of the line, 341*bbf21555SRichard Lowe.It 342*bbf21555SRichard Loweoptionally an arbitrary amount of whitespace, 343*bbf21555SRichard Lowe.It 344*bbf21555SRichard Lowethe name of the request or the macro, which is one word of arbitrary 345*bbf21555SRichard Lowelength, terminated by whitespace, 346*bbf21555SRichard Lowe.It 347*bbf21555SRichard Loweand zero or more arguments delimited by whitespace. 348*bbf21555SRichard Lowe.El 349*bbf21555SRichard Lowe.Pp 350*bbf21555SRichard LoweThus, the following request lines are all equivalent: 351*bbf21555SRichard Lowe.Bd -literal -offset indent 352*bbf21555SRichard Lowe\&.ig end 353*bbf21555SRichard Lowe\&.ig end 354*bbf21555SRichard Lowe\&. ig end 355*bbf21555SRichard Lowe.Ed 356*bbf21555SRichard Lowe.Sh MACRO SYNTAX 357*bbf21555SRichard LoweMacros are provided by the 358*bbf21555SRichard Lowe.Xr mdoc 7 359*bbf21555SRichard Loweand 360*bbf21555SRichard Lowe.Xr man 7 361*bbf21555SRichard Lowelanguages and can be defined by the 362*bbf21555SRichard Lowe.Ic \&de 363*bbf21555SRichard Lowerequest. 364*bbf21555SRichard LoweWhen called, they follow the same syntax as requests, except that 365*bbf21555SRichard Lowemacro arguments may optionally be quoted by enclosing them 366*bbf21555SRichard Lowein double quote characters 367*bbf21555SRichard Lowe.Pq Sq \(dq . 368*bbf21555SRichard LoweQuoted text, even if it contains whitespace or would cause 369*bbf21555SRichard Lowea macro invocation when unquoted, is always considered literal text. 370*bbf21555SRichard LoweInside quoted text, pairs of double quote characters 371*bbf21555SRichard Lowe.Pq Sq Qq 372*bbf21555SRichard Loweresolve to single double quote characters. 373*bbf21555SRichard Lowe.Pp 374*bbf21555SRichard LoweTo be recognised as the beginning of a quoted argument, the opening 375*bbf21555SRichard Lowequote character must be preceded by a space character. 376*bbf21555SRichard LoweA quoted argument extends to the next double quote character that is not 377*bbf21555SRichard Lowepart of a pair, or to the end of the input line, whichever comes earlier. 378*bbf21555SRichard LoweLeaving out the terminating double quote character at the end of the line 379*bbf21555SRichard Loweis discouraged. 380*bbf21555SRichard LoweFor clarity, if more arguments follow on the same input line, 381*bbf21555SRichard Loweit is recommended to follow the terminating double quote character 382*bbf21555SRichard Loweby a space character; in case the next character after the terminating 383*bbf21555SRichard Lowedouble quote character is anything else, it is regarded as the beginning 384*bbf21555SRichard Loweof the next, unquoted argument. 385*bbf21555SRichard Lowe.Pp 386*bbf21555SRichard LoweBoth in quoted and unquoted arguments, pairs of backslashes 387*bbf21555SRichard Lowe.Pq Sq \e\e 388*bbf21555SRichard Loweresolve to single backslashes. 389*bbf21555SRichard LoweIn unquoted arguments, space characters can alternatively be included 390*bbf21555SRichard Loweby preceding them with a backslash 391*bbf21555SRichard Lowe.Pq Sq \e\~ , 392*bbf21555SRichard Lowebut quoting is usually better for clarity. 393*bbf21555SRichard Lowe.Pp 394*bbf21555SRichard LoweExamples: 395*bbf21555SRichard Lowe.Bl -tag -width Ds -offset indent -compact 396*bbf21555SRichard Lowe.It Li .Fn strlen \(dqconst char *s\(dq 397*bbf21555SRichard LoweGroup arguments 398*bbf21555SRichard Lowe.Qq const char *s 399*bbf21555SRichard Loweinto one function argument. 400*bbf21555SRichard LoweIf unspecified, 401*bbf21555SRichard Lowe.Qq const , 402*bbf21555SRichard Lowe.Qq char , 403*bbf21555SRichard Loweand 404*bbf21555SRichard Lowe.Qq *s 405*bbf21555SRichard Lowewould be considered separate arguments. 406*bbf21555SRichard Lowe.It Li .Op \(dqFl a\(dq 407*bbf21555SRichard LoweConsider 408*bbf21555SRichard Lowe.Qq \&Fl a 409*bbf21555SRichard Loweas literal text instead of a flag macro. 410*bbf21555SRichard Lowe.El 411*bbf21555SRichard Lowe.Sh REQUEST REFERENCE 412*bbf21555SRichard LoweThe 413*bbf21555SRichard Lowe.Xr mandoc 1 414*bbf21555SRichard Lowe.Nm 415*bbf21555SRichard Loweparser recognises the following requests. 416*bbf21555SRichard LoweFor requests marked as "ignored" or "unsupported", any arguments are 417*bbf21555SRichard Loweignored, and the number of arguments is not checked. 418*bbf21555SRichard Lowe.Bl -tag -width Ds 419*bbf21555SRichard Lowe.It Ic \&ab Op Ar message 420*bbf21555SRichard LoweAbort processing. 421*bbf21555SRichard LoweCurrently unsupported. 422*bbf21555SRichard Lowe.It Ic \&ad Op Cm b | c | l | n | r 423*bbf21555SRichard LoweSet line adjustment mode for subsequent text. 424*bbf21555SRichard LoweCurrently ignored. 425*bbf21555SRichard Lowe.It Ic \&af Ar registername format 426*bbf21555SRichard LoweAssign an output format to a number register. 427*bbf21555SRichard LoweCurrently ignored. 428*bbf21555SRichard Lowe.It Ic \&aln Ar newname oldname 429*bbf21555SRichard LoweCreate an alias for a number register. 430*bbf21555SRichard LoweCurrently unsupported. 431*bbf21555SRichard Lowe.It Ic \&als Ar newname oldname 432*bbf21555SRichard LoweCreate an alias for a request, string, macro, or diversion. 433*bbf21555SRichard Lowe.It Ic \&am Ar macroname Op Ar endmacro 434*bbf21555SRichard LoweAppend to a macro definition. 435*bbf21555SRichard LoweThe syntax of this request is the same as that of 436*bbf21555SRichard Lowe.Ic \&de . 437*bbf21555SRichard Lowe.It Ic \&am1 Ar macroname Op Ar endmacro 438*bbf21555SRichard LoweAppend to a macro definition, switching roff compatibility mode off 439*bbf21555SRichard Loweduring macro execution (groff extension). 440*bbf21555SRichard LoweThe syntax of this request is the same as that of 441*bbf21555SRichard Lowe.Ic \&de1 . 442*bbf21555SRichard LoweSince 443*bbf21555SRichard Lowe.Xr mandoc 1 444*bbf21555SRichard Lowedoes not implement 445*bbf21555SRichard Lowe.Nm 446*bbf21555SRichard Lowecompatibility mode at all, it handles this request as an alias for 447*bbf21555SRichard Lowe.Ic \&am . 448*bbf21555SRichard Lowe.It Ic \&ami Ar macrostring Op Ar endstring 449*bbf21555SRichard LoweAppend to a macro definition, specifying the macro name indirectly 450*bbf21555SRichard Lowe(groff extension). 451*bbf21555SRichard LoweThe syntax of this request is the same as that of 452*bbf21555SRichard Lowe.Ic \&dei . 453*bbf21555SRichard Lowe.It Ic \&ami1 Ar macrostring Op Ar endstring 454*bbf21555SRichard LoweAppend to a macro definition, specifying the macro name indirectly 455*bbf21555SRichard Loweand switching roff compatibility mode off during macro execution 456*bbf21555SRichard Lowe(groff extension). 457*bbf21555SRichard LoweThe syntax of this request is the same as that of 458*bbf21555SRichard Lowe.Ic \&dei1 . 459*bbf21555SRichard LoweSince 460*bbf21555SRichard Lowe.Xr mandoc 1 461*bbf21555SRichard Lowedoes not implement 462*bbf21555SRichard Lowe.Nm 463*bbf21555SRichard Lowecompatibility mode at all, it handles this request as an alias for 464*bbf21555SRichard Lowe.Ic \&ami . 465*bbf21555SRichard Lowe.It Ic \&as Ar stringname Op Ar string 466*bbf21555SRichard LoweAppend to a user-defined string. 467*bbf21555SRichard LoweThe syntax of this request is the same as that of 468*bbf21555SRichard Lowe.Ic \&ds . 469*bbf21555SRichard LoweIf a user-defined string with the specified name does not yet exist, 470*bbf21555SRichard Loweit is set to the empty string before appending. 471*bbf21555SRichard Lowe.It Ic \&as1 Ar stringname Op Ar string 472*bbf21555SRichard LoweAppend to a user-defined string, switching roff compatibility mode off 473*bbf21555SRichard Loweduring macro execution (groff extension). 474*bbf21555SRichard LoweThe syntax of this request is the same as that of 475*bbf21555SRichard Lowe.Ic \&ds1 . 476*bbf21555SRichard LoweSince 477*bbf21555SRichard Lowe.Xr mandoc 1 478*bbf21555SRichard Lowedoes not implement 479*bbf21555SRichard Lowe.Nm 480*bbf21555SRichard Lowecompatibility mode at all, it handles this request as an alias for 481*bbf21555SRichard Lowe.Ic \&as . 482*bbf21555SRichard Lowe.It Ic \&asciify Ar divname 483*bbf21555SRichard LoweFully unformat a diversion. 484*bbf21555SRichard LoweCurrently unsupported. 485*bbf21555SRichard Lowe.It Ic \&backtrace 486*bbf21555SRichard LowePrint a backtrace of the input stack. 487*bbf21555SRichard LoweThis is a groff extension and currently ignored. 488*bbf21555SRichard Lowe.It Ic \&bd Ar font Oo Ar curfont Oc Op Ar offset 489*bbf21555SRichard LoweArtificially embolden by repeated printing with small shifts. 490*bbf21555SRichard LoweCurrently ignored. 491*bbf21555SRichard Lowe.It Ic \&bleedat Ar left top width height 492*bbf21555SRichard LoweSet the BleedBox page parameter for PDF generation. 493*bbf21555SRichard LoweThis is a Heirloom extension and currently ignored. 494*bbf21555SRichard Lowe.It Ic \&blm Ar macroname 495*bbf21555SRichard LoweSet a blank line trap. 496*bbf21555SRichard LoweCurrently unsupported. 497*bbf21555SRichard Lowe.It Ic \&box Ar divname 498*bbf21555SRichard LoweBegin a diversion without including a partially filled line. 499*bbf21555SRichard LoweCurrently unsupported. 500*bbf21555SRichard Lowe.It Ic \&boxa Ar divname 501*bbf21555SRichard LoweAdd to a diversion without including a partially filled line. 502*bbf21555SRichard LoweCurrently unsupported. 503*bbf21555SRichard Lowe.It Ic \&bp Oo Cm + Ns | Ns Cm - Oc Ns Ar pagenumber 504*bbf21555SRichard LoweBegin a new page. 505*bbf21555SRichard LoweCurrently ignored. 506*bbf21555SRichard Lowe.It Ic \&BP Ar source height width position offset flags label 507*bbf21555SRichard LoweDefine a frame and place a picture in it. 508*bbf21555SRichard LoweThis is a Heirloom extension and currently unsupported. 509*bbf21555SRichard Lowe.It Ic \&br 510*bbf21555SRichard LoweBreak the output line. 511*bbf21555SRichard Lowe.It Ic \&break 512*bbf21555SRichard LoweBreak out of the innermost 513*bbf21555SRichard Lowe.Ic \&while 514*bbf21555SRichard Loweloop. 515*bbf21555SRichard Lowe.It Ic \&breakchar Ar char ... 516*bbf21555SRichard LoweOptional line break characters. 517*bbf21555SRichard LoweThis is a Heirloom extension and currently ignored. 518*bbf21555SRichard Lowe.It Ic \&brnl Ar N 519*bbf21555SRichard LoweBreak output line after the next 520*bbf21555SRichard Lowe.Ar N 521*bbf21555SRichard Loweinput lines. 522*bbf21555SRichard LoweThis is a Heirloom extension and currently ignored. 523*bbf21555SRichard Lowe.It Ic \&brp 524*bbf21555SRichard LoweBreak and spread output line. 525*bbf21555SRichard LoweCurrently, this is implemented as an alias for 526*bbf21555SRichard Lowe.Ic \&br . 527*bbf21555SRichard Lowe.It Ic \&brpnl Ar N 528*bbf21555SRichard LoweBreak and spread output line after the next 529*bbf21555SRichard Lowe.Ar N 530*bbf21555SRichard Loweinput lines. 531*bbf21555SRichard LoweThis is a Heirloom extension and currently ignored. 532*bbf21555SRichard Lowe.It Ic \&c2 Op Ar char 533*bbf21555SRichard LoweChange the no-break control character. 534*bbf21555SRichard LoweCurrently unsupported. 535*bbf21555SRichard Lowe.It Ic \&cc Op Ar char 536*bbf21555SRichard LoweChange the control character. 537*bbf21555SRichard LoweIf 538*bbf21555SRichard Lowe.Ar char 539*bbf21555SRichard Loweis not specified, the control character is reset to 540*bbf21555SRichard Lowe.Sq \&. . 541*bbf21555SRichard LoweTrailing characters are ignored. 542*bbf21555SRichard Lowe.It Ic \&ce Op Ar N 543*bbf21555SRichard LoweCenter the next 544*bbf21555SRichard Lowe.Ar N 545*bbf21555SRichard Loweinput lines without filling. 546*bbf21555SRichard Lowe.Ar N 547*bbf21555SRichard Lowedefaults to 1. 548*bbf21555SRichard LoweAn argument of 0 or less ends centering. 549*bbf21555SRichard LoweCurrently, high level macros abort centering. 550*bbf21555SRichard Lowe.It Ic \&cf Ar filename 551*bbf21555SRichard LoweOutput the contents of a file. 552*bbf21555SRichard LoweIgnored because insecure. 553*bbf21555SRichard Lowe.It Ic \&cflags Ar flags char ... 554*bbf21555SRichard LoweSet character flags. 555*bbf21555SRichard LoweThis is a groff extension and currently ignored. 556*bbf21555SRichard Lowe.It Ic \&ch Ar macroname Op Ar dist 557*bbf21555SRichard LoweChange a trap location. 558*bbf21555SRichard LoweCurrently ignored. 559*bbf21555SRichard Lowe.It Ic \&char Ar glyph Op Ar string 560*bbf21555SRichard LoweDefine or redefine the ASCII character or character escape sequence 561*bbf21555SRichard Lowe.Ar glyph 562*bbf21555SRichard Loweto be rendered as 563*bbf21555SRichard Lowe.Ar string , 564*bbf21555SRichard Lowewhich can be empty. 565*bbf21555SRichard LoweOnly partially supported in 566*bbf21555SRichard Lowe.Xr mandoc 1 ; 567*bbf21555SRichard Lowemay interact incorrectly with 568*bbf21555SRichard Lowe.Ic \&tr . 569*bbf21555SRichard Lowe.It Ic \&chop Ar stringname 570*bbf21555SRichard LoweRemove the last character from a macro, string, or diversion. 571*bbf21555SRichard LoweCurrently unsupported. 572*bbf21555SRichard Lowe.It Ic \&class Ar classname char ... 573*bbf21555SRichard LoweDefine a character class. 574*bbf21555SRichard LoweThis is a groff extension and currently ignored. 575*bbf21555SRichard Lowe.It Ic \&close Ar streamname 576*bbf21555SRichard LoweClose an open file. 577*bbf21555SRichard LoweIgnored because insecure. 578*bbf21555SRichard Lowe.It Ic \&CL Ar color text 579*bbf21555SRichard LowePrint text in color. 580*bbf21555SRichard LoweThis is a Heirloom extension and currently unsupported. 581*bbf21555SRichard Lowe.It Ic \&color Op Cm 1 | 0 582*bbf21555SRichard LoweActivate or deactivate colors. 583*bbf21555SRichard LoweThis is a groff extension and currently ignored. 584*bbf21555SRichard Lowe.It Ic \&composite Ar from to 585*bbf21555SRichard LoweDefine a name component for composite glyph names. 586*bbf21555SRichard LoweThis is a groff extension and currently unsupported. 587*bbf21555SRichard Lowe.It Ic \&continue 588*bbf21555SRichard LoweImmediately start the next iteration of a 589*bbf21555SRichard Lowe.Ic \&while 590*bbf21555SRichard Loweloop. 591*bbf21555SRichard LoweCurrently unsupported. 592*bbf21555SRichard Lowe.It Ic \&cp Op Cm 1 | 0 593*bbf21555SRichard LoweSwitch 594*bbf21555SRichard Lowe.Nm 595*bbf21555SRichard Lowecompatibility mode on or off. 596*bbf21555SRichard LoweCurrently ignored. 597*bbf21555SRichard Lowe.It Ic \&cropat Ar left top width height 598*bbf21555SRichard LoweSet the CropBox page parameter for PDF generation. 599*bbf21555SRichard LoweThis is a Heirloom extension and currently ignored. 600*bbf21555SRichard Lowe.It Ic \&cs Ar font Op Ar width Op Ar emsize 601*bbf21555SRichard LoweConstant character spacing mode. 602*bbf21555SRichard LoweCurrently ignored. 603*bbf21555SRichard Lowe.It Ic \&cu Op Ar N 604*bbf21555SRichard LoweUnderline next 605*bbf21555SRichard Lowe.Ar N 606*bbf21555SRichard Loweinput lines including whitespace. 607*bbf21555SRichard LoweCurrently ignored. 608*bbf21555SRichard Lowe.It Ic \&da Ar divname 609*bbf21555SRichard LoweAppend to a diversion. 610*bbf21555SRichard LoweCurrently unsupported. 611*bbf21555SRichard Lowe.It Ic \&dch Ar macroname Op Ar dist 612*bbf21555SRichard LoweChange a trap location in the current diversion. 613*bbf21555SRichard LoweThis is a Heirloom extension and currently unsupported. 614*bbf21555SRichard Lowe.It Ic \&de Ar macroname Op Ar endmacro 615*bbf21555SRichard LoweDefine a 616*bbf21555SRichard Lowe.Nm 617*bbf21555SRichard Lowemacro. 618*bbf21555SRichard LoweIts syntax can be either 619*bbf21555SRichard Lowe.Bd -literal -offset indent 620*bbf21555SRichard Lowe.Pf . Ic \&de Ar macroname 621*bbf21555SRichard Lowe.Ar definition 622*bbf21555SRichard Lowe\&.. 623*bbf21555SRichard Lowe.Ed 624*bbf21555SRichard Lowe.Pp 625*bbf21555SRichard Loweor 626*bbf21555SRichard Lowe.Bd -literal -offset indent 627*bbf21555SRichard Lowe.Pf . Ic \&de Ar macroname endmacro 628*bbf21555SRichard Lowe.Ar definition 629*bbf21555SRichard Lowe.Pf . Ar endmacro 630*bbf21555SRichard Lowe.Ed 631*bbf21555SRichard Lowe.Pp 632*bbf21555SRichard LoweBoth forms define or redefine the macro 633*bbf21555SRichard Lowe.Ar macroname 634*bbf21555SRichard Loweto represent the 635*bbf21555SRichard Lowe.Ar definition , 636*bbf21555SRichard Lowewhich may consist of one or more input lines, including the newline 637*bbf21555SRichard Lowecharacters terminating each line, optionally containing calls to 638*bbf21555SRichard Lowe.Nm 639*bbf21555SRichard Lowerequests, 640*bbf21555SRichard Lowe.Nm 641*bbf21555SRichard Lowemacros or high-level macros like 642*bbf21555SRichard Lowe.Xr man 7 643*bbf21555SRichard Loweor 644*bbf21555SRichard Lowe.Xr mdoc 7 645*bbf21555SRichard Lowemacros, whichever applies to the document in question. 646*bbf21555SRichard Lowe.Pp 647*bbf21555SRichard LoweSpecifying a custom 648*bbf21555SRichard Lowe.Ar endmacro 649*bbf21555SRichard Loweworks in the same way as for 650*bbf21555SRichard Lowe.Ic \&ig ; 651*bbf21555SRichard Lowenamely, the call to 652*bbf21555SRichard Lowe.Sq Pf . Ar endmacro 653*bbf21555SRichard Lowefirst ends the 654*bbf21555SRichard Lowe.Ar definition , 655*bbf21555SRichard Loweand after that, it is also evaluated as a 656*bbf21555SRichard Lowe.Nm 657*bbf21555SRichard Lowerequest or 658*bbf21555SRichard Lowe.Nm 659*bbf21555SRichard Lowemacro, but not as a high-level macro. 660*bbf21555SRichard Lowe.Pp 661*bbf21555SRichard LoweThe macro can be invoked later using the syntax 662*bbf21555SRichard Lowe.Pp 663*bbf21555SRichard Lowe.D1 Pf . Ar macroname Op Ar argument Op Ar argument ... 664*bbf21555SRichard Lowe.Pp 665*bbf21555SRichard LoweRegarding argument parsing, see 666*bbf21555SRichard Lowe.Sx MACRO SYNTAX 667*bbf21555SRichard Loweabove. 668*bbf21555SRichard Lowe.Pp 669*bbf21555SRichard LoweThe line invoking the macro will be replaced 670*bbf21555SRichard Lowein the input stream by the 671*bbf21555SRichard Lowe.Ar definition , 672*bbf21555SRichard Lowereplacing all occurrences of 673*bbf21555SRichard Lowe.No \e\e$ Ns Ar N , 674*bbf21555SRichard Lowewhere 675*bbf21555SRichard Lowe.Ar N 676*bbf21555SRichard Loweis a digit, by the 677*bbf21555SRichard Lowe.Ar N Ns th Ar argument . 678*bbf21555SRichard LoweFor example, 679*bbf21555SRichard Lowe.Bd -literal -offset indent 680*bbf21555SRichard Lowe\&.de ZN 681*bbf21555SRichard Lowe\efI\e^\e\e$1\e^\efP\e\e$2 682*bbf21555SRichard Lowe\&.. 683*bbf21555SRichard Lowe\&.ZN XtFree . 684*bbf21555SRichard Lowe.Ed 685*bbf21555SRichard Lowe.Pp 686*bbf21555SRichard Loweproduces 687*bbf21555SRichard Lowe.Pp 688*bbf21555SRichard Lowe.D1 \efI\e^XtFree\e^\efP. 689*bbf21555SRichard Lowe.Pp 690*bbf21555SRichard Lowein the input stream, and thus in the output: \fI\^XtFree\^\fP. 691*bbf21555SRichard LoweEach occurrence of \e\e$* is replaced with all the arguments, 692*bbf21555SRichard Lowejoined together with single space characters. 693*bbf21555SRichard LoweThe variant \e\e$@ is similar, except that each argument is 694*bbf21555SRichard Loweindividually quoted. 695*bbf21555SRichard Lowe.Pp 696*bbf21555SRichard LoweSince macros and user-defined strings share a common string table, 697*bbf21555SRichard Lowedefining a macro 698*bbf21555SRichard Lowe.Ar macroname 699*bbf21555SRichard Loweclobbers the user-defined string 700*bbf21555SRichard Lowe.Ar macroname , 701*bbf21555SRichard Loweand the 702*bbf21555SRichard Lowe.Ar definition 703*bbf21555SRichard Lowecan also be printed using the 704*bbf21555SRichard Lowe.Sq \e* 705*bbf21555SRichard Lowestring interpolation syntax described below 706*bbf21555SRichard Lowe.Ic ds , 707*bbf21555SRichard Lowebut this is rarely useful because every macro definition contains at least 708*bbf21555SRichard Loweone explicit newline character. 709*bbf21555SRichard Lowe.Pp 710*bbf21555SRichard LoweIn order to prevent endless recursion, both groff and 711*bbf21555SRichard Lowe.Xr mandoc 1 712*bbf21555SRichard Lowelimit the stack depth for expanding macros and strings 713*bbf21555SRichard Loweto a large, but finite number, and 714*bbf21555SRichard Lowe.Xr mandoc 1 715*bbf21555SRichard Lowealso limits the length of the expanded input line. 716*bbf21555SRichard LoweDo not rely on the exact values of these limits. 717*bbf21555SRichard Lowe.It Ic \&de1 Ar macroname Op Ar endmacro 718*bbf21555SRichard LoweDefine a 719*bbf21555SRichard Lowe.Nm 720*bbf21555SRichard Lowemacro that will be executed with 721*bbf21555SRichard Lowe.Nm 722*bbf21555SRichard Lowecompatibility mode switched off during macro execution. 723*bbf21555SRichard LoweThis is a groff extension. 724*bbf21555SRichard LoweSince 725*bbf21555SRichard Lowe.Xr mandoc 1 726*bbf21555SRichard Lowedoes not implement 727*bbf21555SRichard Lowe.Nm 728*bbf21555SRichard Lowecompatibility mode at all, it handles this request as an alias for 729*bbf21555SRichard Lowe.Ic \&de . 730*bbf21555SRichard Lowe.It Ic \&defcolor Ar newname scheme component ... 731*bbf21555SRichard LoweDefine a color name. 732*bbf21555SRichard LoweThis is a groff extension and currently ignored. 733*bbf21555SRichard Lowe.It Ic \&dei Ar macrostring Op Ar endstring 734*bbf21555SRichard LoweDefine a 735*bbf21555SRichard Lowe.Nm 736*bbf21555SRichard Lowemacro, specifying the macro name indirectly (groff extension). 737*bbf21555SRichard LoweThe syntax of this request is the same as that of 738*bbf21555SRichard Lowe.Ic \&de . 739*bbf21555SRichard LoweThe effect is the same as: 740*bbf21555SRichard Lowe.Pp 741*bbf21555SRichard Lowe.D1 Pf . Cm \&de No \e* Ns Bo Ar macrostring Bc Op \e* Ns Bq Ar endstring 742*bbf21555SRichard Lowe.It Ic \&dei1 Ar macrostring Op Ar endstring 743*bbf21555SRichard LoweDefine a 744*bbf21555SRichard Lowe.Nm 745*bbf21555SRichard Lowemacro that will be executed with 746*bbf21555SRichard Lowe.Nm 747*bbf21555SRichard Lowecompatibility mode switched off during macro execution, 748*bbf21555SRichard Lowespecifying the macro name indirectly (groff extension). 749*bbf21555SRichard LoweSince 750*bbf21555SRichard Lowe.Xr mandoc 1 751*bbf21555SRichard Lowedoes not implement 752*bbf21555SRichard Lowe.Nm 753*bbf21555SRichard Lowecompatibility mode at all, it handles this request as an alias for 754*bbf21555SRichard Lowe.Ic \&dei . 755*bbf21555SRichard Lowe.It Ic \&device Ar string ... 756*bbf21555SRichard Lowe.It Ic \&devicem Ar stringname 757*bbf21555SRichard LoweThese two requests only make sense with the groff-specific intermediate 758*bbf21555SRichard Loweoutput format and are unsupported. 759*bbf21555SRichard Lowe.It Ic \&di Ar divname 760*bbf21555SRichard LoweBegin a diversion. 761*bbf21555SRichard LoweCurrently unsupported. 762*bbf21555SRichard Lowe.It Ic \&do Ar command Op Ar argument ... 763*bbf21555SRichard LoweExecute 764*bbf21555SRichard Lowe.Nm 765*bbf21555SRichard Lowerequest or macro line with compatibility mode disabled. 766*bbf21555SRichard LoweCurrently unsupported. 767*bbf21555SRichard Lowe.It Ic \&ds Ar stringname Op Oo \(dq Oc Ns Ar string 768*bbf21555SRichard LoweDefine a user-defined string. 769*bbf21555SRichard LoweThe 770*bbf21555SRichard Lowe.Ar stringname 771*bbf21555SRichard Loweand 772*bbf21555SRichard Lowe.Ar string 773*bbf21555SRichard Lowearguments are space-separated. 774*bbf21555SRichard LoweIf the 775*bbf21555SRichard Lowe.Ar string 776*bbf21555SRichard Lowebegins with a double-quote character, that character will not be part 777*bbf21555SRichard Loweof the string. 778*bbf21555SRichard LoweAll remaining characters on the input line form the 779*bbf21555SRichard Lowe.Ar string , 780*bbf21555SRichard Loweincluding whitespace and double-quote characters, even trailing ones. 781*bbf21555SRichard Lowe.Pp 782*bbf21555SRichard LoweThe 783*bbf21555SRichard Lowe.Ar string 784*bbf21555SRichard Lowecan be interpolated into subsequent text by using 785*bbf21555SRichard Lowe.No \e* Ns Bq Ar stringname 786*bbf21555SRichard Lowefor a 787*bbf21555SRichard Lowe.Ar stringname 788*bbf21555SRichard Loweof arbitrary length, or \e*(NN or \e*N if the length of 789*bbf21555SRichard Lowe.Ar stringname 790*bbf21555SRichard Loweis two or one characters, respectively. 791*bbf21555SRichard LoweInterpolation can be prevented by escaping the leading backslash; 792*bbf21555SRichard Lowethat is, an asterisk preceded by an even number of backslashes 793*bbf21555SRichard Lowedoes not trigger string interpolation. 794*bbf21555SRichard Lowe.Pp 795*bbf21555SRichard LoweSince user-defined strings and macros share a common string table, 796*bbf21555SRichard Lowedefining a string 797*bbf21555SRichard Lowe.Ar stringname 798*bbf21555SRichard Loweclobbers the macro 799*bbf21555SRichard Lowe.Ar stringname , 800*bbf21555SRichard Loweand the 801*bbf21555SRichard Lowe.Ar stringname 802*bbf21555SRichard Loweused for defining a string can also be invoked as a macro, 803*bbf21555SRichard Lowein which case the following input line will be appended to the 804*bbf21555SRichard Lowe.Ar string , 805*bbf21555SRichard Loweforming a new input line passed to the 806*bbf21555SRichard Lowe.Nm 807*bbf21555SRichard Loweparser. 808*bbf21555SRichard LoweFor example, 809*bbf21555SRichard Lowe.Bd -literal -offset indent 810*bbf21555SRichard Lowe\&.ds badidea .S 811*bbf21555SRichard Lowe\&.badidea 812*bbf21555SRichard LoweH SYNOPSIS 813*bbf21555SRichard Lowe.Ed 814*bbf21555SRichard Lowe.Pp 815*bbf21555SRichard Loweinvokes the 816*bbf21555SRichard Lowe.Ic SH 817*bbf21555SRichard Lowemacro when used in a 818*bbf21555SRichard Lowe.Xr man 7 819*bbf21555SRichard Lowedocument. 820*bbf21555SRichard LoweSuch abuse is of course strongly discouraged. 821*bbf21555SRichard Lowe.It Ic \&ds1 Ar stringname Op Oo \(dq Oc Ns Ar string 822*bbf21555SRichard LoweDefine a user-defined string that will be expanded with 823*bbf21555SRichard Lowe.Nm 824*bbf21555SRichard Lowecompatibility mode switched off during string expansion. 825*bbf21555SRichard LoweThis is a groff extension. 826*bbf21555SRichard LoweSince 827*bbf21555SRichard Lowe.Xr mandoc 1 828*bbf21555SRichard Lowedoes not implement 829*bbf21555SRichard Lowe.Nm 830*bbf21555SRichard Lowecompatibility mode at all, it handles this request as an alias for 831*bbf21555SRichard Lowe.Ic \&ds . 832*bbf21555SRichard Lowe.It Ic \&dwh Ar dist macroname 833*bbf21555SRichard LoweSet a location trap in the current diversion. 834*bbf21555SRichard LoweThis is a Heirloom extension and currently unsupported. 835*bbf21555SRichard Lowe.It Ic \&dt Op Ar dist macroname 836*bbf21555SRichard LoweSet a trap within a diversion. 837*bbf21555SRichard LoweCurrently unsupported. 838*bbf21555SRichard Lowe.It Ic \&ec Op Ar char 839*bbf21555SRichard LoweEnable the escape mechanism and change the escape character. 840*bbf21555SRichard LoweThe 841*bbf21555SRichard Lowe.Ar char 842*bbf21555SRichard Loweargument defaults to the backslash 843*bbf21555SRichard Lowe.Pq Sq \e . 844*bbf21555SRichard Lowe.It Ic \&ecr 845*bbf21555SRichard LoweRestore the escape character. 846*bbf21555SRichard LoweCurrently unsupported. 847*bbf21555SRichard Lowe.It Ic \&ecs 848*bbf21555SRichard LoweSave the escape character. 849*bbf21555SRichard LoweCurrently unsupported. 850*bbf21555SRichard Lowe.It Ic \&el Ar body 851*bbf21555SRichard LoweThe 852*bbf21555SRichard Lowe.Dq else 853*bbf21555SRichard Lowehalf of an if/else conditional. 854*bbf21555SRichard LowePops a result off the stack of conditional evaluations pushed by 855*bbf21555SRichard Lowe.Ic \&ie 856*bbf21555SRichard Loweand uses it as its conditional. 857*bbf21555SRichard LoweIf no stack entries are present (e.g., due to no prior 858*bbf21555SRichard Lowe.Ic \&ie 859*bbf21555SRichard Lowecalls) 860*bbf21555SRichard Lowethen false is assumed. 861*bbf21555SRichard LoweThe syntax of this request is similar to 862*bbf21555SRichard Lowe.Ic \&if 863*bbf21555SRichard Loweexcept that the conditional is missing. 864*bbf21555SRichard Lowe.It Ic \&em Ar macroname 865*bbf21555SRichard LoweSet a trap at the end of input. 866*bbf21555SRichard LoweCurrently unsupported. 867*bbf21555SRichard Lowe.It Ic \&EN 868*bbf21555SRichard LoweEnd an equation block. 869*bbf21555SRichard LoweSee 870*bbf21555SRichard Lowe.Ic \&EQ . 871*bbf21555SRichard Lowe.It Ic \&eo 872*bbf21555SRichard LoweDisable the escape mechanism completely. 873*bbf21555SRichard Lowe.It Ic \&EP 874*bbf21555SRichard LoweEnd a picture started by 875*bbf21555SRichard Lowe.Ic \&BP . 876*bbf21555SRichard LoweThis is a Heirloom extension and currently unsupported. 877*bbf21555SRichard Lowe.It Ic \&EQ 878*bbf21555SRichard LoweBegin an equation block. 879*bbf21555SRichard LoweSee 880*bbf21555SRichard Lowe.Xr eqn 7 881*bbf21555SRichard Lowefor a description of the equation language. 882*bbf21555SRichard Lowe.It Ic \&errprint Ar message 883*bbf21555SRichard LowePrint a string like an error message. 884*bbf21555SRichard LoweThis is a Heirloom extension and currently ignored. 885*bbf21555SRichard Lowe.It Ic \&ev Op Ar envname 886*bbf21555SRichard LoweSwitch to another environment. 887*bbf21555SRichard LoweCurrently unsupported. 888*bbf21555SRichard Lowe.It Ic \&evc Op Ar envname 889*bbf21555SRichard LoweCopy an environment into the current environment. 890*bbf21555SRichard LoweCurrently unsupported. 891*bbf21555SRichard Lowe.It Ic \&ex 892*bbf21555SRichard LoweAbort processing and exit. 893*bbf21555SRichard LoweCurrently unsupported. 894*bbf21555SRichard Lowe.It Ic \&fallback Ar curfont font ... 895*bbf21555SRichard LoweSelect the fallback sequence for a font. 896*bbf21555SRichard LoweThis is a Heirloom extension and currently ignored. 897*bbf21555SRichard Lowe.It Ic \&fam Op Ar familyname 898*bbf21555SRichard LoweChange the font family. 899*bbf21555SRichard LoweThis is a groff extension and currently ignored. 900*bbf21555SRichard Lowe.It Ic \&fc Op Ar delimchar Op Ar padchar 901*bbf21555SRichard LoweDefine a delimiting and a padding character for fields. 902*bbf21555SRichard LoweCurrently unsupported. 903*bbf21555SRichard Lowe.It Ic \&fchar Ar glyphname Op Ar string 904*bbf21555SRichard LoweDefine a fallback glyph. 905*bbf21555SRichard LoweCurrently unsupported. 906*bbf21555SRichard Lowe.It Ic \&fcolor Ar colorname 907*bbf21555SRichard LoweSet the fill color for \eD objects. 908*bbf21555SRichard LoweThis is a groff extension and currently ignored. 909*bbf21555SRichard Lowe.It Ic \&fdeferlig Ar font string ... 910*bbf21555SRichard LoweDefer ligature building. 911*bbf21555SRichard LoweThis is a Heirloom extension and currently ignored. 912*bbf21555SRichard Lowe.It Ic \&feature Cm + Ns | Ns Cm - Ns Ar name 913*bbf21555SRichard LoweEnable or disable an OpenType feature. 914*bbf21555SRichard LoweThis is a Heirloom extension and currently ignored. 915*bbf21555SRichard Lowe.It Ic \&fi 916*bbf21555SRichard LoweBreak the output line and switch to fill mode, 917*bbf21555SRichard Lowewhich is active by default but can be ended with the 918*bbf21555SRichard Lowe.Ic \&nf 919*bbf21555SRichard Lowerequest. 920*bbf21555SRichard LoweIn fill mode, input from subsequent input lines is added to 921*bbf21555SRichard Lowethe same output line until the next word no longer fits, 922*bbf21555SRichard Loweat which point the output line is broken. 923*bbf21555SRichard LoweThis request is implied by the 924*bbf21555SRichard Lowe.Xr mdoc 7 925*bbf21555SRichard Lowe.Ic \&Sh 926*bbf21555SRichard Lowemacro and by the 927*bbf21555SRichard Lowe.Xr man 7 928*bbf21555SRichard Lowe.Ic \&SH , 929*bbf21555SRichard Lowe.Ic \&SS , 930*bbf21555SRichard Loweand 931*bbf21555SRichard Lowe.Ic \&EE 932*bbf21555SRichard Lowemacros. 933*bbf21555SRichard Lowe.It Ic \&fkern Ar font minkern 934*bbf21555SRichard LoweControl the use of kerning tables for a font. 935*bbf21555SRichard LoweThis is a Heirloom extension and currently ignored. 936*bbf21555SRichard Lowe.It Ic \&fl 937*bbf21555SRichard LoweFlush output. 938*bbf21555SRichard LoweCurrently ignored. 939*bbf21555SRichard Lowe.It Ic \&flig Ar font string char ... 940*bbf21555SRichard LoweDefine ligatures. 941*bbf21555SRichard LoweThis is a Heirloom extension and currently ignored. 942*bbf21555SRichard Lowe.It Ic \&fp Ar position font Op Ar filename 943*bbf21555SRichard LoweAssign font position. 944*bbf21555SRichard LoweCurrently ignored. 945*bbf21555SRichard Lowe.It Ic \&fps Ar mapname ... 946*bbf21555SRichard LoweMount a font with a special character map. 947*bbf21555SRichard LoweThis is a Heirloom extension and currently ignored. 948*bbf21555SRichard Lowe.It Ic \&fschar Ar font glyphname Op Ar string 949*bbf21555SRichard LoweDefine a font-specific fallback glyph. 950*bbf21555SRichard LoweThis is a groff extension and currently unsupported. 951*bbf21555SRichard Lowe.It Ic \&fspacewidth Ar font Op Ar afmunits 952*bbf21555SRichard LoweSet a font-specific width for the space character. 953*bbf21555SRichard LoweThis is a Heirloom extension and currently ignored. 954*bbf21555SRichard Lowe.It Ic \&fspecial Ar curfont Op Ar font ... 955*bbf21555SRichard LoweConditionally define a special font. 956*bbf21555SRichard LoweThis is a groff extension and currently ignored. 957*bbf21555SRichard Lowe.It Ic \&ft Op Ar font 958*bbf21555SRichard LoweChange the font; see 959*bbf21555SRichard Lowe.Sx Font Selection . 960*bbf21555SRichard LoweThe 961*bbf21555SRichard Lowe.Ar font 962*bbf21555SRichard Loweargument defaults to 963*bbf21555SRichard Lowe.Cm P . 964*bbf21555SRichard Lowe.It Ic \&ftr Ar newname Op Ar oldname 965*bbf21555SRichard LoweTranslate font name. 966*bbf21555SRichard LoweThis is a groff extension and currently ignored. 967*bbf21555SRichard Lowe.It Ic \&fzoom Ar font Op Ar permille 968*bbf21555SRichard LoweZoom font size. 969*bbf21555SRichard LoweCurrently ignored. 970*bbf21555SRichard Lowe.It Ic \&gcolor Op Ar colorname 971*bbf21555SRichard LoweSet glyph color. 972*bbf21555SRichard LoweThis is a groff extension and currently ignored. 973*bbf21555SRichard Lowe.It Ic \&hc Op Ar char 974*bbf21555SRichard LoweSet the hyphenation character. 975*bbf21555SRichard LoweCurrently ignored. 976*bbf21555SRichard Lowe.It Ic \&hcode Ar char code ... 977*bbf21555SRichard LoweSet hyphenation codes of characters. 978*bbf21555SRichard LoweCurrently ignored. 979*bbf21555SRichard Lowe.It Ic \&hidechar Ar font char ... 980*bbf21555SRichard LoweHide characters in a font. 981*bbf21555SRichard LoweThis is a Heirloom extension and currently ignored. 982*bbf21555SRichard Lowe.It Ic \&hla Ar language 983*bbf21555SRichard LoweSet hyphenation language. 984*bbf21555SRichard LoweThis is a groff extension and currently ignored. 985*bbf21555SRichard Lowe.It Ic \&hlm Op Ar number 986*bbf21555SRichard LoweSet maximum number of consecutive hyphenated lines. 987*bbf21555SRichard LoweCurrently ignored. 988*bbf21555SRichard Lowe.It Ic \&hpf Ar filename 989*bbf21555SRichard LoweLoad hyphenation pattern file. 990*bbf21555SRichard LoweThis is a groff extension and currently ignored. 991*bbf21555SRichard Lowe.It Ic \&hpfa Ar filename 992*bbf21555SRichard LoweLoad hyphenation pattern file, appending to the current patterns. 993*bbf21555SRichard LoweThis is a groff extension and currently ignored. 994*bbf21555SRichard Lowe.It Ic \&hpfcode Ar code code ... 995*bbf21555SRichard LoweDefine mapping values for character codes in hyphenation patterns. 996*bbf21555SRichard LoweThis is a groff extension and currently ignored. 997*bbf21555SRichard Lowe.It Ic \&hw Ar word ... 998*bbf21555SRichard LoweSpecify hyphenation points in words. 999*bbf21555SRichard LoweCurrently ignored. 1000*bbf21555SRichard Lowe.It Ic \&hy Op Ar mode 1001*bbf21555SRichard LoweSet automatic hyphenation mode. 1002*bbf21555SRichard LoweCurrently ignored. 1003*bbf21555SRichard Lowe.It Ic \&hylang Ar language 1004*bbf21555SRichard LoweSet hyphenation language. 1005*bbf21555SRichard LoweThis is a Heirloom extension and currently ignored. 1006*bbf21555SRichard Lowe.It Ic \&hylen Ar nchar 1007*bbf21555SRichard LoweMinimum word length for hyphenation. 1008*bbf21555SRichard LoweThis is a Heirloom extension and currently ignored. 1009*bbf21555SRichard Lowe.It Ic \&hym Op Ar length 1010*bbf21555SRichard LoweSet hyphenation margin. 1011*bbf21555SRichard LoweThis is a groff extension and currently ignored. 1012*bbf21555SRichard Lowe.It Ic \&hypp Ar penalty ... 1013*bbf21555SRichard LoweDefine hyphenation penalties. 1014*bbf21555SRichard LoweThis is a Heirloom extension and currently ignored. 1015*bbf21555SRichard Lowe.It Ic \&hys Op Ar length 1016*bbf21555SRichard LoweSet hyphenation space. 1017*bbf21555SRichard LoweThis is a groff extension and currently ignored. 1018*bbf21555SRichard Lowe.It Ic \&ie Ar condition body 1019*bbf21555SRichard LoweThe 1020*bbf21555SRichard Lowe.Dq if 1021*bbf21555SRichard Lowehalf of an if/else conditional. 1022*bbf21555SRichard LoweThe result of the conditional is pushed into a stack used by subsequent 1023*bbf21555SRichard Loweinvocations of 1024*bbf21555SRichard Lowe.Ic \&el , 1025*bbf21555SRichard Lowewhich may be separated by any intervening input (or not exist at all). 1026*bbf21555SRichard LoweIts syntax is equivalent to 1027*bbf21555SRichard Lowe.Ic \&if . 1028*bbf21555SRichard Lowe.It Ic \&if Ar condition body 1029*bbf21555SRichard LoweBegin a conditional. 1030*bbf21555SRichard LoweThis request can also be written as follows: 1031*bbf21555SRichard Lowe.Bd -unfilled -offset indent 1032*bbf21555SRichard Lowe.Pf . Ic \&if Ar condition No \e{ Ns Ar body 1033*bbf21555SRichard Lowe.Ar body ... Ns \e} 1034*bbf21555SRichard Lowe.Ed 1035*bbf21555SRichard Lowe.Bd -unfilled -offset indent 1036*bbf21555SRichard Lowe.Pf . Ic \&if Ar condition No \e{\e 1037*bbf21555SRichard Lowe.Ar body ... 1038*bbf21555SRichard Lowe.Pf . No \e} 1039*bbf21555SRichard Lowe.Ed 1040*bbf21555SRichard Lowe.Pp 1041*bbf21555SRichard LoweThe 1042*bbf21555SRichard Lowe.Ar condition 1043*bbf21555SRichard Loweis a boolean expression. 1044*bbf21555SRichard LoweCurrently, 1045*bbf21555SRichard Lowe.Xr mandoc 1 1046*bbf21555SRichard Lowesupports the following subset of roff conditionals: 1047*bbf21555SRichard Lowe.Bl -bullet 1048*bbf21555SRichard Lowe.It 1049*bbf21555SRichard LoweIf 1050*bbf21555SRichard Lowe.Sq \&! 1051*bbf21555SRichard Loweis prefixed to 1052*bbf21555SRichard Lowe.Ar condition , 1053*bbf21555SRichard Loweit is logically inverted. 1054*bbf21555SRichard Lowe.It 1055*bbf21555SRichard LoweIf the first character of 1056*bbf21555SRichard Lowe.Ar condition 1057*bbf21555SRichard Loweis 1058*bbf21555SRichard Lowe.Sq n 1059*bbf21555SRichard Lowe.Pq nroff mode 1060*bbf21555SRichard Loweor 1061*bbf21555SRichard Lowe.Sq o 1062*bbf21555SRichard Lowe.Pq odd page , 1063*bbf21555SRichard Loweit evaluates to true, and the 1064*bbf21555SRichard Lowe.Ar body 1065*bbf21555SRichard Lowestarts with the next character. 1066*bbf21555SRichard Lowe.It 1067*bbf21555SRichard LoweIf the first character of 1068*bbf21555SRichard Lowe.Ar condition 1069*bbf21555SRichard Loweis 1070*bbf21555SRichard Lowe.Sq e 1071*bbf21555SRichard Lowe.Pq even page , 1072*bbf21555SRichard Lowe.Sq t 1073*bbf21555SRichard Lowe.Pq troff mode , 1074*bbf21555SRichard Loweor 1075*bbf21555SRichard Lowe.Sq v 1076*bbf21555SRichard Lowe.Pq vroff mode , 1077*bbf21555SRichard Loweit evaluates to false, and the 1078*bbf21555SRichard Lowe.Ar body 1079*bbf21555SRichard Lowestarts with the next character. 1080*bbf21555SRichard Lowe.It 1081*bbf21555SRichard LoweIf the first character of 1082*bbf21555SRichard Lowe.Ar condition 1083*bbf21555SRichard Loweis 1084*bbf21555SRichard Lowe.Sq c 1085*bbf21555SRichard Lowe.Pq character available , 1086*bbf21555SRichard Loweit evaluates to true if the following character is an ASCII character 1087*bbf21555SRichard Loweor a valid character escape sequence, or to false otherwise. 1088*bbf21555SRichard LoweThe 1089*bbf21555SRichard Lowe.Ar body 1090*bbf21555SRichard Lowestarts with the character following that next character. 1091*bbf21555SRichard Lowe.It 1092*bbf21555SRichard LoweIf the first character of 1093*bbf21555SRichard Lowe.Ar condition 1094*bbf21555SRichard Loweis 1095*bbf21555SRichard Lowe.Sq d , 1096*bbf21555SRichard Loweit evaluates to true if the rest of 1097*bbf21555SRichard Lowe.Ar condition 1098*bbf21555SRichard Loweis the name of an existing user defined macro or string; 1099*bbf21555SRichard Loweotherwise, it evaluates to false. 1100*bbf21555SRichard Lowe.It 1101*bbf21555SRichard LoweIf the first character of 1102*bbf21555SRichard Lowe.Ar condition 1103*bbf21555SRichard Loweis 1104*bbf21555SRichard Lowe.Sq r , 1105*bbf21555SRichard Loweit evaluates to true if the rest of 1106*bbf21555SRichard Lowe.Ar condition 1107*bbf21555SRichard Loweis the name of an existing number register; 1108*bbf21555SRichard Loweotherwise, it evaluates to false. 1109*bbf21555SRichard Lowe.It 1110*bbf21555SRichard LoweIf the 1111*bbf21555SRichard Lowe.Ar condition 1112*bbf21555SRichard Lowestarts with a parenthesis or with an optionally signed 1113*bbf21555SRichard Loweinteger number, it is evaluated according to the rules of 1114*bbf21555SRichard Lowe.Sx Numerical expressions 1115*bbf21555SRichard Loweexplained below. 1116*bbf21555SRichard LoweIt evaluates to true if the result is positive, 1117*bbf21555SRichard Loweor to false if the result is zero or negative. 1118*bbf21555SRichard Lowe.It 1119*bbf21555SRichard LoweOtherwise, the first character of 1120*bbf21555SRichard Lowe.Ar condition 1121*bbf21555SRichard Loweis regarded as a delimiter and it evaluates to true if the string 1122*bbf21555SRichard Loweextending from its first to its second occurrence is equal to the 1123*bbf21555SRichard Lowestring extending from its second to its third occurrence. 1124*bbf21555SRichard Lowe.It 1125*bbf21555SRichard LoweIf 1126*bbf21555SRichard Lowe.Ar condition 1127*bbf21555SRichard Lowecannot be parsed, it evaluates to false. 1128*bbf21555SRichard Lowe.El 1129*bbf21555SRichard Lowe.Pp 1130*bbf21555SRichard LoweIf a conditional is false, its children are not processed, but are 1131*bbf21555SRichard Lowesyntactically interpreted to preserve the integrity of the input 1132*bbf21555SRichard Lowedocument. 1133*bbf21555SRichard LoweThus, 1134*bbf21555SRichard Lowe.Pp 1135*bbf21555SRichard Lowe.D1 \&.if t .ig 1136*bbf21555SRichard Lowe.Pp 1137*bbf21555SRichard Lowewill discard the 1138*bbf21555SRichard Lowe.Sq \&.ig , 1139*bbf21555SRichard Lowewhich may lead to interesting results, but 1140*bbf21555SRichard Lowe.Pp 1141*bbf21555SRichard Lowe.D1 \&.if t .if t \e{\e 1142*bbf21555SRichard Lowe.Pp 1143*bbf21555SRichard Lowewill continue to syntactically interpret to the block close of the final 1144*bbf21555SRichard Loweconditional. 1145*bbf21555SRichard LoweSub-conditionals, in this case, obviously inherit the truth value of 1146*bbf21555SRichard Lowethe parent. 1147*bbf21555SRichard Lowe.Pp 1148*bbf21555SRichard LoweIf the 1149*bbf21555SRichard Lowe.Ar body 1150*bbf21555SRichard Lowesection is begun by an escaped brace 1151*bbf21555SRichard Lowe.Sq \e{ , 1152*bbf21555SRichard Lowescope continues until the end of the input line containing the 1153*bbf21555SRichard Lowematching closing-brace escape sequence 1154*bbf21555SRichard Lowe.Sq \e} . 1155*bbf21555SRichard LoweIf the 1156*bbf21555SRichard Lowe.Ar body 1157*bbf21555SRichard Loweis not enclosed in braces, scope continues until the end of the line. 1158*bbf21555SRichard LoweIf the 1159*bbf21555SRichard Lowe.Ar condition 1160*bbf21555SRichard Loweis followed by a 1161*bbf21555SRichard Lowe.Ar body 1162*bbf21555SRichard Loweon the same line, whether after a brace or not, then requests and macros 1163*bbf21555SRichard Lowe.Em must 1164*bbf21555SRichard Lowebegin with a control character. 1165*bbf21555SRichard LoweIt is generally more intuitive, in this case, to write 1166*bbf21555SRichard Lowe.Bd -unfilled -offset indent 1167*bbf21555SRichard Lowe.Pf . Ic \&if Ar condition No \e{\e 1168*bbf21555SRichard Lowe.Pf . Ar request 1169*bbf21555SRichard Lowe.Pf . No \e} 1170*bbf21555SRichard Lowe.Ed 1171*bbf21555SRichard Lowe.Pp 1172*bbf21555SRichard Lowethan having the request or macro follow as 1173*bbf21555SRichard Lowe.Pp 1174*bbf21555SRichard Lowe.D1 Pf . Ic \&if Ar condition Pf \e{. Ar request 1175*bbf21555SRichard Lowe.Pp 1176*bbf21555SRichard LoweThe scope of a conditional is always parsed, but only executed if the 1177*bbf21555SRichard Loweconditional evaluates to true. 1178*bbf21555SRichard Lowe.Pp 1179*bbf21555SRichard LoweNote that the 1180*bbf21555SRichard Lowe.Sq \e} 1181*bbf21555SRichard Loweis converted into a zero-width escape sequence if not passed as a 1182*bbf21555SRichard Lowestandalone macro 1183*bbf21555SRichard Lowe.Sq \&.\e} . 1184*bbf21555SRichard LoweFor example, 1185*bbf21555SRichard Lowe.Pp 1186*bbf21555SRichard Lowe.D1 \&.Fl a \e} b 1187*bbf21555SRichard Lowe.Pp 1188*bbf21555SRichard Lowewill result in 1189*bbf21555SRichard Lowe.Sq \e} 1190*bbf21555SRichard Lowebeing considered an argument of the 1191*bbf21555SRichard Lowe.Sq \&Fl 1192*bbf21555SRichard Lowemacro. 1193*bbf21555SRichard Lowe.It Ic \&ig Op Ar endmacro 1194*bbf21555SRichard LoweIgnore input. 1195*bbf21555SRichard LoweIts syntax can be either 1196*bbf21555SRichard Lowe.Bd -literal -offset indent 1197*bbf21555SRichard Lowe.Pf . Cm \&ig 1198*bbf21555SRichard Lowe.Ar ignored text 1199*bbf21555SRichard Lowe\&.. 1200*bbf21555SRichard Lowe.Ed 1201*bbf21555SRichard Lowe.Pp 1202*bbf21555SRichard Loweor 1203*bbf21555SRichard Lowe.Bd -literal -offset indent 1204*bbf21555SRichard Lowe.Pf . Cm \&ig Ar endmacro 1205*bbf21555SRichard Lowe.Ar ignored text 1206*bbf21555SRichard Lowe.Pf . Ar endmacro 1207*bbf21555SRichard Lowe.Ed 1208*bbf21555SRichard Lowe.Pp 1209*bbf21555SRichard LoweIn the first case, input is ignored until a 1210*bbf21555SRichard Lowe.Sq \&.. 1211*bbf21555SRichard Lowerequest is encountered on its own line. 1212*bbf21555SRichard LoweIn the second case, input is ignored until the specified 1213*bbf21555SRichard Lowe.Sq Pf . Ar endmacro 1214*bbf21555SRichard Loweis encountered. 1215*bbf21555SRichard LoweDo not use the escape character 1216*bbf21555SRichard Lowe.Sq \e 1217*bbf21555SRichard Loweanywhere in the definition of 1218*bbf21555SRichard Lowe.Ar endmacro ; 1219*bbf21555SRichard Loweit would cause very strange behaviour. 1220*bbf21555SRichard Lowe.Pp 1221*bbf21555SRichard LoweWhen the 1222*bbf21555SRichard Lowe.Ar endmacro 1223*bbf21555SRichard Loweis a roff request or a roff macro, like in 1224*bbf21555SRichard Lowe.Pp 1225*bbf21555SRichard Lowe.D1 \&.ig if 1226*bbf21555SRichard Lowe.Pp 1227*bbf21555SRichard Lowethe subsequent invocation of 1228*bbf21555SRichard Lowe.Ic \&if 1229*bbf21555SRichard Lowewill first terminate the 1230*bbf21555SRichard Lowe.Ar ignored text , 1231*bbf21555SRichard Lowethen be invoked as usual. 1232*bbf21555SRichard LoweOtherwise, it only terminates the 1233*bbf21555SRichard Lowe.Ar ignored text , 1234*bbf21555SRichard Loweand arguments following it or the 1235*bbf21555SRichard Lowe.Sq \&.. 1236*bbf21555SRichard Lowerequest are discarded. 1237*bbf21555SRichard Lowe.It Ic \&in Op Oo Cm + Ns | Ns Cm - Oc Ns Ar width 1238*bbf21555SRichard LoweChange indentation. 1239*bbf21555SRichard LoweSee 1240*bbf21555SRichard Lowe.Xr man 7 . 1241*bbf21555SRichard LoweIgnored in 1242*bbf21555SRichard Lowe.Xr mdoc 7 . 1243*bbf21555SRichard Lowe.It Ic \&index Ar register stringname substring 1244*bbf21555SRichard LoweFind a substring in a string. 1245*bbf21555SRichard LoweThis is a Heirloom extension and currently unsupported. 1246*bbf21555SRichard Lowe.It Ic \&it Ar expression macro 1247*bbf21555SRichard LoweSet an input line trap. 1248*bbf21555SRichard LoweThe named 1249*bbf21555SRichard Lowe.Ar macro 1250*bbf21555SRichard Lowewill be invoked after processing the number of input text lines 1251*bbf21555SRichard Lowespecified by the numerical 1252*bbf21555SRichard Lowe.Ar expression . 1253*bbf21555SRichard LoweWhile evaluating the 1254*bbf21555SRichard Lowe.Ar expression , 1255*bbf21555SRichard Lowethe unit suffixes described below 1256*bbf21555SRichard Lowe.Sx Scaling Widths 1257*bbf21555SRichard Loweare ignored. 1258*bbf21555SRichard Lowe.It Ic \&itc Ar expression macro 1259*bbf21555SRichard LoweSet an input line trap, not counting lines ending with \ec. 1260*bbf21555SRichard LoweCurrently unsupported. 1261*bbf21555SRichard Lowe.It Ic \&IX Ar class keystring 1262*bbf21555SRichard LoweTo support the generation of a table of contents, 1263*bbf21555SRichard Lowe.Xr pod2man 1 1264*bbf21555SRichard Loweemits this user-defined macro, usually without defining it. 1265*bbf21555SRichard LoweTo avoid reporting large numbers of spurious errors, 1266*bbf21555SRichard Lowe.Xr mandoc 1 1267*bbf21555SRichard Loweignores it. 1268*bbf21555SRichard Lowe.It Ic \&kern Op Cm 1 | 0 1269*bbf21555SRichard LoweSwitch kerning on or off. 1270*bbf21555SRichard LoweCurrently ignored. 1271*bbf21555SRichard Lowe.It Ic \&kernafter Ar font char ... afmunits ... 1272*bbf21555SRichard LoweIncrease kerning after some characters. 1273*bbf21555SRichard LoweThis is a Heirloom extension and currently ignored. 1274*bbf21555SRichard Lowe.It Ic \&kernbefore Ar font char ... afmunits ... 1275*bbf21555SRichard LoweIncrease kerning before some characters. 1276*bbf21555SRichard LoweThis is a Heirloom extension and currently ignored. 1277*bbf21555SRichard Lowe.It Ic \&kernpair Ar font char ... font char ... afmunits 1278*bbf21555SRichard LoweAdd a kerning pair to the kerning table. 1279*bbf21555SRichard LoweThis is a Heirloom extension and currently ignored. 1280*bbf21555SRichard Lowe.It Ic \&lc Op Ar glyph 1281*bbf21555SRichard LoweDefine a leader repetition character. 1282*bbf21555SRichard LoweCurrently unsupported. 1283*bbf21555SRichard Lowe.It Ic \&lc_ctype Ar localename 1284*bbf21555SRichard LoweSet the 1285*bbf21555SRichard Lowe.Dv LC_CTYPE 1286*bbf21555SRichard Lowelocale. 1287*bbf21555SRichard LoweThis is a Heirloom extension and currently unsupported. 1288*bbf21555SRichard Lowe.It Ic \&lds Ar macroname string 1289*bbf21555SRichard LoweDefine a local string. 1290*bbf21555SRichard LoweThis is a Heirloom extension and currently unsupported. 1291*bbf21555SRichard Lowe.It Ic \&length Ar register string 1292*bbf21555SRichard LoweCount the number of input characters in a string. 1293*bbf21555SRichard LoweCurrently unsupported. 1294*bbf21555SRichard Lowe.It Ic \&letadj Ar lspmin lshmin letss lspmax lshmax 1295*bbf21555SRichard LoweDynamic letter spacing and reshaping. 1296*bbf21555SRichard LoweThis is a Heirloom extension and currently ignored. 1297*bbf21555SRichard Lowe.It Ic \&lf Ar lineno Op Ar filename 1298*bbf21555SRichard LoweChange the line number for error messages. 1299*bbf21555SRichard LoweIgnored because insecure. 1300*bbf21555SRichard Lowe.It Ic \&lg Op Cm 1 | 0 1301*bbf21555SRichard LoweSwitch the ligature mechanism on or off. 1302*bbf21555SRichard LoweCurrently ignored. 1303*bbf21555SRichard Lowe.It Ic \&lhang Ar font char ... afmunits 1304*bbf21555SRichard LoweHang characters at left margin. 1305*bbf21555SRichard LoweThis is a Heirloom extension and currently ignored. 1306*bbf21555SRichard Lowe.It Ic \&linetabs Op Cm 1 | 0 1307*bbf21555SRichard LoweEnable or disable line-tabs mode. 1308*bbf21555SRichard LoweThis is a groff extension and currently unsupported. 1309*bbf21555SRichard Lowe.It Ic \&ll Op Oo Cm + Ns | Ns Cm - Oc Ns Ar width 1310*bbf21555SRichard LoweChange the output line length. 1311*bbf21555SRichard LoweIf the 1312*bbf21555SRichard Lowe.Ar width 1313*bbf21555SRichard Loweargument is omitted, the line length is reset to its previous value. 1314*bbf21555SRichard LoweThe default setting for terminal output is 78n. 1315*bbf21555SRichard LoweIf a sign is given, the line length is added to or subtracted from; 1316*bbf21555SRichard Loweotherwise, it is set to the provided value. 1317*bbf21555SRichard LoweUsing this request in new manuals is discouraged for several reasons, 1318*bbf21555SRichard Loweamong others because it overrides the 1319*bbf21555SRichard Lowe.Xr mandoc 1 1320*bbf21555SRichard Lowe.Fl O Cm width 1321*bbf21555SRichard Lowecommand line option. 1322*bbf21555SRichard Lowe.It Ic \&lnr Ar register Oo Cm + Ns | Ns Cm - Oc Ns Ar value Op Ar increment 1323*bbf21555SRichard LoweSet local number register. 1324*bbf21555SRichard LoweThis is a Heirloom extension and currently unsupported. 1325*bbf21555SRichard Lowe.It Ic \&lnrf Ar register Oo Cm + Ns | Ns Cm - Oc Ns Ar value Op Ar increment 1326*bbf21555SRichard LoweSet local floating-point register. 1327*bbf21555SRichard LoweThis is a Heirloom extension and currently unsupported. 1328*bbf21555SRichard Lowe.It Ic \&lpfx Ar string 1329*bbf21555SRichard LoweSet a line prefix. 1330*bbf21555SRichard LoweThis is a Heirloom extension and currently unsupported. 1331*bbf21555SRichard Lowe.It Ic \&ls Op Ar factor 1332*bbf21555SRichard LoweSet line spacing. 1333*bbf21555SRichard LoweIt takes one integer argument specifying the vertical distance of 1334*bbf21555SRichard Lowesubsequent output text lines measured in v units. 1335*bbf21555SRichard LoweCurrently ignored. 1336*bbf21555SRichard Lowe.It Ic \&lsm Ar macroname 1337*bbf21555SRichard LoweSet a leading spaces trap. 1338*bbf21555SRichard LoweThis is a groff extension and currently unsupported. 1339*bbf21555SRichard Lowe.It Ic \< Op Oo Cm + Ns | Ns Cm - Oc Ns Ar width 1340*bbf21555SRichard LoweSet title line length. 1341*bbf21555SRichard LoweCurrently ignored. 1342*bbf21555SRichard Lowe.It Ic \&mc Ar glyph Op Ar dist 1343*bbf21555SRichard LowePrint margin character in the right margin. 1344*bbf21555SRichard LoweThe 1345*bbf21555SRichard Lowe.Ar dist 1346*bbf21555SRichard Loweis currently ignored; instead, 1n is used. 1347*bbf21555SRichard Lowe.It Ic \&mediasize Ar media 1348*bbf21555SRichard LoweSet the device media size. 1349*bbf21555SRichard LoweThis is a Heirloom extension and currently ignored. 1350*bbf21555SRichard Lowe.It Ic \&minss Ar width 1351*bbf21555SRichard LoweSet minimum word space. 1352*bbf21555SRichard LoweThis is a Heirloom extension and currently ignored. 1353*bbf21555SRichard Lowe.It Ic \&mk Op Ar register 1354*bbf21555SRichard LoweMark vertical position. 1355*bbf21555SRichard LoweCurrently ignored. 1356*bbf21555SRichard Lowe.It Ic \&mso Ar filename 1357*bbf21555SRichard LoweLoad a macro file using the search path. 1358*bbf21555SRichard LoweIgnored because insecure. 1359*bbf21555SRichard Lowe.It Ic \&na 1360*bbf21555SRichard LoweDisable adjusting without changing the adjustment mode. 1361*bbf21555SRichard LoweCurrently ignored. 1362*bbf21555SRichard Lowe.It Ic \&ne Op Ar height 1363*bbf21555SRichard LoweDeclare the need for the specified minimum vertical space 1364*bbf21555SRichard Lowebefore the next trap or the bottom of the page. 1365*bbf21555SRichard LoweCurrently ignored. 1366*bbf21555SRichard Lowe.It Ic \&nf 1367*bbf21555SRichard LoweBreak the output line and switch to no-fill mode. 1368*bbf21555SRichard LoweSubsequent input lines are kept together on the same output line 1369*bbf21555SRichard Loweeven when exceeding the right margin, 1370*bbf21555SRichard Loweand line breaks in subsequent input cause output line breaks. 1371*bbf21555SRichard LoweThis request is implied by the 1372*bbf21555SRichard Lowe.Xr mdoc 7 1373*bbf21555SRichard Lowe.Ic \&Bd Fl unfilled 1374*bbf21555SRichard Loweand 1375*bbf21555SRichard Lowe.Ic \&Bd Fl literal 1376*bbf21555SRichard Lowemacros and by the 1377*bbf21555SRichard Lowe.Xr man 7 1378*bbf21555SRichard Lowe.Ic \&EX 1379*bbf21555SRichard Lowemacro. 1380*bbf21555SRichard LoweThe 1381*bbf21555SRichard Lowe.Ic \&fi 1382*bbf21555SRichard Lowerequest switches back to the default fill mode. 1383*bbf21555SRichard Lowe.It Ic \&nh 1384*bbf21555SRichard LoweTurn off automatic hyphenation mode. 1385*bbf21555SRichard LoweCurrently ignored. 1386*bbf21555SRichard Lowe.It Ic \&nhychar Ar char ... 1387*bbf21555SRichard LoweDefine hyphenation-inhibiting characters. 1388*bbf21555SRichard LoweThis is a Heirloom extension and currently ignored. 1389*bbf21555SRichard Lowe.It Ic \&nm Op Ar start Op Ar inc Op Ar space Op Ar indent 1390*bbf21555SRichard LowePrint line numbers. 1391*bbf21555SRichard LoweCurrently unsupported. 1392*bbf21555SRichard Lowe.It Ic \&nn Op Ar number 1393*bbf21555SRichard LoweTemporarily turn off line numbering. 1394*bbf21555SRichard LoweCurrently unsupported. 1395*bbf21555SRichard Lowe.It Ic \&nop Ar body 1396*bbf21555SRichard LoweExecute the rest of the input line as a request, macro, or text line, 1397*bbf21555SRichard Loweskipping the 1398*bbf21555SRichard Lowe.Ic \&nop 1399*bbf21555SRichard Lowerequest and any space characters immediately following it. 1400*bbf21555SRichard LoweThis is mostly used to indent text lines inside macro definitions. 1401*bbf21555SRichard Lowe.It Ic \&nr Ar register Oo Cm + Ns | Ns Cm - Oc Ns Ar expression Op Ar stepsize 1402*bbf21555SRichard LoweDefine or change a register. 1403*bbf21555SRichard LoweA register is an arbitrary string value that defines some sort of state, 1404*bbf21555SRichard Lowewhich influences parsing and/or formatting. 1405*bbf21555SRichard LoweFor the syntax of 1406*bbf21555SRichard Lowe.Ar expression , 1407*bbf21555SRichard Lowesee 1408*bbf21555SRichard Lowe.Sx Numerical expressions 1409*bbf21555SRichard Lowebelow. 1410*bbf21555SRichard LoweIf it is prefixed by a sign, the register will be 1411*bbf21555SRichard Loweincremented or decremented instead of assigned to. 1412*bbf21555SRichard Lowe.Pp 1413*bbf21555SRichard LoweThe 1414*bbf21555SRichard Lowe.Ar stepsize 1415*bbf21555SRichard Loweis used by the 1416*bbf21555SRichard Lowe.Ic \en+ 1417*bbf21555SRichard Loweauto-increment feature. 1418*bbf21555SRichard LoweIt remains unchanged when omitted while changing an existing register, 1419*bbf21555SRichard Loweand it defaults to 0 when defining a new register. 1420*bbf21555SRichard Lowe.Pp 1421*bbf21555SRichard LoweThe following 1422*bbf21555SRichard Lowe.Ar register 1423*bbf21555SRichard Loweis handled specially: 1424*bbf21555SRichard Lowe.Bl -tag -width Ds 1425*bbf21555SRichard Lowe.It Cm nS 1426*bbf21555SRichard LoweIf set to a positive integer value, certain 1427*bbf21555SRichard Lowe.Xr mdoc 7 1428*bbf21555SRichard Lowemacros will behave in the same way as in the 1429*bbf21555SRichard Lowe.Em SYNOPSIS 1430*bbf21555SRichard Lowesection. 1431*bbf21555SRichard LoweIf set to 0, these macros will behave in the same way as outside the 1432*bbf21555SRichard Lowe.Em SYNOPSIS 1433*bbf21555SRichard Lowesection, even when called within the 1434*bbf21555SRichard Lowe.Em SYNOPSIS 1435*bbf21555SRichard Lowesection itself. 1436*bbf21555SRichard LoweNote that starting a new 1437*bbf21555SRichard Lowe.Xr mdoc 7 1438*bbf21555SRichard Lowesection with the 1439*bbf21555SRichard Lowe.Ic \&Sh 1440*bbf21555SRichard Lowemacro will reset this register. 1441*bbf21555SRichard Lowe.El 1442*bbf21555SRichard Lowe.It Xo 1443*bbf21555SRichard Lowe.Ic \&nrf Ar register Oo Cm + Ns | Ns Cm - Oc Ns Ar expression 1444*bbf21555SRichard Lowe.Op Ar increment 1445*bbf21555SRichard Lowe.Xc 1446*bbf21555SRichard LoweDefine or change a floating-point register. 1447*bbf21555SRichard LoweThis is a Heirloom extension and currently unsupported. 1448*bbf21555SRichard Lowe.It Ic \&nroff 1449*bbf21555SRichard LoweForce nroff mode. 1450*bbf21555SRichard LoweThis is a groff extension and currently ignored. 1451*bbf21555SRichard Lowe.It Ic \&ns 1452*bbf21555SRichard LoweTurn on no-space mode. 1453*bbf21555SRichard LoweCurrently ignored. 1454*bbf21555SRichard Lowe.It Ic \&nx Op Ar filename 1455*bbf21555SRichard LoweAbort processing of the current input file and process another one. 1456*bbf21555SRichard LoweIgnored because insecure. 1457*bbf21555SRichard Lowe.It Ic \&open Ar stream file 1458*bbf21555SRichard LoweOpen a file for writing. 1459*bbf21555SRichard LoweIgnored because insecure. 1460*bbf21555SRichard Lowe.It Ic \&opena Ar stream file 1461*bbf21555SRichard LoweOpen a file for appending. 1462*bbf21555SRichard LoweIgnored because insecure. 1463*bbf21555SRichard Lowe.It Ic \&os 1464*bbf21555SRichard LoweOutput saved vertical space. 1465*bbf21555SRichard LoweCurrently ignored. 1466*bbf21555SRichard Lowe.It Ic \&output Ar string 1467*bbf21555SRichard LoweOutput directly to intermediate output. 1468*bbf21555SRichard LoweNot supported. 1469*bbf21555SRichard Lowe.It Ic \&padj Op Cm 1 | 0 1470*bbf21555SRichard LoweGlobally control paragraph-at-once adjustment. 1471*bbf21555SRichard LoweThis is a Heirloom extension and currently ignored. 1472*bbf21555SRichard Lowe.It Ic \&papersize Ar media 1473*bbf21555SRichard LoweSet the paper size. 1474*bbf21555SRichard LoweThis is a Heirloom extension and currently ignored. 1475*bbf21555SRichard Lowe.It Ic \&pc Op Ar char 1476*bbf21555SRichard LoweChange the page number character. 1477*bbf21555SRichard LoweCurrently ignored. 1478*bbf21555SRichard Lowe.It Ic \&pev 1479*bbf21555SRichard LowePrint environments. 1480*bbf21555SRichard LoweThis is a groff extension and currently ignored. 1481*bbf21555SRichard Lowe.It Ic \&pi Ar command 1482*bbf21555SRichard LowePipe output to a shell command. 1483*bbf21555SRichard LoweIgnored because insecure. 1484*bbf21555SRichard Lowe.It Ic \&PI 1485*bbf21555SRichard LoweLow-level request used by 1486*bbf21555SRichard Lowe.Ic \&BP . 1487*bbf21555SRichard LoweThis is a Heirloom extension and currently unsupported. 1488*bbf21555SRichard Lowe.It Ic \&pl Op Oo Cm + Ns | Ns Cm - Oc Ns Ar height 1489*bbf21555SRichard LoweChange page length. 1490*bbf21555SRichard LoweCurrently ignored. 1491*bbf21555SRichard Lowe.It Ic \&pm 1492*bbf21555SRichard LowePrint names and sizes of macros, strings, and diversions 1493*bbf21555SRichard Loweto standard error output. 1494*bbf21555SRichard LoweCurrently ignored. 1495*bbf21555SRichard Lowe.It Ic \&pn Oo Cm + Ns | Ns Cm - Oc Ns Ar number 1496*bbf21555SRichard LoweChange the page number of the next page. 1497*bbf21555SRichard LoweCurrently ignored. 1498*bbf21555SRichard Lowe.It Ic \&pnr 1499*bbf21555SRichard LowePrint all number registers on standard error output. 1500*bbf21555SRichard LoweCurrently ignored. 1501*bbf21555SRichard Lowe.It Ic \&po Op Oo Cm + Ns | Ns Cm - Oc Ns Ar offset 1502*bbf21555SRichard LoweSet a horizontal page offset. 1503*bbf21555SRichard LoweIf no argument is specified, the page offset is reverted to its 1504*bbf21555SRichard Loweprevious value. 1505*bbf21555SRichard LoweIf a sign is specified, the new page offset is calculated relative 1506*bbf21555SRichard Loweto the current one; otherwise, it is absolute. 1507*bbf21555SRichard LoweThe argument follows the syntax of 1508*bbf21555SRichard Lowe.Sx Scaling Widths 1509*bbf21555SRichard Loweand the default scaling unit is 1510*bbf21555SRichard Lowe.Cm m . 1511*bbf21555SRichard Lowe.It Ic \&ps Op Oo Cm + Ns | Ns Cm - Oc Ns size 1512*bbf21555SRichard LoweChange point size. 1513*bbf21555SRichard LoweCurrently ignored. 1514*bbf21555SRichard Lowe.It Ic \&psbb Ar filename 1515*bbf21555SRichard LoweRetrieve the bounding box of a PostScript file. 1516*bbf21555SRichard LoweCurrently unsupported. 1517*bbf21555SRichard Lowe.It Ic \&pshape Ar indent length ... 1518*bbf21555SRichard LoweSet a special shape for the current paragraph. 1519*bbf21555SRichard LoweThis is a Heirloom extension and currently unsupported. 1520*bbf21555SRichard Lowe.It Ic \&pso Ar command 1521*bbf21555SRichard LoweInclude output of a shell command. 1522*bbf21555SRichard LoweIgnored because insecure. 1523*bbf21555SRichard Lowe.It Ic \&ptr 1524*bbf21555SRichard LowePrint the names and positions of all traps on standard error output. 1525*bbf21555SRichard LoweThis is a groff extension and currently ignored. 1526*bbf21555SRichard Lowe.It Ic \&pvs Op Oo Cm + Ns | Ns Cm - Oc Ns Ar height 1527*bbf21555SRichard LoweChange post-vertical spacing. 1528*bbf21555SRichard LoweThis is a groff extension and currently ignored. 1529*bbf21555SRichard Lowe.It Ic \&rchar Ar glyph ... 1530*bbf21555SRichard LoweRemove glyph definitions. 1531*bbf21555SRichard LoweCurrently unsupported. 1532*bbf21555SRichard Lowe.It Ic \&rd Op Ar prompt Op Ar argument ... 1533*bbf21555SRichard LoweRead from standard input. 1534*bbf21555SRichard LoweCurrently ignored. 1535*bbf21555SRichard Lowe.It Ic \&recursionlimit Ar maxrec maxtail 1536*bbf21555SRichard LoweSet the maximum stack depth for recursive macros. 1537*bbf21555SRichard LoweThis is a Heirloom extension and currently ignored. 1538*bbf21555SRichard Lowe.It Ic \&return Op Ar twice 1539*bbf21555SRichard LoweExit the presently executed macro and return to the caller. 1540*bbf21555SRichard LoweThe argument is currently ignored. 1541*bbf21555SRichard Lowe.It Ic \&rfschar Ar font glyph ... 1542*bbf21555SRichard LoweRemove font-specific fallback glyph definitions. 1543*bbf21555SRichard LoweCurrently unsupported. 1544*bbf21555SRichard Lowe.It Ic \&rhang Ar font char ... afmunits 1545*bbf21555SRichard LoweHang characters at right margin. 1546*bbf21555SRichard LoweThis is a Heirloom extension and currently ignored. 1547*bbf21555SRichard Lowe.It Ic \&rj Op Ar N 1548*bbf21555SRichard LoweJustify the next 1549*bbf21555SRichard Lowe.Ar N 1550*bbf21555SRichard Loweinput lines to the right margin without filling. 1551*bbf21555SRichard Lowe.Ar N 1552*bbf21555SRichard Lowedefaults to 1. 1553*bbf21555SRichard LoweAn argument of 0 or less ends right adjustment. 1554*bbf21555SRichard Lowe.It Ic \&rm Ar macroname 1555*bbf21555SRichard LoweRemove a request, macro or string. 1556*bbf21555SRichard Lowe.It Ic \&rn Ar oldname newname 1557*bbf21555SRichard LoweRename a request, macro, diversion, or string. 1558*bbf21555SRichard LoweIn 1559*bbf21555SRichard Lowe.Xr mandoc 1 , 1560*bbf21555SRichard Loweuser-defined macros, 1561*bbf21555SRichard Lowe.Xr mdoc 7 1562*bbf21555SRichard Loweand 1563*bbf21555SRichard Lowe.Xr man 7 1564*bbf21555SRichard Lowemacros, and user-defined strings can be renamed, but renaming of 1565*bbf21555SRichard Lowepredefined strings and of 1566*bbf21555SRichard Lowe.Nm 1567*bbf21555SRichard Lowerequests is not supported, and diversions are not implemented at all. 1568*bbf21555SRichard Lowe.It Ic \&rnn Ar oldname newname 1569*bbf21555SRichard LoweRename a number register. 1570*bbf21555SRichard LoweCurrently unsupported. 1571*bbf21555SRichard Lowe.It Ic \&rr Ar register 1572*bbf21555SRichard LoweRemove a register. 1573*bbf21555SRichard Lowe.It Ic \&rs 1574*bbf21555SRichard LoweEnd no-space mode. 1575*bbf21555SRichard LoweCurrently ignored. 1576*bbf21555SRichard Lowe.It Ic \&rt Op Ar dist 1577*bbf21555SRichard LoweReturn to marked vertical position. 1578*bbf21555SRichard LoweCurrently ignored. 1579*bbf21555SRichard Lowe.It Ic \&schar Ar glyph Op Ar string 1580*bbf21555SRichard LoweDefine global fallback glyph. 1581*bbf21555SRichard LoweThis is a groff extension and currently unsupported. 1582*bbf21555SRichard Lowe.It Ic \&sentchar Ar char ... 1583*bbf21555SRichard LoweDefine sentence-ending characters. 1584*bbf21555SRichard LoweThis is a Heirloom extension and currently ignored. 1585*bbf21555SRichard Lowe.It Ic \&shc Op Ar glyph 1586*bbf21555SRichard LoweChange the soft hyphen character. 1587*bbf21555SRichard LoweCurrently ignored. 1588*bbf21555SRichard Lowe.It Ic \&shift Op Ar number 1589*bbf21555SRichard LoweShift macro arguments 1590*bbf21555SRichard Lowe.Ar number 1591*bbf21555SRichard Lowetimes, by default once: \e\e$i becomes what \e\e$i+number was. 1592*bbf21555SRichard LoweAlso decrement \en(.$ by 1593*bbf21555SRichard Lowe.Ar number . 1594*bbf21555SRichard Lowe.It Ic \&sizes Ar size ... 1595*bbf21555SRichard LoweDefine permissible point sizes. 1596*bbf21555SRichard LoweThis is a groff extension and currently ignored. 1597*bbf21555SRichard Lowe.It Ic \&so Ar filename 1598*bbf21555SRichard LoweInclude a source file. 1599*bbf21555SRichard LoweThe file is read and its contents processed as input in place of the 1600*bbf21555SRichard Lowe.Ic \&so 1601*bbf21555SRichard Lowerequest line. 1602*bbf21555SRichard LoweTo avoid inadvertent inclusion of unrelated files, 1603*bbf21555SRichard Lowe.Xr mandoc 1 1604*bbf21555SRichard Loweonly accepts relative paths not containing the strings 1605*bbf21555SRichard Lowe.Qq ../ 1606*bbf21555SRichard Loweand 1607*bbf21555SRichard Lowe.Qq /.. . 1608*bbf21555SRichard Lowe.Pp 1609*bbf21555SRichard LoweThis request requires 1610*bbf21555SRichard Lowe.Xr man 1 1611*bbf21555SRichard Loweto change to the right directory before calling 1612*bbf21555SRichard Lowe.Xr mandoc 1 , 1613*bbf21555SRichard Loweper convention to the root of the manual tree. 1614*bbf21555SRichard LoweTypical usage looks like: 1615*bbf21555SRichard Lowe.Pp 1616*bbf21555SRichard Lowe.Dl \&.so man3/Xcursor.3 1617*bbf21555SRichard Lowe.Pp 1618*bbf21555SRichard LoweAs the whole concept is rather fragile, the use of 1619*bbf21555SRichard Lowe.Ic \&so 1620*bbf21555SRichard Loweis discouraged. 1621*bbf21555SRichard LoweUse 1622*bbf21555SRichard Lowe.Xr ln 1 1623*bbf21555SRichard Loweinstead. 1624*bbf21555SRichard Lowe.It Ic \&sp Op Ar height 1625*bbf21555SRichard LoweBreak the output line and emit vertical space. 1626*bbf21555SRichard LoweThe argument follows the syntax of 1627*bbf21555SRichard Lowe.Sx Scaling Widths 1628*bbf21555SRichard Loweand defaults to one blank line 1629*bbf21555SRichard Lowe.Pq Li 1v . 1630*bbf21555SRichard Lowe.It Ic \&spacewidth Op Cm 1 | 0 1631*bbf21555SRichard LoweSet the space width from the font metrics file. 1632*bbf21555SRichard LoweThis is a Heirloom extension and currently ignored. 1633*bbf21555SRichard Lowe.It Ic \&special Op Ar font ... 1634*bbf21555SRichard LoweDefine a special font. 1635*bbf21555SRichard LoweThis is a groff extension and currently ignored. 1636*bbf21555SRichard Lowe.It Ic \&spreadwarn Op Ar width 1637*bbf21555SRichard LoweWarn about wide spacing between words. 1638*bbf21555SRichard LoweCurrently ignored. 1639*bbf21555SRichard Lowe.It Ic \&ss Ar wordspace Op Ar sentencespace 1640*bbf21555SRichard LoweSet space character size. 1641*bbf21555SRichard LoweCurrently ignored. 1642*bbf21555SRichard Lowe.It Ic \&sty Ar position style 1643*bbf21555SRichard LoweAssociate style with a font position. 1644*bbf21555SRichard LoweThis is a groff extension and currently ignored. 1645*bbf21555SRichard Lowe.It Ic \&substring Ar stringname startpos Op Ar endpos 1646*bbf21555SRichard LoweReplace a user-defined string with a substring. 1647*bbf21555SRichard LoweCurrently unsupported. 1648*bbf21555SRichard Lowe.It Ic \&sv Op Ar height 1649*bbf21555SRichard LoweSave vertical space. 1650*bbf21555SRichard LoweCurrently ignored. 1651*bbf21555SRichard Lowe.It Ic \&sy Ar command 1652*bbf21555SRichard LoweExecute shell command. 1653*bbf21555SRichard LoweIgnored because insecure. 1654*bbf21555SRichard Lowe.It Ic \&T& 1655*bbf21555SRichard LoweRe-start a table layout, retaining the options of the prior table 1656*bbf21555SRichard Loweinvocation. 1657*bbf21555SRichard LoweSee 1658*bbf21555SRichard Lowe.Ic \&TS . 1659*bbf21555SRichard Lowe.It Ic \&ta Op Ar width ... Op Cm T Ar width ... 1660*bbf21555SRichard LoweSet tab stops. 1661*bbf21555SRichard LoweEach 1662*bbf21555SRichard Lowe.Ar width 1663*bbf21555SRichard Loweargument follows the syntax of 1664*bbf21555SRichard Lowe.Sx Scaling Widths . 1665*bbf21555SRichard LoweIf prefixed by a plus sign, it is relative to the previous tab stop. 1666*bbf21555SRichard LoweThe arguments after the 1667*bbf21555SRichard Lowe.Cm T 1668*bbf21555SRichard Lowemarker are used repeatedly as often as needed; for each reuse, 1669*bbf21555SRichard Lowethey are taken relative to the last previously established tab stop. 1670*bbf21555SRichard LoweWhen 1671*bbf21555SRichard Lowe.Ic \&ta 1672*bbf21555SRichard Loweis called without arguments, all tab stops are cleared. 1673*bbf21555SRichard Lowe.It Ic \&tc Op Ar glyph 1674*bbf21555SRichard LoweChange tab repetition character. 1675*bbf21555SRichard LoweCurrently unsupported. 1676*bbf21555SRichard Lowe.It Ic \&TE 1677*bbf21555SRichard LoweEnd a table context. 1678*bbf21555SRichard LoweSee 1679*bbf21555SRichard Lowe.Ic \&TS . 1680*bbf21555SRichard Lowe.It Ic \&ti Oo Cm + Ns | Ns Cm - Oc Ns Ar width 1681*bbf21555SRichard LoweBreak the output line and indent the next output line by 1682*bbf21555SRichard Lowe.Ar width . 1683*bbf21555SRichard LoweIf a sign is specified, the temporary indentation is calculated 1684*bbf21555SRichard Lowerelative to the current indentation; otherwise, it is absolute. 1685*bbf21555SRichard LoweThe argument follows the syntax of 1686*bbf21555SRichard Lowe.Sx Scaling Widths 1687*bbf21555SRichard Loweand the default scaling unit is 1688*bbf21555SRichard Lowe.Cm m . 1689*bbf21555SRichard Lowe.It Ic \&tkf Ar font minps width1 maxps width2 1690*bbf21555SRichard LoweEnable track kerning for a font. 1691*bbf21555SRichard LoweCurrently ignored. 1692*bbf21555SRichard Lowe.It Ic \&tl No \& Ap Ar left Ap Ar center Ap Ar right Ap 1693*bbf21555SRichard LowePrint a title line. 1694*bbf21555SRichard LoweCurrently unsupported. 1695*bbf21555SRichard Lowe.It Ic \&tm Ar string 1696*bbf21555SRichard LowePrint to standard error output. 1697*bbf21555SRichard LoweCurrently ignored. 1698*bbf21555SRichard Lowe.It Ic \&tm1 Ar string 1699*bbf21555SRichard LowePrint to standard error output, allowing leading blanks. 1700*bbf21555SRichard LoweThis is a groff extension and currently ignored. 1701*bbf21555SRichard Lowe.It Ic \&tmc Ar string 1702*bbf21555SRichard LowePrint to standard error output without a trailing newline. 1703*bbf21555SRichard LoweThis is a groff extension and currently ignored. 1704*bbf21555SRichard Lowe.It Ic \&tr Ar glyph glyph ... 1705*bbf21555SRichard LoweOutput character translation. 1706*bbf21555SRichard LoweThe first glyph in each pair is replaced by the second one. 1707*bbf21555SRichard LoweCharacter escapes can be used; for example, 1708*bbf21555SRichard Lowe.Pp 1709*bbf21555SRichard Lowe.Dl tr \e(xx\e(yy 1710*bbf21555SRichard Lowe.Pp 1711*bbf21555SRichard Lowereplaces all invocations of \e(xx with \e(yy. 1712*bbf21555SRichard Lowe.It Ic \&track Ar font minps width1 maxps width2 1713*bbf21555SRichard LoweStatic letter space tracking. 1714*bbf21555SRichard LoweThis is a Heirloom extension and currently ignored. 1715*bbf21555SRichard Lowe.It Ic \&transchar Ar char ... 1716*bbf21555SRichard LoweDefine transparent characters for sentence-ending. 1717*bbf21555SRichard LoweThis is a Heirloom extension and currently ignored. 1718*bbf21555SRichard Lowe.It Ic \&trf Ar filename 1719*bbf21555SRichard LoweOutput the contents of a file, disallowing invalid characters. 1720*bbf21555SRichard LoweThis is a groff extension and ignored because insecure. 1721*bbf21555SRichard Lowe.It Ic \&trimat Ar left top width height 1722*bbf21555SRichard LoweSet the TrimBox page parameter for PDF generation. 1723*bbf21555SRichard LoweThis is a Heirloom extension and currently ignored. 1724*bbf21555SRichard Lowe.It Ic \&trin Ar glyph glyph ... 1725*bbf21555SRichard LoweOutput character translation, ignored by 1726*bbf21555SRichard Lowe.Ic \&asciify . 1727*bbf21555SRichard LoweCurrently unsupported. 1728*bbf21555SRichard Lowe.It Ic \&trnt Ar glyph glyph ... 1729*bbf21555SRichard LoweOutput character translation, ignored by \e!. 1730*bbf21555SRichard LoweCurrently unsupported. 1731*bbf21555SRichard Lowe.It Ic \&troff 1732*bbf21555SRichard LoweForce troff mode. 1733*bbf21555SRichard LoweThis is a groff extension and currently ignored. 1734*bbf21555SRichard Lowe.It Ic \&TS 1735*bbf21555SRichard LoweBegin a table, which formats input in aligned rows and columns. 1736*bbf21555SRichard LoweSee 1737*bbf21555SRichard Lowe.Xr tbl 7 1738*bbf21555SRichard Lowefor a description of the tbl language. 1739*bbf21555SRichard Lowe.It Ic \&uf Ar font 1740*bbf21555SRichard LoweGlobally set the underline font. 1741*bbf21555SRichard LoweCurrently ignored. 1742*bbf21555SRichard Lowe.It Ic \&ul Op Ar N 1743*bbf21555SRichard LoweUnderline next 1744*bbf21555SRichard Lowe.Ar N 1745*bbf21555SRichard Loweinput lines. 1746*bbf21555SRichard LoweCurrently ignored. 1747*bbf21555SRichard Lowe.It Ic \&unformat Ar divname 1748*bbf21555SRichard LoweUnformat spaces and tabs in a diversion. 1749*bbf21555SRichard LoweCurrently unsupported. 1750*bbf21555SRichard Lowe.It Ic \&unwatch Ar macroname 1751*bbf21555SRichard LoweDisable notification for string or macro. 1752*bbf21555SRichard LoweThis is a Heirloom extension and currently ignored. 1753*bbf21555SRichard Lowe.It Ic \&unwatchn Ar register 1754*bbf21555SRichard LoweDisable notification for register. 1755*bbf21555SRichard LoweThis is a Heirloom extension and currently ignored. 1756*bbf21555SRichard Lowe.It Ic \&vpt Op Cm 1 | 0 1757*bbf21555SRichard LoweEnable or disable vertical position traps. 1758*bbf21555SRichard LoweThis is a groff extension and currently ignored. 1759*bbf21555SRichard Lowe.It Ic \&vs Op Oo Cm + Ns | Ns Cm - Oc Ns Ar height 1760*bbf21555SRichard LoweChange vertical spacing. 1761*bbf21555SRichard LoweCurrently ignored. 1762*bbf21555SRichard Lowe.It Ic \&warn Ar flags 1763*bbf21555SRichard LoweSet warning level. 1764*bbf21555SRichard LoweCurrently ignored. 1765*bbf21555SRichard Lowe.It Ic \&warnscale Ar si 1766*bbf21555SRichard LoweSet the scaling indicator used in warnings. 1767*bbf21555SRichard LoweThis is a groff extension and currently ignored. 1768*bbf21555SRichard Lowe.It Ic \&watch Ar macroname 1769*bbf21555SRichard LoweNotify on change of string or macro. 1770*bbf21555SRichard LoweThis is a Heirloom extension and currently ignored. 1771*bbf21555SRichard Lowe.It Ic \&watchlength Ar maxlength 1772*bbf21555SRichard LoweOn change, report the contents of macros and strings 1773*bbf21555SRichard Loweup to the specified length. 1774*bbf21555SRichard LoweThis is a Heirloom extension and currently ignored. 1775*bbf21555SRichard Lowe.It Ic \&watchn Ar register 1776*bbf21555SRichard LoweNotify on change of register. 1777*bbf21555SRichard LoweThis is a Heirloom extension and currently ignored. 1778*bbf21555SRichard Lowe.It Ic \&wh Ar dist Op Ar macroname 1779*bbf21555SRichard LoweSet a page location trap. 1780*bbf21555SRichard LoweCurrently unsupported. 1781*bbf21555SRichard Lowe.It Ic \&while Ar condition body 1782*bbf21555SRichard LoweRepeated execution while a 1783*bbf21555SRichard Lowe.Ar condition 1784*bbf21555SRichard Loweis true, with syntax similar to 1785*bbf21555SRichard Lowe.Ic \&if . 1786*bbf21555SRichard LoweCurrently implemented with two restrictions: cannot nest, 1787*bbf21555SRichard Loweand each loop must start and end in the same scope. 1788*bbf21555SRichard Lowe.It Ic \&write Oo \(dq Oc Ns Ar string 1789*bbf21555SRichard LoweWrite to an open file. 1790*bbf21555SRichard LoweIgnored because insecure. 1791*bbf21555SRichard Lowe.It Ic \&writec Oo \(dq Oc Ns Ar string 1792*bbf21555SRichard LoweWrite to an open file without appending a newline. 1793*bbf21555SRichard LoweIgnored because insecure. 1794*bbf21555SRichard Lowe.It Ic \&writem Ar macroname 1795*bbf21555SRichard LoweWrite macro or string to an open file. 1796*bbf21555SRichard LoweIgnored because insecure. 1797*bbf21555SRichard Lowe.It Ic \&xflag Ar level 1798*bbf21555SRichard LoweSet the extension level. 1799*bbf21555SRichard LoweThis is a Heirloom extension and currently ignored. 1800*bbf21555SRichard Lowe.El 1801*bbf21555SRichard Lowe.Ss Numerical expressions 1802*bbf21555SRichard LoweThe 1803*bbf21555SRichard Lowe.Ic \&nr , 1804*bbf21555SRichard Lowe.Ic \&if , 1805*bbf21555SRichard Loweand 1806*bbf21555SRichard Lowe.Ic \&ie 1807*bbf21555SRichard Lowerequests accept integer numerical expressions as arguments. 1808*bbf21555SRichard LoweThese are always evaluated using the C 1809*bbf21555SRichard Lowe.Vt int 1810*bbf21555SRichard Lowetype; integer overflow works the same way as in the C language. 1811*bbf21555SRichard LoweNumbers consist of an arbitrary number of digits 1812*bbf21555SRichard Lowe.Sq 0 1813*bbf21555SRichard Loweto 1814*bbf21555SRichard Lowe.Sq 9 1815*bbf21555SRichard Loweprefixed by an optional sign 1816*bbf21555SRichard Lowe.Sq + 1817*bbf21555SRichard Loweor 1818*bbf21555SRichard Lowe.Sq - . 1819*bbf21555SRichard LoweEach number may be followed by one optional scaling unit described below 1820*bbf21555SRichard Lowe.Sx Scaling Widths . 1821*bbf21555SRichard LoweThe following equations hold: 1822*bbf21555SRichard Lowe.Bd -literal -offset indent 1823*bbf21555SRichard Lowe1i = 6v = 6P = 10m = 10n = 72p = 1000M = 240u = 240 1824*bbf21555SRichard Lowe254c = 100i = 24000u = 24000 1825*bbf21555SRichard Lowe1f = 65536u = 65536 1826*bbf21555SRichard Lowe.Ed 1827*bbf21555SRichard Lowe.Pp 1828*bbf21555SRichard LoweThe following binary operators are implemented. 1829*bbf21555SRichard LoweUnless otherwise stated, they behave as in the C language: 1830*bbf21555SRichard Lowe.Pp 1831*bbf21555SRichard Lowe.Bl -tag -width 2n -compact 1832*bbf21555SRichard Lowe.It Ic + 1833*bbf21555SRichard Loweaddition 1834*bbf21555SRichard Lowe.It Ic - 1835*bbf21555SRichard Lowesubtraction 1836*bbf21555SRichard Lowe.It Ic * 1837*bbf21555SRichard Lowemultiplication 1838*bbf21555SRichard Lowe.It Ic / 1839*bbf21555SRichard Lowedivision 1840*bbf21555SRichard Lowe.It Ic % 1841*bbf21555SRichard Loweremainder of division 1842*bbf21555SRichard Lowe.It Ic < 1843*bbf21555SRichard Loweless than 1844*bbf21555SRichard Lowe.It Ic > 1845*bbf21555SRichard Lowegreater than 1846*bbf21555SRichard Lowe.It Ic == 1847*bbf21555SRichard Loweequal to 1848*bbf21555SRichard Lowe.It Ic = 1849*bbf21555SRichard Loweequal to, same effect as 1850*bbf21555SRichard Lowe.Ic == 1851*bbf21555SRichard Lowe(this differs from C) 1852*bbf21555SRichard Lowe.It Ic <= 1853*bbf21555SRichard Loweless than or equal to 1854*bbf21555SRichard Lowe.It Ic >= 1855*bbf21555SRichard Lowegreater than or equal to 1856*bbf21555SRichard Lowe.It Ic <> 1857*bbf21555SRichard Lowenot equal to (corresponds to C 1858*bbf21555SRichard Lowe.Ic != ; 1859*bbf21555SRichard Lowethis one is of limited portability, it is supported by Heirloom roff, 1860*bbf21555SRichard Lowebut not by groff) 1861*bbf21555SRichard Lowe.It Ic & 1862*bbf21555SRichard Lowelogical and (corresponds to C 1863*bbf21555SRichard Lowe.Ic && ) 1864*bbf21555SRichard Lowe.It Ic \&: 1865*bbf21555SRichard Lowelogical or (corresponds to C 1866*bbf21555SRichard Lowe.Ic || ) 1867*bbf21555SRichard Lowe.It Ic <? 1868*bbf21555SRichard Loweminimum (not available in C) 1869*bbf21555SRichard Lowe.It Ic >? 1870*bbf21555SRichard Lowemaximum (not available in C) 1871*bbf21555SRichard Lowe.El 1872*bbf21555SRichard Lowe.Pp 1873*bbf21555SRichard LoweThere is no concept of precedence; evaluation proceeds from left to right, 1874*bbf21555SRichard Loweexcept when subexpressions are enclosed in parentheses. 1875*bbf21555SRichard LoweInside parentheses, whitespace is ignored. 1876*bbf21555SRichard Lowe.Sh ESCAPE SEQUENCE REFERENCE 1877*bbf21555SRichard LoweThe 1878*bbf21555SRichard Lowe.Xr mandoc 1 1879*bbf21555SRichard Lowe.Nm 1880*bbf21555SRichard Loweparser recognises the following escape sequences. 1881*bbf21555SRichard LoweIn 1882*bbf21555SRichard Lowe.Xr mdoc 7 1883*bbf21555SRichard Loweand 1884*bbf21555SRichard Lowe.Xr man 7 1885*bbf21555SRichard Lowedocuments, using escape sequences is discouraged except for those 1886*bbf21555SRichard Lowedescribed in the 1887*bbf21555SRichard Lowe.Sx LANGUAGE SYNTAX 1888*bbf21555SRichard Lowesection above. 1889*bbf21555SRichard Lowe.Pp 1890*bbf21555SRichard LoweA backslash followed by any character not listed here 1891*bbf21555SRichard Lowesimply prints that character itself. 1892*bbf21555SRichard Lowe.Bl -tag -width Ds 1893*bbf21555SRichard Lowe.It Ic \e<newline> 1894*bbf21555SRichard LoweA backslash at the end of an input line can be used to continue the 1895*bbf21555SRichard Lowelogical input line on the next physical input line, joining the text 1896*bbf21555SRichard Loweon both lines together as if it were on a single input line. 1897*bbf21555SRichard Lowe.It Ic \e<space> 1898*bbf21555SRichard LoweThe escape sequence backslash-space 1899*bbf21555SRichard Lowe.Pq Sq \e\ \& 1900*bbf21555SRichard Loweis an unpaddable space-sized non-breaking space character; see 1901*bbf21555SRichard Lowe.Sx Whitespace 1902*bbf21555SRichard Loweand 1903*bbf21555SRichard Lowe.Xr mandoc_char 7 . 1904*bbf21555SRichard Lowe.It Ic \e! 1905*bbf21555SRichard LoweEmbed text up to and including the end of the input line into the 1906*bbf21555SRichard Lowecurrent diversion or into intermediate output without interpreting 1907*bbf21555SRichard Lowerequests, macros, and escapes. 1908*bbf21555SRichard LoweCurrently unsupported. 1909*bbf21555SRichard Lowe.It Ic \e\(dq 1910*bbf21555SRichard LoweThe rest of the input line is treated as 1911*bbf21555SRichard Lowe.Sx Comments . 1912*bbf21555SRichard Lowe.It Ic \e# 1913*bbf21555SRichard LoweLine continuation with comment. 1914*bbf21555SRichard LoweDiscard the rest of the physical input line and continue the logical 1915*bbf21555SRichard Loweinput line on the next physical input line, joining the text on 1916*bbf21555SRichard Loweboth lines together as if it were on a single input line. 1917*bbf21555SRichard LoweThis is a groff extension. 1918*bbf21555SRichard Lowe.It Ic \e$ Ns Ar arg 1919*bbf21555SRichard LoweMacro argument expansion, see 1920*bbf21555SRichard Lowe.Ic \&de . 1921*bbf21555SRichard Lowe.It Ic \e% 1922*bbf21555SRichard LoweHyphenation allowed at this point of the word; ignored by 1923*bbf21555SRichard Lowe.Xr mandoc 1 . 1924*bbf21555SRichard Lowe.It Ic \e& 1925*bbf21555SRichard LoweNon-printing zero-width character, 1926*bbf21555SRichard Loweoften used for various kinds of escaping; see 1927*bbf21555SRichard Lowe.Sx Whitespace , 1928*bbf21555SRichard Lowe.Xr mandoc_char 7 , 1929*bbf21555SRichard Loweand the 1930*bbf21555SRichard Lowe.Dq MACRO SYNTAX 1931*bbf21555SRichard Loweand 1932*bbf21555SRichard Lowe.Dq Delimiters 1933*bbf21555SRichard Lowesections in 1934*bbf21555SRichard Lowe.Xr mdoc 7 . 1935*bbf21555SRichard Lowe.It Ic \e\(aq 1936*bbf21555SRichard LoweAcute accent special character; use 1937*bbf21555SRichard Lowe.Ic \e(aa 1938*bbf21555SRichard Loweinstead. 1939*bbf21555SRichard Lowe.It Ic \e( Ns Ar cc 1940*bbf21555SRichard Lowe.Sx Special Characters 1941*bbf21555SRichard Lowewith two-letter names, see 1942*bbf21555SRichard Lowe.Xr mandoc_char 7 . 1943*bbf21555SRichard Lowe.It Ic \e) 1944*bbf21555SRichard LoweZero-width space transparent to end-of-sentence detection; 1945*bbf21555SRichard Loweignored by 1946*bbf21555SRichard Lowe.Xr mandoc 1 . 1947*bbf21555SRichard Lowe.It Ic \e*[ Ns Ar name Ns Ic \&] 1948*bbf21555SRichard LoweInterpolate the string with the 1949*bbf21555SRichard Lowe.Ar name . 1950*bbf21555SRichard LoweFor short names, there are variants 1951*bbf21555SRichard Lowe.Ic \e* Ns Ar c 1952*bbf21555SRichard Loweand 1953*bbf21555SRichard Lowe.Ic \e*( Ns Ar cc . 1954*bbf21555SRichard Lowe.Pp 1955*bbf21555SRichard LoweOne string is predefined on the 1956*bbf21555SRichard Lowe.Nm 1957*bbf21555SRichard Lowelanguage level: 1958*bbf21555SRichard Lowe.Ic \e*(.T 1959*bbf21555SRichard Loweexpands to the name of the output device, 1960*bbf21555SRichard Lowefor example ascii, utf8, ps, pdf, html, or markdown. 1961*bbf21555SRichard Lowe.Pp 1962*bbf21555SRichard LoweMacro sets traditionally predefine additional strings which are not 1963*bbf21555SRichard Loweportable and differ across implementations. 1964*bbf21555SRichard LoweThose supported by 1965*bbf21555SRichard Lowe.Xr mandoc 1 1966*bbf21555SRichard Loweare listed in 1967*bbf21555SRichard Lowe.Xr mandoc_char 7 . 1968*bbf21555SRichard Lowe.Pp 1969*bbf21555SRichard LoweStrings can be defined, changed, and deleted with the 1970*bbf21555SRichard Lowe.Ic \&ds , 1971*bbf21555SRichard Lowe.Ic \&as , 1972*bbf21555SRichard Loweand 1973*bbf21555SRichard Lowe.Ic \&rm 1974*bbf21555SRichard Lowerequests. 1975*bbf21555SRichard Lowe.It Ic \e, 1976*bbf21555SRichard LoweLeft italic correction (groff extension); ignored by 1977*bbf21555SRichard Lowe.Xr mandoc 1 . 1978*bbf21555SRichard Lowe.It Ic \e- 1979*bbf21555SRichard LoweSpecial character 1980*bbf21555SRichard Lowe.Dq mathematical minus sign ; 1981*bbf21555SRichard Lowesee 1982*bbf21555SRichard Lowe.Xr mandoc_char 7 1983*bbf21555SRichard Lowefor details. 1984*bbf21555SRichard Lowe.It Ic \e/ 1985*bbf21555SRichard LoweRight italic correction (groff extension); ignored by 1986*bbf21555SRichard Lowe.Xr mandoc 1 . 1987*bbf21555SRichard Lowe.It Ic \e: 1988*bbf21555SRichard LoweBreaking the line is allowed at this point of the word 1989*bbf21555SRichard Lowewithout inserting a hyphen. 1990*bbf21555SRichard Lowe.It Ic \e? 1991*bbf21555SRichard LoweEmbed the text up to the next 1992*bbf21555SRichard Lowe.Ic \e? 1993*bbf21555SRichard Loweinto the current diversion without interpreting requests, macros, 1994*bbf21555SRichard Loweand escapes. 1995*bbf21555SRichard LoweThis is a groff extension and currently unsupported. 1996*bbf21555SRichard Lowe.It Ic \e[ Ns Ar name Ns Ic \&] 1997*bbf21555SRichard Lowe.Sx Special Characters 1998*bbf21555SRichard Lowewith names of arbitrary length, see 1999*bbf21555SRichard Lowe.Xr mandoc_char 7 . 2000*bbf21555SRichard Lowe.It Ic \e^ 2001*bbf21555SRichard LoweOne-twelfth em half-narrow space character, effectively zero-width in 2002*bbf21555SRichard Lowe.Xr mandoc 1 . 2003*bbf21555SRichard Lowe.It Ic \e_ 2004*bbf21555SRichard LoweUnderline special character; use 2005*bbf21555SRichard Lowe.Ic \e(ul 2006*bbf21555SRichard Loweinstead. 2007*bbf21555SRichard Lowe.It Ic \e` 2008*bbf21555SRichard LoweGrave accent special character; use 2009*bbf21555SRichard Lowe.Ic \e(ga 2010*bbf21555SRichard Loweinstead. 2011*bbf21555SRichard Lowe.It Ic \e{ 2012*bbf21555SRichard LoweBegin conditional input; see 2013*bbf21555SRichard Lowe.Ic \&if . 2014*bbf21555SRichard Lowe.It Ic \e\(ba 2015*bbf21555SRichard LoweOne-sixth em narrow space character, effectively zero-width in 2016*bbf21555SRichard Lowe.Xr mandoc 1 . 2017*bbf21555SRichard Lowe.It Ic \e} 2018*bbf21555SRichard LoweEnd conditional input; see 2019*bbf21555SRichard Lowe.Ic \&if . 2020*bbf21555SRichard Lowe.It Ic \e~ 2021*bbf21555SRichard LowePaddable non-breaking space character. 2022*bbf21555SRichard Lowe.It Ic \e0 2023*bbf21555SRichard LoweDigit width space character. 2024*bbf21555SRichard Lowe.It Ic \eA\(aq Ns Ar string Ns Ic \(aq 2025*bbf21555SRichard LoweAnchor definition; ignored by 2026*bbf21555SRichard Lowe.Xr mandoc 1 . 2027*bbf21555SRichard Lowe.It Ic \ea 2028*bbf21555SRichard LoweLeader character; ignored by 2029*bbf21555SRichard Lowe.Xr mandoc 1 . 2030*bbf21555SRichard Lowe.It Ic \eB\(aq Ns Ar string Ns Ic \(aq 2031*bbf21555SRichard LoweInterpolate 2032*bbf21555SRichard Lowe.Sq 1 2033*bbf21555SRichard Loweif 2034*bbf21555SRichard Lowe.Ar string 2035*bbf21555SRichard Loweconforms to the syntax of 2036*bbf21555SRichard Lowe.Sx Numerical expressions 2037*bbf21555SRichard Loweexplained above or 2038*bbf21555SRichard Lowe.Sq 0 2039*bbf21555SRichard Loweotherwise. 2040*bbf21555SRichard Lowe.It Ic \eb\(aq Ns Ar string Ns Ic \(aq 2041*bbf21555SRichard LoweBracket building function; ignored by 2042*bbf21555SRichard Lowe.Xr mandoc 1 . 2043*bbf21555SRichard Lowe.It Ic \eC\(aq Ns Ar name Ns Ic \(aq 2044*bbf21555SRichard Lowe.Sx Special Characters 2045*bbf21555SRichard Lowewith names of arbitrary length. 2046*bbf21555SRichard Lowe.It Ic \ec 2047*bbf21555SRichard LoweWhen encountered at the end of an input text line, 2048*bbf21555SRichard Lowethe next input text line is considered to continue that line, 2049*bbf21555SRichard Loweeven if there are request or macro lines in between. 2050*bbf21555SRichard LoweNo whitespace is inserted. 2051*bbf21555SRichard Lowe.It Ic \eD\(aq Ns Ar string Ns Ic \(aq 2052*bbf21555SRichard LoweDraw graphics function; ignored by 2053*bbf21555SRichard Lowe.Xr mandoc 1 . 2054*bbf21555SRichard Lowe.It Ic \ed 2055*bbf21555SRichard LoweMove down by half a line; ignored by 2056*bbf21555SRichard Lowe.Xr mandoc 1 . 2057*bbf21555SRichard Lowe.It Ic \eE 2058*bbf21555SRichard LoweEscape character intended to not be interpreted in copy mode. 2059*bbf21555SRichard LoweIn 2060*bbf21555SRichard Lowe.Xr mandoc 1 , 2061*bbf21555SRichard Loweit currently does the same as 2062*bbf21555SRichard Lowe.Ic \e 2063*bbf21555SRichard Loweitself. 2064*bbf21555SRichard Lowe.It Ic \ee 2065*bbf21555SRichard LoweBackslash special character. 2066*bbf21555SRichard Lowe.It Ic \eF[ Ns Ar name Ns Ic \&] 2067*bbf21555SRichard LoweSwitch font family (groff extension); ignored by 2068*bbf21555SRichard Lowe.Xr mandoc 1 . 2069*bbf21555SRichard LoweFor short names, there are variants 2070*bbf21555SRichard Lowe.Ic \eF Ns Ar c 2071*bbf21555SRichard Loweand 2072*bbf21555SRichard Lowe.Ic \eF( Ns Ar cc . 2073*bbf21555SRichard Lowe.It Ic \ef[ Ns Ar name Ns Ic \&] 2074*bbf21555SRichard LoweSwitch to the font 2075*bbf21555SRichard Lowe.Ar name , 2076*bbf21555SRichard Lowesee 2077*bbf21555SRichard Lowe.Sx Font Selection . 2078*bbf21555SRichard LoweFor short names, there are variants 2079*bbf21555SRichard Lowe.Ic \ef Ns Ar c 2080*bbf21555SRichard Loweand 2081*bbf21555SRichard Lowe.Ic \ef( Ns Ar cc . 2082*bbf21555SRichard LoweAn empty name 2083*bbf21555SRichard Lowe.Ic \ef[] 2084*bbf21555SRichard Lowedefaults to 2085*bbf21555SRichard Lowe.Ic \efP . 2086*bbf21555SRichard Lowe.It Ic \eg[ Ns Ar name Ns Ic \&] 2087*bbf21555SRichard LoweInterpolate the format of a number register; ignored by 2088*bbf21555SRichard Lowe.Xr mandoc 1 . 2089*bbf21555SRichard LoweFor short names, there are variants 2090*bbf21555SRichard Lowe.Ic \eg Ns Ar c 2091*bbf21555SRichard Loweand 2092*bbf21555SRichard Lowe.Ic \eg( Ns Ar cc . 2093*bbf21555SRichard Lowe.It Ic \eH\(aq Ns Oo +|- Oc Ns Ar number Ns Ic \(aq 2094*bbf21555SRichard LoweSet the height of the current font; ignored by 2095*bbf21555SRichard Lowe.Xr mandoc 1 . 2096*bbf21555SRichard Lowe.It Ic \eh\(aq Ns Oo Cm \&| Oc Ns Ar width Ns Ic \(aq 2097*bbf21555SRichard LoweHorizontal motion. 2098*bbf21555SRichard LoweIf the vertical bar is given, the motion is relative to the current 2099*bbf21555SRichard Loweindentation. 2100*bbf21555SRichard LoweOtherwise, it is relative to the current position. 2101*bbf21555SRichard LoweThe default scaling unit is 2102*bbf21555SRichard Lowe.Cm m . 2103*bbf21555SRichard Lowe.It Ic \ek[ Ns Ar name Ns Ic \&] 2104*bbf21555SRichard LoweMark horizontal input place in register; ignored by 2105*bbf21555SRichard Lowe.Xr mandoc 1 . 2106*bbf21555SRichard LoweFor short names, there are variants 2107*bbf21555SRichard Lowe.Ic \ek Ns Ar c 2108*bbf21555SRichard Loweand 2109*bbf21555SRichard Lowe.Ic \ek( Ns Ar cc . 2110*bbf21555SRichard Lowe.It Ic \eL\(aq Ns Ar number Ns Oo Ar c Oc Ns Ic \(aq 2111*bbf21555SRichard LoweVertical line drawing function; ignored by 2112*bbf21555SRichard Lowe.Xr mandoc 1 . 2113*bbf21555SRichard Lowe.It Ic \el\(aq Ns Ar width Ns Oo Ar c Oc Ns Ic \(aq 2114*bbf21555SRichard LoweDraw a horizontal line of 2115*bbf21555SRichard Lowe.Ar width 2116*bbf21555SRichard Loweusing the glyph 2117*bbf21555SRichard Lowe.Ar c . 2118*bbf21555SRichard Lowe.It Ic \eM[ Ns Ar name Ns Ic \&] 2119*bbf21555SRichard LoweSet fill (background) color (groff extension); ignored by 2120*bbf21555SRichard Lowe.Xr mandoc 1 . 2121*bbf21555SRichard LoweFor short names, there are variants 2122*bbf21555SRichard Lowe.Ic \eM Ns Ar c 2123*bbf21555SRichard Loweand 2124*bbf21555SRichard Lowe.Ic \eM( Ns Ar cc . 2125*bbf21555SRichard Lowe.It Ic \em[ Ns Ar name Ns Ic \&] 2126*bbf21555SRichard LoweSet glyph drawing color (groff extension); ignored by 2127*bbf21555SRichard Lowe.Xr mandoc 1 . 2128*bbf21555SRichard LoweFor short names, there are variants 2129*bbf21555SRichard Lowe.Ic \em Ns Ar c 2130*bbf21555SRichard Loweand 2131*bbf21555SRichard Lowe.Ic \em( Ns Ar cc . 2132*bbf21555SRichard Lowe.It Ic \eN\(aq Ns Ar number Ns Ic \(aq 2133*bbf21555SRichard LoweCharacter 2134*bbf21555SRichard Lowe.Ar number 2135*bbf21555SRichard Loweon the current font. 2136*bbf21555SRichard Lowe.It Ic \en Ns Oo +|- Oc Ns Ic \&[ Ns Ar name Ns Ic \&] 2137*bbf21555SRichard LoweInterpolate the number register 2138*bbf21555SRichard Lowe.Ar name . 2139*bbf21555SRichard LoweFor short names, there are variants 2140*bbf21555SRichard Lowe.Ic \en Ns Ar c 2141*bbf21555SRichard Loweand 2142*bbf21555SRichard Lowe.Ic \en( Ns Ar cc . 2143*bbf21555SRichard LoweIf the optional sign is specified, 2144*bbf21555SRichard Lowethe register is first incremented or decremented by the 2145*bbf21555SRichard Lowe.Ar stepsize 2146*bbf21555SRichard Lowethat was specified in the relevant 2147*bbf21555SRichard Lowe.Ic \&nr 2148*bbf21555SRichard Lowerequest, and the changed value is interpolated. 2149*bbf21555SRichard Lowe.It Ic \eO Ns Ar digit , Ic \eO[5 Ns arguments Ns Ic \&] 2150*bbf21555SRichard LoweSuppress output. 2151*bbf21555SRichard LoweThis is a groff extension and currently unsupported. 2152*bbf21555SRichard LoweWith an argument of 2153*bbf21555SRichard Lowe.Ic 1 , 2 , 3 , 2154*bbf21555SRichard Loweor 2155*bbf21555SRichard Lowe.Ic 4 , 2156*bbf21555SRichard Loweit is ignored. 2157*bbf21555SRichard Lowe.It Ic \eo\(aq Ns Ar string Ns Ic \(aq 2158*bbf21555SRichard LoweOverstrike, writing all the characters contained in the 2159*bbf21555SRichard Lowe.Ar string 2160*bbf21555SRichard Loweto the same output position. 2161*bbf21555SRichard LoweIn terminal and HTML output modes, 2162*bbf21555SRichard Loweonly the last one of the characters is visible. 2163*bbf21555SRichard Lowe.It Ic \ep 2164*bbf21555SRichard LoweBreak the output line at the end of the current word. 2165*bbf21555SRichard Lowe.It Ic \eR\(aq Ns Ar name Oo +|- Oc Ns Ar number Ns Ic \(aq 2166*bbf21555SRichard LoweSet number register; ignored by 2167*bbf21555SRichard Lowe.Xr mandoc 1 . 2168*bbf21555SRichard Lowe.It Ic \er 2169*bbf21555SRichard LoweMove up by one line; ignored by 2170*bbf21555SRichard Lowe.Xr mandoc 1 . 2171*bbf21555SRichard Lowe.It Ic \eS\(aq Ns Ar number Ns Ic \(aq 2172*bbf21555SRichard LoweSlant output; ignored by 2173*bbf21555SRichard Lowe.Xr mandoc 1 . 2174*bbf21555SRichard Lowe.It Ic \es\(aq Ns Oo +|- Oc Ns Ar number Ns Ic \(aq 2175*bbf21555SRichard LoweChange point size; ignored by 2176*bbf21555SRichard Lowe.Xr mandoc 1 . 2177*bbf21555SRichard LoweAlternative forms 2178*bbf21555SRichard Lowe.Ic \es Ns Oo +|- Oc Ns Ar n , 2179*bbf21555SRichard Lowe.Ic \es Ns Oo +|- Oc Ns Ic \(aq Ns Ar number Ns Ic \(aq , 2180*bbf21555SRichard Lowe.Ic \es[ Ns Oo +|- Oc Ns Ar number Ns Ic \&] , 2181*bbf21555SRichard Loweand 2182*bbf21555SRichard Lowe.Ic \es Ns Oo +|- Oc Ns Ic \&[ Ns Ar number Ns Ic \&] 2183*bbf21555SRichard Loweare also parsed and ignored. 2184*bbf21555SRichard Lowe.It Ic \et 2185*bbf21555SRichard LoweHorizontal tab; ignored by 2186*bbf21555SRichard Lowe.Xr mandoc 1 . 2187*bbf21555SRichard Lowe.It Ic \eu 2188*bbf21555SRichard LoweMove up by half a line; ignored by 2189*bbf21555SRichard Lowe.Xr mandoc 1 . 2190*bbf21555SRichard Lowe.It Ic \eV[ Ns Ar name Ns Ic \&] 2191*bbf21555SRichard LoweInterpolate an environment variable; ignored by 2192*bbf21555SRichard Lowe.Xr mandoc 1 . 2193*bbf21555SRichard LoweFor short names, there are variants 2194*bbf21555SRichard Lowe.Ic \eV Ns Ar c 2195*bbf21555SRichard Loweand 2196*bbf21555SRichard Lowe.Ic \eV( Ns Ar cc . 2197*bbf21555SRichard Lowe.It Ic \ev\(aq Ns Ar number Ns Ic \(aq 2198*bbf21555SRichard LoweVertical motion; ignored by 2199*bbf21555SRichard Lowe.Xr mandoc 1 . 2200*bbf21555SRichard Lowe.It Ic \ew\(aq Ns Ar string Ns Ic \(aq 2201*bbf21555SRichard LoweInterpolate the width of the 2202*bbf21555SRichard Lowe.Ar string . 2203*bbf21555SRichard LoweThe 2204*bbf21555SRichard Lowe.Xr mandoc 1 2205*bbf21555SRichard Loweimplementation assumes that after expansion of user-defined strings, the 2206*bbf21555SRichard Lowe.Ar string 2207*bbf21555SRichard Loweonly contains normal characters, no escape sequences, and that each 2208*bbf21555SRichard Lowecharacter has a width of 24 basic units. 2209*bbf21555SRichard Lowe.It Ic \eX\(aq Ns Ar string Ns Ic \(aq 2210*bbf21555SRichard LoweOutput 2211*bbf21555SRichard Lowe.Ar string 2212*bbf21555SRichard Loweas device control function; ignored in nroff mode and by 2213*bbf21555SRichard Lowe.Xr mandoc 1 . 2214*bbf21555SRichard Lowe.It Ic \ex\(aq Ns Ar number Ns Ic \(aq 2215*bbf21555SRichard LoweExtra line space function; ignored by 2216*bbf21555SRichard Lowe.Xr mandoc 1 . 2217*bbf21555SRichard Lowe.It Ic \eY[ Ns Ar name Ns Ic \&] 2218*bbf21555SRichard LoweOutput a string as a device control function; ignored in nroff mode and by 2219*bbf21555SRichard Lowe.Xr mandoc 1 . 2220*bbf21555SRichard LoweFor short names, there are variants 2221*bbf21555SRichard Lowe.Ic \eY Ns Ar c 2222*bbf21555SRichard Loweand 2223*bbf21555SRichard Lowe.Ic \eY( Ns Ar cc . 2224*bbf21555SRichard Lowe.It Ic \eZ\(aq Ns Ar string Ns Ic \(aq 2225*bbf21555SRichard LowePrint 2226*bbf21555SRichard Lowe.Ar string 2227*bbf21555SRichard Lowewith zero width and height; ignored by 2228*bbf21555SRichard Lowe.Xr mandoc 1 . 2229*bbf21555SRichard Lowe.It Ic \ez 2230*bbf21555SRichard LoweOutput the next character without advancing the cursor position. 2231*bbf21555SRichard Lowe.El 2232*bbf21555SRichard Lowe.Sh COMPATIBILITY 2233*bbf21555SRichard LoweThe 2234*bbf21555SRichard Lowe.Xr mandoc 1 2235*bbf21555SRichard Loweimplementation of the 2236*bbf21555SRichard Lowe.Nm 2237*bbf21555SRichard Lowelanguage is incomplete. 2238*bbf21555SRichard LoweMajor unimplemented features include: 2239*bbf21555SRichard Lowe.Pp 2240*bbf21555SRichard Lowe.Bl -dash -compact 2241*bbf21555SRichard Lowe.It 2242*bbf21555SRichard LoweFor security reasons, 2243*bbf21555SRichard Lowe.Xr mandoc 1 2244*bbf21555SRichard Lowenever reads or writes external files except via 2245*bbf21555SRichard Lowe.Ic \&so 2246*bbf21555SRichard Lowerequests with safe relative paths. 2247*bbf21555SRichard Lowe.It 2248*bbf21555SRichard LoweThere is no automatic hyphenation, no adjustment to the right margin, 2249*bbf21555SRichard Loweand very limited support for centering; the output is always set flush-left. 2250*bbf21555SRichard Lowe.It 2251*bbf21555SRichard LoweSupport for setting tabulator and leader characters is missing, 2252*bbf21555SRichard Loweand support for manually changing indentation is limited. 2253*bbf21555SRichard Lowe.It 2254*bbf21555SRichard LoweThe 2255*bbf21555SRichard Lowe.Sq u 2256*bbf21555SRichard Lowescaling unit is the default terminal unit. 2257*bbf21555SRichard LoweIn traditional troff systems, this unit changes depending on the 2258*bbf21555SRichard Loweoutput media. 2259*bbf21555SRichard Lowe.It 2260*bbf21555SRichard LoweWidth measurements are implemented in a crude way 2261*bbf21555SRichard Loweand often yield wrong results. 2262*bbf21555SRichard LoweSupport for explicit movement requests and escapes is limited. 2263*bbf21555SRichard Lowe.It 2264*bbf21555SRichard LoweThere is no concept of output pages, no support for floats, 2265*bbf21555SRichard Lowegraphics drawing, and picture inclusion; 2266*bbf21555SRichard Loweterminal output is always continuous. 2267*bbf21555SRichard Lowe.It 2268*bbf21555SRichard LoweRequests regarding color, font families, font sizes, 2269*bbf21555SRichard Loweand glyph manipulation are ignored. 2270*bbf21555SRichard LoweFont support is very limited. 2271*bbf21555SRichard LoweKerning is not implemented, and no ligatures are produced. 2272*bbf21555SRichard Lowe.It 2273*bbf21555SRichard LoweThe 2274*bbf21555SRichard Lowe.Qq \(aq 2275*bbf21555SRichard Lowemacro control character does not suppress output line breaks. 2276*bbf21555SRichard Lowe.It 2277*bbf21555SRichard LoweDiversions and environments are not implemented, 2278*bbf21555SRichard Loweand support for traps is very incomplete. 2279*bbf21555SRichard Lowe.It 2280*bbf21555SRichard LoweUse of macros is not supported inside 2281*bbf21555SRichard Lowe.Xr tbl 7 2282*bbf21555SRichard Lowecode. 2283*bbf21555SRichard Lowe.El 2284*bbf21555SRichard Lowe.Pp 2285*bbf21555SRichard LoweThe special semantics of the 2286*bbf21555SRichard Lowe.Cm nS 2287*bbf21555SRichard Lowenumber register is an idiosyncrasy of 2288*bbf21555SRichard Lowe.Ox 2289*bbf21555SRichard Lowemanuals and not supported by other 2290*bbf21555SRichard Lowe.Xr mdoc 7 2291*bbf21555SRichard Loweimplementations. 2292*bbf21555SRichard Lowe.Sh SEE ALSO 2293*bbf21555SRichard Lowe.Xr mandoc 1 , 2294*bbf21555SRichard Lowe.Xr eqn 7 , 2295*bbf21555SRichard Lowe.Xr man 7 , 2296*bbf21555SRichard Lowe.Xr mandoc_char 7 , 2297*bbf21555SRichard Lowe.Xr mdoc 7 , 2298*bbf21555SRichard Lowe.Xr tbl 7 2299*bbf21555SRichard Lowe.Rs 2300*bbf21555SRichard Lowe.%A Joseph F. Ossanna 2301*bbf21555SRichard Lowe.%A Brian W. Kernighan 2302*bbf21555SRichard Lowe.%I AT&T Bell Laboratories 2303*bbf21555SRichard Lowe.%T Troff User's Manual 2304*bbf21555SRichard Lowe.%R Computing Science Technical Report 2305*bbf21555SRichard Lowe.%N 54 2306*bbf21555SRichard Lowe.%C Murray Hill, New Jersey 2307*bbf21555SRichard Lowe.%D 1976 and 1992 2308*bbf21555SRichard Lowe.%U http://www.kohala.com/start/troff/cstr54.ps 2309*bbf21555SRichard Lowe.Re 2310*bbf21555SRichard Lowe.Rs 2311*bbf21555SRichard Lowe.%A Joseph F. Ossanna 2312*bbf21555SRichard Lowe.%A Brian W. Kernighan 2313*bbf21555SRichard Lowe.%A Gunnar Ritter 2314*bbf21555SRichard Lowe.%T Heirloom Documentation Tools Nroff/Troff User's Manual 2315*bbf21555SRichard Lowe.%D September 17, 2007 2316*bbf21555SRichard Lowe.%U http://heirloom.sourceforge.net/doctools/troff.pdf 2317*bbf21555SRichard Lowe.Re 2318*bbf21555SRichard Lowe.Sh HISTORY 2319*bbf21555SRichard LoweThe RUNOFF typesetting system, whose input forms the basis for 2320*bbf21555SRichard Lowe.Nm , 2321*bbf21555SRichard Lowewas written in MAD and FAP for the CTSS operating system by Jerome E. 2322*bbf21555SRichard LoweSaltzer in 1964. 2323*bbf21555SRichard LoweDoug McIlroy rewrote it in BCPL in 1969, renaming it 2324*bbf21555SRichard Lowe.Nm . 2325*bbf21555SRichard LoweDennis M. Ritchie rewrote McIlroy's 2326*bbf21555SRichard Lowe.Nm 2327*bbf21555SRichard Lowein PDP-11 assembly for 2328*bbf21555SRichard Lowe.At v1 , 2329*bbf21555SRichard LoweJoseph F. Ossanna improved roff and renamed it nroff 2330*bbf21555SRichard Lowefor 2331*bbf21555SRichard Lowe.At v2 , 2332*bbf21555SRichard Lowethen ported nroff to C as troff, which Brian W. Kernighan released with 2333*bbf21555SRichard Lowe.At v7 . 2334*bbf21555SRichard LoweIn 1989, James Clark re-implemented troff in C++, naming it groff. 2335*bbf21555SRichard Lowe.Sh AUTHORS 2336*bbf21555SRichard Lowe.An -nosplit 2337*bbf21555SRichard LoweThis 2338*bbf21555SRichard Lowe.Nm 2339*bbf21555SRichard Lowereference was written by 2340*bbf21555SRichard Lowe.An Kristaps Dzonsons Aq Mt kristaps@bsd.lv 2341*bbf21555SRichard Loweand 2342*bbf21555SRichard Lowe.An Ingo Schwarze Aq Mt schwarze@openbsd.org . 2343