1*6d38604fSBaptiste Daroussin.\" $Id: roff.7,v 1.116 2021/09/18 12:23:06 schwarze Exp $ 261d06d6bSBaptiste Daroussin.\" 361d06d6bSBaptiste Daroussin.\" Copyright (c) 2010, 2011, 2012 Kristaps Dzonsons <kristaps@bsd.lv> 47295610fSBaptiste Daroussin.\" Copyright (c) 2010-2019 Ingo Schwarze <schwarze@openbsd.org> 561d06d6bSBaptiste Daroussin.\" 661d06d6bSBaptiste Daroussin.\" Permission to use, copy, modify, and distribute this software for any 761d06d6bSBaptiste Daroussin.\" purpose with or without fee is hereby granted, provided that the above 861d06d6bSBaptiste Daroussin.\" copyright notice and this permission notice appear in all copies. 961d06d6bSBaptiste Daroussin.\" 1061d06d6bSBaptiste Daroussin.\" THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES 1161d06d6bSBaptiste Daroussin.\" WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF 1261d06d6bSBaptiste Daroussin.\" MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR 1361d06d6bSBaptiste Daroussin.\" ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES 1461d06d6bSBaptiste Daroussin.\" WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN 1561d06d6bSBaptiste Daroussin.\" ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF 1661d06d6bSBaptiste Daroussin.\" OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. 1761d06d6bSBaptiste Daroussin.\" 18*6d38604fSBaptiste Daroussin.Dd $Mdocdate: September 18 2021 $ 1961d06d6bSBaptiste Daroussin.Dt ROFF 7 2061d06d6bSBaptiste Daroussin.Os 2161d06d6bSBaptiste Daroussin.Sh NAME 2261d06d6bSBaptiste Daroussin.Nm roff 2361d06d6bSBaptiste Daroussin.Nd roff language reference for mandoc 2461d06d6bSBaptiste Daroussin.Sh DESCRIPTION 2561d06d6bSBaptiste DaroussinThe 2661d06d6bSBaptiste Daroussin.Nm roff 2761d06d6bSBaptiste Daroussinlanguage is a general purpose text formatting language. 2861d06d6bSBaptiste DaroussinSince traditional implementations of the 2961d06d6bSBaptiste Daroussin.Xr mdoc 7 3061d06d6bSBaptiste Daroussinand 3161d06d6bSBaptiste Daroussin.Xr man 7 3261d06d6bSBaptiste Daroussinmanual formatting languages are based on it, 3361d06d6bSBaptiste Daroussinmany real-world manuals use small numbers of 3461d06d6bSBaptiste Daroussin.Nm 3561d06d6bSBaptiste Daroussinrequests and escape sequences intermixed with their 3661d06d6bSBaptiste Daroussin.Xr mdoc 7 3761d06d6bSBaptiste Daroussinor 3861d06d6bSBaptiste Daroussin.Xr man 7 3961d06d6bSBaptiste Daroussincode. 4061d06d6bSBaptiste DaroussinTo properly format such manuals, the 4161d06d6bSBaptiste Daroussin.Xr mandoc 1 427295610fSBaptiste Daroussinutility supports a subset of 4361d06d6bSBaptiste Daroussin.Nm 4461d06d6bSBaptiste Daroussinrequests and escapes. 457295610fSBaptiste DaroussinEven though this manual page lists all 467295610fSBaptiste Daroussin.Nm 477295610fSBaptiste Daroussinrequests and escape sequences, it only contains partial information 487295610fSBaptiste Daroussinabout requests not supported by 4961d06d6bSBaptiste Daroussin.Xr mandoc 1 507295610fSBaptiste Daroussinand about language features that do not matter for manual pages. 5161d06d6bSBaptiste DaroussinFor complete 5261d06d6bSBaptiste Daroussin.Nm 5361d06d6bSBaptiste Daroussinmanuals, consult the 5461d06d6bSBaptiste Daroussin.Sx SEE ALSO 5561d06d6bSBaptiste Daroussinsection. 5661d06d6bSBaptiste Daroussin.Pp 5761d06d6bSBaptiste DaroussinInput lines beginning with the control character 5861d06d6bSBaptiste Daroussin.Sq \&. 5961d06d6bSBaptiste Daroussinare parsed for requests and macros. 6061d06d6bSBaptiste DaroussinSuch lines are called 6161d06d6bSBaptiste Daroussin.Dq request lines 6261d06d6bSBaptiste Daroussinor 6361d06d6bSBaptiste Daroussin.Dq macro lines , 6461d06d6bSBaptiste Daroussinrespectively. 6561d06d6bSBaptiste DaroussinRequests change the processing state and manipulate the formatting; 6661d06d6bSBaptiste Daroussinsome macros also define the document structure and produce formatted 6761d06d6bSBaptiste Daroussinoutput. 6861d06d6bSBaptiste DaroussinThe single quote 6961d06d6bSBaptiste Daroussin.Pq Qq \(aq 7061d06d6bSBaptiste Daroussinis accepted as an alternative control character, 7161d06d6bSBaptiste Daroussintreated by 7261d06d6bSBaptiste Daroussin.Xr mandoc 1 7361d06d6bSBaptiste Daroussinjust like 7461d06d6bSBaptiste Daroussin.Ql \&. 7561d06d6bSBaptiste Daroussin.Pp 7661d06d6bSBaptiste DaroussinLines not beginning with control characters are called 7761d06d6bSBaptiste Daroussin.Dq text lines . 7861d06d6bSBaptiste DaroussinThey provide free-form text to be printed; the formatting of the text 7961d06d6bSBaptiste Daroussindepends on the respective processing context. 8061d06d6bSBaptiste Daroussin.Sh LANGUAGE SYNTAX 8161d06d6bSBaptiste Daroussin.Nm 8261d06d6bSBaptiste Daroussindocuments may contain only graphable 7-bit ASCII characters, the space 8361d06d6bSBaptiste Daroussincharacter, and, in certain circumstances, the tab character. 8461d06d6bSBaptiste DaroussinThe backslash character 8561d06d6bSBaptiste Daroussin.Sq \e 8661d06d6bSBaptiste Daroussinindicates the start of an escape sequence, used for example for 877295610fSBaptiste Daroussin.Sx Comments 8861d06d6bSBaptiste Daroussinand 897295610fSBaptiste Daroussin.Sx Special Characters . 907295610fSBaptiste DaroussinFor a complete listing of escape sequences, consult the 9161d06d6bSBaptiste Daroussin.Sx ESCAPE SEQUENCE REFERENCE 9261d06d6bSBaptiste Daroussinbelow. 9361d06d6bSBaptiste Daroussin.Ss Comments 9461d06d6bSBaptiste DaroussinText following an escaped double-quote 9561d06d6bSBaptiste Daroussin.Sq \e\(dq , 9661d06d6bSBaptiste Daroussinwhether in a request, macro, or text line, is ignored to the end of the line. 9761d06d6bSBaptiste DaroussinA request line beginning with a control character and comment escape 9861d06d6bSBaptiste Daroussin.Sq \&.\e\(dq 9961d06d6bSBaptiste Daroussinis also ignored. 10061d06d6bSBaptiste DaroussinFurthermore, request lines with only a control character and optional 10161d06d6bSBaptiste Daroussintrailing whitespace are stripped from input. 10261d06d6bSBaptiste Daroussin.Pp 10361d06d6bSBaptiste DaroussinExamples: 10461d06d6bSBaptiste Daroussin.Bd -literal -offset indent -compact 10561d06d6bSBaptiste Daroussin\&.\e\(dq This is a comment line. 10661d06d6bSBaptiste Daroussin\&.\e\(dq The next line is ignored: 10761d06d6bSBaptiste Daroussin\&. 10861d06d6bSBaptiste Daroussin\&.Sh EXAMPLES \e\(dq This is a comment, too. 10961d06d6bSBaptiste Daroussin\&example text \e\(dq And so is this. 11061d06d6bSBaptiste Daroussin.Ed 11161d06d6bSBaptiste Daroussin.Ss Special Characters 11261d06d6bSBaptiste DaroussinSpecial characters are used to encode special glyphs and are rendered 11361d06d6bSBaptiste Daroussindifferently across output media. 11461d06d6bSBaptiste DaroussinThey may occur in request, macro, and text lines. 11561d06d6bSBaptiste DaroussinSequences begin with the escape character 11661d06d6bSBaptiste Daroussin.Sq \e 11761d06d6bSBaptiste Daroussinfollowed by either an open-parenthesis 11861d06d6bSBaptiste Daroussin.Sq \&( 11961d06d6bSBaptiste Daroussinfor two-character sequences; an open-bracket 12061d06d6bSBaptiste Daroussin.Sq \&[ 12161d06d6bSBaptiste Daroussinfor n-character sequences (terminated at a close-bracket 12261d06d6bSBaptiste Daroussin.Sq \&] ) ; 12361d06d6bSBaptiste Daroussinor a single one character sequence. 12461d06d6bSBaptiste Daroussin.Pp 12561d06d6bSBaptiste DaroussinExamples: 12661d06d6bSBaptiste Daroussin.Bl -tag -width Ds -offset indent -compact 12761d06d6bSBaptiste Daroussin.It Li \e(em 12861d06d6bSBaptiste DaroussinTwo-letter em dash escape. 12961d06d6bSBaptiste Daroussin.It Li \ee 13061d06d6bSBaptiste DaroussinOne-letter backslash escape. 13161d06d6bSBaptiste Daroussin.El 13261d06d6bSBaptiste Daroussin.Pp 13361d06d6bSBaptiste DaroussinSee 13461d06d6bSBaptiste Daroussin.Xr mandoc_char 7 13561d06d6bSBaptiste Daroussinfor a complete list. 1367295610fSBaptiste Daroussin.Ss Font Selection 1377295610fSBaptiste DaroussinIn 1387295610fSBaptiste Daroussin.Xr mdoc 7 1397295610fSBaptiste Daroussinand 1407295610fSBaptiste Daroussin.Xr man 7 1417295610fSBaptiste Daroussindocuments, fonts are usually selected with macros. 1427295610fSBaptiste DaroussinThe 1437295610fSBaptiste Daroussin.Ic \ef 1447295610fSBaptiste Daroussinescape sequence and the 1457295610fSBaptiste Daroussin.Ic \&ft 1467295610fSBaptiste Daroussinrequest can be used to manually change the font, 1477295610fSBaptiste Daroussinbut this is not recommended in 1487295610fSBaptiste Daroussin.Xr mdoc 7 1497295610fSBaptiste Daroussindocuments. 1507295610fSBaptiste DaroussinSuch manual font changes are overridden by many subsequent macros. 15161d06d6bSBaptiste Daroussin.Pp 1527295610fSBaptiste DaroussinThe following fonts are supported: 1537295610fSBaptiste Daroussin.Pp 1547295610fSBaptiste Daroussin.Bl -tag -width CW -offset indent -compact 1557295610fSBaptiste Daroussin.It Cm B 1567295610fSBaptiste DaroussinBold font. 1577295610fSBaptiste Daroussin.It Cm BI 1587295610fSBaptiste DaroussinA font that is both bold and italic. 1597295610fSBaptiste Daroussin.It Cm CB 1607295610fSBaptiste DaroussinBold constant width font. 1617295610fSBaptiste DaroussinSame as 1627295610fSBaptiste Daroussin.Cm B 1637295610fSBaptiste Daroussinin terminal output. 1647295610fSBaptiste Daroussin.It Cm CI 1657295610fSBaptiste DaroussinItalic constant width font. 1667295610fSBaptiste DaroussinSame as 1677295610fSBaptiste Daroussin.Cm I 1687295610fSBaptiste Daroussinin terminal output. 1697295610fSBaptiste Daroussin.It Cm CR 1707295610fSBaptiste DaroussinRegular constant width font. 1717295610fSBaptiste DaroussinSame as 1727295610fSBaptiste Daroussin.Cm R 1737295610fSBaptiste Daroussinin terminal output. 1747295610fSBaptiste Daroussin.It Cm CW 1757295610fSBaptiste DaroussinAn alias for 1767295610fSBaptiste Daroussin.Cm CR . 1777295610fSBaptiste Daroussin.It Cm I 1787295610fSBaptiste DaroussinItalic font. 1797295610fSBaptiste Daroussin.It Cm P 1807295610fSBaptiste DaroussinReturn to the previous font. 1817295610fSBaptiste DaroussinIf a macro caused a font change since the last 1827295610fSBaptiste Daroussin.Ic \ef 1837295610fSBaptiste Daroussineascape sequence or 1847295610fSBaptiste Daroussin.Ic \&ft 1857295610fSBaptiste Daroussinrequest, this returns to the font before the last font change in 1867295610fSBaptiste Daroussinthe macro rather than to the font before the last manual font change. 1877295610fSBaptiste Daroussin.It Cm R 1887295610fSBaptiste DaroussinRoman font. 1897295610fSBaptiste DaroussinThis is the default font. 1907295610fSBaptiste Daroussin.It Cm 1 1917295610fSBaptiste DaroussinAn alias for 1927295610fSBaptiste Daroussin.Cm R . 1937295610fSBaptiste Daroussin.It Cm 2 1947295610fSBaptiste DaroussinAn alias for 1957295610fSBaptiste Daroussin.Cm I . 1967295610fSBaptiste Daroussin.It Cm 3 1977295610fSBaptiste DaroussinAn alias for 1987295610fSBaptiste Daroussin.Cm B . 1997295610fSBaptiste Daroussin.It Cm 4 2007295610fSBaptiste DaroussinAn alias for 2017295610fSBaptiste Daroussin.Cm BI . 2027295610fSBaptiste Daroussin.El 20361d06d6bSBaptiste Daroussin.Pp 20461d06d6bSBaptiste DaroussinExamples: 20561d06d6bSBaptiste Daroussin.Bl -tag -width Ds -offset indent -compact 20661d06d6bSBaptiste Daroussin.It Li \efBbold\efR 20761d06d6bSBaptiste DaroussinWrite in \fBbold\fP, then switch to regular font mode. 20861d06d6bSBaptiste Daroussin.It Li \efIitalic\efP 20961d06d6bSBaptiste DaroussinWrite in \fIitalic\fP, then return to previous font mode. 21061d06d6bSBaptiste Daroussin.It Li \ef(BIbold italic\efP 21161d06d6bSBaptiste DaroussinWrite in \f(BIbold italic\fP, then return to previous font mode. 21261d06d6bSBaptiste Daroussin.El 21361d06d6bSBaptiste Daroussin.Ss Whitespace 21461d06d6bSBaptiste DaroussinWhitespace consists of the space character. 21561d06d6bSBaptiste DaroussinIn text lines, whitespace is preserved within a line. 21661d06d6bSBaptiste DaroussinIn request and macro lines, whitespace delimits arguments and is discarded. 21761d06d6bSBaptiste Daroussin.Pp 21861d06d6bSBaptiste DaroussinUnescaped trailing spaces are stripped from text line input unless in a 21961d06d6bSBaptiste Daroussinliteral context. 22061d06d6bSBaptiste DaroussinIn general, trailing whitespace on any input line is discouraged for 22161d06d6bSBaptiste Daroussinreasons of portability. 2227295610fSBaptiste DaroussinIn the rare case that a space character is needed at the end of an 22361d06d6bSBaptiste Daroussininput line, it may be forced by 22461d06d6bSBaptiste Daroussin.Sq \e\ \e& . 22561d06d6bSBaptiste Daroussin.Pp 22661d06d6bSBaptiste DaroussinLiteral space characters can be produced in the output 22761d06d6bSBaptiste Daroussinusing escape sequences. 22861d06d6bSBaptiste DaroussinIn macro lines, they can also be included in arguments using quotation; see 22961d06d6bSBaptiste Daroussin.Sx MACRO SYNTAX 23061d06d6bSBaptiste Daroussinfor details. 23161d06d6bSBaptiste Daroussin.Pp 23261d06d6bSBaptiste DaroussinBlank text lines, which may include whitespace, are only permitted 23361d06d6bSBaptiste Daroussinwithin literal contexts. 23461d06d6bSBaptiste DaroussinIf the first character of a text line is a space, that line is printed 23561d06d6bSBaptiste Daroussinwith a leading newline. 23661d06d6bSBaptiste Daroussin.Ss Scaling Widths 23761d06d6bSBaptiste DaroussinMany requests and macros support scaled widths for their arguments. 23861d06d6bSBaptiste DaroussinThe syntax for a scaled width is 23961d06d6bSBaptiste Daroussin.Sq Li [+-]?[0-9]*.[0-9]*[:unit:] , 24061d06d6bSBaptiste Daroussinwhere a decimal must be preceded or followed by at least one digit. 24161d06d6bSBaptiste Daroussin.Pp 24261d06d6bSBaptiste DaroussinThe following scaling units are accepted: 24361d06d6bSBaptiste Daroussin.Pp 24461d06d6bSBaptiste Daroussin.Bl -tag -width Ds -offset indent -compact 24561d06d6bSBaptiste Daroussin.It c 24661d06d6bSBaptiste Daroussincentimetre 24761d06d6bSBaptiste Daroussin.It i 24861d06d6bSBaptiste Daroussininch 24961d06d6bSBaptiste Daroussin.It P 2507295610fSBaptiste Daroussinpica (1/6 inch) 25161d06d6bSBaptiste Daroussin.It p 2527295610fSBaptiste Daroussinpoint (1/72 inch) 25361d06d6bSBaptiste Daroussin.It f 25461d06d6bSBaptiste Daroussinscale 25561d06d6bSBaptiste Daroussin.Sq u 25661d06d6bSBaptiste Daroussinby 65536 25761d06d6bSBaptiste Daroussin.It v 25861d06d6bSBaptiste Daroussindefault vertical span 25961d06d6bSBaptiste Daroussin.It m 26061d06d6bSBaptiste Daroussinwidth of rendered 26161d06d6bSBaptiste Daroussin.Sq m 26261d06d6bSBaptiste Daroussin.Pq em 26361d06d6bSBaptiste Daroussincharacter 26461d06d6bSBaptiste Daroussin.It n 26561d06d6bSBaptiste Daroussinwidth of rendered 26661d06d6bSBaptiste Daroussin.Sq n 26761d06d6bSBaptiste Daroussin.Pq en 26861d06d6bSBaptiste Daroussincharacter 26961d06d6bSBaptiste Daroussin.It u 27061d06d6bSBaptiste Daroussindefault horizontal span for the terminal 27161d06d6bSBaptiste Daroussin.It M 2727295610fSBaptiste Daroussinmini-em (1/100 em) 27361d06d6bSBaptiste Daroussin.El 27461d06d6bSBaptiste Daroussin.Pp 27561d06d6bSBaptiste DaroussinUsing anything other than 27661d06d6bSBaptiste Daroussin.Sq m , 27761d06d6bSBaptiste Daroussin.Sq n , 27861d06d6bSBaptiste Daroussinor 27961d06d6bSBaptiste Daroussin.Sq v 28061d06d6bSBaptiste Daroussinis necessarily non-portable across output media. 28161d06d6bSBaptiste DaroussinSee 28261d06d6bSBaptiste Daroussin.Sx COMPATIBILITY . 28361d06d6bSBaptiste Daroussin.Pp 28461d06d6bSBaptiste DaroussinIf a scaling unit is not provided, the numerical value is interpreted 28561d06d6bSBaptiste Daroussinunder the default rules of 28661d06d6bSBaptiste Daroussin.Sq v 28761d06d6bSBaptiste Daroussinfor vertical spaces and 28861d06d6bSBaptiste Daroussin.Sq u 28961d06d6bSBaptiste Daroussinfor horizontal ones. 29061d06d6bSBaptiste Daroussin.Pp 29161d06d6bSBaptiste DaroussinExamples: 29261d06d6bSBaptiste Daroussin.Bl -tag -width ".Bl -tag -width 2i" -offset indent -compact 29361d06d6bSBaptiste Daroussin.It Li \&.Bl -tag -width 2i 29461d06d6bSBaptiste Daroussintwo-inch tagged list indentation in 29561d06d6bSBaptiste Daroussin.Xr mdoc 7 29661d06d6bSBaptiste Daroussin.It Li \&.HP 2i 29761d06d6bSBaptiste Daroussintwo-inch tagged list indentation in 29861d06d6bSBaptiste Daroussin.Xr man 7 29961d06d6bSBaptiste Daroussin.It Li \&.sp 2v 30061d06d6bSBaptiste Daroussintwo vertical spaces 30161d06d6bSBaptiste Daroussin.El 30261d06d6bSBaptiste Daroussin.Ss Sentence Spacing 30361d06d6bSBaptiste DaroussinEach sentence should terminate at the end of an input line. 30461d06d6bSBaptiste DaroussinBy doing this, a formatter will be able to apply the proper amount of 30561d06d6bSBaptiste Daroussinspacing after the end of sentence (unescaped) period, exclamation mark, 30661d06d6bSBaptiste Daroussinor question mark followed by zero or more non-sentence closing 30761d06d6bSBaptiste Daroussindelimiters 30861d06d6bSBaptiste Daroussin.Po 30961d06d6bSBaptiste Daroussin.Sq \&) , 31061d06d6bSBaptiste Daroussin.Sq \&] , 31161d06d6bSBaptiste Daroussin.Sq \&' , 31261d06d6bSBaptiste Daroussin.Sq \&" 31361d06d6bSBaptiste Daroussin.Pc . 31461d06d6bSBaptiste Daroussin.Pp 31561d06d6bSBaptiste DaroussinThe proper spacing is also intelligently preserved if a sentence ends at 31661d06d6bSBaptiste Daroussinthe boundary of a macro line. 31761d06d6bSBaptiste Daroussin.Pp 31845a5aec3SBaptiste DaroussinIf an input line happens to end with a period, exclamation or question 31945a5aec3SBaptiste Daroussinmark that isn't the end of a sentence, append a zero-width space 32045a5aec3SBaptiste Daroussin.Pq Sq \e& . 32145a5aec3SBaptiste Daroussin.Pp 32261d06d6bSBaptiste DaroussinExamples: 32361d06d6bSBaptiste Daroussin.Bd -literal -offset indent -compact 32461d06d6bSBaptiste DaroussinDo not end sentences mid-line like this. Instead, 32561d06d6bSBaptiste Daroussinend a sentence like this. 32661d06d6bSBaptiste DaroussinA macro would end like this: 32761d06d6bSBaptiste Daroussin\&.Xr mandoc 1 \&. 32845a5aec3SBaptiste DaroussinAn abbreviation at the end of an input line needs escaping, e.g.\e& 32945a5aec3SBaptiste Daroussinlike this. 33061d06d6bSBaptiste Daroussin.Ed 33161d06d6bSBaptiste Daroussin.Sh REQUEST SYNTAX 33261d06d6bSBaptiste DaroussinA request or macro line consists of: 33361d06d6bSBaptiste Daroussin.Pp 33461d06d6bSBaptiste Daroussin.Bl -enum -compact 33561d06d6bSBaptiste Daroussin.It 33661d06d6bSBaptiste Daroussinthe control character 33761d06d6bSBaptiste Daroussin.Sq \&. 33861d06d6bSBaptiste Daroussinor 33961d06d6bSBaptiste Daroussin.Sq \(aq 34061d06d6bSBaptiste Daroussinat the beginning of the line, 34161d06d6bSBaptiste Daroussin.It 34261d06d6bSBaptiste Daroussinoptionally an arbitrary amount of whitespace, 34361d06d6bSBaptiste Daroussin.It 34461d06d6bSBaptiste Daroussinthe name of the request or the macro, which is one word of arbitrary 34561d06d6bSBaptiste Daroussinlength, terminated by whitespace, 34661d06d6bSBaptiste Daroussin.It 34761d06d6bSBaptiste Daroussinand zero or more arguments delimited by whitespace. 34861d06d6bSBaptiste Daroussin.El 34961d06d6bSBaptiste Daroussin.Pp 35061d06d6bSBaptiste DaroussinThus, the following request lines are all equivalent: 35161d06d6bSBaptiste Daroussin.Bd -literal -offset indent 35261d06d6bSBaptiste Daroussin\&.ig end 35361d06d6bSBaptiste Daroussin\&.ig end 35461d06d6bSBaptiste Daroussin\&. ig end 35561d06d6bSBaptiste Daroussin.Ed 35661d06d6bSBaptiste Daroussin.Sh MACRO SYNTAX 35761d06d6bSBaptiste DaroussinMacros are provided by the 35861d06d6bSBaptiste Daroussin.Xr mdoc 7 35961d06d6bSBaptiste Daroussinand 36061d06d6bSBaptiste Daroussin.Xr man 7 36161d06d6bSBaptiste Daroussinlanguages and can be defined by the 3627295610fSBaptiste Daroussin.Ic \&de 36361d06d6bSBaptiste Daroussinrequest. 36461d06d6bSBaptiste DaroussinWhen called, they follow the same syntax as requests, except that 36561d06d6bSBaptiste Daroussinmacro arguments may optionally be quoted by enclosing them 36661d06d6bSBaptiste Daroussinin double quote characters 36761d06d6bSBaptiste Daroussin.Pq Sq \(dq . 36861d06d6bSBaptiste DaroussinQuoted text, even if it contains whitespace or would cause 36961d06d6bSBaptiste Daroussina macro invocation when unquoted, is always considered literal text. 37061d06d6bSBaptiste DaroussinInside quoted text, pairs of double quote characters 37161d06d6bSBaptiste Daroussin.Pq Sq Qq 37261d06d6bSBaptiste Daroussinresolve to single double quote characters. 37361d06d6bSBaptiste Daroussin.Pp 37461d06d6bSBaptiste DaroussinTo be recognised as the beginning of a quoted argument, the opening 37561d06d6bSBaptiste Daroussinquote character must be preceded by a space character. 37661d06d6bSBaptiste DaroussinA quoted argument extends to the next double quote character that is not 37761d06d6bSBaptiste Daroussinpart of a pair, or to the end of the input line, whichever comes earlier. 37861d06d6bSBaptiste DaroussinLeaving out the terminating double quote character at the end of the line 37961d06d6bSBaptiste Daroussinis discouraged. 38061d06d6bSBaptiste DaroussinFor clarity, if more arguments follow on the same input line, 38161d06d6bSBaptiste Daroussinit is recommended to follow the terminating double quote character 38261d06d6bSBaptiste Daroussinby a space character; in case the next character after the terminating 38361d06d6bSBaptiste Daroussindouble quote character is anything else, it is regarded as the beginning 38461d06d6bSBaptiste Daroussinof the next, unquoted argument. 38561d06d6bSBaptiste Daroussin.Pp 38661d06d6bSBaptiste DaroussinBoth in quoted and unquoted arguments, pairs of backslashes 38761d06d6bSBaptiste Daroussin.Pq Sq \e\e 38861d06d6bSBaptiste Daroussinresolve to single backslashes. 38961d06d6bSBaptiste DaroussinIn unquoted arguments, space characters can alternatively be included 39061d06d6bSBaptiste Daroussinby preceding them with a backslash 39161d06d6bSBaptiste Daroussin.Pq Sq \e\~ , 39261d06d6bSBaptiste Daroussinbut quoting is usually better for clarity. 39361d06d6bSBaptiste Daroussin.Pp 39461d06d6bSBaptiste DaroussinExamples: 39561d06d6bSBaptiste Daroussin.Bl -tag -width Ds -offset indent -compact 39661d06d6bSBaptiste Daroussin.It Li .Fn strlen \(dqconst char *s\(dq 39761d06d6bSBaptiste DaroussinGroup arguments 39861d06d6bSBaptiste Daroussin.Qq const char *s 39961d06d6bSBaptiste Daroussininto one function argument. 40061d06d6bSBaptiste DaroussinIf unspecified, 40161d06d6bSBaptiste Daroussin.Qq const , 40261d06d6bSBaptiste Daroussin.Qq char , 40361d06d6bSBaptiste Daroussinand 40461d06d6bSBaptiste Daroussin.Qq *s 40561d06d6bSBaptiste Daroussinwould be considered separate arguments. 40661d06d6bSBaptiste Daroussin.It Li .Op \(dqFl a\(dq 40761d06d6bSBaptiste DaroussinConsider 40861d06d6bSBaptiste Daroussin.Qq \&Fl a 40961d06d6bSBaptiste Daroussinas literal text instead of a flag macro. 41061d06d6bSBaptiste Daroussin.El 41161d06d6bSBaptiste Daroussin.Sh REQUEST REFERENCE 41261d06d6bSBaptiste DaroussinThe 41361d06d6bSBaptiste Daroussin.Xr mandoc 1 41461d06d6bSBaptiste Daroussin.Nm 41561d06d6bSBaptiste Daroussinparser recognises the following requests. 41661d06d6bSBaptiste DaroussinFor requests marked as "ignored" or "unsupported", any arguments are 41761d06d6bSBaptiste Daroussinignored, and the number of arguments is not checked. 41861d06d6bSBaptiste Daroussin.Bl -tag -width Ds 41961d06d6bSBaptiste Daroussin.It Ic \&ab Op Ar message 42061d06d6bSBaptiste DaroussinAbort processing. 42161d06d6bSBaptiste DaroussinCurrently unsupported. 42261d06d6bSBaptiste Daroussin.It Ic \&ad Op Cm b | c | l | n | r 42361d06d6bSBaptiste DaroussinSet line adjustment mode for subsequent text. 42461d06d6bSBaptiste DaroussinCurrently ignored. 42561d06d6bSBaptiste Daroussin.It Ic \&af Ar registername format 42661d06d6bSBaptiste DaroussinAssign an output format to a number register. 42761d06d6bSBaptiste DaroussinCurrently ignored. 42861d06d6bSBaptiste Daroussin.It Ic \&aln Ar newname oldname 42961d06d6bSBaptiste DaroussinCreate an alias for a number register. 43061d06d6bSBaptiste DaroussinCurrently unsupported. 43161d06d6bSBaptiste Daroussin.It Ic \&als Ar newname oldname 43261d06d6bSBaptiste DaroussinCreate an alias for a request, string, macro, or diversion. 43361d06d6bSBaptiste Daroussin.It Ic \&am Ar macroname Op Ar endmacro 43461d06d6bSBaptiste DaroussinAppend to a macro definition. 43561d06d6bSBaptiste DaroussinThe syntax of this request is the same as that of 43661d06d6bSBaptiste Daroussin.Ic \&de . 43761d06d6bSBaptiste Daroussin.It Ic \&am1 Ar macroname Op Ar endmacro 43861d06d6bSBaptiste DaroussinAppend to a macro definition, switching roff compatibility mode off 43961d06d6bSBaptiste Daroussinduring macro execution (groff extension). 44061d06d6bSBaptiste DaroussinThe syntax of this request is the same as that of 44161d06d6bSBaptiste Daroussin.Ic \&de1 . 44261d06d6bSBaptiste DaroussinSince 44361d06d6bSBaptiste Daroussin.Xr mandoc 1 44461d06d6bSBaptiste Daroussindoes not implement 44561d06d6bSBaptiste Daroussin.Nm 44661d06d6bSBaptiste Daroussincompatibility mode at all, it handles this request as an alias for 44761d06d6bSBaptiste Daroussin.Ic \&am . 44861d06d6bSBaptiste Daroussin.It Ic \&ami Ar macrostring Op Ar endstring 44961d06d6bSBaptiste DaroussinAppend to a macro definition, specifying the macro name indirectly 45061d06d6bSBaptiste Daroussin(groff extension). 45161d06d6bSBaptiste DaroussinThe syntax of this request is the same as that of 45261d06d6bSBaptiste Daroussin.Ic \&dei . 45361d06d6bSBaptiste Daroussin.It Ic \&ami1 Ar macrostring Op Ar endstring 45461d06d6bSBaptiste DaroussinAppend to a macro definition, specifying the macro name indirectly 45561d06d6bSBaptiste Daroussinand switching roff compatibility mode off during macro execution 45661d06d6bSBaptiste Daroussin(groff extension). 45761d06d6bSBaptiste DaroussinThe syntax of this request is the same as that of 45861d06d6bSBaptiste Daroussin.Ic \&dei1 . 45961d06d6bSBaptiste DaroussinSince 46061d06d6bSBaptiste Daroussin.Xr mandoc 1 46161d06d6bSBaptiste Daroussindoes not implement 46261d06d6bSBaptiste Daroussin.Nm 46361d06d6bSBaptiste Daroussincompatibility mode at all, it handles this request as an alias for 46461d06d6bSBaptiste Daroussin.Ic \&ami . 46561d06d6bSBaptiste Daroussin.It Ic \&as Ar stringname Op Ar string 46661d06d6bSBaptiste DaroussinAppend to a user-defined string. 46761d06d6bSBaptiste DaroussinThe syntax of this request is the same as that of 4687295610fSBaptiste Daroussin.Ic \&ds . 46961d06d6bSBaptiste DaroussinIf a user-defined string with the specified name does not yet exist, 47061d06d6bSBaptiste Daroussinit is set to the empty string before appending. 47161d06d6bSBaptiste Daroussin.It Ic \&as1 Ar stringname Op Ar string 47261d06d6bSBaptiste DaroussinAppend to a user-defined string, switching roff compatibility mode off 47361d06d6bSBaptiste Daroussinduring macro execution (groff extension). 47461d06d6bSBaptiste DaroussinThe syntax of this request is the same as that of 47561d06d6bSBaptiste Daroussin.Ic \&ds1 . 47661d06d6bSBaptiste DaroussinSince 47761d06d6bSBaptiste Daroussin.Xr mandoc 1 47861d06d6bSBaptiste Daroussindoes not implement 47961d06d6bSBaptiste Daroussin.Nm 48061d06d6bSBaptiste Daroussincompatibility mode at all, it handles this request as an alias for 48161d06d6bSBaptiste Daroussin.Ic \&as . 48261d06d6bSBaptiste Daroussin.It Ic \&asciify Ar divname 48361d06d6bSBaptiste DaroussinFully unformat a diversion. 48461d06d6bSBaptiste DaroussinCurrently unsupported. 48561d06d6bSBaptiste Daroussin.It Ic \&backtrace 48661d06d6bSBaptiste DaroussinPrint a backtrace of the input stack. 48761d06d6bSBaptiste DaroussinThis is a groff extension and currently ignored. 48861d06d6bSBaptiste Daroussin.It Ic \&bd Ar font Oo Ar curfont Oc Op Ar offset 48961d06d6bSBaptiste DaroussinArtificially embolden by repeated printing with small shifts. 49061d06d6bSBaptiste DaroussinCurrently ignored. 49161d06d6bSBaptiste Daroussin.It Ic \&bleedat Ar left top width height 49261d06d6bSBaptiste DaroussinSet the BleedBox page parameter for PDF generation. 49361d06d6bSBaptiste DaroussinThis is a Heirloom extension and currently ignored. 49461d06d6bSBaptiste Daroussin.It Ic \&blm Ar macroname 49561d06d6bSBaptiste DaroussinSet a blank line trap. 49661d06d6bSBaptiste DaroussinCurrently unsupported. 49761d06d6bSBaptiste Daroussin.It Ic \&box Ar divname 49861d06d6bSBaptiste DaroussinBegin a diversion without including a partially filled line. 49961d06d6bSBaptiste DaroussinCurrently unsupported. 50061d06d6bSBaptiste Daroussin.It Ic \&boxa Ar divname 50161d06d6bSBaptiste DaroussinAdd to a diversion without including a partially filled line. 50261d06d6bSBaptiste DaroussinCurrently unsupported. 50361d06d6bSBaptiste Daroussin.It Ic \&bp Oo Cm + Ns | Ns Cm - Oc Ns Ar pagenumber 50461d06d6bSBaptiste DaroussinBegin a new page. 50561d06d6bSBaptiste DaroussinCurrently ignored. 50661d06d6bSBaptiste Daroussin.It Ic \&BP Ar source height width position offset flags label 50761d06d6bSBaptiste DaroussinDefine a frame and place a picture in it. 50861d06d6bSBaptiste DaroussinThis is a Heirloom extension and currently unsupported. 50961d06d6bSBaptiste Daroussin.It Ic \&br 51061d06d6bSBaptiste DaroussinBreak the output line. 51161d06d6bSBaptiste Daroussin.It Ic \&break 51245a5aec3SBaptiste DaroussinBreak out of the innermost 51361d06d6bSBaptiste Daroussin.Ic \&while 51461d06d6bSBaptiste Daroussinloop. 51561d06d6bSBaptiste Daroussin.It Ic \&breakchar Ar char ... 51661d06d6bSBaptiste DaroussinOptional line break characters. 51761d06d6bSBaptiste DaroussinThis is a Heirloom extension and currently ignored. 51861d06d6bSBaptiste Daroussin.It Ic \&brnl Ar N 51961d06d6bSBaptiste DaroussinBreak output line after the next 52061d06d6bSBaptiste Daroussin.Ar N 52161d06d6bSBaptiste Daroussininput lines. 52261d06d6bSBaptiste DaroussinThis is a Heirloom extension and currently ignored. 52361d06d6bSBaptiste Daroussin.It Ic \&brp 52461d06d6bSBaptiste DaroussinBreak and spread output line. 52561d06d6bSBaptiste DaroussinCurrently, this is implemented as an alias for 52661d06d6bSBaptiste Daroussin.Ic \&br . 52761d06d6bSBaptiste Daroussin.It Ic \&brpnl Ar N 52861d06d6bSBaptiste DaroussinBreak and spread output line after the next 52961d06d6bSBaptiste Daroussin.Ar N 53061d06d6bSBaptiste Daroussininput lines. 53161d06d6bSBaptiste DaroussinThis is a Heirloom extension and currently ignored. 53261d06d6bSBaptiste Daroussin.It Ic \&c2 Op Ar char 53361d06d6bSBaptiste DaroussinChange the no-break control character. 53461d06d6bSBaptiste DaroussinCurrently unsupported. 53561d06d6bSBaptiste Daroussin.It Ic \&cc Op Ar char 53661d06d6bSBaptiste DaroussinChange the control character. 53761d06d6bSBaptiste DaroussinIf 53861d06d6bSBaptiste Daroussin.Ar char 53961d06d6bSBaptiste Daroussinis not specified, the control character is reset to 54061d06d6bSBaptiste Daroussin.Sq \&. . 54161d06d6bSBaptiste DaroussinTrailing characters are ignored. 54261d06d6bSBaptiste Daroussin.It Ic \&ce Op Ar N 54361d06d6bSBaptiste DaroussinCenter the next 54461d06d6bSBaptiste Daroussin.Ar N 54561d06d6bSBaptiste Daroussininput lines without filling. 54661d06d6bSBaptiste Daroussin.Ar N 54761d06d6bSBaptiste Daroussindefaults to 1. 54861d06d6bSBaptiste DaroussinAn argument of 0 or less ends centering. 54961d06d6bSBaptiste DaroussinCurrently, high level macros abort centering. 55061d06d6bSBaptiste Daroussin.It Ic \&cf Ar filename 55161d06d6bSBaptiste DaroussinOutput the contents of a file. 55261d06d6bSBaptiste DaroussinIgnored because insecure. 55361d06d6bSBaptiste Daroussin.It Ic \&cflags Ar flags char ... 55461d06d6bSBaptiste DaroussinSet character flags. 55561d06d6bSBaptiste DaroussinThis is a groff extension and currently ignored. 55661d06d6bSBaptiste Daroussin.It Ic \&ch Ar macroname Op Ar dist 55761d06d6bSBaptiste DaroussinChange a trap location. 55861d06d6bSBaptiste DaroussinCurrently ignored. 5597295610fSBaptiste Daroussin.It Ic \&char Ar glyph Op Ar string 5607295610fSBaptiste DaroussinDefine or redefine the ASCII character or character escape sequence 5617295610fSBaptiste Daroussin.Ar glyph 5627295610fSBaptiste Daroussinto be rendered as 5637295610fSBaptiste Daroussin.Ar string , 5647295610fSBaptiste Daroussinwhich can be empty. 5657295610fSBaptiste DaroussinOnly partially supported in 5667295610fSBaptiste Daroussin.Xr mandoc 1 ; 5677295610fSBaptiste Daroussinmay interact incorrectly with 5687295610fSBaptiste Daroussin.Ic \&tr . 56961d06d6bSBaptiste Daroussin.It Ic \&chop Ar stringname 57061d06d6bSBaptiste DaroussinRemove the last character from a macro, string, or diversion. 57161d06d6bSBaptiste DaroussinCurrently unsupported. 57261d06d6bSBaptiste Daroussin.It Ic \&class Ar classname char ... 57361d06d6bSBaptiste DaroussinDefine a character class. 57461d06d6bSBaptiste DaroussinThis is a groff extension and currently ignored. 57561d06d6bSBaptiste Daroussin.It Ic \&close Ar streamname 57661d06d6bSBaptiste DaroussinClose an open file. 57761d06d6bSBaptiste DaroussinIgnored because insecure. 57861d06d6bSBaptiste Daroussin.It Ic \&CL Ar color text 57961d06d6bSBaptiste DaroussinPrint text in color. 58061d06d6bSBaptiste DaroussinThis is a Heirloom extension and currently unsupported. 58161d06d6bSBaptiste Daroussin.It Ic \&color Op Cm 1 | 0 58261d06d6bSBaptiste DaroussinActivate or deactivate colors. 58361d06d6bSBaptiste DaroussinThis is a groff extension and currently ignored. 58461d06d6bSBaptiste Daroussin.It Ic \&composite Ar from to 58561d06d6bSBaptiste DaroussinDefine a name component for composite glyph names. 58661d06d6bSBaptiste DaroussinThis is a groff extension and currently unsupported. 58761d06d6bSBaptiste Daroussin.It Ic \&continue 58861d06d6bSBaptiste DaroussinImmediately start the next iteration of a 58961d06d6bSBaptiste Daroussin.Ic \&while 59061d06d6bSBaptiste Daroussinloop. 59161d06d6bSBaptiste DaroussinCurrently unsupported. 59261d06d6bSBaptiste Daroussin.It Ic \&cp Op Cm 1 | 0 59361d06d6bSBaptiste DaroussinSwitch 59461d06d6bSBaptiste Daroussin.Nm 59561d06d6bSBaptiste Daroussincompatibility mode on or off. 59661d06d6bSBaptiste DaroussinCurrently ignored. 59761d06d6bSBaptiste Daroussin.It Ic \&cropat Ar left top width height 59861d06d6bSBaptiste DaroussinSet the CropBox page parameter for PDF generation. 59961d06d6bSBaptiste DaroussinThis is a Heirloom extension and currently ignored. 60061d06d6bSBaptiste Daroussin.It Ic \&cs Ar font Op Ar width Op Ar emsize 60161d06d6bSBaptiste DaroussinConstant character spacing mode. 60261d06d6bSBaptiste DaroussinCurrently ignored. 60361d06d6bSBaptiste Daroussin.It Ic \&cu Op Ar N 60461d06d6bSBaptiste DaroussinUnderline next 60561d06d6bSBaptiste Daroussin.Ar N 60661d06d6bSBaptiste Daroussininput lines including whitespace. 60761d06d6bSBaptiste DaroussinCurrently ignored. 60861d06d6bSBaptiste Daroussin.It Ic \&da Ar divname 60961d06d6bSBaptiste DaroussinAppend to a diversion. 61061d06d6bSBaptiste DaroussinCurrently unsupported. 61161d06d6bSBaptiste Daroussin.It Ic \&dch Ar macroname Op Ar dist 61261d06d6bSBaptiste DaroussinChange a trap location in the current diversion. 61361d06d6bSBaptiste DaroussinThis is a Heirloom extension and currently unsupported. 61461d06d6bSBaptiste Daroussin.It Ic \&de Ar macroname Op Ar endmacro 61561d06d6bSBaptiste DaroussinDefine a 61661d06d6bSBaptiste Daroussin.Nm 61761d06d6bSBaptiste Daroussinmacro. 61861d06d6bSBaptiste DaroussinIts syntax can be either 61961d06d6bSBaptiste Daroussin.Bd -literal -offset indent 62061d06d6bSBaptiste Daroussin.Pf . Ic \&de Ar macroname 62161d06d6bSBaptiste Daroussin.Ar definition 62261d06d6bSBaptiste Daroussin\&.. 62361d06d6bSBaptiste Daroussin.Ed 62461d06d6bSBaptiste Daroussin.Pp 62561d06d6bSBaptiste Daroussinor 62661d06d6bSBaptiste Daroussin.Bd -literal -offset indent 627*6d38604fSBaptiste Daroussin.Pf . Ic \&de Ar macroname endmacro 62861d06d6bSBaptiste Daroussin.Ar definition 62961d06d6bSBaptiste Daroussin.Pf . Ar endmacro 63061d06d6bSBaptiste Daroussin.Ed 63161d06d6bSBaptiste Daroussin.Pp 63261d06d6bSBaptiste DaroussinBoth forms define or redefine the macro 63361d06d6bSBaptiste Daroussin.Ar macroname 63461d06d6bSBaptiste Daroussinto represent the 63561d06d6bSBaptiste Daroussin.Ar definition , 63661d06d6bSBaptiste Daroussinwhich may consist of one or more input lines, including the newline 63761d06d6bSBaptiste Daroussincharacters terminating each line, optionally containing calls to 63861d06d6bSBaptiste Daroussin.Nm 63961d06d6bSBaptiste Daroussinrequests, 64061d06d6bSBaptiste Daroussin.Nm 64161d06d6bSBaptiste Daroussinmacros or high-level macros like 64261d06d6bSBaptiste Daroussin.Xr man 7 64361d06d6bSBaptiste Daroussinor 64461d06d6bSBaptiste Daroussin.Xr mdoc 7 64561d06d6bSBaptiste Daroussinmacros, whichever applies to the document in question. 64661d06d6bSBaptiste Daroussin.Pp 64761d06d6bSBaptiste DaroussinSpecifying a custom 64861d06d6bSBaptiste Daroussin.Ar endmacro 6497295610fSBaptiste Daroussinworks in the same way as for 65061d06d6bSBaptiste Daroussin.Ic \&ig ; 65161d06d6bSBaptiste Daroussinnamely, the call to 65261d06d6bSBaptiste Daroussin.Sq Pf . Ar endmacro 65361d06d6bSBaptiste Daroussinfirst ends the 65461d06d6bSBaptiste Daroussin.Ar definition , 65561d06d6bSBaptiste Daroussinand after that, it is also evaluated as a 65661d06d6bSBaptiste Daroussin.Nm 65761d06d6bSBaptiste Daroussinrequest or 65861d06d6bSBaptiste Daroussin.Nm 65961d06d6bSBaptiste Daroussinmacro, but not as a high-level macro. 66061d06d6bSBaptiste Daroussin.Pp 66161d06d6bSBaptiste DaroussinThe macro can be invoked later using the syntax 66261d06d6bSBaptiste Daroussin.Pp 66361d06d6bSBaptiste Daroussin.D1 Pf . Ar macroname Op Ar argument Op Ar argument ... 66461d06d6bSBaptiste Daroussin.Pp 66561d06d6bSBaptiste DaroussinRegarding argument parsing, see 66661d06d6bSBaptiste Daroussin.Sx MACRO SYNTAX 66761d06d6bSBaptiste Daroussinabove. 66861d06d6bSBaptiste Daroussin.Pp 66961d06d6bSBaptiste DaroussinThe line invoking the macro will be replaced 67061d06d6bSBaptiste Daroussinin the input stream by the 67161d06d6bSBaptiste Daroussin.Ar definition , 67261d06d6bSBaptiste Daroussinreplacing all occurrences of 67361d06d6bSBaptiste Daroussin.No \e\e$ Ns Ar N , 67461d06d6bSBaptiste Daroussinwhere 67561d06d6bSBaptiste Daroussin.Ar N 67661d06d6bSBaptiste Daroussinis a digit, by the 67761d06d6bSBaptiste Daroussin.Ar N Ns th Ar argument . 67861d06d6bSBaptiste DaroussinFor example, 67961d06d6bSBaptiste Daroussin.Bd -literal -offset indent 68061d06d6bSBaptiste Daroussin\&.de ZN 68161d06d6bSBaptiste Daroussin\efI\e^\e\e$1\e^\efP\e\e$2 68261d06d6bSBaptiste Daroussin\&.. 68361d06d6bSBaptiste Daroussin\&.ZN XtFree . 68461d06d6bSBaptiste Daroussin.Ed 68561d06d6bSBaptiste Daroussin.Pp 68661d06d6bSBaptiste Daroussinproduces 68761d06d6bSBaptiste Daroussin.Pp 68861d06d6bSBaptiste Daroussin.D1 \efI\e^XtFree\e^\efP. 68961d06d6bSBaptiste Daroussin.Pp 69061d06d6bSBaptiste Daroussinin the input stream, and thus in the output: \fI\^XtFree\^\fP. 69161d06d6bSBaptiste DaroussinEach occurrence of \e\e$* is replaced with all the arguments, 6927295610fSBaptiste Daroussinjoined together with single space characters. 6937295610fSBaptiste DaroussinThe variant \e\e$@ is similar, except that each argument is 6947295610fSBaptiste Daroussinindividually quoted. 69561d06d6bSBaptiste Daroussin.Pp 69661d06d6bSBaptiste DaroussinSince macros and user-defined strings share a common string table, 69761d06d6bSBaptiste Daroussindefining a macro 69861d06d6bSBaptiste Daroussin.Ar macroname 69961d06d6bSBaptiste Daroussinclobbers the user-defined string 70061d06d6bSBaptiste Daroussin.Ar macroname , 70161d06d6bSBaptiste Daroussinand the 70261d06d6bSBaptiste Daroussin.Ar definition 70361d06d6bSBaptiste Daroussincan also be printed using the 70461d06d6bSBaptiste Daroussin.Sq \e* 70561d06d6bSBaptiste Daroussinstring interpolation syntax described below 70661d06d6bSBaptiste Daroussin.Ic ds , 70761d06d6bSBaptiste Daroussinbut this is rarely useful because every macro definition contains at least 70861d06d6bSBaptiste Daroussinone explicit newline character. 70961d06d6bSBaptiste Daroussin.Pp 71061d06d6bSBaptiste DaroussinIn order to prevent endless recursion, both groff and 71161d06d6bSBaptiste Daroussin.Xr mandoc 1 71261d06d6bSBaptiste Daroussinlimit the stack depth for expanding macros and strings 71361d06d6bSBaptiste Daroussinto a large, but finite number, and 71461d06d6bSBaptiste Daroussin.Xr mandoc 1 71561d06d6bSBaptiste Daroussinalso limits the length of the expanded input line. 71661d06d6bSBaptiste DaroussinDo not rely on the exact values of these limits. 71761d06d6bSBaptiste Daroussin.It Ic \&de1 Ar macroname Op Ar endmacro 71861d06d6bSBaptiste DaroussinDefine a 71961d06d6bSBaptiste Daroussin.Nm 72061d06d6bSBaptiste Daroussinmacro that will be executed with 72161d06d6bSBaptiste Daroussin.Nm 72261d06d6bSBaptiste Daroussincompatibility mode switched off during macro execution. 72361d06d6bSBaptiste DaroussinThis is a groff extension. 72461d06d6bSBaptiste DaroussinSince 72561d06d6bSBaptiste Daroussin.Xr mandoc 1 72661d06d6bSBaptiste Daroussindoes not implement 72761d06d6bSBaptiste Daroussin.Nm 72861d06d6bSBaptiste Daroussincompatibility mode at all, it handles this request as an alias for 72961d06d6bSBaptiste Daroussin.Ic \&de . 73061d06d6bSBaptiste Daroussin.It Ic \&defcolor Ar newname scheme component ... 73161d06d6bSBaptiste DaroussinDefine a color name. 73261d06d6bSBaptiste DaroussinThis is a groff extension and currently ignored. 73361d06d6bSBaptiste Daroussin.It Ic \&dei Ar macrostring Op Ar endstring 73461d06d6bSBaptiste DaroussinDefine a 73561d06d6bSBaptiste Daroussin.Nm 73661d06d6bSBaptiste Daroussinmacro, specifying the macro name indirectly (groff extension). 73761d06d6bSBaptiste DaroussinThe syntax of this request is the same as that of 73861d06d6bSBaptiste Daroussin.Ic \&de . 73961d06d6bSBaptiste DaroussinThe effect is the same as: 74061d06d6bSBaptiste Daroussin.Pp 74161d06d6bSBaptiste Daroussin.D1 Pf . Cm \&de No \e* Ns Bo Ar macrostring Bc Op \e* Ns Bq Ar endstring 74261d06d6bSBaptiste Daroussin.It Ic \&dei1 Ar macrostring Op Ar endstring 74361d06d6bSBaptiste DaroussinDefine a 74461d06d6bSBaptiste Daroussin.Nm 74561d06d6bSBaptiste Daroussinmacro that will be executed with 74661d06d6bSBaptiste Daroussin.Nm 74761d06d6bSBaptiste Daroussincompatibility mode switched off during macro execution, 74861d06d6bSBaptiste Daroussinspecifying the macro name indirectly (groff extension). 74961d06d6bSBaptiste DaroussinSince 75061d06d6bSBaptiste Daroussin.Xr mandoc 1 75161d06d6bSBaptiste Daroussindoes not implement 75261d06d6bSBaptiste Daroussin.Nm 75361d06d6bSBaptiste Daroussincompatibility mode at all, it handles this request as an alias for 75461d06d6bSBaptiste Daroussin.Ic \&dei . 75561d06d6bSBaptiste Daroussin.It Ic \&device Ar string ... 75661d06d6bSBaptiste Daroussin.It Ic \&devicem Ar stringname 75761d06d6bSBaptiste DaroussinThese two requests only make sense with the groff-specific intermediate 75861d06d6bSBaptiste Daroussinoutput format and are unsupported. 75961d06d6bSBaptiste Daroussin.It Ic \&di Ar divname 76061d06d6bSBaptiste DaroussinBegin a diversion. 76161d06d6bSBaptiste DaroussinCurrently unsupported. 76261d06d6bSBaptiste Daroussin.It Ic \&do Ar command Op Ar argument ... 76361d06d6bSBaptiste DaroussinExecute 76461d06d6bSBaptiste Daroussin.Nm 76561d06d6bSBaptiste Daroussinrequest or macro line with compatibility mode disabled. 76661d06d6bSBaptiste DaroussinCurrently unsupported. 76761d06d6bSBaptiste Daroussin.It Ic \&ds Ar stringname Op Oo \(dq Oc Ns Ar string 76861d06d6bSBaptiste DaroussinDefine a user-defined string. 76961d06d6bSBaptiste DaroussinThe 77061d06d6bSBaptiste Daroussin.Ar stringname 77161d06d6bSBaptiste Daroussinand 77261d06d6bSBaptiste Daroussin.Ar string 77361d06d6bSBaptiste Daroussinarguments are space-separated. 77461d06d6bSBaptiste DaroussinIf the 77561d06d6bSBaptiste Daroussin.Ar string 77661d06d6bSBaptiste Daroussinbegins with a double-quote character, that character will not be part 77761d06d6bSBaptiste Daroussinof the string. 77861d06d6bSBaptiste DaroussinAll remaining characters on the input line form the 77961d06d6bSBaptiste Daroussin.Ar string , 78061d06d6bSBaptiste Daroussinincluding whitespace and double-quote characters, even trailing ones. 78161d06d6bSBaptiste Daroussin.Pp 78261d06d6bSBaptiste DaroussinThe 78361d06d6bSBaptiste Daroussin.Ar string 78461d06d6bSBaptiste Daroussincan be interpolated into subsequent text by using 78561d06d6bSBaptiste Daroussin.No \e* Ns Bq Ar stringname 78661d06d6bSBaptiste Daroussinfor a 78761d06d6bSBaptiste Daroussin.Ar stringname 78861d06d6bSBaptiste Daroussinof arbitrary length, or \e*(NN or \e*N if the length of 78961d06d6bSBaptiste Daroussin.Ar stringname 79061d06d6bSBaptiste Daroussinis two or one characters, respectively. 79161d06d6bSBaptiste DaroussinInterpolation can be prevented by escaping the leading backslash; 79261d06d6bSBaptiste Daroussinthat is, an asterisk preceded by an even number of backslashes 79361d06d6bSBaptiste Daroussindoes not trigger string interpolation. 79461d06d6bSBaptiste Daroussin.Pp 79561d06d6bSBaptiste DaroussinSince user-defined strings and macros share a common string table, 79661d06d6bSBaptiste Daroussindefining a string 79761d06d6bSBaptiste Daroussin.Ar stringname 79861d06d6bSBaptiste Daroussinclobbers the macro 79961d06d6bSBaptiste Daroussin.Ar stringname , 80061d06d6bSBaptiste Daroussinand the 80161d06d6bSBaptiste Daroussin.Ar stringname 80261d06d6bSBaptiste Daroussinused for defining a string can also be invoked as a macro, 80361d06d6bSBaptiste Daroussinin which case the following input line will be appended to the 80461d06d6bSBaptiste Daroussin.Ar string , 80561d06d6bSBaptiste Daroussinforming a new input line passed to the 80661d06d6bSBaptiste Daroussin.Nm 80761d06d6bSBaptiste Daroussinparser. 80861d06d6bSBaptiste DaroussinFor example, 80961d06d6bSBaptiste Daroussin.Bd -literal -offset indent 81061d06d6bSBaptiste Daroussin\&.ds badidea .S 81161d06d6bSBaptiste Daroussin\&.badidea 81261d06d6bSBaptiste DaroussinH SYNOPSIS 81361d06d6bSBaptiste Daroussin.Ed 81461d06d6bSBaptiste Daroussin.Pp 81561d06d6bSBaptiste Daroussininvokes the 81661d06d6bSBaptiste Daroussin.Ic SH 81761d06d6bSBaptiste Daroussinmacro when used in a 81861d06d6bSBaptiste Daroussin.Xr man 7 81961d06d6bSBaptiste Daroussindocument. 82061d06d6bSBaptiste DaroussinSuch abuse is of course strongly discouraged. 82161d06d6bSBaptiste Daroussin.It Ic \&ds1 Ar stringname Op Oo \(dq Oc Ns Ar string 82261d06d6bSBaptiste DaroussinDefine a user-defined string that will be expanded with 82361d06d6bSBaptiste Daroussin.Nm 82461d06d6bSBaptiste Daroussincompatibility mode switched off during string expansion. 82561d06d6bSBaptiste DaroussinThis is a groff extension. 82661d06d6bSBaptiste DaroussinSince 82761d06d6bSBaptiste Daroussin.Xr mandoc 1 82861d06d6bSBaptiste Daroussindoes not implement 82961d06d6bSBaptiste Daroussin.Nm 83061d06d6bSBaptiste Daroussincompatibility mode at all, it handles this request as an alias for 83161d06d6bSBaptiste Daroussin.Ic \&ds . 83261d06d6bSBaptiste Daroussin.It Ic \&dwh Ar dist macroname 83361d06d6bSBaptiste DaroussinSet a location trap in the current diversion. 83461d06d6bSBaptiste DaroussinThis is a Heirloom extension and currently unsupported. 83561d06d6bSBaptiste Daroussin.It Ic \&dt Op Ar dist macroname 83661d06d6bSBaptiste DaroussinSet a trap within a diversion. 83761d06d6bSBaptiste DaroussinCurrently unsupported. 83861d06d6bSBaptiste Daroussin.It Ic \&ec Op Ar char 83961d06d6bSBaptiste DaroussinEnable the escape mechanism and change the escape character. 84061d06d6bSBaptiste DaroussinThe 84161d06d6bSBaptiste Daroussin.Ar char 84261d06d6bSBaptiste Daroussinargument defaults to the backslash 84361d06d6bSBaptiste Daroussin.Pq Sq \e . 84461d06d6bSBaptiste Daroussin.It Ic \&ecr 84561d06d6bSBaptiste DaroussinRestore the escape character. 84661d06d6bSBaptiste DaroussinCurrently unsupported. 84761d06d6bSBaptiste Daroussin.It Ic \&ecs 84861d06d6bSBaptiste DaroussinSave the escape character. 84961d06d6bSBaptiste DaroussinCurrently unsupported. 85061d06d6bSBaptiste Daroussin.It Ic \&el Ar body 85161d06d6bSBaptiste DaroussinThe 85261d06d6bSBaptiste Daroussin.Dq else 85361d06d6bSBaptiste Daroussinhalf of an if/else conditional. 85461d06d6bSBaptiste DaroussinPops a result off the stack of conditional evaluations pushed by 85561d06d6bSBaptiste Daroussin.Ic \&ie 85661d06d6bSBaptiste Daroussinand uses it as its conditional. 85761d06d6bSBaptiste DaroussinIf no stack entries are present (e.g., due to no prior 85861d06d6bSBaptiste Daroussin.Ic \&ie 85961d06d6bSBaptiste Daroussincalls) 86061d06d6bSBaptiste Daroussinthen false is assumed. 86161d06d6bSBaptiste DaroussinThe syntax of this request is similar to 86261d06d6bSBaptiste Daroussin.Ic \&if 86361d06d6bSBaptiste Daroussinexcept that the conditional is missing. 86461d06d6bSBaptiste Daroussin.It Ic \&em Ar macroname 86561d06d6bSBaptiste DaroussinSet a trap at the end of input. 86661d06d6bSBaptiste DaroussinCurrently unsupported. 86761d06d6bSBaptiste Daroussin.It Ic \&EN 86861d06d6bSBaptiste DaroussinEnd an equation block. 86961d06d6bSBaptiste DaroussinSee 87061d06d6bSBaptiste Daroussin.Ic \&EQ . 87161d06d6bSBaptiste Daroussin.It Ic \&eo 87261d06d6bSBaptiste DaroussinDisable the escape mechanism completely. 87361d06d6bSBaptiste Daroussin.It Ic \&EP 87461d06d6bSBaptiste DaroussinEnd a picture started by 87561d06d6bSBaptiste Daroussin.Ic \&BP . 87661d06d6bSBaptiste DaroussinThis is a Heirloom extension and currently unsupported. 87761d06d6bSBaptiste Daroussin.It Ic \&EQ 87861d06d6bSBaptiste DaroussinBegin an equation block. 87961d06d6bSBaptiste DaroussinSee 88061d06d6bSBaptiste Daroussin.Xr eqn 7 88161d06d6bSBaptiste Daroussinfor a description of the equation language. 88261d06d6bSBaptiste Daroussin.It Ic \&errprint Ar message 88361d06d6bSBaptiste DaroussinPrint a string like an error message. 88461d06d6bSBaptiste DaroussinThis is a Heirloom extension and currently ignored. 88561d06d6bSBaptiste Daroussin.It Ic \&ev Op Ar envname 88661d06d6bSBaptiste DaroussinSwitch to another environment. 88761d06d6bSBaptiste DaroussinCurrently unsupported. 88861d06d6bSBaptiste Daroussin.It Ic \&evc Op Ar envname 88961d06d6bSBaptiste DaroussinCopy an environment into the current environment. 89061d06d6bSBaptiste DaroussinCurrently unsupported. 89161d06d6bSBaptiste Daroussin.It Ic \&ex 89261d06d6bSBaptiste DaroussinAbort processing and exit. 89361d06d6bSBaptiste DaroussinCurrently unsupported. 89461d06d6bSBaptiste Daroussin.It Ic \&fallback Ar curfont font ... 89561d06d6bSBaptiste DaroussinSelect the fallback sequence for a font. 89661d06d6bSBaptiste DaroussinThis is a Heirloom extension and currently ignored. 89761d06d6bSBaptiste Daroussin.It Ic \&fam Op Ar familyname 89861d06d6bSBaptiste DaroussinChange the font family. 89961d06d6bSBaptiste DaroussinThis is a groff extension and currently ignored. 90061d06d6bSBaptiste Daroussin.It Ic \&fc Op Ar delimchar Op Ar padchar 90161d06d6bSBaptiste DaroussinDefine a delimiting and a padding character for fields. 90261d06d6bSBaptiste DaroussinCurrently unsupported. 90361d06d6bSBaptiste Daroussin.It Ic \&fchar Ar glyphname Op Ar string 90461d06d6bSBaptiste DaroussinDefine a fallback glyph. 90561d06d6bSBaptiste DaroussinCurrently unsupported. 90661d06d6bSBaptiste Daroussin.It Ic \&fcolor Ar colorname 90761d06d6bSBaptiste DaroussinSet the fill color for \eD objects. 90861d06d6bSBaptiste DaroussinThis is a groff extension and currently ignored. 90961d06d6bSBaptiste Daroussin.It Ic \&fdeferlig Ar font string ... 91061d06d6bSBaptiste DaroussinDefer ligature building. 91161d06d6bSBaptiste DaroussinThis is a Heirloom extension and currently ignored. 91261d06d6bSBaptiste Daroussin.It Ic \&feature Cm + Ns | Ns Cm - Ns Ar name 91361d06d6bSBaptiste DaroussinEnable or disable an OpenType feature. 91461d06d6bSBaptiste DaroussinThis is a Heirloom extension and currently ignored. 91561d06d6bSBaptiste Daroussin.It Ic \&fi 9167295610fSBaptiste DaroussinBreak the output line and switch to fill mode, 9177295610fSBaptiste Daroussinwhich is active by default but can be ended with the 9187295610fSBaptiste Daroussin.Ic \&nf 9197295610fSBaptiste Daroussinrequest. 9207295610fSBaptiste DaroussinIn fill mode, input from subsequent input lines is added to 9217295610fSBaptiste Daroussinthe same output line until the next word no longer fits, 9227295610fSBaptiste Daroussinat which point the output line is broken. 9237295610fSBaptiste DaroussinThis request is implied by the 9247295610fSBaptiste Daroussin.Xr mdoc 7 9257295610fSBaptiste Daroussin.Ic \&Sh 9267295610fSBaptiste Daroussinmacro and by the 9277295610fSBaptiste Daroussin.Xr man 7 9287295610fSBaptiste Daroussin.Ic \&SH , 9297295610fSBaptiste Daroussin.Ic \&SS , 9307295610fSBaptiste Daroussinand 9317295610fSBaptiste Daroussin.Ic \&EE 9327295610fSBaptiste Daroussinmacros. 93361d06d6bSBaptiste Daroussin.It Ic \&fkern Ar font minkern 93461d06d6bSBaptiste DaroussinControl the use of kerning tables for a font. 93561d06d6bSBaptiste DaroussinThis is a Heirloom extension and currently ignored. 93661d06d6bSBaptiste Daroussin.It Ic \&fl 93761d06d6bSBaptiste DaroussinFlush output. 93861d06d6bSBaptiste DaroussinCurrently ignored. 93961d06d6bSBaptiste Daroussin.It Ic \&flig Ar font string char ... 94061d06d6bSBaptiste DaroussinDefine ligatures. 94161d06d6bSBaptiste DaroussinThis is a Heirloom extension and currently ignored. 94261d06d6bSBaptiste Daroussin.It Ic \&fp Ar position font Op Ar filename 94361d06d6bSBaptiste DaroussinAssign font position. 94461d06d6bSBaptiste DaroussinCurrently ignored. 94561d06d6bSBaptiste Daroussin.It Ic \&fps Ar mapname ... 94661d06d6bSBaptiste DaroussinMount a font with a special character map. 94761d06d6bSBaptiste DaroussinThis is a Heirloom extension and currently ignored. 94861d06d6bSBaptiste Daroussin.It Ic \&fschar Ar font glyphname Op Ar string 94961d06d6bSBaptiste DaroussinDefine a font-specific fallback glyph. 95061d06d6bSBaptiste DaroussinThis is a groff extension and currently unsupported. 95161d06d6bSBaptiste Daroussin.It Ic \&fspacewidth Ar font Op Ar afmunits 95261d06d6bSBaptiste DaroussinSet a font-specific width for the space character. 95361d06d6bSBaptiste DaroussinThis is a Heirloom extension and currently ignored. 95461d06d6bSBaptiste Daroussin.It Ic \&fspecial Ar curfont Op Ar font ... 95561d06d6bSBaptiste DaroussinConditionally define a special font. 95661d06d6bSBaptiste DaroussinThis is a groff extension and currently ignored. 95761d06d6bSBaptiste Daroussin.It Ic \&ft Op Ar font 9587295610fSBaptiste DaroussinChange the font; see 9597295610fSBaptiste Daroussin.Sx Font Selection . 9607295610fSBaptiste DaroussinThe 96161d06d6bSBaptiste Daroussin.Ar font 9627295610fSBaptiste Daroussinargument defaults to 9637295610fSBaptiste Daroussin.Cm P . 96461d06d6bSBaptiste Daroussin.It Ic \&ftr Ar newname Op Ar oldname 96561d06d6bSBaptiste DaroussinTranslate font name. 96661d06d6bSBaptiste DaroussinThis is a groff extension and currently ignored. 96761d06d6bSBaptiste Daroussin.It Ic \&fzoom Ar font Op Ar permille 96861d06d6bSBaptiste DaroussinZoom font size. 96961d06d6bSBaptiste DaroussinCurrently ignored. 97061d06d6bSBaptiste Daroussin.It Ic \&gcolor Op Ar colorname 97161d06d6bSBaptiste DaroussinSet glyph color. 97261d06d6bSBaptiste DaroussinThis is a groff extension and currently ignored. 97361d06d6bSBaptiste Daroussin.It Ic \&hc Op Ar char 97461d06d6bSBaptiste DaroussinSet the hyphenation character. 97561d06d6bSBaptiste DaroussinCurrently ignored. 97661d06d6bSBaptiste Daroussin.It Ic \&hcode Ar char code ... 97761d06d6bSBaptiste DaroussinSet hyphenation codes of characters. 97861d06d6bSBaptiste DaroussinCurrently ignored. 97961d06d6bSBaptiste Daroussin.It Ic \&hidechar Ar font char ... 98061d06d6bSBaptiste DaroussinHide characters in a font. 98161d06d6bSBaptiste DaroussinThis is a Heirloom extension and currently ignored. 98261d06d6bSBaptiste Daroussin.It Ic \&hla Ar language 98361d06d6bSBaptiste DaroussinSet hyphenation language. 98461d06d6bSBaptiste DaroussinThis is a groff extension and currently ignored. 98561d06d6bSBaptiste Daroussin.It Ic \&hlm Op Ar number 98661d06d6bSBaptiste DaroussinSet maximum number of consecutive hyphenated lines. 98761d06d6bSBaptiste DaroussinCurrently ignored. 98861d06d6bSBaptiste Daroussin.It Ic \&hpf Ar filename 98961d06d6bSBaptiste DaroussinLoad hyphenation pattern file. 99061d06d6bSBaptiste DaroussinThis is a groff extension and currently ignored. 99161d06d6bSBaptiste Daroussin.It Ic \&hpfa Ar filename 99261d06d6bSBaptiste DaroussinLoad hyphenation pattern file, appending to the current patterns. 99361d06d6bSBaptiste DaroussinThis is a groff extension and currently ignored. 99461d06d6bSBaptiste Daroussin.It Ic \&hpfcode Ar code code ... 99561d06d6bSBaptiste DaroussinDefine mapping values for character codes in hyphenation patterns. 99661d06d6bSBaptiste DaroussinThis is a groff extension and currently ignored. 99761d06d6bSBaptiste Daroussin.It Ic \&hw Ar word ... 99861d06d6bSBaptiste DaroussinSpecify hyphenation points in words. 99961d06d6bSBaptiste DaroussinCurrently ignored. 100061d06d6bSBaptiste Daroussin.It Ic \&hy Op Ar mode 100161d06d6bSBaptiste DaroussinSet automatic hyphenation mode. 100261d06d6bSBaptiste DaroussinCurrently ignored. 100361d06d6bSBaptiste Daroussin.It Ic \&hylang Ar language 100461d06d6bSBaptiste DaroussinSet hyphenation language. 100561d06d6bSBaptiste DaroussinThis is a Heirloom extension and currently ignored. 100661d06d6bSBaptiste Daroussin.It Ic \&hylen Ar nchar 100761d06d6bSBaptiste DaroussinMinimum word length for hyphenation. 100861d06d6bSBaptiste DaroussinThis is a Heirloom extension and currently ignored. 100961d06d6bSBaptiste Daroussin.It Ic \&hym Op Ar length 101061d06d6bSBaptiste DaroussinSet hyphenation margin. 101161d06d6bSBaptiste DaroussinThis is a groff extension and currently ignored. 101261d06d6bSBaptiste Daroussin.It Ic \&hypp Ar penalty ... 101361d06d6bSBaptiste DaroussinDefine hyphenation penalties. 101461d06d6bSBaptiste DaroussinThis is a Heirloom extension and currently ignored. 101561d06d6bSBaptiste Daroussin.It Ic \&hys Op Ar length 101661d06d6bSBaptiste DaroussinSet hyphenation space. 101761d06d6bSBaptiste DaroussinThis is a groff extension and currently ignored. 101861d06d6bSBaptiste Daroussin.It Ic \&ie Ar condition body 101961d06d6bSBaptiste DaroussinThe 102061d06d6bSBaptiste Daroussin.Dq if 102161d06d6bSBaptiste Daroussinhalf of an if/else conditional. 102261d06d6bSBaptiste DaroussinThe result of the conditional is pushed into a stack used by subsequent 102361d06d6bSBaptiste Daroussininvocations of 102461d06d6bSBaptiste Daroussin.Ic \&el , 102561d06d6bSBaptiste Daroussinwhich may be separated by any intervening input (or not exist at all). 102661d06d6bSBaptiste DaroussinIts syntax is equivalent to 102761d06d6bSBaptiste Daroussin.Ic \&if . 102861d06d6bSBaptiste Daroussin.It Ic \&if Ar condition body 102961d06d6bSBaptiste DaroussinBegin a conditional. 103061d06d6bSBaptiste DaroussinThis request can also be written as follows: 103161d06d6bSBaptiste Daroussin.Bd -unfilled -offset indent 103261d06d6bSBaptiste Daroussin.Pf . Ic \&if Ar condition No \e{ Ns Ar body 103361d06d6bSBaptiste Daroussin.Ar body ... Ns \e} 103461d06d6bSBaptiste Daroussin.Ed 103561d06d6bSBaptiste Daroussin.Bd -unfilled -offset indent 103661d06d6bSBaptiste Daroussin.Pf . Ic \&if Ar condition No \e{\e 103761d06d6bSBaptiste Daroussin.Ar body ... 103861d06d6bSBaptiste Daroussin.Pf . No \e} 103961d06d6bSBaptiste Daroussin.Ed 104061d06d6bSBaptiste Daroussin.Pp 104161d06d6bSBaptiste DaroussinThe 104261d06d6bSBaptiste Daroussin.Ar condition 104361d06d6bSBaptiste Daroussinis a boolean expression. 104461d06d6bSBaptiste DaroussinCurrently, 104561d06d6bSBaptiste Daroussin.Xr mandoc 1 104661d06d6bSBaptiste Daroussinsupports the following subset of roff conditionals: 104761d06d6bSBaptiste Daroussin.Bl -bullet 104861d06d6bSBaptiste Daroussin.It 104961d06d6bSBaptiste DaroussinIf 105061d06d6bSBaptiste Daroussin.Sq \&! 105161d06d6bSBaptiste Daroussinis prefixed to 105261d06d6bSBaptiste Daroussin.Ar condition , 105361d06d6bSBaptiste Daroussinit is logically inverted. 105461d06d6bSBaptiste Daroussin.It 105561d06d6bSBaptiste DaroussinIf the first character of 105661d06d6bSBaptiste Daroussin.Ar condition 105761d06d6bSBaptiste Daroussinis 105861d06d6bSBaptiste Daroussin.Sq n 105961d06d6bSBaptiste Daroussin.Pq nroff mode 106061d06d6bSBaptiste Daroussinor 106161d06d6bSBaptiste Daroussin.Sq o 106261d06d6bSBaptiste Daroussin.Pq odd page , 10637295610fSBaptiste Daroussinit evaluates to true, and the 10647295610fSBaptiste Daroussin.Ar body 10657295610fSBaptiste Daroussinstarts with the next character. 106661d06d6bSBaptiste Daroussin.It 106761d06d6bSBaptiste DaroussinIf the first character of 106861d06d6bSBaptiste Daroussin.Ar condition 106961d06d6bSBaptiste Daroussinis 107061d06d6bSBaptiste Daroussin.Sq e 107161d06d6bSBaptiste Daroussin.Pq even page , 107261d06d6bSBaptiste Daroussin.Sq t 107361d06d6bSBaptiste Daroussin.Pq troff mode , 107461d06d6bSBaptiste Daroussinor 107561d06d6bSBaptiste Daroussin.Sq v 107661d06d6bSBaptiste Daroussin.Pq vroff mode , 10777295610fSBaptiste Daroussinit evaluates to false, and the 10787295610fSBaptiste Daroussin.Ar body 10797295610fSBaptiste Daroussinstarts with the next character. 10807295610fSBaptiste Daroussin.It 10817295610fSBaptiste DaroussinIf the first character of 10827295610fSBaptiste Daroussin.Ar condition 10837295610fSBaptiste Daroussinis 10847295610fSBaptiste Daroussin.Sq c 10857295610fSBaptiste Daroussin.Pq character available , 10867295610fSBaptiste Daroussinit evaluates to true if the following character is an ASCII character 10877295610fSBaptiste Daroussinor a valid character escape sequence, or to false otherwise. 10887295610fSBaptiste DaroussinThe 10897295610fSBaptiste Daroussin.Ar body 10907295610fSBaptiste Daroussinstarts with the character following that next character. 109161d06d6bSBaptiste Daroussin.It 109261d06d6bSBaptiste DaroussinIf the first character of 109361d06d6bSBaptiste Daroussin.Ar condition 109461d06d6bSBaptiste Daroussinis 109561d06d6bSBaptiste Daroussin.Sq d , 109661d06d6bSBaptiste Daroussinit evaluates to true if the rest of 109761d06d6bSBaptiste Daroussin.Ar condition 109861d06d6bSBaptiste Daroussinis the name of an existing user defined macro or string; 109961d06d6bSBaptiste Daroussinotherwise, it evaluates to false. 110061d06d6bSBaptiste Daroussin.It 110161d06d6bSBaptiste DaroussinIf the first character of 110261d06d6bSBaptiste Daroussin.Ar condition 110361d06d6bSBaptiste Daroussinis 110461d06d6bSBaptiste Daroussin.Sq r , 110561d06d6bSBaptiste Daroussinit evaluates to true if the rest of 110661d06d6bSBaptiste Daroussin.Ar condition 110761d06d6bSBaptiste Daroussinis the name of an existing number register; 110861d06d6bSBaptiste Daroussinotherwise, it evaluates to false. 110961d06d6bSBaptiste Daroussin.It 111061d06d6bSBaptiste DaroussinIf the 111161d06d6bSBaptiste Daroussin.Ar condition 111261d06d6bSBaptiste Daroussinstarts with a parenthesis or with an optionally signed 111361d06d6bSBaptiste Daroussininteger number, it is evaluated according to the rules of 111461d06d6bSBaptiste Daroussin.Sx Numerical expressions 111561d06d6bSBaptiste Daroussinexplained below. 111661d06d6bSBaptiste DaroussinIt evaluates to true if the result is positive, 111761d06d6bSBaptiste Daroussinor to false if the result is zero or negative. 111861d06d6bSBaptiste Daroussin.It 111961d06d6bSBaptiste DaroussinOtherwise, the first character of 112061d06d6bSBaptiste Daroussin.Ar condition 112161d06d6bSBaptiste Daroussinis regarded as a delimiter and it evaluates to true if the string 112261d06d6bSBaptiste Daroussinextending from its first to its second occurrence is equal to the 112361d06d6bSBaptiste Daroussinstring extending from its second to its third occurrence. 112461d06d6bSBaptiste Daroussin.It 112561d06d6bSBaptiste DaroussinIf 112661d06d6bSBaptiste Daroussin.Ar condition 112761d06d6bSBaptiste Daroussincannot be parsed, it evaluates to false. 112861d06d6bSBaptiste Daroussin.El 112961d06d6bSBaptiste Daroussin.Pp 113061d06d6bSBaptiste DaroussinIf a conditional is false, its children are not processed, but are 113161d06d6bSBaptiste Daroussinsyntactically interpreted to preserve the integrity of the input 113261d06d6bSBaptiste Daroussindocument. 113361d06d6bSBaptiste DaroussinThus, 113461d06d6bSBaptiste Daroussin.Pp 113561d06d6bSBaptiste Daroussin.D1 \&.if t .ig 113661d06d6bSBaptiste Daroussin.Pp 113761d06d6bSBaptiste Daroussinwill discard the 113861d06d6bSBaptiste Daroussin.Sq \&.ig , 113961d06d6bSBaptiste Daroussinwhich may lead to interesting results, but 114061d06d6bSBaptiste Daroussin.Pp 114161d06d6bSBaptiste Daroussin.D1 \&.if t .if t \e{\e 114261d06d6bSBaptiste Daroussin.Pp 114361d06d6bSBaptiste Daroussinwill continue to syntactically interpret to the block close of the final 114461d06d6bSBaptiste Daroussinconditional. 114561d06d6bSBaptiste DaroussinSub-conditionals, in this case, obviously inherit the truth value of 114661d06d6bSBaptiste Daroussinthe parent. 114761d06d6bSBaptiste Daroussin.Pp 114861d06d6bSBaptiste DaroussinIf the 114961d06d6bSBaptiste Daroussin.Ar body 115061d06d6bSBaptiste Daroussinsection is begun by an escaped brace 115161d06d6bSBaptiste Daroussin.Sq \e{ , 115261d06d6bSBaptiste Daroussinscope continues until the end of the input line containing the 115361d06d6bSBaptiste Daroussinmatching closing-brace escape sequence 115461d06d6bSBaptiste Daroussin.Sq \e} . 115561d06d6bSBaptiste DaroussinIf the 115661d06d6bSBaptiste Daroussin.Ar body 115761d06d6bSBaptiste Daroussinis not enclosed in braces, scope continues until the end of the line. 115861d06d6bSBaptiste DaroussinIf the 115961d06d6bSBaptiste Daroussin.Ar condition 116061d06d6bSBaptiste Daroussinis followed by a 116161d06d6bSBaptiste Daroussin.Ar body 116261d06d6bSBaptiste Daroussinon the same line, whether after a brace or not, then requests and macros 116361d06d6bSBaptiste Daroussin.Em must 116461d06d6bSBaptiste Daroussinbegin with a control character. 116561d06d6bSBaptiste DaroussinIt is generally more intuitive, in this case, to write 116661d06d6bSBaptiste Daroussin.Bd -unfilled -offset indent 116761d06d6bSBaptiste Daroussin.Pf . Ic \&if Ar condition No \e{\e 116861d06d6bSBaptiste Daroussin.Pf . Ar request 116961d06d6bSBaptiste Daroussin.Pf . No \e} 117061d06d6bSBaptiste Daroussin.Ed 117161d06d6bSBaptiste Daroussin.Pp 117261d06d6bSBaptiste Daroussinthan having the request or macro follow as 117361d06d6bSBaptiste Daroussin.Pp 117461d06d6bSBaptiste Daroussin.D1 Pf . Ic \&if Ar condition Pf \e{. Ar request 117561d06d6bSBaptiste Daroussin.Pp 117661d06d6bSBaptiste DaroussinThe scope of a conditional is always parsed, but only executed if the 117761d06d6bSBaptiste Daroussinconditional evaluates to true. 117861d06d6bSBaptiste Daroussin.Pp 117961d06d6bSBaptiste DaroussinNote that the 118061d06d6bSBaptiste Daroussin.Sq \e} 118161d06d6bSBaptiste Daroussinis converted into a zero-width escape sequence if not passed as a 118261d06d6bSBaptiste Daroussinstandalone macro 118361d06d6bSBaptiste Daroussin.Sq \&.\e} . 118461d06d6bSBaptiste DaroussinFor example, 118561d06d6bSBaptiste Daroussin.Pp 118661d06d6bSBaptiste Daroussin.D1 \&.Fl a \e} b 118761d06d6bSBaptiste Daroussin.Pp 118861d06d6bSBaptiste Daroussinwill result in 118961d06d6bSBaptiste Daroussin.Sq \e} 119061d06d6bSBaptiste Daroussinbeing considered an argument of the 119161d06d6bSBaptiste Daroussin.Sq \&Fl 119261d06d6bSBaptiste Daroussinmacro. 119361d06d6bSBaptiste Daroussin.It Ic \&ig Op Ar endmacro 119461d06d6bSBaptiste DaroussinIgnore input. 119561d06d6bSBaptiste DaroussinIts syntax can be either 119661d06d6bSBaptiste Daroussin.Bd -literal -offset indent 119761d06d6bSBaptiste Daroussin.Pf . Cm \&ig 119861d06d6bSBaptiste Daroussin.Ar ignored text 119961d06d6bSBaptiste Daroussin\&.. 120061d06d6bSBaptiste Daroussin.Ed 120161d06d6bSBaptiste Daroussin.Pp 120261d06d6bSBaptiste Daroussinor 120361d06d6bSBaptiste Daroussin.Bd -literal -offset indent 120461d06d6bSBaptiste Daroussin.Pf . Cm \&ig Ar endmacro 120561d06d6bSBaptiste Daroussin.Ar ignored text 120661d06d6bSBaptiste Daroussin.Pf . Ar endmacro 120761d06d6bSBaptiste Daroussin.Ed 120861d06d6bSBaptiste Daroussin.Pp 120961d06d6bSBaptiste DaroussinIn the first case, input is ignored until a 121061d06d6bSBaptiste Daroussin.Sq \&.. 121161d06d6bSBaptiste Daroussinrequest is encountered on its own line. 121261d06d6bSBaptiste DaroussinIn the second case, input is ignored until the specified 121361d06d6bSBaptiste Daroussin.Sq Pf . Ar endmacro 121461d06d6bSBaptiste Daroussinis encountered. 121561d06d6bSBaptiste DaroussinDo not use the escape character 121661d06d6bSBaptiste Daroussin.Sq \e 121761d06d6bSBaptiste Daroussinanywhere in the definition of 121861d06d6bSBaptiste Daroussin.Ar endmacro ; 121961d06d6bSBaptiste Daroussinit would cause very strange behaviour. 122061d06d6bSBaptiste Daroussin.Pp 122161d06d6bSBaptiste DaroussinWhen the 122261d06d6bSBaptiste Daroussin.Ar endmacro 122361d06d6bSBaptiste Daroussinis a roff request or a roff macro, like in 122461d06d6bSBaptiste Daroussin.Pp 122561d06d6bSBaptiste Daroussin.D1 \&.ig if 122661d06d6bSBaptiste Daroussin.Pp 122761d06d6bSBaptiste Daroussinthe subsequent invocation of 122861d06d6bSBaptiste Daroussin.Ic \&if 122961d06d6bSBaptiste Daroussinwill first terminate the 123061d06d6bSBaptiste Daroussin.Ar ignored text , 123161d06d6bSBaptiste Daroussinthen be invoked as usual. 123261d06d6bSBaptiste DaroussinOtherwise, it only terminates the 123361d06d6bSBaptiste Daroussin.Ar ignored text , 123461d06d6bSBaptiste Daroussinand arguments following it or the 123561d06d6bSBaptiste Daroussin.Sq \&.. 123661d06d6bSBaptiste Daroussinrequest are discarded. 123761d06d6bSBaptiste Daroussin.It Ic \&in Op Oo Cm + Ns | Ns Cm - Oc Ns Ar width 123861d06d6bSBaptiste DaroussinChange indentation. 123961d06d6bSBaptiste DaroussinSee 124061d06d6bSBaptiste Daroussin.Xr man 7 . 124161d06d6bSBaptiste DaroussinIgnored in 124261d06d6bSBaptiste Daroussin.Xr mdoc 7 . 124361d06d6bSBaptiste Daroussin.It Ic \&index Ar register stringname substring 124461d06d6bSBaptiste DaroussinFind a substring in a string. 124561d06d6bSBaptiste DaroussinThis is a Heirloom extension and currently unsupported. 124661d06d6bSBaptiste Daroussin.It Ic \&it Ar expression macro 124761d06d6bSBaptiste DaroussinSet an input line trap. 124861d06d6bSBaptiste DaroussinThe named 124961d06d6bSBaptiste Daroussin.Ar macro 125061d06d6bSBaptiste Daroussinwill be invoked after processing the number of input text lines 125161d06d6bSBaptiste Daroussinspecified by the numerical 125261d06d6bSBaptiste Daroussin.Ar expression . 125361d06d6bSBaptiste DaroussinWhile evaluating the 125461d06d6bSBaptiste Daroussin.Ar expression , 125561d06d6bSBaptiste Daroussinthe unit suffixes described below 125661d06d6bSBaptiste Daroussin.Sx Scaling Widths 125761d06d6bSBaptiste Daroussinare ignored. 12587295610fSBaptiste Daroussin.It Ic \&itc Ar expression macro 125961d06d6bSBaptiste DaroussinSet an input line trap, not counting lines ending with \ec. 126061d06d6bSBaptiste DaroussinCurrently unsupported. 126161d06d6bSBaptiste Daroussin.It Ic \&IX Ar class keystring 126261d06d6bSBaptiste DaroussinTo support the generation of a table of contents, 126361d06d6bSBaptiste Daroussin.Xr pod2man 1 126461d06d6bSBaptiste Daroussinemits this user-defined macro, usually without defining it. 126561d06d6bSBaptiste DaroussinTo avoid reporting large numbers of spurious errors, 126661d06d6bSBaptiste Daroussin.Xr mandoc 1 126761d06d6bSBaptiste Daroussinignores it. 126861d06d6bSBaptiste Daroussin.It Ic \&kern Op Cm 1 | 0 126961d06d6bSBaptiste DaroussinSwitch kerning on or off. 127061d06d6bSBaptiste DaroussinCurrently ignored. 127161d06d6bSBaptiste Daroussin.It Ic \&kernafter Ar font char ... afmunits ... 127261d06d6bSBaptiste DaroussinIncrease kerning after some characters. 127361d06d6bSBaptiste DaroussinThis is a Heirloom extension and currently ignored. 127461d06d6bSBaptiste Daroussin.It Ic \&kernbefore Ar font char ... afmunits ... 127561d06d6bSBaptiste DaroussinIncrease kerning before some characters. 127661d06d6bSBaptiste DaroussinThis is a Heirloom extension and currently ignored. 127761d06d6bSBaptiste Daroussin.It Ic \&kernpair Ar font char ... font char ... afmunits 127861d06d6bSBaptiste DaroussinAdd a kerning pair to the kerning table. 127961d06d6bSBaptiste DaroussinThis is a Heirloom extension and currently ignored. 128061d06d6bSBaptiste Daroussin.It Ic \&lc Op Ar glyph 128161d06d6bSBaptiste DaroussinDefine a leader repetition character. 128261d06d6bSBaptiste DaroussinCurrently unsupported. 128361d06d6bSBaptiste Daroussin.It Ic \&lc_ctype Ar localename 128461d06d6bSBaptiste DaroussinSet the 128561d06d6bSBaptiste Daroussin.Dv LC_CTYPE 128661d06d6bSBaptiste Daroussinlocale. 128761d06d6bSBaptiste DaroussinThis is a Heirloom extension and currently unsupported. 128861d06d6bSBaptiste Daroussin.It Ic \&lds Ar macroname string 128961d06d6bSBaptiste DaroussinDefine a local string. 129061d06d6bSBaptiste DaroussinThis is a Heirloom extension and currently unsupported. 129161d06d6bSBaptiste Daroussin.It Ic \&length Ar register string 129261d06d6bSBaptiste DaroussinCount the number of input characters in a string. 129361d06d6bSBaptiste DaroussinCurrently unsupported. 129461d06d6bSBaptiste Daroussin.It Ic \&letadj Ar lspmin lshmin letss lspmax lshmax 129561d06d6bSBaptiste DaroussinDynamic letter spacing and reshaping. 129661d06d6bSBaptiste DaroussinThis is a Heirloom extension and currently ignored. 129761d06d6bSBaptiste Daroussin.It Ic \&lf Ar lineno Op Ar filename 129861d06d6bSBaptiste DaroussinChange the line number for error messages. 129961d06d6bSBaptiste DaroussinIgnored because insecure. 130061d06d6bSBaptiste Daroussin.It Ic \&lg Op Cm 1 | 0 130161d06d6bSBaptiste DaroussinSwitch the ligature mechanism on or off. 130261d06d6bSBaptiste DaroussinCurrently ignored. 130361d06d6bSBaptiste Daroussin.It Ic \&lhang Ar font char ... afmunits 130461d06d6bSBaptiste DaroussinHang characters at left margin. 130561d06d6bSBaptiste DaroussinThis is a Heirloom extension and currently ignored. 130661d06d6bSBaptiste Daroussin.It Ic \&linetabs Op Cm 1 | 0 130761d06d6bSBaptiste DaroussinEnable or disable line-tabs mode. 130861d06d6bSBaptiste DaroussinThis is a groff extension and currently unsupported. 130961d06d6bSBaptiste Daroussin.It Ic \&ll Op Oo Cm + Ns | Ns Cm - Oc Ns Ar width 131061d06d6bSBaptiste DaroussinChange the output line length. 131161d06d6bSBaptiste DaroussinIf the 131261d06d6bSBaptiste Daroussin.Ar width 131361d06d6bSBaptiste Daroussinargument is omitted, the line length is reset to its previous value. 131461d06d6bSBaptiste DaroussinThe default setting for terminal output is 78n. 131561d06d6bSBaptiste DaroussinIf a sign is given, the line length is added to or subtracted from; 131661d06d6bSBaptiste Daroussinotherwise, it is set to the provided value. 131761d06d6bSBaptiste DaroussinUsing this request in new manuals is discouraged for several reasons, 131861d06d6bSBaptiste Daroussinamong others because it overrides the 131961d06d6bSBaptiste Daroussin.Xr mandoc 1 132061d06d6bSBaptiste Daroussin.Fl O Cm width 132161d06d6bSBaptiste Daroussincommand line option. 132261d06d6bSBaptiste Daroussin.It Ic \&lnr Ar register Oo Cm + Ns | Ns Cm - Oc Ns Ar value Op Ar increment 132361d06d6bSBaptiste DaroussinSet local number register. 132461d06d6bSBaptiste DaroussinThis is a Heirloom extension and currently unsupported. 132561d06d6bSBaptiste Daroussin.It Ic \&lnrf Ar register Oo Cm + Ns | Ns Cm - Oc Ns Ar value Op Ar increment 132661d06d6bSBaptiste DaroussinSet local floating-point register. 132761d06d6bSBaptiste DaroussinThis is a Heirloom extension and currently unsupported. 132861d06d6bSBaptiste Daroussin.It Ic \&lpfx Ar string 132961d06d6bSBaptiste DaroussinSet a line prefix. 133061d06d6bSBaptiste DaroussinThis is a Heirloom extension and currently unsupported. 133161d06d6bSBaptiste Daroussin.It Ic \&ls Op Ar factor 133261d06d6bSBaptiste DaroussinSet line spacing. 133361d06d6bSBaptiste DaroussinIt takes one integer argument specifying the vertical distance of 133461d06d6bSBaptiste Daroussinsubsequent output text lines measured in v units. 133561d06d6bSBaptiste DaroussinCurrently ignored. 133661d06d6bSBaptiste Daroussin.It Ic \&lsm Ar macroname 133761d06d6bSBaptiste DaroussinSet a leading spaces trap. 133861d06d6bSBaptiste DaroussinThis is a groff extension and currently unsupported. 133961d06d6bSBaptiste Daroussin.It Ic \< Op Oo Cm + Ns | Ns Cm - Oc Ns Ar width 134061d06d6bSBaptiste DaroussinSet title line length. 134161d06d6bSBaptiste DaroussinCurrently ignored. 134261d06d6bSBaptiste Daroussin.It Ic \&mc Ar glyph Op Ar dist 134361d06d6bSBaptiste DaroussinPrint margin character in the right margin. 134461d06d6bSBaptiste DaroussinThe 134561d06d6bSBaptiste Daroussin.Ar dist 134661d06d6bSBaptiste Daroussinis currently ignored; instead, 1n is used. 134761d06d6bSBaptiste Daroussin.It Ic \&mediasize Ar media 134861d06d6bSBaptiste DaroussinSet the device media size. 134961d06d6bSBaptiste DaroussinThis is a Heirloom extension and currently ignored. 135061d06d6bSBaptiste Daroussin.It Ic \&minss Ar width 135161d06d6bSBaptiste DaroussinSet minimum word space. 135261d06d6bSBaptiste DaroussinThis is a Heirloom extension and currently ignored. 135361d06d6bSBaptiste Daroussin.It Ic \&mk Op Ar register 135461d06d6bSBaptiste DaroussinMark vertical position. 135561d06d6bSBaptiste DaroussinCurrently ignored. 135661d06d6bSBaptiste Daroussin.It Ic \&mso Ar filename 135761d06d6bSBaptiste DaroussinLoad a macro file using the search path. 135861d06d6bSBaptiste DaroussinIgnored because insecure. 135961d06d6bSBaptiste Daroussin.It Ic \&na 136061d06d6bSBaptiste DaroussinDisable adjusting without changing the adjustment mode. 136161d06d6bSBaptiste DaroussinCurrently ignored. 136261d06d6bSBaptiste Daroussin.It Ic \&ne Op Ar height 136361d06d6bSBaptiste DaroussinDeclare the need for the specified minimum vertical space 136461d06d6bSBaptiste Daroussinbefore the next trap or the bottom of the page. 136561d06d6bSBaptiste DaroussinCurrently ignored. 136661d06d6bSBaptiste Daroussin.It Ic \&nf 13677295610fSBaptiste DaroussinBreak the output line and switch to no-fill mode. 13687295610fSBaptiste DaroussinSubsequent input lines are kept together on the same output line 13697295610fSBaptiste Daroussineven when exceeding the right margin, 13707295610fSBaptiste Daroussinand line breaks in subsequent input cause output line breaks. 13717295610fSBaptiste DaroussinThis request is implied by the 13727295610fSBaptiste Daroussin.Xr mdoc 7 13737295610fSBaptiste Daroussin.Ic \&Bd Fl unfilled 13747295610fSBaptiste Daroussinand 13757295610fSBaptiste Daroussin.Ic \&Bd Fl literal 13767295610fSBaptiste Daroussinmacros and by the 13777295610fSBaptiste Daroussin.Xr man 7 13787295610fSBaptiste Daroussin.Ic \&EX 13797295610fSBaptiste Daroussinmacro. 13807295610fSBaptiste DaroussinThe 13817295610fSBaptiste Daroussin.Ic \&fi 13827295610fSBaptiste Daroussinrequest switches back to the default fill mode. 138361d06d6bSBaptiste Daroussin.It Ic \&nh 138461d06d6bSBaptiste DaroussinTurn off automatic hyphenation mode. 138561d06d6bSBaptiste DaroussinCurrently ignored. 138661d06d6bSBaptiste Daroussin.It Ic \&nhychar Ar char ... 138761d06d6bSBaptiste DaroussinDefine hyphenation-inhibiting characters. 138861d06d6bSBaptiste DaroussinThis is a Heirloom extension and currently ignored. 138961d06d6bSBaptiste Daroussin.It Ic \&nm Op Ar start Op Ar inc Op Ar space Op Ar indent 139061d06d6bSBaptiste DaroussinPrint line numbers. 139161d06d6bSBaptiste DaroussinCurrently unsupported. 139261d06d6bSBaptiste Daroussin.It Ic \&nn Op Ar number 139361d06d6bSBaptiste DaroussinTemporarily turn off line numbering. 139461d06d6bSBaptiste DaroussinCurrently unsupported. 139561d06d6bSBaptiste Daroussin.It Ic \&nop Ar body 13967295610fSBaptiste DaroussinExecute the rest of the input line as a request, macro, or text line, 13977295610fSBaptiste Daroussinskipping the 13987295610fSBaptiste Daroussin.Ic \&nop 13997295610fSBaptiste Daroussinrequest and any space characters immediately following it. 14007295610fSBaptiste DaroussinThis is mostly used to indent text lines inside macro definitions. 140161d06d6bSBaptiste Daroussin.It Ic \&nr Ar register Oo Cm + Ns | Ns Cm - Oc Ns Ar expression Op Ar stepsize 140261d06d6bSBaptiste DaroussinDefine or change a register. 140361d06d6bSBaptiste DaroussinA register is an arbitrary string value that defines some sort of state, 140461d06d6bSBaptiste Daroussinwhich influences parsing and/or formatting. 140561d06d6bSBaptiste DaroussinFor the syntax of 140661d06d6bSBaptiste Daroussin.Ar expression , 140761d06d6bSBaptiste Daroussinsee 140861d06d6bSBaptiste Daroussin.Sx Numerical expressions 140961d06d6bSBaptiste Daroussinbelow. 141061d06d6bSBaptiste DaroussinIf it is prefixed by a sign, the register will be 141161d06d6bSBaptiste Daroussinincremented or decremented instead of assigned to. 141261d06d6bSBaptiste Daroussin.Pp 141361d06d6bSBaptiste DaroussinThe 141461d06d6bSBaptiste Daroussin.Ar stepsize 141561d06d6bSBaptiste Daroussinis used by the 141661d06d6bSBaptiste Daroussin.Ic \en+ 141761d06d6bSBaptiste Daroussinauto-increment feature. 141861d06d6bSBaptiste DaroussinIt remains unchanged when omitted while changing an existing register, 141961d06d6bSBaptiste Daroussinand it defaults to 0 when defining a new register. 142061d06d6bSBaptiste Daroussin.Pp 142161d06d6bSBaptiste DaroussinThe following 142261d06d6bSBaptiste Daroussin.Ar register 142361d06d6bSBaptiste Daroussinis handled specially: 142461d06d6bSBaptiste Daroussin.Bl -tag -width Ds 142561d06d6bSBaptiste Daroussin.It Cm nS 142661d06d6bSBaptiste DaroussinIf set to a positive integer value, certain 142761d06d6bSBaptiste Daroussin.Xr mdoc 7 142861d06d6bSBaptiste Daroussinmacros will behave in the same way as in the 142961d06d6bSBaptiste Daroussin.Em SYNOPSIS 143061d06d6bSBaptiste Daroussinsection. 143161d06d6bSBaptiste DaroussinIf set to 0, these macros will behave in the same way as outside the 143261d06d6bSBaptiste Daroussin.Em SYNOPSIS 143361d06d6bSBaptiste Daroussinsection, even when called within the 143461d06d6bSBaptiste Daroussin.Em SYNOPSIS 143561d06d6bSBaptiste Daroussinsection itself. 143661d06d6bSBaptiste DaroussinNote that starting a new 143761d06d6bSBaptiste Daroussin.Xr mdoc 7 143861d06d6bSBaptiste Daroussinsection with the 143961d06d6bSBaptiste Daroussin.Ic \&Sh 144061d06d6bSBaptiste Daroussinmacro will reset this register. 144161d06d6bSBaptiste Daroussin.El 144261d06d6bSBaptiste Daroussin.It Xo 144361d06d6bSBaptiste Daroussin.Ic \&nrf Ar register Oo Cm + Ns | Ns Cm - Oc Ns Ar expression 144461d06d6bSBaptiste Daroussin.Op Ar increment 144561d06d6bSBaptiste Daroussin.Xc 144661d06d6bSBaptiste DaroussinDefine or change a floating-point register. 144761d06d6bSBaptiste DaroussinThis is a Heirloom extension and currently unsupported. 144861d06d6bSBaptiste Daroussin.It Ic \&nroff 144961d06d6bSBaptiste DaroussinForce nroff mode. 145061d06d6bSBaptiste DaroussinThis is a groff extension and currently ignored. 145161d06d6bSBaptiste Daroussin.It Ic \&ns 145261d06d6bSBaptiste DaroussinTurn on no-space mode. 145361d06d6bSBaptiste DaroussinCurrently ignored. 145461d06d6bSBaptiste Daroussin.It Ic \&nx Op Ar filename 145561d06d6bSBaptiste DaroussinAbort processing of the current input file and process another one. 145661d06d6bSBaptiste DaroussinIgnored because insecure. 145761d06d6bSBaptiste Daroussin.It Ic \&open Ar stream file 145861d06d6bSBaptiste DaroussinOpen a file for writing. 145961d06d6bSBaptiste DaroussinIgnored because insecure. 146061d06d6bSBaptiste Daroussin.It Ic \&opena Ar stream file 146161d06d6bSBaptiste DaroussinOpen a file for appending. 146261d06d6bSBaptiste DaroussinIgnored because insecure. 146361d06d6bSBaptiste Daroussin.It Ic \&os 146461d06d6bSBaptiste DaroussinOutput saved vertical space. 146561d06d6bSBaptiste DaroussinCurrently ignored. 146661d06d6bSBaptiste Daroussin.It Ic \&output Ar string 146761d06d6bSBaptiste DaroussinOutput directly to intermediate output. 146861d06d6bSBaptiste DaroussinNot supported. 146961d06d6bSBaptiste Daroussin.It Ic \&padj Op Cm 1 | 0 147061d06d6bSBaptiste DaroussinGlobally control paragraph-at-once adjustment. 147161d06d6bSBaptiste DaroussinThis is a Heirloom extension and currently ignored. 147261d06d6bSBaptiste Daroussin.It Ic \&papersize Ar media 147361d06d6bSBaptiste DaroussinSet the paper size. 147461d06d6bSBaptiste DaroussinThis is a Heirloom extension and currently ignored. 147561d06d6bSBaptiste Daroussin.It Ic \&pc Op Ar char 147661d06d6bSBaptiste DaroussinChange the page number character. 147761d06d6bSBaptiste DaroussinCurrently ignored. 147861d06d6bSBaptiste Daroussin.It Ic \&pev 147961d06d6bSBaptiste DaroussinPrint environments. 148061d06d6bSBaptiste DaroussinThis is a groff extension and currently ignored. 148161d06d6bSBaptiste Daroussin.It Ic \&pi Ar command 148261d06d6bSBaptiste DaroussinPipe output to a shell command. 148361d06d6bSBaptiste DaroussinIgnored because insecure. 148461d06d6bSBaptiste Daroussin.It Ic \&PI 148561d06d6bSBaptiste DaroussinLow-level request used by 148661d06d6bSBaptiste Daroussin.Ic \&BP . 148761d06d6bSBaptiste DaroussinThis is a Heirloom extension and currently unsupported. 148861d06d6bSBaptiste Daroussin.It Ic \&pl Op Oo Cm + Ns | Ns Cm - Oc Ns Ar height 148961d06d6bSBaptiste DaroussinChange page length. 149061d06d6bSBaptiste DaroussinCurrently ignored. 149161d06d6bSBaptiste Daroussin.It Ic \&pm 149261d06d6bSBaptiste DaroussinPrint names and sizes of macros, strings, and diversions 149361d06d6bSBaptiste Daroussinto standard error output. 149461d06d6bSBaptiste DaroussinCurrently ignored. 149561d06d6bSBaptiste Daroussin.It Ic \&pn Oo Cm + Ns | Ns Cm - Oc Ns Ar number 149661d06d6bSBaptiste DaroussinChange the page number of the next page. 149761d06d6bSBaptiste DaroussinCurrently ignored. 149861d06d6bSBaptiste Daroussin.It Ic \&pnr 149961d06d6bSBaptiste DaroussinPrint all number registers on standard error output. 150061d06d6bSBaptiste DaroussinCurrently ignored. 150161d06d6bSBaptiste Daroussin.It Ic \&po Op Oo Cm + Ns | Ns Cm - Oc Ns Ar offset 150261d06d6bSBaptiste DaroussinSet a horizontal page offset. 150361d06d6bSBaptiste DaroussinIf no argument is specified, the page offset is reverted to its 150461d06d6bSBaptiste Daroussinprevious value. 150561d06d6bSBaptiste DaroussinIf a sign is specified, the new page offset is calculated relative 150661d06d6bSBaptiste Daroussinto the current one; otherwise, it is absolute. 150761d06d6bSBaptiste DaroussinThe argument follows the syntax of 150861d06d6bSBaptiste Daroussin.Sx Scaling Widths 150961d06d6bSBaptiste Daroussinand the default scaling unit is 151061d06d6bSBaptiste Daroussin.Cm m . 151161d06d6bSBaptiste Daroussin.It Ic \&ps Op Oo Cm + Ns | Ns Cm - Oc Ns size 151261d06d6bSBaptiste DaroussinChange point size. 151361d06d6bSBaptiste DaroussinCurrently ignored. 151461d06d6bSBaptiste Daroussin.It Ic \&psbb Ar filename 151561d06d6bSBaptiste DaroussinRetrieve the bounding box of a PostScript file. 151661d06d6bSBaptiste DaroussinCurrently unsupported. 151761d06d6bSBaptiste Daroussin.It Ic \&pshape Ar indent length ... 151861d06d6bSBaptiste DaroussinSet a special shape for the current paragraph. 151961d06d6bSBaptiste DaroussinThis is a Heirloom extension and currently unsupported. 152061d06d6bSBaptiste Daroussin.It Ic \&pso Ar command 152161d06d6bSBaptiste DaroussinInclude output of a shell command. 152261d06d6bSBaptiste DaroussinIgnored because insecure. 152361d06d6bSBaptiste Daroussin.It Ic \&ptr 152461d06d6bSBaptiste DaroussinPrint the names and positions of all traps on standard error output. 152561d06d6bSBaptiste DaroussinThis is a groff extension and currently ignored. 152661d06d6bSBaptiste Daroussin.It Ic \&pvs Op Oo Cm + Ns | Ns Cm - Oc Ns Ar height 152761d06d6bSBaptiste DaroussinChange post-vertical spacing. 152861d06d6bSBaptiste DaroussinThis is a groff extension and currently ignored. 152961d06d6bSBaptiste Daroussin.It Ic \&rchar Ar glyph ... 153061d06d6bSBaptiste DaroussinRemove glyph definitions. 153161d06d6bSBaptiste DaroussinCurrently unsupported. 153261d06d6bSBaptiste Daroussin.It Ic \&rd Op Ar prompt Op Ar argument ... 153361d06d6bSBaptiste DaroussinRead from standard input. 153461d06d6bSBaptiste DaroussinCurrently ignored. 153561d06d6bSBaptiste Daroussin.It Ic \&recursionlimit Ar maxrec maxtail 153661d06d6bSBaptiste DaroussinSet the maximum stack depth for recursive macros. 153761d06d6bSBaptiste DaroussinThis is a Heirloom extension and currently ignored. 153861d06d6bSBaptiste Daroussin.It Ic \&return Op Ar twice 15397295610fSBaptiste DaroussinExit the presently executed macro and return to the caller. 15407295610fSBaptiste DaroussinThe argument is currently ignored. 154161d06d6bSBaptiste Daroussin.It Ic \&rfschar Ar font glyph ... 154261d06d6bSBaptiste DaroussinRemove font-specific fallback glyph definitions. 154361d06d6bSBaptiste DaroussinCurrently unsupported. 154461d06d6bSBaptiste Daroussin.It Ic \&rhang Ar font char ... afmunits 154561d06d6bSBaptiste DaroussinHang characters at right margin. 154661d06d6bSBaptiste DaroussinThis is a Heirloom extension and currently ignored. 154761d06d6bSBaptiste Daroussin.It Ic \&rj Op Ar N 154861d06d6bSBaptiste DaroussinJustify the next 154961d06d6bSBaptiste Daroussin.Ar N 155061d06d6bSBaptiste Daroussininput lines to the right margin without filling. 155161d06d6bSBaptiste Daroussin.Ar N 155261d06d6bSBaptiste Daroussindefaults to 1. 155361d06d6bSBaptiste DaroussinAn argument of 0 or less ends right adjustment. 155461d06d6bSBaptiste Daroussin.It Ic \&rm Ar macroname 155561d06d6bSBaptiste DaroussinRemove a request, macro or string. 155661d06d6bSBaptiste Daroussin.It Ic \&rn Ar oldname newname 155761d06d6bSBaptiste DaroussinRename a request, macro, diversion, or string. 155861d06d6bSBaptiste DaroussinIn 155961d06d6bSBaptiste Daroussin.Xr mandoc 1 , 156061d06d6bSBaptiste Daroussinuser-defined macros, 156161d06d6bSBaptiste Daroussin.Xr mdoc 7 156261d06d6bSBaptiste Daroussinand 156361d06d6bSBaptiste Daroussin.Xr man 7 156461d06d6bSBaptiste Daroussinmacros, and user-defined strings can be renamed, but renaming of 156561d06d6bSBaptiste Daroussinpredefined strings and of 156661d06d6bSBaptiste Daroussin.Nm 156761d06d6bSBaptiste Daroussinrequests is not supported, and diversions are not implemented at all. 156861d06d6bSBaptiste Daroussin.It Ic \&rnn Ar oldname newname 156961d06d6bSBaptiste DaroussinRename a number register. 157061d06d6bSBaptiste DaroussinCurrently unsupported. 157161d06d6bSBaptiste Daroussin.It Ic \&rr Ar register 157261d06d6bSBaptiste DaroussinRemove a register. 157361d06d6bSBaptiste Daroussin.It Ic \&rs 157461d06d6bSBaptiste DaroussinEnd no-space mode. 157561d06d6bSBaptiste DaroussinCurrently ignored. 157661d06d6bSBaptiste Daroussin.It Ic \&rt Op Ar dist 157761d06d6bSBaptiste DaroussinReturn to marked vertical position. 157861d06d6bSBaptiste DaroussinCurrently ignored. 157961d06d6bSBaptiste Daroussin.It Ic \&schar Ar glyph Op Ar string 158061d06d6bSBaptiste DaroussinDefine global fallback glyph. 158161d06d6bSBaptiste DaroussinThis is a groff extension and currently unsupported. 158261d06d6bSBaptiste Daroussin.It Ic \&sentchar Ar char ... 158361d06d6bSBaptiste DaroussinDefine sentence-ending characters. 158461d06d6bSBaptiste DaroussinThis is a Heirloom extension and currently ignored. 158561d06d6bSBaptiste Daroussin.It Ic \&shc Op Ar glyph 158661d06d6bSBaptiste DaroussinChange the soft hyphen character. 158761d06d6bSBaptiste DaroussinCurrently ignored. 158861d06d6bSBaptiste Daroussin.It Ic \&shift Op Ar number 15897295610fSBaptiste DaroussinShift macro arguments 15907295610fSBaptiste Daroussin.Ar number 15917295610fSBaptiste Daroussintimes, by default once: \e\e$i becomes what \e\e$i+number was. 15927295610fSBaptiste DaroussinAlso decrement \en(.$ by 15937295610fSBaptiste Daroussin.Ar number . 159461d06d6bSBaptiste Daroussin.It Ic \&sizes Ar size ... 159561d06d6bSBaptiste DaroussinDefine permissible point sizes. 159661d06d6bSBaptiste DaroussinThis is a groff extension and currently ignored. 159761d06d6bSBaptiste Daroussin.It Ic \&so Ar filename 159861d06d6bSBaptiste DaroussinInclude a source file. 159961d06d6bSBaptiste DaroussinThe file is read and its contents processed as input in place of the 160061d06d6bSBaptiste Daroussin.Ic \&so 160161d06d6bSBaptiste Daroussinrequest line. 160261d06d6bSBaptiste DaroussinTo avoid inadvertent inclusion of unrelated files, 160361d06d6bSBaptiste Daroussin.Xr mandoc 1 160461d06d6bSBaptiste Daroussinonly accepts relative paths not containing the strings 160561d06d6bSBaptiste Daroussin.Qq ../ 160661d06d6bSBaptiste Daroussinand 160761d06d6bSBaptiste Daroussin.Qq /.. . 160861d06d6bSBaptiste Daroussin.Pp 160961d06d6bSBaptiste DaroussinThis request requires 161061d06d6bSBaptiste Daroussin.Xr man 1 161161d06d6bSBaptiste Daroussinto change to the right directory before calling 161261d06d6bSBaptiste Daroussin.Xr mandoc 1 , 161361d06d6bSBaptiste Daroussinper convention to the root of the manual tree. 161461d06d6bSBaptiste DaroussinTypical usage looks like: 161561d06d6bSBaptiste Daroussin.Pp 161661d06d6bSBaptiste Daroussin.Dl \&.so man3/Xcursor.3 161761d06d6bSBaptiste Daroussin.Pp 161861d06d6bSBaptiste DaroussinAs the whole concept is rather fragile, the use of 161961d06d6bSBaptiste Daroussin.Ic \&so 162061d06d6bSBaptiste Daroussinis discouraged. 162161d06d6bSBaptiste DaroussinUse 162261d06d6bSBaptiste Daroussin.Xr ln 1 162361d06d6bSBaptiste Daroussininstead. 162461d06d6bSBaptiste Daroussin.It Ic \&sp Op Ar height 162561d06d6bSBaptiste DaroussinBreak the output line and emit vertical space. 162661d06d6bSBaptiste DaroussinThe argument follows the syntax of 162761d06d6bSBaptiste Daroussin.Sx Scaling Widths 162861d06d6bSBaptiste Daroussinand defaults to one blank line 162961d06d6bSBaptiste Daroussin.Pq Li 1v . 163061d06d6bSBaptiste Daroussin.It Ic \&spacewidth Op Cm 1 | 0 163161d06d6bSBaptiste DaroussinSet the space width from the font metrics file. 163261d06d6bSBaptiste DaroussinThis is a Heirloom extension and currently ignored. 163361d06d6bSBaptiste Daroussin.It Ic \&special Op Ar font ... 163461d06d6bSBaptiste DaroussinDefine a special font. 163561d06d6bSBaptiste DaroussinThis is a groff extension and currently ignored. 163661d06d6bSBaptiste Daroussin.It Ic \&spreadwarn Op Ar width 163761d06d6bSBaptiste DaroussinWarn about wide spacing between words. 163861d06d6bSBaptiste DaroussinCurrently ignored. 163961d06d6bSBaptiste Daroussin.It Ic \&ss Ar wordspace Op Ar sentencespace 164061d06d6bSBaptiste DaroussinSet space character size. 164161d06d6bSBaptiste DaroussinCurrently ignored. 164261d06d6bSBaptiste Daroussin.It Ic \&sty Ar position style 164361d06d6bSBaptiste DaroussinAssociate style with a font position. 164461d06d6bSBaptiste DaroussinThis is a groff extension and currently ignored. 164561d06d6bSBaptiste Daroussin.It Ic \&substring Ar stringname startpos Op Ar endpos 164661d06d6bSBaptiste DaroussinReplace a user-defined string with a substring. 164761d06d6bSBaptiste DaroussinCurrently unsupported. 164861d06d6bSBaptiste Daroussin.It Ic \&sv Op Ar height 164961d06d6bSBaptiste DaroussinSave vertical space. 165061d06d6bSBaptiste DaroussinCurrently ignored. 165161d06d6bSBaptiste Daroussin.It Ic \&sy Ar command 165261d06d6bSBaptiste DaroussinExecute shell command. 165361d06d6bSBaptiste DaroussinIgnored because insecure. 165461d06d6bSBaptiste Daroussin.It Ic \&T& 165561d06d6bSBaptiste DaroussinRe-start a table layout, retaining the options of the prior table 165661d06d6bSBaptiste Daroussininvocation. 165761d06d6bSBaptiste DaroussinSee 16587295610fSBaptiste Daroussin.Ic \&TS . 165961d06d6bSBaptiste Daroussin.It Ic \&ta Op Ar width ... Op Cm T Ar width ... 166061d06d6bSBaptiste DaroussinSet tab stops. 166161d06d6bSBaptiste DaroussinEach 166261d06d6bSBaptiste Daroussin.Ar width 166361d06d6bSBaptiste Daroussinargument follows the syntax of 166461d06d6bSBaptiste Daroussin.Sx Scaling Widths . 166561d06d6bSBaptiste DaroussinIf prefixed by a plus sign, it is relative to the previous tab stop. 166661d06d6bSBaptiste DaroussinThe arguments after the 166761d06d6bSBaptiste Daroussin.Cm T 166861d06d6bSBaptiste Daroussinmarker are used repeatedly as often as needed; for each reuse, 166961d06d6bSBaptiste Daroussinthey are taken relative to the last previously established tab stop. 167061d06d6bSBaptiste DaroussinWhen 167161d06d6bSBaptiste Daroussin.Ic \&ta 167261d06d6bSBaptiste Daroussinis called without arguments, all tab stops are cleared. 167361d06d6bSBaptiste Daroussin.It Ic \&tc Op Ar glyph 167461d06d6bSBaptiste DaroussinChange tab repetition character. 167561d06d6bSBaptiste DaroussinCurrently unsupported. 167661d06d6bSBaptiste Daroussin.It Ic \&TE 167761d06d6bSBaptiste DaroussinEnd a table context. 167861d06d6bSBaptiste DaroussinSee 16797295610fSBaptiste Daroussin.Ic \&TS . 168061d06d6bSBaptiste Daroussin.It Ic \&ti Oo Cm + Ns | Ns Cm - Oc Ns Ar width 168161d06d6bSBaptiste DaroussinBreak the output line and indent the next output line by 168261d06d6bSBaptiste Daroussin.Ar width . 168361d06d6bSBaptiste DaroussinIf a sign is specified, the temporary indentation is calculated 168461d06d6bSBaptiste Daroussinrelative to the current indentation; otherwise, it is absolute. 168561d06d6bSBaptiste DaroussinThe argument follows the syntax of 168661d06d6bSBaptiste Daroussin.Sx Scaling Widths 168761d06d6bSBaptiste Daroussinand the default scaling unit is 168861d06d6bSBaptiste Daroussin.Cm m . 168961d06d6bSBaptiste Daroussin.It Ic \&tkf Ar font minps width1 maxps width2 169061d06d6bSBaptiste DaroussinEnable track kerning for a font. 169161d06d6bSBaptiste DaroussinCurrently ignored. 169261d06d6bSBaptiste Daroussin.It Ic \&tl No \& Ap Ar left Ap Ar center Ap Ar right Ap 169361d06d6bSBaptiste DaroussinPrint a title line. 169461d06d6bSBaptiste DaroussinCurrently unsupported. 169561d06d6bSBaptiste Daroussin.It Ic \&tm Ar string 169661d06d6bSBaptiste DaroussinPrint to standard error output. 169761d06d6bSBaptiste DaroussinCurrently ignored. 169861d06d6bSBaptiste Daroussin.It Ic \&tm1 Ar string 169961d06d6bSBaptiste DaroussinPrint to standard error output, allowing leading blanks. 170061d06d6bSBaptiste DaroussinThis is a groff extension and currently ignored. 170161d06d6bSBaptiste Daroussin.It Ic \&tmc Ar string 170261d06d6bSBaptiste DaroussinPrint to standard error output without a trailing newline. 170361d06d6bSBaptiste DaroussinThis is a groff extension and currently ignored. 170461d06d6bSBaptiste Daroussin.It Ic \&tr Ar glyph glyph ... 170561d06d6bSBaptiste DaroussinOutput character translation. 170661d06d6bSBaptiste DaroussinThe first glyph in each pair is replaced by the second one. 170761d06d6bSBaptiste DaroussinCharacter escapes can be used; for example, 170861d06d6bSBaptiste Daroussin.Pp 170961d06d6bSBaptiste Daroussin.Dl tr \e(xx\e(yy 171061d06d6bSBaptiste Daroussin.Pp 171161d06d6bSBaptiste Daroussinreplaces all invocations of \e(xx with \e(yy. 171261d06d6bSBaptiste Daroussin.It Ic \&track Ar font minps width1 maxps width2 171361d06d6bSBaptiste DaroussinStatic letter space tracking. 171461d06d6bSBaptiste DaroussinThis is a Heirloom extension and currently ignored. 171561d06d6bSBaptiste Daroussin.It Ic \&transchar Ar char ... 171661d06d6bSBaptiste DaroussinDefine transparent characters for sentence-ending. 171761d06d6bSBaptiste DaroussinThis is a Heirloom extension and currently ignored. 171861d06d6bSBaptiste Daroussin.It Ic \&trf Ar filename 171961d06d6bSBaptiste DaroussinOutput the contents of a file, disallowing invalid characters. 172061d06d6bSBaptiste DaroussinThis is a groff extension and ignored because insecure. 172161d06d6bSBaptiste Daroussin.It Ic \&trimat Ar left top width height 172261d06d6bSBaptiste DaroussinSet the TrimBox page parameter for PDF generation. 172361d06d6bSBaptiste DaroussinThis is a Heirloom extension and currently ignored. 172461d06d6bSBaptiste Daroussin.It Ic \&trin Ar glyph glyph ... 172561d06d6bSBaptiste DaroussinOutput character translation, ignored by 172661d06d6bSBaptiste Daroussin.Ic \&asciify . 172761d06d6bSBaptiste DaroussinCurrently unsupported. 172861d06d6bSBaptiste Daroussin.It Ic \&trnt Ar glyph glyph ... 172961d06d6bSBaptiste DaroussinOutput character translation, ignored by \e!. 173061d06d6bSBaptiste DaroussinCurrently unsupported. 173161d06d6bSBaptiste Daroussin.It Ic \&troff 173261d06d6bSBaptiste DaroussinForce troff mode. 173361d06d6bSBaptiste DaroussinThis is a groff extension and currently ignored. 173461d06d6bSBaptiste Daroussin.It Ic \&TS 173561d06d6bSBaptiste DaroussinBegin a table, which formats input in aligned rows and columns. 173661d06d6bSBaptiste DaroussinSee 173761d06d6bSBaptiste Daroussin.Xr tbl 7 173861d06d6bSBaptiste Daroussinfor a description of the tbl language. 173961d06d6bSBaptiste Daroussin.It Ic \&uf Ar font 174061d06d6bSBaptiste DaroussinGlobally set the underline font. 174161d06d6bSBaptiste DaroussinCurrently ignored. 174261d06d6bSBaptiste Daroussin.It Ic \&ul Op Ar N 174361d06d6bSBaptiste DaroussinUnderline next 174461d06d6bSBaptiste Daroussin.Ar N 174561d06d6bSBaptiste Daroussininput lines. 174661d06d6bSBaptiste DaroussinCurrently ignored. 174761d06d6bSBaptiste Daroussin.It Ic \&unformat Ar divname 174861d06d6bSBaptiste DaroussinUnformat spaces and tabs in a diversion. 174961d06d6bSBaptiste DaroussinCurrently unsupported. 175061d06d6bSBaptiste Daroussin.It Ic \&unwatch Ar macroname 175161d06d6bSBaptiste DaroussinDisable notification for string or macro. 175261d06d6bSBaptiste DaroussinThis is a Heirloom extension and currently ignored. 175361d06d6bSBaptiste Daroussin.It Ic \&unwatchn Ar register 175461d06d6bSBaptiste DaroussinDisable notification for register. 175561d06d6bSBaptiste DaroussinThis is a Heirloom extension and currently ignored. 175661d06d6bSBaptiste Daroussin.It Ic \&vpt Op Cm 1 | 0 175761d06d6bSBaptiste DaroussinEnable or disable vertical position traps. 175861d06d6bSBaptiste DaroussinThis is a groff extension and currently ignored. 175961d06d6bSBaptiste Daroussin.It Ic \&vs Op Oo Cm + Ns | Ns Cm - Oc Ns Ar height 176061d06d6bSBaptiste DaroussinChange vertical spacing. 176161d06d6bSBaptiste DaroussinCurrently ignored. 176261d06d6bSBaptiste Daroussin.It Ic \&warn Ar flags 176361d06d6bSBaptiste DaroussinSet warning level. 176461d06d6bSBaptiste DaroussinCurrently ignored. 176561d06d6bSBaptiste Daroussin.It Ic \&warnscale Ar si 176661d06d6bSBaptiste DaroussinSet the scaling indicator used in warnings. 176761d06d6bSBaptiste DaroussinThis is a groff extension and currently ignored. 176861d06d6bSBaptiste Daroussin.It Ic \&watch Ar macroname 176961d06d6bSBaptiste DaroussinNotify on change of string or macro. 177061d06d6bSBaptiste DaroussinThis is a Heirloom extension and currently ignored. 177161d06d6bSBaptiste Daroussin.It Ic \&watchlength Ar maxlength 177261d06d6bSBaptiste DaroussinOn change, report the contents of macros and strings 177361d06d6bSBaptiste Daroussinup to the specified length. 177461d06d6bSBaptiste DaroussinThis is a Heirloom extension and currently ignored. 177561d06d6bSBaptiste Daroussin.It Ic \&watchn Ar register 177661d06d6bSBaptiste DaroussinNotify on change of register. 177761d06d6bSBaptiste DaroussinThis is a Heirloom extension and currently ignored. 177861d06d6bSBaptiste Daroussin.It Ic \&wh Ar dist Op Ar macroname 177961d06d6bSBaptiste DaroussinSet a page location trap. 178061d06d6bSBaptiste DaroussinCurrently unsupported. 178161d06d6bSBaptiste Daroussin.It Ic \&while Ar condition body 17827295610fSBaptiste DaroussinRepeated execution while a 17837295610fSBaptiste Daroussin.Ar condition 17847295610fSBaptiste Daroussinis true, with syntax similar to 17857295610fSBaptiste Daroussin.Ic \&if . 17867295610fSBaptiste DaroussinCurrently implemented with two restrictions: cannot nest, 17877295610fSBaptiste Daroussinand each loop must start and end in the same scope. 178861d06d6bSBaptiste Daroussin.It Ic \&write Oo \(dq Oc Ns Ar string 178961d06d6bSBaptiste DaroussinWrite to an open file. 179061d06d6bSBaptiste DaroussinIgnored because insecure. 179161d06d6bSBaptiste Daroussin.It Ic \&writec Oo \(dq Oc Ns Ar string 179261d06d6bSBaptiste DaroussinWrite to an open file without appending a newline. 179361d06d6bSBaptiste DaroussinIgnored because insecure. 179461d06d6bSBaptiste Daroussin.It Ic \&writem Ar macroname 179561d06d6bSBaptiste DaroussinWrite macro or string to an open file. 179661d06d6bSBaptiste DaroussinIgnored because insecure. 179761d06d6bSBaptiste Daroussin.It Ic \&xflag Ar level 179861d06d6bSBaptiste DaroussinSet the extension level. 179961d06d6bSBaptiste DaroussinThis is a Heirloom extension and currently ignored. 180061d06d6bSBaptiste Daroussin.El 180161d06d6bSBaptiste Daroussin.Ss Numerical expressions 180261d06d6bSBaptiste DaroussinThe 18037295610fSBaptiste Daroussin.Ic \&nr , 18047295610fSBaptiste Daroussin.Ic \&if , 180561d06d6bSBaptiste Daroussinand 18067295610fSBaptiste Daroussin.Ic \&ie 180761d06d6bSBaptiste Daroussinrequests accept integer numerical expressions as arguments. 180861d06d6bSBaptiste DaroussinThese are always evaluated using the C 180961d06d6bSBaptiste Daroussin.Vt int 181061d06d6bSBaptiste Daroussintype; integer overflow works the same way as in the C language. 181161d06d6bSBaptiste DaroussinNumbers consist of an arbitrary number of digits 181261d06d6bSBaptiste Daroussin.Sq 0 181361d06d6bSBaptiste Daroussinto 181461d06d6bSBaptiste Daroussin.Sq 9 181561d06d6bSBaptiste Daroussinprefixed by an optional sign 181661d06d6bSBaptiste Daroussin.Sq + 181761d06d6bSBaptiste Daroussinor 181861d06d6bSBaptiste Daroussin.Sq - . 181961d06d6bSBaptiste DaroussinEach number may be followed by one optional scaling unit described below 182061d06d6bSBaptiste Daroussin.Sx Scaling Widths . 182161d06d6bSBaptiste DaroussinThe following equations hold: 182261d06d6bSBaptiste Daroussin.Bd -literal -offset indent 182361d06d6bSBaptiste Daroussin1i = 6v = 6P = 10m = 10n = 72p = 1000M = 240u = 240 182461d06d6bSBaptiste Daroussin254c = 100i = 24000u = 24000 182561d06d6bSBaptiste Daroussin1f = 65536u = 65536 182661d06d6bSBaptiste Daroussin.Ed 182761d06d6bSBaptiste Daroussin.Pp 182861d06d6bSBaptiste DaroussinThe following binary operators are implemented. 182961d06d6bSBaptiste DaroussinUnless otherwise stated, they behave as in the C language: 183061d06d6bSBaptiste Daroussin.Pp 183161d06d6bSBaptiste Daroussin.Bl -tag -width 2n -compact 183261d06d6bSBaptiste Daroussin.It Ic + 183361d06d6bSBaptiste Daroussinaddition 183461d06d6bSBaptiste Daroussin.It Ic - 183561d06d6bSBaptiste Daroussinsubtraction 183661d06d6bSBaptiste Daroussin.It Ic * 183761d06d6bSBaptiste Daroussinmultiplication 183861d06d6bSBaptiste Daroussin.It Ic / 183961d06d6bSBaptiste Daroussindivision 184061d06d6bSBaptiste Daroussin.It Ic % 184161d06d6bSBaptiste Daroussinremainder of division 184261d06d6bSBaptiste Daroussin.It Ic < 184361d06d6bSBaptiste Daroussinless than 184461d06d6bSBaptiste Daroussin.It Ic > 184561d06d6bSBaptiste Daroussingreater than 184661d06d6bSBaptiste Daroussin.It Ic == 184761d06d6bSBaptiste Daroussinequal to 184861d06d6bSBaptiste Daroussin.It Ic = 184961d06d6bSBaptiste Daroussinequal to, same effect as 185061d06d6bSBaptiste Daroussin.Ic == 185161d06d6bSBaptiste Daroussin(this differs from C) 185261d06d6bSBaptiste Daroussin.It Ic <= 185361d06d6bSBaptiste Daroussinless than or equal to 185461d06d6bSBaptiste Daroussin.It Ic >= 185561d06d6bSBaptiste Daroussingreater than or equal to 185661d06d6bSBaptiste Daroussin.It Ic <> 185761d06d6bSBaptiste Daroussinnot equal to (corresponds to C 185861d06d6bSBaptiste Daroussin.Ic != ; 185961d06d6bSBaptiste Daroussinthis one is of limited portability, it is supported by Heirloom roff, 186061d06d6bSBaptiste Daroussinbut not by groff) 186161d06d6bSBaptiste Daroussin.It Ic & 186261d06d6bSBaptiste Daroussinlogical and (corresponds to C 186361d06d6bSBaptiste Daroussin.Ic && ) 186461d06d6bSBaptiste Daroussin.It Ic \&: 186561d06d6bSBaptiste Daroussinlogical or (corresponds to C 186661d06d6bSBaptiste Daroussin.Ic || ) 186761d06d6bSBaptiste Daroussin.It Ic <? 186861d06d6bSBaptiste Daroussinminimum (not available in C) 186961d06d6bSBaptiste Daroussin.It Ic >? 187061d06d6bSBaptiste Daroussinmaximum (not available in C) 187161d06d6bSBaptiste Daroussin.El 187261d06d6bSBaptiste Daroussin.Pp 187361d06d6bSBaptiste DaroussinThere is no concept of precedence; evaluation proceeds from left to right, 187461d06d6bSBaptiste Daroussinexcept when subexpressions are enclosed in parentheses. 187561d06d6bSBaptiste DaroussinInside parentheses, whitespace is ignored. 187661d06d6bSBaptiste Daroussin.Sh ESCAPE SEQUENCE REFERENCE 187761d06d6bSBaptiste DaroussinThe 187861d06d6bSBaptiste Daroussin.Xr mandoc 1 187961d06d6bSBaptiste Daroussin.Nm 188061d06d6bSBaptiste Daroussinparser recognises the following escape sequences. 188161d06d6bSBaptiste DaroussinIn 188261d06d6bSBaptiste Daroussin.Xr mdoc 7 188361d06d6bSBaptiste Daroussinand 188461d06d6bSBaptiste Daroussin.Xr man 7 188561d06d6bSBaptiste Daroussindocuments, using escape sequences is discouraged except for those 188661d06d6bSBaptiste Daroussindescribed in the 188761d06d6bSBaptiste Daroussin.Sx LANGUAGE SYNTAX 188861d06d6bSBaptiste Daroussinsection above. 188961d06d6bSBaptiste Daroussin.Pp 189061d06d6bSBaptiste DaroussinA backslash followed by any character not listed here 189161d06d6bSBaptiste Daroussinsimply prints that character itself. 18927295610fSBaptiste Daroussin.Bl -tag -width Ds 18937295610fSBaptiste Daroussin.It Ic \e<newline> 189461d06d6bSBaptiste DaroussinA backslash at the end of an input line can be used to continue the 189561d06d6bSBaptiste Daroussinlogical input line on the next physical input line, joining the text 189661d06d6bSBaptiste Daroussinon both lines together as if it were on a single input line. 18977295610fSBaptiste Daroussin.It Ic \e<space> 189861d06d6bSBaptiste DaroussinThe escape sequence backslash-space 189961d06d6bSBaptiste Daroussin.Pq Sq \e\ \& 190061d06d6bSBaptiste Daroussinis an unpaddable space-sized non-breaking space character; see 19017295610fSBaptiste Daroussin.Sx Whitespace 19027295610fSBaptiste Daroussinand 19037295610fSBaptiste Daroussin.Xr mandoc_char 7 . 19047295610fSBaptiste Daroussin.It Ic \e! 19057295610fSBaptiste DaroussinEmbed text up to and including the end of the input line into the 19067295610fSBaptiste Daroussincurrent diversion or into intermediate output without interpreting 19077295610fSBaptiste Daroussinrequests, macros, and escapes. 19087295610fSBaptiste DaroussinCurrently unsupported. 19097295610fSBaptiste Daroussin.It Ic \e\(dq 191061d06d6bSBaptiste DaroussinThe rest of the input line is treated as 191161d06d6bSBaptiste Daroussin.Sx Comments . 19127295610fSBaptiste Daroussin.It Ic \e# 19137295610fSBaptiste DaroussinLine continuation with comment. 19147295610fSBaptiste DaroussinDiscard the rest of the physical input line and continue the logical 19157295610fSBaptiste Daroussininput line on the next physical input line, joining the text on 19167295610fSBaptiste Daroussinboth lines together as if it were on a single input line. 19177295610fSBaptiste DaroussinThis is a groff extension. 19187295610fSBaptiste Daroussin.It Ic \e$ Ns Ar arg 19197295610fSBaptiste DaroussinMacro argument expansion, see 19207295610fSBaptiste Daroussin.Ic \&de . 19217295610fSBaptiste Daroussin.It Ic \e% 192261d06d6bSBaptiste DaroussinHyphenation allowed at this point of the word; ignored by 192361d06d6bSBaptiste Daroussin.Xr mandoc 1 . 19247295610fSBaptiste Daroussin.It Ic \e& 19257295610fSBaptiste DaroussinNon-printing zero-width character, 19267295610fSBaptiste Daroussinoften used for various kinds of escaping; see 19277295610fSBaptiste Daroussin.Sx Whitespace , 19287295610fSBaptiste Daroussin.Xr mandoc_char 7 , 19297295610fSBaptiste Daroussinand the 19307295610fSBaptiste Daroussin.Dq MACRO SYNTAX 19317295610fSBaptiste Daroussinand 19327295610fSBaptiste Daroussin.Dq Delimiters 19337295610fSBaptiste Daroussinsections in 19347295610fSBaptiste Daroussin.Xr mdoc 7 . 19357295610fSBaptiste Daroussin.It Ic \e\(aq 193661d06d6bSBaptiste DaroussinAcute accent special character; use 19377295610fSBaptiste Daroussin.Ic \e(aa 193861d06d6bSBaptiste Daroussininstead. 19397295610fSBaptiste Daroussin.It Ic \e( Ns Ar cc 194061d06d6bSBaptiste Daroussin.Sx Special Characters 194161d06d6bSBaptiste Daroussinwith two-letter names, see 194261d06d6bSBaptiste Daroussin.Xr mandoc_char 7 . 19437295610fSBaptiste Daroussin.It Ic \e) 19447295610fSBaptiste DaroussinZero-width space transparent to end-of-sentence detection; 19457295610fSBaptiste Daroussinignored by 19467295610fSBaptiste Daroussin.Xr mandoc 1 . 19477295610fSBaptiste Daroussin.It Ic \e*[ Ns Ar name Ns Ic \&] 194861d06d6bSBaptiste DaroussinInterpolate the string with the 19497295610fSBaptiste Daroussin.Ar name . 195061d06d6bSBaptiste DaroussinFor short names, there are variants 19517295610fSBaptiste Daroussin.Ic \e* Ns Ar c 195261d06d6bSBaptiste Daroussinand 19537295610fSBaptiste Daroussin.Ic \e*( Ns Ar cc . 19547295610fSBaptiste Daroussin.Pp 19557295610fSBaptiste DaroussinOne string is predefined on the 19567295610fSBaptiste Daroussin.Nm 19577295610fSBaptiste Daroussinlanguage level: 19587295610fSBaptiste Daroussin.Ic \e*(.T 19597295610fSBaptiste Daroussinexpands to the name of the output device, 19607295610fSBaptiste Daroussinfor example ascii, utf8, ps, pdf, html, or markdown. 19617295610fSBaptiste Daroussin.Pp 19627295610fSBaptiste DaroussinMacro sets traditionally predefine additional strings which are not 19637295610fSBaptiste Daroussinportable and differ across implementations. 19647295610fSBaptiste DaroussinThose supported by 19657295610fSBaptiste Daroussin.Xr mandoc 1 19667295610fSBaptiste Daroussinare listed in 19677295610fSBaptiste Daroussin.Xr mandoc_char 7 . 19687295610fSBaptiste Daroussin.Pp 19697295610fSBaptiste DaroussinStrings can be defined, changed, and deleted with the 19707295610fSBaptiste Daroussin.Ic \&ds , 19717295610fSBaptiste Daroussin.Ic \&as , 19727295610fSBaptiste Daroussinand 19737295610fSBaptiste Daroussin.Ic \&rm 19747295610fSBaptiste Daroussinrequests. 19757295610fSBaptiste Daroussin.It Ic \e, 197661d06d6bSBaptiste DaroussinLeft italic correction (groff extension); ignored by 197761d06d6bSBaptiste Daroussin.Xr mandoc 1 . 19787295610fSBaptiste Daroussin.It Ic \e- 197961d06d6bSBaptiste DaroussinSpecial character 19807295610fSBaptiste Daroussin.Dq mathematical minus sign ; 19817295610fSBaptiste Daroussinsee 19827295610fSBaptiste Daroussin.Xr mandoc_char 7 19837295610fSBaptiste Daroussinfor details. 19847295610fSBaptiste Daroussin.It Ic \e/ 198561d06d6bSBaptiste DaroussinRight italic correction (groff extension); ignored by 198661d06d6bSBaptiste Daroussin.Xr mandoc 1 . 19877295610fSBaptiste Daroussin.It Ic \e: 19887295610fSBaptiste DaroussinBreaking the line is allowed at this point of the word 19897295610fSBaptiste Daroussinwithout inserting a hyphen. 19907295610fSBaptiste Daroussin.It Ic \e? 19917295610fSBaptiste DaroussinEmbed the text up to the next 19927295610fSBaptiste Daroussin.Ic \e? 19937295610fSBaptiste Daroussininto the current diversion without interpreting requests, macros, 19947295610fSBaptiste Daroussinand escapes. 19957295610fSBaptiste DaroussinThis is a groff extension and currently unsupported. 19967295610fSBaptiste Daroussin.It Ic \e[ Ns Ar name Ns Ic \&] 199761d06d6bSBaptiste Daroussin.Sx Special Characters 199861d06d6bSBaptiste Daroussinwith names of arbitrary length, see 199961d06d6bSBaptiste Daroussin.Xr mandoc_char 7 . 20007295610fSBaptiste Daroussin.It Ic \e^ 200161d06d6bSBaptiste DaroussinOne-twelfth em half-narrow space character, effectively zero-width in 200261d06d6bSBaptiste Daroussin.Xr mandoc 1 . 20037295610fSBaptiste Daroussin.It Ic \e_ 20047295610fSBaptiste DaroussinUnderline special character; use 20057295610fSBaptiste Daroussin.Ic \e(ul 200661d06d6bSBaptiste Daroussininstead. 20077295610fSBaptiste Daroussin.It Ic \e` 20087295610fSBaptiste DaroussinGrave accent special character; use 20097295610fSBaptiste Daroussin.Ic \e(ga 20107295610fSBaptiste Daroussininstead. 20117295610fSBaptiste Daroussin.It Ic \e{ 201261d06d6bSBaptiste DaroussinBegin conditional input; see 20137295610fSBaptiste Daroussin.Ic \&if . 20147295610fSBaptiste Daroussin.It Ic \e\(ba 201561d06d6bSBaptiste DaroussinOne-sixth em narrow space character, effectively zero-width in 201661d06d6bSBaptiste Daroussin.Xr mandoc 1 . 20177295610fSBaptiste Daroussin.It Ic \e} 201861d06d6bSBaptiste DaroussinEnd conditional input; see 20197295610fSBaptiste Daroussin.Ic \&if . 20207295610fSBaptiste Daroussin.It Ic \e~ 202161d06d6bSBaptiste DaroussinPaddable non-breaking space character. 20227295610fSBaptiste Daroussin.It Ic \e0 202361d06d6bSBaptiste DaroussinDigit width space character. 20247295610fSBaptiste Daroussin.It Ic \eA\(aq Ns Ar string Ns Ic \(aq 202561d06d6bSBaptiste DaroussinAnchor definition; ignored by 202661d06d6bSBaptiste Daroussin.Xr mandoc 1 . 20277295610fSBaptiste Daroussin.It Ic \ea 20287295610fSBaptiste DaroussinLeader character; ignored by 20297295610fSBaptiste Daroussin.Xr mandoc 1 . 20307295610fSBaptiste Daroussin.It Ic \eB\(aq Ns Ar string Ns Ic \(aq 203161d06d6bSBaptiste DaroussinInterpolate 203261d06d6bSBaptiste Daroussin.Sq 1 203361d06d6bSBaptiste Daroussinif 203461d06d6bSBaptiste Daroussin.Ar string 203561d06d6bSBaptiste Daroussinconforms to the syntax of 203661d06d6bSBaptiste Daroussin.Sx Numerical expressions 20377295610fSBaptiste Daroussinexplained above or 203861d06d6bSBaptiste Daroussin.Sq 0 203961d06d6bSBaptiste Daroussinotherwise. 20407295610fSBaptiste Daroussin.It Ic \eb\(aq Ns Ar string Ns Ic \(aq 204161d06d6bSBaptiste DaroussinBracket building function; ignored by 204261d06d6bSBaptiste Daroussin.Xr mandoc 1 . 20437295610fSBaptiste Daroussin.It Ic \eC\(aq Ns Ar name Ns Ic \(aq 204461d06d6bSBaptiste Daroussin.Sx Special Characters 204561d06d6bSBaptiste Daroussinwith names of arbitrary length. 20467295610fSBaptiste Daroussin.It Ic \ec 204761d06d6bSBaptiste DaroussinWhen encountered at the end of an input text line, 204861d06d6bSBaptiste Daroussinthe next input text line is considered to continue that line, 204961d06d6bSBaptiste Daroussineven if there are request or macro lines in between. 205061d06d6bSBaptiste DaroussinNo whitespace is inserted. 20517295610fSBaptiste Daroussin.It Ic \eD\(aq Ns Ar string Ns Ic \(aq 205261d06d6bSBaptiste DaroussinDraw graphics function; ignored by 205361d06d6bSBaptiste Daroussin.Xr mandoc 1 . 20547295610fSBaptiste Daroussin.It Ic \ed 205561d06d6bSBaptiste DaroussinMove down by half a line; ignored by 205661d06d6bSBaptiste Daroussin.Xr mandoc 1 . 20577295610fSBaptiste Daroussin.It Ic \eE 20587295610fSBaptiste DaroussinEscape character intended to not be interpreted in copy mode. 20597295610fSBaptiste DaroussinIn 20607295610fSBaptiste Daroussin.Xr mandoc 1 , 20617295610fSBaptiste Daroussinit currently does the same as 20627295610fSBaptiste Daroussin.Ic \e 20637295610fSBaptiste Daroussinitself. 20647295610fSBaptiste Daroussin.It Ic \ee 206561d06d6bSBaptiste DaroussinBackslash special character. 20667295610fSBaptiste Daroussin.It Ic \eF[ Ns Ar name Ns Ic \&] 206761d06d6bSBaptiste DaroussinSwitch font family (groff extension); ignored by 206861d06d6bSBaptiste Daroussin.Xr mandoc 1 . 206961d06d6bSBaptiste DaroussinFor short names, there are variants 20707295610fSBaptiste Daroussin.Ic \eF Ns Ar c 207161d06d6bSBaptiste Daroussinand 20727295610fSBaptiste Daroussin.Ic \eF( Ns Ar cc . 20737295610fSBaptiste Daroussin.It Ic \ef[ Ns Ar name Ns Ic \&] 207461d06d6bSBaptiste DaroussinSwitch to the font 207561d06d6bSBaptiste Daroussin.Ar name , 207661d06d6bSBaptiste Daroussinsee 20777295610fSBaptiste Daroussin.Sx Font Selection . 207861d06d6bSBaptiste DaroussinFor short names, there are variants 20797295610fSBaptiste Daroussin.Ic \ef Ns Ar c 208061d06d6bSBaptiste Daroussinand 20817295610fSBaptiste Daroussin.Ic \ef( Ns Ar cc . 20827295610fSBaptiste DaroussinAn empty name 20837295610fSBaptiste Daroussin.Ic \ef[] 20847295610fSBaptiste Daroussindefaults to 20857295610fSBaptiste Daroussin.Ic \efP . 20867295610fSBaptiste Daroussin.It Ic \eg[ Ns Ar name Ns Ic \&] 208761d06d6bSBaptiste DaroussinInterpolate the format of a number register; ignored by 208861d06d6bSBaptiste Daroussin.Xr mandoc 1 . 208961d06d6bSBaptiste DaroussinFor short names, there are variants 20907295610fSBaptiste Daroussin.Ic \eg Ns Ar c 209161d06d6bSBaptiste Daroussinand 20927295610fSBaptiste Daroussin.Ic \eg( Ns Ar cc . 20937295610fSBaptiste Daroussin.It Ic \eH\(aq Ns Oo +|- Oc Ns Ar number Ns Ic \(aq 209461d06d6bSBaptiste DaroussinSet the height of the current font; ignored by 209561d06d6bSBaptiste Daroussin.Xr mandoc 1 . 20967295610fSBaptiste Daroussin.It Ic \eh\(aq Ns Oo Cm \&| Oc Ns Ar width Ns Ic \(aq 209761d06d6bSBaptiste DaroussinHorizontal motion. 209861d06d6bSBaptiste DaroussinIf the vertical bar is given, the motion is relative to the current 209961d06d6bSBaptiste Daroussinindentation. 210061d06d6bSBaptiste DaroussinOtherwise, it is relative to the current position. 210161d06d6bSBaptiste DaroussinThe default scaling unit is 210261d06d6bSBaptiste Daroussin.Cm m . 21037295610fSBaptiste Daroussin.It Ic \ek[ Ns Ar name Ns Ic \&] 210461d06d6bSBaptiste DaroussinMark horizontal input place in register; ignored by 210561d06d6bSBaptiste Daroussin.Xr mandoc 1 . 210661d06d6bSBaptiste DaroussinFor short names, there are variants 21077295610fSBaptiste Daroussin.Ic \ek Ns Ar c 210861d06d6bSBaptiste Daroussinand 21097295610fSBaptiste Daroussin.Ic \ek( Ns Ar cc . 21107295610fSBaptiste Daroussin.It Ic \eL\(aq Ns Ar number Ns Oo Ar c Oc Ns Ic \(aq 211161d06d6bSBaptiste DaroussinVertical line drawing function; ignored by 211261d06d6bSBaptiste Daroussin.Xr mandoc 1 . 21137295610fSBaptiste Daroussin.It Ic \el\(aq Ns Ar width Ns Oo Ar c Oc Ns Ic \(aq 211461d06d6bSBaptiste DaroussinDraw a horizontal line of 211561d06d6bSBaptiste Daroussin.Ar width 211661d06d6bSBaptiste Daroussinusing the glyph 211761d06d6bSBaptiste Daroussin.Ar c . 21187295610fSBaptiste Daroussin.It Ic \eM[ Ns Ar name Ns Ic \&] 211961d06d6bSBaptiste DaroussinSet fill (background) color (groff extension); ignored by 212061d06d6bSBaptiste Daroussin.Xr mandoc 1 . 212161d06d6bSBaptiste DaroussinFor short names, there are variants 21227295610fSBaptiste Daroussin.Ic \eM Ns Ar c 212361d06d6bSBaptiste Daroussinand 21247295610fSBaptiste Daroussin.Ic \eM( Ns Ar cc . 21257295610fSBaptiste Daroussin.It Ic \em[ Ns Ar name Ns Ic \&] 212661d06d6bSBaptiste DaroussinSet glyph drawing color (groff extension); ignored by 212761d06d6bSBaptiste Daroussin.Xr mandoc 1 . 212861d06d6bSBaptiste DaroussinFor short names, there are variants 21297295610fSBaptiste Daroussin.Ic \em Ns Ar c 213061d06d6bSBaptiste Daroussinand 21317295610fSBaptiste Daroussin.Ic \em( Ns Ar cc . 21327295610fSBaptiste Daroussin.It Ic \eN\(aq Ns Ar number Ns Ic \(aq 213361d06d6bSBaptiste DaroussinCharacter 213461d06d6bSBaptiste Daroussin.Ar number 213561d06d6bSBaptiste Daroussinon the current font. 21367295610fSBaptiste Daroussin.It Ic \en Ns Oo +|- Oc Ns Ic \&[ Ns Ar name Ns Ic \&] 213761d06d6bSBaptiste DaroussinInterpolate the number register 213861d06d6bSBaptiste Daroussin.Ar name . 213961d06d6bSBaptiste DaroussinFor short names, there are variants 21407295610fSBaptiste Daroussin.Ic \en Ns Ar c 214161d06d6bSBaptiste Daroussinand 21427295610fSBaptiste Daroussin.Ic \en( Ns Ar cc . 214361d06d6bSBaptiste DaroussinIf the optional sign is specified, 214461d06d6bSBaptiste Daroussinthe register is first incremented or decremented by the 214561d06d6bSBaptiste Daroussin.Ar stepsize 214661d06d6bSBaptiste Daroussinthat was specified in the relevant 214761d06d6bSBaptiste Daroussin.Ic \&nr 214861d06d6bSBaptiste Daroussinrequest, and the changed value is interpolated. 21497295610fSBaptiste Daroussin.It Ic \eO Ns Ar digit , Ic \eO[5 Ns arguments Ns Ic \&] 21507295610fSBaptiste DaroussinSuppress output. 21517295610fSBaptiste DaroussinThis is a groff extension and currently unsupported. 21527295610fSBaptiste DaroussinWith an argument of 21537295610fSBaptiste Daroussin.Ic 1 , 2 , 3 , 21547295610fSBaptiste Daroussinor 21557295610fSBaptiste Daroussin.Ic 4 , 21567295610fSBaptiste Daroussinit is ignored. 21577295610fSBaptiste Daroussin.It Ic \eo\(aq Ns Ar string Ns Ic \(aq 215861d06d6bSBaptiste DaroussinOverstrike, writing all the characters contained in the 215961d06d6bSBaptiste Daroussin.Ar string 216061d06d6bSBaptiste Daroussinto the same output position. 216161d06d6bSBaptiste DaroussinIn terminal and HTML output modes, 216261d06d6bSBaptiste Daroussinonly the last one of the characters is visible. 21637295610fSBaptiste Daroussin.It Ic \ep 216461d06d6bSBaptiste DaroussinBreak the output line at the end of the current word. 21657295610fSBaptiste Daroussin.It Ic \eR\(aq Ns Ar name Oo +|- Oc Ns Ar number Ns Ic \(aq 216661d06d6bSBaptiste DaroussinSet number register; ignored by 216761d06d6bSBaptiste Daroussin.Xr mandoc 1 . 21687295610fSBaptiste Daroussin.It Ic \er 21697295610fSBaptiste DaroussinMove up by one line; ignored by 21707295610fSBaptiste Daroussin.Xr mandoc 1 . 21717295610fSBaptiste Daroussin.It Ic \eS\(aq Ns Ar number Ns Ic \(aq 217261d06d6bSBaptiste DaroussinSlant output; ignored by 217361d06d6bSBaptiste Daroussin.Xr mandoc 1 . 21747295610fSBaptiste Daroussin.It Ic \es\(aq Ns Oo +|- Oc Ns Ar number Ns Ic \(aq 217561d06d6bSBaptiste DaroussinChange point size; ignored by 217661d06d6bSBaptiste Daroussin.Xr mandoc 1 . 217761d06d6bSBaptiste DaroussinAlternative forms 21787295610fSBaptiste Daroussin.Ic \es Ns Oo +|- Oc Ns Ar n , 21797295610fSBaptiste Daroussin.Ic \es Ns Oo +|- Oc Ns Ic \(aq Ns Ar number Ns Ic \(aq , 21807295610fSBaptiste Daroussin.Ic \es[ Ns Oo +|- Oc Ns Ar number Ns Ic \&] , 218161d06d6bSBaptiste Daroussinand 21827295610fSBaptiste Daroussin.Ic \es Ns Oo +|- Oc Ns Ic \&[ Ns Ar number Ns Ic \&] 218361d06d6bSBaptiste Daroussinare also parsed and ignored. 21847295610fSBaptiste Daroussin.It Ic \et 218561d06d6bSBaptiste DaroussinHorizontal tab; ignored by 218661d06d6bSBaptiste Daroussin.Xr mandoc 1 . 21877295610fSBaptiste Daroussin.It Ic \eu 218861d06d6bSBaptiste DaroussinMove up by half a line; ignored by 218961d06d6bSBaptiste Daroussin.Xr mandoc 1 . 21907295610fSBaptiste Daroussin.It Ic \eV[ Ns Ar name Ns Ic \&] 219161d06d6bSBaptiste DaroussinInterpolate an environment variable; ignored by 219261d06d6bSBaptiste Daroussin.Xr mandoc 1 . 219361d06d6bSBaptiste DaroussinFor short names, there are variants 21947295610fSBaptiste Daroussin.Ic \eV Ns Ar c 219561d06d6bSBaptiste Daroussinand 21967295610fSBaptiste Daroussin.Ic \eV( Ns Ar cc . 21977295610fSBaptiste Daroussin.It Ic \ev\(aq Ns Ar number Ns Ic \(aq 219861d06d6bSBaptiste DaroussinVertical motion; ignored by 219961d06d6bSBaptiste Daroussin.Xr mandoc 1 . 22007295610fSBaptiste Daroussin.It Ic \ew\(aq Ns Ar string Ns Ic \(aq 220161d06d6bSBaptiste DaroussinInterpolate the width of the 220261d06d6bSBaptiste Daroussin.Ar string . 220361d06d6bSBaptiste DaroussinThe 220461d06d6bSBaptiste Daroussin.Xr mandoc 1 220561d06d6bSBaptiste Daroussinimplementation assumes that after expansion of user-defined strings, the 220661d06d6bSBaptiste Daroussin.Ar string 220761d06d6bSBaptiste Daroussinonly contains normal characters, no escape sequences, and that each 220861d06d6bSBaptiste Daroussincharacter has a width of 24 basic units. 22097295610fSBaptiste Daroussin.It Ic \eX\(aq Ns Ar string Ns Ic \(aq 221061d06d6bSBaptiste DaroussinOutput 221161d06d6bSBaptiste Daroussin.Ar string 221261d06d6bSBaptiste Daroussinas device control function; ignored in nroff mode and by 221361d06d6bSBaptiste Daroussin.Xr mandoc 1 . 22147295610fSBaptiste Daroussin.It Ic \ex\(aq Ns Ar number Ns Ic \(aq 221561d06d6bSBaptiste DaroussinExtra line space function; ignored by 221661d06d6bSBaptiste Daroussin.Xr mandoc 1 . 22177295610fSBaptiste Daroussin.It Ic \eY[ Ns Ar name Ns Ic \&] 221861d06d6bSBaptiste DaroussinOutput a string as a device control function; ignored in nroff mode and by 221961d06d6bSBaptiste Daroussin.Xr mandoc 1 . 222061d06d6bSBaptiste DaroussinFor short names, there are variants 22217295610fSBaptiste Daroussin.Ic \eY Ns Ar c 222261d06d6bSBaptiste Daroussinand 22237295610fSBaptiste Daroussin.Ic \eY( Ns Ar cc . 22247295610fSBaptiste Daroussin.It Ic \eZ\(aq Ns Ar string Ns Ic \(aq 222561d06d6bSBaptiste DaroussinPrint 222661d06d6bSBaptiste Daroussin.Ar string 222761d06d6bSBaptiste Daroussinwith zero width and height; ignored by 222861d06d6bSBaptiste Daroussin.Xr mandoc 1 . 22297295610fSBaptiste Daroussin.It Ic \ez 223061d06d6bSBaptiste DaroussinOutput the next character without advancing the cursor position. 22317295610fSBaptiste Daroussin.El 223261d06d6bSBaptiste Daroussin.Sh COMPATIBILITY 223361d06d6bSBaptiste DaroussinThe 223461d06d6bSBaptiste Daroussin.Xr mandoc 1 223561d06d6bSBaptiste Daroussinimplementation of the 223661d06d6bSBaptiste Daroussin.Nm 22377295610fSBaptiste Daroussinlanguage is incomplete. 22387295610fSBaptiste DaroussinMajor unimplemented features include: 223961d06d6bSBaptiste Daroussin.Pp 224061d06d6bSBaptiste Daroussin.Bl -dash -compact 224161d06d6bSBaptiste Daroussin.It 224261d06d6bSBaptiste DaroussinFor security reasons, 224361d06d6bSBaptiste Daroussin.Xr mandoc 1 224461d06d6bSBaptiste Daroussinnever reads or writes external files except via 22457295610fSBaptiste Daroussin.Ic \&so 224661d06d6bSBaptiste Daroussinrequests with safe relative paths. 224761d06d6bSBaptiste Daroussin.It 224861d06d6bSBaptiste DaroussinThere is no automatic hyphenation, no adjustment to the right margin, 22497295610fSBaptiste Daroussinand very limited support for centering; the output is always set flush-left. 225061d06d6bSBaptiste Daroussin.It 22517295610fSBaptiste DaroussinSupport for setting tabulator and leader characters is missing, 225261d06d6bSBaptiste Daroussinand support for manually changing indentation is limited. 225361d06d6bSBaptiste Daroussin.It 225461d06d6bSBaptiste DaroussinThe 225561d06d6bSBaptiste Daroussin.Sq u 225661d06d6bSBaptiste Daroussinscaling unit is the default terminal unit. 225761d06d6bSBaptiste DaroussinIn traditional troff systems, this unit changes depending on the 225861d06d6bSBaptiste Daroussinoutput media. 225961d06d6bSBaptiste Daroussin.It 226061d06d6bSBaptiste DaroussinWidth measurements are implemented in a crude way 226161d06d6bSBaptiste Daroussinand often yield wrong results. 22627295610fSBaptiste DaroussinSupport for explicit movement requests and escapes is limited. 226361d06d6bSBaptiste Daroussin.It 226461d06d6bSBaptiste DaroussinThere is no concept of output pages, no support for floats, 226561d06d6bSBaptiste Daroussingraphics drawing, and picture inclusion; 226661d06d6bSBaptiste Daroussinterminal output is always continuous. 226761d06d6bSBaptiste Daroussin.It 22687295610fSBaptiste DaroussinRequests regarding color, font families, font sizes, 22697295610fSBaptiste Daroussinand glyph manipulation are ignored. 227061d06d6bSBaptiste DaroussinFont support is very limited. 227161d06d6bSBaptiste DaroussinKerning is not implemented, and no ligatures are produced. 227261d06d6bSBaptiste Daroussin.It 227361d06d6bSBaptiste DaroussinThe 227461d06d6bSBaptiste Daroussin.Qq \(aq 227561d06d6bSBaptiste Daroussinmacro control character does not suppress output line breaks. 227661d06d6bSBaptiste Daroussin.It 22777295610fSBaptiste DaroussinDiversions and environments are not implemented, 227861d06d6bSBaptiste Daroussinand support for traps is very incomplete. 227961d06d6bSBaptiste Daroussin.It 22807295610fSBaptiste DaroussinUse of macros is not supported inside 22817295610fSBaptiste Daroussin.Xr tbl 7 22827295610fSBaptiste Daroussincode. 228361d06d6bSBaptiste Daroussin.El 228461d06d6bSBaptiste Daroussin.Pp 228561d06d6bSBaptiste DaroussinThe special semantics of the 228661d06d6bSBaptiste Daroussin.Cm nS 228745a5aec3SBaptiste Daroussinnumber register is an idiosyncrasy of 228861d06d6bSBaptiste Daroussin.Ox 228961d06d6bSBaptiste Daroussinmanuals and not supported by other 229061d06d6bSBaptiste Daroussin.Xr mdoc 7 229161d06d6bSBaptiste Daroussinimplementations. 229261d06d6bSBaptiste Daroussin.Sh SEE ALSO 229361d06d6bSBaptiste Daroussin.Xr mandoc 1 , 229461d06d6bSBaptiste Daroussin.Xr eqn 7 , 229561d06d6bSBaptiste Daroussin.Xr man 7 , 229661d06d6bSBaptiste Daroussin.Xr mandoc_char 7 , 229761d06d6bSBaptiste Daroussin.Xr mdoc 7 , 229861d06d6bSBaptiste Daroussin.Xr tbl 7 229961d06d6bSBaptiste Daroussin.Rs 230061d06d6bSBaptiste Daroussin.%A Joseph F. Ossanna 230161d06d6bSBaptiste Daroussin.%A Brian W. Kernighan 230261d06d6bSBaptiste Daroussin.%I AT&T Bell Laboratories 230361d06d6bSBaptiste Daroussin.%T Troff User's Manual 230461d06d6bSBaptiste Daroussin.%R Computing Science Technical Report 230561d06d6bSBaptiste Daroussin.%N 54 230661d06d6bSBaptiste Daroussin.%C Murray Hill, New Jersey 230761d06d6bSBaptiste Daroussin.%D 1976 and 1992 230861d06d6bSBaptiste Daroussin.%U http://www.kohala.com/start/troff/cstr54.ps 230961d06d6bSBaptiste Daroussin.Re 231061d06d6bSBaptiste Daroussin.Rs 231161d06d6bSBaptiste Daroussin.%A Joseph F. Ossanna 231261d06d6bSBaptiste Daroussin.%A Brian W. Kernighan 231361d06d6bSBaptiste Daroussin.%A Gunnar Ritter 231461d06d6bSBaptiste Daroussin.%T Heirloom Documentation Tools Nroff/Troff User's Manual 231561d06d6bSBaptiste Daroussin.%D September 17, 2007 231661d06d6bSBaptiste Daroussin.%U http://heirloom.sourceforge.net/doctools/troff.pdf 231761d06d6bSBaptiste Daroussin.Re 231861d06d6bSBaptiste Daroussin.Sh HISTORY 231961d06d6bSBaptiste DaroussinThe RUNOFF typesetting system, whose input forms the basis for 232061d06d6bSBaptiste Daroussin.Nm , 232161d06d6bSBaptiste Daroussinwas written in MAD and FAP for the CTSS operating system by Jerome E. 232261d06d6bSBaptiste DaroussinSaltzer in 1964. 232361d06d6bSBaptiste DaroussinDoug McIlroy rewrote it in BCPL in 1969, renaming it 232461d06d6bSBaptiste Daroussin.Nm . 232561d06d6bSBaptiste DaroussinDennis M. Ritchie rewrote McIlroy's 232661d06d6bSBaptiste Daroussin.Nm 232761d06d6bSBaptiste Daroussinin PDP-11 assembly for 232861d06d6bSBaptiste Daroussin.At v1 , 232961d06d6bSBaptiste DaroussinJoseph F. Ossanna improved roff and renamed it nroff 233061d06d6bSBaptiste Daroussinfor 233161d06d6bSBaptiste Daroussin.At v2 , 233261d06d6bSBaptiste Daroussinthen ported nroff to C as troff, which Brian W. Kernighan released with 233361d06d6bSBaptiste Daroussin.At v7 . 2334*6d38604fSBaptiste DaroussinIn 1989, James Clark re-implemented troff in C++, naming it groff. 233561d06d6bSBaptiste Daroussin.Sh AUTHORS 233661d06d6bSBaptiste Daroussin.An -nosplit 233761d06d6bSBaptiste DaroussinThis 233861d06d6bSBaptiste Daroussin.Nm 233961d06d6bSBaptiste Daroussinreference was written by 234061d06d6bSBaptiste Daroussin.An Kristaps Dzonsons Aq Mt kristaps@bsd.lv 234161d06d6bSBaptiste Daroussinand 234261d06d6bSBaptiste Daroussin.An Ingo Schwarze Aq Mt schwarze@openbsd.org . 2343