|
|
1.1 ! root 1: .de sh *** section heading ! 2: .if \\n(.$ .@d \\$1 ! 3: .ds @@ #\\n(#0 ! 4: .nr \\*(@@ +1 ! 5: .ds @n \\n(#1 ! 6: .if \\n(#2 .as @n .\\n(#2 ! 7: .if \\n(#3 .as @n .\\n(#3 ! 8: .if \\n(#4 .as @n .\\n(#4 ! 9: .if \\n(#5 .as @n .\\n(#5 ! 10: .if \\n(#6 .as @n .\\n(#6 ! 11: .if !\\n(#0 .in 0 ! 12: .if \\n(#0 .@p ! 13: .. ! 14: .de @d change section depth ! 15: .nr #0 \\$1 ! 16: .if \\n(#0 .if !\\n(#1 .nr #1 0 ! 17: .if !\\n(#0 .nr #1 0 ! 18: .if \\n(#0-1 .if !\\n(#2 .nr #2 0 ! 19: .if !\\n(#0-1 .nr #2 0 ! 20: .if \\n(#0-2 .if !\\n(#3 .nr #3 0 ! 21: .if !\\n(#0-2 .nr #3 0 ! 22: .if \\n(#0-3 .if !\\n(#4 .nr #4 0 ! 23: .if !\\n(#0-3 .nr #4 0 ! 24: .if \\n(#0-4 .if !\\n(#5 .nr #5 0 ! 25: .if !\\n(#0-4 .nr #5 0 ! 26: .if \\n(#0-5 .if !\\n(#6 .nr #6 0 ! 27: .if !\\n(#0-5 .nr #6 0 ! 28: .. ! 29: .de @p print section heading ! 30: .in \\n(#i*\\n(#0u ! 31: .sp ! 32: .ti -\\n(#i ! 33: \\*(@n\&.\ \ \c ! 34: .. ! 35: .de up *** move up heading number (2.1.1 -> 2.2) ! 36: .sh -1 ! 37: .. ! 38: .de ux *** heading up, no increment (2.1.1 -> 2.1) ! 39: .nr _9 \\n(#0-1 ! 40: .if \\n(.$ .nr _9 +1 ! 41: .if \\n(.$ .nr _9 \\$1 ! 42: .@d \\n(_9 ! 43: .in \\n(#i*\\n(#0u ! 44: .. ! 45: .de dn *** move down heading number (2.1.1 -> 2.1.1.1) ! 46: .sh +1 ! 47: .. ! 48: .de gs *** get section number ! 49: .ds ,\\$1 \\*(@n ! 50: .. ! 51: .nr #i 4 ! 52: .de PS *** space after a section title ! 53: .sp 1 ! 54: .. ! 55: .po 5 ! 56: .de @h ! 57: 'sp 3 ! 58: 'tl \\*(HE ! 59: 'sp 2 ! 60: .. ! 61: .de @f ! 62: 'bp ! 63: .. ! 64: .wh 0 @h ! 65: .wh -6 @f
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.