212 lines
7.1 KiB
Plaintext
212 lines
7.1 KiB
Plaintext
|
.\" SSC Reference card macros
|
||
|
.\"
|
||
|
.\" Copyright (C) 1996, 2012 Specialized System Consultants Inc. (SSC)
|
||
|
.\"
|
||
|
.\" These macros are free software; you can redistribute them and/or modify
|
||
|
.\" them under the terms of the GNU General Public License as published by
|
||
|
.\" the Free Software Foundation; either version 3 of the License, or
|
||
|
.\" (at your option) any later version.
|
||
|
.\"
|
||
|
.\" These macros are distributed in the hope that it will be useful,
|
||
|
.\" but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||
|
.\" MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||
|
.\" GNU General Public License for more details.
|
||
|
.\"
|
||
|
.\" You should have received a copy of the GNU General Public License
|
||
|
.\" along with this program; if not, write to the Free Software
|
||
|
.\" Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA
|
||
|
.\"
|
||
|
.\" Generic SSC "card" macros
|
||
|
.\" based on lots of other macros
|
||
|
.\" Last update: 4-25-91 ph
|
||
|
.\" attempting to get margins in the boxes Aug 3 09:43:48 PDT 1994
|
||
|
.ll 3i \" length of text line
|
||
|
.lt 3.2i \" length of title line
|
||
|
.de BT \" bottom of page trap
|
||
|
.sp |8.2i \" go to where we put footer
|
||
|
.ie \\n(CL=1 \{\
|
||
|
. nr CL 2
|
||
|
.tl ''\\*(CD\\n+(PN'' \" footer is just page number
|
||
|
. po 4i \" go to second column
|
||
|
.TP \" print header if any
|
||
|
\}
|
||
|
.el \{\
|
||
|
. nr CL 1
|
||
|
.tl ''\\*(CD\\n+(PN'' \" footer is just page number
|
||
|
. po .5i \" go to first column
|
||
|
. bp \" force a new page (which will force header)
|
||
|
. TP
|
||
|
\}
|
||
|
..
|
||
|
.de TP \" top of page
|
||
|
.\" .sp |.2i
|
||
|
.sp |0
|
||
|
.\" put page header stuff here
|
||
|
.\" for example: .tl ''WOW!''
|
||
|
.\".sp
|
||
|
..
|
||
|
.\" .wh 8.1i BT \" set bottom of column trap
|
||
|
.nf \" don't fill lines
|
||
|
.nh \" no hyphenation
|
||
|
.nr CL 1 \" start with column = 1
|
||
|
.po .5i \" offset for first column
|
||
|
.vs 9 \" line spacing
|
||
|
.ps 8 \" point size
|
||
|
.de ST \" set tabs to normal places
|
||
|
.ta .2i .78i 1.2i 1.7i \" set tabs
|
||
|
..
|
||
|
.ig
|
||
|
From: bryang@chinet.chi.il.us (Bryan Glennon)
|
||
|
Box macro. Do a .mk z where the box is to start, and a .eb
|
||
|
where it is to end. Optional argument is a title to be centered
|
||
|
within the top box line.
|
||
|
|
||
|
Usage:
|
||
|
|
||
|
.mk z
|
||
|
Text, etc to be boxed...
|
||
|
.eb "Optional title goes here"
|
||
|
|
||
|
~or~
|
||
|
|
||
|
.mk z
|
||
|
Text, etc to be boxed...
|
||
|
.eb
|
||
|
|
||
|
|
||
|
Some explanation:
|
||
|
The macro name is eb <.de eb>. First thing we do is to go up on line
|
||
|
<.sp -1> and turn off fill mode <.nf>. Now it gets interesting: the
|
||
|
.ie is the if/else construct. We check the number of arguments provided
|
||
|
to the macro <\\n(.$> and if it is greater than 0 (meaning we have a title),
|
||
|
we do the rest of the .ie line, as follows:
|
||
|
|
||
|
\h'-.5n' - move left one-half of an n
|
||
|
\L'|\\nzu-1' - draw a vertical line <\L> to the
|
||
|
absolute position (|) given by \\nzu-1,
|
||
|
which is the position set with the .mk
|
||
|
command into register z <\\nz> in base
|
||
|
units <u> minus 1.
|
||
|
\l'(\\n(.lu+1n-\w'\\$1'u/2u)\(ul' - Draw a horizontal line <\l> with length
|
||
|
equal to the current line length
|
||
|
<\\n(.l> in base units <u> plus the
|
||
|
space required for an 'n' <1n>, minus
|
||
|
the width <\w> of the title string
|
||
|
<\\$1> in base units <u> divided by 2
|
||
|
<in base units <u>>. Draw the line
|
||
|
using the underline character, <\(ul>.
|
||
|
\v'.3m'\|\\$1\|\v'-.3m' - Move down the page 3/10 of an m,
|
||
|
<\v'.3m'>, output a 1/6 of an m space
|
||
|
<\|>, output the title <\\$1>, another
|
||
|
1/6 of an m space <\|>, and then move
|
||
|
up the page 3/10 of an m <\v'-.3m'>.
|
||
|
\l'...\(ul' - Draw the second part of the line, just
|
||
|
like the corresponding left half done
|
||
|
before.
|
||
|
\L'-|\\nzu+1' - Draw a verticle line <\L> going down
|
||
|
the absolute distance <-|> from where
|
||
|
the macro was given to where the start
|
||
|
point was marked <\\nz> in base units
|
||
|
<u> plus one line <+1>
|
||
|
\l'|0u-.5n\(ul' - Draw a horizontal line to the absolute
|
||
|
position (|0) when the macro was
|
||
|
invoked, minus half an n <-.5n> using
|
||
|
the underline character <\(ul>.
|
||
|
|
||
|
The .el beings the else part, which is identical to the above, except
|
||
|
the string dosen't get printed. This makes the printing of the top
|
||
|
line much easier: just draw a line <\l> with width equal to the
|
||
|
current line plus the witdh of an n <\\n(.l+1n> using the underline
|
||
|
character <.\(ul>.
|
||
|
..
|
||
|
.de ES \" start "text in a box"
|
||
|
.mk z
|
||
|
.in +.5n
|
||
|
.ll -.5n
|
||
|
.sp 1.3
|
||
|
..
|
||
|
.de EB \" end "text in a box" -- optional box title as argument
|
||
|
.sp -.6
|
||
|
.nf
|
||
|
.in -.5n
|
||
|
.ll +.5n
|
||
|
.ie \\n(.$\
|
||
|
\L'|\\nzu'\
|
||
|
\l'(\\n(.lu-\w'\\$1'u)/2u-.33m\(ul'\
|
||
|
\v'.3m'\|\\$1\|\v'-.3m'\
|
||
|
\l'(\\n(.lu-\w'\\$1'u)/2u\(ul'\
|
||
|
\L'-|\\nzu'\
|
||
|
\l'|0u\(ul'
|
||
|
.el \h'-.5n'\L'|\\nzu-1'\l'\\n(.lu+1n\(ul'\L'-|\\nzu+1'\l'|0u-.5n\(ul'
|
||
|
.in 0
|
||
|
..
|
||
|
.de SL \" draw single line (works in non-fill mode only)
|
||
|
.sp -.8
|
||
|
.ti 0
|
||
|
\l'\\n(.lu\(ul'
|
||
|
..
|
||
|
.de Hl \" draw horizontal line
|
||
|
.br
|
||
|
.ti 0
|
||
|
\l'\\n(.lu-\\n(.iu'
|
||
|
.br
|
||
|
..
|
||
|
.de DL \" draw double line (works in non-fill mode only)
|
||
|
.sp -.8
|
||
|
.ti 0
|
||
|
\l'\\n(.lu\(ul'
|
||
|
.sp -.8
|
||
|
.ti 0
|
||
|
\l'\\n(.lu\(ul'
|
||
|
..
|
||
|
.ST
|
||
|
.nr PN 0 1 \" sets starting page number and auto-increment
|
||
|
.\" must define page header (if any) before here
|
||
|
.TP
|
||
|
.ds 3) \|\v'3p'\s+5\z\(sq\s0\v'-3p'\h'1.25p'\v'-.5p'3\v'.5p'\h'2p'
|
||
|
.\" old one .ds 2) \h'-1.5p'\v'1p'\s+4\z\(ci\s0\v'-1p'\h'3.25p'2
|
||
|
.ds 2) \|\v'-2.4p'\D'c.095id'\h'-5.15p'\v'2.4p'2\h'1.9p'
|
||
|
.ds dC \v'1p'\s+5\(bu\s0\v'-1p'\" for development commands
|
||
|
.ds tC \s+2\(dm\s0\" (for DWB) should be a triangle
|
||
|
.ds tP \s+2\(dm\s0\" (for other text processing) should be a triangle
|
||
|
.\" various trademark symbols
|
||
|
.ds Tm \v'-0.5m'\s8TM\s0\v'0.5m'
|
||
|
.ds Ts \v'-0.5m'\s4TM\s0\v'0.5m'
|
||
|
.ig ++
|
||
|
.\" mount Serifa fonts
|
||
|
.fp 5 SR
|
||
|
.fp 6 SB
|
||
|
.fp 4 Si
|
||
|
.++
|
||
|
.\" other assorted junk
|
||
|
.lg 0
|
||
|
.\" Fl requires extended version of troff
|
||
|
.de Fl \" draw fat horizontal line
|
||
|
.br
|
||
|
.ti 0
|
||
|
.ruw 1.5p
|
||
|
\l'\\n(.lu-\\n(.iu'
|
||
|
.br
|
||
|
.ruw
|
||
|
..
|
||
|
.de Bx \" box for keys in text
|
||
|
\\$3\&\|\&\c
|
||
|
\s-3\(br\|\fH\v'.18n'\\$1\v'-.18n\fP\|\(br\l'|0\(rn'\l'|0\(ul'\&\s0\|\\$2
|
||
|
..
|
||
|
.de Fn \" function name - left justified, gray background
|
||
|
.\" bold with gray for function name
|
||
|
.ns
|
||
|
.br
|
||
|
\
|
||
|
.ns
|
||
|
.br
|
||
|
\!! gsave ( ) stringwidth neg 0 rmoveto
|
||
|
\!! /Serifa-Bold findfont 8 scalefont setfont
|
||
|
\!! (\\$1) dup stringwidth pop 6 gsave dup 0 exch rlineto neg exch 0 rlineto
|
||
|
\!! 0 exch rlineto closepath .9 setgray fill grestore show
|
||
|
\!! grestore
|
||
|
.nf
|
||
|
.rs
|
||
|
..
|
||
|
.rs
|