| EQN(1) | EQN(1)

| delim $$

NAME

| eqn – typeset mathematics

SYNOPSIS

| `eqn` [ option ... ] [ file ... ]

DESCRIPTION

Eqn is a troff(1) preprocessor for typesetting mathematics on a typesetter. Usage is almost always

`eqn file ... | troff

`

If no files are specified, eqn reads from the standard input. Eqn prepares output for the typesetter named in the `−T` dest option (default `−Tutf`; see troff(1)). When run with other preprocessor filters, eqn usually comes last.

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’; text between delimiters is also eqn input. Delimiters may be set to characters x and y with the option `−d` xy or (more commonly) with `delim` xy between `.EQ` and `.EN`. Left and right delimiters may be identical. (They are customarily taken to be $font L "$$" )$. Delimiters are turned off by `delim off`. All text that is neither between delimiters nor between `.EQ` and `.EN` is passed through untouched.

Tokens within eqn are separated by spaces, tabs, newlines, braces, double quotes, tildes or circumflexes. Braces {} are used for grouping; generally speaking, anywhere 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 sub i$, `a sub i sup 2` produces $a sub i sup 2$, and `e sup {x sup 2 + y sup 2}` gives $e sup {x sup 2 + y sup 2}$.

`Over` makes fractions: `a over b` yields $a over b$.

`Sqrt` produces square roots: `1 over sqrt {ax sup 2 +bx+c}` results in $1 over sqrt {ax sup 2 +bx+c}$ .

The keywords `from` and `to` introduce lower and upper limits on arbitrary things: $lim from {n -> inf} sum from 0 to n x sub i$ is made with `lim from {n −> inf} sum from 0 to n x 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 $left [ x sup 2 + y sup 2 over alpha right ] ~=~1$. 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 $pile {a above b above c}$. There can be an arbitrary number of elements in a pile. `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 } ccol { 1 above 2 } }` produces $matrix { lcol { x sub i above y sub 2 } ccol { 1 above 2 } }$. In addition, there is `rcol` for a right-justified column.

Diacritical marks are made with `prime`, `dot`, `dotdot`, `hat`, `tilde`, `bar`, `under`, `vec`, `dyad`, and `under`: `x sub 0 sup prime = f(t) bar + g(t) under` is $x sub 0 sup prime = f(t) bar + g(t) under$, and `x vec = y dyad` is $x vec = y dyad$.

Sizes and fonts can be changed with prefix operators `size` n, `size ±`n, `fat`, `roman`, `italic`, `bold`, or `font` n. Size and fonts can be changed globally in a document by `gsize` n and `gfont` n, or by the command-line arguments `−s` n and `−f` n.

Normally subscripts and superscripts are reduced by 3 point sizes from the previous size; this may be changed by the command-line argument `−p` n.

Successive display arguments can be lined up. Place `mark` before the desired lineup point in the first equation; place `lineup` at the place that is to line up vertically in subsequent equations.

Shorthands may be defined or existing 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` ( sum ), `int` ( int ), `inf` ( inf ), 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`, `log` are made Roman automatically. Troff(1) four-character escapes like `\(lh` (<=) 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.

FILES

| `/sys/lib/troff/font/devutf` font descriptions for PostScript

SOURCE

| `/usr/local/plan9/src/cmd/eqn`

SEE ALSO

| troff(1), tbl(1) J. F. Ossanna and B. W. Kernighan, “Troff User’s Manual”. B. W. Kernighan and L. L. Cherry, “Typesetting Mathematics--User’s Guide”, Unix Research System Programmer’s Manual, Tenth Edition, Volume 2.

BUGS

| To embolden digits, parens, etc., it is necessary to quote them, as in `bold "12.3"`. delim off