Manual pages › BSD versions of commands (1B)
eqn(1B)
typeset mathematics
From the original Amiga UNIX 2.1 manual. Some things it mentions may not be in this release.
NAME
eqn, neqn, checkeq - typeset mathematics
SYNOPSIS
/usr/ucb/eqn [ -dxy ] [ -fn ] [ -pn ] [ -sn ] [ filename ] ... /usr/ucb/neqn [ filename ] ... /usr/ucb/checkeq [ filename ] ...
DESCRIPTION
The eqn and neqn commands are language processors to assist in describing equations. eqn is a preprocessor for troff(1) and is intended for devices that can print troff's output. neqn is a preprocessor for nroff(1) and is intended for use with terminals. checkeq reports missing or unbalanced delimiters and .EQ/.EN pairs. If no filenames are specified, eqn and neqn read from the standard input. A line beginning with .EQ marks the start of an equation; the end of an equation is marked by a line beginning with .EN. Neither of these lines is altered, so they may be defined in macro packages to get centering, numbering, etc. It is also possible to set two characters as ``delimiters''; subsequent text between delimiters is also treated as eqn input. The following options are available for eqn and neqn:
-dxy Set equation delimiters set to characters x and y with
the command-line argument. The more common way to do
this is with delimxy between .EQ and .EN. The left and
right delimiters may be identical. Delimiters are
turned off by delim off appearing in the text. All
text that is neither between delimiters nor between .EQ
and .EN is passed through untouched.
-fn Change font to n globally in the document. The font can also be changed globally in the body of the document by using the gfont directive.
-pn Reduce subscripts and superscripts by n point sizes from the previous size. In the absence of the -p option, subscripts and superscripts are reduced by 3 point sizes from the previous size.
-sn Set equations in point size n globally in the document. The point size can also be changed globally in the body of the document by using the gsize directive.
-Tdev
Prepare output for device dev. If no -T option is present, eqn looks at the environment variable TYPESETTER to see what the intended output device is. If no such variable is found in the environment, a system-dependent default device is assumed. Not available using neqn.
USAGE
eqn Language
Tokens within eqn are separated by braces, double quotes,
tildes, circumflexes, SPACE, TAB, or NEWLINE characters.
Braces {} are used for grouping; generally speaking, any-
where a single character like x could appear, a complicated
construction enclosed in braces may be used instead. Tilde
(~) represents a full SPACE in the output, circumflex (^)
half as much. Subscripts and superscripts are produced with
the keywords sub and sup. Thus `x sub i' makes x , `a sub
i sup 2' produces a2, and `e sup {x sup 2 + y sup i}' gives
x2+y2 i _
e . Fractions are made with over: `a over b' yields .
sqrt makes square roots: `1 over down 10 sqrt {ax sup b2
+bx+c}' results in
1
__________.
\/ax2+bx+c
Although eqn tries to get most things at the right place on
the paper, occasionally you will need to tune the output to
make it just right. In the previous example, a local
motion, down 10 was used to get more space between the
square root and the line above it. The keywords from and to
intronuce lower and upper limits on arbitrary things:
lim Rxi is made with `lim from {n-> inf } sum from 0 to n x
n->oo0
sub i'. Left and right brackets, braces, etc., of the right
height are made with left and right: `left [ x sup 2 + y
sup 2 over alpha right ] ~=~1' produces
2
| 2 __|
|x + | = 1.
| A |
The right clause is optional. Legal characters after left
and right are braces, brackets, bars, c and f for ceiling and
floor, and "" for nothing at all (useful for a right-side-
only bracket). Vertical piles of things are made with pile,
lpile, cpile, and rpile: `pile {a above b above c}' produces
b. There can be an arbitrary number of elements in a pile.
c
lpile left-justifies, pile and cpile center, with different
vertical spacing, and rpile right justifies. Matrices are
made with matrix: `matrix { lcol { x sub i above y sub 2 }
i . In addition, there is
ccol { 1 above 2 } }' produces 2
rcol for a right-justified coluyn. Diacritical marks are
made with dot, dotdot,.h__,_tilde, bar, vec, dyad, and under:
.x dot = f(t) bar' is x=f(t), `y dotdot bar ~=~ n under' is
y = _, and `x vec ~=~ y dyad' is x>= y> Sizes and font can
be changed with size n or size _n, roman, italic, bold, and
font n. Size and fonts can be changed globally in a document
by gsize n and gfont n, or by the command-line arguments -sn
and -fn. Successive display arguments can be lined up.
Place mark before the desired lineup point in the first equa-
tion; place lineup at the place that is to line up vertically
in subsequent equations. Shorthands may be defined or exist-
ing keywords redefined with define:
define thing % replacement % defines a new token called
thing which will be replaced by replacement whenever it
appears thereafter. The % may be any character that
does not occur in replacement. Keywords like sum (R),
int (^), inf (oo), and shorthands like >= (>), -> (->),
and != (/) are recognized. Greek letters are spelled
out in the desired case, as in alpha or GAMMA.
Mathematical words like sin, cos, and log are made
Roman automatically. troff(1) four-character escapes
like \(bu (•) can be used anywhere. Strings enclosed
in double quotes "..." are passed through untouched;
this permits keywords to be entered as text, and can be
used to communicate with troff when all else fails.
EXAMPLE
eqn filename ... | troff neqn filename ... | nroff
SEE ALSO
tbl(1), troff(1), eqnchar(7), ms(7)
NOTES
To embolden digits, parens, etc., it is necessary to quote them, as in bold "12.3".