32v 1m eqn
From Computer History Wiki
Contents
NAME
eqn, neqn, checkeq - typeset mathematics
SYNOPSIS
eqn [ -dxy ] [ -pn ] [ -sn ] [ -fn ] [ file ] ... checkeq [ file ] ...
DESCRIPTION
_E_q_n is a troff(1) preprocessor for typesetting mathematics on a Graphic Systems phototypesetter, _n_e_q_n on terminals. Usage is almost always
eqn file ... | troff neqn file ... | nroff
If no files are specified, these programs reads 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 _e_q_n input. Delimiters may be set to characters _x and _y with the command-line argument -d_x_y or (more commonly) with `delim _x_y' between .EQ and .EN. The left and right delimiters may be identical. Delimiters are turned off by `delim off'. All text that is neither between delimiters nor between .EQ and .EN is passed through untouched.
The program _c_h_e_c_k_e_q reports missing or unbalanced delimiters and .EQ/.EN pairs.
Tokens within _e_q_n 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 _s_u_b _i makes $x sub i$, _a _s_u_b _i _s_u_p _2 produces $a sub i sup 2$, and _e _s_u_p {_x _s_u_p _2 + _y _s_u_p _2} gives $e sup {x sup 2 + y sup 2}$.
Fractions are made with over: _a _o_v_e_r _b yields $a over b$.
sqrt makes square roots: _1 _o_v_e_r _s_q_r_t {_a_x _s_u_p _2 +_b_x+_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 _l_i_m _f_r_o_m {_n-> _i_n_f } _s_u_m _f_r_o_m _0 _t_o _n _x _s_u_b _i.
Left and right brackets, braces, etc., of the right height are made with left and right: _l_e_f_t [ _x _s_u_p _2 + _y _s_u_p _2 _o_v_e_r _a_l_p_h_a _r_i_g_h_t ] ~=~_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: _p_i_l_e {_a _a_b_o_v_e _b _a_b_o_v_e _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: _m_a_t_r_i_x { _l_c_o_l { _x _s_u_b _i _a_b_o_v_e _y _s_u_b _2 } _c_c_o_l { _1 _a_b_o_v_e _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 dot, dotdot, hat, tilde, bar, vec, dyad, and under: _x _d_o_t = _f(_t) _b_a_r is $x dot = f(t) bar$, _y _d_o_t_d_o_t _b_a_r ~=~ _n _u_n_d_e_r is $y dotdot bar ~=~ n under$, and _x _v_e_c ~=~ _y _d_y_a_d is $x vec ~=~ y dyad$.
Sizes and font can be changed with size _n or size +__n, roman, italic, bold, and font _n. Size and fonts can be changed glo- bally 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 subse- quent equations.
Shorthands may be defined or existing keywords redefined with define: _d_e_f_i_n_e _t_h_i_n_g % _r_e_p_l_a_c_e_m_e_n_t % defines a new token called _t_h_i_n_g which will be replaced by _r_e_p_l_a_c_e_m_e_n_t whenever it appears thereafter. The % may be any character that does not occur in _r_e_p_l_a_c_e_m_e_n_t.
Keywords like _s_u_m ( sum ) _i_n_t ( int ) _i_n_f ( inf ) and short- hands like >= (>=) -> (->), and != ( != ) are recognized. Greek letters are spelled out in the desired case, as in _a_l_p_h_a or _G_A_M_M_A. Mathematical words like sin, cos, log are made Roman automatically. _T_r_o_f_f(1) four-character escapes like \(bs () can be used anywhere. Strings enclosed in dou- ble quotes "..." are passed through untouched; this permits keywords to be entered as text, and can be used to communi- cate with _t_r_o_f_f when all else fails.
SEE ALSO
troff(1), tbl(1), ms(7), eqnchar(7) B. W. Kernighan and L. L. Cherry, _T_y_p_e_s_e_t_t_i_n_g _M_a_t_h_e_m_a_t_i_c_s- _U_s_e_r'_s _G_u_i_d_e J. F. Ossanna, _N_R_O_F_F/_T_R_O_F_F _U_s_e_r'_s _M_a_n_u_a_l
BUGS
To embolden digits, parens, etc., it is necessary to quote them, as in `bold "12.3"'.