1*99db7d0eSSascha Wildner.\" $Id: roff.7,v 1.116 2021/09/18 12:23:06 schwarze Exp $ 280387638SSascha Wildner.\" 37888c61dSFranco Fichtner.\" Copyright (c) 2010, 2011, 2012 Kristaps Dzonsons <kristaps@bsd.lv> 454ba9607SSascha Wildner.\" Copyright (c) 2010-2019 Ingo Schwarze <schwarze@openbsd.org> 580387638SSascha Wildner.\" 680387638SSascha Wildner.\" Permission to use, copy, modify, and distribute this software for any 780387638SSascha Wildner.\" purpose with or without fee is hereby granted, provided that the above 880387638SSascha Wildner.\" copyright notice and this permission notice appear in all copies. 980387638SSascha Wildner.\" 1080387638SSascha Wildner.\" THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES 1180387638SSascha Wildner.\" WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF 1280387638SSascha Wildner.\" MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR 1380387638SSascha Wildner.\" ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES 1480387638SSascha Wildner.\" WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN 1580387638SSascha Wildner.\" ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF 1680387638SSascha Wildner.\" OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. 1780387638SSascha Wildner.\" 18*99db7d0eSSascha Wildner.Dd $Mdocdate: September 18 2021 $ 1980387638SSascha Wildner.Dt ROFF 7 2080387638SSascha Wildner.Os 2180387638SSascha Wildner.Sh NAME 2280387638SSascha Wildner.Nm roff 2380387638SSascha Wildner.Nd roff language reference for mandoc 2480387638SSascha Wildner.Sh DESCRIPTION 2580387638SSascha WildnerThe 2680387638SSascha Wildner.Nm roff 2780387638SSascha Wildnerlanguage is a general purpose text formatting language. 2836342e81SSascha WildnerSince traditional implementations of the 2980387638SSascha Wildner.Xr mdoc 7 3080387638SSascha Wildnerand 3180387638SSascha Wildner.Xr man 7 3236342e81SSascha Wildnermanual formatting languages are based on it, 3336342e81SSascha Wildnermany real-world manuals use small numbers of 3480387638SSascha Wildner.Nm 357888c61dSFranco Fichtnerrequests and escape sequences intermixed with their 3636342e81SSascha Wildner.Xr mdoc 7 3780387638SSascha Wildneror 3836342e81SSascha Wildner.Xr man 7 3936342e81SSascha Wildnercode. 4036342e81SSascha WildnerTo properly format such manuals, the 4136342e81SSascha Wildner.Xr mandoc 1 4254ba9607SSascha Wildnerutility supports a subset of 4336342e81SSascha Wildner.Nm 447888c61dSFranco Fichtnerrequests and escapes. 4554ba9607SSascha WildnerEven though this manual page lists all 4654ba9607SSascha Wildner.Nm 4754ba9607SSascha Wildnerrequests and escape sequences, it only contains partial information 4854ba9607SSascha Wildnerabout requests not supported by 4936342e81SSascha Wildner.Xr mandoc 1 5054ba9607SSascha Wildnerand about language features that do not matter for manual pages. 5136342e81SSascha WildnerFor complete 5236342e81SSascha Wildner.Nm 5336342e81SSascha Wildnermanuals, consult the 5436342e81SSascha Wildner.Sx SEE ALSO 5536342e81SSascha Wildnersection. 5680387638SSascha Wildner.Pp 5736342e81SSascha WildnerInput lines beginning with the control character 5836342e81SSascha Wildner.Sq \&. 5936342e81SSascha Wildnerare parsed for requests and macros. 6036342e81SSascha WildnerSuch lines are called 6136342e81SSascha Wildner.Dq request lines 6236342e81SSascha Wildneror 6336342e81SSascha Wildner.Dq macro lines , 6436342e81SSascha Wildnerrespectively. 6536342e81SSascha WildnerRequests change the processing state and manipulate the formatting; 6636342e81SSascha Wildnersome macros also define the document structure and produce formatted 6736342e81SSascha Wildneroutput. 6836342e81SSascha WildnerThe single quote 6936342e81SSascha Wildner.Pq Qq \(aq 7036342e81SSascha Wildneris accepted as an alternative control character, 7136342e81SSascha Wildnertreated by 7236342e81SSascha Wildner.Xr mandoc 1 7336342e81SSascha Wildnerjust like 7436342e81SSascha Wildner.Ql \&. 7536342e81SSascha Wildner.Pp 7636342e81SSascha WildnerLines not beginning with control characters are called 7736342e81SSascha Wildner.Dq text lines . 7836342e81SSascha WildnerThey provide free-form text to be printed; the formatting of the text 7936342e81SSascha Wildnerdepends on the respective processing context. 8080387638SSascha Wildner.Sh LANGUAGE SYNTAX 8180387638SSascha Wildner.Nm 8280387638SSascha Wildnerdocuments may contain only graphable 7-bit ASCII characters, the space 8380387638SSascha Wildnercharacter, and, in certain circumstances, the tab character. 84f88b6c16SFranco FichtnerThe backslash character 8536342e81SSascha Wildner.Sq \e 867888c61dSFranco Fichtnerindicates the start of an escape sequence, used for example for 8754ba9607SSascha Wildner.Sx Comments 8836342e81SSascha Wildnerand 8954ba9607SSascha Wildner.Sx Special Characters . 9054ba9607SSascha WildnerFor a complete listing of escape sequences, consult the 917888c61dSFranco Fichtner.Sx ESCAPE SEQUENCE REFERENCE 927888c61dSFranco Fichtnerbelow. 9336342e81SSascha Wildner.Ss Comments 9436342e81SSascha WildnerText following an escaped double-quote 9536342e81SSascha Wildner.Sq \e\(dq , 9636342e81SSascha Wildnerwhether in a request, macro, or text line, is ignored to the end of the line. 9736342e81SSascha WildnerA request line beginning with a control character and comment escape 9836342e81SSascha Wildner.Sq \&.\e\(dq 9936342e81SSascha Wildneris also ignored. 10036342e81SSascha WildnerFurthermore, request lines with only a control character and optional 10136342e81SSascha Wildnertrailing whitespace are stripped from input. 10236342e81SSascha Wildner.Pp 10336342e81SSascha WildnerExamples: 10436342e81SSascha Wildner.Bd -literal -offset indent -compact 10536342e81SSascha Wildner\&.\e\(dq This is a comment line. 10636342e81SSascha Wildner\&.\e\(dq The next line is ignored: 10736342e81SSascha Wildner\&. 10836342e81SSascha Wildner\&.Sh EXAMPLES \e\(dq This is a comment, too. 10936342e81SSascha Wildner\&example text \e\(dq And so is this. 11036342e81SSascha Wildner.Ed 11136342e81SSascha Wildner.Ss Special Characters 11236342e81SSascha WildnerSpecial characters are used to encode special glyphs and are rendered 11336342e81SSascha Wildnerdifferently across output media. 11436342e81SSascha WildnerThey may occur in request, macro, and text lines. 11536342e81SSascha WildnerSequences begin with the escape character 11636342e81SSascha Wildner.Sq \e 11736342e81SSascha Wildnerfollowed by either an open-parenthesis 11836342e81SSascha Wildner.Sq \&( 11936342e81SSascha Wildnerfor two-character sequences; an open-bracket 12036342e81SSascha Wildner.Sq \&[ 12136342e81SSascha Wildnerfor n-character sequences (terminated at a close-bracket 12236342e81SSascha Wildner.Sq \&] ) ; 12336342e81SSascha Wildneror a single one character sequence. 12436342e81SSascha Wildner.Pp 12536342e81SSascha WildnerExamples: 12636342e81SSascha Wildner.Bl -tag -width Ds -offset indent -compact 12736342e81SSascha Wildner.It Li \e(em 12836342e81SSascha WildnerTwo-letter em dash escape. 12936342e81SSascha Wildner.It Li \ee 13036342e81SSascha WildnerOne-letter backslash escape. 13136342e81SSascha Wildner.El 13236342e81SSascha Wildner.Pp 13336342e81SSascha WildnerSee 13480387638SSascha Wildner.Xr mandoc_char 7 13536342e81SSascha Wildnerfor a complete list. 13654ba9607SSascha Wildner.Ss Font Selection 13754ba9607SSascha WildnerIn 13854ba9607SSascha Wildner.Xr mdoc 7 13954ba9607SSascha Wildnerand 14054ba9607SSascha Wildner.Xr man 7 14154ba9607SSascha Wildnerdocuments, fonts are usually selected with macros. 14254ba9607SSascha WildnerThe 14354ba9607SSascha Wildner.Ic \ef 14454ba9607SSascha Wildnerescape sequence and the 14554ba9607SSascha Wildner.Ic \&ft 14654ba9607SSascha Wildnerrequest can be used to manually change the font, 14754ba9607SSascha Wildnerbut this is not recommended in 14854ba9607SSascha Wildner.Xr mdoc 7 14954ba9607SSascha Wildnerdocuments. 15054ba9607SSascha WildnerSuch manual font changes are overridden by many subsequent macros. 15136342e81SSascha Wildner.Pp 15254ba9607SSascha WildnerThe following fonts are supported: 15354ba9607SSascha Wildner.Pp 15454ba9607SSascha Wildner.Bl -tag -width CW -offset indent -compact 15554ba9607SSascha Wildner.It Cm B 15654ba9607SSascha WildnerBold font. 15754ba9607SSascha Wildner.It Cm BI 15854ba9607SSascha WildnerA font that is both bold and italic. 15954ba9607SSascha Wildner.It Cm CB 16054ba9607SSascha WildnerBold constant width font. 16154ba9607SSascha WildnerSame as 16254ba9607SSascha Wildner.Cm B 16354ba9607SSascha Wildnerin terminal output. 16454ba9607SSascha Wildner.It Cm CI 16554ba9607SSascha WildnerItalic constant width font. 16654ba9607SSascha WildnerSame as 16754ba9607SSascha Wildner.Cm I 16854ba9607SSascha Wildnerin terminal output. 16954ba9607SSascha Wildner.It Cm CR 17054ba9607SSascha WildnerRegular constant width font. 17154ba9607SSascha WildnerSame as 17254ba9607SSascha Wildner.Cm R 17354ba9607SSascha Wildnerin terminal output. 17454ba9607SSascha Wildner.It Cm CW 17554ba9607SSascha WildnerAn alias for 17654ba9607SSascha Wildner.Cm CR . 17754ba9607SSascha Wildner.It Cm I 17854ba9607SSascha WildnerItalic font. 17954ba9607SSascha Wildner.It Cm P 18054ba9607SSascha WildnerReturn to the previous font. 18154ba9607SSascha WildnerIf a macro caused a font change since the last 18254ba9607SSascha Wildner.Ic \ef 18354ba9607SSascha Wildnereascape sequence or 18454ba9607SSascha Wildner.Ic \&ft 18554ba9607SSascha Wildnerrequest, this returns to the font before the last font change in 18654ba9607SSascha Wildnerthe macro rather than to the font before the last manual font change. 18754ba9607SSascha Wildner.It Cm R 18854ba9607SSascha WildnerRoman font. 18954ba9607SSascha WildnerThis is the default font. 19054ba9607SSascha Wildner.It Cm 1 19154ba9607SSascha WildnerAn alias for 19254ba9607SSascha Wildner.Cm R . 19354ba9607SSascha Wildner.It Cm 2 19454ba9607SSascha WildnerAn alias for 19554ba9607SSascha Wildner.Cm I . 19654ba9607SSascha Wildner.It Cm 3 19754ba9607SSascha WildnerAn alias for 19854ba9607SSascha Wildner.Cm B . 19954ba9607SSascha Wildner.It Cm 4 20054ba9607SSascha WildnerAn alias for 20154ba9607SSascha Wildner.Cm BI . 20254ba9607SSascha Wildner.El 203f88b6c16SFranco Fichtner.Pp 20436342e81SSascha WildnerExamples: 20536342e81SSascha Wildner.Bl -tag -width Ds -offset indent -compact 20636342e81SSascha Wildner.It Li \efBbold\efR 207f88b6c16SFranco FichtnerWrite in \fBbold\fP, then switch to regular font mode. 20836342e81SSascha Wildner.It Li \efIitalic\efP 209f88b6c16SFranco FichtnerWrite in \fIitalic\fP, then return to previous font mode. 210f88b6c16SFranco Fichtner.It Li \ef(BIbold italic\efP 211f88b6c16SFranco FichtnerWrite in \f(BIbold italic\fP, then return to previous font mode. 21236342e81SSascha Wildner.El 21336342e81SSascha Wildner.Ss Whitespace 21436342e81SSascha WildnerWhitespace consists of the space character. 21536342e81SSascha WildnerIn text lines, whitespace is preserved within a line. 21636342e81SSascha WildnerIn request and macro lines, whitespace delimits arguments and is discarded. 21736342e81SSascha Wildner.Pp 21836342e81SSascha WildnerUnescaped trailing spaces are stripped from text line input unless in a 21936342e81SSascha Wildnerliteral context. 22036342e81SSascha WildnerIn general, trailing whitespace on any input line is discouraged for 22136342e81SSascha Wildnerreasons of portability. 22254ba9607SSascha WildnerIn the rare case that a space character is needed at the end of an 22336342e81SSascha Wildnerinput line, it may be forced by 22436342e81SSascha Wildner.Sq \e\ \e& . 22536342e81SSascha Wildner.Pp 22636342e81SSascha WildnerLiteral space characters can be produced in the output 22736342e81SSascha Wildnerusing escape sequences. 22836342e81SSascha WildnerIn macro lines, they can also be included in arguments using quotation; see 22936342e81SSascha Wildner.Sx MACRO SYNTAX 23036342e81SSascha Wildnerfor details. 23136342e81SSascha Wildner.Pp 23236342e81SSascha WildnerBlank text lines, which may include whitespace, are only permitted 23336342e81SSascha Wildnerwithin literal contexts. 23436342e81SSascha WildnerIf the first character of a text line is a space, that line is printed 23536342e81SSascha Wildnerwith a leading newline. 23636342e81SSascha Wildner.Ss Scaling Widths 23736342e81SSascha WildnerMany requests and macros support scaled widths for their arguments. 23836342e81SSascha WildnerThe syntax for a scaled width is 23936342e81SSascha Wildner.Sq Li [+-]?[0-9]*.[0-9]*[:unit:] , 24036342e81SSascha Wildnerwhere a decimal must be preceded or followed by at least one digit. 24136342e81SSascha Wildner.Pp 24236342e81SSascha WildnerThe following scaling units are accepted: 24336342e81SSascha Wildner.Pp 24436342e81SSascha Wildner.Bl -tag -width Ds -offset indent -compact 24536342e81SSascha Wildner.It c 24636342e81SSascha Wildnercentimetre 24736342e81SSascha Wildner.It i 24836342e81SSascha Wildnerinch 24936342e81SSascha Wildner.It P 25054ba9607SSascha Wildnerpica (1/6 inch) 25136342e81SSascha Wildner.It p 25254ba9607SSascha Wildnerpoint (1/72 inch) 25336342e81SSascha Wildner.It f 25454ba9607SSascha Wildnerscale 25536342e81SSascha Wildner.Sq u 25654ba9607SSascha Wildnerby 65536 25736342e81SSascha Wildner.It v 25836342e81SSascha Wildnerdefault vertical span 25936342e81SSascha Wildner.It m 26036342e81SSascha Wildnerwidth of rendered 26136342e81SSascha Wildner.Sq m 26236342e81SSascha Wildner.Pq em 26336342e81SSascha Wildnercharacter 26436342e81SSascha Wildner.It n 26536342e81SSascha Wildnerwidth of rendered 26636342e81SSascha Wildner.Sq n 26736342e81SSascha Wildner.Pq en 26836342e81SSascha Wildnercharacter 26936342e81SSascha Wildner.It u 27054ba9607SSascha Wildnerdefault horizontal span for the terminal 27136342e81SSascha Wildner.It M 27254ba9607SSascha Wildnermini-em (1/100 em) 27336342e81SSascha Wildner.El 27436342e81SSascha Wildner.Pp 27536342e81SSascha WildnerUsing anything other than 27636342e81SSascha Wildner.Sq m , 27736342e81SSascha Wildner.Sq n , 27836342e81SSascha Wildneror 27936342e81SSascha Wildner.Sq v 28036342e81SSascha Wildneris necessarily non-portable across output media. 28136342e81SSascha WildnerSee 28236342e81SSascha Wildner.Sx COMPATIBILITY . 28336342e81SSascha Wildner.Pp 28436342e81SSascha WildnerIf a scaling unit is not provided, the numerical value is interpreted 28536342e81SSascha Wildnerunder the default rules of 28636342e81SSascha Wildner.Sq v 28736342e81SSascha Wildnerfor vertical spaces and 28836342e81SSascha Wildner.Sq u 28936342e81SSascha Wildnerfor horizontal ones. 29036342e81SSascha Wildner.Pp 29136342e81SSascha WildnerExamples: 29236342e81SSascha Wildner.Bl -tag -width ".Bl -tag -width 2i" -offset indent -compact 29336342e81SSascha Wildner.It Li \&.Bl -tag -width 2i 29436342e81SSascha Wildnertwo-inch tagged list indentation in 29536342e81SSascha Wildner.Xr mdoc 7 29636342e81SSascha Wildner.It Li \&.HP 2i 29736342e81SSascha Wildnertwo-inch tagged list indentation in 29836342e81SSascha Wildner.Xr man 7 29936342e81SSascha Wildner.It Li \&.sp 2v 30036342e81SSascha Wildnertwo vertical spaces 30136342e81SSascha Wildner.El 30236342e81SSascha Wildner.Ss Sentence Spacing 30336342e81SSascha WildnerEach sentence should terminate at the end of an input line. 30436342e81SSascha WildnerBy doing this, a formatter will be able to apply the proper amount of 30536342e81SSascha Wildnerspacing after the end of sentence (unescaped) period, exclamation mark, 30636342e81SSascha Wildneror question mark followed by zero or more non-sentence closing 30736342e81SSascha Wildnerdelimiters 30836342e81SSascha Wildner.Po 30936342e81SSascha Wildner.Sq \&) , 31036342e81SSascha Wildner.Sq \&] , 31136342e81SSascha Wildner.Sq \&' , 31236342e81SSascha Wildner.Sq \&" 31336342e81SSascha Wildner.Pc . 31436342e81SSascha Wildner.Pp 31536342e81SSascha WildnerThe proper spacing is also intelligently preserved if a sentence ends at 31636342e81SSascha Wildnerthe boundary of a macro line. 31736342e81SSascha Wildner.Pp 318*99db7d0eSSascha WildnerIf an input line happens to end with a period, exclamation or question 319*99db7d0eSSascha Wildnermark that isn't the end of a sentence, append a zero-width space 320*99db7d0eSSascha Wildner.Pq Sq \e& . 321*99db7d0eSSascha Wildner.Pp 32236342e81SSascha WildnerExamples: 32336342e81SSascha Wildner.Bd -literal -offset indent -compact 32436342e81SSascha WildnerDo not end sentences mid-line like this. Instead, 32536342e81SSascha Wildnerend a sentence like this. 32636342e81SSascha WildnerA macro would end like this: 32736342e81SSascha Wildner\&.Xr mandoc 1 \&. 328*99db7d0eSSascha WildnerAn abbreviation at the end of an input line needs escaping, e.g.\e& 329*99db7d0eSSascha Wildnerlike this. 33036342e81SSascha Wildner.Ed 33180387638SSascha Wildner.Sh REQUEST SYNTAX 33280387638SSascha WildnerA request or macro line consists of: 33380387638SSascha Wildner.Pp 33480387638SSascha Wildner.Bl -enum -compact 33580387638SSascha Wildner.It 33680387638SSascha Wildnerthe control character 33780387638SSascha Wildner.Sq \&. 33880387638SSascha Wildneror 33980387638SSascha Wildner.Sq \(aq 34080387638SSascha Wildnerat the beginning of the line, 34180387638SSascha Wildner.It 34280387638SSascha Wildneroptionally an arbitrary amount of whitespace, 34380387638SSascha Wildner.It 34480387638SSascha Wildnerthe name of the request or the macro, which is one word of arbitrary 34580387638SSascha Wildnerlength, terminated by whitespace, 34680387638SSascha Wildner.It 34780387638SSascha Wildnerand zero or more arguments delimited by whitespace. 34880387638SSascha Wildner.El 34980387638SSascha Wildner.Pp 35080387638SSascha WildnerThus, the following request lines are all equivalent: 35180387638SSascha Wildner.Bd -literal -offset indent 35280387638SSascha Wildner\&.ig end 35380387638SSascha Wildner\&.ig end 35480387638SSascha Wildner\&. ig end 35580387638SSascha Wildner.Ed 35660e1e752SSascha Wildner.Sh MACRO SYNTAX 35736342e81SSascha WildnerMacros are provided by the 35836342e81SSascha Wildner.Xr mdoc 7 35936342e81SSascha Wildnerand 36036342e81SSascha Wildner.Xr man 7 36136342e81SSascha Wildnerlanguages and can be defined by the 36254ba9607SSascha Wildner.Ic \&de 36360e1e752SSascha Wildnerrequest. 36460e1e752SSascha WildnerWhen called, they follow the same syntax as requests, except that 36560e1e752SSascha Wildnermacro arguments may optionally be quoted by enclosing them 36660e1e752SSascha Wildnerin double quote characters 36760e1e752SSascha Wildner.Pq Sq \(dq . 36836342e81SSascha WildnerQuoted text, even if it contains whitespace or would cause 36936342e81SSascha Wildnera macro invocation when unquoted, is always considered literal text. 37036342e81SSascha WildnerInside quoted text, pairs of double quote characters 37160e1e752SSascha Wildner.Pq Sq Qq 37260e1e752SSascha Wildnerresolve to single double quote characters. 37336342e81SSascha Wildner.Pp 37436342e81SSascha WildnerTo be recognised as the beginning of a quoted argument, the opening 37536342e81SSascha Wildnerquote character must be preceded by a space character. 37660e1e752SSascha WildnerA quoted argument extends to the next double quote character that is not 37760e1e752SSascha Wildnerpart of a pair, or to the end of the input line, whichever comes earlier. 37860e1e752SSascha WildnerLeaving out the terminating double quote character at the end of the line 37960e1e752SSascha Wildneris discouraged. 38060e1e752SSascha WildnerFor clarity, if more arguments follow on the same input line, 38160e1e752SSascha Wildnerit is recommended to follow the terminating double quote character 38260e1e752SSascha Wildnerby a space character; in case the next character after the terminating 38360e1e752SSascha Wildnerdouble quote character is anything else, it is regarded as the beginning 38460e1e752SSascha Wildnerof the next, unquoted argument. 38560e1e752SSascha Wildner.Pp 38660e1e752SSascha WildnerBoth in quoted and unquoted arguments, pairs of backslashes 38760e1e752SSascha Wildner.Pq Sq \e\e 38860e1e752SSascha Wildnerresolve to single backslashes. 38960e1e752SSascha WildnerIn unquoted arguments, space characters can alternatively be included 39060e1e752SSascha Wildnerby preceding them with a backslash 39160e1e752SSascha Wildner.Pq Sq \e\~ , 39260e1e752SSascha Wildnerbut quoting is usually better for clarity. 39336342e81SSascha Wildner.Pp 39436342e81SSascha WildnerExamples: 39536342e81SSascha Wildner.Bl -tag -width Ds -offset indent -compact 39636342e81SSascha Wildner.It Li .Fn strlen \(dqconst char *s\(dq 39736342e81SSascha WildnerGroup arguments 39836342e81SSascha Wildner.Qq const char *s 39936342e81SSascha Wildnerinto one function argument. 40036342e81SSascha WildnerIf unspecified, 40136342e81SSascha Wildner.Qq const , 40236342e81SSascha Wildner.Qq char , 40336342e81SSascha Wildnerand 40436342e81SSascha Wildner.Qq *s 40536342e81SSascha Wildnerwould be considered separate arguments. 40636342e81SSascha Wildner.It Li .Op \(dqFl a\(dq 40736342e81SSascha WildnerConsider 40836342e81SSascha Wildner.Qq \&Fl a 40936342e81SSascha Wildneras literal text instead of a flag macro. 41036342e81SSascha Wildner.El 41180387638SSascha Wildner.Sh REQUEST REFERENCE 41280387638SSascha WildnerThe 41380387638SSascha Wildner.Xr mandoc 1 41480387638SSascha Wildner.Nm 41536342e81SSascha Wildnerparser recognises the following requests. 41654ba9607SSascha WildnerFor requests marked as "ignored" or "unsupported", any arguments are 41754ba9607SSascha Wildnerignored, and the number of arguments is not checked. 41854ba9607SSascha Wildner.Bl -tag -width Ds 41954ba9607SSascha Wildner.It Ic \&ab Op Ar message 42054ba9607SSascha WildnerAbort processing. 42154ba9607SSascha WildnerCurrently unsupported. 42254ba9607SSascha Wildner.It Ic \&ad Op Cm b | c | l | n | r 42354ba9607SSascha WildnerSet line adjustment mode for subsequent text. 42454ba9607SSascha WildnerCurrently ignored. 42554ba9607SSascha Wildner.It Ic \&af Ar registername format 42654ba9607SSascha WildnerAssign an output format to a number register. 42754ba9607SSascha WildnerCurrently ignored. 42854ba9607SSascha Wildner.It Ic \&aln Ar newname oldname 42954ba9607SSascha WildnerCreate an alias for a number register. 43054ba9607SSascha WildnerCurrently unsupported. 43154ba9607SSascha Wildner.It Ic \&als Ar newname oldname 43254ba9607SSascha WildnerCreate an alias for a request, string, macro, or diversion. 43354ba9607SSascha Wildner.It Ic \&am Ar macroname Op Ar endmacro 43480387638SSascha WildnerAppend to a macro definition. 43580387638SSascha WildnerThe syntax of this request is the same as that of 43654ba9607SSascha Wildner.Ic \&de . 43754ba9607SSascha Wildner.It Ic \&am1 Ar macroname Op Ar endmacro 43880387638SSascha WildnerAppend to a macro definition, switching roff compatibility mode off 43954ba9607SSascha Wildnerduring macro execution (groff extension). 44080387638SSascha WildnerThe syntax of this request is the same as that of 44154ba9607SSascha Wildner.Ic \&de1 . 442070c62a6SFranco FichtnerSince 443070c62a6SFranco Fichtner.Xr mandoc 1 444070c62a6SFranco Fichtnerdoes not implement 445070c62a6SFranco Fichtner.Nm 446070c62a6SFranco Fichtnercompatibility mode at all, it handles this request as an alias for 44754ba9607SSascha Wildner.Ic \&am . 44854ba9607SSascha Wildner.It Ic \&ami Ar macrostring Op Ar endstring 44954ba9607SSascha WildnerAppend to a macro definition, specifying the macro name indirectly 45054ba9607SSascha Wildner(groff extension). 45154ba9607SSascha WildnerThe syntax of this request is the same as that of 45254ba9607SSascha Wildner.Ic \&dei . 45354ba9607SSascha Wildner.It Ic \&ami1 Ar macrostring Op Ar endstring 45454ba9607SSascha WildnerAppend to a macro definition, specifying the macro name indirectly 45554ba9607SSascha Wildnerand switching roff compatibility mode off during macro execution 45654ba9607SSascha Wildner(groff extension). 45754ba9607SSascha WildnerThe syntax of this request is the same as that of 45854ba9607SSascha Wildner.Ic \&dei1 . 45954ba9607SSascha WildnerSince 46054ba9607SSascha Wildner.Xr mandoc 1 46154ba9607SSascha Wildnerdoes not implement 46254ba9607SSascha Wildner.Nm 46354ba9607SSascha Wildnercompatibility mode at all, it handles this request as an alias for 46454ba9607SSascha Wildner.Ic \&ami . 46554ba9607SSascha Wildner.It Ic \&as Ar stringname Op Ar string 466070c62a6SFranco FichtnerAppend to a user-defined string. 467070c62a6SFranco FichtnerThe syntax of this request is the same as that of 46854ba9607SSascha Wildner.Ic \&ds . 469070c62a6SFranco FichtnerIf a user-defined string with the specified name does not yet exist, 470070c62a6SFranco Fichtnerit is set to the empty string before appending. 47154ba9607SSascha Wildner.It Ic \&as1 Ar stringname Op Ar string 47254ba9607SSascha WildnerAppend to a user-defined string, switching roff compatibility mode off 47354ba9607SSascha Wildnerduring macro execution (groff extension). 47454ba9607SSascha WildnerThe syntax of this request is the same as that of 47554ba9607SSascha Wildner.Ic \&ds1 . 47654ba9607SSascha WildnerSince 47754ba9607SSascha Wildner.Xr mandoc 1 47854ba9607SSascha Wildnerdoes not implement 47954ba9607SSascha Wildner.Nm 48054ba9607SSascha Wildnercompatibility mode at all, it handles this request as an alias for 48154ba9607SSascha Wildner.Ic \&as . 48254ba9607SSascha Wildner.It Ic \&asciify Ar divname 48354ba9607SSascha WildnerFully unformat a diversion. 48454ba9607SSascha WildnerCurrently unsupported. 48554ba9607SSascha Wildner.It Ic \&backtrace 48654ba9607SSascha WildnerPrint a backtrace of the input stack. 48754ba9607SSascha WildnerThis is a groff extension and currently ignored. 48854ba9607SSascha Wildner.It Ic \&bd Ar font Oo Ar curfont Oc Op Ar offset 48954ba9607SSascha WildnerArtificially embolden by repeated printing with small shifts. 49054ba9607SSascha WildnerCurrently ignored. 49154ba9607SSascha Wildner.It Ic \&bleedat Ar left top width height 49254ba9607SSascha WildnerSet the BleedBox page parameter for PDF generation. 49354ba9607SSascha WildnerThis is a Heirloom extension and currently ignored. 49454ba9607SSascha Wildner.It Ic \&blm Ar macroname 49554ba9607SSascha WildnerSet a blank line trap. 49654ba9607SSascha WildnerCurrently unsupported. 49754ba9607SSascha Wildner.It Ic \&box Ar divname 49854ba9607SSascha WildnerBegin a diversion without including a partially filled line. 49954ba9607SSascha WildnerCurrently unsupported. 50054ba9607SSascha Wildner.It Ic \&boxa Ar divname 50154ba9607SSascha WildnerAdd to a diversion without including a partially filled line. 50254ba9607SSascha WildnerCurrently unsupported. 50354ba9607SSascha Wildner.It Ic \&bp Oo Cm + Ns | Ns Cm - Oc Ns Ar pagenumber 50454ba9607SSascha WildnerBegin a new page. 50554ba9607SSascha WildnerCurrently ignored. 50654ba9607SSascha Wildner.It Ic \&BP Ar source height width position offset flags label 50754ba9607SSascha WildnerDefine a frame and place a picture in it. 50854ba9607SSascha WildnerThis is a Heirloom extension and currently unsupported. 50954ba9607SSascha Wildner.It Ic \&br 51054ba9607SSascha WildnerBreak the output line. 51154ba9607SSascha Wildner.It Ic \&break 512*99db7d0eSSascha WildnerBreak out of the innermost 51354ba9607SSascha Wildner.Ic \&while 51454ba9607SSascha Wildnerloop. 51554ba9607SSascha Wildner.It Ic \&breakchar Ar char ... 51654ba9607SSascha WildnerOptional line break characters. 51754ba9607SSascha WildnerThis is a Heirloom extension and currently ignored. 51854ba9607SSascha Wildner.It Ic \&brnl Ar N 51954ba9607SSascha WildnerBreak output line after the next 52054ba9607SSascha Wildner.Ar N 52154ba9607SSascha Wildnerinput lines. 52254ba9607SSascha WildnerThis is a Heirloom extension and currently ignored. 52354ba9607SSascha Wildner.It Ic \&brp 52454ba9607SSascha WildnerBreak and spread output line. 52554ba9607SSascha WildnerCurrently, this is implemented as an alias for 52654ba9607SSascha Wildner.Ic \&br . 52754ba9607SSascha Wildner.It Ic \&brpnl Ar N 52854ba9607SSascha WildnerBreak and spread output line after the next 52954ba9607SSascha Wildner.Ar N 53054ba9607SSascha Wildnerinput lines. 53154ba9607SSascha WildnerThis is a Heirloom extension and currently ignored. 53254ba9607SSascha Wildner.It Ic \&c2 Op Ar char 53354ba9607SSascha WildnerChange the no-break control character. 53454ba9607SSascha WildnerCurrently unsupported. 53554ba9607SSascha Wildner.It Ic \&cc Op Ar char 53654ba9607SSascha WildnerChange the control character. 537f88b6c16SFranco FichtnerIf 53854ba9607SSascha Wildner.Ar char 539f88b6c16SFranco Fichtneris not specified, the control character is reset to 540f88b6c16SFranco Fichtner.Sq \&. . 541f88b6c16SFranco FichtnerTrailing characters are ignored. 54254ba9607SSascha Wildner.It Ic \&ce Op Ar N 54354ba9607SSascha WildnerCenter the next 54454ba9607SSascha Wildner.Ar N 54554ba9607SSascha Wildnerinput lines without filling. 54654ba9607SSascha Wildner.Ar N 54754ba9607SSascha Wildnerdefaults to 1. 54854ba9607SSascha WildnerAn argument of 0 or less ends centering. 54954ba9607SSascha WildnerCurrently, high level macros abort centering. 55054ba9607SSascha Wildner.It Ic \&cf Ar filename 55154ba9607SSascha WildnerOutput the contents of a file. 55254ba9607SSascha WildnerIgnored because insecure. 55354ba9607SSascha Wildner.It Ic \&cflags Ar flags char ... 55454ba9607SSascha WildnerSet character flags. 55554ba9607SSascha WildnerThis is a groff extension and currently ignored. 55654ba9607SSascha Wildner.It Ic \&ch Ar macroname Op Ar dist 55754ba9607SSascha WildnerChange a trap location. 55854ba9607SSascha WildnerCurrently ignored. 55954ba9607SSascha Wildner.It Ic \&char Ar glyph Op Ar string 56054ba9607SSascha WildnerDefine or redefine the ASCII character or character escape sequence 56154ba9607SSascha Wildner.Ar glyph 56254ba9607SSascha Wildnerto be rendered as 56354ba9607SSascha Wildner.Ar string , 56454ba9607SSascha Wildnerwhich can be empty. 56554ba9607SSascha WildnerOnly partially supported in 56654ba9607SSascha Wildner.Xr mandoc 1 ; 56754ba9607SSascha Wildnermay interact incorrectly with 56854ba9607SSascha Wildner.Ic \&tr . 56954ba9607SSascha Wildner.It Ic \&chop Ar stringname 57054ba9607SSascha WildnerRemove the last character from a macro, string, or diversion. 57154ba9607SSascha WildnerCurrently unsupported. 57254ba9607SSascha Wildner.It Ic \&class Ar classname char ... 57354ba9607SSascha WildnerDefine a character class. 57454ba9607SSascha WildnerThis is a groff extension and currently ignored. 57554ba9607SSascha Wildner.It Ic \&close Ar streamname 57654ba9607SSascha WildnerClose an open file. 57754ba9607SSascha WildnerIgnored because insecure. 57854ba9607SSascha Wildner.It Ic \&CL Ar color text 57954ba9607SSascha WildnerPrint text in color. 58054ba9607SSascha WildnerThis is a Heirloom extension and currently unsupported. 58154ba9607SSascha Wildner.It Ic \&color Op Cm 1 | 0 58254ba9607SSascha WildnerActivate or deactivate colors. 58354ba9607SSascha WildnerThis is a groff extension and currently ignored. 58454ba9607SSascha Wildner.It Ic \&composite Ar from to 58554ba9607SSascha WildnerDefine a name component for composite glyph names. 58654ba9607SSascha WildnerThis is a groff extension and currently unsupported. 58754ba9607SSascha Wildner.It Ic \&continue 58854ba9607SSascha WildnerImmediately start the next iteration of a 58954ba9607SSascha Wildner.Ic \&while 59054ba9607SSascha Wildnerloop. 59154ba9607SSascha WildnerCurrently unsupported. 59254ba9607SSascha Wildner.It Ic \&cp Op Cm 1 | 0 59354ba9607SSascha WildnerSwitch 59454ba9607SSascha Wildner.Nm 59554ba9607SSascha Wildnercompatibility mode on or off. 59654ba9607SSascha WildnerCurrently ignored. 59754ba9607SSascha Wildner.It Ic \&cropat Ar left top width height 59854ba9607SSascha WildnerSet the CropBox page parameter for PDF generation. 59954ba9607SSascha WildnerThis is a Heirloom extension and currently ignored. 60054ba9607SSascha Wildner.It Ic \&cs Ar font Op Ar width Op Ar emsize 60154ba9607SSascha WildnerConstant character spacing mode. 60254ba9607SSascha WildnerCurrently ignored. 60354ba9607SSascha Wildner.It Ic \&cu Op Ar N 60454ba9607SSascha WildnerUnderline next 60554ba9607SSascha Wildner.Ar N 60654ba9607SSascha Wildnerinput lines including whitespace. 60754ba9607SSascha WildnerCurrently ignored. 60854ba9607SSascha Wildner.It Ic \&da Ar divname 60954ba9607SSascha WildnerAppend to a diversion. 61054ba9607SSascha WildnerCurrently unsupported. 61154ba9607SSascha Wildner.It Ic \&dch Ar macroname Op Ar dist 61254ba9607SSascha WildnerChange a trap location in the current diversion. 61354ba9607SSascha WildnerThis is a Heirloom extension and currently unsupported. 61454ba9607SSascha Wildner.It Ic \&de Ar macroname Op Ar endmacro 61580387638SSascha WildnerDefine a 61680387638SSascha Wildner.Nm 61780387638SSascha Wildnermacro. 61880387638SSascha WildnerIts syntax can be either 61980387638SSascha Wildner.Bd -literal -offset indent 62054ba9607SSascha Wildner.Pf . Ic \&de Ar macroname 62154ba9607SSascha Wildner.Ar definition 62280387638SSascha Wildner\&.. 62380387638SSascha Wildner.Ed 62480387638SSascha Wildner.Pp 62580387638SSascha Wildneror 62680387638SSascha Wildner.Bd -literal -offset indent 627*99db7d0eSSascha Wildner.Pf . Ic \&de Ar macroname endmacro 62854ba9607SSascha Wildner.Ar definition 62954ba9607SSascha Wildner.Pf . Ar endmacro 63080387638SSascha Wildner.Ed 63180387638SSascha Wildner.Pp 63280387638SSascha WildnerBoth forms define or redefine the macro 63354ba9607SSascha Wildner.Ar macroname 63480387638SSascha Wildnerto represent the 63554ba9607SSascha Wildner.Ar definition , 63680387638SSascha Wildnerwhich may consist of one or more input lines, including the newline 63780387638SSascha Wildnercharacters terminating each line, optionally containing calls to 63880387638SSascha Wildner.Nm 63980387638SSascha Wildnerrequests, 64080387638SSascha Wildner.Nm 64180387638SSascha Wildnermacros or high-level macros like 64280387638SSascha Wildner.Xr man 7 64380387638SSascha Wildneror 64480387638SSascha Wildner.Xr mdoc 7 64580387638SSascha Wildnermacros, whichever applies to the document in question. 64680387638SSascha Wildner.Pp 64780387638SSascha WildnerSpecifying a custom 64854ba9607SSascha Wildner.Ar endmacro 64954ba9607SSascha Wildnerworks in the same way as for 65054ba9607SSascha Wildner.Ic \&ig ; 65180387638SSascha Wildnernamely, the call to 65254ba9607SSascha Wildner.Sq Pf . Ar endmacro 65380387638SSascha Wildnerfirst ends the 65454ba9607SSascha Wildner.Ar definition , 65580387638SSascha Wildnerand after that, it is also evaluated as a 65680387638SSascha Wildner.Nm 65780387638SSascha Wildnerrequest or 65880387638SSascha Wildner.Nm 65980387638SSascha Wildnermacro, but not as a high-level macro. 66080387638SSascha Wildner.Pp 66180387638SSascha WildnerThe macro can be invoked later using the syntax 66280387638SSascha Wildner.Pp 66354ba9607SSascha Wildner.D1 Pf . Ar macroname Op Ar argument Op Ar argument ... 66480387638SSascha Wildner.Pp 66560e1e752SSascha WildnerRegarding argument parsing, see 66660e1e752SSascha Wildner.Sx MACRO SYNTAX 66760e1e752SSascha Wildnerabove. 66880387638SSascha Wildner.Pp 66980387638SSascha WildnerThe line invoking the macro will be replaced 67080387638SSascha Wildnerin the input stream by the 67154ba9607SSascha Wildner.Ar definition , 67280387638SSascha Wildnerreplacing all occurrences of 67380387638SSascha Wildner.No \e\e$ Ns Ar N , 67480387638SSascha Wildnerwhere 67580387638SSascha Wildner.Ar N 67680387638SSascha Wildneris a digit, by the 67780387638SSascha Wildner.Ar N Ns th Ar argument . 67880387638SSascha WildnerFor example, 67980387638SSascha Wildner.Bd -literal -offset indent 68080387638SSascha Wildner\&.de ZN 68180387638SSascha Wildner\efI\e^\e\e$1\e^\efP\e\e$2 68280387638SSascha Wildner\&.. 68380387638SSascha Wildner\&.ZN XtFree . 68480387638SSascha Wildner.Ed 68580387638SSascha Wildner.Pp 68680387638SSascha Wildnerproduces 68780387638SSascha Wildner.Pp 68880387638SSascha Wildner.D1 \efI\e^XtFree\e^\efP. 68980387638SSascha Wildner.Pp 69080387638SSascha Wildnerin the input stream, and thus in the output: \fI\^XtFree\^\fP. 69154ba9607SSascha WildnerEach occurrence of \e\e$* is replaced with all the arguments, 69254ba9607SSascha Wildnerjoined together with single space characters. 69354ba9607SSascha WildnerThe variant \e\e$@ is similar, except that each argument is 69454ba9607SSascha Wildnerindividually quoted. 69580387638SSascha Wildner.Pp 69680387638SSascha WildnerSince macros and user-defined strings share a common string table, 69780387638SSascha Wildnerdefining a macro 69854ba9607SSascha Wildner.Ar macroname 69980387638SSascha Wildnerclobbers the user-defined string 70054ba9607SSascha Wildner.Ar macroname , 70180387638SSascha Wildnerand the 70254ba9607SSascha Wildner.Ar definition 70380387638SSascha Wildnercan also be printed using the 70480387638SSascha Wildner.Sq \e* 70580387638SSascha Wildnerstring interpolation syntax described below 70654ba9607SSascha Wildner.Ic ds , 70780387638SSascha Wildnerbut this is rarely useful because every macro definition contains at least 70880387638SSascha Wildnerone explicit newline character. 70980387638SSascha Wildner.Pp 71080387638SSascha WildnerIn order to prevent endless recursion, both groff and 71180387638SSascha Wildner.Xr mandoc 1 71280387638SSascha Wildnerlimit the stack depth for expanding macros and strings 71354ba9607SSascha Wildnerto a large, but finite number, and 71454ba9607SSascha Wildner.Xr mandoc 1 71554ba9607SSascha Wildneralso limits the length of the expanded input line. 71654ba9607SSascha WildnerDo not rely on the exact values of these limits. 71754ba9607SSascha Wildner.It Ic \&de1 Ar macroname Op Ar endmacro 71880387638SSascha WildnerDefine a 71980387638SSascha Wildner.Nm 72080387638SSascha Wildnermacro that will be executed with 72180387638SSascha Wildner.Nm 72280387638SSascha Wildnercompatibility mode switched off during macro execution. 72354ba9607SSascha WildnerThis is a groff extension. 72480387638SSascha WildnerSince 72580387638SSascha Wildner.Xr mandoc 1 72680387638SSascha Wildnerdoes not implement 72780387638SSascha Wildner.Nm 72880387638SSascha Wildnercompatibility mode at all, it handles this request as an alias for 72954ba9607SSascha Wildner.Ic \&de . 73054ba9607SSascha Wildner.It Ic \&defcolor Ar newname scheme component ... 73154ba9607SSascha WildnerDefine a color name. 73254ba9607SSascha WildnerThis is a groff extension and currently ignored. 73354ba9607SSascha Wildner.It Ic \&dei Ar macrostring Op Ar endstring 73454ba9607SSascha WildnerDefine a 73554ba9607SSascha Wildner.Nm 73654ba9607SSascha Wildnermacro, specifying the macro name indirectly (groff extension). 73754ba9607SSascha WildnerThe syntax of this request is the same as that of 73854ba9607SSascha Wildner.Ic \&de . 73954ba9607SSascha WildnerThe effect is the same as: 74054ba9607SSascha Wildner.Pp 74154ba9607SSascha Wildner.D1 Pf . Cm \&de No \e* Ns Bo Ar macrostring Bc Op \e* Ns Bq Ar endstring 74254ba9607SSascha Wildner.It Ic \&dei1 Ar macrostring Op Ar endstring 74354ba9607SSascha WildnerDefine a 74454ba9607SSascha Wildner.Nm 74554ba9607SSascha Wildnermacro that will be executed with 74654ba9607SSascha Wildner.Nm 74754ba9607SSascha Wildnercompatibility mode switched off during macro execution, 74854ba9607SSascha Wildnerspecifying the macro name indirectly (groff extension). 74954ba9607SSascha WildnerSince 75054ba9607SSascha Wildner.Xr mandoc 1 75154ba9607SSascha Wildnerdoes not implement 75254ba9607SSascha Wildner.Nm 75354ba9607SSascha Wildnercompatibility mode at all, it handles this request as an alias for 75454ba9607SSascha Wildner.Ic \&dei . 75554ba9607SSascha Wildner.It Ic \&device Ar string ... 75654ba9607SSascha Wildner.It Ic \&devicem Ar stringname 75754ba9607SSascha WildnerThese two requests only make sense with the groff-specific intermediate 75854ba9607SSascha Wildneroutput format and are unsupported. 75954ba9607SSascha Wildner.It Ic \&di Ar divname 76054ba9607SSascha WildnerBegin a diversion. 76154ba9607SSascha WildnerCurrently unsupported. 76254ba9607SSascha Wildner.It Ic \&do Ar command Op Ar argument ... 76354ba9607SSascha WildnerExecute 76454ba9607SSascha Wildner.Nm 76554ba9607SSascha Wildnerrequest or macro line with compatibility mode disabled. 76654ba9607SSascha WildnerCurrently unsupported. 76754ba9607SSascha Wildner.It Ic \&ds Ar stringname Op Oo \(dq Oc Ns Ar string 76880387638SSascha WildnerDefine a user-defined string. 76980387638SSascha WildnerThe 77054ba9607SSascha Wildner.Ar stringname 77180387638SSascha Wildnerand 77280387638SSascha Wildner.Ar string 77380387638SSascha Wildnerarguments are space-separated. 77480387638SSascha WildnerIf the 77580387638SSascha Wildner.Ar string 77680387638SSascha Wildnerbegins with a double-quote character, that character will not be part 77780387638SSascha Wildnerof the string. 77880387638SSascha WildnerAll remaining characters on the input line form the 77980387638SSascha Wildner.Ar string , 78080387638SSascha Wildnerincluding whitespace and double-quote characters, even trailing ones. 78180387638SSascha Wildner.Pp 78280387638SSascha WildnerThe 78380387638SSascha Wildner.Ar string 78480387638SSascha Wildnercan be interpolated into subsequent text by using 78554ba9607SSascha Wildner.No \e* Ns Bq Ar stringname 78680387638SSascha Wildnerfor a 78754ba9607SSascha Wildner.Ar stringname 78880387638SSascha Wildnerof arbitrary length, or \e*(NN or \e*N if the length of 78954ba9607SSascha Wildner.Ar stringname 79080387638SSascha Wildneris two or one characters, respectively. 79180387638SSascha WildnerInterpolation can be prevented by escaping the leading backslash; 79280387638SSascha Wildnerthat is, an asterisk preceded by an even number of backslashes 79380387638SSascha Wildnerdoes not trigger string interpolation. 79480387638SSascha Wildner.Pp 79580387638SSascha WildnerSince user-defined strings and macros share a common string table, 79680387638SSascha Wildnerdefining a string 79754ba9607SSascha Wildner.Ar stringname 79880387638SSascha Wildnerclobbers the macro 79954ba9607SSascha Wildner.Ar stringname , 80080387638SSascha Wildnerand the 80154ba9607SSascha Wildner.Ar stringname 80280387638SSascha Wildnerused for defining a string can also be invoked as a macro, 80380387638SSascha Wildnerin which case the following input line will be appended to the 80480387638SSascha Wildner.Ar string , 80580387638SSascha Wildnerforming a new input line passed to the 80680387638SSascha Wildner.Nm 80780387638SSascha Wildnerparser. 80880387638SSascha WildnerFor example, 80980387638SSascha Wildner.Bd -literal -offset indent 81080387638SSascha Wildner\&.ds badidea .S 81180387638SSascha Wildner\&.badidea 81280387638SSascha WildnerH SYNOPSIS 81380387638SSascha Wildner.Ed 81480387638SSascha Wildner.Pp 81580387638SSascha Wildnerinvokes the 81654ba9607SSascha Wildner.Ic SH 81780387638SSascha Wildnermacro when used in a 81880387638SSascha Wildner.Xr man 7 81980387638SSascha Wildnerdocument. 82080387638SSascha WildnerSuch abuse is of course strongly discouraged. 82154ba9607SSascha Wildner.It Ic \&ds1 Ar stringname Op Oo \(dq Oc Ns Ar string 82254ba9607SSascha WildnerDefine a user-defined string that will be expanded with 82354ba9607SSascha Wildner.Nm 82454ba9607SSascha Wildnercompatibility mode switched off during string expansion. 82554ba9607SSascha WildnerThis is a groff extension. 82654ba9607SSascha WildnerSince 82754ba9607SSascha Wildner.Xr mandoc 1 82854ba9607SSascha Wildnerdoes not implement 82954ba9607SSascha Wildner.Nm 83054ba9607SSascha Wildnercompatibility mode at all, it handles this request as an alias for 83154ba9607SSascha Wildner.Ic \&ds . 83254ba9607SSascha Wildner.It Ic \&dwh Ar dist macroname 83354ba9607SSascha WildnerSet a location trap in the current diversion. 83454ba9607SSascha WildnerThis is a Heirloom extension and currently unsupported. 83554ba9607SSascha Wildner.It Ic \&dt Op Ar dist macroname 83654ba9607SSascha WildnerSet a trap within a diversion. 83754ba9607SSascha WildnerCurrently unsupported. 83854ba9607SSascha Wildner.It Ic \&ec Op Ar char 83954ba9607SSascha WildnerEnable the escape mechanism and change the escape character. 84080387638SSascha WildnerThe 84154ba9607SSascha Wildner.Ar char 84254ba9607SSascha Wildnerargument defaults to the backslash 84354ba9607SSascha Wildner.Pq Sq \e . 84454ba9607SSascha Wildner.It Ic \&ecr 84554ba9607SSascha WildnerRestore the escape character. 84654ba9607SSascha WildnerCurrently unsupported. 84754ba9607SSascha Wildner.It Ic \&ecs 84854ba9607SSascha WildnerSave the escape character. 84954ba9607SSascha WildnerCurrently unsupported. 85054ba9607SSascha Wildner.It Ic \&el Ar body 85154ba9607SSascha WildnerThe 85254ba9607SSascha Wildner.Dq else 85380387638SSascha Wildnerhalf of an if/else conditional. 85480387638SSascha WildnerPops a result off the stack of conditional evaluations pushed by 85554ba9607SSascha Wildner.Ic \&ie 85680387638SSascha Wildnerand uses it as its conditional. 85780387638SSascha WildnerIf no stack entries are present (e.g., due to no prior 85854ba9607SSascha Wildner.Ic \&ie 85980387638SSascha Wildnercalls) 86080387638SSascha Wildnerthen false is assumed. 86180387638SSascha WildnerThe syntax of this request is similar to 86254ba9607SSascha Wildner.Ic \&if 86380387638SSascha Wildnerexcept that the conditional is missing. 86454ba9607SSascha Wildner.It Ic \&em Ar macroname 86554ba9607SSascha WildnerSet a trap at the end of input. 86654ba9607SSascha WildnerCurrently unsupported. 86754ba9607SSascha Wildner.It Ic \&EN 86860e1e752SSascha WildnerEnd an equation block. 86960e1e752SSascha WildnerSee 87054ba9607SSascha Wildner.Ic \&EQ . 87154ba9607SSascha Wildner.It Ic \&eo 87254ba9607SSascha WildnerDisable the escape mechanism completely. 87354ba9607SSascha Wildner.It Ic \&EP 87454ba9607SSascha WildnerEnd a picture started by 87554ba9607SSascha Wildner.Ic \&BP . 87654ba9607SSascha WildnerThis is a Heirloom extension and currently unsupported. 87754ba9607SSascha Wildner.It Ic \&EQ 87860e1e752SSascha WildnerBegin an equation block. 87960e1e752SSascha WildnerSee 88060e1e752SSascha Wildner.Xr eqn 7 88160e1e752SSascha Wildnerfor a description of the equation language. 88254ba9607SSascha Wildner.It Ic \&errprint Ar message 88354ba9607SSascha WildnerPrint a string like an error message. 88454ba9607SSascha WildnerThis is a Heirloom extension and currently ignored. 88554ba9607SSascha Wildner.It Ic \&ev Op Ar envname 88654ba9607SSascha WildnerSwitch to another environment. 88754ba9607SSascha WildnerCurrently unsupported. 88854ba9607SSascha Wildner.It Ic \&evc Op Ar envname 88954ba9607SSascha WildnerCopy an environment into the current environment. 89054ba9607SSascha WildnerCurrently unsupported. 89154ba9607SSascha Wildner.It Ic \&ex 89254ba9607SSascha WildnerAbort processing and exit. 89354ba9607SSascha WildnerCurrently unsupported. 89454ba9607SSascha Wildner.It Ic \&fallback Ar curfont font ... 89554ba9607SSascha WildnerSelect the fallback sequence for a font. 89654ba9607SSascha WildnerThis is a Heirloom extension and currently ignored. 89754ba9607SSascha Wildner.It Ic \&fam Op Ar familyname 8987888c61dSFranco FichtnerChange the font family. 89954ba9607SSascha WildnerThis is a groff extension and currently ignored. 90054ba9607SSascha Wildner.It Ic \&fc Op Ar delimchar Op Ar padchar 90154ba9607SSascha WildnerDefine a delimiting and a padding character for fields. 90254ba9607SSascha WildnerCurrently unsupported. 90354ba9607SSascha Wildner.It Ic \&fchar Ar glyphname Op Ar string 90454ba9607SSascha WildnerDefine a fallback glyph. 90554ba9607SSascha WildnerCurrently unsupported. 90654ba9607SSascha Wildner.It Ic \&fcolor Ar colorname 90754ba9607SSascha WildnerSet the fill color for \eD objects. 90854ba9607SSascha WildnerThis is a groff extension and currently ignored. 90954ba9607SSascha Wildner.It Ic \&fdeferlig Ar font string ... 91054ba9607SSascha WildnerDefer ligature building. 91154ba9607SSascha WildnerThis is a Heirloom extension and currently ignored. 91254ba9607SSascha Wildner.It Ic \&feature Cm + Ns | Ns Cm - Ns Ar name 91354ba9607SSascha WildnerEnable or disable an OpenType feature. 91454ba9607SSascha WildnerThis is a Heirloom extension and currently ignored. 91554ba9607SSascha Wildner.It Ic \&fi 91654ba9607SSascha WildnerBreak the output line and switch to fill mode, 91754ba9607SSascha Wildnerwhich is active by default but can be ended with the 91854ba9607SSascha Wildner.Ic \&nf 91954ba9607SSascha Wildnerrequest. 92054ba9607SSascha WildnerIn fill mode, input from subsequent input lines is added to 92154ba9607SSascha Wildnerthe same output line until the next word no longer fits, 92254ba9607SSascha Wildnerat which point the output line is broken. 92354ba9607SSascha WildnerThis request is implied by the 92454ba9607SSascha Wildner.Xr mdoc 7 92554ba9607SSascha Wildner.Ic \&Sh 92654ba9607SSascha Wildnermacro and by the 927070c62a6SFranco Fichtner.Xr man 7 92854ba9607SSascha Wildner.Ic \&SH , 92954ba9607SSascha Wildner.Ic \&SS , 93054ba9607SSascha Wildnerand 93154ba9607SSascha Wildner.Ic \&EE 93254ba9607SSascha Wildnermacros. 93354ba9607SSascha Wildner.It Ic \&fkern Ar font minkern 93454ba9607SSascha WildnerControl the use of kerning tables for a font. 93554ba9607SSascha WildnerThis is a Heirloom extension and currently ignored. 93654ba9607SSascha Wildner.It Ic \&fl 93754ba9607SSascha WildnerFlush output. 93854ba9607SSascha WildnerCurrently ignored. 93954ba9607SSascha Wildner.It Ic \&flig Ar font string char ... 94054ba9607SSascha WildnerDefine ligatures. 94154ba9607SSascha WildnerThis is a Heirloom extension and currently ignored. 94254ba9607SSascha Wildner.It Ic \&fp Ar position font Op Ar filename 94354ba9607SSascha WildnerAssign font position. 94454ba9607SSascha WildnerCurrently ignored. 94554ba9607SSascha Wildner.It Ic \&fps Ar mapname ... 94654ba9607SSascha WildnerMount a font with a special character map. 94754ba9607SSascha WildnerThis is a Heirloom extension and currently ignored. 94854ba9607SSascha Wildner.It Ic \&fschar Ar font glyphname Op Ar string 94954ba9607SSascha WildnerDefine a font-specific fallback glyph. 95054ba9607SSascha WildnerThis is a groff extension and currently unsupported. 95154ba9607SSascha Wildner.It Ic \&fspacewidth Ar font Op Ar afmunits 95254ba9607SSascha WildnerSet a font-specific width for the space character. 95354ba9607SSascha WildnerThis is a Heirloom extension and currently ignored. 95454ba9607SSascha Wildner.It Ic \&fspecial Ar curfont Op Ar font ... 95554ba9607SSascha WildnerConditionally define a special font. 95654ba9607SSascha WildnerThis is a groff extension and currently ignored. 95754ba9607SSascha Wildner.It Ic \&ft Op Ar font 95854ba9607SSascha WildnerChange the font; see 95954ba9607SSascha Wildner.Sx Font Selection . 96080387638SSascha WildnerThe 96154ba9607SSascha Wildner.Ar font 96254ba9607SSascha Wildnerargument defaults to 96354ba9607SSascha Wildner.Cm P . 96454ba9607SSascha Wildner.It Ic \&ftr Ar newname Op Ar oldname 96554ba9607SSascha WildnerTranslate font name. 96654ba9607SSascha WildnerThis is a groff extension and currently ignored. 96754ba9607SSascha Wildner.It Ic \&fzoom Ar font Op Ar permille 96854ba9607SSascha WildnerZoom font size. 96954ba9607SSascha WildnerCurrently ignored. 97054ba9607SSascha Wildner.It Ic \&gcolor Op Ar colorname 97154ba9607SSascha WildnerSet glyph color. 97254ba9607SSascha WildnerThis is a groff extension and currently ignored. 97354ba9607SSascha Wildner.It Ic \&hc Op Ar char 97454ba9607SSascha WildnerSet the hyphenation character. 97554ba9607SSascha WildnerCurrently ignored. 97654ba9607SSascha Wildner.It Ic \&hcode Ar char code ... 97754ba9607SSascha WildnerSet hyphenation codes of characters. 97854ba9607SSascha WildnerCurrently ignored. 97954ba9607SSascha Wildner.It Ic \&hidechar Ar font char ... 98054ba9607SSascha WildnerHide characters in a font. 98154ba9607SSascha WildnerThis is a Heirloom extension and currently ignored. 98254ba9607SSascha Wildner.It Ic \&hla Ar language 98354ba9607SSascha WildnerSet hyphenation language. 98454ba9607SSascha WildnerThis is a groff extension and currently ignored. 98554ba9607SSascha Wildner.It Ic \&hlm Op Ar number 98654ba9607SSascha WildnerSet maximum number of consecutive hyphenated lines. 98754ba9607SSascha WildnerCurrently ignored. 98854ba9607SSascha Wildner.It Ic \&hpf Ar filename 98954ba9607SSascha WildnerLoad hyphenation pattern file. 99054ba9607SSascha WildnerThis is a groff extension and currently ignored. 99154ba9607SSascha Wildner.It Ic \&hpfa Ar filename 99254ba9607SSascha WildnerLoad hyphenation pattern file, appending to the current patterns. 99354ba9607SSascha WildnerThis is a groff extension and currently ignored. 99454ba9607SSascha Wildner.It Ic \&hpfcode Ar code code ... 99554ba9607SSascha WildnerDefine mapping values for character codes in hyphenation patterns. 99654ba9607SSascha WildnerThis is a groff extension and currently ignored. 99754ba9607SSascha Wildner.It Ic \&hw Ar word ... 99854ba9607SSascha WildnerSpecify hyphenation points in words. 99954ba9607SSascha WildnerCurrently ignored. 100054ba9607SSascha Wildner.It Ic \&hy Op Ar mode 100154ba9607SSascha WildnerSet automatic hyphenation mode. 100254ba9607SSascha WildnerCurrently ignored. 100354ba9607SSascha Wildner.It Ic \&hylang Ar language 100454ba9607SSascha WildnerSet hyphenation language. 100554ba9607SSascha WildnerThis is a Heirloom extension and currently ignored. 100654ba9607SSascha Wildner.It Ic \&hylen Ar nchar 100754ba9607SSascha WildnerMinimum word length for hyphenation. 100854ba9607SSascha WildnerThis is a Heirloom extension and currently ignored. 100954ba9607SSascha Wildner.It Ic \&hym Op Ar length 101054ba9607SSascha WildnerSet hyphenation margin. 101154ba9607SSascha WildnerThis is a groff extension and currently ignored. 101254ba9607SSascha Wildner.It Ic \&hypp Ar penalty ... 101354ba9607SSascha WildnerDefine hyphenation penalties. 101454ba9607SSascha WildnerThis is a Heirloom extension and currently ignored. 101554ba9607SSascha Wildner.It Ic \&hys Op Ar length 101654ba9607SSascha WildnerSet hyphenation space. 101754ba9607SSascha WildnerThis is a groff extension and currently ignored. 101854ba9607SSascha Wildner.It Ic \&ie Ar condition body 101954ba9607SSascha WildnerThe 102054ba9607SSascha Wildner.Dq if 102180387638SSascha Wildnerhalf of an if/else conditional. 102280387638SSascha WildnerThe result of the conditional is pushed into a stack used by subsequent 102380387638SSascha Wildnerinvocations of 102454ba9607SSascha Wildner.Ic \&el , 102580387638SSascha Wildnerwhich may be separated by any intervening input (or not exist at all). 102680387638SSascha WildnerIts syntax is equivalent to 102754ba9607SSascha Wildner.Ic \&if . 102854ba9607SSascha Wildner.It Ic \&if Ar condition body 102954ba9607SSascha WildnerBegin a conditional. 103054ba9607SSascha WildnerThis request can also be written as follows: 103154ba9607SSascha Wildner.Bd -unfilled -offset indent 103254ba9607SSascha Wildner.Pf . Ic \&if Ar condition No \e{ Ns Ar body 103354ba9607SSascha Wildner.Ar body ... Ns \e} 1034070c62a6SFranco Fichtner.Ed 103554ba9607SSascha Wildner.Bd -unfilled -offset indent 103654ba9607SSascha Wildner.Pf . Ic \&if Ar condition No \e{\e 103754ba9607SSascha Wildner.Ar body ... 103854ba9607SSascha Wildner.Pf . No \e} 1039070c62a6SFranco Fichtner.Ed 1040070c62a6SFranco Fichtner.Pp 104154ba9607SSascha WildnerThe 104254ba9607SSascha Wildner.Ar condition 104354ba9607SSascha Wildneris a boolean expression. 1044070c62a6SFranco FichtnerCurrently, 1045070c62a6SFranco Fichtner.Xr mandoc 1 1046070c62a6SFranco Fichtnersupports the following subset of roff conditionals: 1047070c62a6SFranco Fichtner.Bl -bullet 1048070c62a6SFranco Fichtner.It 1049070c62a6SFranco FichtnerIf 1050070c62a6SFranco Fichtner.Sq \&! 105154ba9607SSascha Wildneris prefixed to 105254ba9607SSascha Wildner.Ar condition , 105354ba9607SSascha Wildnerit is logically inverted. 1054070c62a6SFranco Fichtner.It 105554ba9607SSascha WildnerIf the first character of 105654ba9607SSascha Wildner.Ar condition 105754ba9607SSascha Wildneris 1058070c62a6SFranco Fichtner.Sq n 1059070c62a6SFranco Fichtner.Pq nroff mode 1060070c62a6SFranco Fichtneror 1061070c62a6SFranco Fichtner.Sq o 1062070c62a6SFranco Fichtner.Pq odd page , 106354ba9607SSascha Wildnerit evaluates to true, and the 106454ba9607SSascha Wildner.Ar body 106554ba9607SSascha Wildnerstarts with the next character. 1066070c62a6SFranco Fichtner.It 106754ba9607SSascha WildnerIf the first character of 106854ba9607SSascha Wildner.Ar condition 106954ba9607SSascha Wildneris 1070070c62a6SFranco Fichtner.Sq e 1071070c62a6SFranco Fichtner.Pq even page , 1072070c62a6SFranco Fichtner.Sq t 1073070c62a6SFranco Fichtner.Pq troff mode , 107454ba9607SSascha Wildneror 107554ba9607SSascha Wildner.Sq v 107654ba9607SSascha Wildner.Pq vroff mode , 107754ba9607SSascha Wildnerit evaluates to false, and the 107854ba9607SSascha Wildner.Ar body 107954ba9607SSascha Wildnerstarts with the next character. 1080070c62a6SFranco Fichtner.It 108154ba9607SSascha WildnerIf the first character of 108254ba9607SSascha Wildner.Ar condition 108354ba9607SSascha Wildneris 108454ba9607SSascha Wildner.Sq c 108554ba9607SSascha Wildner.Pq character available , 108654ba9607SSascha Wildnerit evaluates to true if the following character is an ASCII character 108754ba9607SSascha Wildneror a valid character escape sequence, or to false otherwise. 108854ba9607SSascha WildnerThe 108954ba9607SSascha Wildner.Ar body 109054ba9607SSascha Wildnerstarts with the character following that next character. 109154ba9607SSascha Wildner.It 109254ba9607SSascha WildnerIf the first character of 109354ba9607SSascha Wildner.Ar condition 109454ba9607SSascha Wildneris 109554ba9607SSascha Wildner.Sq d , 109654ba9607SSascha Wildnerit evaluates to true if the rest of 109754ba9607SSascha Wildner.Ar condition 109854ba9607SSascha Wildneris the name of an existing user defined macro or string; 109954ba9607SSascha Wildnerotherwise, it evaluates to false. 110054ba9607SSascha Wildner.It 110154ba9607SSascha WildnerIf the first character of 110254ba9607SSascha Wildner.Ar condition 110354ba9607SSascha Wildneris 110454ba9607SSascha Wildner.Sq r , 110554ba9607SSascha Wildnerit evaluates to true if the rest of 110654ba9607SSascha Wildner.Ar condition 110754ba9607SSascha Wildneris the name of an existing number register; 110854ba9607SSascha Wildnerotherwise, it evaluates to false. 110954ba9607SSascha Wildner.It 111054ba9607SSascha WildnerIf the 111154ba9607SSascha Wildner.Ar condition 111254ba9607SSascha Wildnerstarts with a parenthesis or with an optionally signed 1113070c62a6SFranco Fichtnerinteger number, it is evaluated according to the rules of 1114070c62a6SFranco Fichtner.Sx Numerical expressions 1115070c62a6SFranco Fichtnerexplained below. 111654ba9607SSascha WildnerIt evaluates to true if the result is positive, 1117070c62a6SFranco Fichtneror to false if the result is zero or negative. 1118070c62a6SFranco Fichtner.It 111954ba9607SSascha WildnerOtherwise, the first character of 112054ba9607SSascha Wildner.Ar condition 112154ba9607SSascha Wildneris regarded as a delimiter and it evaluates to true if the string 112254ba9607SSascha Wildnerextending from its first to its second occurrence is equal to the 112354ba9607SSascha Wildnerstring extending from its second to its third occurrence. 1124070c62a6SFranco Fichtner.It 112554ba9607SSascha WildnerIf 112654ba9607SSascha Wildner.Ar condition 112754ba9607SSascha Wildnercannot be parsed, it evaluates to false. 1128070c62a6SFranco Fichtner.El 1129070c62a6SFranco Fichtner.Pp 113080387638SSascha WildnerIf a conditional is false, its children are not processed, but are 113180387638SSascha Wildnersyntactically interpreted to preserve the integrity of the input 113280387638SSascha Wildnerdocument. 113380387638SSascha WildnerThus, 113480387638SSascha Wildner.Pp 113580387638SSascha Wildner.D1 \&.if t .ig 113680387638SSascha Wildner.Pp 113780387638SSascha Wildnerwill discard the 113880387638SSascha Wildner.Sq \&.ig , 113980387638SSascha Wildnerwhich may lead to interesting results, but 114080387638SSascha Wildner.Pp 114180387638SSascha Wildner.D1 \&.if t .if t \e{\e 114280387638SSascha Wildner.Pp 114380387638SSascha Wildnerwill continue to syntactically interpret to the block close of the final 114480387638SSascha Wildnerconditional. 114580387638SSascha WildnerSub-conditionals, in this case, obviously inherit the truth value of 114680387638SSascha Wildnerthe parent. 114780387638SSascha Wildner.Pp 114854ba9607SSascha WildnerIf the 114954ba9607SSascha Wildner.Ar body 115054ba9607SSascha Wildnersection is begun by an escaped brace 115180387638SSascha Wildner.Sq \e{ , 1152070c62a6SFranco Fichtnerscope continues until the end of the input line containing the 1153070c62a6SFranco Fichtnermatching closing-brace escape sequence 1154070c62a6SFranco Fichtner.Sq \e} . 115554ba9607SSascha WildnerIf the 115654ba9607SSascha Wildner.Ar body 115754ba9607SSascha Wildneris not enclosed in braces, scope continues until the end of the line. 115854ba9607SSascha WildnerIf the 115954ba9607SSascha Wildner.Ar condition 116054ba9607SSascha Wildneris followed by a 116154ba9607SSascha Wildner.Ar body 116254ba9607SSascha Wildneron the same line, whether after a brace or not, then requests and macros 116380387638SSascha Wildner.Em must 116480387638SSascha Wildnerbegin with a control character. 116580387638SSascha WildnerIt is generally more intuitive, in this case, to write 116654ba9607SSascha Wildner.Bd -unfilled -offset indent 116754ba9607SSascha Wildner.Pf . Ic \&if Ar condition No \e{\e 116854ba9607SSascha Wildner.Pf . Ar request 116954ba9607SSascha Wildner.Pf . No \e} 117080387638SSascha Wildner.Ed 117180387638SSascha Wildner.Pp 117280387638SSascha Wildnerthan having the request or macro follow as 117380387638SSascha Wildner.Pp 117454ba9607SSascha Wildner.D1 Pf . Ic \&if Ar condition Pf \e{. Ar request 117580387638SSascha Wildner.Pp 117680387638SSascha WildnerThe scope of a conditional is always parsed, but only executed if the 117780387638SSascha Wildnerconditional evaluates to true. 117880387638SSascha Wildner.Pp 1179a4c7eb57SSascha WildnerNote that the 118080387638SSascha Wildner.Sq \e} 1181a4c7eb57SSascha Wildneris converted into a zero-width escape sequence if not passed as a 1182a4c7eb57SSascha Wildnerstandalone macro 1183a4c7eb57SSascha Wildner.Sq \&.\e} . 1184a4c7eb57SSascha WildnerFor example, 1185a4c7eb57SSascha Wildner.Pp 1186a4c7eb57SSascha Wildner.D1 \&.Fl a \e} b 1187a4c7eb57SSascha Wildner.Pp 1188a4c7eb57SSascha Wildnerwill result in 118980387638SSascha Wildner.Sq \e} 1190a4c7eb57SSascha Wildnerbeing considered an argument of the 1191a4c7eb57SSascha Wildner.Sq \&Fl 1192a4c7eb57SSascha Wildnermacro. 119354ba9607SSascha Wildner.It Ic \&ig Op Ar endmacro 119480387638SSascha WildnerIgnore input. 119580387638SSascha WildnerIts syntax can be either 119680387638SSascha Wildner.Bd -literal -offset indent 119780387638SSascha Wildner.Pf . Cm \&ig 119880387638SSascha Wildner.Ar ignored text 119980387638SSascha Wildner\&.. 120080387638SSascha Wildner.Ed 120180387638SSascha Wildner.Pp 120280387638SSascha Wildneror 120380387638SSascha Wildner.Bd -literal -offset indent 120454ba9607SSascha Wildner.Pf . Cm \&ig Ar endmacro 120580387638SSascha Wildner.Ar ignored text 120654ba9607SSascha Wildner.Pf . Ar endmacro 120780387638SSascha Wildner.Ed 120880387638SSascha Wildner.Pp 120980387638SSascha WildnerIn the first case, input is ignored until a 121080387638SSascha Wildner.Sq \&.. 121180387638SSascha Wildnerrequest is encountered on its own line. 121280387638SSascha WildnerIn the second case, input is ignored until the specified 121354ba9607SSascha Wildner.Sq Pf . Ar endmacro 121454ba9607SSascha Wildneris encountered. 121580387638SSascha WildnerDo not use the escape character 121680387638SSascha Wildner.Sq \e 121780387638SSascha Wildneranywhere in the definition of 121854ba9607SSascha Wildner.Ar endmacro ; 121980387638SSascha Wildnerit would cause very strange behaviour. 122080387638SSascha Wildner.Pp 122180387638SSascha WildnerWhen the 122254ba9607SSascha Wildner.Ar endmacro 122354ba9607SSascha Wildneris a roff request or a roff macro, like in 122480387638SSascha Wildner.Pp 122580387638SSascha Wildner.D1 \&.ig if 122680387638SSascha Wildner.Pp 122780387638SSascha Wildnerthe subsequent invocation of 122854ba9607SSascha Wildner.Ic \&if 122980387638SSascha Wildnerwill first terminate the 123080387638SSascha Wildner.Ar ignored text , 123180387638SSascha Wildnerthen be invoked as usual. 123280387638SSascha WildnerOtherwise, it only terminates the 123380387638SSascha Wildner.Ar ignored text , 123480387638SSascha Wildnerand arguments following it or the 123580387638SSascha Wildner.Sq \&.. 123680387638SSascha Wildnerrequest are discarded. 123754ba9607SSascha Wildner.It Ic \&in Op Oo Cm + Ns | Ns Cm - Oc Ns Ar width 123854ba9607SSascha WildnerChange indentation. 123954ba9607SSascha WildnerSee 124054ba9607SSascha Wildner.Xr man 7 . 124154ba9607SSascha WildnerIgnored in 124254ba9607SSascha Wildner.Xr mdoc 7 . 124354ba9607SSascha Wildner.It Ic \&index Ar register stringname substring 124454ba9607SSascha WildnerFind a substring in a string. 124554ba9607SSascha WildnerThis is a Heirloom extension and currently unsupported. 124654ba9607SSascha Wildner.It Ic \&it Ar expression macro 124754ba9607SSascha WildnerSet an input line trap. 124854ba9607SSascha WildnerThe named 124954ba9607SSascha Wildner.Ar macro 125054ba9607SSascha Wildnerwill be invoked after processing the number of input text lines 125154ba9607SSascha Wildnerspecified by the numerical 125254ba9607SSascha Wildner.Ar expression . 125354ba9607SSascha WildnerWhile evaluating the 125454ba9607SSascha Wildner.Ar expression , 125554ba9607SSascha Wildnerthe unit suffixes described below 125654ba9607SSascha Wildner.Sx Scaling Widths 125754ba9607SSascha Wildnerare ignored. 125854ba9607SSascha Wildner.It Ic \&itc Ar expression macro 125954ba9607SSascha WildnerSet an input line trap, not counting lines ending with \ec. 126054ba9607SSascha WildnerCurrently unsupported. 126154ba9607SSascha Wildner.It Ic \&IX Ar class keystring 126254ba9607SSascha WildnerTo support the generation of a table of contents, 126354ba9607SSascha Wildner.Xr pod2man 1 126454ba9607SSascha Wildneremits this user-defined macro, usually without defining it. 126554ba9607SSascha WildnerTo avoid reporting large numbers of spurious errors, 126654ba9607SSascha Wildner.Xr mandoc 1 126754ba9607SSascha Wildnerignores it. 126854ba9607SSascha Wildner.It Ic \&kern Op Cm 1 | 0 126954ba9607SSascha WildnerSwitch kerning on or off. 127054ba9607SSascha WildnerCurrently ignored. 127154ba9607SSascha Wildner.It Ic \&kernafter Ar font char ... afmunits ... 127254ba9607SSascha WildnerIncrease kerning after some characters. 127354ba9607SSascha WildnerThis is a Heirloom extension and currently ignored. 127454ba9607SSascha Wildner.It Ic \&kernbefore Ar font char ... afmunits ... 127554ba9607SSascha WildnerIncrease kerning before some characters. 127654ba9607SSascha WildnerThis is a Heirloom extension and currently ignored. 127754ba9607SSascha Wildner.It Ic \&kernpair Ar font char ... font char ... afmunits 127854ba9607SSascha WildnerAdd a kerning pair to the kerning table. 127954ba9607SSascha WildnerThis is a Heirloom extension and currently ignored. 128054ba9607SSascha Wildner.It Ic \&lc Op Ar glyph 128154ba9607SSascha WildnerDefine a leader repetition character. 128254ba9607SSascha WildnerCurrently unsupported. 128354ba9607SSascha Wildner.It Ic \&lc_ctype Ar localename 128454ba9607SSascha WildnerSet the 128554ba9607SSascha Wildner.Dv LC_CTYPE 128654ba9607SSascha Wildnerlocale. 128754ba9607SSascha WildnerThis is a Heirloom extension and currently unsupported. 128854ba9607SSascha Wildner.It Ic \&lds Ar macroname string 128954ba9607SSascha WildnerDefine a local string. 129054ba9607SSascha WildnerThis is a Heirloom extension and currently unsupported. 129154ba9607SSascha Wildner.It Ic \&length Ar register string 129254ba9607SSascha WildnerCount the number of input characters in a string. 129354ba9607SSascha WildnerCurrently unsupported. 129454ba9607SSascha Wildner.It Ic \&letadj Ar lspmin lshmin letss lspmax lshmax 129554ba9607SSascha WildnerDynamic letter spacing and reshaping. 129654ba9607SSascha WildnerThis is a Heirloom extension and currently ignored. 129754ba9607SSascha Wildner.It Ic \&lf Ar lineno Op Ar filename 129854ba9607SSascha WildnerChange the line number for error messages. 129954ba9607SSascha WildnerIgnored because insecure. 130054ba9607SSascha Wildner.It Ic \&lg Op Cm 1 | 0 130154ba9607SSascha WildnerSwitch the ligature mechanism on or off. 130254ba9607SSascha WildnerCurrently ignored. 130354ba9607SSascha Wildner.It Ic \&lhang Ar font char ... afmunits 130454ba9607SSascha WildnerHang characters at left margin. 130554ba9607SSascha WildnerThis is a Heirloom extension and currently ignored. 130654ba9607SSascha Wildner.It Ic \&linetabs Op Cm 1 | 0 130754ba9607SSascha WildnerEnable or disable line-tabs mode. 130854ba9607SSascha WildnerThis is a groff extension and currently unsupported. 130954ba9607SSascha Wildner.It Ic \&ll Op Oo Cm + Ns | Ns Cm - Oc Ns Ar width 1310070c62a6SFranco FichtnerChange the output line length. 1311070c62a6SFranco FichtnerIf the 1312070c62a6SFranco Fichtner.Ar width 1313070c62a6SFranco Fichtnerargument is omitted, the line length is reset to its previous value. 1314070c62a6SFranco FichtnerThe default setting for terminal output is 78n. 1315070c62a6SFranco FichtnerIf a sign is given, the line length is added to or subtracted from; 1316070c62a6SFranco Fichtnerotherwise, it is set to the provided value. 1317070c62a6SFranco FichtnerUsing this request in new manuals is discouraged for several reasons, 1318070c62a6SFranco Fichtneramong others because it overrides the 1319070c62a6SFranco Fichtner.Xr mandoc 1 1320070c62a6SFranco Fichtner.Fl O Cm width 1321070c62a6SFranco Fichtnercommand line option. 132254ba9607SSascha Wildner.It Ic \&lnr Ar register Oo Cm + Ns | Ns Cm - Oc Ns Ar value Op Ar increment 132354ba9607SSascha WildnerSet local number register. 132454ba9607SSascha WildnerThis is a Heirloom extension and currently unsupported. 132554ba9607SSascha Wildner.It Ic \&lnrf Ar register Oo Cm + Ns | Ns Cm - Oc Ns Ar value Op Ar increment 132654ba9607SSascha WildnerSet local floating-point register. 132754ba9607SSascha WildnerThis is a Heirloom extension and currently unsupported. 132854ba9607SSascha Wildner.It Ic \&lpfx Ar string 132954ba9607SSascha WildnerSet a line prefix. 133054ba9607SSascha WildnerThis is a Heirloom extension and currently unsupported. 133154ba9607SSascha Wildner.It Ic \&ls Op Ar factor 133254ba9607SSascha WildnerSet line spacing. 133354ba9607SSascha WildnerIt takes one integer argument specifying the vertical distance of 133454ba9607SSascha Wildnersubsequent output text lines measured in v units. 133554ba9607SSascha WildnerCurrently ignored. 133654ba9607SSascha Wildner.It Ic \&lsm Ar macroname 133754ba9607SSascha WildnerSet a leading spaces trap. 133854ba9607SSascha WildnerThis is a groff extension and currently unsupported. 133954ba9607SSascha Wildner.It Ic \< Op Oo Cm + Ns | Ns Cm - Oc Ns Ar width 134054ba9607SSascha WildnerSet title line length. 134154ba9607SSascha WildnerCurrently ignored. 134254ba9607SSascha Wildner.It Ic \&mc Ar glyph Op Ar dist 134354ba9607SSascha WildnerPrint margin character in the right margin. 134454ba9607SSascha WildnerThe 134554ba9607SSascha Wildner.Ar dist 134654ba9607SSascha Wildneris currently ignored; instead, 1n is used. 134754ba9607SSascha Wildner.It Ic \&mediasize Ar media 134854ba9607SSascha WildnerSet the device media size. 134954ba9607SSascha WildnerThis is a Heirloom extension and currently ignored. 135054ba9607SSascha Wildner.It Ic \&minss Ar width 135154ba9607SSascha WildnerSet minimum word space. 135254ba9607SSascha WildnerThis is a Heirloom extension and currently ignored. 135354ba9607SSascha Wildner.It Ic \&mk Op Ar register 135454ba9607SSascha WildnerMark vertical position. 135554ba9607SSascha WildnerCurrently ignored. 135654ba9607SSascha Wildner.It Ic \&mso Ar filename 135754ba9607SSascha WildnerLoad a macro file using the search path. 135854ba9607SSascha WildnerIgnored because insecure. 135954ba9607SSascha Wildner.It Ic \&na 136054ba9607SSascha WildnerDisable adjusting without changing the adjustment mode. 136154ba9607SSascha WildnerCurrently ignored. 136254ba9607SSascha Wildner.It Ic \&ne Op Ar height 136380387638SSascha WildnerDeclare the need for the specified minimum vertical space 136480387638SSascha Wildnerbefore the next trap or the bottom of the page. 136554ba9607SSascha WildnerCurrently ignored. 136654ba9607SSascha Wildner.It Ic \&nf 136754ba9607SSascha WildnerBreak the output line and switch to no-fill mode. 136854ba9607SSascha WildnerSubsequent input lines are kept together on the same output line 136954ba9607SSascha Wildnereven when exceeding the right margin, 137054ba9607SSascha Wildnerand line breaks in subsequent input cause output line breaks. 137154ba9607SSascha WildnerThis request is implied by the 137254ba9607SSascha Wildner.Xr mdoc 7 137354ba9607SSascha Wildner.Ic \&Bd Fl unfilled 137454ba9607SSascha Wildnerand 137554ba9607SSascha Wildner.Ic \&Bd Fl literal 137654ba9607SSascha Wildnermacros and by the 137754ba9607SSascha Wildner.Xr man 7 137854ba9607SSascha Wildner.Ic \&EX 137954ba9607SSascha Wildnermacro. 138054ba9607SSascha WildnerThe 138154ba9607SSascha Wildner.Ic \&fi 138254ba9607SSascha Wildnerrequest switches back to the default fill mode. 138354ba9607SSascha Wildner.It Ic \&nh 138480387638SSascha WildnerTurn off automatic hyphenation mode. 138554ba9607SSascha WildnerCurrently ignored. 138654ba9607SSascha Wildner.It Ic \&nhychar Ar char ... 138754ba9607SSascha WildnerDefine hyphenation-inhibiting characters. 138854ba9607SSascha WildnerThis is a Heirloom extension and currently ignored. 138954ba9607SSascha Wildner.It Ic \&nm Op Ar start Op Ar inc Op Ar space Op Ar indent 139054ba9607SSascha WildnerPrint line numbers. 139154ba9607SSascha WildnerCurrently unsupported. 139254ba9607SSascha Wildner.It Ic \&nn Op Ar number 139354ba9607SSascha WildnerTemporarily turn off line numbering. 139454ba9607SSascha WildnerCurrently unsupported. 139554ba9607SSascha Wildner.It Ic \&nop Ar body 139654ba9607SSascha WildnerExecute the rest of the input line as a request, macro, or text line, 139754ba9607SSascha Wildnerskipping the 139854ba9607SSascha Wildner.Ic \&nop 139954ba9607SSascha Wildnerrequest and any space characters immediately following it. 140054ba9607SSascha WildnerThis is mostly used to indent text lines inside macro definitions. 140154ba9607SSascha Wildner.It Ic \&nr Ar register Oo Cm + Ns | Ns Cm - Oc Ns Ar expression Op Ar stepsize 14027888c61dSFranco FichtnerDefine or change a register. 140380387638SSascha WildnerA register is an arbitrary string value that defines some sort of state, 140480387638SSascha Wildnerwhich influences parsing and/or formatting. 1405070c62a6SFranco FichtnerFor the syntax of 1406070c62a6SFranco Fichtner.Ar expression , 1407070c62a6SFranco Fichtnersee 1408070c62a6SFranco Fichtner.Sx Numerical expressions 1409070c62a6SFranco Fichtnerbelow. 14107888c61dSFranco FichtnerIf it is prefixed by a sign, the register will be 14117888c61dSFranco Fichtnerincremented or decremented instead of assigned to. 14127888c61dSFranco Fichtner.Pp 141354ba9607SSascha WildnerThe 141454ba9607SSascha Wildner.Ar stepsize 141554ba9607SSascha Wildneris used by the 141654ba9607SSascha Wildner.Ic \en+ 141754ba9607SSascha Wildnerauto-increment feature. 141854ba9607SSascha WildnerIt remains unchanged when omitted while changing an existing register, 141954ba9607SSascha Wildnerand it defaults to 0 when defining a new register. 142054ba9607SSascha Wildner.Pp 142154ba9607SSascha WildnerThe following 142254ba9607SSascha Wildner.Ar register 14237888c61dSFranco Fichtneris handled specially: 142480387638SSascha Wildner.Bl -tag -width Ds 142580387638SSascha Wildner.It Cm nS 142680387638SSascha WildnerIf set to a positive integer value, certain 142780387638SSascha Wildner.Xr mdoc 7 142880387638SSascha Wildnermacros will behave in the same way as in the 142980387638SSascha Wildner.Em SYNOPSIS 143080387638SSascha Wildnersection. 143180387638SSascha WildnerIf set to 0, these macros will behave in the same way as outside the 143280387638SSascha Wildner.Em SYNOPSIS 143380387638SSascha Wildnersection, even when called within the 143480387638SSascha Wildner.Em SYNOPSIS 143580387638SSascha Wildnersection itself. 143680387638SSascha WildnerNote that starting a new 143780387638SSascha Wildner.Xr mdoc 7 143880387638SSascha Wildnersection with the 143954ba9607SSascha Wildner.Ic \&Sh 144080387638SSascha Wildnermacro will reset this register. 144180387638SSascha Wildner.El 144254ba9607SSascha Wildner.It Xo 144354ba9607SSascha Wildner.Ic \&nrf Ar register Oo Cm + Ns | Ns Cm - Oc Ns Ar expression 144454ba9607SSascha Wildner.Op Ar increment 144554ba9607SSascha Wildner.Xc 144654ba9607SSascha WildnerDefine or change a floating-point register. 144754ba9607SSascha WildnerThis is a Heirloom extension and currently unsupported. 144854ba9607SSascha Wildner.It Ic \&nroff 144954ba9607SSascha WildnerForce nroff mode. 145054ba9607SSascha WildnerThis is a groff extension and currently ignored. 145154ba9607SSascha Wildner.It Ic \&ns 145260e1e752SSascha WildnerTurn on no-space mode. 145354ba9607SSascha WildnerCurrently ignored. 145454ba9607SSascha Wildner.It Ic \&nx Op Ar filename 145554ba9607SSascha WildnerAbort processing of the current input file and process another one. 145654ba9607SSascha WildnerIgnored because insecure. 145754ba9607SSascha Wildner.It Ic \&open Ar stream file 145854ba9607SSascha WildnerOpen a file for writing. 145954ba9607SSascha WildnerIgnored because insecure. 146054ba9607SSascha Wildner.It Ic \&opena Ar stream file 146154ba9607SSascha WildnerOpen a file for appending. 146254ba9607SSascha WildnerIgnored because insecure. 146354ba9607SSascha Wildner.It Ic \&os 146454ba9607SSascha WildnerOutput saved vertical space. 146554ba9607SSascha WildnerCurrently ignored. 146654ba9607SSascha Wildner.It Ic \&output Ar string 146754ba9607SSascha WildnerOutput directly to intermediate output. 146854ba9607SSascha WildnerNot supported. 146954ba9607SSascha Wildner.It Ic \&padj Op Cm 1 | 0 147054ba9607SSascha WildnerGlobally control paragraph-at-once adjustment. 147154ba9607SSascha WildnerThis is a Heirloom extension and currently ignored. 147254ba9607SSascha Wildner.It Ic \&papersize Ar media 147354ba9607SSascha WildnerSet the paper size. 147454ba9607SSascha WildnerThis is a Heirloom extension and currently ignored. 147554ba9607SSascha Wildner.It Ic \&pc Op Ar char 147654ba9607SSascha WildnerChange the page number character. 147754ba9607SSascha WildnerCurrently ignored. 147854ba9607SSascha Wildner.It Ic \&pev 147954ba9607SSascha WildnerPrint environments. 148054ba9607SSascha WildnerThis is a groff extension and currently ignored. 148154ba9607SSascha Wildner.It Ic \&pi Ar command 148254ba9607SSascha WildnerPipe output to a shell command. 148354ba9607SSascha WildnerIgnored because insecure. 148454ba9607SSascha Wildner.It Ic \&PI 148554ba9607SSascha WildnerLow-level request used by 148654ba9607SSascha Wildner.Ic \&BP . 148754ba9607SSascha WildnerThis is a Heirloom extension and currently unsupported. 148854ba9607SSascha Wildner.It Ic \&pl Op Oo Cm + Ns | Ns Cm - Oc Ns Ar height 148954ba9607SSascha WildnerChange page length. 149054ba9607SSascha WildnerCurrently ignored. 149154ba9607SSascha Wildner.It Ic \&pm 149254ba9607SSascha WildnerPrint names and sizes of macros, strings, and diversions 149354ba9607SSascha Wildnerto standard error output. 149454ba9607SSascha WildnerCurrently ignored. 149554ba9607SSascha Wildner.It Ic \&pn Oo Cm + Ns | Ns Cm - Oc Ns Ar number 149654ba9607SSascha WildnerChange the page number of the next page. 149754ba9607SSascha WildnerCurrently ignored. 149854ba9607SSascha Wildner.It Ic \&pnr 149954ba9607SSascha WildnerPrint all number registers on standard error output. 150054ba9607SSascha WildnerCurrently ignored. 150154ba9607SSascha Wildner.It Ic \&po Op Oo Cm + Ns | Ns Cm - Oc Ns Ar offset 150254ba9607SSascha WildnerSet a horizontal page offset. 150354ba9607SSascha WildnerIf no argument is specified, the page offset is reverted to its 150454ba9607SSascha Wildnerprevious value. 150554ba9607SSascha WildnerIf a sign is specified, the new page offset is calculated relative 150654ba9607SSascha Wildnerto the current one; otherwise, it is absolute. 150754ba9607SSascha WildnerThe argument follows the syntax of 150854ba9607SSascha Wildner.Sx Scaling Widths 150954ba9607SSascha Wildnerand the default scaling unit is 151054ba9607SSascha Wildner.Cm m . 151154ba9607SSascha Wildner.It Ic \&ps Op Oo Cm + Ns | Ns Cm - Oc Ns size 151260e1e752SSascha WildnerChange point size. 151354ba9607SSascha WildnerCurrently ignored. 151454ba9607SSascha Wildner.It Ic \&psbb Ar filename 151554ba9607SSascha WildnerRetrieve the bounding box of a PostScript file. 151654ba9607SSascha WildnerCurrently unsupported. 151754ba9607SSascha Wildner.It Ic \&pshape Ar indent length ... 151854ba9607SSascha WildnerSet a special shape for the current paragraph. 151954ba9607SSascha WildnerThis is a Heirloom extension and currently unsupported. 152054ba9607SSascha Wildner.It Ic \&pso Ar command 152154ba9607SSascha WildnerInclude output of a shell command. 152254ba9607SSascha WildnerIgnored because insecure. 152354ba9607SSascha Wildner.It Ic \&ptr 152454ba9607SSascha WildnerPrint the names and positions of all traps on standard error output. 152554ba9607SSascha WildnerThis is a groff extension and currently ignored. 152654ba9607SSascha Wildner.It Ic \&pvs Op Oo Cm + Ns | Ns Cm - Oc Ns Ar height 152754ba9607SSascha WildnerChange post-vertical spacing. 152854ba9607SSascha WildnerThis is a groff extension and currently ignored. 152954ba9607SSascha Wildner.It Ic \&rchar Ar glyph ... 153054ba9607SSascha WildnerRemove glyph definitions. 153154ba9607SSascha WildnerCurrently unsupported. 153254ba9607SSascha Wildner.It Ic \&rd Op Ar prompt Op Ar argument ... 153354ba9607SSascha WildnerRead from standard input. 153454ba9607SSascha WildnerCurrently ignored. 153554ba9607SSascha Wildner.It Ic \&recursionlimit Ar maxrec maxtail 153654ba9607SSascha WildnerSet the maximum stack depth for recursive macros. 153754ba9607SSascha WildnerThis is a Heirloom extension and currently ignored. 153854ba9607SSascha Wildner.It Ic \&return Op Ar twice 153954ba9607SSascha WildnerExit the presently executed macro and return to the caller. 154054ba9607SSascha WildnerThe argument is currently ignored. 154154ba9607SSascha Wildner.It Ic \&rfschar Ar font glyph ... 154254ba9607SSascha WildnerRemove font-specific fallback glyph definitions. 154354ba9607SSascha WildnerCurrently unsupported. 154454ba9607SSascha Wildner.It Ic \&rhang Ar font char ... afmunits 154554ba9607SSascha WildnerHang characters at right margin. 154654ba9607SSascha WildnerThis is a Heirloom extension and currently ignored. 154754ba9607SSascha Wildner.It Ic \&rj Op Ar N 154854ba9607SSascha WildnerJustify the next 154954ba9607SSascha Wildner.Ar N 155054ba9607SSascha Wildnerinput lines to the right margin without filling. 155154ba9607SSascha Wildner.Ar N 155254ba9607SSascha Wildnerdefaults to 1. 155354ba9607SSascha WildnerAn argument of 0 or less ends right adjustment. 155454ba9607SSascha Wildner.It Ic \&rm Ar macroname 1555070c62a6SFranco FichtnerRemove a request, macro or string. 155654ba9607SSascha Wildner.It Ic \&rn Ar oldname newname 155754ba9607SSascha WildnerRename a request, macro, diversion, or string. 155854ba9607SSascha WildnerIn 155954ba9607SSascha Wildner.Xr mandoc 1 , 156054ba9607SSascha Wildneruser-defined macros, 156154ba9607SSascha Wildner.Xr mdoc 7 156254ba9607SSascha Wildnerand 156354ba9607SSascha Wildner.Xr man 7 156454ba9607SSascha Wildnermacros, and user-defined strings can be renamed, but renaming of 156554ba9607SSascha Wildnerpredefined strings and of 156654ba9607SSascha Wildner.Nm 156754ba9607SSascha Wildnerrequests is not supported, and diversions are not implemented at all. 156854ba9607SSascha Wildner.It Ic \&rnn Ar oldname newname 156954ba9607SSascha WildnerRename a number register. 157054ba9607SSascha WildnerCurrently unsupported. 157154ba9607SSascha Wildner.It Ic \&rr Ar register 1572070c62a6SFranco FichtnerRemove a register. 157354ba9607SSascha Wildner.It Ic \&rs 157454ba9607SSascha WildnerEnd no-space mode. 157554ba9607SSascha WildnerCurrently ignored. 157654ba9607SSascha Wildner.It Ic \&rt Op Ar dist 157754ba9607SSascha WildnerReturn to marked vertical position. 157854ba9607SSascha WildnerCurrently ignored. 157954ba9607SSascha Wildner.It Ic \&schar Ar glyph Op Ar string 158054ba9607SSascha WildnerDefine global fallback glyph. 158154ba9607SSascha WildnerThis is a groff extension and currently unsupported. 158254ba9607SSascha Wildner.It Ic \&sentchar Ar char ... 158354ba9607SSascha WildnerDefine sentence-ending characters. 158454ba9607SSascha WildnerThis is a Heirloom extension and currently ignored. 158554ba9607SSascha Wildner.It Ic \&shc Op Ar glyph 158654ba9607SSascha WildnerChange the soft hyphen character. 158754ba9607SSascha WildnerCurrently ignored. 158854ba9607SSascha Wildner.It Ic \&shift Op Ar number 158954ba9607SSascha WildnerShift macro arguments 159054ba9607SSascha Wildner.Ar number 159154ba9607SSascha Wildnertimes, by default once: \e\e$i becomes what \e\e$i+number was. 159254ba9607SSascha WildnerAlso decrement \en(.$ by 159354ba9607SSascha Wildner.Ar number . 159454ba9607SSascha Wildner.It Ic \&sizes Ar size ... 159554ba9607SSascha WildnerDefine permissible point sizes. 159654ba9607SSascha WildnerThis is a groff extension and currently ignored. 159754ba9607SSascha Wildner.It Ic \&so Ar filename 159880387638SSascha WildnerInclude a source file. 159954ba9607SSascha WildnerThe file is read and its contents processed as input in place of the 160054ba9607SSascha Wildner.Ic \&so 160180387638SSascha Wildnerrequest line. 1602a4c7eb57SSascha WildnerTo avoid inadvertent inclusion of unrelated files, 160380387638SSascha Wildner.Xr mandoc 1 160480387638SSascha Wildneronly accepts relative paths not containing the strings 160580387638SSascha Wildner.Qq ../ 160680387638SSascha Wildnerand 160780387638SSascha Wildner.Qq /.. . 160836342e81SSascha Wildner.Pp 160936342e81SSascha WildnerThis request requires 161036342e81SSascha Wildner.Xr man 1 161136342e81SSascha Wildnerto change to the right directory before calling 161236342e81SSascha Wildner.Xr mandoc 1 , 161336342e81SSascha Wildnerper convention to the root of the manual tree. 161436342e81SSascha WildnerTypical usage looks like: 161536342e81SSascha Wildner.Pp 161636342e81SSascha Wildner.Dl \&.so man3/Xcursor.3 161736342e81SSascha Wildner.Pp 161836342e81SSascha WildnerAs the whole concept is rather fragile, the use of 161954ba9607SSascha Wildner.Ic \&so 162036342e81SSascha Wildneris discouraged. 162136342e81SSascha WildnerUse 162236342e81SSascha Wildner.Xr ln 1 162336342e81SSascha Wildnerinstead. 162454ba9607SSascha Wildner.It Ic \&sp Op Ar height 162554ba9607SSascha WildnerBreak the output line and emit vertical space. 162654ba9607SSascha WildnerThe argument follows the syntax of 162754ba9607SSascha Wildner.Sx Scaling Widths 162854ba9607SSascha Wildnerand defaults to one blank line 162954ba9607SSascha Wildner.Pq Li 1v . 163054ba9607SSascha Wildner.It Ic \&spacewidth Op Cm 1 | 0 163154ba9607SSascha WildnerSet the space width from the font metrics file. 163254ba9607SSascha WildnerThis is a Heirloom extension and currently ignored. 163354ba9607SSascha Wildner.It Ic \&special Op Ar font ... 163454ba9607SSascha WildnerDefine a special font. 163554ba9607SSascha WildnerThis is a groff extension and currently ignored. 163654ba9607SSascha Wildner.It Ic \&spreadwarn Op Ar width 163754ba9607SSascha WildnerWarn about wide spacing between words. 163854ba9607SSascha WildnerCurrently ignored. 163954ba9607SSascha Wildner.It Ic \&ss Ar wordspace Op Ar sentencespace 164054ba9607SSascha WildnerSet space character size. 164154ba9607SSascha WildnerCurrently ignored. 164254ba9607SSascha Wildner.It Ic \&sty Ar position style 164354ba9607SSascha WildnerAssociate style with a font position. 164454ba9607SSascha WildnerThis is a groff extension and currently ignored. 164554ba9607SSascha Wildner.It Ic \&substring Ar stringname startpos Op Ar endpos 164654ba9607SSascha WildnerReplace a user-defined string with a substring. 164754ba9607SSascha WildnerCurrently unsupported. 164854ba9607SSascha Wildner.It Ic \&sv Op Ar height 164954ba9607SSascha WildnerSave vertical space. 165054ba9607SSascha WildnerCurrently ignored. 165154ba9607SSascha Wildner.It Ic \&sy Ar command 165254ba9607SSascha WildnerExecute shell command. 165354ba9607SSascha WildnerIgnored because insecure. 165454ba9607SSascha Wildner.It Ic \&T& 165554ba9607SSascha WildnerRe-start a table layout, retaining the options of the prior table 165654ba9607SSascha Wildnerinvocation. 165754ba9607SSascha WildnerSee 165854ba9607SSascha Wildner.Ic \&TS . 165954ba9607SSascha Wildner.It Ic \&ta Op Ar width ... Op Cm T Ar width ... 166060e1e752SSascha WildnerSet tab stops. 166154ba9607SSascha WildnerEach 166254ba9607SSascha Wildner.Ar width 166354ba9607SSascha Wildnerargument follows the syntax of 166454ba9607SSascha Wildner.Sx Scaling Widths . 166554ba9607SSascha WildnerIf prefixed by a plus sign, it is relative to the previous tab stop. 166654ba9607SSascha WildnerThe arguments after the 166754ba9607SSascha Wildner.Cm T 166854ba9607SSascha Wildnermarker are used repeatedly as often as needed; for each reuse, 166954ba9607SSascha Wildnerthey are taken relative to the last previously established tab stop. 167054ba9607SSascha WildnerWhen 167154ba9607SSascha Wildner.Ic \&ta 167254ba9607SSascha Wildneris called without arguments, all tab stops are cleared. 167354ba9607SSascha Wildner.It Ic \&tc Op Ar glyph 167454ba9607SSascha WildnerChange tab repetition character. 167554ba9607SSascha WildnerCurrently unsupported. 167654ba9607SSascha Wildner.It Ic \&TE 167754ba9607SSascha WildnerEnd a table context. 167854ba9607SSascha WildnerSee 167954ba9607SSascha Wildner.Ic \&TS . 168054ba9607SSascha Wildner.It Ic \&ti Oo Cm + Ns | Ns Cm - Oc Ns Ar width 168154ba9607SSascha WildnerBreak the output line and indent the next output line by 168254ba9607SSascha Wildner.Ar width . 168354ba9607SSascha WildnerIf a sign is specified, the temporary indentation is calculated 168454ba9607SSascha Wildnerrelative to the current indentation; otherwise, it is absolute. 168554ba9607SSascha WildnerThe argument follows the syntax of 168654ba9607SSascha Wildner.Sx Scaling Widths 168754ba9607SSascha Wildnerand the default scaling unit is 168854ba9607SSascha Wildner.Cm m . 168954ba9607SSascha Wildner.It Ic \&tkf Ar font minps width1 maxps width2 169054ba9607SSascha WildnerEnable track kerning for a font. 169154ba9607SSascha WildnerCurrently ignored. 169254ba9607SSascha Wildner.It Ic \&tl No \& Ap Ar left Ap Ar center Ap Ar right Ap 169354ba9607SSascha WildnerPrint a title line. 169454ba9607SSascha WildnerCurrently unsupported. 169554ba9607SSascha Wildner.It Ic \&tm Ar string 169654ba9607SSascha WildnerPrint to standard error output. 169754ba9607SSascha WildnerCurrently ignored. 169854ba9607SSascha Wildner.It Ic \&tm1 Ar string 169954ba9607SSascha WildnerPrint to standard error output, allowing leading blanks. 170054ba9607SSascha WildnerThis is a groff extension and currently ignored. 170154ba9607SSascha Wildner.It Ic \&tmc Ar string 170254ba9607SSascha WildnerPrint to standard error output without a trailing newline. 170354ba9607SSascha WildnerThis is a groff extension and currently ignored. 170454ba9607SSascha Wildner.It Ic \&tr Ar glyph glyph ... 170580387638SSascha WildnerOutput character translation. 170654ba9607SSascha WildnerThe first glyph in each pair is replaced by the second one. 170754ba9607SSascha WildnerCharacter escapes can be used; for example, 170836342e81SSascha Wildner.Pp 170936342e81SSascha Wildner.Dl tr \e(xx\e(yy 171036342e81SSascha Wildner.Pp 171136342e81SSascha Wildnerreplaces all invocations of \e(xx with \e(yy. 171254ba9607SSascha Wildner.It Ic \&track Ar font minps width1 maxps width2 171354ba9607SSascha WildnerStatic letter space tracking. 171454ba9607SSascha WildnerThis is a Heirloom extension and currently ignored. 171554ba9607SSascha Wildner.It Ic \&transchar Ar char ... 171654ba9607SSascha WildnerDefine transparent characters for sentence-ending. 171754ba9607SSascha WildnerThis is a Heirloom extension and currently ignored. 171854ba9607SSascha Wildner.It Ic \&trf Ar filename 171954ba9607SSascha WildnerOutput the contents of a file, disallowing invalid characters. 172054ba9607SSascha WildnerThis is a groff extension and ignored because insecure. 172154ba9607SSascha Wildner.It Ic \&trimat Ar left top width height 172254ba9607SSascha WildnerSet the TrimBox page parameter for PDF generation. 172354ba9607SSascha WildnerThis is a Heirloom extension and currently ignored. 172454ba9607SSascha Wildner.It Ic \&trin Ar glyph glyph ... 172554ba9607SSascha WildnerOutput character translation, ignored by 172654ba9607SSascha Wildner.Ic \&asciify . 172754ba9607SSascha WildnerCurrently unsupported. 172854ba9607SSascha Wildner.It Ic \&trnt Ar glyph glyph ... 172954ba9607SSascha WildnerOutput character translation, ignored by \e!. 173054ba9607SSascha WildnerCurrently unsupported. 173154ba9607SSascha Wildner.It Ic \&troff 173254ba9607SSascha WildnerForce troff mode. 173354ba9607SSascha WildnerThis is a groff extension and currently ignored. 173454ba9607SSascha Wildner.It Ic \&TS 173580387638SSascha WildnerBegin a table, which formats input in aligned rows and columns. 173680387638SSascha WildnerSee 173780387638SSascha Wildner.Xr tbl 7 173880387638SSascha Wildnerfor a description of the tbl language. 173954ba9607SSascha Wildner.It Ic \&uf Ar font 174054ba9607SSascha WildnerGlobally set the underline font. 174154ba9607SSascha WildnerCurrently ignored. 174254ba9607SSascha Wildner.It Ic \&ul Op Ar N 174354ba9607SSascha WildnerUnderline next 174454ba9607SSascha Wildner.Ar N 174554ba9607SSascha Wildnerinput lines. 174654ba9607SSascha WildnerCurrently ignored. 174754ba9607SSascha Wildner.It Ic \&unformat Ar divname 174854ba9607SSascha WildnerUnformat spaces and tabs in a diversion. 174954ba9607SSascha WildnerCurrently unsupported. 175054ba9607SSascha Wildner.It Ic \&unwatch Ar macroname 175154ba9607SSascha WildnerDisable notification for string or macro. 175254ba9607SSascha WildnerThis is a Heirloom extension and currently ignored. 175354ba9607SSascha Wildner.It Ic \&unwatchn Ar register 175454ba9607SSascha WildnerDisable notification for register. 175554ba9607SSascha WildnerThis is a Heirloom extension and currently ignored. 175654ba9607SSascha Wildner.It Ic \&vpt Op Cm 1 | 0 175754ba9607SSascha WildnerEnable or disable vertical position traps. 175854ba9607SSascha WildnerThis is a groff extension and currently ignored. 175954ba9607SSascha Wildner.It Ic \&vs Op Oo Cm + Ns | Ns Cm - Oc Ns Ar height 176054ba9607SSascha WildnerChange vertical spacing. 176154ba9607SSascha WildnerCurrently ignored. 176254ba9607SSascha Wildner.It Ic \&warn Ar flags 176354ba9607SSascha WildnerSet warning level. 176454ba9607SSascha WildnerCurrently ignored. 176554ba9607SSascha Wildner.It Ic \&warnscale Ar si 176654ba9607SSascha WildnerSet the scaling indicator used in warnings. 176754ba9607SSascha WildnerThis is a groff extension and currently ignored. 176854ba9607SSascha Wildner.It Ic \&watch Ar macroname 176954ba9607SSascha WildnerNotify on change of string or macro. 177054ba9607SSascha WildnerThis is a Heirloom extension and currently ignored. 177154ba9607SSascha Wildner.It Ic \&watchlength Ar maxlength 177254ba9607SSascha WildnerOn change, report the contents of macros and strings 177354ba9607SSascha Wildnerup to the specified length. 177454ba9607SSascha WildnerThis is a Heirloom extension and currently ignored. 177554ba9607SSascha Wildner.It Ic \&watchn Ar register 177654ba9607SSascha WildnerNotify on change of register. 177754ba9607SSascha WildnerThis is a Heirloom extension and currently ignored. 177854ba9607SSascha Wildner.It Ic \&wh Ar dist Op Ar macroname 177954ba9607SSascha WildnerSet a page location trap. 178054ba9607SSascha WildnerCurrently unsupported. 178154ba9607SSascha Wildner.It Ic \&while Ar condition body 178254ba9607SSascha WildnerRepeated execution while a 178354ba9607SSascha Wildner.Ar condition 178454ba9607SSascha Wildneris true, with syntax similar to 178554ba9607SSascha Wildner.Ic \&if . 178654ba9607SSascha WildnerCurrently implemented with two restrictions: cannot nest, 178754ba9607SSascha Wildnerand each loop must start and end in the same scope. 178854ba9607SSascha Wildner.It Ic \&write Oo \(dq Oc Ns Ar string 178954ba9607SSascha WildnerWrite to an open file. 179054ba9607SSascha WildnerIgnored because insecure. 179154ba9607SSascha Wildner.It Ic \&writec Oo \(dq Oc Ns Ar string 179254ba9607SSascha WildnerWrite to an open file without appending a newline. 179354ba9607SSascha WildnerIgnored because insecure. 179454ba9607SSascha Wildner.It Ic \&writem Ar macroname 179554ba9607SSascha WildnerWrite macro or string to an open file. 179654ba9607SSascha WildnerIgnored because insecure. 179754ba9607SSascha Wildner.It Ic \&xflag Ar level 179854ba9607SSascha WildnerSet the extension level. 179954ba9607SSascha WildnerThis is a Heirloom extension and currently ignored. 180054ba9607SSascha Wildner.El 1801070c62a6SFranco Fichtner.Ss Numerical expressions 1802070c62a6SFranco FichtnerThe 180354ba9607SSascha Wildner.Ic \&nr , 180454ba9607SSascha Wildner.Ic \&if , 1805070c62a6SFranco Fichtnerand 180654ba9607SSascha Wildner.Ic \&ie 1807070c62a6SFranco Fichtnerrequests accept integer numerical expressions as arguments. 1808070c62a6SFranco FichtnerThese are always evaluated using the C 1809070c62a6SFranco Fichtner.Vt int 1810070c62a6SFranco Fichtnertype; integer overflow works the same way as in the C language. 1811070c62a6SFranco FichtnerNumbers consist of an arbitrary number of digits 1812070c62a6SFranco Fichtner.Sq 0 1813070c62a6SFranco Fichtnerto 1814070c62a6SFranco Fichtner.Sq 9 1815070c62a6SFranco Fichtnerprefixed by an optional sign 1816070c62a6SFranco Fichtner.Sq + 1817070c62a6SFranco Fichtneror 1818070c62a6SFranco Fichtner.Sq - . 181954ba9607SSascha WildnerEach number may be followed by one optional scaling unit described below 182054ba9607SSascha Wildner.Sx Scaling Widths . 182154ba9607SSascha WildnerThe following equations hold: 182254ba9607SSascha Wildner.Bd -literal -offset indent 182354ba9607SSascha Wildner1i = 6v = 6P = 10m = 10n = 72p = 1000M = 240u = 240 182454ba9607SSascha Wildner254c = 100i = 24000u = 24000 182554ba9607SSascha Wildner1f = 65536u = 65536 182654ba9607SSascha Wildner.Ed 1827070c62a6SFranco Fichtner.Pp 1828070c62a6SFranco FichtnerThe following binary operators are implemented. 1829070c62a6SFranco FichtnerUnless otherwise stated, they behave as in the C language: 1830070c62a6SFranco Fichtner.Pp 1831070c62a6SFranco Fichtner.Bl -tag -width 2n -compact 1832070c62a6SFranco Fichtner.It Ic + 1833070c62a6SFranco Fichtneraddition 1834070c62a6SFranco Fichtner.It Ic - 1835070c62a6SFranco Fichtnersubtraction 1836070c62a6SFranco Fichtner.It Ic * 1837070c62a6SFranco Fichtnermultiplication 1838070c62a6SFranco Fichtner.It Ic / 1839070c62a6SFranco Fichtnerdivision 1840070c62a6SFranco Fichtner.It Ic % 1841070c62a6SFranco Fichtnerremainder of division 1842070c62a6SFranco Fichtner.It Ic < 1843070c62a6SFranco Fichtnerless than 1844070c62a6SFranco Fichtner.It Ic > 1845070c62a6SFranco Fichtnergreater than 1846070c62a6SFranco Fichtner.It Ic == 1847070c62a6SFranco Fichtnerequal to 1848070c62a6SFranco Fichtner.It Ic = 1849070c62a6SFranco Fichtnerequal to, same effect as 1850070c62a6SFranco Fichtner.Ic == 1851070c62a6SFranco Fichtner(this differs from C) 1852070c62a6SFranco Fichtner.It Ic <= 1853070c62a6SFranco Fichtnerless than or equal to 1854070c62a6SFranco Fichtner.It Ic >= 1855070c62a6SFranco Fichtnergreater than or equal to 1856070c62a6SFranco Fichtner.It Ic <> 1857070c62a6SFranco Fichtnernot equal to (corresponds to C 1858070c62a6SFranco Fichtner.Ic != ; 1859070c62a6SFranco Fichtnerthis one is of limited portability, it is supported by Heirloom roff, 1860070c62a6SFranco Fichtnerbut not by groff) 1861070c62a6SFranco Fichtner.It Ic & 1862070c62a6SFranco Fichtnerlogical and (corresponds to C 1863070c62a6SFranco Fichtner.Ic && ) 1864070c62a6SFranco Fichtner.It Ic \&: 1865070c62a6SFranco Fichtnerlogical or (corresponds to C 186654ba9607SSascha Wildner.Ic || ) 1867070c62a6SFranco Fichtner.It Ic <? 1868070c62a6SFranco Fichtnerminimum (not available in C) 1869070c62a6SFranco Fichtner.It Ic >? 1870070c62a6SFranco Fichtnermaximum (not available in C) 1871070c62a6SFranco Fichtner.El 1872070c62a6SFranco Fichtner.Pp 187354ba9607SSascha WildnerThere is no concept of precedence; evaluation proceeds from left to right, 187454ba9607SSascha Wildnerexcept when subexpressions are enclosed in parentheses. 1875070c62a6SFranco FichtnerInside parentheses, whitespace is ignored. 18767888c61dSFranco Fichtner.Sh ESCAPE SEQUENCE REFERENCE 18777888c61dSFranco FichtnerThe 18787888c61dSFranco Fichtner.Xr mandoc 1 18797888c61dSFranco Fichtner.Nm 18807888c61dSFranco Fichtnerparser recognises the following escape sequences. 18817888c61dSFranco FichtnerIn 18827888c61dSFranco Fichtner.Xr mdoc 7 18837888c61dSFranco Fichtnerand 18847888c61dSFranco Fichtner.Xr man 7 18857888c61dSFranco Fichtnerdocuments, using escape sequences is discouraged except for those 18867888c61dSFranco Fichtnerdescribed in the 18877888c61dSFranco Fichtner.Sx LANGUAGE SYNTAX 18887888c61dSFranco Fichtnersection above. 18897888c61dSFranco Fichtner.Pp 18907888c61dSFranco FichtnerA backslash followed by any character not listed here 18917888c61dSFranco Fichtnersimply prints that character itself. 189254ba9607SSascha Wildner.Bl -tag -width Ds 189354ba9607SSascha Wildner.It Ic \e<newline> 18947888c61dSFranco FichtnerA backslash at the end of an input line can be used to continue the 18957888c61dSFranco Fichtnerlogical input line on the next physical input line, joining the text 18967888c61dSFranco Fichtneron both lines together as if it were on a single input line. 189754ba9607SSascha Wildner.It Ic \e<space> 18987888c61dSFranco FichtnerThe escape sequence backslash-space 18997888c61dSFranco Fichtner.Pq Sq \e\ \& 19007888c61dSFranco Fichtneris an unpaddable space-sized non-breaking space character; see 190154ba9607SSascha Wildner.Sx Whitespace 190254ba9607SSascha Wildnerand 190354ba9607SSascha Wildner.Xr mandoc_char 7 . 190454ba9607SSascha Wildner.It Ic \e! 190554ba9607SSascha WildnerEmbed text up to and including the end of the input line into the 190654ba9607SSascha Wildnercurrent diversion or into intermediate output without interpreting 190754ba9607SSascha Wildnerrequests, macros, and escapes. 190854ba9607SSascha WildnerCurrently unsupported. 190954ba9607SSascha Wildner.It Ic \e\(dq 19107888c61dSFranco FichtnerThe rest of the input line is treated as 19117888c61dSFranco Fichtner.Sx Comments . 191254ba9607SSascha Wildner.It Ic \e# 191354ba9607SSascha WildnerLine continuation with comment. 191454ba9607SSascha WildnerDiscard the rest of the physical input line and continue the logical 191554ba9607SSascha Wildnerinput line on the next physical input line, joining the text on 191654ba9607SSascha Wildnerboth lines together as if it were on a single input line. 191754ba9607SSascha WildnerThis is a groff extension. 191854ba9607SSascha Wildner.It Ic \e$ Ns Ar arg 191954ba9607SSascha WildnerMacro argument expansion, see 192054ba9607SSascha Wildner.Ic \&de . 192154ba9607SSascha Wildner.It Ic \e% 19227888c61dSFranco FichtnerHyphenation allowed at this point of the word; ignored by 19237888c61dSFranco Fichtner.Xr mandoc 1 . 192454ba9607SSascha Wildner.It Ic \e& 192554ba9607SSascha WildnerNon-printing zero-width character, 192654ba9607SSascha Wildneroften used for various kinds of escaping; see 192754ba9607SSascha Wildner.Sx Whitespace , 192854ba9607SSascha Wildner.Xr mandoc_char 7 , 192954ba9607SSascha Wildnerand the 193054ba9607SSascha Wildner.Dq MACRO SYNTAX 193154ba9607SSascha Wildnerand 193254ba9607SSascha Wildner.Dq Delimiters 193354ba9607SSascha Wildnersections in 193454ba9607SSascha Wildner.Xr mdoc 7 . 193554ba9607SSascha Wildner.It Ic \e\(aq 19367888c61dSFranco FichtnerAcute accent special character; use 193754ba9607SSascha Wildner.Ic \e(aa 19387888c61dSFranco Fichtnerinstead. 193954ba9607SSascha Wildner.It Ic \e( Ns Ar cc 19407888c61dSFranco Fichtner.Sx Special Characters 19417888c61dSFranco Fichtnerwith two-letter names, see 19427888c61dSFranco Fichtner.Xr mandoc_char 7 . 194354ba9607SSascha Wildner.It Ic \e) 194454ba9607SSascha WildnerZero-width space transparent to end-of-sentence detection; 194554ba9607SSascha Wildnerignored by 194654ba9607SSascha Wildner.Xr mandoc 1 . 194754ba9607SSascha Wildner.It Ic \e*[ Ns Ar name Ns Ic \&] 19487888c61dSFranco FichtnerInterpolate the string with the 194954ba9607SSascha Wildner.Ar name . 19507888c61dSFranco FichtnerFor short names, there are variants 195154ba9607SSascha Wildner.Ic \e* Ns Ar c 19527888c61dSFranco Fichtnerand 195354ba9607SSascha Wildner.Ic \e*( Ns Ar cc . 195454ba9607SSascha Wildner.Pp 195554ba9607SSascha WildnerOne string is predefined on the 195654ba9607SSascha Wildner.Nm 195754ba9607SSascha Wildnerlanguage level: 195854ba9607SSascha Wildner.Ic \e*(.T 195954ba9607SSascha Wildnerexpands to the name of the output device, 196054ba9607SSascha Wildnerfor example ascii, utf8, ps, pdf, html, or markdown. 196154ba9607SSascha Wildner.Pp 196254ba9607SSascha WildnerMacro sets traditionally predefine additional strings which are not 196354ba9607SSascha Wildnerportable and differ across implementations. 196454ba9607SSascha WildnerThose supported by 196554ba9607SSascha Wildner.Xr mandoc 1 196654ba9607SSascha Wildnerare listed in 196754ba9607SSascha Wildner.Xr mandoc_char 7 . 196854ba9607SSascha Wildner.Pp 196954ba9607SSascha WildnerStrings can be defined, changed, and deleted with the 197054ba9607SSascha Wildner.Ic \&ds , 197154ba9607SSascha Wildner.Ic \&as , 197254ba9607SSascha Wildnerand 197354ba9607SSascha Wildner.Ic \&rm 197454ba9607SSascha Wildnerrequests. 197554ba9607SSascha Wildner.It Ic \e, 197654ba9607SSascha WildnerLeft italic correction (groff extension); ignored by 197754ba9607SSascha Wildner.Xr mandoc 1 . 197854ba9607SSascha Wildner.It Ic \e- 19797888c61dSFranco FichtnerSpecial character 198054ba9607SSascha Wildner.Dq mathematical minus sign ; 198154ba9607SSascha Wildnersee 198254ba9607SSascha Wildner.Xr mandoc_char 7 198354ba9607SSascha Wildnerfor details. 198454ba9607SSascha Wildner.It Ic \e/ 198554ba9607SSascha WildnerRight italic correction (groff extension); ignored by 198654ba9607SSascha Wildner.Xr mandoc 1 . 198754ba9607SSascha Wildner.It Ic \e: 198854ba9607SSascha WildnerBreaking the line is allowed at this point of the word 198954ba9607SSascha Wildnerwithout inserting a hyphen. 199054ba9607SSascha Wildner.It Ic \e? 199154ba9607SSascha WildnerEmbed the text up to the next 199254ba9607SSascha Wildner.Ic \e? 199354ba9607SSascha Wildnerinto the current diversion without interpreting requests, macros, 199454ba9607SSascha Wildnerand escapes. 199554ba9607SSascha WildnerThis is a groff extension and currently unsupported. 199654ba9607SSascha Wildner.It Ic \e[ Ns Ar name Ns Ic \&] 19977888c61dSFranco Fichtner.Sx Special Characters 19987888c61dSFranco Fichtnerwith names of arbitrary length, see 19997888c61dSFranco Fichtner.Xr mandoc_char 7 . 200054ba9607SSascha Wildner.It Ic \e^ 20017888c61dSFranco FichtnerOne-twelfth em half-narrow space character, effectively zero-width in 20027888c61dSFranco Fichtner.Xr mandoc 1 . 200354ba9607SSascha Wildner.It Ic \e_ 200454ba9607SSascha WildnerUnderline special character; use 200554ba9607SSascha Wildner.Ic \e(ul 20067888c61dSFranco Fichtnerinstead. 200754ba9607SSascha Wildner.It Ic \e` 200854ba9607SSascha WildnerGrave accent special character; use 200954ba9607SSascha Wildner.Ic \e(ga 201054ba9607SSascha Wildnerinstead. 201154ba9607SSascha Wildner.It Ic \e{ 20127888c61dSFranco FichtnerBegin conditional input; see 201354ba9607SSascha Wildner.Ic \&if . 201454ba9607SSascha Wildner.It Ic \e\(ba 20157888c61dSFranco FichtnerOne-sixth em narrow space character, effectively zero-width in 20167888c61dSFranco Fichtner.Xr mandoc 1 . 201754ba9607SSascha Wildner.It Ic \e} 20187888c61dSFranco FichtnerEnd conditional input; see 201954ba9607SSascha Wildner.Ic \&if . 202054ba9607SSascha Wildner.It Ic \e~ 20217888c61dSFranco FichtnerPaddable non-breaking space character. 202254ba9607SSascha Wildner.It Ic \e0 20237888c61dSFranco FichtnerDigit width space character. 202454ba9607SSascha Wildner.It Ic \eA\(aq Ns Ar string Ns Ic \(aq 20257888c61dSFranco FichtnerAnchor definition; ignored by 20267888c61dSFranco Fichtner.Xr mandoc 1 . 202754ba9607SSascha Wildner.It Ic \ea 202854ba9607SSascha WildnerLeader character; ignored by 202954ba9607SSascha Wildner.Xr mandoc 1 . 203054ba9607SSascha Wildner.It Ic \eB\(aq Ns Ar string Ns Ic \(aq 2031070c62a6SFranco FichtnerInterpolate 2032070c62a6SFranco Fichtner.Sq 1 2033070c62a6SFranco Fichtnerif 20347888c61dSFranco Fichtner.Ar string 2035070c62a6SFranco Fichtnerconforms to the syntax of 2036070c62a6SFranco Fichtner.Sx Numerical expressions 203754ba9607SSascha Wildnerexplained above or 2038070c62a6SFranco Fichtner.Sq 0 2039070c62a6SFranco Fichtnerotherwise. 204054ba9607SSascha Wildner.It Ic \eb\(aq Ns Ar string Ns Ic \(aq 20417888c61dSFranco FichtnerBracket building function; ignored by 20427888c61dSFranco Fichtner.Xr mandoc 1 . 204354ba9607SSascha Wildner.It Ic \eC\(aq Ns Ar name Ns Ic \(aq 20447888c61dSFranco Fichtner.Sx Special Characters 20457888c61dSFranco Fichtnerwith names of arbitrary length. 204654ba9607SSascha Wildner.It Ic \ec 204754ba9607SSascha WildnerWhen encountered at the end of an input text line, 204854ba9607SSascha Wildnerthe next input text line is considered to continue that line, 204954ba9607SSascha Wildnereven if there are request or macro lines in between. 205054ba9607SSascha WildnerNo whitespace is inserted. 205154ba9607SSascha Wildner.It Ic \eD\(aq Ns Ar string Ns Ic \(aq 20527888c61dSFranco FichtnerDraw graphics function; ignored by 20537888c61dSFranco Fichtner.Xr mandoc 1 . 205454ba9607SSascha Wildner.It Ic \ed 20557888c61dSFranco FichtnerMove down by half a line; ignored by 20567888c61dSFranco Fichtner.Xr mandoc 1 . 205754ba9607SSascha Wildner.It Ic \eE 205854ba9607SSascha WildnerEscape character intended to not be interpreted in copy mode. 205954ba9607SSascha WildnerIn 206054ba9607SSascha Wildner.Xr mandoc 1 , 206154ba9607SSascha Wildnerit currently does the same as 206254ba9607SSascha Wildner.Ic \e 206354ba9607SSascha Wildneritself. 206454ba9607SSascha Wildner.It Ic \ee 20657888c61dSFranco FichtnerBackslash special character. 206654ba9607SSascha Wildner.It Ic \eF[ Ns Ar name Ns Ic \&] 20677888c61dSFranco FichtnerSwitch font family (groff extension); ignored by 20687888c61dSFranco Fichtner.Xr mandoc 1 . 20697888c61dSFranco FichtnerFor short names, there are variants 207054ba9607SSascha Wildner.Ic \eF Ns Ar c 20717888c61dSFranco Fichtnerand 207254ba9607SSascha Wildner.Ic \eF( Ns Ar cc . 207354ba9607SSascha Wildner.It Ic \ef[ Ns Ar name Ns Ic \&] 20747888c61dSFranco FichtnerSwitch to the font 20757888c61dSFranco Fichtner.Ar name , 20767888c61dSFranco Fichtnersee 207754ba9607SSascha Wildner.Sx Font Selection . 20787888c61dSFranco FichtnerFor short names, there are variants 207954ba9607SSascha Wildner.Ic \ef Ns Ar c 20807888c61dSFranco Fichtnerand 208154ba9607SSascha Wildner.Ic \ef( Ns Ar cc . 208254ba9607SSascha WildnerAn empty name 208354ba9607SSascha Wildner.Ic \ef[] 208454ba9607SSascha Wildnerdefaults to 208554ba9607SSascha Wildner.Ic \efP . 208654ba9607SSascha Wildner.It Ic \eg[ Ns Ar name Ns Ic \&] 20877888c61dSFranco FichtnerInterpolate the format of a number register; ignored by 20887888c61dSFranco Fichtner.Xr mandoc 1 . 20897888c61dSFranco FichtnerFor short names, there are variants 209054ba9607SSascha Wildner.Ic \eg Ns Ar c 20917888c61dSFranco Fichtnerand 209254ba9607SSascha Wildner.Ic \eg( Ns Ar cc . 209354ba9607SSascha Wildner.It Ic \eH\(aq Ns Oo +|- Oc Ns Ar number Ns Ic \(aq 20947888c61dSFranco FichtnerSet the height of the current font; ignored by 20957888c61dSFranco Fichtner.Xr mandoc 1 . 209654ba9607SSascha Wildner.It Ic \eh\(aq Ns Oo Cm \&| Oc Ns Ar width Ns Ic \(aq 209754ba9607SSascha WildnerHorizontal motion. 209854ba9607SSascha WildnerIf the vertical bar is given, the motion is relative to the current 209954ba9607SSascha Wildnerindentation. 210054ba9607SSascha WildnerOtherwise, it is relative to the current position. 210154ba9607SSascha WildnerThe default scaling unit is 210254ba9607SSascha Wildner.Cm m . 210354ba9607SSascha Wildner.It Ic \ek[ Ns Ar name Ns Ic \&] 21047888c61dSFranco FichtnerMark horizontal input place in register; ignored by 21057888c61dSFranco Fichtner.Xr mandoc 1 . 21067888c61dSFranco FichtnerFor short names, there are variants 210754ba9607SSascha Wildner.Ic \ek Ns Ar c 21087888c61dSFranco Fichtnerand 210954ba9607SSascha Wildner.Ic \ek( Ns Ar cc . 211054ba9607SSascha Wildner.It Ic \eL\(aq Ns Ar number Ns Oo Ar c Oc Ns Ic \(aq 21117888c61dSFranco FichtnerVertical line drawing function; ignored by 21127888c61dSFranco Fichtner.Xr mandoc 1 . 211354ba9607SSascha Wildner.It Ic \el\(aq Ns Ar width Ns Oo Ar c Oc Ns Ic \(aq 211454ba9607SSascha WildnerDraw a horizontal line of 211554ba9607SSascha Wildner.Ar width 211654ba9607SSascha Wildnerusing the glyph 211754ba9607SSascha Wildner.Ar c . 211854ba9607SSascha Wildner.It Ic \eM[ Ns Ar name Ns Ic \&] 21197888c61dSFranco FichtnerSet fill (background) color (groff extension); ignored by 21207888c61dSFranco Fichtner.Xr mandoc 1 . 21217888c61dSFranco FichtnerFor short names, there are variants 212254ba9607SSascha Wildner.Ic \eM Ns Ar c 21237888c61dSFranco Fichtnerand 212454ba9607SSascha Wildner.Ic \eM( Ns Ar cc . 212554ba9607SSascha Wildner.It Ic \em[ Ns Ar name Ns Ic \&] 21267888c61dSFranco FichtnerSet glyph drawing color (groff extension); ignored by 21277888c61dSFranco Fichtner.Xr mandoc 1 . 21287888c61dSFranco FichtnerFor short names, there are variants 212954ba9607SSascha Wildner.Ic \em Ns Ar c 21307888c61dSFranco Fichtnerand 213154ba9607SSascha Wildner.Ic \em( Ns Ar cc . 213254ba9607SSascha Wildner.It Ic \eN\(aq Ns Ar number Ns Ic \(aq 21337888c61dSFranco FichtnerCharacter 21347888c61dSFranco Fichtner.Ar number 21357888c61dSFranco Fichtneron the current font. 213654ba9607SSascha Wildner.It Ic \en Ns Oo +|- Oc Ns Ic \&[ Ns Ar name Ns Ic \&] 21377888c61dSFranco FichtnerInterpolate the number register 21387888c61dSFranco Fichtner.Ar name . 21397888c61dSFranco FichtnerFor short names, there are variants 214054ba9607SSascha Wildner.Ic \en Ns Ar c 21417888c61dSFranco Fichtnerand 214254ba9607SSascha Wildner.Ic \en( Ns Ar cc . 214354ba9607SSascha WildnerIf the optional sign is specified, 214454ba9607SSascha Wildnerthe register is first incremented or decremented by the 214554ba9607SSascha Wildner.Ar stepsize 214654ba9607SSascha Wildnerthat was specified in the relevant 214754ba9607SSascha Wildner.Ic \&nr 214854ba9607SSascha Wildnerrequest, and the changed value is interpolated. 214954ba9607SSascha Wildner.It Ic \eO Ns Ar digit , Ic \eO[5 Ns arguments Ns Ic \&] 215054ba9607SSascha WildnerSuppress output. 215154ba9607SSascha WildnerThis is a groff extension and currently unsupported. 215254ba9607SSascha WildnerWith an argument of 215354ba9607SSascha Wildner.Ic 1 , 2 , 3 , 215454ba9607SSascha Wildneror 215554ba9607SSascha Wildner.Ic 4 , 215654ba9607SSascha Wildnerit is ignored. 215754ba9607SSascha Wildner.It Ic \eo\(aq Ns Ar string Ns Ic \(aq 215854ba9607SSascha WildnerOverstrike, writing all the characters contained in the 215954ba9607SSascha Wildner.Ar string 216054ba9607SSascha Wildnerto the same output position. 216154ba9607SSascha WildnerIn terminal and HTML output modes, 216254ba9607SSascha Wildneronly the last one of the characters is visible. 216354ba9607SSascha Wildner.It Ic \ep 216454ba9607SSascha WildnerBreak the output line at the end of the current word. 216554ba9607SSascha Wildner.It Ic \eR\(aq Ns Ar name Oo +|- Oc Ns Ar number Ns Ic \(aq 21667888c61dSFranco FichtnerSet number register; ignored by 21677888c61dSFranco Fichtner.Xr mandoc 1 . 216854ba9607SSascha Wildner.It Ic \er 216954ba9607SSascha WildnerMove up by one line; ignored by 217054ba9607SSascha Wildner.Xr mandoc 1 . 217154ba9607SSascha Wildner.It Ic \eS\(aq Ns Ar number Ns Ic \(aq 21727888c61dSFranco FichtnerSlant output; ignored by 21737888c61dSFranco Fichtner.Xr mandoc 1 . 217454ba9607SSascha Wildner.It Ic \es\(aq Ns Oo +|- Oc Ns Ar number Ns Ic \(aq 21757888c61dSFranco FichtnerChange point size; ignored by 21767888c61dSFranco Fichtner.Xr mandoc 1 . 21777888c61dSFranco FichtnerAlternative forms 217854ba9607SSascha Wildner.Ic \es Ns Oo +|- Oc Ns Ar n , 217954ba9607SSascha Wildner.Ic \es Ns Oo +|- Oc Ns Ic \(aq Ns Ar number Ns Ic \(aq , 218054ba9607SSascha Wildner.Ic \es[ Ns Oo +|- Oc Ns Ar number Ns Ic \&] , 21817888c61dSFranco Fichtnerand 218254ba9607SSascha Wildner.Ic \es Ns Oo +|- Oc Ns Ic \&[ Ns Ar number Ns Ic \&] 21837888c61dSFranco Fichtnerare also parsed and ignored. 218454ba9607SSascha Wildner.It Ic \et 21857888c61dSFranco FichtnerHorizontal tab; ignored by 21867888c61dSFranco Fichtner.Xr mandoc 1 . 218754ba9607SSascha Wildner.It Ic \eu 21887888c61dSFranco FichtnerMove up by half a line; ignored by 21897888c61dSFranco Fichtner.Xr mandoc 1 . 219054ba9607SSascha Wildner.It Ic \eV[ Ns Ar name Ns Ic \&] 21917888c61dSFranco FichtnerInterpolate an environment variable; ignored by 21927888c61dSFranco Fichtner.Xr mandoc 1 . 21937888c61dSFranco FichtnerFor short names, there are variants 219454ba9607SSascha Wildner.Ic \eV Ns Ar c 21957888c61dSFranco Fichtnerand 219654ba9607SSascha Wildner.Ic \eV( Ns Ar cc . 219754ba9607SSascha Wildner.It Ic \ev\(aq Ns Ar number Ns Ic \(aq 21987888c61dSFranco FichtnerVertical motion; ignored by 21997888c61dSFranco Fichtner.Xr mandoc 1 . 220054ba9607SSascha Wildner.It Ic \ew\(aq Ns Ar string Ns Ic \(aq 22017888c61dSFranco FichtnerInterpolate the width of the 2202070c62a6SFranco Fichtner.Ar string . 2203070c62a6SFranco FichtnerThe 2204070c62a6SFranco Fichtner.Xr mandoc 1 2205070c62a6SFranco Fichtnerimplementation assumes that after expansion of user-defined strings, the 2206070c62a6SFranco Fichtner.Ar string 2207070c62a6SFranco Fichtneronly contains normal characters, no escape sequences, and that each 2208070c62a6SFranco Fichtnercharacter has a width of 24 basic units. 220954ba9607SSascha Wildner.It Ic \eX\(aq Ns Ar string Ns Ic \(aq 22107888c61dSFranco FichtnerOutput 22117888c61dSFranco Fichtner.Ar string 22127888c61dSFranco Fichtneras device control function; ignored in nroff mode and by 22137888c61dSFranco Fichtner.Xr mandoc 1 . 221454ba9607SSascha Wildner.It Ic \ex\(aq Ns Ar number Ns Ic \(aq 22157888c61dSFranco FichtnerExtra line space function; ignored by 22167888c61dSFranco Fichtner.Xr mandoc 1 . 221754ba9607SSascha Wildner.It Ic \eY[ Ns Ar name Ns Ic \&] 22187888c61dSFranco FichtnerOutput a string as a device control function; ignored in nroff mode and by 22197888c61dSFranco Fichtner.Xr mandoc 1 . 22207888c61dSFranco FichtnerFor short names, there are variants 222154ba9607SSascha Wildner.Ic \eY Ns Ar c 22227888c61dSFranco Fichtnerand 222354ba9607SSascha Wildner.Ic \eY( Ns Ar cc . 222454ba9607SSascha Wildner.It Ic \eZ\(aq Ns Ar string Ns Ic \(aq 22257888c61dSFranco FichtnerPrint 22267888c61dSFranco Fichtner.Ar string 22277888c61dSFranco Fichtnerwith zero width and height; ignored by 22287888c61dSFranco Fichtner.Xr mandoc 1 . 222954ba9607SSascha Wildner.It Ic \ez 223054ba9607SSascha WildnerOutput the next character without advancing the cursor position. 223154ba9607SSascha Wildner.El 223280387638SSascha Wildner.Sh COMPATIBILITY 223354ba9607SSascha WildnerThe 223454ba9607SSascha Wildner.Xr mandoc 1 223554ba9607SSascha Wildnerimplementation of the 223680387638SSascha Wildner.Nm 223754ba9607SSascha Wildnerlanguage is incomplete. 223854ba9607SSascha WildnerMajor unimplemented features include: 223980387638SSascha Wildner.Pp 224080387638SSascha Wildner.Bl -dash -compact 224180387638SSascha Wildner.It 224254ba9607SSascha WildnerFor security reasons, 224354ba9607SSascha Wildner.Xr mandoc 1 224454ba9607SSascha Wildnernever reads or writes external files except via 224554ba9607SSascha Wildner.Ic \&so 224654ba9607SSascha Wildnerrequests with safe relative paths. 224754ba9607SSascha Wildner.It 224854ba9607SSascha WildnerThere is no automatic hyphenation, no adjustment to the right margin, 224954ba9607SSascha Wildnerand very limited support for centering; the output is always set flush-left. 225054ba9607SSascha Wildner.It 225154ba9607SSascha WildnerSupport for setting tabulator and leader characters is missing, 225254ba9607SSascha Wildnerand support for manually changing indentation is limited. 225360e1e752SSascha Wildner.It 225480387638SSascha WildnerThe 225554ba9607SSascha Wildner.Sq u 225654ba9607SSascha Wildnerscaling unit is the default terminal unit. 225754ba9607SSascha WildnerIn traditional troff systems, this unit changes depending on the 225854ba9607SSascha Wildneroutput media. 225980387638SSascha Wildner.It 226054ba9607SSascha WildnerWidth measurements are implemented in a crude way 226154ba9607SSascha Wildnerand often yield wrong results. 226254ba9607SSascha WildnerSupport for explicit movement requests and escapes is limited. 226354ba9607SSascha Wildner.It 226454ba9607SSascha WildnerThere is no concept of output pages, no support for floats, 226554ba9607SSascha Wildnergraphics drawing, and picture inclusion; 226654ba9607SSascha Wildnerterminal output is always continuous. 226754ba9607SSascha Wildner.It 226854ba9607SSascha WildnerRequests regarding color, font families, font sizes, 226954ba9607SSascha Wildnerand glyph manipulation are ignored. 227054ba9607SSascha WildnerFont support is very limited. 227154ba9607SSascha WildnerKerning is not implemented, and no ligatures are produced. 227280387638SSascha Wildner.It 227380387638SSascha WildnerThe 227454ba9607SSascha Wildner.Qq \(aq 227554ba9607SSascha Wildnermacro control character does not suppress output line breaks. 227654ba9607SSascha Wildner.It 227754ba9607SSascha WildnerDiversions and environments are not implemented, 227854ba9607SSascha Wildnerand support for traps is very incomplete. 227954ba9607SSascha Wildner.It 228054ba9607SSascha WildnerUse of macros is not supported inside 228154ba9607SSascha Wildner.Xr tbl 7 228254ba9607SSascha Wildnercode. 228380387638SSascha Wildner.El 228454ba9607SSascha Wildner.Pp 228554ba9607SSascha WildnerThe special semantics of the 228654ba9607SSascha Wildner.Cm nS 2287*99db7d0eSSascha Wildnernumber register is an idiosyncrasy of 228854ba9607SSascha Wildner.Ox 228954ba9607SSascha Wildnermanuals and not supported by other 229054ba9607SSascha Wildner.Xr mdoc 7 229154ba9607SSascha Wildnerimplementations. 229280387638SSascha Wildner.Sh SEE ALSO 229380387638SSascha Wildner.Xr mandoc 1 , 229460e1e752SSascha Wildner.Xr eqn 7 , 229580387638SSascha Wildner.Xr man 7 , 229680387638SSascha Wildner.Xr mandoc_char 7 , 229780387638SSascha Wildner.Xr mdoc 7 , 229880387638SSascha Wildner.Xr tbl 7 229980387638SSascha Wildner.Rs 230080387638SSascha Wildner.%A Joseph F. Ossanna 230180387638SSascha Wildner.%A Brian W. Kernighan 230280387638SSascha Wildner.%I AT&T Bell Laboratories 230380387638SSascha Wildner.%T Troff User's Manual 230480387638SSascha Wildner.%R Computing Science Technical Report 230580387638SSascha Wildner.%N 54 230680387638SSascha Wildner.%C Murray Hill, New Jersey 230780387638SSascha Wildner.%D 1976 and 1992 230880387638SSascha Wildner.%U http://www.kohala.com/start/troff/cstr54.ps 230980387638SSascha Wildner.Re 231080387638SSascha Wildner.Rs 231180387638SSascha Wildner.%A Joseph F. Ossanna 231280387638SSascha Wildner.%A Brian W. Kernighan 231380387638SSascha Wildner.%A Gunnar Ritter 231480387638SSascha Wildner.%T Heirloom Documentation Tools Nroff/Troff User's Manual 231580387638SSascha Wildner.%D September 17, 2007 231680387638SSascha Wildner.%U http://heirloom.sourceforge.net/doctools/troff.pdf 231780387638SSascha Wildner.Re 231880387638SSascha Wildner.Sh HISTORY 231936342e81SSascha WildnerThe RUNOFF typesetting system, whose input forms the basis for 232080387638SSascha Wildner.Nm , 232136342e81SSascha Wildnerwas written in MAD and FAP for the CTSS operating system by Jerome E. 232236342e81SSascha WildnerSaltzer in 1964. 232336342e81SSascha WildnerDoug McIlroy rewrote it in BCPL in 1969, renaming it 232436342e81SSascha Wildner.Nm . 232536342e81SSascha WildnerDennis M. Ritchie rewrote McIlroy's 232636342e81SSascha Wildner.Nm 232736342e81SSascha Wildnerin PDP-11 assembly for 232836342e81SSascha Wildner.At v1 , 232936342e81SSascha WildnerJoseph F. Ossanna improved roff and renamed it nroff 233036342e81SSascha Wildnerfor 233136342e81SSascha Wildner.At v2 , 233236342e81SSascha Wildnerthen ported nroff to C as troff, which Brian W. Kernighan released with 233336342e81SSascha Wildner.At v7 . 2334*99db7d0eSSascha WildnerIn 1989, James Clark re-implemented troff in C++, naming it groff. 233580387638SSascha Wildner.Sh AUTHORS 233680387638SSascha Wildner.An -nosplit 233736342e81SSascha WildnerThis 233880387638SSascha Wildner.Nm 233980387638SSascha Wildnerreference was written by 2340f88b6c16SFranco Fichtner.An Kristaps Dzonsons Aq Mt kristaps@bsd.lv 234180387638SSascha Wildnerand 2342f88b6c16SFranco Fichtner.An Ingo Schwarze Aq Mt schwarze@openbsd.org . 2343