1.\" $OpenBSD: man.7,v 1.29 2012/06/20 21:37:32 schwarze Exp $ 2.\" 3.\" Copyright (c) 2009, 2010, 2011 Kristaps Dzonsons <kristaps@bsd.lv> 4.\" Copyright (c) 2011 Ingo Schwarze <schwarze@openbsd.org> 5.\" 6.\" Permission to use, copy, modify, and distribute this software for any 7.\" purpose with or without fee is hereby granted, provided that the above 8.\" copyright notice and this permission notice appear in all copies. 9.\" 10.\" THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES 11.\" WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF 12.\" MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR 13.\" ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES 14.\" WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN 15.\" ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF 16.\" OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. 17.\" 18.Dd $Mdocdate: June 20 2012 $ 19.Dt MAN 7 20.Os 21.Sh NAME 22.Nm man 23.Nd legacy formatting language for manual pages 24.Sh DESCRIPTION 25Traditionally, the 26.Nm man 27language has been used to write 28.Ux 29manuals for the 30.Xr man 1 31utility. 32It supports limited control of presentational details like fonts, 33indentation and spacing. 34This reference document describes the structure of manual pages 35and the syntax and usage of the man language. 36.Pp 37.Bf -emphasis 38Do not use 39.Nm 40to write your manuals: 41.Ef 42It lacks support for semantic markup. 43Use the 44.Xr mdoc 7 45language, instead. 46.Pp 47In a 48.Nm 49document, lines beginning with the control character 50.Sq \&. 51are called 52.Dq macro lines . 53The first word is the macro name. 54It usually consists of two capital letters. 55For a list of available macros, see 56.Sx MACRO OVERVIEW . 57The words following the macro name are arguments to the macro. 58.Pp 59Lines not beginning with the control character are called 60.Dq text lines . 61They provide free-form text to be printed; the formatting of the text 62depends on the respective processing context: 63.Bd -literal -offset indent 64\&.SH Macro lines change control state. 65Text lines are interpreted within the current state. 66.Ed 67.Pp 68Many aspects of the basic syntax of the 69.Nm 70language are based on the 71.Xr roff 7 72language; see the 73.Em LANGUAGE SYNTAX 74and 75.Em MACRO SYNTAX 76sections in the 77.Xr roff 7 78manual for details, in particular regarding 79comments, escape sequences, whitespace, and quoting. 80.Sh MANUAL STRUCTURE 81Each 82.Nm 83document must contain the 84.Sx \&TH 85macro describing the document's section and title. 86It may occur anywhere in the document, although conventionally it 87appears as the first macro. 88.Pp 89Beyond 90.Sx \&TH , 91at least one macro or text line must appear in the document. 92.Pp 93The following is a well-formed skeleton 94.Nm 95file for a utility 96.Qq progname : 97.Bd -literal -offset indent 98\&.TH PROGNAME 1 2009-10-10 99\&.SH NAME 100\efBprogname\efR \e(en a description goes here 101\&.\e\(dq .SH LIBRARY 102\&.\e\(dq For sections 2 & 3 only. 103\&.\e\(dq Not used in OpenBSD. 104\&.SH SYNOPSIS 105\efBprogname\efR [\efB\e-options\efR] arguments... 106\&.SH DESCRIPTION 107The \efBfoo\efR utility processes files... 108\&.\e\(dq .SH IMPLEMENTATION NOTES 109\&.\e\(dq Not used in OpenBSD. 110\&.\e\(dq .SH RETURN VALUES 111\&.\e\(dq For sections 2, 3, & 9 only. 112\&.\e\(dq .SH ENVIRONMENT 113\&.\e\(dq For sections 1, 6, 7, & 8 only. 114\&.\e\(dq .SH FILES 115\&.\e\(dq .SH EXIT STATUS 116\&.\e\(dq For sections 1, 6, & 8 only. 117\&.\e\(dq .SH EXAMPLES 118\&.\e\(dq .SH DIAGNOSTICS 119\&.\e\(dq For sections 1, 4, 6, 7, & 8 only. 120\&.\e\(dq .SH ERRORS 121\&.\e\(dq For sections 2, 3, & 9 only. 122\&.\e\(dq .SH SEE ALSO 123\&.\e\(dq .BR foo ( 1 ) 124\&.\e\(dq .SH STANDARDS 125\&.\e\(dq .SH HISTORY 126\&.\e\(dq .SH AUTHORS 127\&.\e\(dq .SH CAVEATS 128\&.\e\(dq .SH BUGS 129\&.\e\(dq .SH SECURITY CONSIDERATIONS 130\&.\e\(dq Not used in OpenBSD. 131.Ed 132.Pp 133The sections in a 134.Nm 135document are conventionally ordered as they appear above. 136Sections should be composed as follows: 137.Bl -ohang -offset indent 138.It Em NAME 139The name(s) and a short description of the documented material. 140The syntax for this is generally as follows: 141.Pp 142.D1 \efBname\efR \e(en description 143.It Em LIBRARY 144The name of the library containing the documented material, which is 145assumed to be a function in a section 2 or 3 manual. 146For functions in the C library, this may be as follows: 147.Pp 148.D1 Standard C Library (libc, -lc) 149.It Em SYNOPSIS 150Documents the utility invocation syntax, function call syntax, or device 151configuration. 152.Pp 153For the first, utilities (sections 1, 6, and 8), this is 154generally structured as follows: 155.Pp 156.D1 \efBname\efR [-\efBab\efR] [-\efBc\efR\efIarg\efR] \efBpath\efR... 157.Pp 158For the second, function calls (sections 2, 3, 9): 159.Pp 160.D1 \&.B char *name(char *\efIarg\efR); 161.Pp 162And for the third, configurations (section 4): 163.Pp 164.D1 \&.B name* at cardbus ? function ? 165.Pp 166Manuals not in these sections generally don't need a 167.Em SYNOPSIS . 168.It Em DESCRIPTION 169This expands upon the brief, one-line description in 170.Em NAME . 171It usually contains a break-down of the options (if documenting a 172command). 173.It Em IMPLEMENTATION NOTES 174Implementation-specific notes should be kept here. 175This is useful when implementing standard functions that may have side 176effects or notable algorithmic implications. 177.It Em RETURN VALUES 178This section documents the return values of functions in sections 2, 3, and 9. 179.It Em ENVIRONMENT 180Documents any usages of environment variables, e.g., 181.Xr environ 7 . 182.It Em FILES 183Documents files used. 184It's helpful to document both the file name and a short description of how 185the file is used (created, modified, etc.). 186.It Em EXIT STATUS 187This section documents the command exit status for 188section 1, 6, and 8 utilities. 189Historically, this information was described in 190.Em DIAGNOSTICS , 191a practise that is now discouraged. 192.It Em EXAMPLES 193Example usages. 194This often contains snippets of well-formed, 195well-tested invocations. 196Make sure that examples work properly! 197.It Em DIAGNOSTICS 198Documents error conditions. 199This is most useful in section 4 manuals. 200Historically, this section was used in place of 201.Em EXIT STATUS 202for manuals in sections 1, 6, and 8; however, this practise is 203discouraged. 204.It Em ERRORS 205Documents error handling in sections 2, 3, and 9. 206.It Em SEE ALSO 207References other manuals with related topics. 208This section should exist for most manuals. 209.Pp 210.D1 \&.BR bar \&( 1 \&), 211.Pp 212Cross-references should conventionally be ordered 213first by section, then alphabetically. 214.It Em STANDARDS 215References any standards implemented or used, such as 216.Pp 217.D1 IEEE Std 1003.2 (\e(lqPOSIX.2\e(rq) 218.Pp 219If not adhering to any standards, the 220.Em HISTORY 221section should be used. 222.It Em HISTORY 223A brief history of the subject, including where support first appeared. 224.It Em AUTHORS 225Credits to the person or persons who wrote the code and/or documentation. 226Authors should generally be noted by both name and email address. 227.It Em CAVEATS 228Common misuses and misunderstandings should be explained 229in this section. 230.It Em BUGS 231Known bugs, limitations, and work-arounds should be described 232in this section. 233.It Em SECURITY CONSIDERATIONS 234Documents any security precautions that operators should consider. 235.El 236.Sh MACRO OVERVIEW 237This overview is sorted such that macros of similar purpose are listed 238together, to help find the best macro for any given purpose. 239Deprecated macros are not included in the overview, but can be found 240in the alphabetical reference below. 241.Ss Page header and footer meta-data 242.Bl -column "PP, LP, P" description 243.It Sx TH Ta set the title: Ar title section date Op Ar source Op Ar volume 244.It Sx AT Ta display AT&T UNIX version in the page footer (<= 1 argument) 245.It Sx UC Ta display BSD version in the page footer (<= 1 argument) 246.El 247.Ss Sections and paragraphs 248.Bl -column "PP, LP, P" description 249.It Sx SH Ta section header (one line) 250.It Sx SS Ta subsection header (one line) 251.It Sx PP , LP , P Ta start an undecorated paragraph (no arguments) 252.It Sx RS , RE Ta reset the left margin: Op Ar width 253.It Sx IP Ta indented paragraph: Op Ar head Op Ar width 254.It Sx TP Ta tagged paragraph: Op Ar width 255.It Sx HP Ta hanged paragraph: Op Ar width 256.It Sx \&br Ta force output line break in text mode (no arguments) 257.It Sx \&sp Ta force vertical space: Op Ar height 258.It Sx fi , nf Ta fill mode and no-fill mode (no arguments) 259.It Sx in Ta additional indent: Op Ar width 260.El 261.Ss Physical markup 262.Bl -column "PP, LP, P" description 263.It Sx B Ta boldface font 264.It Sx I Ta italic font 265.It Sx R Ta roman (default) font 266.It Sx SB Ta small boldface font 267.It Sx SM Ta small roman font 268.It Sx BI Ta alternate between boldface and italic fonts 269.It Sx BR Ta alternate between boldface and roman fonts 270.It Sx IB Ta alternate between italic and boldface fonts 271.It Sx IR Ta alternate between italic and roman fonts 272.It Sx RB Ta alternate between roman and boldface fonts 273.It Sx RI Ta alternate between roman and italic fonts 274.El 275.Sh MACRO REFERENCE 276This section is a canonical reference to all macros, arranged 277alphabetically. 278For the scoping of individual macros, see 279.Sx MACRO SYNTAX . 280.Ss \&AT 281Sets the volume for the footer for compatibility with man pages from 282.Tn AT&T UNIX 283releases. 284The optional arguments specify which release it is from. 285.Ss \&B 286Text is rendered in bold face. 287.Pp 288See also 289.Sx \&I 290and 291.Sx \&R . 292.Ss \&BI 293Text is rendered alternately in bold face and italic. 294Thus, 295.Sq .BI this word and that 296causes 297.Sq this 298and 299.Sq and 300to render in bold face, while 301.Sq word 302and 303.Sq that 304render in italics. 305Whitespace between arguments is omitted in output. 306.Pp 307Examples: 308.Pp 309.Dl \&.BI bold italic bold italic 310.Pp 311The output of this example will be emboldened 312.Dq bold 313and italicised 314.Dq italic , 315with spaces stripped between arguments. 316.Pp 317See also 318.Sx \&IB , 319.Sx \&BR , 320.Sx \&RB , 321.Sx \&RI , 322and 323.Sx \&IR . 324.Ss \&BR 325Text is rendered alternately in bold face and roman (the default font). 326Whitespace between arguments is omitted in output. 327.Pp 328See 329.Sx \&BI 330for an equivalent example. 331.Pp 332See also 333.Sx \&BI , 334.Sx \&IB , 335.Sx \&RB , 336.Sx \&RI , 337and 338.Sx \&IR . 339.Ss \&DT 340Has no effect. 341Included for compatibility. 342.Ss \&EE 343This is a non-standard GNU extension, included only for compatibility. 344In 345.Xr mandoc 1 , 346it does the same as 347.Sx \&fi . 348.Ss \&EX 349This is a non-standard GNU extension, included only for compatibility. 350In 351.Xr mandoc 1 , 352it does the same as 353.Sx \&nf . 354.Ss \&HP 355Begin a paragraph whose initial output line is left-justified, but 356subsequent output lines are indented, with the following syntax: 357.Bd -filled -offset indent 358.Pf \. Sx \&HP 359.Op Cm width 360.Ed 361.Pp 362The 363.Cm width 364argument is a 365.Xr roff 7 366scaling width. 367If specified, it's saved for later paragraph left-margins; if unspecified, the 368saved or default width is used. 369.Pp 370See also 371.Sx \&IP , 372.Sx \&LP , 373.Sx \&P , 374.Sx \&PP , 375and 376.Sx \&TP . 377.Ss \&I 378Text is rendered in italics. 379.Pp 380See also 381.Sx \&B 382and 383.Sx \&R . 384.Ss \&IB 385Text is rendered alternately in italics and bold face. 386Whitespace between arguments is omitted in output. 387.Pp 388See 389.Sx \&BI 390for an equivalent example. 391.Pp 392See also 393.Sx \&BI , 394.Sx \&BR , 395.Sx \&RB , 396.Sx \&RI , 397and 398.Sx \&IR . 399.Ss \&IP 400Begin an indented paragraph with the following syntax: 401.Bd -filled -offset indent 402.Pf \. Sx \&IP 403.Op Cm head Op Cm width 404.Ed 405.Pp 406The 407.Cm width 408argument is a 409.Xr roff 7 410scaling width defining the left margin. 411It's saved for later paragraph left-margins; if unspecified, the saved or 412default width is used. 413.Pp 414The 415.Cm head 416argument is used as a leading term, flushed to the left margin. 417This is useful for bulleted paragraphs and so on. 418.Pp 419See also 420.Sx \&HP , 421.Sx \&LP , 422.Sx \&P , 423.Sx \&PP , 424and 425.Sx \&TP . 426.Ss \&IR 427Text is rendered alternately in italics and roman (the default font). 428Whitespace between arguments is omitted in output. 429.Pp 430See 431.Sx \&BI 432for an equivalent example. 433.Pp 434See also 435.Sx \&BI , 436.Sx \&IB , 437.Sx \&BR , 438.Sx \&RB , 439and 440.Sx \&RI . 441.Ss \&LP 442Begin an undecorated paragraph. 443The scope of a paragraph is closed by a subsequent paragraph, 444sub-section, section, or end of file. 445The saved paragraph left-margin width is reset to the default. 446.Pp 447See also 448.Sx \&HP , 449.Sx \&IP , 450.Sx \&P , 451.Sx \&PP , 452and 453.Sx \&TP . 454.Ss \&OP 455Optional command-line argument. 456This is a non-standard GNU extension, included only for compatibility. 457It has the following syntax: 458.Bd -filled -offset indent 459.Pf \. Sx \&OP 460.Cm key Op Cm value 461.Ed 462.Pp 463The 464.Cm key 465is usually a command-line flag and 466.Cm value 467its argument. 468.Ss \&P 469Synonym for 470.Sx \&LP . 471.Pp 472See also 473.Sx \&HP , 474.Sx \&IP , 475.Sx \&LP , 476.Sx \&PP , 477and 478.Sx \&TP . 479.Ss \&PP 480Synonym for 481.Sx \&LP . 482.Pp 483See also 484.Sx \&HP , 485.Sx \&IP , 486.Sx \&LP , 487.Sx \&P , 488and 489.Sx \&TP . 490.Ss \&R 491Text is rendered in roman (the default font). 492.Pp 493See also 494.Sx \&I 495and 496.Sx \&B . 497.Ss \&RB 498Text is rendered alternately in roman (the default font) and bold face. 499Whitespace between arguments is omitted in output. 500.Pp 501See 502.Sx \&BI 503for an equivalent example. 504.Pp 505See also 506.Sx \&BI , 507.Sx \&IB , 508.Sx \&BR , 509.Sx \&RI , 510and 511.Sx \&IR . 512.Ss \&RE 513Explicitly close out the scope of a prior 514.Sx \&RS . 515The default left margin is restored to the state of the original 516.Sx \&RS 517invocation. 518.Ss \&RI 519Text is rendered alternately in roman (the default font) and italics. 520Whitespace between arguments is omitted in output. 521.Pp 522See 523.Sx \&BI 524for an equivalent example. 525.Pp 526See also 527.Sx \&BI , 528.Sx \&IB , 529.Sx \&BR , 530.Sx \&RB , 531and 532.Sx \&IR . 533.Ss \&RS 534Temporarily reset the default left margin. 535This has the following syntax: 536.Bd -filled -offset indent 537.Pf \. Sx \&RS 538.Op Cm width 539.Ed 540.Pp 541The 542.Cm width 543argument is a 544.Xr roff 7 545scaling width. 546If not specified, the saved or default width is used. 547.Pp 548See also 549.Sx \&RE . 550.Ss \&SB 551Text is rendered in small size (one point smaller than the default font) 552bold face. 553.Ss \&SH 554Begin a section. 555The scope of a section is only closed by another section or the end of 556file. 557The paragraph left-margin width is reset to the default. 558.Ss \&SM 559Text is rendered in small size (one point smaller than the default 560font). 561.Ss \&SS 562Begin a sub-section. 563The scope of a sub-section is closed by a subsequent sub-section, 564section, or end of file. 565The paragraph left-margin width is reset to the default. 566.Ss \&TH 567Sets the title of the manual page with the following syntax: 568.Bd -filled -offset indent 569.Pf \. Sx \&TH 570.Ar title section date 571.Op Ar source Op Ar volume 572.Ed 573.Pp 574Conventionally, the document 575.Ar title 576is given in all caps. 577The recommended 578.Ar date 579format is 580.Sy YYYY-MM-DD 581as specified in the ISO-8601 standard; 582if the argument does not conform, it is printed verbatim. 583If the 584.Ar date 585is empty or not specified, the current date is used. 586The optional 587.Ar source 588string specifies the organisation providing the utility. 589The 590.Ar volume 591string replaces the default rendered volume, which is dictated by the 592manual section. 593.Pp 594Examples: 595.Pp 596.Dl \&.TH CVS 5 "1992-02-12" GNU 597.Ss \&TP 598Begin a paragraph where the head, if exceeding the indentation width, is 599followed by a newline; if not, the body follows on the same line after a 600buffer to the indentation width. 601Subsequent output lines are indented. 602The syntax is as follows: 603.Bd -filled -offset indent 604.Pf \. Sx \&TP 605.Op Cm width 606.Ed 607.Pp 608The 609.Cm width 610argument is a 611.Xr roff 7 612scaling width. 613If specified, it's saved for later paragraph left-margins; if 614unspecified, the saved or default width is used. 615.Pp 616See also 617.Sx \&HP , 618.Sx \&IP , 619.Sx \&LP , 620.Sx \&P , 621and 622.Sx \&PP . 623.Ss \&UC 624Sets the volume for the footer for compatibility with man pages from 625BSD releases. 626The optional first argument specifies which release it is from. 627.Ss \&br 628Breaks the current line. 629Consecutive invocations have no further effect. 630.Pp 631See also 632.Sx \&sp . 633.Ss \&fi 634End literal mode begun by 635.Sx \&nf . 636.Ss \&in 637Indent relative to the current indentation: 638.Pp 639.D1 Pf \. Sx \&in Op Cm width 640.Pp 641If 642.Cm width 643is signed, the new offset is relative. 644Otherwise, it is absolute. 645This value is reset upon the next paragraph, section, or sub-section. 646.Ss \&na 647Don't align to the right margin. 648.Ss \&nf 649Begin literal mode: all subsequent free-form lines have their end of 650line boundaries preserved. 651May be ended by 652.Sx \&fi . 653Literal mode is implicitly ended by 654.Sx \&SH 655or 656.Sx \&SS . 657.Ss \&sp 658Insert vertical spaces into output with the following syntax: 659.Bd -filled -offset indent 660.Pf \. Sx \&sp 661.Op Cm height 662.Ed 663.Pp 664The 665.Cm height 666argument is a scaling width as described in 667.Xr roff 7 . 668If 0, this is equivalent to the 669.Sx \&br 670macro. 671Defaults to 1, if unspecified. 672.Pp 673See also 674.Sx \&br . 675.Sh MACRO SYNTAX 676The 677.Nm 678macros are classified by scope: line scope or block scope. 679Line macros are only scoped to the current line (and, in some 680situations, the subsequent line). 681Block macros are scoped to the current line and subsequent lines until 682closed by another block macro. 683.Ss Line Macros 684Line macros are generally scoped to the current line, with the body 685consisting of zero or more arguments. 686If a macro is scoped to the next line and the line arguments are empty, 687the next line, which must be text, is used instead. 688Thus: 689.Bd -literal -offset indent 690\&.I 691foo 692.Ed 693.Pp 694is equivalent to 695.Sq \&.I foo . 696If next-line macros are invoked consecutively, only the last is used. 697If a next-line macro is followed by a non-next-line macro, an error is 698raised, except for 699.Sx \&br , 700.Sx \&sp , 701and 702.Sx \&na . 703.Pp 704The syntax is as follows: 705.Bd -literal -offset indent 706\&.YO \(lBbody...\(rB 707\(lBbody...\(rB 708.Ed 709.Bl -column "MacroX" "ArgumentsX" "ScopeXXXXX" "CompatX" -offset indent 710.It Em Macro Ta Em Arguments Ta Em Scope Ta Em Notes 711.It Sx \&AT Ta <=1 Ta current Ta \& 712.It Sx \&B Ta n Ta next-line Ta \& 713.It Sx \&BI Ta n Ta current Ta \& 714.It Sx \&BR Ta n Ta current Ta \& 715.It Sx \&DT Ta 0 Ta current Ta \& 716.It Sx \&I Ta n Ta next-line Ta \& 717.It Sx \&IB Ta n Ta current Ta \& 718.It Sx \&IR Ta n Ta current Ta \& 719.It Sx \&OP Ta 0, 1 Ta current Ta compat 720.It Sx \&R Ta n Ta next-line Ta \& 721.It Sx \&RB Ta n Ta current Ta \& 722.It Sx \&RI Ta n Ta current Ta \& 723.It Sx \&SB Ta n Ta next-line Ta \& 724.It Sx \&SM Ta n Ta next-line Ta \& 725.It Sx \&TH Ta >1, <6 Ta current Ta \& 726.It Sx \&UC Ta <=1 Ta current Ta \& 727.It Sx \&br Ta 0 Ta current Ta compat 728.It Sx \&fi Ta 0 Ta current Ta compat 729.It Sx \&in Ta 1 Ta current Ta compat 730.It Sx \&na Ta 0 Ta current Ta compat 731.It Sx \&nf Ta 0 Ta current Ta compat 732.It Sx \&sp Ta 1 Ta current Ta compat 733.El 734.Pp 735Macros marked as 736.Qq compat 737are included for compatibility with the significant corpus of existing 738manuals that mix dialects of roff. 739These macros should not be used for portable 740.Nm 741manuals. 742.Ss Block Macros 743Block macros comprise a head and body. 744As with in-line macros, the head is scoped to the current line and, in 745one circumstance, the next line (the next-line stipulations as in 746.Sx Line Macros 747apply here as well). 748.Pp 749The syntax is as follows: 750.Bd -literal -offset indent 751\&.YO \(lBhead...\(rB 752\(lBhead...\(rB 753\(lBbody...\(rB 754.Ed 755.Pp 756The closure of body scope may be to the section, where a macro is closed 757by 758.Sx \&SH ; 759sub-section, closed by a section or 760.Sx \&SS ; 761part, closed by a section, sub-section, or 762.Sx \&RE ; 763or paragraph, closed by a section, sub-section, part, 764.Sx \&HP , 765.Sx \&IP , 766.Sx \&LP , 767.Sx \&P , 768.Sx \&PP , 769or 770.Sx \&TP . 771No closure refers to an explicit block closing macro. 772.Pp 773As a rule, block macros may not be nested; thus, calling a block macro 774while another block macro scope is open, and the open scope is not 775implicitly closed, is syntactically incorrect. 776.Bl -column "MacroX" "ArgumentsX" "Head ScopeX" "sub-sectionX" "compatX" -offset indent 777.It Em Macro Ta Em Arguments Ta Em Head Scope Ta Em Body Scope Ta Em Notes 778.It Sx \&HP Ta <2 Ta current Ta paragraph Ta \& 779.It Sx \&IP Ta <3 Ta current Ta paragraph Ta \& 780.It Sx \&LP Ta 0 Ta current Ta paragraph Ta \& 781.It Sx \&P Ta 0 Ta current Ta paragraph Ta \& 782.It Sx \&PP Ta 0 Ta current Ta paragraph Ta \& 783.It Sx \&RE Ta 0 Ta current Ta none Ta compat 784.It Sx \&RS Ta 1 Ta current Ta part Ta compat 785.It Sx \&SH Ta >0 Ta next-line Ta section Ta \& 786.It Sx \&SS Ta >0 Ta next-line Ta sub-section Ta \& 787.It Sx \&TP Ta n Ta next-line Ta paragraph Ta \& 788.El 789.Pp 790Macros marked 791.Qq compat 792are as mentioned in 793.Sx Line Macros . 794.Pp 795If a block macro is next-line scoped, it may only be followed by in-line 796macros for decorating text. 797.Ss Font handling 798In 799.Nm 800documents, both 801.Sx Physical markup 802macros and 803.Xr roff 7 804.Ql \ef 805font escape sequences can be used to choose fonts. 806In text lines, the effect of manual font selection by escape sequences 807only lasts until the next macro invocation; in macro lines, it only lasts 808until the end of the macro scope. 809Note that macros like 810.Sx \&BR 811open and close a font scope for each argument. 812.Sh COMPATIBILITY 813This section documents areas of questionable portability between 814implementations of the 815.Nm 816language. 817.Pp 818.Bl -dash -compact 819.It 820Do not depend on 821.Sx \&SH 822or 823.Sx \&SS 824to close out a literal context opened with 825.Sx \&nf . 826This behaviour may not be portable. 827.It 828In quoted literals, GNU troff allowed pair-wise double-quotes to produce 829a standalone double-quote in formatted output. 830It is not known whether this behaviour is exhibited by other formatters. 831.It 832troff suppresses a newline before 833.Sq \(aq 834macro output; in mandoc, it is an alias for the standard 835.Sq \&. 836control character. 837.It 838The 839.Sq \eh 840.Pq horizontal position , 841.Sq \ev 842.Pq vertical position , 843.Sq \em 844.Pq text colour , 845.Sq \eM 846.Pq text filling colour , 847.Sq \ez 848.Pq zero-length character , 849.Sq \ew 850.Pq string length , 851.Sq \ek 852.Pq horizontal position marker , 853.Sq \eo 854.Pq text overstrike , 855and 856.Sq \es 857.Pq text size 858escape sequences are all discarded in mandoc. 859.It 860The 861.Sq \ef 862scaling unit is accepted by mandoc, but rendered as the default unit. 863.It 864The 865.Sx \&sp 866macro does not accept negative values in mandoc. 867In GNU troff, this would result in strange behaviour. 868.It 869In page header lines, GNU troff versions up to and including 1.21 870only print 871.Ar volume 872names explicitly specified in the 873.Sx \&TH 874macro; mandoc and newer groff print the default volume name 875corresponding to the 876.Ar section 877number when no 878.Ar volume 879is given, like in 880.Xr mdoc 7 . 881.El 882.Pp 883The 884.Sx OP 885macro is part of the extended 886.Nm 887macro set, and may not be portable to non-GNU troff implementations. 888.Sh SEE ALSO 889.Xr man 1 , 890.Xr mandoc 1 , 891.Xr eqn 7 , 892.Xr mandoc_char 7 , 893.Xr mdoc 7 , 894.Xr roff 7 , 895.Xr tbl 7 896.Sh HISTORY 897The 898.Nm 899language first appeared as a macro package for the roff typesetting 900system in 901.At v7 . 902It was later rewritten by James Clark as a macro package for groff. 903Eric S. Raymond wrote the extended 904.Nm 905macros for groff in 2007. 906The stand-alone implementation that is part of the 907.Xr mandoc 1 908utility written by Kristaps Dzonsons appeared in 909.Ox 4.6 . 910.Sh AUTHORS 911This 912.Nm 913reference was written by 914.An Kristaps Dzonsons , 915.Mt kristaps@bsd.lv . 916.Sh CAVEATS 917Do not use this language. 918Use 919.Xr mdoc 7 , 920instead. 921