]> git.cameronkatri.com Git - mandoc.git/blob - eqn.7
Remember to NULL-ify new keys/vals.
[mandoc.git] / eqn.7
1 .\" $Id: eqn.7,v 1.3 2011/07/17 14:08:49 kristaps Exp $
2 .\"
3 .\" Copyright (c) 2011 Kristaps Dzonsons <kristaps@bsd.lv>
4 .\"
5 .\" Permission to use, copy, modify, and distribute this software for any
6 .\" purpose with or without fee is hereby granted, provided that the above
7 .\" copyright notice and this permission notice appear in all copies.
8 .\"
9 .\" THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
10 .\" WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
11 .\" MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
12 .\" ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
13 .\" WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
14 .\" ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
15 .\" OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
16 .\"
17 .Dd $Mdocdate: July 17 2011 $
18 .Dt EQN 7
19 .Os
20 .Sh NAME
21 .Nm eqn
22 .Nd eqn language reference for mandoc
23 .Sh DESCRIPTION
24 The
25 .Nm eqn
26 language is a equation-formatting language.
27 It is used within
28 .Xr mdoc 7
29 and
30 .Xr man 7
31 .Ux
32 manual pages.
33 This manual describes the subset of the
34 .Nm
35 language accepted by the
36 .Xr mandoc 1
37 utility.
38 .Pp
39 Equations within
40 .Xr mdoc 7
41 or
42 .Xr man 7
43 documents are enclosed by the standalone
44 .Sq \&.EQ
45 and
46 .Sq \&.EN
47 tags.
48 Equations are multi-line blocks consisting of formulas and control
49 statements.
50 .Sh EQUATION STRUCTURE
51 Each equation is bracketed by
52 .Sq \&.EQ
53 and
54 .Sq \&.EN
55 strings.
56 .Em Note :
57 these are not the same as
58 .Xr roff 7
59 macros, and may only be invoked as
60 .Sq \&.EQ .
61 .Pp
62 The equation grammar is as follows:
63 .Bd -literal -offset indent
64 eqn : box | eqn box
65 box : text
66 | DEFINE text text
67 | SET text text
68 | UNDEF text
69 text : TEXT
70 .Ed
71 .Pp
72 Data in TEXT form is a non-empty sequence of non-space characters or a
73 non-empty quoted string.
74 White-space (and enclosing literal quote pairs) is thrown away and
75 productions may not be broken by newlines.
76 .Pp
77 The following control statements are available:
78 .Bl -tag -width Ds
79 .It Cm define
80 Replace all occurances of a key with a value.
81 Its syntax is as follows:
82 .Pp
83 .D1 define Ar key val
84 .Pp
85 It is an error to have an empty
86 .Ar key or
87 .Ar value .
88 Note that a quoted
89 .Ar key
90 causes errors in some
91 .Nm
92 implementations and should not be considered portable.
93 .It Cm set
94 Set an equation mode.
95 Both arguments are thrown away.
96 .It Cm undef
97 Unset a previously-defined key.
98 Its syntax is as follows:
99 .Pp
100 .D1 define Ar key
101 .Pp
102 Once invoked, the definition for
103 .Ar key
104 is discarded.
105 .El
106 .Sh SEE ALSO
107 .Xr mandoc 1 ,
108 .Xr man 7 ,
109 .Xr mandoc_char 7 ,
110 .Xr mdoc 7 ,
111 .Xr roff 7
112 .Rs
113 .%A Brian W. Kernighan
114 .%A Lorinda L. Cherry
115 .%T System for Typesetting Mathematics
116 .%J Communications of the ACM
117 .%V 18
118 .%P 151\(en157
119 .%D March, 1975
120 .Re
121 .\" .Sh HISTORY
122 .\" The tbl utility, a preprocessor for troff, was originally written by M.
123 .\" E. Lesk at Bell Labs in 1975.
124 .\" The GNU reimplementation of tbl, part of the groff package, was released
125 .\" in 1990 by James Clark.
126 .\" A standalone tbl implementation was written by Kristaps Dzonsons in
127 .\" 2010.
128 .\" This formed the basis of the implementation that is part of the
129 .\" .Xr mandoc 1
130 .\" utility.
131 .Sh AUTHORS
132 This partial
133 .Nm
134 reference was written by
135 .An Kristaps Dzonsons Aq kristaps@bsd.lv .