/contrib/groff/tmac/an-old.tmac
Unknown | 650 lines | 650 code | 0 blank | 0 comment | 0 complexity | 851c5abcf832e98948b47c136eb08bce MD5 | raw file
1.\" an-old.tmac 2.\" 3.\" Copyright (C) 1989, 1990, 1991, 1992, 2001, 2002, 2003, 2004, 2005 4.\" Free Software Foundation, Inc. 5.\" Written by James Clark (jjc@jclark.com) 6.\" 7.\" This file is part of groff. 8.\" 9.\" groff is free software; you can redistribute it and/or modify it under 10.\" the terms of the GNU General Public License as published by the Free 11.\" Software Foundation; either version 2, or (at your option) any later 12.\" version. 13.\" 14.\" groff is distributed in the hope that it will be useful, but WITHOUT ANY 15.\" WARRANTY; without even the implied warranty of MERCHANTABILITY or 16.\" FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License 17.\" for more details. 18.\" 19.\" You should have received a copy of the GNU General Public License along 20.\" with groff; see the file COPYING. If not, write to the Free Software 21.\" Foundation, 51 Franklin St - Fifth Floor, Boston, MA 02110-1301, USA. 22.\" 23.\" -rcR=1 => Create a single, very long page instead of multiple pages. 24.\" Useful for online display. Default in nroff mode. 25.\" Desactivate with -rcR=0. 26.\" -rC1 => Number pages continuously, rather than start each at 1. 27.\" -rD1 => Double-sided printing, ie different odd and even page footers. 28.\" -rPnnn => Number first page nnn. 29.\" -rSxx => Use size `xx'pt (either 10, 11, or 12) for document rather 30.\" than the default size of 10pt. 31.\" -rXnnn => Number pages after nnn as nnna, nnnb, nnnc, ... 32.\" 33.\" The file man.local is loaded at the end. Put local additions there. 34.\" If you need to add things to TH, use `.am1 TH'. 35.\" 36. 37.if !\n(.g .ab These man macros work only with groff. 38. 39.do if d RI .nx 40. 41.do mso devtag.tmac 42. 43.nr _C \n(.C 44.cp 0 45. 46.if (\n[.x]\n[.y] < 118) \ 47. ab You need GNU troff version 1.18 or higher to run this version of man! 48. 49.if !r D .nr D 0 50.if !r C .nr C 0 51.if !r S .nr S 10 52.\" we must use consecutive page numbers when using postscript to generate 53.\" html images, and we must not reset the page number at the beginning 54.\" (the `ps4html' register is automatically added to the command line by 55.\" the pre-html preprocessor) 56.if !r ps4html \ 57. if r P .pn 0\n[P] 58.if !r cR \{\ 59. ie n .nr cR 1 60. el .nr cR 0 61.\} 62. 63.nr need_eo_h 0 64. 65.\" set up the line length... 66.\" giving precedence to any prior assignment to the \n[LL] register. 67.if !r LL \{\ 68. 69. \" but if that isn't predefined... 70. \" then try to respect any prior `.ll' request. 71. nr LL \n[.l] 72. 73. \" For troff, this is sufficient to give us a default line length of 74. \" 6.5i, but for nroff, we prefer a default of 78n to nroff's default 75. \" 65n. This has the unfortunate side effect that we will override a 76. \" user's `.ll 65n' request, with our preferred 78n default; we can't 77. \" possibly know that the 65n came from a `.ll' request, and MUST 78. \" assume that it was set by nroff, as its built-in default! If the 79. \" user wants to force this setting, then he MUST use the `-rLL=65n' 80. \" option, or an equivalent `.nr LL 65n' request. 81. if n \ 82. if (\n[LL] = 65n) \ 83. nr LL 78n 84.\} 85. 86.if !r LT \ 87. nr LT \n[LL] 88. 89.nr FT -.5i 90. 91.\" Default heading font 92.ds HF B 93. 94.nr an-first 1 95. 96.nr an-html 0 97.if '\*[.T]'html' .nr an-html 1 98.if \n[an-html] .nr C 1 99.if r ps4html .nr C 1 100. 101.\" we redefine .ne to avoid page breaks if cR is set; instead, the page 102.\" length is increased to the necessary amount (this is needed for tables) 103.\" 104.\" similarly, we redefine .bp if cR is set, adjusting the page length to 105.\" the current position so that no empty lines are inserted 106.if \n[cR] \{\ 107. de1 ne 108. ie \\n[.$] \ 109. nr an-ne (v;\\$*) 110. el \ 111. nr an-ne 1v 112. if (\\n[an-ne] >= \\n[.t]) \ 113. pl +(\\n[an-ne]u - \\n[.t]u + 1v) 114. . 115. 116. rn bp an-bp 117. de1 bp 118. br 119. pl \\n[nl]u 120. an-bp \\$* 121. . 122.\} 123. 124.de set-an-margin 125. nr an-margin \\n[IN] 126.. 127. 128.\" .TH title section extra1 extra2 extra3 129.de1 TH 130. if \\n[an-html] \{\ 131. DEVTAG-TL 132\\$1 133. DEVTAG-EO-TL 134. \} 135. 136. de an-init \" We have to do it like this to get multiple man pages right. 137. ds an-title "\\$1 138. ds an-section "\\$2 139. ds an-extra1 "\\$3 140. ie (\\n[.$] > 3) .ds an-extra2 "\\$4 141. el .ds an-extra2 \"Sun Release 4.0 142. ie (\\n[.$] > 4) .ds an-extra3 "\\$5 143. el .ds an-extra3 \"System Programmer's Manual 144. ds an-init 145\\.. 146. 147. DT 148. 149. nr PS 10z \" default point size 150. nr PS-SS 10z 151. nr PS-SH 10.95z 152. nr VS 12p 153. 154. \" use sizes similar to LaTeX 155. if t \{\ 156. ie (\\n[S] == 11) \{\ 157. nr PS 10.95z 158. nr PS-SS 10.95z 159. nr PS-SH 12z 160. nr VS 13.6p 161. \} 162. el \{\ 163. if (\\n[S] == 12) \{\ 164. nr PS 12z 165. nr PS-SS 12z 166. nr PS-SH 14.4z 167. nr VS 14.5p 168. \} 169. \} 170. \} 171. 172. ps \\n[PS]u 173. vs \\n[VS]u 174. ll \\n[LL]u 175. 176.\" We must select an integer indentation value for nroff; 177.\" see comment in an-do-tag. 178. if !r IN \{\ 179. ie t .nr IN 7.2n 180. el .nr IN 7n 181. \} 182. PD 183. if !r SN \ 184. nr SN 3n \" the indentation of sub-sub-headings relative to sub-headings 185. nr an-level 1 186. set-an-margin 187. nr an-prevailing-indent \\n[IN] 188. nr an-tag-sep 1n 189. 190. nr an-no-space-flag 0 191. nr an-break-flag 0 192. nr an-div? 0 193. 194. ie \\n[cR] \ 195. an-header 196. el \{\ 197. wh 0 an-header 198. wh -1i an-footer 199. wh \\n[FT]u an-p-footer 200. 201. if (\\n[nl] > 0) \{\ 202. ie \\n[C] .bp (\\n[%] + 1) 203. el .bp 1 204. \} 205. \} 206.. 207. 208.\" BSD compatibility macros: .AT and .UC 209. 210.de1 AT 211. ds an-extra2 "7th Edition 212. if "\\$1"3" .ds an-extra2 "7th Edition 213. if "\\$1"4" .ds an-extra2 "System III 214. if "\\$1"5" \{\ 215. ie "\\$2"" .ds an-extra2 "System V 216. el .ds an-extra2 "System V Release \\$2 217. \} 218.. 219. 220.de1 UC 221. ds an-extra2 "3rd Berkeley Distribution 222. if "\\$1"3" .ds an-extra2 "3rd Berkeley Distribution 223. if "\\$1"4" .ds an-extra2 "4th Berkeley Distribution 224. if "\\$1"5" .ds an-extra2 "4.2 Berkeley Distribution 225. if "\\$1"6" .ds an-extra2 "4.3 Berkeley Distribution 226. if "\\$1"7" .ds an-extra2 "4.4 Berkeley Distribution 227.. 228. 229.de1 DT 230. ta T .5i \" This sets tabs every .5 inches 231.. 232. 233.de1 PD 234. ie \\n[.$] .nr PD (v;\\$1) 235. el .nr PD (.4v >? \n[.V]) 236.. 237. 238.\" Redefine these to customize the header & footer 239. 240.de1 PT 241. tl '\\*[an-title](\\*[an-section])'\\*[an-extra3]'\\*[an-title](\\*[an-section])' 242.. 243. 244.de1 BT 245. if r ps4html \ 246. return 247. ie \\n[D] \{\ 248. if o .tl '\\*[an-extra2]'\\*[an-extra1]'\\*[an-page-string]' 249. if e .tl '\\*[an-page-string]'\\*[an-extra1]'\\*[an-extra2]' 250. \} 251. el \ 252. tl '\\*[an-extra2]'\\*[an-extra1]'\\*[an-page-string]' 253.. 254. 255.de1 an-header 256. an-init 257. if \\n[cR] \{\ 258. ie \\n[an-first] \ 259. nr an-first 0 260. el \ 261. sp .5i 262. \} 263. ev 1 264. ps \\n[PS]u 265. vs \\n[VS]u 266. lt \\n[LT]u 267. ie \\n[an-html] \ 268. tl '''' 269. el \{\ 270. if !\\n[cR] \ 271. sp .5i 272. PT 273. ie !\\n[cR] \ 274. sp |1i 275. el \ 276. sp .5i 277. \} 278. ev 279. ns 280.. 281. 282.de1 an-footer 283' bp 284.. 285. 286.af an-page-letter a 287. 288.de1 an-p-footer 289. ev 1 290. ps \\n[PS]u 291. vs \\n[VS]u 292. lt \\n[LT]u 293. ie \\n[an-html] \{\ 294. ds an-page-string 295. ds an-extra1 296. ds an-extra2 297. \} 298. el \{\ 299. ie r X \{\ 300. if (\\n[%] > \\n[X]) \{\ 301. nr an-page-letter (\\n[%] - \\n[X]) 302. ds an-page-string \\n[X]\\n[an-page-letter] 303. \} 304. \} 305. el \{\ 306. ie \\n[cR] \ 307. ds an-page-string "\\*[an-title](\\*[an-section]) 308. el \ 309. ds an-page-string \\n[%] 310. \} 311. \} 312. BT 313. ev 314.. 315. 316.de1 an-end 317. nr % 1 318. pl +4v 319. fl 320. sp 3 321. an-p-footer 322. pl \\n[nl]u 323.. 324. 325.if \n[cR] .em an-end 326. 327.de1 SH 328. sp \\n[PD]u 329. nr an-level 1 330. set-an-margin 331. nr an-prevailing-indent \\n[IN] 332. fi 333. in \\n[an-margin]u 334. ti 0 335. nr need_eo_h 1 336. DEVTAG-NH \\n[an-level] 337. it 1 an-trap 338. nr an-no-space-flag 1 339. nr an-break-flag 1 340. ps \\n[PS-SH]u 341. ft \\*[HF] 342. ne (2v + 1u) 343. if \\n[.$] \&\\$* 344.. 345. 346.de1 SS 347. sp \\n[PD]u 348. nr an-level 1 349. set-an-margin 350. nr an-prevailing-indent \\n[IN] 351. fi 352. in \\n[IN]u 353. ti \\n[SN]u 354. it 1 an-trap 355. nr an-no-space-flag 1 356. nr an-break-flag 1 357. ps \\n[PS-SS]u 358. ft \\*[HF] 359. ne (2v + 1u) 360. if \\n[.$] \&\\$* 361.. 362. 363.de1 B 364. it 1 an-trap 365. ft B 366. if \\n[.$] \&\\$* 367.. 368. 369.de1 I 370. it 1 an-trap 371. ft I 372. if \\n[.$] \,\\$*\/ 373.. 374. 375.de1 SM 376. it 1 an-trap 377. ps -1 378. if \\n[.$] \&\\$* 379.. 380. 381.de1 SB 382. it 1 an-trap 383. ps -1 384. ft B 385. if \\n[.$] \&\\$* 386.. 387. 388.de1 TP 389. sp \\n[PD]u 390. if \\n[.$] .nr an-prevailing-indent (n;\\$1) 391. it 1 an-trap 392. in 0 393. ll -\\n[an-margin]u 394. if !\\n[an-div?] .di an-div 395. nr an-div? 1 396.. 397. 398.de1 an-trap 399. if \\n[need_eo_h]>0 .DEVTAG-EO-H 400. nr need_eo_h 0 401. ft R 402. ps \\n[PS]u 403. vs \\n[VS]u 404. if \\n[an-break-flag] \{\ 405. br 406. nr an-break-flag 0 407. \} 408. if \\n[an-no-space-flag] \{\ 409. ns 410. nr an-no-space-flag 0 411. \} 412. if \\n[an-div?] .an-do-tag 413.. 414. 415.de an-do-tag 416. br 417. di 418. nr an-div? 0 419. ll 420. ie (\\n[dl] + \\n[an-tag-sep] > \\n[an-prevailing-indent]) \{\ 421. in \\n[an-margin]u 422. ne (2v + 1u) 423. an-div 424. in (\\n[an-margin]u + \\n[an-prevailing-indent]u) 425. \} 426. el \{\ 427. \" In nroff mode, if the indentation value is not an integer multiple 428. \" of the character cell, it is possible that the following combination 429. \" of .in and .ti yields a different result as the .in request in 430. \" the .ie part above. 431. in (\\n[an-margin]u + \\n[an-prevailing-indent]u) 432. ti -\\n[an-prevailing-indent]u 433. chop an-div 434. ne (1v + 1u) 435. DEVTAG-COL 1 436\\*[an-div]\\h'|\\n[an-prevailing-indent]u'\c 437. DEVTAG-COL-NEXT 2 438. \} 439.. 440. 441.de1 LP 442. sp \\n[PD]u 443. ps \\n[PS]u 444. vs \\n[VS]u 445. ft R 446. in \\n[an-margin]u 447. nr an-prevailing-indent \\n[IN] 448.. 449. 450.als PP LP 451.als P LP 452. 453.de1 IP 454. ie !\\n[.$] \{\ 455. ps \\n[PS]u 456. vs \\n[VS]u 457. ft R 458. sp \\n[PD]u 459. ne (1v + 1u) 460. in (\\n[an-margin]u + \\n[an-prevailing-indent]u) 461. \} 462. el \{\ 463. ie (\\n[.$] - 1) .TP "\\$2" 464. el .TP 465\&\\$1 466. \} 467.. 468. 469.de1 HP 470. ps \\n[PS]u 471. vs \\n[VS]u 472. ft R 473. sp \\n[PD]u 474. ne (1v + 1u) 475. if \\n[.$] .nr an-prevailing-indent (n;\\$1) 476. in (\\n[an-margin]u + \\n[an-prevailing-indent]u) 477. ti \\n[an-margin]u 478.. 479. 480.ds an-empty \" this is referenced to avoid looping on eg .RB ( \\ ) 481. 482.de1 RI 483. if \\n[.$] \{\ 484. ds an-result \&\f[R]\\$1 485. shift 486. while (\\n[.$] >= 2) \{\ 487. as an-result \,\f[I]\\$1\f[R]\/\\$2\\*[an-empty] 488. shift 2 489. \} 490. if \\n[.$] .as an-result \,\f[I]\\$1 491\\*[an-result] 492. ft R 493. \} 494.. 495. 496.de1 IR 497. if \\n[.$] \{\ 498. ds an-result \&\f[I]\\$1\f[R] 499. shift 500. while (\\n[.$] >= 2) \{\ 501. as an-result \/\\$1\f[I]\,\\$2\f[R] 502. shift 2 503. \} 504. if \\n[.$] .as an-result \/\\$1 505\\*[an-result] 506. ft R 507. \} 508.. 509. 510.de1 IB 511. if \\n[.$] \{\ 512. ds an-result \&\f[I]\\$1 513. shift 514. while (\\n[.$] >= 2) \{\ 515. as an-result \/\f[B]\\$1\f[I]\,\\$2\\*[an-empty] 516. shift 2 517. \} 518. if \\n[.$] .as an-result \/\f[B]\\$1 519\\*[an-result] 520. ft R 521. \} 522.. 523. 524.de1 BI 525. if \\n[.$] \{\ 526. ds an-result \&\f[B]\\$1 527. shift 528. while (\\n[.$] >= 2) \{\ 529. as an-result \,\f[I]\\$1\f[B]\/\\$2\\*[an-empty] 530. shift 2 531. \} 532. if \\n[.$] .as an-result \,\f[I]\\$1 533\\*[an-result] 534. ft R 535. \} 536.. 537. 538.de1 RB 539. ds an-result \& 540. while (\\n[.$] >= 2) \{\ 541. as an-result \f[R]\\$1\f[B]\\$2\\*[an-empty] 542. shift 2 543. \} 544. if \\n[.$] .as an-result \f[R]\\$1 545\\*[an-result] 546. ft R 547.. 548. 549.de1 BR 550. ds an-result \& 551. while (\\n[.$] >= 2) \{\ 552. as an-result \f[B]\\$1\f[R]\\$2\\*[an-empty] 553. shift 2 554. \} 555. if \\n[.$] .as an-result \f[B]\\$1 556\\*[an-result] 557. ft R 558.. 559. 560.de1 RS 561. nr an-saved-margin\\n[an-level] \\n[an-margin] 562. nr an-saved-prevailing-indent\\n[an-level] \\n[an-prevailing-indent] 563. ie \\n[.$] .nr an-margin +(n;\\$1) 564. el .nr an-margin +\\n[an-prevailing-indent] 565. in \\n[an-margin]u 566. nr an-prevailing-indent \\n[IN] 567. nr an-level +1 568.. 569. 570.de1 RE 571. ie \\n[.$] .nr an-level ((;\\$1) <? \\n[an-level]) 572. el .nr an-level -1 573. nr an-level (1 >? \\n[an-level]) 574. nr an-margin \\n[an-saved-margin\\n[an-level]] 575. nr an-prevailing-indent \\n[an-saved-prevailing-indent\\n[an-level]] 576. in \\n[an-margin]u 577.. 578. 579.\" table support 580. 581.de1 TS 582. sp \\n[PD]u 583. HTML-IMAGE 584.. 585. 586.de1 T& 587.. 588. 589.de1 TE 590. HTML-IMAGE-END 591.. 592. 593.\" dummy equation delimiters 594.de1 EQ 595. HTML-IMAGE 596.. 597.de1 EN 598. HTML-IMAGE-END 599.. 600. 601.de1 R 602\c 603. ie \\n[.$] \{\ 604. tm `R' is a string (producing the registered sign), not a macro. 605. nop \\$* 606. \} 607. el \{\ 608. ie c\[rg] \ 609. nop \[rg]\c 610. el \ 611. nop (Reg.)\c 612. \} 613.. 614. 615.\" these strings must work in compatibility mode also 616. 617.ds S \s'\\n(PSu' 618.ie c\[tm] .ds Tm \(tm 619.el .ds Tm (TM) 620.ds lq \(lq 621.ds rq \(rq 622. 623.if !\n[an-html] \{\ 624. if !rHY \{\ 625. ie \n[cR] \ 626. nr HY 12 627. el \ 628. nr HY 14 629. \} 630. hy \n[HY] 631.\} 632. 633.\" For UTF-8, map some characters conservatively for the sake 634.\" of easy cut and paste. 635. 636.if '\*[.T]'utf8' \{\ 637. rchar \- - ' ` 638. 639. char \- \N'45' 640. char - \N'45' 641. char ' \N'39' 642. char ` \N'96' 643.\} 644. 645.\" Load local modifications. 646.mso man.local 647. 648.cp \n[_C] 649. 650.\" end of an-old.tmac