1*544c191cSchristos.\" Id: roff.7,v 1.111 2019/01/01 03:45:29 schwarze Exp 20a84adc5Sjoerg.\" 370f041f9Sjoerg.\" Copyright (c) 2010, 2011, 2012 Kristaps Dzonsons <kristaps@bsd.lv> 4*544c191cSchristos.\" Copyright (c) 2010-2019 Ingo Schwarze <schwarze@openbsd.org> 50a84adc5Sjoerg.\" 60a84adc5Sjoerg.\" Permission to use, copy, modify, and distribute this software for any 70a84adc5Sjoerg.\" purpose with or without fee is hereby granted, provided that the above 80a84adc5Sjoerg.\" copyright notice and this permission notice appear in all copies. 90a84adc5Sjoerg.\" 100a84adc5Sjoerg.\" THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES 110a84adc5Sjoerg.\" WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF 120a84adc5Sjoerg.\" MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR 130a84adc5Sjoerg.\" ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES 140a84adc5Sjoerg.\" WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN 150a84adc5Sjoerg.\" ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF 160a84adc5Sjoerg.\" OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. 170a84adc5Sjoerg.\" 18*544c191cSchristos.Dd January 1, 2019 190a84adc5Sjoerg.Dt ROFF 7 200a84adc5Sjoerg.Os 210a84adc5Sjoerg.Sh NAME 220a84adc5Sjoerg.Nm roff 23c0d9444aSjoerg.Nd roff language reference for mandoc 240a84adc5Sjoerg.Sh DESCRIPTION 250a84adc5SjoergThe 260a84adc5Sjoerg.Nm roff 27c0d9444aSjoerglanguage is a general purpose text formatting language. 28c5f73b34SjoergSince traditional implementations of the 29c0d9444aSjoerg.Xr mdoc 7 30c0d9444aSjoergand 31c0d9444aSjoerg.Xr man 7 32c5f73b34Sjoergmanual formatting languages are based on it, 33c5f73b34Sjoergmany real-world manuals use small numbers of 340a84adc5Sjoerg.Nm 3570f041f9Sjoergrequests and escape sequences intermixed with their 36c5f73b34Sjoerg.Xr mdoc 7 370a84adc5Sjoergor 38c5f73b34Sjoerg.Xr man 7 39c5f73b34Sjoergcode. 40c5f73b34SjoergTo properly format such manuals, the 41c5f73b34Sjoerg.Xr mandoc 1 42*544c191cSchristosutility supports a subset of 43c5f73b34Sjoerg.Nm 4470f041f9Sjoergrequests and escapes. 45*544c191cSchristosEven though this manual page lists all 46*544c191cSchristos.Nm 47*544c191cSchristosrequests and escape sequences, it only contains partial information 48*544c191cSchristosabout requests not supported by 49c5f73b34Sjoerg.Xr mandoc 1 50*544c191cSchristosand about language features that do not matter for manual pages. 51c5f73b34SjoergFor complete 52c5f73b34Sjoerg.Nm 53c5f73b34Sjoergmanuals, consult the 54c5f73b34Sjoerg.Sx SEE ALSO 55c5f73b34Sjoergsection. 56c0d9444aSjoerg.Pp 57c5f73b34SjoergInput lines beginning with the control character 58c5f73b34Sjoerg.Sq \&. 59c5f73b34Sjoergare parsed for requests and macros. 60c5f73b34SjoergSuch lines are called 61c5f73b34Sjoerg.Dq request lines 62c5f73b34Sjoergor 63c5f73b34Sjoerg.Dq macro lines , 64c5f73b34Sjoergrespectively. 65c5f73b34SjoergRequests change the processing state and manipulate the formatting; 66c5f73b34Sjoergsome macros also define the document structure and produce formatted 67c5f73b34Sjoergoutput. 68c5f73b34SjoergThe single quote 69c5f73b34Sjoerg.Pq Qq \(aq 70c5f73b34Sjoergis accepted as an alternative control character, 71c5f73b34Sjoergtreated by 72c5f73b34Sjoerg.Xr mandoc 1 73c5f73b34Sjoergjust like 74c5f73b34Sjoerg.Ql \&. 75c5f73b34Sjoerg.Pp 76c5f73b34SjoergLines not beginning with control characters are called 77c5f73b34Sjoerg.Dq text lines . 78c5f73b34SjoergThey provide free-form text to be printed; the formatting of the text 79c5f73b34Sjoergdepends on the respective processing context. 800a84adc5Sjoerg.Sh LANGUAGE SYNTAX 810a84adc5Sjoerg.Nm 820a84adc5Sjoergdocuments may contain only graphable 7-bit ASCII characters, the space 83c0d9444aSjoergcharacter, and, in certain circumstances, the tab character. 8470f041f9SjoergThe backslash character 85c5f73b34Sjoerg.Sq \e 8670f041f9Sjoergindicates the start of an escape sequence, used for example for 87*544c191cSchristos.Sx Comments 88c5f73b34Sjoergand 89*544c191cSchristos.Sx Special Characters . 90*544c191cSchristosFor a complete listing of escape sequences, consult the 9170f041f9Sjoerg.Sx ESCAPE SEQUENCE REFERENCE 9270f041f9Sjoergbelow. 93c5f73b34Sjoerg.Ss Comments 94c5f73b34SjoergText following an escaped double-quote 95c5f73b34Sjoerg.Sq \e\(dq , 96c5f73b34Sjoergwhether in a request, macro, or text line, is ignored to the end of the line. 97c5f73b34SjoergA request line beginning with a control character and comment escape 98c5f73b34Sjoerg.Sq \&.\e\(dq 99c5f73b34Sjoergis also ignored. 100c5f73b34SjoergFurthermore, request lines with only a control character and optional 101c5f73b34Sjoergtrailing whitespace are stripped from input. 102c5f73b34Sjoerg.Pp 103c5f73b34SjoergExamples: 104c5f73b34Sjoerg.Bd -literal -offset indent -compact 105c5f73b34Sjoerg\&.\e\(dq This is a comment line. 106c5f73b34Sjoerg\&.\e\(dq The next line is ignored: 107c5f73b34Sjoerg\&. 108c5f73b34Sjoerg\&.Sh EXAMPLES \e\(dq This is a comment, too. 109c5f73b34Sjoerg\&example text \e\(dq And so is this. 110c5f73b34Sjoerg.Ed 111c5f73b34Sjoerg.Ss Special Characters 112c5f73b34SjoergSpecial characters are used to encode special glyphs and are rendered 113c5f73b34Sjoergdifferently across output media. 114c5f73b34SjoergThey may occur in request, macro, and text lines. 115c5f73b34SjoergSequences begin with the escape character 116c5f73b34Sjoerg.Sq \e 117c5f73b34Sjoergfollowed by either an open-parenthesis 118c5f73b34Sjoerg.Sq \&( 119c5f73b34Sjoergfor two-character sequences; an open-bracket 120c5f73b34Sjoerg.Sq \&[ 121c5f73b34Sjoergfor n-character sequences (terminated at a close-bracket 122c5f73b34Sjoerg.Sq \&] ) ; 123c5f73b34Sjoergor a single one character sequence. 124c5f73b34Sjoerg.Pp 125c5f73b34SjoergExamples: 126c5f73b34Sjoerg.Bl -tag -width Ds -offset indent -compact 127c5f73b34Sjoerg.It Li \e(em 128c5f73b34SjoergTwo-letter em dash escape. 129c5f73b34Sjoerg.It Li \ee 130c5f73b34SjoergOne-letter backslash escape. 131c5f73b34Sjoerg.El 132c5f73b34Sjoerg.Pp 133c5f73b34SjoergSee 134c0d9444aSjoerg.Xr mandoc_char 7 135c5f73b34Sjoergfor a complete list. 136*544c191cSchristos.Ss Font Selection 137*544c191cSchristosIn 138*544c191cSchristos.Xr mdoc 7 139*544c191cSchristosand 140*544c191cSchristos.Xr man 7 141*544c191cSchristosdocuments, fonts are usually selected with macros. 142*544c191cSchristosThe 143*544c191cSchristos.Ic \ef 144*544c191cSchristosescape sequence and the 145*544c191cSchristos.Ic \&ft 146*544c191cSchristosrequest can be used to manually change the font, 147*544c191cSchristosbut this is not recommended in 148*544c191cSchristos.Xr mdoc 7 149*544c191cSchristosdocuments. 150*544c191cSchristosSuch manual font changes are overridden by many subsequent macros. 151c5f73b34Sjoerg.Pp 152*544c191cSchristosThe following fonts are supported: 153*544c191cSchristos.Pp 154*544c191cSchristos.Bl -tag -width CW -offset indent -compact 155*544c191cSchristos.It Cm B 156*544c191cSchristosBold font. 157*544c191cSchristos.It Cm BI 158*544c191cSchristosA font that is both bold and italic. 159*544c191cSchristos.It Cm CB 160*544c191cSchristosBold constant width font. 161*544c191cSchristosSame as 162*544c191cSchristos.Cm B 163*544c191cSchristosin terminal output. 164*544c191cSchristos.It Cm CI 165*544c191cSchristosItalic constant width font. 166*544c191cSchristosSame as 167*544c191cSchristos.Cm I 168*544c191cSchristosin terminal output. 169*544c191cSchristos.It Cm CR 170*544c191cSchristosRegular constant width font. 171*544c191cSchristosSame as 172*544c191cSchristos.Cm R 173*544c191cSchristosin terminal output. 174*544c191cSchristos.It Cm CW 175*544c191cSchristosAn alias for 176*544c191cSchristos.Cm CR . 177*544c191cSchristos.It Cm I 178*544c191cSchristosItalic font. 179*544c191cSchristos.It Cm P 180*544c191cSchristosReturn to the previous font. 181*544c191cSchristosIf a macro caused a font change since the last 182*544c191cSchristos.Ic \ef 183*544c191cSchristoseascape sequence or 184*544c191cSchristos.Ic \&ft 185*544c191cSchristosrequest, this returns to the font before the last font change in 186*544c191cSchristosthe macro rather than to the font before the last manual font change. 187*544c191cSchristos.It Cm R 188*544c191cSchristosRoman font. 189*544c191cSchristosThis is the default font. 190*544c191cSchristos.It Cm 1 191*544c191cSchristosAn alias for 192*544c191cSchristos.Cm R . 193*544c191cSchristos.It Cm 2 194*544c191cSchristosAn alias for 195*544c191cSchristos.Cm I . 196*544c191cSchristos.It Cm 3 197*544c191cSchristosAn alias for 198*544c191cSchristos.Cm B . 199*544c191cSchristos.It Cm 4 200*544c191cSchristosAn alias for 201*544c191cSchristos.Cm BI . 202*544c191cSchristos.El 20370f041f9Sjoerg.Pp 204c5f73b34SjoergExamples: 205c5f73b34Sjoerg.Bl -tag -width Ds -offset indent -compact 206c5f73b34Sjoerg.It Li \efBbold\efR 20770f041f9SjoergWrite in \fBbold\fP, then switch to regular font mode. 208c5f73b34Sjoerg.It Li \efIitalic\efP 20970f041f9SjoergWrite in \fIitalic\fP, then return to previous font mode. 21070f041f9Sjoerg.It Li \ef(BIbold italic\efP 21170f041f9SjoergWrite in \f(BIbold italic\fP, then return to previous font mode. 212c5f73b34Sjoerg.El 213c5f73b34Sjoerg.Ss Whitespace 214c5f73b34SjoergWhitespace consists of the space character. 215c5f73b34SjoergIn text lines, whitespace is preserved within a line. 216c5f73b34SjoergIn request and macro lines, whitespace delimits arguments and is discarded. 217c5f73b34Sjoerg.Pp 218c5f73b34SjoergUnescaped trailing spaces are stripped from text line input unless in a 219c5f73b34Sjoergliteral context. 220c5f73b34SjoergIn general, trailing whitespace on any input line is discouraged for 221c5f73b34Sjoergreasons of portability. 222*544c191cSchristosIn the rare case that a space character is needed at the end of an 223c5f73b34Sjoerginput line, it may be forced by 224c5f73b34Sjoerg.Sq \e\ \e& . 225c5f73b34Sjoerg.Pp 226c5f73b34SjoergLiteral space characters can be produced in the output 227c5f73b34Sjoergusing escape sequences. 228c5f73b34SjoergIn macro lines, they can also be included in arguments using quotation; see 229c5f73b34Sjoerg.Sx MACRO SYNTAX 230c5f73b34Sjoergfor details. 231c5f73b34Sjoerg.Pp 232c5f73b34SjoergBlank text lines, which may include whitespace, are only permitted 233c5f73b34Sjoergwithin literal contexts. 234c5f73b34SjoergIf the first character of a text line is a space, that line is printed 235c5f73b34Sjoergwith a leading newline. 236c5f73b34Sjoerg.Ss Scaling Widths 237c5f73b34SjoergMany requests and macros support scaled widths for their arguments. 238c5f73b34SjoergThe syntax for a scaled width is 239c5f73b34Sjoerg.Sq Li [+-]?[0-9]*.[0-9]*[:unit:] , 240c5f73b34Sjoergwhere a decimal must be preceded or followed by at least one digit. 241c5f73b34Sjoerg.Pp 242c5f73b34SjoergThe following scaling units are accepted: 243c5f73b34Sjoerg.Pp 244c5f73b34Sjoerg.Bl -tag -width Ds -offset indent -compact 245c5f73b34Sjoerg.It c 246c5f73b34Sjoergcentimetre 247c5f73b34Sjoerg.It i 248c5f73b34Sjoerginch 249c5f73b34Sjoerg.It P 250*544c191cSchristospica (1/6 inch) 251c5f73b34Sjoerg.It p 252*544c191cSchristospoint (1/72 inch) 253c5f73b34Sjoerg.It f 254fec65c98Schristosscale 255c5f73b34Sjoerg.Sq u 256fec65c98Schristosby 65536 257c5f73b34Sjoerg.It v 258c5f73b34Sjoergdefault vertical span 259c5f73b34Sjoerg.It m 260c5f73b34Sjoergwidth of rendered 261c5f73b34Sjoerg.Sq m 262c5f73b34Sjoerg.Pq em 263c5f73b34Sjoergcharacter 264c5f73b34Sjoerg.It n 265c5f73b34Sjoergwidth of rendered 266c5f73b34Sjoerg.Sq n 267c5f73b34Sjoerg.Pq en 268c5f73b34Sjoergcharacter 269c5f73b34Sjoerg.It u 270fec65c98Schristosdefault horizontal span for the terminal 271c5f73b34Sjoerg.It M 272*544c191cSchristosmini-em (1/100 em) 273c5f73b34Sjoerg.El 274c5f73b34Sjoerg.Pp 275c5f73b34SjoergUsing anything other than 276c5f73b34Sjoerg.Sq m , 277c5f73b34Sjoerg.Sq n , 278c5f73b34Sjoergor 279c5f73b34Sjoerg.Sq v 280c5f73b34Sjoergis necessarily non-portable across output media. 281c5f73b34SjoergSee 282c5f73b34Sjoerg.Sx COMPATIBILITY . 283c5f73b34Sjoerg.Pp 284c5f73b34SjoergIf a scaling unit is not provided, the numerical value is interpreted 285c5f73b34Sjoergunder the default rules of 286c5f73b34Sjoerg.Sq v 287c5f73b34Sjoergfor vertical spaces and 288c5f73b34Sjoerg.Sq u 289c5f73b34Sjoergfor horizontal ones. 290c5f73b34Sjoerg.Pp 291c5f73b34SjoergExamples: 292c5f73b34Sjoerg.Bl -tag -width ".Bl -tag -width 2i" -offset indent -compact 293c5f73b34Sjoerg.It Li \&.Bl -tag -width 2i 294c5f73b34Sjoergtwo-inch tagged list indentation in 295c5f73b34Sjoerg.Xr mdoc 7 296c5f73b34Sjoerg.It Li \&.HP 2i 297c5f73b34Sjoergtwo-inch tagged list indentation in 298c5f73b34Sjoerg.Xr man 7 299c5f73b34Sjoerg.It Li \&.sp 2v 300c5f73b34Sjoergtwo vertical spaces 301c5f73b34Sjoerg.El 302c5f73b34Sjoerg.Ss Sentence Spacing 303c5f73b34SjoergEach sentence should terminate at the end of an input line. 304c5f73b34SjoergBy doing this, a formatter will be able to apply the proper amount of 305c5f73b34Sjoergspacing after the end of sentence (unescaped) period, exclamation mark, 306c5f73b34Sjoergor question mark followed by zero or more non-sentence closing 307c5f73b34Sjoergdelimiters 308c5f73b34Sjoerg.Po 309c5f73b34Sjoerg.Sq \&) , 310c5f73b34Sjoerg.Sq \&] , 311c5f73b34Sjoerg.Sq \&' , 312c5f73b34Sjoerg.Sq \&" 313c5f73b34Sjoerg.Pc . 314c5f73b34Sjoerg.Pp 315c5f73b34SjoergThe proper spacing is also intelligently preserved if a sentence ends at 316c5f73b34Sjoergthe boundary of a macro line. 317c5f73b34Sjoerg.Pp 318c5f73b34SjoergExamples: 319c5f73b34Sjoerg.Bd -literal -offset indent -compact 320c5f73b34SjoergDo not end sentences mid-line like this. Instead, 321c5f73b34Sjoergend a sentence like this. 322c5f73b34SjoergA macro would end like this: 323c5f73b34Sjoerg\&.Xr mandoc 1 \&. 324c5f73b34Sjoerg.Ed 325c0d9444aSjoerg.Sh REQUEST SYNTAX 326c0d9444aSjoergA request or macro line consists of: 327c0d9444aSjoerg.Pp 328c0d9444aSjoerg.Bl -enum -compact 329c0d9444aSjoerg.It 330c0d9444aSjoergthe control character 331c0d9444aSjoerg.Sq \&. 3320a84adc5Sjoergor 333c0d9444aSjoerg.Sq \(aq 334c0d9444aSjoergat the beginning of the line, 335c0d9444aSjoerg.It 336c0d9444aSjoergoptionally an arbitrary amount of whitespace, 337c0d9444aSjoerg.It 338c0d9444aSjoergthe name of the request or the macro, which is one word of arbitrary 339c0d9444aSjoerglength, terminated by whitespace, 340c0d9444aSjoerg.It 341c0d9444aSjoergand zero or more arguments delimited by whitespace. 342c0d9444aSjoerg.El 343c0d9444aSjoerg.Pp 344c0d9444aSjoergThus, the following request lines are all equivalent: 3450a84adc5Sjoerg.Bd -literal -offset indent 346c0d9444aSjoerg\&.ig end 347c0d9444aSjoerg\&.ig end 348c0d9444aSjoerg\&. ig end 3490a84adc5Sjoerg.Ed 35048741257Sjoerg.Sh MACRO SYNTAX 351c5f73b34SjoergMacros are provided by the 352c5f73b34Sjoerg.Xr mdoc 7 353c5f73b34Sjoergand 354c5f73b34Sjoerg.Xr man 7 355c5f73b34Sjoerglanguages and can be defined by the 356*544c191cSchristos.Ic \&de 35748741257Sjoergrequest. 35848741257SjoergWhen called, they follow the same syntax as requests, except that 35948741257Sjoergmacro arguments may optionally be quoted by enclosing them 36048741257Sjoergin double quote characters 36148741257Sjoerg.Pq Sq \(dq . 362c5f73b34SjoergQuoted text, even if it contains whitespace or would cause 363c5f73b34Sjoerga macro invocation when unquoted, is always considered literal text. 364c5f73b34SjoergInside quoted text, pairs of double quote characters 36548741257Sjoerg.Pq Sq Qq 36648741257Sjoergresolve to single double quote characters. 367c5f73b34Sjoerg.Pp 368c5f73b34SjoergTo be recognised as the beginning of a quoted argument, the opening 369c5f73b34Sjoergquote character must be preceded by a space character. 37048741257SjoergA quoted argument extends to the next double quote character that is not 37148741257Sjoergpart of a pair, or to the end of the input line, whichever comes earlier. 37248741257SjoergLeaving out the terminating double quote character at the end of the line 37348741257Sjoergis discouraged. 37448741257SjoergFor clarity, if more arguments follow on the same input line, 37548741257Sjoergit is recommended to follow the terminating double quote character 37648741257Sjoergby a space character; in case the next character after the terminating 37748741257Sjoergdouble quote character is anything else, it is regarded as the beginning 37848741257Sjoergof the next, unquoted argument. 37948741257Sjoerg.Pp 38048741257SjoergBoth in quoted and unquoted arguments, pairs of backslashes 38148741257Sjoerg.Pq Sq \e\e 38248741257Sjoergresolve to single backslashes. 38348741257SjoergIn unquoted arguments, space characters can alternatively be included 38448741257Sjoergby preceding them with a backslash 38548741257Sjoerg.Pq Sq \e\~ , 38648741257Sjoergbut quoting is usually better for clarity. 387c5f73b34Sjoerg.Pp 388c5f73b34SjoergExamples: 389c5f73b34Sjoerg.Bl -tag -width Ds -offset indent -compact 390c5f73b34Sjoerg.It Li .Fn strlen \(dqconst char *s\(dq 391c5f73b34SjoergGroup arguments 392c5f73b34Sjoerg.Qq const char *s 393c5f73b34Sjoerginto one function argument. 394c5f73b34SjoergIf unspecified, 395c5f73b34Sjoerg.Qq const , 396c5f73b34Sjoerg.Qq char , 397c5f73b34Sjoergand 398c5f73b34Sjoerg.Qq *s 399c5f73b34Sjoergwould be considered separate arguments. 400c5f73b34Sjoerg.It Li .Op \(dqFl a\(dq 401c5f73b34SjoergConsider 402c5f73b34Sjoerg.Qq \&Fl a 403c5f73b34Sjoergas literal text instead of a flag macro. 404c5f73b34Sjoerg.El 405c0d9444aSjoerg.Sh REQUEST REFERENCE 406c0d9444aSjoergThe 407c0d9444aSjoerg.Xr mandoc 1 408c0d9444aSjoerg.Nm 409c5f73b34Sjoergparser recognises the following requests. 410fec65c98SchristosFor requests marked as "ignored" or "unsupported", any arguments are 411fec65c98Schristosignored, and the number of arguments is not checked. 412c9bcef03Schristos.Bl -tag -width Ds 413c9bcef03Schristos.It Ic \&ab Op Ar message 414fec65c98SchristosAbort processing. 415fec65c98SchristosCurrently unsupported. 416c9bcef03Schristos.It Ic \&ad Op Cm b | c | l | n | r 417c9bcef03SchristosSet line adjustment mode for subsequent text. 418fec65c98SchristosCurrently ignored. 419c9bcef03Schristos.It Ic \&af Ar registername format 420fec65c98SchristosAssign an output format to a number register. 421fec65c98SchristosCurrently ignored. 422c9bcef03Schristos.It Ic \&aln Ar newname oldname 423fec65c98SchristosCreate an alias for a number register. 424fec65c98SchristosCurrently unsupported. 425c9bcef03Schristos.It Ic \&als Ar newname oldname 426fec65c98SchristosCreate an alias for a request, string, macro, or diversion. 427c9bcef03Schristos.It Ic \&am Ar macroname Op Ar endmacro 428c0d9444aSjoergAppend to a macro definition. 429c0d9444aSjoergThe syntax of this request is the same as that of 430c9bcef03Schristos.Ic \&de . 431c9bcef03Schristos.It Ic \&am1 Ar macroname Op Ar endmacro 432c0d9444aSjoergAppend to a macro definition, switching roff compatibility mode off 433fec65c98Schristosduring macro execution (groff extension). 434c0d9444aSjoergThe syntax of this request is the same as that of 435c9bcef03Schristos.Ic \&de1 . 436fec65c98SchristosSince 437fec65c98Schristos.Xr mandoc 1 438fec65c98Schristosdoes not implement 439fec65c98Schristos.Nm 440fec65c98Schristoscompatibility mode at all, it handles this request as an alias for 441c9bcef03Schristos.Ic \&am . 442c9bcef03Schristos.It Ic \&ami Ar macrostring Op Ar endstring 443fec65c98SchristosAppend to a macro definition, specifying the macro name indirectly 444fec65c98Schristos(groff extension). 445fec65c98SchristosThe syntax of this request is the same as that of 446c9bcef03Schristos.Ic \&dei . 447c9bcef03Schristos.It Ic \&ami1 Ar macrostring Op Ar endstring 448fec65c98SchristosAppend to a macro definition, specifying the macro name indirectly 449fec65c98Schristosand switching roff compatibility mode off during macro execution 450fec65c98Schristos(groff extension). 451fec65c98SchristosThe syntax of this request is the same as that of 452c9bcef03Schristos.Ic \&dei1 . 453fec65c98SchristosSince 454fec65c98Schristos.Xr mandoc 1 455fec65c98Schristosdoes not implement 456fec65c98Schristos.Nm 457fec65c98Schristoscompatibility mode at all, it handles this request as an alias for 458c9bcef03Schristos.Ic \&ami . 459c9bcef03Schristos.It Ic \&as Ar stringname Op Ar string 460fec65c98SchristosAppend to a user-defined string. 461fec65c98SchristosThe syntax of this request is the same as that of 462*544c191cSchristos.Ic \&ds . 463fec65c98SchristosIf a user-defined string with the specified name does not yet exist, 464fec65c98Schristosit is set to the empty string before appending. 465c9bcef03Schristos.It Ic \&as1 Ar stringname Op Ar string 466fec65c98SchristosAppend to a user-defined string, switching roff compatibility mode off 467fec65c98Schristosduring macro execution (groff extension). 468fec65c98SchristosThe syntax of this request is the same as that of 469c9bcef03Schristos.Ic \&ds1 . 470fec65c98SchristosSince 471fec65c98Schristos.Xr mandoc 1 472fec65c98Schristosdoes not implement 473fec65c98Schristos.Nm 474fec65c98Schristoscompatibility mode at all, it handles this request as an alias for 475c9bcef03Schristos.Ic \&as . 476c9bcef03Schristos.It Ic \&asciify Ar divname 477fec65c98SchristosFully unformat a diversion. 478fec65c98SchristosCurrently unsupported. 479c9bcef03Schristos.It Ic \&backtrace 480fec65c98SchristosPrint a backtrace of the input stack. 481fec65c98SchristosThis is a groff extension and currently ignored. 482c9bcef03Schristos.It Ic \&bd Ar font Oo Ar curfont Oc Op Ar offset 483fec65c98SchristosArtificially embolden by repeated printing with small shifts. 484fec65c98SchristosCurrently ignored. 485c9bcef03Schristos.It Ic \&bleedat Ar left top width height 486fec65c98SchristosSet the BleedBox page parameter for PDF generation. 487fec65c98SchristosThis is a Heirloom extension and currently ignored. 488c9bcef03Schristos.It Ic \&blm Ar macroname 489fec65c98SchristosSet a blank line trap. 490fec65c98SchristosCurrently unsupported. 491c9bcef03Schristos.It Ic \&box Ar divname 492fec65c98SchristosBegin a diversion without including a partially filled line. 493fec65c98SchristosCurrently unsupported. 494c9bcef03Schristos.It Ic \&boxa Ar divname 495fec65c98SchristosAdd to a diversion without including a partially filled line. 496fec65c98SchristosCurrently unsupported. 497c9bcef03Schristos.It Ic \&bp Oo Cm + Ns | Ns Cm - Oc Ns Ar pagenumber 498c9bcef03SchristosBegin a new page. 499fec65c98SchristosCurrently ignored. 500c9bcef03Schristos.It Ic \&BP Ar source height width position offset flags label 501fec65c98SchristosDefine a frame and place a picture in it. 502fec65c98SchristosThis is a Heirloom extension and currently unsupported. 503c9bcef03Schristos.It Ic \&br 504fec65c98SchristosBreak the output line. 505c9bcef03Schristos.It Ic \&break 506fec65c98SchristosBreak out of a 507c9bcef03Schristos.Ic \&while 508fec65c98Schristosloop. 509fec65c98SchristosCurrently unsupported. 510c9bcef03Schristos.It Ic \&breakchar Ar char ... 511fec65c98SchristosOptional line break characters. 512fec65c98SchristosThis is a Heirloom extension and currently ignored. 513c9bcef03Schristos.It Ic \&brnl Ar N 514c9bcef03SchristosBreak output line after the next 515c9bcef03Schristos.Ar N 516c9bcef03Schristosinput lines. 517fec65c98SchristosThis is a Heirloom extension and currently ignored. 518c9bcef03Schristos.It Ic \&brp 519fec65c98SchristosBreak and spread output line. 520fec65c98SchristosCurrently, this is implemented as an alias for 521c9bcef03Schristos.Ic \&br . 522c9bcef03Schristos.It Ic \&brpnl Ar N 523c9bcef03SchristosBreak and spread output line after the next 524c9bcef03Schristos.Ar N 525c9bcef03Schristosinput lines. 526fec65c98SchristosThis is a Heirloom extension and currently ignored. 527c9bcef03Schristos.It Ic \&c2 Op Ar char 528fec65c98SchristosChange the no-break control character. 529fec65c98SchristosCurrently unsupported. 530c9bcef03Schristos.It Ic \&cc Op Ar char 531fec65c98SchristosChange the control character. 53270f041f9SjoergIf 533c9bcef03Schristos.Ar char 53470f041f9Sjoergis not specified, the control character is reset to 53570f041f9Sjoerg.Sq \&. . 53670f041f9SjoergTrailing characters are ignored. 537c9bcef03Schristos.It Ic \&ce Op Ar N 538c9bcef03SchristosCenter the next 539c9bcef03Schristos.Ar N 540c9bcef03Schristosinput lines without filling. 541c9bcef03Schristos.Ar N 542c9bcef03Schristosdefaults to 1. 543c9bcef03SchristosAn argument of 0 or less ends centering. 544c9bcef03SchristosCurrently, high level macros abort centering. 545c9bcef03Schristos.It Ic \&cf Ar filename 546fec65c98SchristosOutput the contents of a file. 547fec65c98SchristosIgnored because insecure. 548c9bcef03Schristos.It Ic \&cflags Ar flags char ... 549fec65c98SchristosSet character flags. 550fec65c98SchristosThis is a groff extension and currently ignored. 551c9bcef03Schristos.It Ic \&ch Ar macroname Op Ar dist 552fec65c98SchristosChange a trap location. 553fec65c98SchristosCurrently ignored. 554*544c191cSchristos.It Ic \&char Ar glyph Op Ar string 555*544c191cSchristosDefine or redefine the ASCII character or character escape sequence 556*544c191cSchristos.Ar glyph 557*544c191cSchristosto be rendered as 558*544c191cSchristos.Ar string , 559*544c191cSchristoswhich can be empty. 560*544c191cSchristosOnly partially supported in 561*544c191cSchristos.Xr mandoc 1 ; 562*544c191cSchristosmay interact incorrectly with 563*544c191cSchristos.Ic \&tr . 564c9bcef03Schristos.It Ic \&chop Ar stringname 565fec65c98SchristosRemove the last character from a macro, string, or diversion. 566fec65c98SchristosCurrently unsupported. 567c9bcef03Schristos.It Ic \&class Ar classname char ... 568fec65c98SchristosDefine a character class. 569fec65c98SchristosThis is a groff extension and currently ignored. 570c9bcef03Schristos.It Ic \&close Ar streamname 571fec65c98SchristosClose an open file. 572fec65c98SchristosIgnored because insecure. 573c9bcef03Schristos.It Ic \&CL Ar color text 574fec65c98SchristosPrint text in color. 575fec65c98SchristosThis is a Heirloom extension and currently unsupported. 576c9bcef03Schristos.It Ic \&color Op Cm 1 | 0 577fec65c98SchristosActivate or deactivate colors. 578fec65c98SchristosThis is a groff extension and currently ignored. 579c9bcef03Schristos.It Ic \&composite Ar from to 580fec65c98SchristosDefine a name component for composite glyph names. 581fec65c98SchristosThis is a groff extension and currently unsupported. 582c9bcef03Schristos.It Ic \&continue 583fec65c98SchristosImmediately start the next iteration of a 584c9bcef03Schristos.Ic \&while 585fec65c98Schristosloop. 586fec65c98SchristosCurrently unsupported. 587c9bcef03Schristos.It Ic \&cp Op Cm 1 | 0 588fec65c98SchristosSwitch 589fec65c98Schristos.Nm 590fec65c98Schristoscompatibility mode on or off. 591fec65c98SchristosCurrently ignored. 592c9bcef03Schristos.It Ic \&cropat Ar left top width height 593fec65c98SchristosSet the CropBox page parameter for PDF generation. 594fec65c98SchristosThis is a Heirloom extension and currently ignored. 595c9bcef03Schristos.It Ic \&cs Ar font Op Ar width Op Ar emsize 596fec65c98SchristosConstant character spacing mode. 597fec65c98SchristosCurrently ignored. 598c9bcef03Schristos.It Ic \&cu Op Ar N 599c9bcef03SchristosUnderline next 600c9bcef03Schristos.Ar N 601c9bcef03Schristosinput lines including whitespace. 602fec65c98SchristosCurrently ignored. 603c9bcef03Schristos.It Ic \&da Ar divname 604fec65c98SchristosAppend to a diversion. 605fec65c98SchristosCurrently unsupported. 606c9bcef03Schristos.It Ic \&dch Ar macroname Op Ar dist 607fec65c98SchristosChange a trap location in the current diversion. 608fec65c98SchristosThis is a Heirloom extension and currently unsupported. 609c9bcef03Schristos.It Ic \&de Ar macroname Op Ar endmacro 610c0d9444aSjoergDefine a 611c0d9444aSjoerg.Nm 612c0d9444aSjoergmacro. 613c0d9444aSjoergIts syntax can be either 614c0d9444aSjoerg.Bd -literal -offset indent 615c9bcef03Schristos.Pf . Ic \&de Ar macroname 616c9bcef03Schristos.Ar definition 617c0d9444aSjoerg\&.. 618c0d9444aSjoerg.Ed 619c0d9444aSjoerg.Pp 620c0d9444aSjoergor 621c0d9444aSjoerg.Bd -literal -offset indent 622c9bcef03Schristos.Pf . Ic \&de Ar macroname Ar endmacro 623c9bcef03Schristos.Ar definition 624c9bcef03Schristos.Pf . Ar endmacro 625c0d9444aSjoerg.Ed 626c0d9444aSjoerg.Pp 627c0d9444aSjoergBoth forms define or redefine the macro 628c9bcef03Schristos.Ar macroname 629c0d9444aSjoergto represent the 630c9bcef03Schristos.Ar definition , 631c0d9444aSjoergwhich may consist of one or more input lines, including the newline 632c0d9444aSjoergcharacters terminating each line, optionally containing calls to 633c0d9444aSjoerg.Nm 634c0d9444aSjoergrequests, 635c0d9444aSjoerg.Nm 636c0d9444aSjoergmacros or high-level macros like 637c0d9444aSjoerg.Xr man 7 638c0d9444aSjoergor 639c0d9444aSjoerg.Xr mdoc 7 640c0d9444aSjoergmacros, whichever applies to the document in question. 641c0d9444aSjoerg.Pp 642c0d9444aSjoergSpecifying a custom 643c9bcef03Schristos.Ar endmacro 644*544c191cSchristosworks in the same way as for 645c9bcef03Schristos.Ic \&ig ; 646c0d9444aSjoergnamely, the call to 647c9bcef03Schristos.Sq Pf . Ar endmacro 648c0d9444aSjoergfirst ends the 649c9bcef03Schristos.Ar definition , 650c0d9444aSjoergand after that, it is also evaluated as a 651c0d9444aSjoerg.Nm 652c0d9444aSjoergrequest or 653c0d9444aSjoerg.Nm 654c0d9444aSjoergmacro, but not as a high-level macro. 655c0d9444aSjoerg.Pp 656c0d9444aSjoergThe macro can be invoked later using the syntax 657c0d9444aSjoerg.Pp 658c9bcef03Schristos.D1 Pf . Ar macroname Op Ar argument Op Ar argument ... 659c0d9444aSjoerg.Pp 66048741257SjoergRegarding argument parsing, see 66148741257Sjoerg.Sx MACRO SYNTAX 66248741257Sjoergabove. 663c0d9444aSjoerg.Pp 664c0d9444aSjoergThe line invoking the macro will be replaced 665c0d9444aSjoergin the input stream by the 666c9bcef03Schristos.Ar definition , 667c0d9444aSjoergreplacing all occurrences of 668c0d9444aSjoerg.No \e\e$ Ns Ar N , 669c0d9444aSjoergwhere 670c0d9444aSjoerg.Ar N 671c0d9444aSjoergis a digit, by the 672c0d9444aSjoerg.Ar N Ns th Ar argument . 673c0d9444aSjoergFor example, 674c0d9444aSjoerg.Bd -literal -offset indent 675c0d9444aSjoerg\&.de ZN 676c0d9444aSjoerg\efI\e^\e\e$1\e^\efP\e\e$2 677c0d9444aSjoerg\&.. 678c0d9444aSjoerg\&.ZN XtFree . 679c0d9444aSjoerg.Ed 680c0d9444aSjoerg.Pp 681c0d9444aSjoergproduces 682c0d9444aSjoerg.Pp 683c0d9444aSjoerg.D1 \efI\e^XtFree\e^\efP. 684c0d9444aSjoerg.Pp 685c0d9444aSjoergin the input stream, and thus in the output: \fI\^XtFree\^\fP. 6869ff1f2acSchristosEach occurrence of \e\e$* is replaced with all the arguments, 687*544c191cSchristosjoined together with single space characters. 688*544c191cSchristosThe variant \e\e$@ is similar, except that each argument is 689*544c191cSchristosindividually quoted. 690c0d9444aSjoerg.Pp 691c0d9444aSjoergSince macros and user-defined strings share a common string table, 692c0d9444aSjoergdefining a macro 693c9bcef03Schristos.Ar macroname 694c0d9444aSjoergclobbers the user-defined string 695c9bcef03Schristos.Ar macroname , 696c0d9444aSjoergand the 697c9bcef03Schristos.Ar definition 698c0d9444aSjoergcan also be printed using the 699c0d9444aSjoerg.Sq \e* 700c0d9444aSjoergstring interpolation syntax described below 701c9bcef03Schristos.Ic ds , 702c0d9444aSjoergbut this is rarely useful because every macro definition contains at least 703c0d9444aSjoergone explicit newline character. 704c0d9444aSjoerg.Pp 705c0d9444aSjoergIn order to prevent endless recursion, both groff and 706c0d9444aSjoerg.Xr mandoc 1 707c0d9444aSjoerglimit the stack depth for expanding macros and strings 708fec65c98Schristosto a large, but finite number, and 709fec65c98Schristos.Xr mandoc 1 710fec65c98Schristosalso limits the length of the expanded input line. 711fec65c98SchristosDo not rely on the exact values of these limits. 712c9bcef03Schristos.It Ic \&de1 Ar macroname Op Ar endmacro 713c0d9444aSjoergDefine a 714c0d9444aSjoerg.Nm 715c0d9444aSjoergmacro that will be executed with 716c0d9444aSjoerg.Nm 717c0d9444aSjoergcompatibility mode switched off during macro execution. 718fec65c98SchristosThis is a groff extension. 719c0d9444aSjoergSince 720c0d9444aSjoerg.Xr mandoc 1 721c0d9444aSjoergdoes not implement 722c0d9444aSjoerg.Nm 723c0d9444aSjoergcompatibility mode at all, it handles this request as an alias for 724c9bcef03Schristos.Ic \&de . 725c9bcef03Schristos.It Ic \&defcolor Ar newname scheme component ... 726fec65c98SchristosDefine a color name. 727fec65c98SchristosThis is a groff extension and currently ignored. 728c9bcef03Schristos.It Ic \&dei Ar macrostring Op Ar endstring 729fec65c98SchristosDefine a 730fec65c98Schristos.Nm 731fec65c98Schristosmacro, specifying the macro name indirectly (groff extension). 732fec65c98SchristosThe syntax of this request is the same as that of 733c9bcef03Schristos.Ic \&de . 734c9bcef03SchristosThe effect is the same as: 735fec65c98Schristos.Pp 736c9bcef03Schristos.D1 Pf . Cm \&de No \e* Ns Bo Ar macrostring Bc Op \e* Ns Bq Ar endstring 737c9bcef03Schristos.It Ic \&dei1 Ar macrostring Op Ar endstring 738fec65c98SchristosDefine a 739fec65c98Schristos.Nm 740fec65c98Schristosmacro that will be executed with 741fec65c98Schristos.Nm 742fec65c98Schristoscompatibility mode switched off during macro execution, 743fec65c98Schristosspecifying the macro name indirectly (groff extension). 744fec65c98SchristosSince 745fec65c98Schristos.Xr mandoc 1 746fec65c98Schristosdoes not implement 747fec65c98Schristos.Nm 748fec65c98Schristoscompatibility mode at all, it handles this request as an alias for 749c9bcef03Schristos.Ic \&dei . 750c9bcef03Schristos.It Ic \&device Ar string ... 751c9bcef03Schristos.It Ic \&devicem Ar stringname 752c9bcef03SchristosThese two requests only make sense with the groff-specific intermediate 753c9bcef03Schristosoutput format and are unsupported. 754c9bcef03Schristos.It Ic \&di Ar divname 755fec65c98SchristosBegin a diversion. 756fec65c98SchristosCurrently unsupported. 757c9bcef03Schristos.It Ic \&do Ar command Op Ar argument ... 758fec65c98SchristosExecute 759fec65c98Schristos.Nm 760fec65c98Schristosrequest or macro line with compatibility mode disabled. 761fec65c98SchristosCurrently unsupported. 762c9bcef03Schristos.It Ic \&ds Ar stringname Op Oo \(dq Oc Ns Ar string 763c0d9444aSjoergDefine a user-defined string. 76482361f10SjoergThe 765c9bcef03Schristos.Ar stringname 76682361f10Sjoergand 767c0d9444aSjoerg.Ar string 768c0d9444aSjoergarguments are space-separated. 769c0d9444aSjoergIf the 770c0d9444aSjoerg.Ar string 771c0d9444aSjoergbegins with a double-quote character, that character will not be part 772c0d9444aSjoergof the string. 773c0d9444aSjoergAll remaining characters on the input line form the 774c0d9444aSjoerg.Ar string , 775c0d9444aSjoergincluding whitespace and double-quote characters, even trailing ones. 7767da9b934Sjoerg.Pp 777c0d9444aSjoergThe 778c0d9444aSjoerg.Ar string 779c0d9444aSjoergcan be interpolated into subsequent text by using 780c9bcef03Schristos.No \e* Ns Bq Ar stringname 781c0d9444aSjoergfor a 782c9bcef03Schristos.Ar stringname 783c0d9444aSjoergof arbitrary length, or \e*(NN or \e*N if the length of 784c9bcef03Schristos.Ar stringname 785c0d9444aSjoergis two or one characters, respectively. 786c0d9444aSjoergInterpolation can be prevented by escaping the leading backslash; 787c0d9444aSjoergthat is, an asterisk preceded by an even number of backslashes 788c0d9444aSjoergdoes not trigger string interpolation. 789c0d9444aSjoerg.Pp 790c0d9444aSjoergSince user-defined strings and macros share a common string table, 791c0d9444aSjoergdefining a string 792c9bcef03Schristos.Ar stringname 793c0d9444aSjoergclobbers the macro 794c9bcef03Schristos.Ar stringname , 795c0d9444aSjoergand the 796c9bcef03Schristos.Ar stringname 797c0d9444aSjoergused for defining a string can also be invoked as a macro, 798c0d9444aSjoergin which case the following input line will be appended to the 799c0d9444aSjoerg.Ar string , 800c0d9444aSjoergforming a new input line passed to the 801c0d9444aSjoerg.Nm 802c0d9444aSjoergparser. 803c0d9444aSjoergFor example, 804c0d9444aSjoerg.Bd -literal -offset indent 805c0d9444aSjoerg\&.ds badidea .S 806c0d9444aSjoerg\&.badidea 807c0d9444aSjoergH SYNOPSIS 808c0d9444aSjoerg.Ed 809c0d9444aSjoerg.Pp 810c0d9444aSjoerginvokes the 811c9bcef03Schristos.Ic SH 812c0d9444aSjoergmacro when used in a 813c0d9444aSjoerg.Xr man 7 814c0d9444aSjoergdocument. 815c0d9444aSjoergSuch abuse is of course strongly discouraged. 816c9bcef03Schristos.It Ic \&ds1 Ar stringname Op Oo \(dq Oc Ns Ar string 817fec65c98SchristosDefine a user-defined string that will be expanded with 818fec65c98Schristos.Nm 819fec65c98Schristoscompatibility mode switched off during string expansion. 820fec65c98SchristosThis is a groff extension. 821fec65c98SchristosSince 822fec65c98Schristos.Xr mandoc 1 823fec65c98Schristosdoes not implement 824fec65c98Schristos.Nm 825fec65c98Schristoscompatibility mode at all, it handles this request as an alias for 826c9bcef03Schristos.Ic \&ds . 827c9bcef03Schristos.It Ic \&dwh Ar dist macroname 828fec65c98SchristosSet a location trap in the current diversion. 829fec65c98SchristosThis is a Heirloom extension and currently unsupported. 830c9bcef03Schristos.It Ic \&dt Op Ar dist macroname 831fec65c98SchristosSet a trap within a diversion. 832fec65c98SchristosCurrently unsupported. 833c9bcef03Schristos.It Ic \&ec Op Ar char 834c9bcef03SchristosEnable the escape mechanism and change the escape character. 835c9bcef03SchristosThe 836c9bcef03Schristos.Ar char 837c9bcef03Schristosargument defaults to the backslash 838c9bcef03Schristos.Pq Sq \e . 839c9bcef03Schristos.It Ic \&ecr 840fec65c98SchristosRestore the escape character. 841fec65c98SchristosCurrently unsupported. 842c9bcef03Schristos.It Ic \&ecs 843fec65c98SchristosSave the escape character. 844fec65c98SchristosCurrently unsupported. 845c9bcef03Schristos.It Ic \&el Ar body 8460a84adc5SjoergThe 847c9bcef03Schristos.Dq else 8480a84adc5Sjoerghalf of an if/else conditional. 8490a84adc5SjoergPops a result off the stack of conditional evaluations pushed by 850c9bcef03Schristos.Ic \&ie 8510a84adc5Sjoergand uses it as its conditional. 8520a84adc5SjoergIf no stack entries are present (e.g., due to no prior 853c9bcef03Schristos.Ic \&ie 8540a84adc5Sjoergcalls) 8550a84adc5Sjoergthen false is assumed. 856c0d9444aSjoergThe syntax of this request is similar to 857c9bcef03Schristos.Ic \&if 8580a84adc5Sjoergexcept that the conditional is missing. 859c9bcef03Schristos.It Ic \&em Ar macroname 860fec65c98SchristosSet a trap at the end of input. 861fec65c98SchristosCurrently unsupported. 862c9bcef03Schristos.It Ic \&EN 86348741257SjoergEnd an equation block. 86448741257SjoergSee 865c9bcef03Schristos.Ic \&EQ . 866c9bcef03Schristos.It Ic \&eo 867fec65c98SchristosDisable the escape mechanism completely. 868c9bcef03Schristos.It Ic \&EP 869fec65c98SchristosEnd a picture started by 870c9bcef03Schristos.Ic \&BP . 871fec65c98SchristosThis is a Heirloom extension and currently unsupported. 872c9bcef03Schristos.It Ic \&EQ 87348741257SjoergBegin an equation block. 87448741257SjoergSee 87548741257Sjoerg.Xr eqn 7 87648741257Sjoergfor a description of the equation language. 877c9bcef03Schristos.It Ic \&errprint Ar message 878fec65c98SchristosPrint a string like an error message. 879fec65c98SchristosThis is a Heirloom extension and currently ignored. 880c9bcef03Schristos.It Ic \&ev Op Ar envname 881fec65c98SchristosSwitch to another environment. 882fec65c98SchristosCurrently unsupported. 883c9bcef03Schristos.It Ic \&evc Op Ar envname 884fec65c98SchristosCopy an environment into the current environment. 885fec65c98SchristosCurrently unsupported. 886c9bcef03Schristos.It Ic \&ex 887fec65c98SchristosAbort processing and exit. 888fec65c98SchristosCurrently unsupported. 889c9bcef03Schristos.It Ic \&fallback Ar curfont font ... 890fec65c98SchristosSelect the fallback sequence for a font. 891fec65c98SchristosThis is a Heirloom extension and currently ignored. 892c9bcef03Schristos.It Ic \&fam Op Ar familyname 89370f041f9SjoergChange the font family. 894c9bcef03SchristosThis is a groff extension and currently ignored. 895c9bcef03Schristos.It Ic \&fc Op Ar delimchar Op Ar padchar 896fec65c98SchristosDefine a delimiting and a padding character for fields. 897fec65c98SchristosCurrently unsupported. 898c9bcef03Schristos.It Ic \&fchar Ar glyphname Op Ar string 899fec65c98SchristosDefine a fallback glyph. 900fec65c98SchristosCurrently unsupported. 901c9bcef03Schristos.It Ic \&fcolor Ar colorname 902fec65c98SchristosSet the fill color for \eD objects. 903fec65c98SchristosThis is a groff extension and currently ignored. 904c9bcef03Schristos.It Ic \&fdeferlig Ar font string ... 905fec65c98SchristosDefer ligature building. 906fec65c98SchristosThis is a Heirloom extension and currently ignored. 907c9bcef03Schristos.It Ic \&feature Cm + Ns | Ns Cm - Ns Ar name 908fec65c98SchristosEnable or disable an OpenType feature. 909fec65c98SchristosThis is a Heirloom extension and currently ignored. 910c9bcef03Schristos.It Ic \&fi 911*544c191cSchristosBreak the output line and switch to fill mode, 912*544c191cSchristoswhich is active by default but can be ended with the 913*544c191cSchristos.Ic \&nf 914*544c191cSchristosrequest. 915*544c191cSchristosIn fill mode, input from subsequent input lines is added to 916*544c191cSchristosthe same output line until the next word no longer fits, 917*544c191cSchristosat which point the output line is broken. 918*544c191cSchristosThis request is implied by the 919*544c191cSchristos.Xr mdoc 7 920*544c191cSchristos.Ic \&Sh 921*544c191cSchristosmacro and by the 922*544c191cSchristos.Xr man 7 923*544c191cSchristos.Ic \&SH , 924*544c191cSchristos.Ic \&SS , 925*544c191cSchristosand 926*544c191cSchristos.Ic \&EE 927*544c191cSchristosmacros. 928c9bcef03Schristos.It Ic \&fkern Ar font minkern 929fec65c98SchristosControl the use of kerning tables for a font. 930fec65c98SchristosThis is a Heirloom extension and currently ignored. 931c9bcef03Schristos.It Ic \&fl 932fec65c98SchristosFlush output. 933fec65c98SchristosCurrently ignored. 934c9bcef03Schristos.It Ic \&flig Ar font string char ... 935fec65c98SchristosDefine ligatures. 936fec65c98SchristosThis is a Heirloom extension and currently ignored. 937c9bcef03Schristos.It Ic \&fp Ar position font Op Ar filename 938fec65c98SchristosAssign font position. 939fec65c98SchristosCurrently ignored. 940c9bcef03Schristos.It Ic \&fps Ar mapname ... 941fec65c98SchristosMount a font with a special character map. 942fec65c98SchristosThis is a Heirloom extension and currently ignored. 943c9bcef03Schristos.It Ic \&fschar Ar font glyphname Op Ar string 944fec65c98SchristosDefine a font-specific fallback glyph. 945fec65c98SchristosThis is a groff extension and currently unsupported. 946c9bcef03Schristos.It Ic \&fspacewidth Ar font Op Ar afmunits 947fec65c98SchristosSet a font-specific width for the space character. 948fec65c98SchristosThis is a Heirloom extension and currently ignored. 949c9bcef03Schristos.It Ic \&fspecial Ar curfont Op Ar font ... 950fec65c98SchristosConditionally define a special font. 951fec65c98SchristosThis is a groff extension and currently ignored. 952c9bcef03Schristos.It Ic \&ft Op Ar font 953*544c191cSchristosChange the font; see 954*544c191cSchristos.Sx Font Selection . 955*544c191cSchristosThe 956fec65c98Schristos.Ar font 957*544c191cSchristosargument defaults to 958*544c191cSchristos.Cm P . 959c9bcef03Schristos.It Ic \&ftr Ar newname Op Ar oldname 960fec65c98SchristosTranslate font name. 961fec65c98SchristosThis is a groff extension and currently ignored. 962c9bcef03Schristos.It Ic \&fzoom Ar font Op Ar permille 963fec65c98SchristosZoom font size. 964fec65c98SchristosCurrently ignored. 965c9bcef03Schristos.It Ic \&gcolor Op Ar colorname 966fec65c98SchristosSet glyph color. 967fec65c98SchristosThis is a groff extension and currently ignored. 968c9bcef03Schristos.It Ic \&hc Op Ar char 969fec65c98SchristosSet the hyphenation character. 970fec65c98SchristosCurrently ignored. 971c9bcef03Schristos.It Ic \&hcode Ar char code ... 972fec65c98SchristosSet hyphenation codes of characters. 973fec65c98SchristosCurrently ignored. 974c9bcef03Schristos.It Ic \&hidechar Ar font char ... 975fec65c98SchristosHide characters in a font. 976fec65c98SchristosThis is a Heirloom extension and currently ignored. 977c9bcef03Schristos.It Ic \&hla Ar language 978fec65c98SchristosSet hyphenation language. 979fec65c98SchristosThis is a groff extension and currently ignored. 980c9bcef03Schristos.It Ic \&hlm Op Ar number 981fec65c98SchristosSet maximum number of consecutive hyphenated lines. 982fec65c98SchristosCurrently ignored. 983c9bcef03Schristos.It Ic \&hpf Ar filename 984fec65c98SchristosLoad hyphenation pattern file. 985fec65c98SchristosThis is a groff extension and currently ignored. 986c9bcef03Schristos.It Ic \&hpfa Ar filename 987fec65c98SchristosLoad hyphenation pattern file, appending to the current patterns. 988fec65c98SchristosThis is a groff extension and currently ignored. 989c9bcef03Schristos.It Ic \&hpfcode Ar code code ... 990fec65c98SchristosDefine mapping values for character codes in hyphenation patterns. 991fec65c98SchristosThis is a groff extension and currently ignored. 992c9bcef03Schristos.It Ic \&hw Ar word ... 99370f041f9SjoergSpecify hyphenation points in words. 994fec65c98SchristosCurrently ignored. 995c9bcef03Schristos.It Ic \&hy Op Ar mode 996c0d9444aSjoergSet automatic hyphenation mode. 997fec65c98SchristosCurrently ignored. 998c9bcef03Schristos.It Ic \&hylang Ar language 999fec65c98SchristosSet hyphenation language. 1000fec65c98SchristosThis is a Heirloom extension and currently ignored. 1001c9bcef03Schristos.It Ic \&hylen Ar nchar 1002fec65c98SchristosMinimum word length for hyphenation. 1003fec65c98SchristosThis is a Heirloom extension and currently ignored. 1004c9bcef03Schristos.It Ic \&hym Op Ar length 1005fec65c98SchristosSet hyphenation margin. 1006fec65c98SchristosThis is a groff extension and currently ignored. 1007c9bcef03Schristos.It Ic \&hypp Ar penalty ... 1008fec65c98SchristosDefine hyphenation penalties. 1009fec65c98SchristosThis is a Heirloom extension and currently ignored. 1010c9bcef03Schristos.It Ic \&hys Op Ar length 1011fec65c98SchristosSet hyphenation space. 1012fec65c98SchristosThis is a groff extension and currently ignored. 1013c9bcef03Schristos.It Ic \&ie Ar condition body 10140a84adc5SjoergThe 1015c9bcef03Schristos.Dq if 10160a84adc5Sjoerghalf of an if/else conditional. 10170a84adc5SjoergThe result of the conditional is pushed into a stack used by subsequent 10180a84adc5Sjoerginvocations of 1019c9bcef03Schristos.Ic \&el , 10200a84adc5Sjoergwhich may be separated by any intervening input (or not exist at all). 10210a84adc5SjoergIts syntax is equivalent to 1022c9bcef03Schristos.Ic \&if . 1023c9bcef03Schristos.It Ic \&if Ar condition body 1024c9bcef03SchristosBegin a conditional. 1025c9bcef03SchristosThis request can also be written as follows: 1026c9bcef03Schristos.Bd -unfilled -offset indent 1027c9bcef03Schristos.Pf . Ic \&if Ar condition No \e{ Ns Ar body 1028c9bcef03Schristos.Ar body ... Ns \e} 1029fec65c98Schristos.Ed 1030c9bcef03Schristos.Bd -unfilled -offset indent 1031c9bcef03Schristos.Pf . Ic \&if Ar condition No \e{\e 1032c9bcef03Schristos.Ar body ... 1033c9bcef03Schristos.Pf . No \e} 1034fec65c98Schristos.Ed 1035fec65c98Schristos.Pp 1036c9bcef03SchristosThe 1037c9bcef03Schristos.Ar condition 1038c9bcef03Schristosis a boolean expression. 1039fec65c98SchristosCurrently, 1040fec65c98Schristos.Xr mandoc 1 1041fec65c98Schristossupports the following subset of roff conditionals: 1042fec65c98Schristos.Bl -bullet 1043fec65c98Schristos.It 1044fec65c98SchristosIf 1045fec65c98Schristos.Sq \&! 1046c9bcef03Schristosis prefixed to 1047c9bcef03Schristos.Ar condition , 1048c9bcef03Schristosit is logically inverted. 1049fec65c98Schristos.It 1050c9bcef03SchristosIf the first character of 1051c9bcef03Schristos.Ar condition 1052c9bcef03Schristosis 1053fec65c98Schristos.Sq n 1054fec65c98Schristos.Pq nroff mode 1055fec65c98Schristosor 1056fec65c98Schristos.Sq o 1057fec65c98Schristos.Pq odd page , 1058*544c191cSchristosit evaluates to true, and the 1059*544c191cSchristos.Ar body 1060*544c191cSchristosstarts with the next character. 1061fec65c98Schristos.It 1062c9bcef03SchristosIf the first character of 1063c9bcef03Schristos.Ar condition 1064c9bcef03Schristosis 1065fec65c98Schristos.Sq e 1066fec65c98Schristos.Pq even page , 1067fec65c98Schristos.Sq t 1068fec65c98Schristos.Pq troff mode , 1069fec65c98Schristosor 1070fec65c98Schristos.Sq v 1071fec65c98Schristos.Pq vroff mode , 1072*544c191cSchristosit evaluates to false, and the 1073*544c191cSchristos.Ar body 1074*544c191cSchristosstarts with the next character. 1075*544c191cSchristos.It 1076*544c191cSchristosIf the first character of 1077*544c191cSchristos.Ar condition 1078*544c191cSchristosis 1079*544c191cSchristos.Sq c 1080*544c191cSchristos.Pq character available , 1081*544c191cSchristosit evaluates to true if the following character is an ASCII character 1082*544c191cSchristosor a valid character escape sequence, or to false otherwise. 1083*544c191cSchristosThe 1084*544c191cSchristos.Ar body 1085*544c191cSchristosstarts with the character following that next character. 1086fec65c98Schristos.It 1087c9bcef03SchristosIf the first character of 1088c9bcef03Schristos.Ar condition 1089c9bcef03Schristosis 1090c9bcef03Schristos.Sq d , 1091c9bcef03Schristosit evaluates to true if the rest of 1092c9bcef03Schristos.Ar condition 1093c9bcef03Schristosis the name of an existing user defined macro or string; 1094c9bcef03Schristosotherwise, it evaluates to false. 1095c9bcef03Schristos.It 1096c9bcef03SchristosIf the first character of 1097c9bcef03Schristos.Ar condition 1098c9bcef03Schristosis 10999ff1f2acSchristos.Sq r , 1100c9bcef03Schristosit evaluates to true if the rest of 1101c9bcef03Schristos.Ar condition 1102c9bcef03Schristosis the name of an existing number register; 1103c9bcef03Schristosotherwise, it evaluates to false. 11049ff1f2acSchristos.It 1105c9bcef03SchristosIf the 1106c9bcef03Schristos.Ar condition 1107c9bcef03Schristosstarts with a parenthesis or with an optionally signed 1108fec65c98Schristosinteger number, it is evaluated according to the rules of 1109fec65c98Schristos.Sx Numerical expressions 1110fec65c98Schristosexplained below. 1111fec65c98SchristosIt evaluates to true if the result is positive, 1112fec65c98Schristosor to false if the result is zero or negative. 1113fec65c98Schristos.It 1114c9bcef03SchristosOtherwise, the first character of 1115c9bcef03Schristos.Ar condition 1116c9bcef03Schristosis regarded as a delimiter and it evaluates to true if the string 1117c9bcef03Schristosextending from its first to its second occurrence is equal to the 1118c9bcef03Schristosstring extending from its second to its third occurrence. 1119fec65c98Schristos.It 1120c9bcef03SchristosIf 1121c9bcef03Schristos.Ar condition 1122c9bcef03Schristoscannot be parsed, it evaluates to false. 1123fec65c98Schristos.El 1124fec65c98Schristos.Pp 11250a84adc5SjoergIf a conditional is false, its children are not processed, but are 11260a84adc5Sjoergsyntactically interpreted to preserve the integrity of the input 11270a84adc5Sjoergdocument. 11280a84adc5SjoergThus, 11290a84adc5Sjoerg.Pp 1130c0d9444aSjoerg.D1 \&.if t .ig 11310a84adc5Sjoerg.Pp 11320a84adc5Sjoergwill discard the 11330a84adc5Sjoerg.Sq \&.ig , 11340a84adc5Sjoergwhich may lead to interesting results, but 11350a84adc5Sjoerg.Pp 1136c0d9444aSjoerg.D1 \&.if t .if t \e{\e 11370a84adc5Sjoerg.Pp 11380a84adc5Sjoergwill continue to syntactically interpret to the block close of the final 11390a84adc5Sjoergconditional. 11400a84adc5SjoergSub-conditionals, in this case, obviously inherit the truth value of 11410a84adc5Sjoergthe parent. 11420a84adc5Sjoerg.Pp 1143c9bcef03SchristosIf the 1144c9bcef03Schristos.Ar body 1145c9bcef03Schristossection is begun by an escaped brace 11460a84adc5Sjoerg.Sq \e{ , 1147fec65c98Schristosscope continues until the end of the input line containing the 1148fec65c98Schristosmatching closing-brace escape sequence 1149fec65c98Schristos.Sq \e} . 1150c9bcef03SchristosIf the 1151c9bcef03Schristos.Ar body 1152c9bcef03Schristosis not enclosed in braces, scope continues until the end of the line. 1153c9bcef03SchristosIf the 1154c9bcef03Schristos.Ar condition 1155c9bcef03Schristosis followed by a 1156c9bcef03Schristos.Ar body 1157c9bcef03Schristoson the same line, whether after a brace or not, then requests and macros 11580a84adc5Sjoerg.Em must 11590a84adc5Sjoergbegin with a control character. 11600a84adc5SjoergIt is generally more intuitive, in this case, to write 1161c9bcef03Schristos.Bd -unfilled -offset indent 1162c9bcef03Schristos.Pf . Ic \&if Ar condition No \e{\e 1163c9bcef03Schristos.Pf . Ar request 1164c9bcef03Schristos.Pf . No \e} 11650a84adc5Sjoerg.Ed 11660a84adc5Sjoerg.Pp 1167c0d9444aSjoergthan having the request or macro follow as 11680a84adc5Sjoerg.Pp 1169c9bcef03Schristos.D1 Pf . Ic \&if Ar condition Pf \e{. Ar request 11700a84adc5Sjoerg.Pp 11710a84adc5SjoergThe scope of a conditional is always parsed, but only executed if the 11720a84adc5Sjoergconditional evaluates to true. 11730a84adc5Sjoerg.Pp 1174c5f73b34SjoergNote that the 11750a84adc5Sjoerg.Sq \e} 1176c5f73b34Sjoergis converted into a zero-width escape sequence if not passed as a 1177c5f73b34Sjoergstandalone macro 1178c5f73b34Sjoerg.Sq \&.\e} . 1179c5f73b34SjoergFor example, 1180c5f73b34Sjoerg.Pp 1181c5f73b34Sjoerg.D1 \&.Fl a \e} b 1182c5f73b34Sjoerg.Pp 1183c5f73b34Sjoergwill result in 11847574e07eSjoerg.Sq \e} 1185c5f73b34Sjoergbeing considered an argument of the 1186c5f73b34Sjoerg.Sq \&Fl 1187c5f73b34Sjoergmacro. 1188c9bcef03Schristos.It Ic \&ig Op Ar endmacro 11890a84adc5SjoergIgnore input. 1190c0d9444aSjoergIts syntax can be either 1191c0d9444aSjoerg.Bd -literal -offset indent 1192c0d9444aSjoerg.Pf . Cm \&ig 1193c0d9444aSjoerg.Ar ignored text 11940a84adc5Sjoerg\&.. 11950a84adc5Sjoerg.Ed 1196c0d9444aSjoerg.Pp 1197c0d9444aSjoergor 1198c0d9444aSjoerg.Bd -literal -offset indent 1199c9bcef03Schristos.Pf . Cm \&ig Ar endmacro 1200c0d9444aSjoerg.Ar ignored text 1201c9bcef03Schristos.Pf . Ar endmacro 12020a84adc5Sjoerg.Ed 12030a84adc5Sjoerg.Pp 12040a84adc5SjoergIn the first case, input is ignored until a 12050a84adc5Sjoerg.Sq \&.. 1206c0d9444aSjoergrequest is encountered on its own line. 1207c0d9444aSjoergIn the second case, input is ignored until the specified 1208c9bcef03Schristos.Sq Pf . Ar endmacro 1209c9bcef03Schristosis encountered. 1210c0d9444aSjoergDo not use the escape character 12110a84adc5Sjoerg.Sq \e 1212c0d9444aSjoerganywhere in the definition of 1213c9bcef03Schristos.Ar endmacro ; 1214c0d9444aSjoergit would cause very strange behaviour. 1215c0d9444aSjoerg.Pp 1216c0d9444aSjoergWhen the 1217c9bcef03Schristos.Ar endmacro 1218c9bcef03Schristosis a roff request or a roff macro, like in 12190a84adc5Sjoerg.Pp 12200a84adc5Sjoerg.D1 \&.ig if 12210a84adc5Sjoerg.Pp 12220a84adc5Sjoergthe subsequent invocation of 1223c9bcef03Schristos.Ic \&if 1224c0d9444aSjoergwill first terminate the 1225c0d9444aSjoerg.Ar ignored text , 1226c0d9444aSjoergthen be invoked as usual. 1227c0d9444aSjoergOtherwise, it only terminates the 1228c0d9444aSjoerg.Ar ignored text , 1229c0d9444aSjoergand arguments following it or the 1230c0d9444aSjoerg.Sq \&.. 1231c0d9444aSjoergrequest are discarded. 1232c9bcef03Schristos.It Ic \&in Op Oo Cm + Ns | Ns Cm - Oc Ns Ar width 1233fec65c98SchristosChange indentation. 1234fec65c98SchristosSee 1235fec65c98Schristos.Xr man 7 . 1236fec65c98SchristosIgnored in 1237fec65c98Schristos.Xr mdoc 7 . 1238c9bcef03Schristos.It Ic \&index Ar register stringname substring 1239fec65c98SchristosFind a substring in a string. 1240fec65c98SchristosThis is a Heirloom extension and currently unsupported. 1241c9bcef03Schristos.It Ic \&it Ar expression macro 1242fec65c98SchristosSet an input line trap. 1243fec65c98SchristosThe named 1244fec65c98Schristos.Ar macro 1245fec65c98Schristoswill be invoked after processing the number of input text lines 1246fec65c98Schristosspecified by the numerical 1247fec65c98Schristos.Ar expression . 1248fec65c98SchristosWhile evaluating the 1249fec65c98Schristos.Ar expression , 1250fec65c98Schristosthe unit suffixes described below 1251fec65c98Schristos.Sx Scaling Widths 1252fec65c98Schristosare ignored. 1253*544c191cSchristos.It Ic \&itc Ar expression macro 1254fec65c98SchristosSet an input line trap, not counting lines ending with \ec. 1255fec65c98SchristosCurrently unsupported. 1256c9bcef03Schristos.It Ic \&IX Ar class keystring 1257fec65c98SchristosTo support the generation of a table of contents, 1258fec65c98Schristos.Xr pod2man 1 1259fec65c98Schristosemits this user-defined macro, usually without defining it. 1260fec65c98SchristosTo avoid reporting large numbers of spurious errors, 1261fec65c98Schristos.Xr mandoc 1 1262fec65c98Schristosignores it. 1263c9bcef03Schristos.It Ic \&kern Op Cm 1 | 0 1264fec65c98SchristosSwitch kerning on or off. 1265fec65c98SchristosCurrently ignored. 1266c9bcef03Schristos.It Ic \&kernafter Ar font char ... afmunits ... 1267fec65c98SchristosIncrease kerning after some characters. 1268fec65c98SchristosThis is a Heirloom extension and currently ignored. 1269c9bcef03Schristos.It Ic \&kernbefore Ar font char ... afmunits ... 1270fec65c98SchristosIncrease kerning before some characters. 1271fec65c98SchristosThis is a Heirloom extension and currently ignored. 1272c9bcef03Schristos.It Ic \&kernpair Ar font char ... font char ... afmunits 1273fec65c98SchristosAdd a kerning pair to the kerning table. 1274fec65c98SchristosThis is a Heirloom extension and currently ignored. 1275c9bcef03Schristos.It Ic \&lc Op Ar glyph 1276fec65c98SchristosDefine a leader repetition character. 1277fec65c98SchristosCurrently unsupported. 1278c9bcef03Schristos.It Ic \&lc_ctype Ar localename 1279fec65c98SchristosSet the 1280fec65c98Schristos.Dv LC_CTYPE 1281fec65c98Schristoslocale. 1282fec65c98SchristosThis is a Heirloom extension and currently unsupported. 1283c9bcef03Schristos.It Ic \&lds Ar macroname string 1284fec65c98SchristosDefine a local string. 1285fec65c98SchristosThis is a Heirloom extension and currently unsupported. 1286c9bcef03Schristos.It Ic \&length Ar register string 1287c9bcef03SchristosCount the number of input characters in a string. 1288fec65c98SchristosCurrently unsupported. 1289c9bcef03Schristos.It Ic \&letadj Ar lspmin lshmin letss lspmax lshmax 1290fec65c98SchristosDynamic letter spacing and reshaping. 1291fec65c98SchristosThis is a Heirloom extension and currently ignored. 1292c9bcef03Schristos.It Ic \&lf Ar lineno Op Ar filename 1293fec65c98SchristosChange the line number for error messages. 1294fec65c98SchristosIgnored because insecure. 1295c9bcef03Schristos.It Ic \&lg Op Cm 1 | 0 1296fec65c98SchristosSwitch the ligature mechanism on or off. 1297fec65c98SchristosCurrently ignored. 1298c9bcef03Schristos.It Ic \&lhang Ar font char ... afmunits 1299fec65c98SchristosHang characters at left margin. 1300fec65c98SchristosThis is a Heirloom extension and currently ignored. 1301c9bcef03Schristos.It Ic \&linetabs Op Cm 1 | 0 1302fec65c98SchristosEnable or disable line-tabs mode. 1303fec65c98SchristosThis is a groff extension and currently unsupported. 1304c9bcef03Schristos.It Ic \&ll Op Oo Cm + Ns | Ns Cm - Oc Ns Ar width 1305fec65c98SchristosChange the output line length. 1306fec65c98SchristosIf the 1307fec65c98Schristos.Ar width 1308fec65c98Schristosargument is omitted, the line length is reset to its previous value. 1309fec65c98SchristosThe default setting for terminal output is 78n. 1310fec65c98SchristosIf a sign is given, the line length is added to or subtracted from; 1311fec65c98Schristosotherwise, it is set to the provided value. 1312fec65c98SchristosUsing this request in new manuals is discouraged for several reasons, 1313fec65c98Schristosamong others because it overrides the 1314fec65c98Schristos.Xr mandoc 1 1315fec65c98Schristos.Fl O Cm width 1316fec65c98Schristoscommand line option. 1317c9bcef03Schristos.It Ic \&lnr Ar register Oo Cm + Ns | Ns Cm - Oc Ns Ar value Op Ar increment 1318fec65c98SchristosSet local number register. 1319fec65c98SchristosThis is a Heirloom extension and currently unsupported. 1320c9bcef03Schristos.It Ic \&lnrf Ar register Oo Cm + Ns | Ns Cm - Oc Ns Ar value Op Ar increment 1321fec65c98SchristosSet local floating-point register. 1322fec65c98SchristosThis is a Heirloom extension and currently unsupported. 1323c9bcef03Schristos.It Ic \&lpfx Ar string 1324fec65c98SchristosSet a line prefix. 1325fec65c98SchristosThis is a Heirloom extension and currently unsupported. 1326c9bcef03Schristos.It Ic \&ls Op Ar factor 1327fec65c98SchristosSet line spacing. 1328fec65c98SchristosIt takes one integer argument specifying the vertical distance of 1329fec65c98Schristossubsequent output text lines measured in v units. 1330fec65c98SchristosCurrently ignored. 1331c9bcef03Schristos.It Ic \&lsm Ar macroname 1332fec65c98SchristosSet a leading spaces trap. 1333fec65c98SchristosThis is a groff extension and currently unsupported. 1334c9bcef03Schristos.It Ic \< Op Oo Cm + Ns | Ns Cm - Oc Ns Ar width 1335fec65c98SchristosSet title line length. 1336fec65c98SchristosCurrently ignored. 1337c9bcef03Schristos.It Ic \&mc Ar glyph Op Ar dist 1338fec65c98SchristosPrint margin character in the right margin. 1339c9bcef03SchristosThe 1340c9bcef03Schristos.Ar dist 1341c9bcef03Schristosis currently ignored; instead, 1n is used. 1342c9bcef03Schristos.It Ic \&mediasize Ar media 1343fec65c98SchristosSet the device media size. 1344fec65c98SchristosThis is a Heirloom extension and currently ignored. 1345c9bcef03Schristos.It Ic \&minss Ar width 1346fec65c98SchristosSet minimum word space. 1347fec65c98SchristosThis is a Heirloom extension and currently ignored. 1348c9bcef03Schristos.It Ic \&mk Op Ar register 1349fec65c98SchristosMark vertical position. 1350fec65c98SchristosCurrently ignored. 1351c9bcef03Schristos.It Ic \&mso Ar filename 1352c9bcef03SchristosLoad a macro file using the search path. 1353fec65c98SchristosIgnored because insecure. 1354c9bcef03Schristos.It Ic \&na 1355fec65c98SchristosDisable adjusting without changing the adjustment mode. 1356fec65c98SchristosCurrently ignored. 1357c9bcef03Schristos.It Ic \&ne Op Ar height 1358c0d9444aSjoergDeclare the need for the specified minimum vertical space 1359c0d9444aSjoergbefore the next trap or the bottom of the page. 1360fec65c98SchristosCurrently ignored. 1361c9bcef03Schristos.It Ic \&nf 1362*544c191cSchristosBreak the output line and switch to no-fill mode. 1363*544c191cSchristosSubsequent input lines are kept together on the same output line 1364*544c191cSchristoseven when exceeding the right margin, 1365*544c191cSchristosand line breaks in subsequent input cause output line breaks. 1366*544c191cSchristosThis request is implied by the 1367*544c191cSchristos.Xr mdoc 7 1368*544c191cSchristos.Ic \&Bd Fl unfilled 1369*544c191cSchristosand 1370*544c191cSchristos.Ic \&Bd Fl literal 1371*544c191cSchristosmacros and by the 1372*544c191cSchristos.Xr man 7 1373*544c191cSchristos.Ic \&EX 1374*544c191cSchristosmacro. 1375*544c191cSchristosThe 1376*544c191cSchristos.Ic \&fi 1377*544c191cSchristosrequest switches back to the default fill mode. 1378c9bcef03Schristos.It Ic \&nh 1379c0d9444aSjoergTurn off automatic hyphenation mode. 1380fec65c98SchristosCurrently ignored. 1381c9bcef03Schristos.It Ic \&nhychar Ar char ... 1382fec65c98SchristosDefine hyphenation-inhibiting characters. 1383fec65c98SchristosThis is a Heirloom extension and currently ignored. 1384c9bcef03Schristos.It Ic \&nm Op Ar start Op Ar inc Op Ar space Op Ar indent 1385fec65c98SchristosPrint line numbers. 1386fec65c98SchristosCurrently unsupported. 1387c9bcef03Schristos.It Ic \&nn Op Ar number 1388fec65c98SchristosTemporarily turn off line numbering. 1389fec65c98SchristosCurrently unsupported. 1390c9bcef03Schristos.It Ic \&nop Ar body 1391*544c191cSchristosExecute the rest of the input line as a request, macro, or text line, 1392*544c191cSchristosskipping the 1393*544c191cSchristos.Ic \&nop 1394*544c191cSchristosrequest and any space characters immediately following it. 1395*544c191cSchristosThis is mostly used to indent text lines inside macro definitions. 1396c9bcef03Schristos.It Ic \&nr Ar register Oo Cm + Ns | Ns Cm - Oc Ns Ar expression Op Ar stepsize 139770f041f9SjoergDefine or change a register. 139882361f10SjoergA register is an arbitrary string value that defines some sort of state, 139982361f10Sjoergwhich influences parsing and/or formatting. 1400fec65c98SchristosFor the syntax of 1401fec65c98Schristos.Ar expression , 1402fec65c98Schristossee 1403fec65c98Schristos.Sx Numerical expressions 1404fec65c98Schristosbelow. 140570f041f9SjoergIf it is prefixed by a sign, the register will be 140670f041f9Sjoergincremented or decremented instead of assigned to. 140770f041f9Sjoerg.Pp 1408c9bcef03SchristosThe 1409c9bcef03Schristos.Ar stepsize 1410c9bcef03Schristosis used by the 1411c9bcef03Schristos.Ic \en+ 1412c9bcef03Schristosauto-increment feature. 1413c9bcef03SchristosIt remains unchanged when omitted while changing an existing register, 1414c9bcef03Schristosand it defaults to 0 when defining a new register. 1415c9bcef03Schristos.Pp 1416c9bcef03SchristosThe following 1417c9bcef03Schristos.Ar register 141870f041f9Sjoergis handled specially: 141982361f10Sjoerg.Bl -tag -width Ds 142082361f10Sjoerg.It Cm nS 142182361f10SjoergIf set to a positive integer value, certain 142282361f10Sjoerg.Xr mdoc 7 1423c0d9444aSjoergmacros will behave in the same way as in the 142482361f10Sjoerg.Em SYNOPSIS 142582361f10Sjoergsection. 1426c0d9444aSjoergIf set to 0, these macros will behave in the same way as outside the 142782361f10Sjoerg.Em SYNOPSIS 1428c0d9444aSjoergsection, even when called within the 1429c0d9444aSjoerg.Em SYNOPSIS 1430c0d9444aSjoergsection itself. 1431c0d9444aSjoergNote that starting a new 143282361f10Sjoerg.Xr mdoc 7 1433c0d9444aSjoergsection with the 1434c9bcef03Schristos.Ic \&Sh 1435c0d9444aSjoergmacro will reset this register. 143682361f10Sjoerg.El 1437c9bcef03Schristos.It Xo 1438c9bcef03Schristos.Ic \&nrf Ar register Oo Cm + Ns | Ns Cm - Oc Ns Ar expression 1439c9bcef03Schristos.Op Ar increment 1440c9bcef03Schristos.Xc 1441fec65c98SchristosDefine or change a floating-point register. 1442fec65c98SchristosThis is a Heirloom extension and currently unsupported. 1443c9bcef03Schristos.It Ic \&nroff 1444fec65c98SchristosForce nroff mode. 1445fec65c98SchristosThis is a groff extension and currently ignored. 1446c9bcef03Schristos.It Ic \&ns 144748741257SjoergTurn on no-space mode. 1448fec65c98SchristosCurrently ignored. 1449c9bcef03Schristos.It Ic \&nx Op Ar filename 1450fec65c98SchristosAbort processing of the current input file and process another one. 1451fec65c98SchristosIgnored because insecure. 1452c9bcef03Schristos.It Ic \&open Ar stream file 1453fec65c98SchristosOpen a file for writing. 1454fec65c98SchristosIgnored because insecure. 1455c9bcef03Schristos.It Ic \&opena Ar stream file 1456fec65c98SchristosOpen a file for appending. 1457fec65c98SchristosIgnored because insecure. 1458c9bcef03Schristos.It Ic \&os 1459fec65c98SchristosOutput saved vertical space. 1460fec65c98SchristosCurrently ignored. 1461c9bcef03Schristos.It Ic \&output Ar string 1462fec65c98SchristosOutput directly to intermediate output. 1463fec65c98SchristosNot supported. 1464c9bcef03Schristos.It Ic \&padj Op Cm 1 | 0 1465fec65c98SchristosGlobally control paragraph-at-once adjustment. 1466fec65c98SchristosThis is a Heirloom extension and currently ignored. 1467c9bcef03Schristos.It Ic \&papersize Ar media 1468fec65c98SchristosSet the paper size. 1469fec65c98SchristosThis is a Heirloom extension and currently ignored. 1470c9bcef03Schristos.It Ic \&pc Op Ar char 1471fec65c98SchristosChange the page number character. 1472fec65c98SchristosCurrently ignored. 1473c9bcef03Schristos.It Ic \&pev 1474fec65c98SchristosPrint environments. 1475fec65c98SchristosThis is a groff extension and currently ignored. 1476c9bcef03Schristos.It Ic \&pi Ar command 1477fec65c98SchristosPipe output to a shell command. 1478fec65c98SchristosIgnored because insecure. 1479c9bcef03Schristos.It Ic \&PI 1480fec65c98SchristosLow-level request used by 1481c9bcef03Schristos.Ic \&BP . 1482fec65c98SchristosThis is a Heirloom extension and currently unsupported. 1483c9bcef03Schristos.It Ic \&pl Op Oo Cm + Ns | Ns Cm - Oc Ns Ar height 1484fec65c98SchristosChange page length. 1485fec65c98SchristosCurrently ignored. 1486c9bcef03Schristos.It Ic \&pm 1487c9bcef03SchristosPrint names and sizes of macros, strings, and diversions 1488c9bcef03Schristosto standard error output. 1489fec65c98SchristosCurrently ignored. 1490c9bcef03Schristos.It Ic \&pn Oo Cm + Ns | Ns Cm - Oc Ns Ar number 1491c9bcef03SchristosChange the page number of the next page. 1492fec65c98SchristosCurrently ignored. 1493c9bcef03Schristos.It Ic \&pnr 1494c9bcef03SchristosPrint all number registers on standard error output. 1495fec65c98SchristosCurrently ignored. 1496c9bcef03Schristos.It Ic \&po Op Oo Cm + Ns | Ns Cm - Oc Ns Ar offset 1497c9bcef03SchristosSet a horizontal page offset. 1498c9bcef03SchristosIf no argument is specified, the page offset is reverted to its 1499c9bcef03Schristosprevious value. 1500c9bcef03SchristosIf a sign is specified, the new page offset is calculated relative 1501c9bcef03Schristosto the current one; otherwise, it is absolute. 1502c9bcef03SchristosThe argument follows the syntax of 1503c9bcef03Schristos.Sx Scaling Widths 1504c9bcef03Schristosand the default scaling unit is 1505c9bcef03Schristos.Cm m . 1506c9bcef03Schristos.It Ic \&ps Op Oo Cm + Ns | Ns Cm - Oc Ns size 150748741257SjoergChange point size. 1508fec65c98SchristosCurrently ignored. 1509c9bcef03Schristos.It Ic \&psbb Ar filename 1510fec65c98SchristosRetrieve the bounding box of a PostScript file. 1511fec65c98SchristosCurrently unsupported. 1512c9bcef03Schristos.It Ic \&pshape Ar indent length ... 1513fec65c98SchristosSet a special shape for the current paragraph. 1514fec65c98SchristosThis is a Heirloom extension and currently unsupported. 1515c9bcef03Schristos.It Ic \&pso Ar command 1516fec65c98SchristosInclude output of a shell command. 1517fec65c98SchristosIgnored because insecure. 1518c9bcef03Schristos.It Ic \&ptr 1519c9bcef03SchristosPrint the names and positions of all traps on standard error output. 1520fec65c98SchristosThis is a groff extension and currently ignored. 1521c9bcef03Schristos.It Ic \&pvs Op Oo Cm + Ns | Ns Cm - Oc Ns Ar height 1522fec65c98SchristosChange post-vertical spacing. 1523fec65c98SchristosThis is a groff extension and currently ignored. 1524c9bcef03Schristos.It Ic \&rchar Ar glyph ... 1525fec65c98SchristosRemove glyph definitions. 1526fec65c98SchristosCurrently unsupported. 1527c9bcef03Schristos.It Ic \&rd Op Ar prompt Op Ar argument ... 1528fec65c98SchristosRead from standard input. 1529fec65c98SchristosCurrently ignored. 1530c9bcef03Schristos.It Ic \&recursionlimit Ar maxrec maxtail 1531fec65c98SchristosSet the maximum stack depth for recursive macros. 1532fec65c98SchristosThis is a Heirloom extension and currently ignored. 1533c9bcef03Schristos.It Ic \&return Op Ar twice 1534*544c191cSchristosExit the presently executed macro and return to the caller. 1535*544c191cSchristosThe argument is currently ignored. 1536c9bcef03Schristos.It Ic \&rfschar Ar font glyph ... 1537fec65c98SchristosRemove font-specific fallback glyph definitions. 1538fec65c98SchristosCurrently unsupported. 1539c9bcef03Schristos.It Ic \&rhang Ar font char ... afmunits 1540fec65c98SchristosHang characters at right margin. 1541fec65c98SchristosThis is a Heirloom extension and currently ignored. 1542c9bcef03Schristos.It Ic \&rj Op Ar N 1543c9bcef03SchristosJustify the next 1544c9bcef03Schristos.Ar N 1545c9bcef03Schristosinput lines to the right margin without filling. 1546c9bcef03Schristos.Ar N 1547c9bcef03Schristosdefaults to 1. 1548c9bcef03SchristosAn argument of 0 or less ends right adjustment. 1549c9bcef03Schristos.It Ic \&rm Ar macroname 1550fec65c98SchristosRemove a request, macro or string. 1551c9bcef03Schristos.It Ic \&rn Ar oldname newname 1552fec65c98SchristosRename a request, macro, diversion, or string. 1553c9bcef03SchristosIn 1554c9bcef03Schristos.Xr mandoc 1 , 1555c9bcef03Schristosuser-defined macros, 1556c9bcef03Schristos.Xr mdoc 7 1557c9bcef03Schristosand 1558c9bcef03Schristos.Xr man 7 1559c9bcef03Schristosmacros, and user-defined strings can be renamed, but renaming of 1560c9bcef03Schristospredefined strings and of 1561c9bcef03Schristos.Nm 1562c9bcef03Schristosrequests is not supported, and diversions are not implemented at all. 1563c9bcef03Schristos.It Ic \&rnn Ar oldname newname 1564fec65c98SchristosRename a number register. 1565fec65c98SchristosCurrently unsupported. 1566c9bcef03Schristos.It Ic \&rr Ar register 1567fec65c98SchristosRemove a register. 1568c9bcef03Schristos.It Ic \&rs 1569fec65c98SchristosEnd no-space mode. 1570fec65c98SchristosCurrently ignored. 1571c9bcef03Schristos.It Ic \&rt Op Ar dist 1572fec65c98SchristosReturn to marked vertical position. 1573fec65c98SchristosCurrently ignored. 1574c9bcef03Schristos.It Ic \&schar Ar glyph Op Ar string 1575fec65c98SchristosDefine global fallback glyph. 1576fec65c98SchristosThis is a groff extension and currently unsupported. 1577c9bcef03Schristos.It Ic \&sentchar Ar char ... 1578fec65c98SchristosDefine sentence-ending characters. 1579fec65c98SchristosThis is a Heirloom extension and currently ignored. 1580c9bcef03Schristos.It Ic \&shc Op Ar glyph 1581fec65c98SchristosChange the soft hyphen character. 1582fec65c98SchristosCurrently ignored. 1583c9bcef03Schristos.It Ic \&shift Op Ar number 1584*544c191cSchristosShift macro arguments 1585*544c191cSchristos.Ar number 1586*544c191cSchristostimes, by default once: \e\e$i becomes what \e\e$i+number was. 1587*544c191cSchristosAlso decrement \en(.$ by 1588*544c191cSchristos.Ar number . 1589c9bcef03Schristos.It Ic \&sizes Ar size ... 1590fec65c98SchristosDefine permissible point sizes. 1591fec65c98SchristosThis is a groff extension and currently ignored. 1592c9bcef03Schristos.It Ic \&so Ar filename 1593c0d9444aSjoergInclude a source file. 1594c9bcef03SchristosThe file is read and its contents processed as input in place of the 1595c9bcef03Schristos.Ic \&so 1596c0d9444aSjoergrequest line. 1597c5f73b34SjoergTo avoid inadvertent inclusion of unrelated files, 1598c0d9444aSjoerg.Xr mandoc 1 1599c0d9444aSjoergonly accepts relative paths not containing the strings 1600c0d9444aSjoerg.Qq ../ 1601c0d9444aSjoergand 1602c0d9444aSjoerg.Qq /.. . 16030f0fda1cSjoerg.Pp 16040f0fda1cSjoergThis request requires 16050f0fda1cSjoerg.Xr man 1 16060f0fda1cSjoergto change to the right directory before calling 16070f0fda1cSjoerg.Xr mandoc 1 , 16080f0fda1cSjoergper convention to the root of the manual tree. 16090f0fda1cSjoergTypical usage looks like: 16100f0fda1cSjoerg.Pp 16110f0fda1cSjoerg.Dl \&.so man3/Xcursor.3 16120f0fda1cSjoerg.Pp 16130f0fda1cSjoergAs the whole concept is rather fragile, the use of 1614c9bcef03Schristos.Ic \&so 16150f0fda1cSjoergis discouraged. 16160f0fda1cSjoergUse 16170f0fda1cSjoerg.Xr ln 1 16180f0fda1cSjoerginstead. 1619c9bcef03Schristos.It Ic \&sp Op Ar height 1620c9bcef03SchristosBreak the output line and emit vertical space. 1621c9bcef03SchristosThe argument follows the syntax of 1622c9bcef03Schristos.Sx Scaling Widths 1623c9bcef03Schristosand defaults to one blank line 1624c9bcef03Schristos.Pq Li 1v . 1625c9bcef03Schristos.It Ic \&spacewidth Op Cm 1 | 0 1626fec65c98SchristosSet the space width from the font metrics file. 1627fec65c98SchristosThis is a Heirloom extension and currently ignored. 1628c9bcef03Schristos.It Ic \&special Op Ar font ... 1629fec65c98SchristosDefine a special font. 1630fec65c98SchristosThis is a groff extension and currently ignored. 1631c9bcef03Schristos.It Ic \&spreadwarn Op Ar width 1632fec65c98SchristosWarn about wide spacing between words. 1633fec65c98SchristosCurrently ignored. 1634c9bcef03Schristos.It Ic \&ss Ar wordspace Op Ar sentencespace 1635fec65c98SchristosSet space character size. 1636fec65c98SchristosCurrently ignored. 1637c9bcef03Schristos.It Ic \&sty Ar position style 1638fec65c98SchristosAssociate style with a font position. 1639fec65c98SchristosThis is a groff extension and currently ignored. 1640c9bcef03Schristos.It Ic \&substring Ar stringname startpos Op Ar endpos 1641fec65c98SchristosReplace a user-defined string with a substring. 1642fec65c98SchristosCurrently unsupported. 1643c9bcef03Schristos.It Ic \&sv Op Ar height 1644fec65c98SchristosSave vertical space. 1645fec65c98SchristosCurrently ignored. 1646c9bcef03Schristos.It Ic \&sy Ar command 1647fec65c98SchristosExecute shell command. 1648fec65c98SchristosIgnored because insecure. 1649c9bcef03Schristos.It Ic \&T& 1650fec65c98SchristosRe-start a table layout, retaining the options of the prior table 1651fec65c98Schristosinvocation. 1652fec65c98SchristosSee 1653*544c191cSchristos.Ic \&TS . 1654c9bcef03Schristos.It Ic \&ta Op Ar width ... Op Cm T Ar width ... 165548741257SjoergSet tab stops. 1656c9bcef03SchristosEach 1657c9bcef03Schristos.Ar width 1658c9bcef03Schristosargument follows the syntax of 1659c9bcef03Schristos.Sx Scaling Widths . 1660c9bcef03SchristosIf prefixed by a plus sign, it is relative to the previous tab stop. 1661c9bcef03SchristosThe arguments after the 1662c9bcef03Schristos.Cm T 1663c9bcef03Schristosmarker are used repeatedly as often as needed; for each reuse, 1664c9bcef03Schristosthey are taken relative to the last previously established tab stop. 1665c9bcef03SchristosWhen 1666c9bcef03Schristos.Ic \&ta 1667c9bcef03Schristosis called without arguments, all tab stops are cleared. 1668c9bcef03Schristos.It Ic \&tc Op Ar glyph 16699ff1f2acSchristosChange tab repetition character. 1670fec65c98SchristosCurrently unsupported. 1671c9bcef03Schristos.It Ic \&TE 1672fec65c98SchristosEnd a table context. 1673fec65c98SchristosSee 1674*544c191cSchristos.Ic \&TS . 1675c9bcef03Schristos.It Ic \&ti Oo Cm + Ns | Ns Cm - Oc Ns Ar width 1676c9bcef03SchristosBreak the output line and indent the next output line by 1677c9bcef03Schristos.Ar width . 1678c9bcef03SchristosIf a sign is specified, the temporary indentation is calculated 1679c9bcef03Schristosrelative to the current indentation; otherwise, it is absolute. 1680c9bcef03SchristosThe argument follows the syntax of 1681c9bcef03Schristos.Sx Scaling Widths 1682c9bcef03Schristosand the default scaling unit is 1683c9bcef03Schristos.Cm m . 1684c9bcef03Schristos.It Ic \&tkf Ar font minps width1 maxps width2 1685fec65c98SchristosEnable track kerning for a font. 1686fec65c98SchristosCurrently ignored. 1687c9bcef03Schristos.It Ic \&tl No \& Ap Ar left Ap Ar center Ap Ar right Ap 1688fec65c98SchristosPrint a title line. 1689fec65c98SchristosCurrently unsupported. 1690c9bcef03Schristos.It Ic \&tm Ar string 1691fec65c98SchristosPrint to standard error output. 1692fec65c98SchristosCurrently ignored. 1693c9bcef03Schristos.It Ic \&tm1 Ar string 1694fec65c98SchristosPrint to standard error output, allowing leading blanks. 1695fec65c98SchristosThis is a groff extension and currently ignored. 1696c9bcef03Schristos.It Ic \&tmc Ar string 1697fec65c98SchristosPrint to standard error output without a trailing newline. 1698fec65c98SchristosThis is a groff extension and currently ignored. 1699c9bcef03Schristos.It Ic \&tr Ar glyph glyph ... 17000a84adc5SjoergOutput character translation. 1701c9bcef03SchristosThe first glyph in each pair is replaced by the second one. 1702c9bcef03SchristosCharacter escapes can be used; for example, 1703c5f73b34Sjoerg.Pp 1704c5f73b34Sjoerg.Dl tr \e(xx\e(yy 1705c5f73b34Sjoerg.Pp 1706c5f73b34Sjoergreplaces all invocations of \e(xx with \e(yy. 1707c9bcef03Schristos.It Ic \&track Ar font minps width1 maxps width2 1708fec65c98SchristosStatic letter space tracking. 1709fec65c98SchristosThis is a Heirloom extension and currently ignored. 1710c9bcef03Schristos.It Ic \&transchar Ar char ... 1711fec65c98SchristosDefine transparent characters for sentence-ending. 1712fec65c98SchristosThis is a Heirloom extension and currently ignored. 1713c9bcef03Schristos.It Ic \&trf Ar filename 1714fec65c98SchristosOutput the contents of a file, disallowing invalid characters. 1715fec65c98SchristosThis is a groff extension and ignored because insecure. 1716c9bcef03Schristos.It Ic \&trimat Ar left top width height 1717fec65c98SchristosSet the TrimBox page parameter for PDF generation. 1718fec65c98SchristosThis is a Heirloom extension and currently ignored. 1719c9bcef03Schristos.It Ic \&trin Ar glyph glyph ... 1720fec65c98SchristosOutput character translation, ignored by 1721c9bcef03Schristos.Ic \&asciify . 1722fec65c98SchristosCurrently unsupported. 1723c9bcef03Schristos.It Ic \&trnt Ar glyph glyph ... 1724fec65c98SchristosOutput character translation, ignored by \e!. 1725fec65c98SchristosCurrently unsupported. 1726c9bcef03Schristos.It Ic \&troff 1727fec65c98SchristosForce troff mode. 1728fec65c98SchristosThis is a groff extension and currently ignored. 1729c9bcef03Schristos.It Ic \&TS 1730c0d9444aSjoergBegin a table, which formats input in aligned rows and columns. 1731c0d9444aSjoergSee 1732c0d9444aSjoerg.Xr tbl 7 1733c0d9444aSjoergfor a description of the tbl language. 1734c9bcef03Schristos.It Ic \&uf Ar font 1735fec65c98SchristosGlobally set the underline font. 1736fec65c98SchristosCurrently ignored. 1737c9bcef03Schristos.It Ic \&ul Op Ar N 1738c9bcef03SchristosUnderline next 1739c9bcef03Schristos.Ar N 1740c9bcef03Schristosinput lines. 1741fec65c98SchristosCurrently ignored. 1742c9bcef03Schristos.It Ic \&unformat Ar divname 1743fec65c98SchristosUnformat spaces and tabs in a diversion. 1744fec65c98SchristosCurrently unsupported. 1745c9bcef03Schristos.It Ic \&unwatch Ar macroname 1746fec65c98SchristosDisable notification for string or macro. 1747fec65c98SchristosThis is a Heirloom extension and currently ignored. 1748c9bcef03Schristos.It Ic \&unwatchn Ar register 1749fec65c98SchristosDisable notification for register. 1750fec65c98SchristosThis is a Heirloom extension and currently ignored. 1751c9bcef03Schristos.It Ic \&vpt Op Cm 1 | 0 1752fec65c98SchristosEnable or disable vertical position traps. 1753fec65c98SchristosThis is a groff extension and currently ignored. 1754c9bcef03Schristos.It Ic \&vs Op Oo Cm + Ns | Ns Cm - Oc Ns Ar height 1755fec65c98SchristosChange vertical spacing. 1756fec65c98SchristosCurrently ignored. 1757c9bcef03Schristos.It Ic \&warn Ar flags 1758fec65c98SchristosSet warning level. 1759fec65c98SchristosCurrently ignored. 1760c9bcef03Schristos.It Ic \&warnscale Ar si 1761fec65c98SchristosSet the scaling indicator used in warnings. 1762fec65c98SchristosThis is a groff extension and currently ignored. 1763c9bcef03Schristos.It Ic \&watch Ar macroname 1764fec65c98SchristosNotify on change of string or macro. 1765fec65c98SchristosThis is a Heirloom extension and currently ignored. 1766c9bcef03Schristos.It Ic \&watchlength Ar maxlength 1767fec65c98SchristosOn change, report the contents of macros and strings 17689ff1f2acSchristosup to the specified length. 1769fec65c98SchristosThis is a Heirloom extension and currently ignored. 1770c9bcef03Schristos.It Ic \&watchn Ar register 1771fec65c98SchristosNotify on change of register. 1772fec65c98SchristosThis is a Heirloom extension and currently ignored. 1773c9bcef03Schristos.It Ic \&wh Ar dist Op Ar macroname 1774fec65c98SchristosSet a page location trap. 1775fec65c98SchristosCurrently unsupported. 1776c9bcef03Schristos.It Ic \&while Ar condition body 1777*544c191cSchristosRepeated execution while a 1778*544c191cSchristos.Ar condition 1779*544c191cSchristosis true, with syntax similar to 1780*544c191cSchristos.Ic \&if . 1781*544c191cSchristosCurrently implemented with two restrictions: cannot nest, 1782*544c191cSchristosand each loop must start and end in the same scope. 1783c9bcef03Schristos.It Ic \&write Oo \(dq Oc Ns Ar string 1784fec65c98SchristosWrite to an open file. 1785fec65c98SchristosIgnored because insecure. 1786c9bcef03Schristos.It Ic \&writec Oo \(dq Oc Ns Ar string 1787fec65c98SchristosWrite to an open file without appending a newline. 1788fec65c98SchristosIgnored because insecure. 1789c9bcef03Schristos.It Ic \&writem Ar macroname 1790fec65c98SchristosWrite macro or string to an open file. 1791fec65c98SchristosIgnored because insecure. 1792c9bcef03Schristos.It Ic \&xflag Ar level 1793fec65c98SchristosSet the extension level. 1794fec65c98SchristosThis is a Heirloom extension and currently ignored. 1795c9bcef03Schristos.El 1796fec65c98Schristos.Ss Numerical expressions 1797fec65c98SchristosThe 1798*544c191cSchristos.Ic \&nr , 1799*544c191cSchristos.Ic \&if , 1800fec65c98Schristosand 1801*544c191cSchristos.Ic \&ie 1802fec65c98Schristosrequests accept integer numerical expressions as arguments. 1803fec65c98SchristosThese are always evaluated using the C 1804fec65c98Schristos.Vt int 1805fec65c98Schristostype; integer overflow works the same way as in the C language. 1806fec65c98SchristosNumbers consist of an arbitrary number of digits 1807fec65c98Schristos.Sq 0 1808fec65c98Schristosto 1809fec65c98Schristos.Sq 9 1810fec65c98Schristosprefixed by an optional sign 1811fec65c98Schristos.Sq + 1812fec65c98Schristosor 1813fec65c98Schristos.Sq - . 1814fec65c98SchristosEach number may be followed by one optional scaling unit described below 1815fec65c98Schristos.Sx Scaling Widths . 1816fec65c98SchristosThe following equations hold: 1817fec65c98Schristos.Bd -literal -offset indent 1818fec65c98Schristos1i = 6v = 6P = 10m = 10n = 72p = 1000M = 240u = 240 1819fec65c98Schristos254c = 100i = 24000u = 24000 1820fec65c98Schristos1f = 65536u = 65536 1821fec65c98Schristos.Ed 1822fec65c98Schristos.Pp 1823fec65c98SchristosThe following binary operators are implemented. 1824fec65c98SchristosUnless otherwise stated, they behave as in the C language: 1825fec65c98Schristos.Pp 1826fec65c98Schristos.Bl -tag -width 2n -compact 1827fec65c98Schristos.It Ic + 1828fec65c98Schristosaddition 1829fec65c98Schristos.It Ic - 1830fec65c98Schristossubtraction 1831fec65c98Schristos.It Ic * 1832fec65c98Schristosmultiplication 1833fec65c98Schristos.It Ic / 1834fec65c98Schristosdivision 1835fec65c98Schristos.It Ic % 1836fec65c98Schristosremainder of division 1837fec65c98Schristos.It Ic < 1838fec65c98Schristosless than 1839fec65c98Schristos.It Ic > 1840fec65c98Schristosgreater than 1841fec65c98Schristos.It Ic == 1842fec65c98Schristosequal to 1843fec65c98Schristos.It Ic = 1844fec65c98Schristosequal to, same effect as 1845fec65c98Schristos.Ic == 1846fec65c98Schristos(this differs from C) 1847fec65c98Schristos.It Ic <= 1848fec65c98Schristosless than or equal to 1849fec65c98Schristos.It Ic >= 1850fec65c98Schristosgreater than or equal to 1851fec65c98Schristos.It Ic <> 1852fec65c98Schristosnot equal to (corresponds to C 1853fec65c98Schristos.Ic != ; 1854fec65c98Schristosthis one is of limited portability, it is supported by Heirloom roff, 1855fec65c98Schristosbut not by groff) 1856fec65c98Schristos.It Ic & 1857fec65c98Schristoslogical and (corresponds to C 1858fec65c98Schristos.Ic && ) 1859fec65c98Schristos.It Ic \&: 1860fec65c98Schristoslogical or (corresponds to C 1861c9bcef03Schristos.Ic || ) 1862fec65c98Schristos.It Ic <? 1863fec65c98Schristosminimum (not available in C) 1864fec65c98Schristos.It Ic >? 1865fec65c98Schristosmaximum (not available in C) 1866fec65c98Schristos.El 1867fec65c98Schristos.Pp 18689ff1f2acSchristosThere is no concept of precedence; evaluation proceeds from left to right, 1869c9bcef03Schristosexcept when subexpressions are enclosed in parentheses. 1870fec65c98SchristosInside parentheses, whitespace is ignored. 187170f041f9Sjoerg.Sh ESCAPE SEQUENCE REFERENCE 187270f041f9SjoergThe 187370f041f9Sjoerg.Xr mandoc 1 187470f041f9Sjoerg.Nm 187570f041f9Sjoergparser recognises the following escape sequences. 187670f041f9SjoergIn 187770f041f9Sjoerg.Xr mdoc 7 187870f041f9Sjoergand 187970f041f9Sjoerg.Xr man 7 188070f041f9Sjoergdocuments, using escape sequences is discouraged except for those 188170f041f9Sjoergdescribed in the 188270f041f9Sjoerg.Sx LANGUAGE SYNTAX 188370f041f9Sjoergsection above. 188470f041f9Sjoerg.Pp 188570f041f9SjoergA backslash followed by any character not listed here 188670f041f9Sjoergsimply prints that character itself. 1887*544c191cSchristos.Bl -tag -width Ds 1888*544c191cSchristos.It Ic \e<newline> 188970f041f9SjoergA backslash at the end of an input line can be used to continue the 189070f041f9Sjoerglogical input line on the next physical input line, joining the text 189170f041f9Sjoergon both lines together as if it were on a single input line. 1892*544c191cSchristos.It Ic \e<space> 189370f041f9SjoergThe escape sequence backslash-space 189470f041f9Sjoerg.Pq Sq \e\ \& 189570f041f9Sjoergis an unpaddable space-sized non-breaking space character; see 1896*544c191cSchristos.Sx Whitespace 1897*544c191cSchristosand 1898*544c191cSchristos.Xr mandoc_char 7 . 1899*544c191cSchristos.It Ic \e! 1900*544c191cSchristosEmbed text up to and including the end of the input line into the 1901*544c191cSchristoscurrent diversion or into intermediate output without interpreting 1902*544c191cSchristosrequests, macros, and escapes. 1903*544c191cSchristosCurrently unsupported. 1904*544c191cSchristos.It Ic \e\(dq 190570f041f9SjoergThe rest of the input line is treated as 190670f041f9Sjoerg.Sx Comments . 1907*544c191cSchristos.It Ic \e# 1908*544c191cSchristosLine continuation with comment. 1909*544c191cSchristosDiscard the rest of the physical input line and continue the logical 1910*544c191cSchristosinput line on the next physical input line, joining the text on 1911*544c191cSchristosboth lines together as if it were on a single input line. 1912*544c191cSchristosThis is a groff extension. 1913*544c191cSchristos.It Ic \e$ Ns Ar arg 1914*544c191cSchristosMacro argument expansion, see 1915*544c191cSchristos.Ic \&de . 1916*544c191cSchristos.It Ic \e% 191770f041f9SjoergHyphenation allowed at this point of the word; ignored by 191870f041f9Sjoerg.Xr mandoc 1 . 1919*544c191cSchristos.It Ic \e& 1920*544c191cSchristosNon-printing zero-width character, 1921*544c191cSchristosoften used for various kinds of escaping; see 1922*544c191cSchristos.Sx Whitespace , 1923*544c191cSchristos.Xr mandoc_char 7 , 1924*544c191cSchristosand the 1925*544c191cSchristos.Dq MACRO SYNTAX 1926*544c191cSchristosand 1927*544c191cSchristos.Dq Delimiters 1928*544c191cSchristossections in 1929*544c191cSchristos.Xr mdoc 7 . 1930*544c191cSchristos.It Ic \e\(aq 193170f041f9SjoergAcute accent special character; use 1932*544c191cSchristos.Ic \e(aa 193370f041f9Sjoerginstead. 1934*544c191cSchristos.It Ic \e( Ns Ar cc 193570f041f9Sjoerg.Sx Special Characters 193670f041f9Sjoergwith two-letter names, see 193770f041f9Sjoerg.Xr mandoc_char 7 . 1938*544c191cSchristos.It Ic \e) 1939*544c191cSchristosZero-width space transparent to end-of-sentence detection; 1940*544c191cSchristosignored by 1941*544c191cSchristos.Xr mandoc 1 . 1942*544c191cSchristos.It Ic \e*[ Ns Ar name Ns Ic \&] 194370f041f9SjoergInterpolate the string with the 1944*544c191cSchristos.Ar name . 194570f041f9SjoergFor short names, there are variants 1946*544c191cSchristos.Ic \e* Ns Ar c 194770f041f9Sjoergand 1948*544c191cSchristos.Ic \e*( Ns Ar cc . 1949*544c191cSchristos.Pp 1950*544c191cSchristosOne string is predefined on the 1951*544c191cSchristos.Nm 1952*544c191cSchristoslanguage level: 1953*544c191cSchristos.Ic \e*(.T 1954*544c191cSchristosexpands to the name of the output device, 1955*544c191cSchristosfor example ascii, utf8, ps, pdf, html, or markdown. 1956*544c191cSchristos.Pp 1957*544c191cSchristosMacro sets traditionally predefine additional strings which are not 1958*544c191cSchristosportable and differ across implementations. 1959*544c191cSchristosThose supported by 1960*544c191cSchristos.Xr mandoc 1 1961*544c191cSchristosare listed in 1962*544c191cSchristos.Xr mandoc_char 7 . 1963*544c191cSchristos.Pp 1964*544c191cSchristosStrings can be defined, changed, and deleted with the 1965*544c191cSchristos.Ic \&ds , 1966*544c191cSchristos.Ic \&as , 1967*544c191cSchristosand 1968*544c191cSchristos.Ic \&rm 1969*544c191cSchristosrequests. 1970*544c191cSchristos.It Ic \e, 19719ff1f2acSchristosLeft italic correction (groff extension); ignored by 19729ff1f2acSchristos.Xr mandoc 1 . 1973*544c191cSchristos.It Ic \e- 197470f041f9SjoergSpecial character 1975*544c191cSchristos.Dq mathematical minus sign ; 1976*544c191cSchristossee 1977*544c191cSchristos.Xr mandoc_char 7 1978*544c191cSchristosfor details. 1979*544c191cSchristos.It Ic \e/ 19809ff1f2acSchristosRight italic correction (groff extension); ignored by 19819ff1f2acSchristos.Xr mandoc 1 . 1982*544c191cSchristos.It Ic \e: 1983*544c191cSchristosBreaking the line is allowed at this point of the word 1984*544c191cSchristoswithout inserting a hyphen. 1985*544c191cSchristos.It Ic \e? 1986*544c191cSchristosEmbed the text up to the next 1987*544c191cSchristos.Ic \e? 1988*544c191cSchristosinto the current diversion without interpreting requests, macros, 1989*544c191cSchristosand escapes. 1990*544c191cSchristosThis is a groff extension and currently unsupported. 1991*544c191cSchristos.It Ic \e[ Ns Ar name Ns Ic \&] 199270f041f9Sjoerg.Sx Special Characters 199370f041f9Sjoergwith names of arbitrary length, see 199470f041f9Sjoerg.Xr mandoc_char 7 . 1995*544c191cSchristos.It Ic \e^ 199670f041f9SjoergOne-twelfth em half-narrow space character, effectively zero-width in 199770f041f9Sjoerg.Xr mandoc 1 . 1998*544c191cSchristos.It Ic \e_ 1999*544c191cSchristosUnderline special character; use 2000*544c191cSchristos.Ic \e(ul 200170f041f9Sjoerginstead. 2002*544c191cSchristos.It Ic \e` 2003*544c191cSchristosGrave accent special character; use 2004*544c191cSchristos.Ic \e(ga 2005*544c191cSchristosinstead. 2006*544c191cSchristos.It Ic \e{ 200770f041f9SjoergBegin conditional input; see 2008*544c191cSchristos.Ic \&if . 2009*544c191cSchristos.It Ic \e\(ba 201070f041f9SjoergOne-sixth em narrow space character, effectively zero-width in 201170f041f9Sjoerg.Xr mandoc 1 . 2012*544c191cSchristos.It Ic \e} 201370f041f9SjoergEnd conditional input; see 2014*544c191cSchristos.Ic \&if . 2015*544c191cSchristos.It Ic \e~ 201670f041f9SjoergPaddable non-breaking space character. 2017*544c191cSchristos.It Ic \e0 201870f041f9SjoergDigit width space character. 2019*544c191cSchristos.It Ic \eA\(aq Ns Ar string Ns Ic \(aq 202070f041f9SjoergAnchor definition; ignored by 202170f041f9Sjoerg.Xr mandoc 1 . 2022*544c191cSchristos.It Ic \ea 2023*544c191cSchristosLeader character; ignored by 2024*544c191cSchristos.Xr mandoc 1 . 2025*544c191cSchristos.It Ic \eB\(aq Ns Ar string Ns Ic \(aq 2026fec65c98SchristosInterpolate 2027fec65c98Schristos.Sq 1 2028fec65c98Schristosif 202970f041f9Sjoerg.Ar string 2030fec65c98Schristosconforms to the syntax of 2031fec65c98Schristos.Sx Numerical expressions 2032*544c191cSchristosexplained above or 2033fec65c98Schristos.Sq 0 2034fec65c98Schristosotherwise. 2035*544c191cSchristos.It Ic \eb\(aq Ns Ar string Ns Ic \(aq 203670f041f9SjoergBracket building function; ignored by 203770f041f9Sjoerg.Xr mandoc 1 . 2038*544c191cSchristos.It Ic \eC\(aq Ns Ar name Ns Ic \(aq 203970f041f9Sjoerg.Sx Special Characters 204070f041f9Sjoergwith names of arbitrary length. 2041*544c191cSchristos.It Ic \ec 2042fec65c98SchristosWhen encountered at the end of an input text line, 2043fec65c98Schristosthe next input text line is considered to continue that line, 2044fec65c98Schristoseven if there are request or macro lines in between. 2045fec65c98SchristosNo whitespace is inserted. 2046*544c191cSchristos.It Ic \eD\(aq Ns Ar string Ns Ic \(aq 204770f041f9SjoergDraw graphics function; ignored by 204870f041f9Sjoerg.Xr mandoc 1 . 2049*544c191cSchristos.It Ic \ed 205070f041f9SjoergMove down by half a line; ignored by 205170f041f9Sjoerg.Xr mandoc 1 . 2052*544c191cSchristos.It Ic \eE 2053*544c191cSchristosEscape character intended to not be interpreted in copy mode. 2054*544c191cSchristosIn 2055*544c191cSchristos.Xr mandoc 1 , 2056*544c191cSchristosit currently does the same as 2057*544c191cSchristos.Ic \e 2058*544c191cSchristositself. 2059*544c191cSchristos.It Ic \ee 206070f041f9SjoergBackslash special character. 2061*544c191cSchristos.It Ic \eF[ Ns Ar name Ns Ic \&] 206270f041f9SjoergSwitch font family (groff extension); ignored by 206370f041f9Sjoerg.Xr mandoc 1 . 206470f041f9SjoergFor short names, there are variants 2065*544c191cSchristos.Ic \eF Ns Ar c 206670f041f9Sjoergand 2067*544c191cSchristos.Ic \eF( Ns Ar cc . 2068*544c191cSchristos.It Ic \ef[ Ns Ar name Ns Ic \&] 206970f041f9SjoergSwitch to the font 207070f041f9Sjoerg.Ar name , 207170f041f9Sjoergsee 2072*544c191cSchristos.Sx Font Selection . 207370f041f9SjoergFor short names, there are variants 2074*544c191cSchristos.Ic \ef Ns Ar c 207570f041f9Sjoergand 2076*544c191cSchristos.Ic \ef( Ns Ar cc . 2077*544c191cSchristosAn empty name 2078*544c191cSchristos.Ic \ef[] 2079*544c191cSchristosdefaults to 2080*544c191cSchristos.Ic \efP . 2081*544c191cSchristos.It Ic \eg[ Ns Ar name Ns Ic \&] 208270f041f9SjoergInterpolate the format of a number register; ignored by 208370f041f9Sjoerg.Xr mandoc 1 . 208470f041f9SjoergFor short names, there are variants 2085*544c191cSchristos.Ic \eg Ns Ar c 208670f041f9Sjoergand 2087*544c191cSchristos.Ic \eg( Ns Ar cc . 2088*544c191cSchristos.It Ic \eH\(aq Ns Oo +|- Oc Ns Ar number Ns Ic \(aq 208970f041f9SjoergSet the height of the current font; ignored by 209070f041f9Sjoerg.Xr mandoc 1 . 2091*544c191cSchristos.It Ic \eh\(aq Ns Oo Cm \&| Oc Ns Ar width Ns Ic \(aq 2092c9bcef03SchristosHorizontal motion. 2093c9bcef03SchristosIf the vertical bar is given, the motion is relative to the current 2094c9bcef03Schristosindentation. 2095c9bcef03SchristosOtherwise, it is relative to the current position. 2096c9bcef03SchristosThe default scaling unit is 2097c9bcef03Schristos.Cm m . 2098*544c191cSchristos.It Ic \ek[ Ns Ar name Ns Ic \&] 209970f041f9SjoergMark horizontal input place in register; ignored by 210070f041f9Sjoerg.Xr mandoc 1 . 210170f041f9SjoergFor short names, there are variants 2102*544c191cSchristos.Ic \ek Ns Ar c 210370f041f9Sjoergand 2104*544c191cSchristos.Ic \ek( Ns Ar cc . 2105*544c191cSchristos.It Ic \eL\(aq Ns Ar number Ns Oo Ar c Oc Ns Ic \(aq 210670f041f9SjoergVertical line drawing function; ignored by 210770f041f9Sjoerg.Xr mandoc 1 . 2108*544c191cSchristos.It Ic \el\(aq Ns Ar width Ns Oo Ar c Oc Ns Ic \(aq 2109c9bcef03SchristosDraw a horizontal line of 2110c9bcef03Schristos.Ar width 2111c9bcef03Schristosusing the glyph 2112c9bcef03Schristos.Ar c . 2113*544c191cSchristos.It Ic \eM[ Ns Ar name Ns Ic \&] 211470f041f9SjoergSet fill (background) color (groff extension); ignored by 211570f041f9Sjoerg.Xr mandoc 1 . 211670f041f9SjoergFor short names, there are variants 2117*544c191cSchristos.Ic \eM Ns Ar c 211870f041f9Sjoergand 2119*544c191cSchristos.Ic \eM( Ns Ar cc . 2120*544c191cSchristos.It Ic \em[ Ns Ar name Ns Ic \&] 212170f041f9SjoergSet glyph drawing color (groff extension); ignored by 212270f041f9Sjoerg.Xr mandoc 1 . 212370f041f9SjoergFor short names, there are variants 2124*544c191cSchristos.Ic \em Ns Ar c 212570f041f9Sjoergand 2126*544c191cSchristos.Ic \em( Ns Ar cc . 2127*544c191cSchristos.It Ic \eN\(aq Ns Ar number Ns Ic \(aq 212870f041f9SjoergCharacter 212970f041f9Sjoerg.Ar number 213070f041f9Sjoergon the current font. 2131*544c191cSchristos.It Ic \en Ns Oo +|- Oc Ns Ic \&[ Ns Ar name Ns Ic \&] 213270f041f9SjoergInterpolate the number register 213370f041f9Sjoerg.Ar name . 213470f041f9SjoergFor short names, there are variants 2135*544c191cSchristos.Ic \en Ns Ar c 213670f041f9Sjoergand 2137*544c191cSchristos.Ic \en( Ns Ar cc . 2138c9bcef03SchristosIf the optional sign is specified, 2139c9bcef03Schristosthe register is first incremented or decremented by the 2140c9bcef03Schristos.Ar stepsize 2141c9bcef03Schristosthat was specified in the relevant 2142c9bcef03Schristos.Ic \&nr 2143c9bcef03Schristosrequest, and the changed value is interpolated. 2144*544c191cSchristos.It Ic \eO Ns Ar digit , Ic \eO[5 Ns arguments Ns Ic \&] 2145*544c191cSchristosSuppress output. 2146*544c191cSchristosThis is a groff extension and currently unsupported. 2147*544c191cSchristosWith an argument of 2148*544c191cSchristos.Ic 1 , 2 , 3 , 2149*544c191cSchristosor 2150*544c191cSchristos.Ic 4 , 2151*544c191cSchristosit is ignored. 2152*544c191cSchristos.It Ic \eo\(aq Ns Ar string Ns Ic \(aq 2153fec65c98SchristosOverstrike, writing all the characters contained in the 2154fec65c98Schristos.Ar string 2155fec65c98Schristosto the same output position. 2156fec65c98SchristosIn terminal and HTML output modes, 2157fec65c98Schristosonly the last one of the characters is visible. 2158*544c191cSchristos.It Ic \ep 2159c9bcef03SchristosBreak the output line at the end of the current word. 2160*544c191cSchristos.It Ic \eR\(aq Ns Ar name Oo +|- Oc Ns Ar number Ns Ic \(aq 216170f041f9SjoergSet number register; ignored by 216270f041f9Sjoerg.Xr mandoc 1 . 2163*544c191cSchristos.It Ic \er 2164*544c191cSchristosMove up by one line; ignored by 2165*544c191cSchristos.Xr mandoc 1 . 2166*544c191cSchristos.It Ic \eS\(aq Ns Ar number Ns Ic \(aq 216770f041f9SjoergSlant output; ignored by 216870f041f9Sjoerg.Xr mandoc 1 . 2169*544c191cSchristos.It Ic \es\(aq Ns Oo +|- Oc Ns Ar number Ns Ic \(aq 217070f041f9SjoergChange point size; ignored by 217170f041f9Sjoerg.Xr mandoc 1 . 217270f041f9SjoergAlternative forms 2173*544c191cSchristos.Ic \es Ns Oo +|- Oc Ns Ar n , 2174*544c191cSchristos.Ic \es Ns Oo +|- Oc Ns Ic \(aq Ns Ar number Ns Ic \(aq , 2175*544c191cSchristos.Ic \es[ Ns Oo +|- Oc Ns Ar number Ns Ic \&] , 217670f041f9Sjoergand 2177*544c191cSchristos.Ic \es Ns Oo +|- Oc Ns Ic \&[ Ns Ar number Ns Ic \&] 217870f041f9Sjoergare also parsed and ignored. 2179*544c191cSchristos.It Ic \et 218070f041f9SjoergHorizontal tab; ignored by 218170f041f9Sjoerg.Xr mandoc 1 . 2182*544c191cSchristos.It Ic \eu 218370f041f9SjoergMove up by half a line; ignored by 218470f041f9Sjoerg.Xr mandoc 1 . 2185*544c191cSchristos.It Ic \eV[ Ns Ar name Ns Ic \&] 218670f041f9SjoergInterpolate an environment variable; ignored by 218770f041f9Sjoerg.Xr mandoc 1 . 218870f041f9SjoergFor short names, there are variants 2189*544c191cSchristos.Ic \eV Ns Ar c 219070f041f9Sjoergand 2191*544c191cSchristos.Ic \eV( Ns Ar cc . 2192*544c191cSchristos.It Ic \ev\(aq Ns Ar number Ns Ic \(aq 219370f041f9SjoergVertical motion; ignored by 219470f041f9Sjoerg.Xr mandoc 1 . 2195*544c191cSchristos.It Ic \ew\(aq Ns Ar string Ns Ic \(aq 219670f041f9SjoergInterpolate the width of the 2197fec65c98Schristos.Ar string . 2198fec65c98SchristosThe 2199fec65c98Schristos.Xr mandoc 1 2200fec65c98Schristosimplementation assumes that after expansion of user-defined strings, the 2201fec65c98Schristos.Ar string 2202fec65c98Schristosonly contains normal characters, no escape sequences, and that each 2203fec65c98Schristoscharacter has a width of 24 basic units. 2204*544c191cSchristos.It Ic \eX\(aq Ns Ar string Ns Ic \(aq 220570f041f9SjoergOutput 220670f041f9Sjoerg.Ar string 220770f041f9Sjoergas device control function; ignored in nroff mode and by 220870f041f9Sjoerg.Xr mandoc 1 . 2209*544c191cSchristos.It Ic \ex\(aq Ns Ar number Ns Ic \(aq 221070f041f9SjoergExtra line space function; ignored by 221170f041f9Sjoerg.Xr mandoc 1 . 2212*544c191cSchristos.It Ic \eY[ Ns Ar name Ns Ic \&] 221370f041f9SjoergOutput a string as a device control function; ignored in nroff mode and by 221470f041f9Sjoerg.Xr mandoc 1 . 221570f041f9SjoergFor short names, there are variants 2216*544c191cSchristos.Ic \eY Ns Ar c 221770f041f9Sjoergand 2218*544c191cSchristos.Ic \eY( Ns Ar cc . 2219*544c191cSchristos.It Ic \eZ\(aq Ns Ar string Ns Ic \(aq 222070f041f9SjoergPrint 222170f041f9Sjoerg.Ar string 222270f041f9Sjoergwith zero width and height; ignored by 222370f041f9Sjoerg.Xr mandoc 1 . 2224*544c191cSchristos.It Ic \ez 22259ff1f2acSchristosOutput the next character without advancing the cursor position. 2226*544c191cSchristos.El 22270a84adc5Sjoerg.Sh COMPATIBILITY 2228fec65c98SchristosThe 2229fec65c98Schristos.Xr mandoc 1 2230fec65c98Schristosimplementation of the 2231c0d9444aSjoerg.Nm 2232*544c191cSchristoslanguage is incomplete. 2233*544c191cSchristosMajor unimplemented features include: 22340a84adc5Sjoerg.Pp 22350a84adc5Sjoerg.Bl -dash -compact 22360a84adc5Sjoerg.It 2237fec65c98SchristosFor security reasons, 2238fec65c98Schristos.Xr mandoc 1 2239fec65c98Schristosnever reads or writes external files except via 2240*544c191cSchristos.Ic \&so 2241fec65c98Schristosrequests with safe relative paths. 2242fec65c98Schristos.It 2243fec65c98SchristosThere is no automatic hyphenation, no adjustment to the right margin, 2244*544c191cSchristosand very limited support for centering; the output is always set flush-left. 2245fec65c98Schristos.It 2246*544c191cSchristosSupport for setting tabulator and leader characters is missing, 2247fec65c98Schristosand support for manually changing indentation is limited. 224848741257Sjoerg.It 224982361f10SjoergThe 2250fec65c98Schristos.Sq u 2251fec65c98Schristosscaling unit is the default terminal unit. 2252fec65c98SchristosIn traditional troff systems, this unit changes depending on the 2253fec65c98Schristosoutput media. 225482361f10Sjoerg.It 2255fec65c98SchristosWidth measurements are implemented in a crude way 2256fec65c98Schristosand often yield wrong results. 2257*544c191cSchristosSupport for explicit movement requests and escapes is limited. 2258fec65c98Schristos.It 2259fec65c98SchristosThere is no concept of output pages, no support for floats, 2260fec65c98Schristosgraphics drawing, and picture inclusion; 2261fec65c98Schristosterminal output is always continuous. 2262fec65c98Schristos.It 2263*544c191cSchristosRequests regarding color, font families, font sizes, 2264*544c191cSchristosand glyph manipulation are ignored. 2265fec65c98SchristosFont support is very limited. 2266fec65c98SchristosKerning is not implemented, and no ligatures are produced. 22670a84adc5Sjoerg.It 22680a84adc5SjoergThe 2269fec65c98Schristos.Qq \(aq 2270fec65c98Schristosmacro control character does not suppress output line breaks. 2271fec65c98Schristos.It 2272*544c191cSchristosDiversions and environments are not implemented, 2273fec65c98Schristosand support for traps is very incomplete. 2274fec65c98Schristos.It 2275*544c191cSchristosUse of macros is not supported inside 2276*544c191cSchristos.Xr tbl 7 2277*544c191cSchristoscode. 22780a84adc5Sjoerg.El 2279fec65c98Schristos.Pp 2280fec65c98SchristosThe special semantics of the 2281fec65c98Schristos.Cm nS 2282fec65c98Schristosnumber register is an idiosyncracy of 2283fec65c98Schristos.Ox 2284fec65c98Schristosmanuals and not supported by other 2285fec65c98Schristos.Xr mdoc 7 2286fec65c98Schristosimplementations. 2287c0d9444aSjoerg.Sh SEE ALSO 2288c0d9444aSjoerg.Xr mandoc 1 , 228948741257Sjoerg.Xr eqn 7 , 2290c0d9444aSjoerg.Xr man 7 , 2291c0d9444aSjoerg.Xr mandoc_char 7 , 2292c0d9444aSjoerg.Xr mdoc 7 , 2293c0d9444aSjoerg.Xr tbl 7 2294c0d9444aSjoerg.Rs 2295c0d9444aSjoerg.%A Joseph F. Ossanna 2296c0d9444aSjoerg.%A Brian W. Kernighan 2297c0d9444aSjoerg.%I AT&T Bell Laboratories 2298c0d9444aSjoerg.%T Troff User's Manual 2299c0d9444aSjoerg.%R Computing Science Technical Report 2300c0d9444aSjoerg.%N 54 2301c0d9444aSjoerg.%C Murray Hill, New Jersey 2302c0d9444aSjoerg.%D 1976 and 1992 2303c0d9444aSjoerg.%U http://www.kohala.com/start/troff/cstr54.ps 2304c0d9444aSjoerg.Re 2305c0d9444aSjoerg.Rs 2306c0d9444aSjoerg.%A Joseph F. Ossanna 2307c0d9444aSjoerg.%A Brian W. Kernighan 2308c0d9444aSjoerg.%A Gunnar Ritter 2309c0d9444aSjoerg.%T Heirloom Documentation Tools Nroff/Troff User's Manual 2310c0d9444aSjoerg.%D September 17, 2007 2311c0d9444aSjoerg.%U http://heirloom.sourceforge.net/doctools/troff.pdf 2312c0d9444aSjoerg.Re 2313c0d9444aSjoerg.Sh HISTORY 23140f0fda1cSjoergThe RUNOFF typesetting system, whose input forms the basis for 2315c0d9444aSjoerg.Nm , 23160f0fda1cSjoergwas written in MAD and FAP for the CTSS operating system by Jerome E. 23170f0fda1cSjoergSaltzer in 1964. 23180f0fda1cSjoergDoug McIlroy rewrote it in BCPL in 1969, renaming it 23190f0fda1cSjoerg.Nm . 23200f0fda1cSjoergDennis M. Ritchie rewrote McIlroy's 23210f0fda1cSjoerg.Nm 23220f0fda1cSjoergin PDP-11 assembly for 23230f0fda1cSjoerg.At v1 , 23240f0fda1cSjoergJoseph F. Ossanna improved roff and renamed it nroff 23250f0fda1cSjoergfor 23260f0fda1cSjoerg.At v2 , 23270f0fda1cSjoergthen ported nroff to C as troff, which Brian W. Kernighan released with 23280f0fda1cSjoerg.At v7 . 23290f0fda1cSjoergIn 1989, James Clarke re-implemented troff in C++, naming it groff. 23300a84adc5Sjoerg.Sh AUTHORS 2331c0d9444aSjoerg.An -nosplit 2332c5f73b34SjoergThis 23330a84adc5Sjoerg.Nm 23340a84adc5Sjoergreference was written by 233570f041f9Sjoerg.An Kristaps Dzonsons Aq Mt kristaps@bsd.lv 2336c0d9444aSjoergand 233770f041f9Sjoerg.An Ingo Schwarze Aq Mt schwarze@openbsd.org . 2338