| 1 | .\" SSC Reference card macros
|
|---|
| 2 | .\"
|
|---|
| 3 | .\" Copyright (C) 1996, Specialized System Consultants Inc. (SSC)
|
|---|
| 4 | .\"
|
|---|
| 5 | .\" These macros are free software; you can redistribute them and/or modify
|
|---|
| 6 | .\" them under the terms of the GNU General Public License as published by
|
|---|
| 7 | .\" the Free Software Foundation; either version 2 of the License, or
|
|---|
| 8 | .\" (at your option) any later version.
|
|---|
| 9 | .\"
|
|---|
| 10 | .\" These macros are distributed in the hope that it will be useful,
|
|---|
| 11 | .\" but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|---|
| 12 | .\" MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|---|
| 13 | .\" GNU General Public License for more details.
|
|---|
| 14 | .\"
|
|---|
| 15 | .\" You should have received a copy of the GNU General Public License
|
|---|
| 16 | .\" along with this program; if not, write to the Free Software
|
|---|
| 17 | .\" Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA
|
|---|
| 18 | .\"
|
|---|
| 19 | .\" Generic SSC "card" macros
|
|---|
| 20 | .\" based on lots of other macros
|
|---|
| 21 | .\" Last update: 4-25-91 ph
|
|---|
| 22 | .\" attempting to get margins in the boxes Aug 3 09:43:48 PDT 1994
|
|---|
| 23 | .ll 3i \" length of text line
|
|---|
| 24 | .lt 3.2i \" length of title line
|
|---|
| 25 | .de BT \" bottom of page trap
|
|---|
| 26 | .sp |8.2i \" go to where we put footer
|
|---|
| 27 | .ie \\n(CL=1 \{\
|
|---|
| 28 | . nr CL 2
|
|---|
| 29 | .tl ''\\*(CD\\n+(PN'' \" footer is just page number
|
|---|
| 30 | . po 4i \" go to second column
|
|---|
| 31 | .TP \" print header if any
|
|---|
| 32 | \}
|
|---|
| 33 | .el \{\
|
|---|
| 34 | . nr CL 1
|
|---|
| 35 | .tl ''\\*(CD\\n+(PN'' \" footer is just page number
|
|---|
| 36 | . po .5i \" go to first column
|
|---|
| 37 | . bp \" force a new page (which will force header)
|
|---|
| 38 | . TP
|
|---|
| 39 | \}
|
|---|
| 40 | ..
|
|---|
| 41 | .de TP \" top of page
|
|---|
| 42 | .\" .sp |.2i
|
|---|
| 43 | .sp |0
|
|---|
| 44 | .\" put page header stuff here
|
|---|
| 45 | .\" for example: .tl ''WOW!''
|
|---|
| 46 | .\".sp
|
|---|
| 47 | ..
|
|---|
| 48 | .\" .wh 8.1i BT \" set bottom of column trap
|
|---|
| 49 | .nf \" don't fill lines
|
|---|
| 50 | .nh \" no hyphenation
|
|---|
| 51 | .nr CL 1 \" start with column = 1
|
|---|
| 52 | .po .5i \" offset for first column
|
|---|
| 53 | .vs 9 \" line spacing
|
|---|
| 54 | .ps 8 \" point size
|
|---|
| 55 | .de ST \" set tabs to normal places
|
|---|
| 56 | .ta .2i .78i 1.2i 1.7i \" set tabs
|
|---|
| 57 | ..
|
|---|
| 58 | .ig
|
|---|
| 59 | From: bryang@chinet.chi.il.us (Bryan Glennon)
|
|---|
| 60 | Box macro. Do a .mk z where the box is to start, and a .eb
|
|---|
| 61 | where it is to end. Optional argument is a title to be centered
|
|---|
| 62 | within the top box line.
|
|---|
| 63 |
|
|---|
| 64 | Usage:
|
|---|
| 65 |
|
|---|
| 66 | .mk z
|
|---|
| 67 | Text, etc to be boxed...
|
|---|
| 68 | .eb "Optional title goes here"
|
|---|
| 69 |
|
|---|
| 70 | ~or~
|
|---|
| 71 |
|
|---|
| 72 | .mk z
|
|---|
| 73 | Text, etc to be boxed...
|
|---|
| 74 | .eb
|
|---|
| 75 |
|
|---|
| 76 |
|
|---|
| 77 | Some explanation:
|
|---|
| 78 | The macro name is eb <.de eb>. First thing we do is to go up on line
|
|---|
| 79 | <.sp -1> and turn off fill mode <.nf>. Now it gets interesting: the
|
|---|
| 80 | .ie is the if/else construct. We check the number of arguments provided
|
|---|
| 81 | to the macro <\\n(.$> and if it is greater than 0 (meaning we have a title),
|
|---|
| 82 | we do the rest of the .ie line, as follows:
|
|---|
| 83 |
|
|---|
| 84 | \h'-.5n' - move left one-half of an n
|
|---|
| 85 | \L'|\\nzu-1' - draw a vertical line <\L> to the
|
|---|
| 86 | absolute position (|) given by \\nzu-1,
|
|---|
| 87 | which is the position set with the .mk
|
|---|
| 88 | command into register z <\\nz> in base
|
|---|
| 89 | units <u> minus 1.
|
|---|
| 90 | \l'(\\n(.lu+1n-\w'\\$1'u/2u)\(ul' - Draw a horizontal line <\l> with length
|
|---|
| 91 | equal to the current line length
|
|---|
| 92 | <\\n(.l> in base units <u> plus the
|
|---|
| 93 | space required for an 'n' <1n>, minus
|
|---|
| 94 | the width <\w> of the title string
|
|---|
| 95 | <\\$1> in base units <u> divided by 2
|
|---|
| 96 | <in base units <u>>. Draw the line
|
|---|
| 97 | using the underline character, <\(ul>.
|
|---|
| 98 | \v'.3m'\|\\$1\|\v'-.3m' - Move down the page 3/10 of an m,
|
|---|
| 99 | <\v'.3m'>, output a 1/6 of an m space
|
|---|
| 100 | <\|>, output the title <\\$1>, another
|
|---|
| 101 | 1/6 of an m space <\|>, and then move
|
|---|
| 102 | up the page 3/10 of an m <\v'-.3m'>.
|
|---|
| 103 | \l'...\(ul' - Draw the second part of the line, just
|
|---|
| 104 | like the corresponding left half done
|
|---|
| 105 | before.
|
|---|
| 106 | \L'-|\\nzu+1' - Draw a verticle line <\L> going down
|
|---|
| 107 | the absolute distance <-|> from where
|
|---|
| 108 | the macro was given to where the start
|
|---|
| 109 | point was marked <\\nz> in base units
|
|---|
| 110 | <u> plus one line <+1>
|
|---|
| 111 | \l'|0u-.5n\(ul' - Draw a horizontal line to the absolute
|
|---|
| 112 | position (|0) when the macro was
|
|---|
| 113 | invoked, minus half an n <-.5n> using
|
|---|
| 114 | the underline character <\(ul>.
|
|---|
| 115 |
|
|---|
| 116 | The .el beings the else part, which is identical to the above, except
|
|---|
| 117 | the string dosen't get printed. This makes the printing of the top
|
|---|
| 118 | line much easier: just draw a line <\l> with width equal to the
|
|---|
| 119 | current line plus the witdh of an n <\\n(.l+1n> using the underline
|
|---|
| 120 | character <.\(ul>.
|
|---|
| 121 | ..
|
|---|
| 122 | .de ES \" start "text in a box"
|
|---|
| 123 | .mk z
|
|---|
| 124 | .in +.5n
|
|---|
| 125 | .ll -.5n
|
|---|
| 126 | .sp 1.3
|
|---|
| 127 | ..
|
|---|
| 128 | .de EB \" end "text in a box" -- optional box title as argument
|
|---|
| 129 | .sp -.6
|
|---|
| 130 | .nf
|
|---|
| 131 | .in -.5n
|
|---|
| 132 | .ll +.5n
|
|---|
| 133 | .ie \\n(.$\
|
|---|
| 134 | \L'|\\nzu'\
|
|---|
| 135 | \l'(\\n(.lu-\w'\\$1'u)/2u-.33m\(ul'\
|
|---|
| 136 | \v'.3m'\|\\$1\|\v'-.3m'\
|
|---|
| 137 | \l'(\\n(.lu-\w'\\$1'u)/2u\(ul'\
|
|---|
| 138 | \L'-|\\nzu'\
|
|---|
| 139 | \l'|0u\(ul'
|
|---|
| 140 | .el \h'-.5n'\L'|\\nzu-1'\l'\\n(.lu+1n\(ul'\L'-|\\nzu+1'\l'|0u-.5n\(ul'
|
|---|
| 141 | .in 0
|
|---|
| 142 | ..
|
|---|
| 143 | .de SL \" draw single line (works in non-fill mode only)
|
|---|
| 144 | .sp -.8
|
|---|
| 145 | .ti 0
|
|---|
| 146 | \l'\\n(.lu\(ul'
|
|---|
| 147 | ..
|
|---|
| 148 | .de Hl \" draw horizontal line
|
|---|
| 149 | .br
|
|---|
| 150 | .ti 0
|
|---|
| 151 | \l'\\n(.lu-\\n(.iu'
|
|---|
| 152 | .br
|
|---|
| 153 | ..
|
|---|
| 154 | .de DL \" draw double line (works in non-fill mode only)
|
|---|
| 155 | .sp -.8
|
|---|
| 156 | .ti 0
|
|---|
| 157 | \l'\\n(.lu\(ul'
|
|---|
| 158 | .sp -.8
|
|---|
| 159 | .ti 0
|
|---|
| 160 | \l'\\n(.lu\(ul'
|
|---|
| 161 | ..
|
|---|
| 162 | .ST
|
|---|
| 163 | .nr PN 0 1 \" sets starting page number and auto-increment
|
|---|
| 164 | .\" must define page header (if any) before here
|
|---|
| 165 | .TP
|
|---|
| 166 | .ds 3) \|\v'3p'\s+5\z\(sq\s0\v'-3p'\h'1.25p'\v'-.5p'3\v'.5p'\h'2p'
|
|---|
| 167 | .\" old one .ds 2) \h'-1.5p'\v'1p'\s+4\z\(ci\s0\v'-1p'\h'3.25p'2
|
|---|
| 168 | .ds 2) \|\v'-2.4p'\D'c.095id'\h'-5.15p'\v'2.4p'2\h'1.9p'
|
|---|
| 169 | .ds dC \v'1p'\s+5\(bu\s0\v'-1p'\" for development commands
|
|---|
| 170 | .ds tC \s+2\(dm\s0\" (for DWB) should be a triangle
|
|---|
| 171 | .ds tP \s+2\(dm\s0\" (for other text processing) should be a triangle
|
|---|
| 172 | .\" various trademark symbols
|
|---|
| 173 | .ds Tm \v'-0.5m'\s8TM\s0\v'0.5m'
|
|---|
| 174 | .ds Ts \v'-0.5m'\s4TM\s0\v'0.5m'
|
|---|
| 175 | .ig ++
|
|---|
| 176 | .\" mount Serifa fonts
|
|---|
| 177 | .fp 5 SR
|
|---|
| 178 | .fp 6 SB
|
|---|
| 179 | .fp 4 Si
|
|---|
| 180 | .++
|
|---|
| 181 | .\" other assorted junk
|
|---|
| 182 | .lg 0
|
|---|
| 183 | .\" Fl requires extended version of troff
|
|---|
| 184 | .de Fl \" draw fat horizontal line
|
|---|
| 185 | .br
|
|---|
| 186 | .ti 0
|
|---|
| 187 | .ruw 1.5p
|
|---|
| 188 | \l'\\n(.lu-\\n(.iu'
|
|---|
| 189 | .br
|
|---|
| 190 | .ruw
|
|---|
| 191 | ..
|
|---|
| 192 | .de Bx \" box for keys in text
|
|---|
| 193 | \\$3\&\|\&\c
|
|---|
| 194 | \s-3\(br\|\fH\v'.18n'\\$1\v'-.18n\fP\|\(br\l'|0\(rn'\l'|0\(ul'\&\s0\|\\$2
|
|---|
| 195 | ..
|
|---|
| 196 | .de Fn \" function name - left justified, gray background
|
|---|
| 197 | .\" bold with gray for function name
|
|---|
| 198 | .ns
|
|---|
| 199 | .br
|
|---|
| 200 | \
|
|---|
| 201 | .ns
|
|---|
| 202 | .br
|
|---|
| 203 | \!! gsave ( ) stringwidth neg 0 rmoveto
|
|---|
| 204 | \!! /Serifa-Bold findfont 8 scalefont setfont
|
|---|
| 205 | \!! (\\$1) dup stringwidth pop 6 gsave dup 0 exch rlineto neg exch 0 rlineto
|
|---|
| 206 | \!! 0 exch rlineto closepath .9 setgray fill grestore show
|
|---|
| 207 | \!! grestore
|
|---|
| 208 | .nf
|
|---|
| 209 | .rs
|
|---|
| 210 | ..
|
|---|
| 211 | .rs
|
|---|