EQN(1) UNIX Programmer's Manual EQN(1) 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 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 _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_i, _a _s_u_b _i _s_u_p _2 produces _a_i 2 , and _e _s_u_p {_x _s_u_p _2 + _y _s_u_p _2} gives _e _x2+_y2 . Fractions are made with over: _a _o_v_e_r _b yields _b _a_. sqrt makes square roots: _1 _o_v_e_r _s_q_r_t {_a_x _s_u_p _2 +_b_x+_c} results in v/~~~~~~~~_a_x 2 +_b_x+_c 1_________ . Printed 11/26/99 May 9, 1986 1 EQN(1) UNIX Programmer's Manual EQN(1) The keywords from and to introduce lower and upper limits on arbitrary things: _n->oo lim 0 _>_~ _n _x_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 | | | _x 2 + _o( _y 2 __ | | | = 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 _c _b _a . 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 _y2 _x_i 2 1 . 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.=_f(_t)~~~~, _y _d_o_t_d_o_t _b_a_r ~=~ _n _u_n_d_e_r is _y..~ = _n_, and _x _v_e_c ~=~ _y _d_y_a_d 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 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 Printed 11/26/99 May 9, 1986 2 EQN(1) UNIX Programmer's Manual EQN(1) 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 (_>_~) _i_n_t () _i_n_f (oo) and shorthands 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 double quotes "..." are passed through untouched; this permits keywords to be entered as text, and can be used to communicate 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"'. Printed 11/26/99 May 9, 1986 3