home *** CD-ROM | disk | FTP | other *** search
/ Mega Top 1 / os2_top1.zip / os2_top1 / APPS / TEKST / GROFFEXE / LIB / GROFF / TMAC / DOC < prev    next >
Text File  |  1994-01-02  |  55KB  |  3,056 lines

  1. .\" Copyright (c) 1991 The Regents of the University of California.
  2. .\" All rights reserved.
  3. .\"
  4. .\" Redistribution and use in source and binary forms, with or without
  5. .\" modification, are permitted provided that the following conditions
  6. .\" are met:
  7. .\" 1. Redistributions of source code must retain the above copyright
  8. .\"    notice, this list of conditions and the following disclaimer.
  9. .\" 2. Redistributions in binary form must reproduce the above copyright
  10. .\"    notice, this list of conditions and the following disclaimer in the
  11. .\"    documentation and/or other materials provided with the distribution.
  12. .\" 3. All advertising materials mentioning features or use of this software
  13. .\"    must display the following acknowledgement:
  14. .\"    This product includes software developed by the University of
  15. .\"    California, Berkeley and its contributors.
  16. .\" 4. Neither the name of the University nor the names of its contributors
  17. .\"    may be used to endorse or promote products derived from this software
  18. .\"    without specific prior written permission.
  19. .\"
  20. .\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
  21. .\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
  22. .\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
  23. .\" ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
  24. .\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
  25. .\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
  26. .\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
  27. .\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
  28. .\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
  29. .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
  30. .\" SUCH DAMAGE.
  31. .\"
  32. .\"     @(#)doc    5.8 (Berkeley) 8/5/91
  33. .\" Modified by jjc@jclark.com as follows: the doc-* files are assumed to be
  34. .\" installed as mdoc/doc-* rather than tmac.doc-* (the filename
  35. .\" `tmac.doc-common' would be too long); when using groff, the doc-* files
  36. .\" are loaded using the `mso' request.
  37. .\"   
  38. .\" .mdoc-parse - attempt to parse troff request arguments
  39. .if \n(.g \{\
  40. .cp 0
  41. .ftr C CR
  42. .\}
  43. .if \n(.g .ig
  44. .de sO
  45. .so /usr/share/tmac/\\$1
  46. ..
  47. .if !\n(.g .ig
  48. .de sO
  49. .mso mdoc/\\$1
  50. ..
  51. .if t \{\
  52. .       sO ditroff.doc
  53. .\}
  54. .if n \{\
  55. .       sO nroff.doc
  56. .\}
  57. .sO common.doc
  58. .sO syms.doc
  59. .nr Db 0
  60. .de Db
  61. .ie \\n(.$==0 \{\
  62. .    ie \\n(Db==0 \{\
  63. .tm DEBUGGING ON
  64. .        nr Db 1
  65. .    \}
  66. .    el \{\
  67. .tm DEBUGGING OFF
  68. .        nr Db 0
  69. .    \}
  70. .\}
  71. .el \{\
  72. .    if "\\$1"on" \{\
  73. .tm DEBUGGING ON
  74. .        nr Db 1
  75. .    \}
  76. .    if "\\$1"off" \{\
  77. .tm DEBUGGING OFF
  78. .        nr Db 0
  79. .    \}
  80. .\}
  81. ..
  82. .de aV
  83. .nr aC \\n(aC+1
  84. .ie "\\$1"|" \{\
  85. .    if "\\*(mN"Op" .ds A\\n(aC \fR\\$1\fP
  86. .    if "\\*(mN"Ar" .ds A\\n(aC \fR\\$1\fP
  87. .    if "\\*(mN"Fl" .ds A\\n(aC \fR\\$1\fP
  88. .    if "\\*(mN"Cm" .ds A\\n(aC \fR\\$1\fP
  89. .    if "\\*(mN"It" .ds A\\n(aC \fR\\$1\fP
  90. .\}
  91. .el .ds A\\n(aC \\$1
  92. .aU \\n(aC
  93. .nr C\\n(aC \\n(aT
  94. .s\\n(aT
  95. .if \\n(Db \{\
  96. .    if \\n(aT==1 .ds yU Executable
  97. .    if \\n(aT==2 .ds yU String
  98. .    if \\n(aT==3 .ds yU Closing Punctuation or suffix
  99. .    if \\n(aT==4 .ds yU Opening Punctuation or prefix
  100. .    if \\n(iN==1 \{\
  101. .        br
  102. .        nr iI \\n(.iu
  103. .        in -\\n(iIu
  104. .        if \\n(aC==1 \{\
  105. \&\fBDEBUG(argv) MACRO:\fP `.\\*(mN' \fBLine #:\fP \\n(.c
  106. .        \}
  107. \&\t\fBArgc:\fP \\n(aC  \fBArgv:\fP `\\*(A\\n(aC'  \fBLength:\fP \\n(sW
  108. \&\t\fBSpace:\fP `\\*(S\\n(aC'  \fBClass:\fP \\*(yU
  109. .    \}
  110. .    if \\n(iN==0 \{\
  111. .        if \\n(aC==1 \{\
  112. .            tm DEBUG(argv) MACRO: `.\\*(mN'  Line #: \\n(.c
  113. .        \}
  114. .        tm \tArgc: \\n(aC  Argv: `\\*(A\\n(aC'  Length: \\n(sW
  115. .        tm \tSpace: `\\*(S\\n(aC'  Class: \\*(yU
  116. .    \}
  117. .\}
  118. .ie \\n(.$==1 \{\
  119. .    nr aP 0
  120. .    ie \\n(dZ==1 \{\
  121. .        if \\n(oM>1 .as b1 \\*(S0
  122. .    \}
  123. .    el \{\
  124. .        if \\n(oM>0 \{\
  125. .            if \\n(fC==0 .as b1 \\*(S0
  126. .        \}
  127. .    \}
  128. .    ds S0 \\*(S\\n(aC
  129. .    if \\n(Db \{\
  130. .        if \\n(iN==1 \{\
  131. \&MACRO REQUEST: \t.\\*(mN \\*(A1 \\*(A2 \\*(A3 \\*(A4 \\*(A5 \\*(A6 \\*(A7 \\*(A8 \\*(A9
  132. .            br
  133. .            in \\n(iIu
  134. .        \}
  135. .        if \\n(iN==0 \{\
  136. .tm \tMACRO REQUEST: .\\*(mN \\*(A1 \\*(A2 \\*(A3 \\*(A4 \\*(A5 \\*(A6 \\*(A7 \\*(A8 \\*(A9
  137. .        \}
  138. .    \}
  139. .\}
  140. .el .aV \\$2 \\$3 \\$4 \\$5 \\$6 \\$7 \\$8 \\$9
  141. ..
  142. .de fV
  143. .nr aC \\n(aC+1
  144. .if "\\*(A\\n(aC"|" \{\
  145. .    if "\\*(mN"Op" .ds A\\n(aC \fR\\*(A\\n(aC\fP
  146. .    if "\\*(mN"Ar" .ds A\\n(aC \fR\\*(A\\n(aC\fP
  147. .    if "\\*(mN"Fl" .ds A\\n(aC \fR\&\\*(A\\n(aC\fP
  148. .    if "\\*(mN"Cm" .ds A\\n(aC \fR\\*(A\\n(aC\fP
  149. .    if "\\*(mN"It" .ds A\\n(aC \fR\\*(A\\n(aC\fP
  150. .\}
  151. .aU \\n(aC
  152. .nr C\\n(aC \\n(aT
  153. .s\\n(aT
  154. .if \\n(Db \{\
  155. .    if \\n(aT==1 .ds yU Executable
  156. .    if \\n(aT==2 .ds yU String
  157. .    if \\n(aT==3 .ds yU Closing Punctuation or suffix
  158. .    if \\n(aT==4 .ds yU Opening Punctuation or prefix
  159. .    if \\n(iN==1 \{\
  160. .        br
  161. .        nr iI \\n(.iu
  162. .        in -\\n(iIu
  163. .        if \\n(aC==1 \{\
  164. \&\fBDEBUG(fargv) MACRO:\fP `.\\*(mN'  \fBLine #:\fP \\n(.c
  165. .        \}
  166. \&\t\fBArgc:\fP \\n(aC  \fBArgv:\fP `\\*(A\\n(aC'  \fBLength:\fP \\n(sW
  167. \&\t\fBSpace:\fP `\\*(S\\n(aC'  \fBClass:\fP \\*(yU
  168. .    \}
  169. .    if \\n(iN==0 \{\
  170. .        if \\n(aC==1 \{\
  171. .            tm DEBUG(fargv) MACRO: `.\\*(mN'  Line #: \\n(.c
  172. .        \}
  173. .        tm \tArgc: \\n(aC  Argv: `\\*(A\\n(aC'  Length: \\n(sW
  174. .        tm \tSpace: `\\*(S\\n(aC'  Class: \\*(yU
  175. .    \}
  176. .\}
  177. .ie \\n(fV==1 \{\
  178. .    nr aP 0
  179. .    ie \\n(dZ==1 \{\
  180. .        if \\n(oM>1 .as b1 \\*(S0
  181. .    \}
  182. .    el \{\
  183. .        if \\n(oM>0 \{\
  184. .            if \\n(fC==0 .as b1 \\*(S0
  185. .        \}
  186. .    \}
  187. .    ds S0 \\*(S\\n(aC
  188. .    nr fV 0
  189. .    if \\n(Db \{\
  190. .        ie \\n(iN \{\
  191. \&\tMACRO REQUEST: .\\*(mN \\*(A1 \\*(A2 \\*(A3 \\*(A4 \\*(A5 \\*(A6 \\*(A7 \\*(A8 \\*(A9
  192. .            br
  193. .            in \\n(iIu
  194. .        \}
  195. .        el \{\
  196. .tm \tMACRO REQUEST: .\\*(mN \\*(A1 \\*(A2 \\*(A3 \\*(A4 \\*(A5 \\*(A6 \\*(A7 \\*(A8 \\*(A9
  197. .        \}
  198. .    \}
  199. .\}
  200. .el \{\
  201. .    nr fV \\n(fV-1
  202. .    fV
  203. .\}
  204. ..
  205. .de aX
  206. .nr aP \\n(aP+1
  207. .as b1 \&\\*(A\\n(aP
  208. .ie \\n(fV==1 \{\
  209. .    nr aP 0
  210. .    nr fV 0
  211. .\}
  212. .el \{\
  213. .    as b1 \&\\*(sV
  214. .    nr fV \\n(fV-1
  215. .    aX
  216. .\}
  217. ..
  218. .de aI
  219. .ie \\n(aC<9 \{\
  220. .    nr aC \\n(aC+1
  221. .    ds A\\n(aC \\$1
  222. .    nr C\\n(aC \\$2
  223. .    s\\$2
  224. .    ds xV S\\n(aC
  225. .\}
  226. .el \{\
  227. .    tm Usage: Too many arguments (maximum of 8 accepted) (#\\n(.c)
  228. .    tm \\*(A1 \\*(A2 \\*(A3 \\*(A4 \\*(A5 \\*(A6 \\*(A7 \\*(A8 \\*(A9
  229. .\}
  230. ..
  231. .de aZ
  232. .pB
  233. .aY
  234. ..
  235. .de aY
  236. .rm C0 C1 C2 C3 C4 C5 C6 C7 C8 C9
  237. .rm A0 A1 A2 A3 A4 A5 A6 A7 A8 A9
  238. .rm S1 S2 S3 S4 S5 S6 S7 S8 S9
  239. .nr aC 0
  240. .nr aP 0
  241. ..
  242. .de pB
  243. .ie \\n(dZ==1 \{\
  244. .    if \\n(oM==1 \{\&\\*(b1
  245. .        rm S0
  246. .        ds b1
  247. .    \}
  248. .    if \\n(oM==0 \{\
  249. .        x2
  250. .    \}
  251. .\}
  252. .el \{\
  253. .    ie \\n(oM==0 \{\&\\*(b1
  254. .        rm S0
  255. .        ds b1
  256. .    \}
  257. .    el \{\
  258. .        if ((\\n(sM==1)&(\\n(tP==0)) \{\
  259. .            x1
  260. .        \}
  261. .    \}
  262. .\}
  263. .hy
  264. ..
  265. .de x1
  266. .nr dZ \\n(dZ+1
  267. .ds b2 \\*(b1
  268. .ds b1
  269. .nr lK \\n(.c
  270. .ev 2
  271. .fi
  272. .di eB
  273. ..
  274. .de x2
  275. .br
  276. .di
  277. .ev
  278. .ie (\\n(.c-\\n(lK>1) \{\
  279. .    ds b0 \&\\*(eB\\
  280. .    ds b1 \\*(b2\\*(b0\\*(b1
  281. .\}
  282. .el .ds b1 \\*(b2\\*(b1
  283. \&\\*(b1
  284. .rm eB b2 b0 b1
  285. .nr dZ \\n(dZ-1
  286. ..
  287. .de Fl
  288. .as b1 \&\\*(fL
  289. .if \\n(aC==0 \{\
  290. .    ie \\n(.$==0 \{\
  291. .        as b1 \&\|\-\|\fP\s0
  292. .        pB
  293. .    \}
  294. .    el \{\
  295. .        ds mN Fl
  296. .        aV \\$1 \\$2 \\$3 \\$4 \\$5 \\$6 \\$7 \\$8 \\$9
  297. .    \}
  298. .\}
  299. .if \\n(aC>0 \{\
  300. .    ie (\\n(aC-\\n(aP)==0 \{\
  301. .        as b1 \&\|\-\fP\s0
  302. .        aZ
  303. .    \}
  304. .    el \{\
  305. .        nr aP \\n(aP+1
  306. .        ie \\n(C\\n(aP==1 \{\
  307. .            as b1 \&\|\-\fP\s0
  308. .            \\*(A\\n(aP
  309. .        \}
  310. .        el \{\
  311. .            nr cF \\n(.f
  312. .            nr cZ \\n(.s
  313. .            if \\n(C\\n(aP==3 \{\
  314. .                as b1 \&\|\-\|
  315. .            \}
  316. .            fR
  317. .        \}
  318. .    \}
  319. .\}
  320. ..
  321. .de fR
  322. .hy 0
  323. .nr jM \\n(C\\n(aP
  324. .ie \\n(jM==1 \{\
  325. .    as b1 \&\fP\s0
  326. .    \\*(A\\n(aP
  327. .\}
  328. .el \{\
  329. .    nr jN \\n(aP
  330. .    ie \\n(jM==2 \{\
  331. .        ie !"\\*(A\\n(aP"\\*(Ba" \{\
  332. .            ie !"\\*(A\\n(aP"\fR|\fP" \{\
  333. .                       ie "\\*(A\\n(aP"-" .as b1 \&\|\-\^\-\|
  334. .                       el .as b1 \&\|\-\\*(A\\n(aP
  335. .            \}
  336. .            el .as b1 \&\\*(A\\n(aP
  337. .        \}
  338. .        el .as b1 \&\\*(A\\n(aP
  339. .    \}
  340. .    el .as b1 \&\f\\n(cF\s\\n(cZ\\*(A\\n(aP\fP\s0
  341. .    ie \\n(aC==\\n(aP \{\
  342. .        if \\n(jM==4 .as b1 \&\|\-
  343. .        as b1 \&\fP\s0
  344. .        aZ
  345. .    \}
  346. .    el \{\
  347. .        nr aP \\n(aP+1
  348. .        ie ((\\n(C\\n(aP==3)&(\\n(C\\n(jN==4)) .as b1 \&\|\-
  349. .        el .as b1 \&\\*(S\\n(jN
  350. .        fR \\$2 \\$3 \\$4 \\$5 \\$6 \\$7 \\$8 \\$9
  351. .    \}
  352. .\}
  353. .rr jM jN
  354. ..
  355. .de nR
  356. .hy 0
  357. .nr jM \\n(C\\n(aP
  358. .ie \\n(jM==1 \{\
  359. .    as b1 \&\f\\n(cF\s\\n(cZ
  360. .    \\*(A\\n(aP
  361. .\}
  362. .el \{\
  363. .    nr jN \\n(aP
  364. .    ie \\n(jM==2 .as b1 \&\\*(A\\n(aP
  365. .    el .as b1 \&\f\\n(cF\s\\n(cZ\\*(A\\n(aP\fP\s0
  366. .    ie \\n(aC==\\n(aP \{\
  367. .        as b1 \&\f\\n(cF\s\\n(cZ
  368. .        aZ
  369. .    \}
  370. .    el \{\
  371. .        nr aP \\n(aP+1
  372. .        as b1 \&\\*(S\\n(jN
  373. .        nR
  374. .    \}
  375. .\}
  376. .rr jM jN
  377. ..
  378. .de Ar
  379. .as b1 \\*(aR
  380. .if \\n(aC==0 \{\
  381. .       ie \\n(.$==0 \{\
  382. .        as b1 file\ ...\fP\s0
  383. .        pB
  384. .    \}
  385. .    el \{\
  386. .        ds mN Ar
  387. .        aV \\$1 \\$2 \\$3 \\$4 \\$5 \\$6 \\$7 \\$8 \\$9
  388. .    \}
  389. .\}
  390. .if \\n(aC>0 \{\
  391. .    ie (\\n(aC-\\n(aP)==0 \{\
  392. .        as b1 \&file\ ...\fP\s0
  393. .        aZ
  394. .    \}
  395. .    el \{\
  396. .        nr aP \\n(aP+1
  397. .        ie \\n(C\\n(aP==1 \{\
  398. .            as b1 \&file\ ...\fP\s0
  399. .            \\*(A\\n(aP
  400. .               \}
  401. .               el \{\
  402. .                       nr cF \\n(.f
  403. .            nr cZ \\n(.s
  404. .            if \\n(C\\n(aP==3 \{\
  405. .                as b1 \&file\ ...
  406. .            \}
  407. .                       nR
  408. .        \}
  409. .       \}
  410. .\}
  411. ..
  412. .de Ad
  413. .if \\n(aC==0 \{\
  414. .       ie \\n(.$==0 .tm Usage: .Ad address ... \\*(Pu (#\\n(.c)
  415. .    el \{\
  416. .        ds mN Ad
  417. .        aV \\$1 \\$2 \\$3 \\$4 \\$5 \\$6 \\$7 \\$8 \\$9
  418. .    \}
  419. .\}
  420. .if \\n(aC>\\n(aP \{\
  421. .    as b1 \\*(aD
  422. .    nr aP \\n(aP+1
  423. .       nr cF \\n(.f
  424. .    nr cZ \\n(.s
  425. .       nR
  426. .\}
  427. ..
  428. .de Cd
  429. .if \\n(aC==0 \{\
  430. .       ie \\n(.$==0 .tm Usage: .Cd Configuration file declaration (#\\n(.c)
  431. .     el \{\
  432. .        ds mN Cd
  433. .               ds A1 \\$1
  434. .               ds A2 \\$2
  435. .               ds A3 \\$3
  436. .               ds A4 \\$4
  437. .               ds A5 \\$5
  438. .               ds A6 \\$6
  439. .               ds A7 \\$7
  440. .               ds A8 \\$8
  441. .               ds A9 \\$9
  442. .         nr fV \\n(.$
  443. .         fV
  444. .    \}
  445. .\}
  446. .br
  447. .if \\n(aC>\\n(aP \{\
  448. .    as b1 \\*(nM
  449. .    nr aP \\n(aP+1
  450. .       nr cF \\n(.f
  451. .    nr cZ \\n(.s
  452. .    ie \\n(nS \{\
  453. .        if "\\*(mN"Cd" \{\
  454. .            rs
  455. .            ie \\n(nS>1 .br
  456. .            el \{\
  457. .                if \\n(iS==0 .nr iS \\n(Dsu
  458. .            \}
  459. .            in +\\n(iSu
  460. .            ti -\\n(iSu
  461. .            nr nS \\n(nS+1
  462. .        \}
  463. .    nR
  464. .    in -\\n(iSu
  465. .    \}
  466. .    el .nR
  467. .\}
  468. ..
  469. .de Cm
  470. .if \\n(aC==0 \{\
  471. .       ie \\n(.$==0 .tm Usage: .Cm Interactive command modifier ... \\*(Pu (#\\n(.c)
  472. .    el \{\
  473. .        ds mN Cm
  474. .               ds A1 \\$1
  475. .               ds A2 \\$2
  476. .               ds A3 \\$3
  477. .               ds A4 \\$4
  478. .               ds A5 \\$5
  479. .               ds A6 \\$6
  480. .               ds A7 \\$7
  481. .               ds A8 \\$8
  482. .               ds A9 \\$9
  483. .        nr fV \\n(.$
  484. .        fV
  485. .    \}
  486. .\}
  487. .if \\n(aC>\\n(aP \{\
  488. .    as b1 \\*(cM
  489. .    nr aP \\n(aP+1
  490. .       nr cF \\n(.f
  491. .    nr cZ \\n(.s
  492. .       nR
  493. .\}
  494. ..
  495. .de Dv
  496. .if \\n(aC==0 \{\
  497. .       ie \\n(.$==0 .tm Usage: .Dv define_variable ... \\*(Pu (#\\n(.c)
  498. .    el \{\
  499. .        ds mN Dv
  500. .        aV \\$1 \\$2 \\$3 \\$4 \\$5 \\$6 \\$7 \\$8 \\$9
  501. .    \}
  502. .\}
  503. .if \\n(aC>\\n(aP \{\
  504. .    as b1 \\*(eR
  505. .    nr aP \\n(aP+1
  506. .       nr cF \\n(.f
  507. .    nr cZ \\n(.s
  508. .       nR
  509. .\}
  510. ..
  511. .de Em
  512. .if \\n(aC==0 \{\
  513. .       ie \\n(.$==0 \{\
  514. .        tm Usage: .Em text ... \\*(Pu (#\\n(.c)
  515. .    \}
  516. .    el \{\
  517. .        ds mN Em
  518. .               ds A1 \\$1
  519. .               ds A2 \\$2
  520. .               ds A3 \\$3
  521. .               ds A4 \\$4
  522. .               ds A5 \\$5
  523. .               ds A6 \\$6
  524. .               ds A7 \\$7
  525. .               ds A8 \\$8
  526. .               ds A9 \\$9
  527. .        nr fV \\n(.$
  528. .        fV
  529. .    \}
  530. .\}
  531. .if \\n(aC>\\n(aP \{\
  532. .    as b1 \\*(eM
  533. .    nr aP \\n(aP+1
  534. .       nr cF \\n(.f
  535. .    nr cZ \\n(.s
  536. .       nR
  537. .\}
  538. ..
  539. .de Er
  540. .if \\n(aC==0 \{\
  541. .       ie \\n(.$==0 .tm Usage: .Er ERRNOTYPE ... \\*(Pu (#\\n(.c)
  542. .    el \{\
  543. .        ds mN Er
  544. .        aV \\$1 \\$2 \\$3 \\$4 \\$5 \\$6 \\$7 \\$8 \\$9
  545. .    \}
  546. .\}
  547. .if \\n(aC>\\n(aP \{\
  548. .    as b1 \\*(eR
  549. .    nr aP \\n(aP+1
  550. .       nr cF \\n(.f
  551. .    nr cZ \\n(.s
  552. .       nR
  553. .\}
  554. ..
  555. .de Ev
  556. .if \\n(aC==0 \{\
  557. .       ie \\n(.$==0 .tm Usage: .Ev ENVIRONMENT_VARIABLE ... \\*(Pu (#\\n(.c)
  558. .    el \{\
  559. .        ds mN Ev
  560. .        aV \\$1 \\$2 \\$3 \\$4 \\$5 \\$6 \\$7 \\$8 \\$9
  561. .    \}
  562. .\}
  563. .if \\n(aC>\\n(aP \{\
  564. .    as b1 \\*(eV
  565. .    nr aP \\n(aP+1
  566. .       nr cF \\n(.f
  567. .    nr cZ \\n(.s
  568. .       nR
  569. .\}
  570. ..
  571. .de Fd
  572. .ds mN Fd
  573. .if \\n(nS>0 \{\
  574. .    if \\n(fX>0 \{\
  575. .        Pp
  576. .        nr fX 0
  577. .    \}
  578. .    if \\n(fZ>0 \{\
  579. .        ie \\n(fD==0 \{\
  580. .            Pp
  581. .            rs
  582. .        \}
  583. .        el .br
  584. .    \}
  585. .    nr fD \\n(fD+1
  586. .\}
  587. .nr cF \\n(.f
  588. .nr cZ \\n(.s
  589. \&\\*(fD\\$1 \\$2 \\$3 \\$4 \\$5 \\$6 \\$7 \\$8 \\$9
  590. .br
  591. .ft \\n(cF
  592. .fs \\n(cZ
  593. ..
  594. .de Fr
  595. .if \\n(aC==0 \{\
  596. .       ie \\n(.$==0 .tm Usage: .Fr Function_return_value... \\*(Pu (#\\n(.c)
  597. .    el \{\
  598. .        ds mN Fr
  599. .        aV \\$1 \\$2 \\$3 \\$4 \\$5 \\$6 \\$7 \\$8 \\$9
  600. .    \}
  601. .\}
  602. .if \\n(aC>\\n(aP \{\
  603. .    as b1 \\*(aR
  604. .    nr aP \\n(aP+1
  605. .       nr cF \\n(.f
  606. .    nr cZ \\n(.s
  607. .       nR
  608. .\}
  609. ..
  610. .de Ic
  611. .if \\n(aC==0 \{\
  612. .       ie \\n(.$==0 .tm Usage: .Ic Interactive command ... \\*(Pu (#\\n(.c)
  613. .    el \{\
  614. .        ds mN Ic
  615. .        aV \\$1 \\$2 \\$3 \\$4 \\$5 \\$6 \\$7 \\$8 \\$9
  616. .    \}
  617. .\}
  618. .if \\n(aC>\\n(aP \{\
  619. .    as b1 \\*(iC
  620. .    nr aP \\n(aP+1
  621. .       nr cF \\n(.f
  622. .    nr cZ \\n(.s
  623. .       nR
  624. .\}
  625. ..
  626. .de Li
  627. .if \\n(aC==0 \{\
  628. .       ie \\n(.$==0 .tm Usage .Li argument ... \\*(Pu (#\\n(.c)
  629. .       el \{\
  630. .        ds mN Li
  631. .               ds A1 \\$1
  632. .               ds A2 \\$2
  633. .               ds A3 \\$3
  634. .               ds A4 \\$4
  635. .               ds A5 \\$5
  636. .               ds A6 \\$6
  637. .               ds A7 \\$7
  638. .               ds A8 \\$8
  639. .               ds A9 \\$9
  640. .               nr fV \\n(.$
  641. .               fV
  642. .       \}
  643. .\}
  644. .if \\n(aC>\\n(aP \{\
  645. .    as b1 \\*(lI
  646. .    nr aP \\n(aP+1
  647. .       nr cF \\n(.f
  648. .    nr cZ \\n(.s
  649. .       nR
  650. .\}
  651. ..
  652. .de Or
  653. .if \\n(aC==0 \{\
  654. .       ie \\n(.$==0 .tm Usage: .Or ... \\*(Pu (#\\n(.c)
  655. .    el \{\
  656. .        ds mN Or
  657. .        aV \\$1 \\$2 \\$3 \\$4 \\$5 \\$6 \\$7 \\$8 \\$9
  658. .    \}
  659. .\}
  660. .if \\n(aC>\\n(aP \{\
  661. .    as b1 \\*(iC
  662. .    nr aP \\n(aP+1
  663. .       nr cF \\n(.f
  664. .    nr cZ \\n(.s
  665. .       nR
  666. .\}
  667. ..
  668. .de Ms
  669. .if \\n(aC==0 \{\
  670. .       ie \\n(.$==0 .tm Usage: .Ms Math symbol ... \\*(Pu (#\\n(.c)
  671. .    el \{\
  672. .        ds mN Ms
  673. .        aV \\$1 \\$2 \\$3 \\$4 \\$5 \\$6 \\$7 \\$8 \\$9
  674. .    \}
  675. .\}
  676. .if \\n(aC>\\n(aP \{\
  677. .    as b1 \\*(sY
  678. .    nr aP \\n(aP+1
  679. .       nr cF \\n(.f
  680. .    nr cZ \\n(.s
  681. .       nR
  682. .\}
  683. ..
  684. .de Nm
  685. .if \\n(aC==0 \{\
  686. .    ie \\n(.$==0 \{\
  687. .        ie "\\*(n1"" .tm Usage: .Nm Name(s) ... \\*(Pu (#\\n(.c)
  688. .        el \&\\*(nM\\*(n1\fP\s0
  689. .    \}
  690. .    el \{\
  691. .        ds mN Nm
  692. .               ds A1 \\$1
  693. .               ds A2 \\$2
  694. .               ds A3 \\$3
  695. .               ds A4 \\$4
  696. .               ds A5 \\$5
  697. .               ds A6 \\$6
  698. .               ds A7 \\$7
  699. .               ds A8 \\$8
  700. .               ds A9 \\$9
  701. .               nr fV \\n(.$
  702. .               fV
  703. .       \}
  704. .\}
  705. .if \\n(aC>0 \{\
  706. .    ie \\n(aC==\\n(aP \{\
  707. .        as b1 \&\\*(nM\\*(n1\fP\s0
  708. .        aZ
  709. .    \}
  710. .    el \{\
  711. .        as b1 \\*(nM
  712. .        nr aP \\n(aP+1
  713. .        ie \\n(C\\n(aP==1 \{\
  714. .            as b1 \&\\*(n1\fP\s0
  715. .            \\*(A\\n(aP
  716. .        \}
  717. .        el \{\
  718. .            nr cF \\n(.f
  719. .            nr cZ \\n(.s
  720. .            if \\n(nS \{\
  721. .                if "\\*(mN"Nm" \{\
  722. .                    rs
  723. .                    in -\\n(iSu
  724. .                    ie \\n(nS>1 .br
  725. .                    el \{\
  726. .                        if \\n(iS==0 \{\
  727. .                            sw \\$1
  728. .                    nr iS ((\\n(sWu+1)*\\n(fW)u
  729. .                        \}
  730. .                    \}
  731. .                    in +\\n(iSu
  732. .                    ti -\\n(iSu
  733. .                    nr nS \\n(nS+1
  734. .                \}
  735. .            \}
  736. .            if "\\*(n1"" .ds n1 \\*(A\\n(aP
  737. .            nR
  738. .        \}
  739. .    \}
  740. .\}
  741. ..
  742. .de Pa
  743. .if \\n(aC==0 \{\
  744. .       ie \\n(.$==0 \&\\*(pA~\fP\s0
  745. .    el \{\
  746. .        ds mN Pa
  747. .        aV \\$1 \\$2 \\$3 \\$4 \\$5 \\$6 \\$7 \\$8 \\$9
  748. .    \}
  749. .\}
  750. .if \\n(aC>\\n(aP \{\
  751. .    as b1 \\*(pA
  752. .    nr aP \\n(aP+1
  753. .       nr cF \\n(.f
  754. .    nr cZ \\n(.s
  755. .       nR
  756. .\}
  757. ..
  758. .de Sy
  759. .if \\n(aC==0 \{\
  760. .       ie \\n(.$==0 .tm Usage: .Sy symbolic_text ... \\*(Pu (#\\n(.c)
  761. .     el \{\
  762. .        ds mN Sy
  763. .               ds A1 \\$1
  764. .               ds A2 \\$2
  765. .               ds A3 \\$3
  766. .               ds A4 \\$4
  767. .               ds A5 \\$5
  768. .               ds A6 \\$6
  769. .               ds A7 \\$7
  770. .               ds A8 \\$8
  771. .               ds A9 \\$9
  772. .         nr fV \\n(.$
  773. .         fV
  774. .    \}
  775. .\}
  776. .if \\n(aC>\\n(aP \{\
  777. .    as b1 \\*(sY
  778. .    nr aP \\n(aP+1
  779. .       nr cF \\n(.f
  780. .    nr cZ \\n(.s
  781. .       nR
  782. .\}
  783. ..
  784. .de Tn
  785. .if \\n(aC==0 \{\
  786. .       ie \\n(.$==0 .tm Usage: .Tn Trade_name(s) ... \\*(Pu (#\\n(.c)
  787. .    el \{\
  788. .        ds mN Tn
  789. .        aV \\$1 \\$2 \\$3 \\$4 \\$5 \\$6 \\$7 \\$8 \\$9
  790. .    \}
  791. .\}
  792. .if \\n(aC>\\n(aP \{\
  793. .    as b1 \\*(tN\\*(tF
  794. .    nr aP \\n(aP+1
  795. .       nr cF \\n(.f
  796. .    nr cZ \\n(.s
  797. .       nR
  798. .\}
  799. ..
  800. .de nN
  801. .if \\n(aC==0 \{\
  802. .       ie \\n(.$==0 .tm Usage: .Tn Trade_name(s) ... \\*(Pu (#\\n(.c)
  803. .    el \{\
  804. .        ds mN Tn
  805. .        aV \\$1 \\$2 \\$3 \\$4 \\$5 \\$6 \\$7 \\$8 \\$9
  806. .    \}
  807. .\}
  808. .if \\n(aC>\\n(aP \{\
  809. .    as b1 \\*(tN
  810. .    nr aP \\n(aP+1
  811. .       nr cF \\n(.f
  812. .    nr cZ \\n(.s
  813. .       rR
  814. .\}
  815. ..
  816. .de Va
  817. .if \\n(aC==0 \{\
  818. .       ie \\n(.$==0 .tm Usage: .Va variable_name(s) ... \\*(Pu (#\\n(.c)
  819. .    el \{\
  820. .        ds mN Va
  821. .        aV \\$1 \\$2 \\$3 \\$4 \\$5 \\$6 \\$7 \\$8 \\$9
  822. .    \}
  823. .\}
  824. .if \\n(aC>\\n(aP \{\
  825. .    as b1 \\*(vA
  826. .    nr aP \\n(aP+1
  827. .       nr cF \\n(.f
  828. .    nr cZ \\n(.s
  829. .       nR
  830. .\}
  831. ..
  832. .de No
  833. .as b1 \\*(nO
  834. .if \\n(aC==0 \{\
  835. .    ie \\n(.$==0 .tm Usage: .No must be called with arguments (#\\n(.c)
  836. .    el \{\
  837. .        ds mN No
  838. .        aV \\$1 \\$2 \\$3 \\$4 \\$5 \\$6 \\$7 \\$8 \\$9
  839. .    \}
  840. .\}
  841. .if \\n(aC>\\n(aP \{\
  842. .    nr aP \\n(aP+1
  843. .       ie \\n(C\\n(aP==1 \{\
  844. .        \\*(A\\n(aP
  845. .       \}
  846. .       el \{\
  847. .        nr cF \\n(.f
  848. .        nr cZ \\n(.s
  849. .        nR
  850. .       \}
  851. .\}
  852. ..
  853. .de Op
  854. .if \\n(aC==0 \{\
  855. .    ds mN Op
  856. .\}
  857. .ds qL \&\\*(lB
  858. .ds qR \&\\*(rB
  859. .En \\$1 \\$2 \\$3 \\$4 \\$5 \\$6 \\$7 \\$8
  860. ..
  861. .de Aq
  862. .if \\n(aC==0 .ds mN Aq
  863. .ds qL \&<
  864. .ds qR \&>
  865. .En \\$1 \\$2 \\$3 \\$4 \\$5 \\$6 \\$7 \\$8 \\$9
  866. ..
  867. .de Bq
  868. .if \\n(aC==0 .ds mN Bq
  869. .ds qL \&\\*(lB
  870. .ds qR \&\\*(rB
  871. .En \\$1 \\$2 \\$3 \\$4 \\$5 \\$6 \\$7 \\$8 \\$9
  872. ..
  873. .de Dq
  874. .if \\n(aC==0 .ds mN Dq
  875. .ds qL \&\\*(Lq
  876. .ds qR \&\\*(Rq
  877. .En \\$1 \\$2 \\$3 \\$4 \\$5 \\$6 \\$7 \\$8 \\$9
  878. ..
  879. .de Eq
  880. .if \\n(aC==0 .ds mN Eq
  881. .ds qL \\$1
  882. .ds qR \\$2
  883. .En \\$3 \\$4 \\$5 \\$6 \\$7 \\$8 \\$9
  884. ..
  885. .de Pq
  886. .if \\n(aC==0 .ds mN Pq
  887. .ds qL \&\\*(lP
  888. .ds qR \&\\*(rP
  889. .En \\$1 \\$2 \\$3 \\$4 \\$5 \\$6 \\$7 \\$8 \\$9
  890. ..
  891. .de Qq
  892. .if \\n(aC==0 .ds mN Qq
  893. .ds qL \&\\*q
  894. .ds qR \&\\*q
  895. .En \\$1 \\$2 \\$3 \\$4 \\$5 \\$6 \\$7 \\$8 \\$9
  896. ..
  897. .de Sq
  898. .if \\n(aC==0 .ds mN Sq
  899. .ds qL \&\\*(sL
  900. .ds qR \&\\*(sR
  901. .En \\$1 \\$2 \\$3 \\$4 \\$5 \\$6 \\$7 \\$8 \\$9
  902. ..
  903. .de Es
  904. .if \\n(aC==0 \{\
  905. .    ie \\n(.$>2 .aV \\$1 \\$2 \\$3 \\$4 \\$5 \\$6 \\$7 \\$8 \\$9
  906. .    el \{\
  907. .        ds qL \\$1
  908. .        ds qR \\$2
  909. .    \}
  910. .\}
  911. .if \\n(aC>\\n(aP \{\
  912. .    nr aP \\n(aP+1
  913. .    ds qL \\*(A\\n(aP
  914. .    nr aP \\n(aP+1
  915. .    ds qR \\*(A\\n(aP
  916. .    ie \\n(aC>\\n(aP .c\\n(C\\n(aP
  917. .    el .aZ
  918. .\}
  919. ..
  920. .de En
  921. .ie \\n(aC==0 \{\
  922. .    ie \\n(.$==0 \{\
  923. .        as b1 \&\\*(qL\\*(qR
  924. .        pB
  925. .    \}
  926. .    el \{\
  927. .        aV \\$1 \\$2 \\$3 \\$4 \\$5 \\$6 \\$7 \\$8 \\$9
  928. .        as b1 \&\\*(qL
  929. .    \}
  930. .\}
  931. .el \{\
  932. .    as b1 \&\\*(qL
  933. .\}
  934. .if \\n(aC>0 \{\
  935. .    ie (\\n(aC-\\n(aP)==0 \{\
  936. .        as b1 \&\\*(qR
  937. .        aZ
  938. .    \}
  939. .    el \{\
  940. .        ie \\n(C\\n(aC==3 \{\
  941. .            nr aJ \\n(aC-1
  942. .            vR
  943. .            nr aJ \\n(aJ+1
  944. .            ds A\\n(aJ \&\\*(qR\\*(A\\n(aJ
  945. .            nr aJ 0
  946. .        \}
  947. .        el .aI \&\\*(qR 3
  948. .        nr aP \\n(aP+1
  949. .        if \\n(C\\n(aP==1 .\\*(A\\n(aP
  950. .        if \\n(C\\n(aP>1 \{\
  951. .            nr aP \\n(aP-1
  952. .            No
  953. .        \}
  954. .    \}
  955. .\}
  956. ..
  957. .de vR
  958. .if \\n(C\\n(aJ==3 \{\
  959. .    nr aJ \\n(aJ-1
  960. .    vR
  961. .\}
  962. ..
  963. .de Ao
  964. .if \\n(aC==0 .ds mN Ao
  965. .ds qL \&<
  966. .eO \\$1 \\$2 \\$3 \\$4 \\$5 \\$6 \\$7 \\$8 \\$9
  967. ..
  968. .de Ac
  969. .if \\n(aC==0 .ds mN Ac
  970. .ds qR \&>
  971. .eC \\$1 \\$2 \\$3 \\$4 \\$5 \\$6 \\$7 \\$8 \\$9
  972. ..
  973. .de Bo
  974. .if \\n(aC==0 .ds mN Bo
  975. .ds qL \&[
  976. .eO \\$1 \\$2 \\$3 \\$4 \\$5 \\$6 \\$7 \\$8 \\$9
  977. ..
  978. .de Bc
  979. .if \\n(aC==0 .ds mN Bc
  980. .ds qR \&]
  981. .eC \\$1 \\$2 \\$3 \\$4 \\$5 \\$6 \\$7 \\$8 \\$9
  982. ..
  983. .de Do
  984. .if \\n(aC==0 .ds mN Do
  985. .ds qL \&\\*(Lq
  986. .eO \\$1 \\$2 \\$3 \\$4 \\$5 \\$6 \\$7 \\$8 \\$9
  987. ..
  988. .de Dc
  989. .if \\n(aC==0 .ds mN Dc
  990. .ds qR \&\\*(Rq
  991. .eC \\$1 \\$2 \\$3 \\$4 \\$5 \\$6 \\$7 \\$8 \\$9
  992. ..
  993. .de Eo
  994. .if \\n(aC==0 .ds mN Eo
  995. .ds qL \\$1
  996. .eO \\$2 \\$3 \\$4 \\$5 \\$6 \\$7 \\$8 \\$9
  997. ..
  998. .de Ec
  999. .if \\n(aC==0 .ds mN Ec
  1000. .ds qR \\$1
  1001. .eC \\$2 \\$3 \\$4 \\$5 \\$6 \\$7 \\$8 \\$9
  1002. ..
  1003. .de Oo
  1004. .if \\n(aC==0 .ds mN Oo
  1005. .ds qL \&[
  1006. .eO \\$1 \\$2 \\$3 \\$4 \\$5 \\$6 \\$7 \\$8 \\$9
  1007. ..
  1008. .de Oc
  1009. .if \\n(aC==0 .ds mN Oc
  1010. .ds qR \&]
  1011. .eC \\$1 \\$2 \\$3 \\$4 \\$5 \\$6 \\$7 \\$8 \\$9
  1012. ..
  1013. .de Po
  1014. .if \\n(aC==0 .ds mN Po
  1015. .ds qL \&(
  1016. .eO \\$1 \\$2 \\$3 \\$4 \\$5 \\$6 \\$7 \\$8 \\$9
  1017. ..
  1018. .de Pc
  1019. .if \\n(aC==0 .ds mN Pc
  1020. .ds qR \&)
  1021. .eC \\$1 \\$2 \\$3 \\$4 \\$5 \\$6 \\$7 \\$8 \\$9
  1022. ..
  1023. .de Qo
  1024. .if \\n(aC==0 .ds mN Qo
  1025. .ds qL \&\\*q
  1026. .eO \\$1 \\$2 \\$3 \\$4 \\$5 \\$6 \\$7 \\$8 \\$9
  1027. ..
  1028. .de Qc
  1029. .if \\n(aC==0 .ds mN Qc
  1030. .ds qR \&\\*q
  1031. .eC \\$1 \\$2 \\$3 \\$4 \\$5 \\$6 \\$7 \\$8 \\$9
  1032. ..
  1033. .de So
  1034. .if \\n(aC==0 .ds mN So
  1035. .ds qL \&\\*(sL
  1036. .eO \\$1 \\$2 \\$3 \\$4 \\$5 \\$6 \\$7 \\$8 \\$9
  1037. ..
  1038. .de Sc
  1039. .if \\n(aC==0 .ds mN Sc
  1040. .ds qR \&\\*(sR
  1041. .eC \\$1 \\$2 \\$3 \\$4 \\$5 \\$6 \\$7 \\$8 \\$9
  1042. ..
  1043. .de Xo
  1044. .if \\n(aC==0 .ds mN Xo
  1045. .ds qL
  1046. .eO \\$1 \\$2 \\$3 \\$4 \\$5 \\$6 \\$7 \\$8 \\$9
  1047. ..
  1048. .de Xc
  1049. .if \\n(aC==0 .ds mN Xc
  1050. .ds qR
  1051. .eC \\$1 \\$2 \\$3 \\$4 \\$5 \\$6 \\$7 \\$8 \\$9
  1052. ..
  1053. .de eO
  1054. .nr oM \\n(oM+1
  1055. .ie \\n(aC==0 \{\
  1056. .       ie \\n(.$>0 \{\
  1057. .               aV \\$1 \\$2 \\$3 \\$4 \\$5 \\$6 \\$7 \\$8 \\$9
  1058. .        as b1 \\*(qL
  1059. .       \}
  1060. .    el \{\
  1061. .        as b1 \\*(qL
  1062. .        if (\\n(dZ==0)&(\\n(sM==1) \{\
  1063. .            nr dZ \\n(dZ+1
  1064. .            ds b2 \\*(b1
  1065. .            ds b1
  1066. .            nr lK \\n(.c
  1067. .            ev 2
  1068. .            fi
  1069. .            di eB
  1070. .        \}
  1071. .    \}
  1072. .\}
  1073. .el \{\
  1074. .    as b1 \\*(qL
  1075. .\}
  1076. .ie \\n(aC>0 \{\
  1077. .    if \\n(aC>\\n(aP \{\
  1078. .        nr aP \\n(aP+1
  1079. .        ie \\n(C\\n(aP==1 .\\*(A\\n(aP
  1080. .        el  \{\
  1081. .            nr aP \\n(aP-1
  1082. .            No
  1083. .        \}
  1084. .    \}
  1085. .    if \\n(aC==\\n(aP \{\
  1086. .        if \\n(tP==1 \{\
  1087. .            nr Xt 1
  1088. .        \}
  1089. .        aY
  1090. .    \}
  1091. .\}
  1092. .el \{\
  1093. .    if \\n(oM>1 .as b1 \\*(sV
  1094. .\}
  1095. ..
  1096. .de eC
  1097. .nr oM \\n(oM-1
  1098. .as b1 \\*(qR
  1099. .if \\n(aC==0 \{\
  1100. .       ie \\n(.$>0 \{\
  1101. .               aV \\$1 \\$2 \\$3 \\$4 \\$5 \\$6 \\$7 \\$8 \\$9
  1102. .       \}
  1103. .    el \{\
  1104. .        ie "\\*(xB"" \{\
  1105. .            pB
  1106. .        \}
  1107. .        el \{\
  1108. .            pB
  1109. .\\*(L\\n(lC
  1110. .            nr Xt 0
  1111. .            ds xB
  1112. .        \}
  1113. .    \}
  1114. .\}
  1115. .if \\n(aC>0 \{\
  1116. .    ie \\n(aC==\\n(aP \{\
  1117. .        ie \\n(oM==0 \{\
  1118. .            aZ
  1119. .        \}
  1120. .        el .aY
  1121. .    \}
  1122. .    el \{\
  1123. .        nr aa \\n(aP+1
  1124. .        if \\n(C\\n(aa==2 .as b1 \\*(S\\n(aC
  1125. .        rr aa
  1126. .        if \\n(tP>0 \{\
  1127. .            if \\n(Xt>0 .nr Xt \\n(Xt-1
  1128. .        \}
  1129. .        No
  1130. .    \}
  1131. .\}
  1132. ..
  1133. .de Pf
  1134. .if \\n(aC==0 .ds mN Pf
  1135. .ds qL \&\\$1
  1136. .pF \\$2 \\$3 \\$4 \\$5 \\$6 \\$7 \\$8 \\$9
  1137. ..
  1138. .de pF
  1139. .ie \\n(aC==0 \{\
  1140. .    as b1 \&\\*(qL
  1141. .    ie \\n(.$<2 \{\
  1142. .        tm Warning: Missing arguments - prefix .Pf)
  1143. .        pB
  1144. .    \}
  1145. .    el .aV \\$1 \\$2 \\$3 \\$4 \\$5 \\$6 \\$7 \\$8 \\$9
  1146. .\}
  1147. .el \{\
  1148. .    ie (\\n(aC-\\n(aP)>1 \{\
  1149. .        nr aP \\n(aP+1
  1150. .        as b1 \&\\*(A\\n(aP
  1151. .    \}
  1152. .    el .tm Warning: .Pf: trailing prefix (#\\n(.c)
  1153. .\}
  1154. .if \\n(aC>0 \{\
  1155. .    ie (\\n(aC-\\n(aP)==0 .aZ
  1156. .    el \{\
  1157. .        nr aP \\n(aP+1
  1158. .        c\\n(C\\n(aP
  1159. .    \}
  1160. .\}
  1161. ..
  1162. .de Ns
  1163. .if \\n(aC==0 \{\
  1164. .    ds mN Ns
  1165. .    ie \\n(.$>0 .aV \\$1 \\$2 \\$3 \\$4 \\$5 \\$6 \\$7 \\$8 \\$9
  1166. .    el .tm Usage: .Ns must be called with arguments (#\\n(.c)
  1167. .\}
  1168. .No
  1169. ..
  1170. .de Ap
  1171. .if \\n(aC==0 \{\
  1172. .    ds mN Ap
  1173. .    tm Usage: Ap "cannot be first request on a line (no .Ap)" (#\\n(.c)
  1174. .\}
  1175. .as b1 \&'
  1176. .No
  1177. ..
  1178. .de Hv
  1179. .ds iV \\*(sV
  1180. .ds sV \\*(hV
  1181. ..
  1182. .de Sv
  1183. .ds sV \\*(iV
  1184. ..
  1185. .de Tv
  1186. .ds sV \\*(tV
  1187. ..
  1188. .nr sM 1
  1189. .de Sm
  1190. .if \\n(aC==0 \{\
  1191. .    ie \\n(.$==0 .tm "Usage: .Sm [off | on]" (#\\n(.c)
  1192. .    el \{\
  1193. .        ds mN Sm
  1194. .        aV \\$1 \\$2 \\$3 \\$4 \\$5 \\$6 \\$7 \\$8 \\$9
  1195. .    \}
  1196. .\}
  1197. .if \\n(aC>0 \{\
  1198. .    nr aP \\n(aP+1
  1199. .    if "\\*(A\\n(aP"on" \{\
  1200. .        ds sV \\*(iV
  1201. .        nr sM 1
  1202. .    \}
  1203. .    if "\\*(A\\n(aP"off" \{\
  1204. .        ds sV
  1205. .        rm S0 S1 S2 S3 S4 S5 S6 S7 S8 S9
  1206. .        nr sM 0
  1207. .    \}
  1208. .    ie \\n(aC>\\n(aP \{\
  1209. .        No
  1210. .    \}
  1211. .    el .aY
  1212. .\}
  1213. ..
  1214. .if \n(.g \{\
  1215. .de aT
  1216. .nr aT 0
  1217. .ie \\n(sW>2:(\A'\\$1'==0) \{\
  1218. .    nr aT 2
  1219. .\}
  1220. .el \{\
  1221. .    if \\n(sW==1 \{\
  1222. .        ie \\n(z\\$1>2 \{\
  1223. .            nr aT \\n(z\\$1
  1224. .        \}
  1225. .        el .nr aT 2
  1226. .    \}
  1227. .    if \\n(sW==2 \{\
  1228. .        ie \\n(\\$1 \{\
  1229. .            nr aT 1
  1230. .        \}
  1231. .        el .nr aT 2
  1232. .    \}
  1233. .\}
  1234. ..
  1235. .de aU
  1236. .nr aT 0
  1237. .aW \\$1
  1238. .ie \\n(sW>2:(\A'\\*(A\\$1'==0) .nr aT 2
  1239. .el \{\
  1240. .    if \\n(sW==1 \{\
  1241. .        ie \\n(z\\*(A\\$1>2 \{\
  1242. .            nr aT \\n(z\\*(A\\$1
  1243. .        \}
  1244. .        el .nr aT 2
  1245. .    \}
  1246. .    if \\n(sW==2 \{\
  1247. .        ie (\\n(\\*(A\\$1) \{\
  1248. .            nr aT 1
  1249. .        \}
  1250. .        el .nr aT 2
  1251. .    \}
  1252. .\}
  1253. ..
  1254. .\}
  1255. .if !\n(.g \{\
  1256. .de aT
  1257. .nr aT 0
  1258. .ie \\n(sW>2 \{\
  1259. .    nr aT 2
  1260. .\}
  1261. .el \{\
  1262. .    if \\n(sW==1 \{\
  1263. .        ie \\n(z\\$1>2 \{\
  1264. .            nr aT \\n(z\\$1
  1265. .        \}
  1266. .        el .nr aT 2
  1267. .    \}
  1268. .    if \\n(sW==2 \{\
  1269. .        ie \\n(\\$1 \{\
  1270. .            nr aT 1
  1271. .        \}
  1272. .        el .nr aT 2
  1273. .    \}
  1274. .\}
  1275. ..
  1276. .de aU
  1277. .nr aT 0
  1278. .aW \\$1
  1279. .ie \\n(sW>2 .nr aT 2
  1280. .el \{\
  1281. .    if \\n(sW==1 \{\
  1282. .        ie \\n(z\\*(A\\$1>2 \{\
  1283. .            nr aT \\n(z\\*(A\\$1
  1284. .        \}
  1285. .        el .nr aT 2
  1286. .    \}
  1287. .    if \\n(sW==2 \{\
  1288. .        ie (\\n(\\*(A\\$1) \{\
  1289. .            nr aT 1
  1290. .        \}
  1291. .        el .nr aT 2
  1292. .    \}
  1293. .\}
  1294. ..
  1295. .\}
  1296. .de s0
  1297. .tm MDOC-ERROR: bogus type 0 (can't set space '\\*(A\\n(aC') (#\\n(.c)
  1298. ..
  1299. .de s1
  1300. .if \\n(\\*(A\\n(aC==3 \{\
  1301. .    nr xX \\n(aC-1
  1302. .    rm S\\n(xX
  1303. .    ds S\\n(aC \\*(sV
  1304. .\}
  1305. .if \\n(\\*(A\\n(aC==2 \{\
  1306. .    nr xX \\n(aC-1
  1307. .    ie "\\*(A\\n(aC"Nb" .ds S\\n(xX \\*(hV
  1308. .    el .rm S\\n(xX
  1309. .\}
  1310. ..
  1311. .de s2
  1312. .ds S\\n(aC \\*(sV
  1313. ..
  1314. .de s3
  1315. .if \\n(aC>1 \{\
  1316. .    nr xX \\n(aC-1
  1317. .    rm S\\n(xX
  1318. .\}
  1319. .ds S\\n(aC \\*(sV
  1320. ..
  1321. .de s4
  1322. .nr aa 0
  1323. ..
  1324. .de c0
  1325. .tm MDOC-ERROR: bogus class 0 (can't determine '\\*(A\\n(aC') (#\\n(.c)
  1326. ..
  1327. .de c1
  1328. .\\*(A\\n(aP
  1329. ..
  1330. .de c2
  1331. .nr aP \\n(aP-1
  1332. .No
  1333. ..
  1334. .de c3
  1335. .nr aP \\n(aP-1
  1336. .No
  1337. ..
  1338. .de c4
  1339. .nr aP \\n(aP-1
  1340. .No
  1341. ..
  1342. .de y1
  1343. .nr aa 1
  1344. ..
  1345. .de y2
  1346. .nr aa 1
  1347. ..
  1348. .de y3
  1349. .as b1 \\*(A\\n(aP
  1350. .nr aP \\n(aP+1
  1351. .n\\C\\n(aP
  1352. ..
  1353. .de y4
  1354. .as b1 \\*(A\\n(aP
  1355. .nr aP \\n(aP+1
  1356. .n\\C\\n(aP
  1357. ..
  1358. .de Bf
  1359. .ds mN Bf
  1360. .ie \\n(.$>0 \{\
  1361. .    nr bF \\n(.f
  1362. .    nr bZ \\n(.s
  1363. .    if "\\$1"Em" \&\\*(eM\c
  1364. .    if "\\$1"Li" \&\\*(lI\c
  1365. .    if "\\$1"Sy" \&\\*(sY\c
  1366. .    if "\\$1"-emphasis" \&\\*(eM\c
  1367. .    if "\\$1"-literal" \&\\*(lI\c
  1368. .    if "\\$1"-symbolic" \&\\*(sY\c
  1369. .\}
  1370. .el .tm Usage .Bf [Em | emphasis | Li | literal | Sy | symbolic] (#\\n(.c)
  1371. ..
  1372. .de Ef
  1373. .ds mN Ef
  1374. .ie \\n(.$>0 .tm Usage .Ef (does not take arguments) (#\\n(.c)
  1375. .el \&\f\\n(bF\s\\n(bZ
  1376. ..
  1377. .de Bk
  1378. .ds mN Bk
  1379. .ie \\n(.$==0 \{\
  1380. .tm Usage: .Bk [-lines | -words] (#\\n(.c)
  1381. .\}
  1382. .el \{\
  1383. .    if !"\\*(kS"" .tm .Bk: nesting keeps not implemented yet. (#\\n(.c)
  1384. .    if "\\$1"-lines" .tm .Bd -lines: Not implemented yet. (#\\n(.c)
  1385. .    if "\\$1"-words" .Hv
  1386. .    ds kS \\$1
  1387. .\}
  1388. ..
  1389. .de Ek
  1390. .ds mN Ek
  1391. .ie \\n(.$>0 .tm Usage .Ek (does not take arguments) (#\\n(.c)
  1392. .el \{\
  1393. .    if "\\*(kS"-lines" .tm .Bd -lines: Not implemented yet. (#\\n(.c)
  1394. .    if "\\*(kS"-words" .Sv
  1395. .    rm kS
  1396. .\}
  1397. ..
  1398. .de Bd
  1399. .ds mN Bd
  1400. .ie \\n(.$==0 \{\
  1401. .tm Usage: .Bd [-literal | -filled | -ragged | -unfilled] [-offset [string]] [-compact] (#\\n(.c)
  1402. .\}
  1403. .el \{\
  1404. .    ds aa
  1405. .    nr bV 0
  1406. .       nr iD 0
  1407. .    nr dP \\n(dP+1
  1408. .       if "\\$1"-literal" \{\
  1409. .        nr iD \\n(iD+1
  1410. .               ds d\\n(dP dL
  1411. .        nr cF \\n(.f
  1412. .        nr cZ \\n(.s
  1413. .        ie t \{\&\\*(lI
  1414. '            ta 9n 18n 27n 36n 45n 54n 63n 72n
  1415. .        \}
  1416. .        el \{\
  1417. '            ta 8n 16n 24n 32n 40n 48n 56n 64n 72n
  1418. .        \}
  1419. .        nf
  1420. .       \}
  1421. .       if "\\$1"-filled" \{\
  1422. .        nr iD \\n(iD+1
  1423. .               ds d\\n(dP dF
  1424. .        br
  1425. .       \}
  1426. .       if "\\$1"-ragged" \{\
  1427. .        nr iD \\n(iD+1
  1428. .               ds d\\n(dP dR
  1429. .        na
  1430. .       \}
  1431. .       if "\\$1"-unfilled" \{\
  1432. .        nr iD \\n(iD+1
  1433. .               ds d\\n(dP dU
  1434. .        nf
  1435. .       \}
  1436. .       if ((\\n(iD>=1)&(\\n(.$>\\n(iD)) \{\
  1437. .        bV \\$2 \\$3 \\$4
  1438. .    \}
  1439. .    if \\n(O\\n(dP>0 'in \\n(.iu+\\n(O\\n(dPu
  1440. .    if (\\n(bV==0) \{\
  1441. .        if (\\n(nS==0) \{\
  1442. .            ie "\\*(d\\n(dP"dR" .sp \\n(dVu
  1443. .            el 'sp \\n(dVu
  1444. .        \}
  1445. .    \}
  1446. .    if \\n(cR==0 .ne 2v
  1447. .    nr bV 0
  1448. .    nr iD 0
  1449. .\}
  1450. ..
  1451. .de bV
  1452. .nr iD 1
  1453. .ds bY
  1454. .if "\\$1"-offset" \{\
  1455. .    ds bY \\$2
  1456. .    if "\\*(bY"left" \{\
  1457. .        nr iD \\n(iD+1
  1458. .        nr O\\n(dP 0
  1459. .    \}
  1460. .    if "\\*(bY"right" \{\
  1461. .        nr iD \\n(iD+1
  1462. .        nr O\\n(dP (\\n(.l/3)u
  1463. .    \}
  1464. .    if "\\*(bY"center" \{\
  1465. .        nr iD \\n(iD+1
  1466. .        nr O\\n(dP (\\n(.l-\\n(.i)/4u
  1467. .    \}
  1468. .    if "\\*(bY"indent" \{\
  1469. .        nr iD \\n(iD+1
  1470. .        nr O\\n(dP \\n(dIu
  1471. .    \}
  1472. .    if "\\*(bY"indent-two" \{\
  1473. .        nr iD \\n(iD+1
  1474. .        nr O\\n(dP \\n(dIu+\\n(dIu
  1475. .    \}
  1476. .    if \\n(iD==1 \{\
  1477. .        nr iD \\n(iD+1
  1478. .        sW "\\*(bY"
  1479. .        ie \\n(sW>2 \{\
  1480. .            ie ((\\*(bY>9n)&(\\*(bY<100n)) \{\
  1481. .                nr O\\n(dP \\*(bY
  1482. .            \}
  1483. .            el .nr O\\n(dP (\\n(sW)*\\n(fWu
  1484. .        \}
  1485. .        el \{\
  1486. .            if \\n(sW==2 .aT \\*(bY
  1487. .            ie \\n(aT==1 \{\
  1488. .                nr O\\n(dP \\n(\\*(bY
  1489. .            \}
  1490. .            el .nr O\\n(dP \\*(bY
  1491. .        \}
  1492. .    \}
  1493. .\}
  1494. .if "\\$1"-compact" \{\
  1495. .    nr bV 1
  1496. .\}
  1497. .if \\n(iD<\\n(.$ \{\
  1498. .    ie "\\*(bY"" \{\
  1499. .        bV \\$2 \\$3
  1500. .    \}
  1501. .    el \{\
  1502. .        bV \\$3
  1503. .    \}
  1504. .\}
  1505. ..
  1506. .de Ed
  1507. .ds mN Ed
  1508. .br
  1509. .if \\n(dP==0 .tm mdoc: Extraneous .Ed
  1510. .if "\\*(d\\n(dP"dL" \{\
  1511. .    ft \\n(cF
  1512. .    fz \\n(cZ
  1513. .\}
  1514. .in \\n(.iu-\\n(O\\n(dPu
  1515. .rr O\\n(dP
  1516. .rm d\\n(dP
  1517. .nr dP \\n(dP-1
  1518. .fi
  1519. .if t .ad
  1520. ..
  1521. .de Bl
  1522. .ie \\n(.$==0 \{\
  1523. .tm Usage: .Bl [[-hang | -tag] [-width]] [ -item | -enum | -bullet | -diag] (#\\n(.c)
  1524. .\}
  1525. .el \{\
  1526. .    ds mN Bl
  1527. .    nr aP 0
  1528. .    nr lC \\n(lC+1
  1529. .    ds A1 \\$2
  1530. .    ds A2 \\$3
  1531. .    ds A3 \\$4
  1532. .    ds A4 \\$5
  1533. .    ds A5 \\$6
  1534. .    ds A6 \\$7
  1535. .    ds A7 \\$8
  1536. .    ds A8 \\$9
  1537. .    nr fV \\n(.$-1
  1538. .    if "\\$1"-hang" \{\
  1539. .        nr aP \\n(aP+1
  1540. .        ds L\\n(lC hL
  1541. .        nr w\\n(lC 6n
  1542. .        nr tC  1
  1543. .    \}
  1544. .    if "\\$1"-tag" \{\
  1545. .        nr aP \\n(aP+1
  1546. .        ds L\\n(lC tL
  1547. .        nr tC  1
  1548. .    \}
  1549. .    if "\\$1"-item" \{\
  1550. .        nr aP \\n(aP+1
  1551. .        ds L\\n(lC iT
  1552. .        nr tC  1
  1553. .    \}
  1554. .    if "\\$1"-enum" \{\
  1555. .        nr aP \\n(aP+1
  1556. .        ds L\\n(lC nU
  1557. .        nr w\\n(lC 3n
  1558. .        nr tC  1
  1559. .    \}
  1560. .    if "\\$1"-bullet" \{\
  1561. .        nr aP \\n(aP+1
  1562. .        ds L\\n(lC bU
  1563. .        nr w\\n(lC 2n
  1564. .        nr tC  1
  1565. .    \}
  1566. .    if "\\$1"-dash" \{\
  1567. .        nr aP \\n(aP+1
  1568. .        ds L\\n(lC hU
  1569. .        nr w\\n(lC 2n
  1570. .        nr tC  1
  1571. .    \}
  1572. .    if "\\$1"-hyphen" \{\
  1573. .        nr aP \\n(aP+1
  1574. .        ds L\\n(lC hU
  1575. .        nr w\\n(lC 2n
  1576. .        nr tC  1
  1577. .    \}
  1578. .    if "\\$1"-inset" \{\
  1579. .        nr aP \\n(aP+1
  1580. .        ds L\\n(lC lL
  1581. .        nr tC  1
  1582. .    \}
  1583. .    if "\\$1"-diag" \{\
  1584. .        nr aP \\n(aP+1
  1585. .        ds L\\n(lC mL
  1586. .        nr mL 1
  1587. .    \}
  1588. .    if "\\$1"-ohang" \{\
  1589. .        nr aP \\n(aP+1
  1590. .        ds L\\n(lC oL
  1591. .        nr tC 1
  1592. .    \}
  1593. .    if "\\$1"-column" \{\
  1594. .        nr aP \\n(aP+1
  1595. .        ds L\\n(lC cL
  1596. .    \}
  1597. .    ie \\n(aP==0 \{\
  1598. .    tm \\$1 \\$2 \\$3 \\$4 \\$5 \\$6 \\$7 \\$8 \\$9
  1599. .    tm Usage: .Bl [[-inset|-tag] -width] [-item|-enum|-bullet|-diag] (#\\n(.c)
  1600. .    \}
  1601. .    el \{\
  1602. .        tY
  1603. .        if (\\n(aP==1)&(\\n(aP<\\n(.$) \{\
  1604. .            nr aP 0
  1605. .            lV
  1606. .            if "\\*(L\\n(lC"cL" \{\
  1607. .                W\\n(wV
  1608. .                nr w\\n(lC 0
  1609. '                in -\\n(eWu
  1610. .                ie \\n(v\\n(lC==1 \{\
  1611. .                       nr aa 0
  1612. .                \}
  1613. .                el \{\
  1614. .                    sp \\n(dVu
  1615. .                \}
  1616. .                nf
  1617. .                nr wV 0
  1618. .            \}
  1619. .        \}
  1620. .    \}
  1621. .    nr aP 0
  1622. .    aY
  1623. .\}
  1624. ..
  1625. .if \n(.g \{\
  1626. .    nr i 10
  1627. .    while \ni<100 \{\
  1628. .         nr num!\nin 1
  1629. .         nr i +1
  1630. .    \}
  1631. .\}
  1632. .de lV
  1633. .nr aP \\n(aP+1
  1634. .if \\n(fV>=\\n(aP \{\
  1635. .    nr iD 0
  1636. .    if "\\*(A\\n(aP"-compact" \{\
  1637. .        nr iD 1
  1638. .        nr v\\n(lC 1
  1639. .    \}
  1640. .    if "\\*(A\\n(aP"-width" \{\
  1641. .        nr iD 1
  1642. .        nr aP \\n(aP+1
  1643. .        nr tW 1
  1644. .        ds t\\n(lC TagwidtH
  1645. .        ds tS \\*(A\\n(aP
  1646. .        aW \\n(aP
  1647. .        ie \\n(sW>2 \{\
  1648. .            nr w\\n(lC (\\n(sW)*\\n(fWu
  1649. .            if \\n(sW==3 \{\
  1650. .                ie \\n(.g \{\
  1651. .                    if \A'\\*(tS' .if r num!\\*(tS \{\
  1652. .                        nr w\\n(lC \\*(tS
  1653. .                    \}
  1654. .                \}
  1655. .                el \{\
  1656. .                    if (\\*(tS>9n)&(\\*(tS<99n) \{\
  1657. .                        nr w\\n(lC \\*(tSu
  1658. .                    \}
  1659. .                \}
  1660. .            \}
  1661. .        \}
  1662. .        el \{\
  1663. .            aT \\*(tS
  1664. .            ie \\n(aT==1 \{\
  1665. .                nr w\\n(lC \\n(\\*(tS
  1666. .            \}
  1667. .            el \{\
  1668. .                nr w\\n(lC \\*(tSu
  1669. .            \}
  1670. .        \}
  1671. .    \}
  1672. .    if "\\*(A\\n(aP"-offset" \{\
  1673. .        nr iD 1
  1674. .        nr aP \\n(aP+1
  1675. .        ie "\\*(A\\n(aP"indent" \{\
  1676. .            nr o\\n(lC \\n(Dsu
  1677. .        \}
  1678. .        el \{\
  1679. .            ds tS \\*(A\\n(aP
  1680. .            aW \\n(aP
  1681. .            ie \\n(sW>2 \{\
  1682. .                nr o\\n(lC (\\n(sW)*\\n(fWu
  1683. .                ie \\n(.g \{\
  1684. .                    if \A'\\*(tS' .if r num!\\*(tS \{\
  1685. .                        nr o\\n(lC \\*(tS
  1686. .                    \}
  1687. .                \}
  1688. .                el \{\
  1689. .                    if (\\*(tS>9n)&(\\*(tS<100n) \{\
  1690. .                        nr o\\n(lC \\*(tS
  1691. .                    \}
  1692. .                \}
  1693. .            \}
  1694. .            el \{\
  1695. .                ie \\n(C\\n(aP==1 .nr o\\n(lC \\n(\\*(tS
  1696. .                el .nr o\\n(lC \\*(tS
  1697. .            \}
  1698. .        \}
  1699. .    \}
  1700. .    if \\n(iD==0 \{\
  1701. .        if "\\*(L\\n(lC"cL" \{\
  1702. .            nr wV \\n(wV+1
  1703. .            ds A\\n(wV \\*(A\\n(aP
  1704. .        \}
  1705. .    \}
  1706. .    if \\n(fV>\\n(aP .lV
  1707. .\}
  1708. ..
  1709. .de El
  1710. .ie \\n(.$>0 \{\
  1711. .    tm Usage: .El (#\\n(.c)
  1712. .\}
  1713. .el \{\
  1714. .    ds mN El
  1715. .    nr iD 0
  1716. .    if "\\*(L\\n(lC"cL" \{\
  1717. .        nr iD 1
  1718. .        cC
  1719. .    \}
  1720. .    if "\\*(L\\n(lC"nU" \{\
  1721. .        nr nU 0
  1722. .    \}
  1723. .    if \\n(mL>0 \{\
  1724. .        nr iD 1
  1725. .        nr mL 0
  1726. .        tZ
  1727. .        nr lC \\n(lC-1
  1728. .        tY
  1729. .    \}
  1730. .    if "\\*(L\\n(lC"iT" \{\
  1731. '        in \\n(.iu-\\n(o\\n(lCu
  1732. .        tZ
  1733. .        nr lC \\n(lC-1
  1734. .        tY
  1735. .        nr iD 1
  1736. .    \}
  1737. .    if "\\*(L\\n(lC"oL" \{\
  1738. '        in \\n(.iu-\\n(o\\n(lCu
  1739. .        tZ
  1740. .        nr lC \\n(lC-1
  1741. .        tY
  1742. .        nr iD 1
  1743. .    \}
  1744. .    if "\\*(L\\n(lC"lL" \{\
  1745. '        in \\n(.iu-\\n(o\\n(lCu
  1746. .        tZ
  1747. .        nr lC \\n(lC-1
  1748. .        tY
  1749. .        nr iD 1
  1750. .    \}
  1751. .    if \\n(iD==0 \{\
  1752. .        lE
  1753. .    \}
  1754. .    br
  1755. .    nr iD 0
  1756. .\}
  1757. ..
  1758. .de It
  1759. .if "\\*(L\\n(lC"" \{\
  1760. .    tm Usage .Bl -list-type [-width [string] | -compact | -offset [string]] (#\\n(.c)
  1761. .    tm .It \\$1 \\$2 \\$3 \\$4 \\$5 \\$6 \\$7 \\$8
  1762. .\}
  1763. .ne 3v
  1764. .ie \\n(.$>0 \{\
  1765. .    ds mN It
  1766. .    ds b1
  1767. .    nr iD 0
  1768. .    ds A1 \\$1
  1769. .    ds A2 \\$2
  1770. .    ds A3 \\$3
  1771. .    ds A4 \\$4
  1772. .    ds A5 \\$5
  1773. .    ds A6 \\$6
  1774. .    ds A7 \\$7
  1775. .    ds A8 \\$8
  1776. .    ds A9 \\$9
  1777. .    nr fV \\n(.$
  1778. .    if "\\*(L\\n(lC"mL" \{\
  1779. .        nr iD 1
  1780. .        nr aP 0
  1781. .        aX
  1782. .        \\*(L\\n(lC
  1783. .    \}
  1784. .    if "\\*(L\\n(lC"cL" \{\
  1785. .        ds b1
  1786. .        nr aP 0
  1787. .        nr iD 1
  1788. .        \\*(L\\n(lC
  1789. .    \}
  1790. .    if "\\*(L\\n(lC"iT" \{\
  1791. .        nr aP 0
  1792. .        nr iD 1
  1793. .        \\*(L\\n(lC
  1794. .    \}
  1795. .    if \\n(iD==0 \{\
  1796. .        fV
  1797. .        nr oM \\n(oM+1
  1798. .        nr tP 1
  1799. .        nr aP \\n(aP+1
  1800. .        nr tX \\n(C\\n(aP
  1801. .        ds tX \\*(A\\n(aP
  1802. .        if \\n(nF==1 \{\
  1803. .            ds aA \\*(pA
  1804. .            if n .ds pA \\*(nO
  1805. .        \}
  1806. .        ie \\n(C\\n(aP==1 \{\
  1807. .            \\*(A\\n(aP
  1808. .        \}
  1809. .        el \{\
  1810. .            nr aP \\n(aP-1
  1811. .            No
  1812. .        \}
  1813. .        ie \\n(Xt==1 .ds xB \&\\*(L\\n(lC
  1814. .        el .\\*(L\\n(lC
  1815. .    \}
  1816. .    nr iD 0
  1817. .\}
  1818. .el .\\*(L\\n(lC
  1819. ..
  1820. .de lL
  1821. .lY
  1822. .br
  1823. \&\\*(b1
  1824. .nr oM \\n(oM-1
  1825. .nr tP 0
  1826. .ds b1
  1827. .aY
  1828. 'fi
  1829. ..
  1830. .de hL
  1831. .lX
  1832. .nr bb \\n(w\\n(lCu+\\n(lSu
  1833. .ti -\\n(bbu
  1834. .ie \w\\*(b1u>=(\\n(w\\n(lCu) \&\\*(b1
  1835. .el \&\\*(b1\h'|\\n(bbu'\c
  1836. .nr oM \\n(oM-1
  1837. .ds b1
  1838. .nr tP 0
  1839. .aY
  1840. 'fi
  1841. ..
  1842. .de oL
  1843. .lY
  1844. \&\\*(b1
  1845. .br
  1846. .nr oM \\n(oM-1
  1847. .ds b1
  1848. .nr tP 0
  1849. .aY
  1850. 'fi
  1851. ..
  1852. .de iT
  1853. .lY
  1854. .br
  1855. .aY
  1856. 'fi
  1857. ..
  1858. .de nU
  1859. .nr oM \\n(oM+1
  1860. .nr nU \\n(nU+1
  1861. .ds b1 \&\\n(nU.
  1862. .uL
  1863. ..
  1864. .de bU
  1865. .nr oM \\n(oM+1
  1866. .nr bU \\n(bU+1
  1867. .ds b1 \&\\*(sY\&\(bu\fP
  1868. .uL
  1869. ..
  1870. .de hU
  1871. .nr oM \\n(oM+1
  1872. .nr bU \\n(bU+1
  1873. .ds b1 \&\\*(sY\&\-\fP
  1874. .uL
  1875. ..
  1876. .de uL
  1877. .lX
  1878. .nr bb \\n(w\\n(lCu+\\n(lSu
  1879. .ti -\\n(bbu
  1880. .ie \w\\*(b1u>=(\\n(w\\n(lCu) \&\\*(b1
  1881. .el \&\\*(b1\h'|\\n(bbu'\c
  1882. .nr oM \\n(oM-1
  1883. .ds b1
  1884. .nr tP 0
  1885. .aY
  1886. 'fi
  1887. ..
  1888. .de mL
  1889. .nr cF \\n(.f
  1890. .nr cZ \\n(.s
  1891. .ie \\n(mL==1 \{\
  1892. .    nr zB \\n(.c
  1893. .    ie (\\n(zB-\\n(zA)>1 .Pp
  1894. .    el .br
  1895. .    nr zA \\n(zB
  1896. .    nr zB 0
  1897. .\}
  1898. .el \{\
  1899. .    nr zA \\n(.c
  1900. .    br
  1901. .\}
  1902. \&\\*(sY\\*(b1\f\\n(cF\s\\n(cZ\\*(lS\c
  1903. .aY
  1904. .ds b1
  1905. 'fi
  1906. ..
  1907. .de tL
  1908. .if \\n(tW==0 .lW
  1909. .lX
  1910. .nr bb \\n(w\\n(lCu+\\n(lSu
  1911. .ti -\\n(bbu
  1912. .ie (\w\\*(b1u)>(\\n(w\\n(lCu) \{\&\\*(b1
  1913. .       br
  1914. .\}
  1915. .el \&\\*(b1\h'|\\n(bbu'\c
  1916. .if \\n(nF==1 \{\
  1917. .    if n .ds pA \\*(aA
  1918. .\}
  1919. .nr oM \\n(oM-1
  1920. .nr tP 0
  1921. .ds b1
  1922. .aY
  1923. 'fi
  1924. ..
  1925. .de lW
  1926. .if !"TagwidtH"\\*(t\\n(lC" \{\
  1927. .       ie \\n(tX==1 \{\
  1928. .               ds t\\n(lN \\*(tX
  1929. .               nr w\\n(lN \\n(\\*(tX
  1930. .       \}
  1931. .       el \{\
  1932. .               ds t\\n(lN No
  1933. .               nr w\\n(lN \\n(No
  1934. .       \}
  1935. .       if !"\\*(t\\n(lC"\\*(t\\n(lN" .nr tC 1
  1936. .\}
  1937. ..
  1938. .de lX
  1939. .ie \\n(tC \{\
  1940. .       nr tC 0
  1941. .       nr tW 0
  1942. .       if \\n(v\\n(lC==0 .sp \\n(dVu
  1943. .       in \\n(.iu+\\n(w\\n(lCu+\\n(o\\n(lCu+\\n(lSu
  1944. .\}
  1945. .el \{\
  1946. .    ie \\n(v\\n(lC==1 \{\
  1947. .           nr aa 0
  1948. .    \}
  1949. .    el \{\
  1950. .        sp \\n(dVu
  1951. .    \}
  1952. .\}
  1953. .if !\\n(cR .ne 2v
  1954. ..
  1955. .de lY
  1956. .ie \\n(tC \{\
  1957. .       nr tC 0
  1958. .       nr tW 0
  1959. .       if \\n(v\\n(lC==0 .sp \\n(dVu
  1960. .       in \\n(.iu+\\n(o\\n(lCu
  1961. .\}
  1962. .el \{\
  1963. .    ie \\n(v\\n(lC==1 \{\
  1964. .           nr aa 0
  1965. .    \}
  1966. .    el \{\
  1967. .        sp \\n(dVu
  1968. .    \}
  1969. .\}
  1970. .if !\\n(cR .ne 2v
  1971. ..
  1972. .nr lC 0
  1973. .nr wV 0
  1974. .nr w1 0
  1975. .nr o1 0
  1976. .nr v1 0
  1977. .nr h1 0
  1978. .ds t\n(lC
  1979. .de lE
  1980. .ie \\n(o\\n(lC>0 \{\
  1981. '    in \\n(.iu-(\\n(w\\n(lCu)-(\\n(o\\n(lCu)-\\n(lSu
  1982. .    rr o\\n(lC
  1983. .\}
  1984. .el 'in \\n(.iu-\\n(w\\n(lCu-\\n(lSu
  1985. .if \\n(lC<=0 .tm Extraneous .El call (#\\n(.c)
  1986. .tZ
  1987. .nr lC \\n(lC-1
  1988. .tY
  1989. ..
  1990. .de tY
  1991. .nr tY (\\n(lC+1)
  1992. .nr w\\n(tY 0
  1993. .nr h\\n(tY 0
  1994. .nr o\\n(tY 0
  1995. .ds t\\n(tY \\*(t\\n(lC
  1996. .ds L\\n(tY
  1997. .nr v\\n(tY 0
  1998. ..
  1999. .de tZ
  2000. .rm L\\n(tY
  2001. .rr w\\n(tY
  2002. .rr h\\n(tY
  2003. .rr o\\n(tY
  2004. .rm t\\n(tY
  2005. .rr v\\n(tY
  2006. .nr tY \\n(tY-1
  2007. ..
  2008. .nr w1 0
  2009. .nr o1 0
  2010. .nr h1 0
  2011. .ds t1
  2012. .nr v1 0
  2013. .nr tY 1
  2014. .de Xr
  2015. .if \\n(aC==0 \{\
  2016. .    ie \\n(.$==0 .tm Usage: .Xr manpage_name [section#] \\*(Pu (#\\n(.c)
  2017. .    el \{\
  2018. .        ds mN Xr
  2019. .        aV \\$1 \\$2 \\$3 \\$4 \\$5 \\$6 \\$7 \\$8 \\$9
  2020. .    \}
  2021. .\}
  2022. .if \\n(aC>\\n(aP \{\
  2023. .    nr aP \\n(aP+1
  2024. .    ie \\n(C\\n(aP==1 .tm Usage: .Xr manpage_name [section#] \\*(Pu (#\\n(.c)
  2025. .    el \{\
  2026. .        ie \\n(C\\n(aP>2 .y\\n(C\\n(aP
  2027. .        el \{\
  2028. .            as b1 \&\\*(xR\\*(A\\n(aP\fP\s0
  2029. .            if \\n(aC>\\n(aP \{\
  2030. .                nr aP \\n(aP+1
  2031. .                if \\n(C\\n(aP==2 \{\
  2032. .                    as b1 \&(\\*(A\\n(aP)
  2033. .                    nr aP \\n(aP+1
  2034. .                \}
  2035. .                if \\n(aC>=\\n(aP \{\
  2036. .                    c\\n(C\\n(aP
  2037. .                \}
  2038. .            \}
  2039. .        \}
  2040. .        aZ
  2041. .       \}
  2042. .\}
  2043. ..
  2044. .de Sx
  2045. .if \\n(aC==0 \{\
  2046. .    ie \\n(.$==0 .tm Sx Usage: .Sx Section Header \\*(Pu (#\\n(.c)
  2047. .    el \{\
  2048. .        ds mN Sx
  2049. .        aV \\$1 \\$2 \\$3 \\$4 \\$5 \\$6 \\$7 \\$8 \\$9
  2050. .    \}
  2051. .\}
  2052. .\}
  2053. .if \\n(aC>\\n(aP \{\
  2054. .    nr aP \\n(aP+1
  2055. .    as b1 \\*(sX
  2056. .    nr cF \\n(.f
  2057. .    nr cZ \\n(.s
  2058. .    nR
  2059. .\}
  2060. ..
  2061. .de cC
  2062. 'in \\n(.iu-\\n(o\\n(lCu-\\n(w\\n(lCu
  2063. .ta .5i 1i 1.5i 2i 2.5i 3i 3.5i 4i 4.5i 5i 5.5i 6i 6.5i
  2064. .fi
  2065. .tZ
  2066. .nr lC \\n(lC-1
  2067. .tY
  2068. ..
  2069. .de W1
  2070. .ta \w\\*(A1    u
  2071. .nr eW \w\\*(A1    u
  2072. 'in \\n(.iu+\\n(eWu+\\n(o\\n(lCu
  2073. ..
  2074. .de W2
  2075. .ta \w\\*(A1    u +\w\\*(A2    u
  2076. .nr eW \w\\*(A1    u+\w\\*(A2    u
  2077. 'in \\n(.iu+\\n(eWu+\\n(o\\n(lCu
  2078. ..
  2079. .de W3
  2080. .ta \w\\*(A1    u +\w\\*(A2    u +\w\\*(A3    u
  2081. .nr eW \w\\*(A1    u+\w\\*(A2    u+\w\\*(A3    u
  2082. 'in \\n(.iu+\\n(eWu+\\n(o\\n(lCu
  2083. ..
  2084. .de W4
  2085. .ta \w\\*(A1    u +\w\\*(A2    u +\w\\*(A3    u +\w\\*(A4    u
  2086. .nr eW \w\\*(A1    u+\w\\*(A2    u +\w\\*(A3    u +\w\\*(A4    u
  2087. 'in \\n(.iu+\\n(eWu+\\n(o\\n(lCu
  2088. ..
  2089. .de W5
  2090. .ta \w\\*(A1   u +\w\\*(A2   u +\w\\*(A3   u +\w\\*(A4   u +\w\\*(A5   u
  2091. .nr eW \w\\*(A1   u +\w\\*(A2   u +\w\\*(A3   u +\w\\*(A4   u +\w\\*(A5   u
  2092. '    in \\n(.iu+\\n(eWu+\\n(o\\n(lCu
  2093. ..
  2094. .de W6
  2095. .ta \w\\*(A1 u +\w\\*(A2 u +\w\\*(A3 u +\w\\*(A4 u +\w\\*(A5 u +\w\\*(A6
  2096. .nr eW \w\\*(A1 u +\w\\*(A2 u +\w\\*(A3 u +\w\\*(A4 u +\w\\*(A5 u +\w\\*(A6
  2097. '    in \\n(.iu+\\n(eWu+\\n(o\\n(lCu
  2098. ..
  2099. .de cL
  2100. .if \\n(w\\n(lC==0 .nr w\\n(lC \\n(eWu
  2101. .if \\n(.u==0 \{\
  2102. .    fi
  2103. '    in \\n(.iu+\\n(eWu
  2104. .\}
  2105. .ti -\\n(eWu
  2106. .fV
  2107. .nr aP \\n(aP+1
  2108. .ie \\n(aC>=\\n(aP  \{\
  2109. .    if "\\*(A\\n(aP"Ta" \{\
  2110. .        nr jJ \\n(aP-1
  2111. .        rm S\\n(jJ
  2112. .        rr jJ
  2113. .    \}
  2114. .    c\\n(C\\n(aP
  2115. .\}
  2116. .el .tm Usage: .It column_string [Ta [column_string ...] ] (#\\n(.c)
  2117. ..
  2118. .de Ta
  2119. .ie \\n(aC>0 \{\
  2120. .    nr aP \\n(aP+1
  2121. .    ie \\n(aC>=\\n(aP \{\
  2122. .        if "\\*(A\\n(aP"Ta" \{\
  2123. .            nr jJ \\n(aP-1
  2124. .            rm S\\n(jJ
  2125. .            rr jJ
  2126. .        \}
  2127. .        as b1 \\t
  2128. .        c\\n(C\\n(aP
  2129. .    \}
  2130. .    el \{\
  2131. .        as b1 \\t\\c
  2132. .        rm S\\n(aP
  2133. .        pB
  2134. .        aY
  2135. .    \}
  2136. .\}
  2137. .el \{\
  2138. .    tm Usage: Ta must follow column entry: e.g. (#\\n(.c)
  2139. .    tm .It column_string [Ta [column_string ...] ]
  2140. .\}
  2141. ..
  2142. .de Dl
  2143. 'ta .5i 1i 1.5i 2i 2.5i 3i 3.5i 4i 4.5i 5i 5.5i 6i 6.5i
  2144. .in \\n(.iu+\\n(Dsu
  2145. .ie \\n(aC==0 \{\
  2146. .    ie \\n(.$==0 \{\
  2147. .        tm Usage: .Dl argument ... (#\\n(.c)
  2148. .    \}
  2149. .    el \{\
  2150. .        ds mN Dl
  2151. .               ds A1 \\$1
  2152. .               ds A2 \\$2
  2153. .               ds A3 \\$3
  2154. .               ds A4 \\$4
  2155. .               ds A5 \\$5
  2156. .               ds A6 \\$6
  2157. .               ds A7 \\$7
  2158. .               ds A8 \\$8
  2159. .               ds A9 \\$9
  2160. .        nr fV \\n(.$
  2161. .        fV
  2162. .        Li
  2163. .    \}
  2164. .\}
  2165. .el \{\
  2166. .    tm Usage: .Dl not callable by other macros (#\\n(.c)
  2167. .\}
  2168. .in \\n(.iu-\\n(Dsu
  2169. ..
  2170. .de D1
  2171. 'ta .5i 1i 1.5i 2i 2.5i 3i 3.5i 4i 4.5i 5i 5.5i 6i 6.5i
  2172. .in \\n(.iu+\\n(Dsu
  2173. .ie \\n(aC==0 \{\
  2174. .    ie \\n(.$==0 \{\
  2175. .        tm Usage: .D1 argument ... (#\\n(.c)
  2176. .    \}
  2177. .    el \{\
  2178. .        ds mN D1
  2179. .               ds A1 \\$1
  2180. .               ds A2 \\$2
  2181. .               ds A3 \\$3
  2182. .               ds A4 \\$4
  2183. .               ds A5 \\$5
  2184. .               ds A6 \\$6
  2185. .               ds A7 \\$7
  2186. .               ds A8 \\$8
  2187. .               ds A9 \\$9
  2188. .        nr fV \\n(.$
  2189. .        fV
  2190. .        nr aP \\n(aP+1
  2191. .        ie \\n(C\\n(aP==1 .\\*(A\\n(aP
  2192. .        el .No
  2193. .    \}
  2194. .\}
  2195. .el \{\
  2196. .    tm Usage: .D1 not callable by other macros (#\\n(.c)
  2197. .\}
  2198. .in \\n(.iu-\\n(Dsu
  2199. ..
  2200. .de Ex
  2201. .tm Ex defunct, Use .D1: \\$1 \\$2 \\$3 \\$4 \\$5 \\$6 \\$7 \\$8 \\$9
  2202. ..
  2203. .de Ex
  2204. .tm Ex defunct, Use .D1: \\$1 \\$2 \\$3 \\$4 \\$5 \\$6 \\$7 \\$8 \\$9
  2205. ..
  2206. .de Vt
  2207. .if \\n(fD>0 \{\
  2208. .    Pp
  2209. .    nr fD 0
  2210. .\}
  2211. .if \\n(fZ>0 \{\
  2212. .    ie \\n(fX==0 \{\
  2213. .        Pp
  2214. .        rs
  2215. .    \}
  2216. .    el .br
  2217. .\}
  2218. .nr fX \\n(fX+1
  2219. .nr cF \\n(.f
  2220. .nr cZ \\n(.s
  2221. \\*(fT\&\\$1 \\$2 \\$3 \\$4 \\$5 \\$6 \\$7 \\$8 \\$9
  2222. .ie \\n(oT==0 .br
  2223. .el \&\ \&
  2224. .ft \\n(cF
  2225. .fs \\n(cZ
  2226. ..
  2227. .nr fZ 0
  2228. .de Ft
  2229. .if \\n(nS>0 \{\
  2230. .    if \\n(fZ>0 \{\
  2231. .        Pp
  2232. .        nr fD 0
  2233. .        nr fX 0
  2234. .    \}
  2235. .    if \\n(fD>0 \{\
  2236. .        Pp
  2237. .        nr fD 0
  2238. .        nr fX 0
  2239. .    \}
  2240. .    if \\n(fX>0 \{\
  2241. .        Pp
  2242. .        nr fX 0
  2243. .    \}
  2244. .    nr fY 1
  2245. .\}
  2246. .nr cF \\n(.f
  2247. .nr cZ \\n(.s
  2248. \&\\*(fT\\$1 \\$2 \\$3 \\$4 \\$5 \\$6 \\$7 \\$8 \\$9
  2249. .ft \\n(cF
  2250. .fs \\n(cZ
  2251. ..
  2252. .nr oT 0
  2253. .de Ot
  2254. .nr oT 1
  2255. .if \\n(nS>0 \{\
  2256. .    if \\n(fZ>0 \{\
  2257. .        Pp
  2258. .        nr fD 0
  2259. .        nr fX 0
  2260. .    \}
  2261. .    if \\n(fD>0 \{\
  2262. .        Pp
  2263. .        nr fD 0
  2264. .        nr fX 0
  2265. .    \}
  2266. .    if \\n(fX>0 \{\
  2267. .        Pp
  2268. .        nr fX 0
  2269. .    \}
  2270. .    nr fY 1
  2271. .\}
  2272. .if \\n(.$==4 .as b1 \&\\*(fT\&\\$1 \\$2 \\$3 \\$4
  2273. .if \\n(.$==3 .as b1 \&\\*(fT\&\\$1 \\$2 \\$3
  2274. .if \\n(.$==2 .as b1 \&\\*(fT\&\\$1 \\$2
  2275. .if \\n(.$==1 .as b1 \&\\*(fT\&\\$1
  2276. .as b1 \&\ \fP
  2277. ..
  2278. .de Fa
  2279. .if \\n(aC==0 \{\
  2280. .       ie \\n(.$==0 .tm Usage: .Fa Function Arguments ... \\*(Pu (#\\n(.c)
  2281. .       el \{\
  2282. .        ds mN Fa
  2283. .               ds A1 \\$1
  2284. .               ds A2 \\$2
  2285. .               ds A3 \\$3
  2286. .               ds A4 \\$4
  2287. .               ds A5 \\$5
  2288. .               ds A6 \\$6
  2289. .               ds A7 \\$7
  2290. .               ds A8 \\$8
  2291. .               ds A9 \\$9
  2292. .        nr fV \\n(.$
  2293. .        fV
  2294. .    \}
  2295. .\}
  2296. .ie \\n(fC>0 \{\
  2297. .    fC
  2298. .\}
  2299. .el \{\
  2300. .    if \\n(aC>\\n(aP \{\
  2301. .        as b1 \\*(fA
  2302. .        nr aP \\n(aP+1
  2303. .        nr cF \\n(.f
  2304. .        nr cZ \\n(.s
  2305. .        nR
  2306. .        if \\n(nS>0 \{\
  2307. .            if \\n(fZ>0 .br
  2308. .        \}
  2309. .    \}
  2310. .\}
  2311. ..
  2312. .de fC
  2313. .ie \\n(aC>\\n(aP \{\
  2314. .    nr aP \\n(aP+1
  2315. .        ds Fb
  2316. .        nr fB 0
  2317. .        nr Fb 0
  2318. .        fB \\*(A\\n(aP
  2319. .        if \\n(fB>1 \{\
  2320. .            rm A\\n(aP
  2321. .            rn Fb A\\n(aP
  2322. .        \}
  2323. .    if \\n(fC>1 \{\
  2324. .        as b1 \&\f\\n(cF\s\\n(cZ,\\*(S\\n(aP\\*(fA\\*(A\\n(aP\fP\s0
  2325. .    \}
  2326. .    if \\n(fC==1 \{\
  2327. .        as b1 \&\|\\*(fA\\*(A\\n(aP\fP\s0
  2328. .    \}
  2329. .    nr fC \\n(fC+1
  2330. .    fC
  2331. .\}
  2332. .el  \{\
  2333. .    aY
  2334. .\}
  2335. ..
  2336. .de Fn
  2337. .if \\n(aC==0 \{\
  2338. .    ie \\n(.$==0 .tm Usage: .Fn function_name function_arg(s) ... \\*(Pu (#\\n(.c)
  2339. .    el \{\
  2340. .        ds mN Fn
  2341. .               ds A1 \\$1
  2342. .               ds A2 \\$2
  2343. .               ds A3 \\$3
  2344. .               ds A4 \\$4
  2345. .               ds A5 \\$5
  2346. .               ds A6 \\$6
  2347. .               ds A7 \\$7
  2348. .               ds A8 \\$8
  2349. .               ds A9 \\$9
  2350. .        nr fV \\n(.$
  2351. .        fV
  2352. .    \}
  2353. .\}
  2354. .if \\n(nS>0 \{\
  2355. .    if \\n(fY==0 \{\
  2356. .        if \\n(fZ>0 \{\
  2357. .            Pp
  2358. .            nr fX 0
  2359. .            nr fD 0
  2360. .        \}
  2361. .    \}
  2362. .    if \\n(fY==1 \{\
  2363. .        br
  2364. .        nr fX 0
  2365. .        nr fD 0
  2366. .        nr fY 0
  2367. .    \}
  2368. .    if \\n(fD>0 \{\
  2369. .        Pp
  2370. .        nr fX 0
  2371. .    \}
  2372. .    if \\n(fX>0 \{\
  2373. .        Pp
  2374. .        nr fD 0
  2375. .    \}
  2376. .    nr fZ \\n(fZ+1
  2377. .    nr fY 0
  2378. .    rs
  2379. .    ie \\n(nS>1 .br
  2380. .    el \{\
  2381. .        if \\n(iS==0 \{\
  2382. .            nr iS ((8)*\\n(fW)u
  2383. .        \}
  2384. .    \}
  2385. .    in +\\n(iSu
  2386. .    ti -\\n(iSu
  2387. .    nr nS \\n(nS+1
  2388. .\}
  2389. .if \\n(aC>\\n(aP \{\
  2390. .    nr aP \\n(aP+1
  2391. .    nr cF \\n(.f
  2392. .    nr cZ \\n(.s
  2393. .    as b1 \\*(fN\\*(A\\n(aP\fP\s0\\*(lp
  2394. .    ie \\n(aC>\\n(aP \{\
  2395. .        as b1 \\*(fA
  2396. .        nr aP \\n(aP+1
  2397. .        f\\n(C\\n(aP
  2398. .    \}
  2399. .    el \{\
  2400. .        as b1 \|\\*(rp
  2401. .        aZ
  2402. .    \}
  2403. .    if \\n(nS>0 \{\
  2404. .         in -\\n(iSu
  2405. .    \}
  2406. .\}
  2407. ..
  2408. .de f1
  2409. .as b1 \\*(rp\f\\n(cF\s\\n(cZ
  2410. .\\*(A\\n(aP
  2411. ..
  2412. .de f2
  2413. .if \\n(nS>0 \{\
  2414. .    ds Fb
  2415. .    nr fB 0
  2416. .    nr Fb 0
  2417. .    fB \\*(A\\n(aP
  2418. .    if \\n(fB>1 \{\
  2419. .        rm A\\n(aP
  2420. .        rn Fb A\\n(aP
  2421. .    \}
  2422. .\}
  2423. .as b1 \\*(A\\n(aP
  2424. .ie \\n(aC>\\n(aP \{\
  2425. .    nr aa \\n(aP
  2426. .    nr aP \\n(aP+1
  2427. .    if \\n(C\\n(aP==2 \{\
  2428. .        as b1 \&\|\f\\n(cF\s\\n(cZ,\\*(S\\n(aa\fP\s0\|
  2429. .    \}
  2430. .    f\\n(C\\n(aP
  2431. .\}
  2432. .el  \{\
  2433. .    as b1 \\*(rp\f\\n(cF\s\\n(cZ
  2434. .    aZ
  2435. .\}
  2436. ..
  2437. .de f3
  2438. .as b1 \\*(rp\f\\n(cF\s\\n(cZ\\*(A\\n(aP
  2439. .ie \\n(aC>\\n(aP \{\
  2440. .    No
  2441. .\}
  2442. .el .aZ
  2443. ..
  2444. .de f4
  2445. .as b1 \\*(rp\f\\n(cF\s\\n(cZ\\*(S\\n(aP\\*(A\\n(aP
  2446. .ie \\n(aC>\\n(aP \{\
  2447. .    nr aP \\n(aP+1
  2448. .    No
  2449. .\}
  2450. .el .aZ
  2451. ..
  2452. .de Fo
  2453. .hy 0
  2454. .if \\n(aC==0 \{\
  2455. .    ie \\n(.$==0 .tm Usage: .Fo function_name
  2456. .    el \{\
  2457. .        ds mN Fo
  2458. .               ds A1 \\$1
  2459. .               ds A2 \\$2
  2460. .               ds A3 \\$3
  2461. .               ds A4 \\$4
  2462. .               ds A5 \\$5
  2463. .               ds A6 \\$6
  2464. .               ds A7 \\$7
  2465. .               ds A8 \\$8
  2466. .               ds A9 \\$9
  2467. .        nr fV \\n(.$
  2468. .        fV
  2469. .    \}
  2470. .\}
  2471. .if \\n(nS>0 \{\
  2472. .    if \\n(fY==0 \{\
  2473. .        if \\n(fZ>0 \{\
  2474. .            Pp
  2475. .            nr fX 0
  2476. .            nr fD 0
  2477. .        \}
  2478. .    \}
  2479. .    if \\n(fY==1 \{\
  2480. .        br
  2481. .        nr fX 0
  2482. .        nr fD 0
  2483. .        nr fY 0
  2484. .    \}
  2485. .    if \\n(fD>0 \{\
  2486. .        Pp
  2487. .        nr fX 0
  2488. .    \}
  2489. .    if \\n(fX>0 \{\
  2490. .        Pp
  2491. .        nr fD 0
  2492. .    \}
  2493. .    nr fZ \\n(fZ+1
  2494. .    nr fY 0
  2495. .    rs
  2496. .    ie \\n(nS>1 .br
  2497. .    el \{\
  2498. .        if \\n(iS==0 \{\
  2499. .            nr iS ((8)*\\n(fW)u
  2500. .        \}
  2501. .    \}
  2502. .    in +\\n(iSu
  2503. .    ti -\\n(iSu
  2504. .    nr nS \\n(nS+1
  2505. .\}
  2506. .if \\n(aC>\\n(aP \{\
  2507. .    nr oM \\n(oM+1
  2508. .    nr fC 1
  2509. .    nr aP \\n(aP+1
  2510. .    nr cF \\n(.f
  2511. .    nr cZ \\n(.s
  2512. .    as b1 \\*(fN\\*(A\\n(aP\fP\s0\\*(lp
  2513. .    aY
  2514. .\}
  2515. ..
  2516. .de Fc
  2517. .if \\n(aC==0 \{\
  2518. .    if \\n(.$>0 \{\
  2519. .        ds mN Fo
  2520. .               ds A1 \\$1
  2521. .               ds A2 \\$2
  2522. .               ds A3 \\$3
  2523. .               ds A4 \\$4
  2524. .               ds A5 \\$5
  2525. .               ds A6 \\$6
  2526. .               ds A7 \\$7
  2527. .               ds A8 \\$8
  2528. .               ds A9 \\$9
  2529. .        nr fV \\n(.$
  2530. .        fV
  2531. .    \}
  2532. .\}
  2533. .nr fC 0
  2534. .nr oM \\n(oM-1
  2535. .as b1 \|\\*(rp
  2536. .ie \\n(aC>\\n(aP \{\
  2537. .    nr aP \\n(aP+1
  2538. .    \\*(A\\n(aP
  2539. .\}
  2540. .el \{\
  2541. .    aZ
  2542. .\}
  2543. .if \\n(nS>0 \{\
  2544. .    in -\\n(iSu
  2545. .\}
  2546. .hy
  2547. ..
  2548. .de fB
  2549. .if \\n(fB==0 \{\
  2550. .    nr fB \\n(.$
  2551. .    nr Fb 0
  2552. .    ds Fb
  2553. .\}
  2554. .nr Fb \\n(Fb+1
  2555. .as Fb \&\\$1
  2556. .if \\n(Fb<\\n(fB \{\
  2557. .    as Fb \&\\*(hV
  2558. .    fB \\$2 \\$3 \\$4 \\$5 \\$6 \\$7 \\$8 \\$9
  2559. .\}
  2560. ..
  2561. .de Rs
  2562. .nr rS 1
  2563. .rC
  2564. .if \\n(nA==1 .Pp
  2565. .nr Kl 0
  2566. ..
  2567. .de Re
  2568. .rZ
  2569. .rC
  2570. .nr rS 0
  2571. ..
  2572. .de rC
  2573. .nr uK 0
  2574. .nr jK 0
  2575. .nr nK 0
  2576. .nr oK 0
  2577. .nr qK 0
  2578. .nr rK 0
  2579. .nr tK 0
  2580. .nr vK 0
  2581. .nr dK 0
  2582. .nr pK 0
  2583. .nr bK 0
  2584. .ds rS
  2585. .rm U1 U2 U3 U4 U5 U6 U7 U8
  2586. .rm uK jK nK oK rK qK tK vK dK pK bK
  2587. ..
  2588. .de rZ
  2589. .if \\n(uK \{\&\\*(U1,
  2590. .    nr aK 1
  2591. .    if (\\n(uK>1 \{\
  2592. .        aK
  2593. .    \}
  2594. .    nr Kl -\\n(uK
  2595. .\}
  2596. .if \\n(tK \{\
  2597. .    nr Kl \\n(Kl-1
  2598. .    if \\n(Kl==0 \{\
  2599. .        ie (\\n(jK==1):(\\n(bK==1) \{\&\\*q\\*(tK\\*q.
  2600. .        \}
  2601. .        el \{\&\\*(eM\\*(tK\\*(nO.
  2602. .        \}
  2603. .    \}
  2604. .    if \\n(Kl>0 \{\
  2605. .        ie (\\n(jK==1):(\\n(bK==1) \{\&\\*q\\*(tK\\*q,
  2606. .        \}
  2607. .        el \{\&\\*(eM\\*(tK\\*(nO,
  2608. .        \}
  2609. .    \}
  2610. .\}
  2611. .if \\n(bK \{\
  2612. .    nr Kl \\n(Kl-1
  2613. .    if \\n(Kl==0 \&\\*(eM\\*(bK\\*(nO.
  2614. .    if \\n(Kl>0 \&\\*(eM\\*(bK\\*(nO,
  2615. .\}
  2616. .if \\n(jK \{\
  2617. .    nr Kl \\n(Kl-1
  2618. .    if \\n(Kl==0 \&\\*(eM\\*(jK\\*(nO.
  2619. .    if \\n(Kl>0 \&\\*(eM\\*(jK\\*(nO,
  2620. .\}
  2621. .if \\n(rK \{\
  2622. .    nr Kl \\n(Kl-1
  2623. .    if \\n(Kl==0 \&\\*(rK.
  2624. .    if \\n(Kl>0 \&\\*(rK,
  2625. .\}
  2626. .if \\n(nK \{\
  2627. .    nr Kl \\n(Kl-1
  2628. .    if \\n(Kl==0 \&\\*(nK.
  2629. .    if \\n(Kl>0 \&\\*(nK,
  2630. .\}
  2631. .if \\n(vK \{\
  2632. .    nr Kl \\n(Kl-1
  2633. .    if \\n(Kl==0 \&\\*(vK.
  2634. .    if \\n(Kl>0 \&\\*(vK,
  2635. .\}
  2636. .if \\n(pK \{\
  2637. .    nr Kl \\n(Kl-1
  2638. .    if \\n(Kl==0 \&\\*(pK.
  2639. .    if \\n(Kl>0 \&\\*(pK,
  2640. .\}
  2641. .if \\n(qK \{\
  2642. .    nr Kl \\n(Kl-1
  2643. .    if \\n(Kl==0 \&\\*(qK.
  2644. .    if \\n(Kl>0 \&\\*(qK,
  2645. .\}
  2646. .if \\n(dK \{\
  2647. .    nr Kl \\n(Kl-1
  2648. .    if \\n(Kl==0 \&\\*(dK.
  2649. .    if \\n(Kl>0 \&\\*(dK,
  2650. .\}
  2651. .if \\n(oK \{\
  2652. .    nr Kl \\n(Kl-1
  2653. .    if \\n(Kl==0 \&\\*(oK.
  2654. .    if \\n(Kl>0 \&\\*(oK,
  2655. .\}
  2656. .if \\n(Kl>0 .tm unresolved reference problem
  2657. ..
  2658. .de aK
  2659. .nr aK \\n(aK+1
  2660. .ie (\\n(uK-\\n(aK)==0 \{\&and \\*(U\\n(aK,
  2661. .\}
  2662. .el \{\&\\*(U\\n(aK,
  2663. .    aK
  2664. .\}
  2665. ..
  2666. .de %A
  2667. .if \\n(aC==0 \{\
  2668. .       ie \\n(.$==0 .tm Usage: .%A Author_name (#\\n(.c)
  2669. .    el \{\
  2670. .        nr uK \\n(uK+1
  2671. .        nr Kl \\n(Kl+1
  2672. .        ds rS U\\n(uK
  2673. .        ds mN %A
  2674. .        aV \\$1 \\$2 \\$3 \\$4 \\$5 \\$6 \\$7 \\$8 \\$9
  2675. .    \}
  2676. .\}
  2677. .if \\n(aC>\\n(aP \{\
  2678. .    nr aP \\n(aP+1
  2679. .       nr cF \\n(.f
  2680. .    nr cZ \\n(.s
  2681. .       rR
  2682. .\}
  2683. ..
  2684. .de %B
  2685. .if \\n(aC==0 \{\
  2686. .       ie \\n(.$==0 .tm Usage: .%B Book Name (#\\n(.c)
  2687. .       el \{\
  2688. .        ds mN %B
  2689. .        if \\n(rS>0 \{\
  2690. .            nr bK \\n(bK+1
  2691. .            nr Kl \\n(Kl+1
  2692. .            ds rS bK
  2693. .        \}
  2694. .               ds A1 \\$1
  2695. .               ds A2 \\$2
  2696. .               ds A3 \\$3
  2697. .               ds A4 \\$4
  2698. .               ds A5 \\$5
  2699. .               ds A6 \\$6
  2700. .               ds A7 \\$7
  2701. .               ds A8 \\$8
  2702. .               ds A9 \\$9
  2703. .        nr fV \\n(.$
  2704. .        fV
  2705. .    \}
  2706. .\}
  2707. .if \\n(aC>\\n(aP \{\
  2708. .    nr aP \\n(aP+1
  2709. .       nr cF \\n(.f
  2710. .    nr cZ \\n(.s
  2711. .    ie \\n(rS==0 \{\
  2712. .        as b1 \&\\*(eM
  2713. .        nR
  2714. .    \}
  2715. .    el .rR
  2716. .\}
  2717. ..
  2718. .de %D
  2719. .if \\n(aC==0 \{\
  2720. .       ie \\n(.$==0 .tm Usage: .%D Date (#\\n(.c)
  2721. .       el \{\
  2722. .        ds mN %D
  2723. .        nr dK \\n(dK+1
  2724. .        nr Kl \\n(Kl+1
  2725. .        ds rS dK
  2726. .               ds A1 \\$1
  2727. .               ds A2 \\$2
  2728. .               ds A3 \\$3
  2729. .               ds A4 \\$4
  2730. .               ds A5 \\$5
  2731. .               ds A6 \\$6
  2732. .               ds A7 \\$7
  2733. .               ds A8 \\$8
  2734. .               ds A9 \\$9
  2735. .        nr fV \\n(.$
  2736. .        fV
  2737. .    \}
  2738. .\}
  2739. .if \\n(aC>\\n(aP \{\
  2740. .    nr aP \\n(aP+1
  2741. .       nr cF \\n(.f
  2742. .    nr cZ \\n(.s
  2743. .       rR
  2744. .\}
  2745. ..
  2746. .de %J
  2747. .if \\n(aC==0 \{\
  2748. .       ie \\n(.$==0 .tm Usage: .%J Journal Name (#\\n(.c)
  2749. .       el \{\
  2750. .        ds mN %J
  2751. .        nr jK \\n(jK+1
  2752. .        ds rS jK
  2753. .        nr Kl \\n(Kl+1
  2754. .               ds A1 \\$1
  2755. .               ds A2 \\$2
  2756. .               ds A3 \\$3
  2757. .               ds A4 \\$4
  2758. .               ds A5 \\$5
  2759. .               ds A6 \\$6
  2760. .               ds A7 \\$7
  2761. .               ds A8 \\$8
  2762. .               ds A9 \\$9
  2763. .        nr fV \\n(.$
  2764. .        fV
  2765. .    \}
  2766. .\}
  2767. .if \\n(aC>\\n(aP \{\
  2768. .    nr aP \\n(aP+1
  2769. .       nr cF \\n(.f
  2770. .    nr cZ \\n(.s
  2771. .       rR
  2772. .\}
  2773. ..
  2774. .de %N
  2775. .if \\n(aC==0 \{\
  2776. .       ie \\n(.$==0 .tm Usage: .%N issue number (#\\n(.c)
  2777. .    el \{\
  2778. .        nr nK \\n(nK+1
  2779. .        nr Kl \\n(Kl+1
  2780. .        ds rS nK
  2781. .        ds mN %N
  2782. .        aV \\$1 \\$2 \\$3 \\$4 \\$5 \\$6 \\$7 \\$8 \\$9
  2783. .    \}
  2784. .\}
  2785. .if \\n(aC>\\n(aP \{\
  2786. .    nr aP \\n(aP+1
  2787. .       nr cF \\n(.f
  2788. .    nr cZ \\n(.s
  2789. .       rR
  2790. .\}
  2791. ..
  2792. .de %O
  2793. .if \\n(aC==0 \{\
  2794. .       ie \\n(.$==0 .tm Usage: .%O optional information ... \\*(Pu (#\\n(.c)
  2795. .       el \{\
  2796. .        ds mN %O
  2797. .        nr oK \\n(oK+1
  2798. .        nr Kl \\n(Kl+1
  2799. .        ds rS oK
  2800. .               ds A1 \\$1
  2801. .               ds A2 \\$2
  2802. .               ds A3 \\$3
  2803. .               ds A4 \\$4
  2804. .               ds A5 \\$5
  2805. .               ds A6 \\$6
  2806. .               ds A7 \\$7
  2807. .               ds A8 \\$8
  2808. .               ds A9 \\$9
  2809. .        nr fV \\n(.$
  2810. .        fV
  2811. .    \}
  2812. .\}
  2813. .if \\n(aC>\\n(aP \{\
  2814. .    nr aP \\n(aP+1
  2815. .       nr cF \\n(.f
  2816. .    nr cZ \\n(.s
  2817. .       rR
  2818. .\}
  2819. ..
  2820. .de %P
  2821. .if \\n(aC==0 \{\
  2822. .       ie \\n(.$==0 .tm Usage: .%P page numbers ... \\*(Pu (#\\n(.c)
  2823. .       el \{\
  2824. .        ds mN %P
  2825. .        nr pK \\n(pK+1
  2826. .        nr Kl \\n(Kl+1
  2827. .        ds rS pK
  2828. .               ds A1 \\$1
  2829. .               ds A2 \\$2
  2830. .               ds A3 \\$3
  2831. .               ds A4 \\$4
  2832. .               ds A5 \\$5
  2833. .               ds A6 \\$6
  2834. .               ds A7 \\$7
  2835. .               ds A8 \\$8
  2836. .               ds A9 \\$9
  2837. .        nr fV \\n(.$
  2838. .        fV
  2839. .    \}
  2840. .\}
  2841. .if \\n(aC>\\n(aP \{\
  2842. .    nr aP \\n(aP+1
  2843. .       nr cF \\n(.f
  2844. .    nr cZ \\n(.s
  2845. .       rR
  2846. .\}
  2847. ..
  2848. .de %Q
  2849. .if \\n(aC==0 \{\
  2850. .       ie \\n(.$==0 .tm Usage: .%Q Corporate or Foreign Author (#\\n(.c)
  2851. .       el \{\
  2852. .        ds mN %Q
  2853. .        nr qK \\n(qK+1
  2854. .        nr Kl \\n(Kl+1
  2855. .        ds rS qK
  2856. .               ds A1 \\$1
  2857. .               ds A2 \\$2
  2858. .               ds A3 \\$3
  2859. .               ds A4 \\$4
  2860. .               ds A5 \\$5
  2861. .               ds A6 \\$6
  2862. .               ds A7 \\$7
  2863. .               ds A8 \\$8
  2864. .               ds A9 \\$9
  2865. .        nr fV \\n(.$
  2866. .        fV
  2867. .    \}
  2868. .\}
  2869. .if \\n(aC>\\n(aP \{\
  2870. .    nr aP \\n(aP+1
  2871. .       nr cF \\n(.f
  2872. .    nr cZ \\n(.s
  2873. .       rR
  2874. .\}
  2875. ..
  2876. .de %R
  2877. .if \\n(aC==0 \{\
  2878. .       ie \\n(.$==0 .tm Usage: .%R reference report (#\\n(.c)
  2879. .       el \{\
  2880. .        ds mN %R
  2881. .        nr rK \\n(rK+1
  2882. .        nr Kl \\n(Kl+1
  2883. .        ds rS rK
  2884. .               ds A1 \\$1
  2885. .               ds A2 \\$2
  2886. .               ds A3 \\$3
  2887. .               ds A4 \\$4
  2888. .               ds A5 \\$5
  2889. .               ds A6 \\$6
  2890. .               ds A7 \\$7
  2891. .               ds A8 \\$8
  2892. .               ds A9 \\$9
  2893. .        nr fV \\n(.$
  2894. .        fV
  2895. .    \}
  2896. .\}
  2897. .if \\n(aC>\\n(aP \{\
  2898. .    nr aP \\n(aP+1
  2899. .       nr cF \\n(.f
  2900. .    nr cZ \\n(.s
  2901. .       rR
  2902. .\}
  2903. ..
  2904. .de %T
  2905. .if \\n(aC==0 \{\
  2906. .       ie \\n(.$==0 .tm Usage: .%T (#\\n(.c)
  2907. .       el \{\
  2908. .        ds mN %T
  2909. .        if \\n(rS>0 \{\
  2910. .            nr tK \\n(tK+1
  2911. .            nr Kl \\n(Kl+1
  2912. .            ds rS tK
  2913. .        \}
  2914. .               ds A1 \\$1
  2915. .               ds A2 \\$2
  2916. .               ds A3 \\$3
  2917. .               ds A4 \\$4
  2918. .               ds A5 \\$5
  2919. .               ds A6 \\$6
  2920. .               ds A7 \\$7
  2921. .               ds A8 \\$8
  2922. .               ds A9 \\$9
  2923. .        nr fV \\n(.$
  2924. .        fV
  2925. .    \}
  2926. .\}
  2927. .if \\n(aC>\\n(aP \{\
  2928. .        nr aP \\n(aP+1
  2929. .        nr cF \\n(.f
  2930. .        nr cZ \\n(.s
  2931. .        ie \\n(rS==0 \{\
  2932. .            as b1 \&\\*(eM
  2933. .            nR
  2934. .        \}
  2935. .        el .rR
  2936. .\}
  2937. ..
  2938. .de %V
  2939. .if \\n(aC==0 \{\
  2940. .       ie \\n(.$==0 .tm Usage: .%V Volume , ... \\*(Pu (#\\n(.c)
  2941. .    el \{\
  2942. .        ds mN %V
  2943. .        nr vK \\n(vK+1
  2944. .        nr Kl \\n(Kl+1
  2945. .        ds rS vK
  2946. .        aV \\$1 \\$2 \\$3 \\$4 \\$5 \\$6 \\$7 \\$8 \\$9
  2947. .    \}
  2948. .\}
  2949. .if \\n(aC>\\n(aP \{\
  2950. .    nr aP \\n(aP+1
  2951. .       nr cF \\n(.f
  2952. .    nr cZ \\n(.s
  2953. .       rR
  2954. .\}
  2955. ..
  2956. .de rR
  2957. .hy 0
  2958. .nr jM \\n(C\\n(aP
  2959. .ie \\n(jM==1 \{\
  2960. .    ie "\\*(A\\n(aP"Tn" \{\
  2961. .        nN
  2962. .    \}
  2963. .    el \{\
  2964. .        if \\n(aC>8 .tm Usage: \\*(mN - maximum 8 arguments (#\\n(.c)
  2965. .        aI rR 1
  2966. .        \\*(A\\n(aP
  2967. .    \}
  2968. .\}
  2969. .el \{\
  2970. .    nr jN \\n(aP
  2971. .    ie \\n(jM==2 .as b1 \&\\*(A\\n(aP
  2972. .    el .as b1 \&\\*(A\\n(aP
  2973. .    ie \\n(aC==\\n(aP \{\
  2974. .        rD
  2975. .    \}
  2976. .    el \{\
  2977. .        nr aP \\n(aP+1
  2978. .        as b1 \&\\*(S\\n(jN
  2979. .        rR
  2980. .    \}
  2981. .\}
  2982. .rr jM jN
  2983. ..
  2984. .de rD
  2985. .as \\*(rS \\*(b1
  2986. .ds b1
  2987. .ds rS
  2988. .aY
  2989. ..
  2990. .de Hf
  2991. .Pp
  2992. File:
  2993. .Pa \\$1
  2994. .Pp
  2995. .nr cF \\n(.f
  2996. .nr cZ \\n(.s
  2997. .ie t \{\
  2998. \&\\*(lI
  2999. .br
  3000. .ta +9n 18n 27n 36n 45n 54n 63n 72n
  3001. .\}
  3002. .el \{\
  3003. .ta +8n 16n 24n 32n 40n 48n 56n 64n 72n
  3004. .\}
  3005. .nf
  3006. .so  \\$1
  3007. .fi
  3008. .ft \\n(cF
  3009. .fz \\n(cZ
  3010. .Pp
  3011. ..
  3012. .nr aN 0
  3013. .de An
  3014. .if \\n(nY==1 \{\
  3015. .    ie \\n(aN==1 \{\
  3016. .        br
  3017. .    \}
  3018. .    el \{\
  3019. .        nr aN 1
  3020. .    \}
  3021. .\}
  3022. .if \\n(aC==0 \{\
  3023. .       ie \\n(.$==0 .tm Usage: .An author_name ... \\*(Pu (#\\n(.c)
  3024. .    el \{\
  3025. .        ds mN An
  3026. .        aV \\$1 \\$2 \\$3 \\$4 \\$5 \\$6 \\$7 \\$8 \\$9
  3027. .    \}
  3028. .\}
  3029. .if \\n(aC>\\n(aP \{\
  3030. .    nr aP \\n(aP+1
  3031. .       nr cF \\n(.f
  3032. .    nr cZ \\n(.s
  3033. .       nR
  3034. .\}
  3035. ..
  3036. .de Sf
  3037. .tm .Sf defunct, use prefix or Ns
  3038. ..
  3039. .ds rV "function returns the value 0 if successful; otherwise the value -1 is returned and the global variable \\*(vAerrno\fP is set to indicate the error.
  3040. .de Rv
  3041. .ie \\n(.$==0 \{\
  3042. .tm Usage: .Rv [-std] (#\\n(.c)
  3043. .\}
  3044. .el \{\
  3045. .    ds mN Rv
  3046. .    if "\\$1"-std" \{\
  3047. .    nr cH \\*(cH
  3048. .    if (\\n(cH<2):(\\n(cH>3) .tm Usage: .Rv -std sections 2 and 3 only
  3049. .        br
  3050. \&The
  3051. .Fn \\$2
  3052. \&\\*(rV
  3053. .    \}
  3054. .\}
  3055. ..
  3056.