1 .\" $Id: eqn.7,v 1.8 2011/07/21 12:34:09 kristaps Exp $
3 .\" Copyright (c) 2011 Kristaps Dzonsons <kristaps@bsd.lv>
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.
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.
17 .Dd $Mdocdate: July 21 2011 $
22 .Nd eqn language reference for mandoc
26 language is a equation-formatting language.
33 This manual describes the subset of the
35 language accepted by the
43 documents are enclosed by the standalone
48 Equations are multi-line blocks consisting of formulas and control
50 .Sh EQUATION STRUCTURE
51 Each equation is bracketed by
57 these are not the same as
59 macros, and may only be invoked as
62 The equation grammar is as follows:
63 .Bd -literal -offset indent
73 Data in TEXT form is a non-empty sequence of non-space characters or a
74 non-empty quoted string.
75 Unless within a quoted string, white-space (and enclosing literal quote
76 pairs) is thrown away.
77 Quoted strings are not scanned for replacement definitions.
79 The following control statements are available:
82 Replace all occurances of a key with a value.
83 Its syntax is as follows:
85 .D1 define Ar key cvalc
87 The first character of the value string,
89 is used as the delimiter for the value
91 This allows for arbitrary enclosure of terms (not just quotes), such as
93 .D1 define Ar foo 'bar baz'
94 .D1 define Ar foo cbar bazc
96 It is an error to have an empty
101 causes errors in some
103 implementations and should not be considered portable.
104 It is not expanded for replacements.
105 Definitions may refer to other definitions; these are evaluated
106 recursively when text replacement occurs and not when the definition is
109 Definitions can create arbitrary strings, for example, the following is
110 a legal construction.
111 .Bd -literal -offset indent
116 Self-referencing definitions will raise an error.
118 Set an equation mode.
119 Both arguments are thrown away.
120 Its syntax is as follows:
128 are not expanded for replacements.
130 Unset a previously-defined key.
131 Its syntax is as follows:
135 Once invoked, the definition for
140 is not expanded for replacements.
143 This section documents the compatibility of mandoc
147 implementation (including GNU troff).
153 is interpreted as a literal quote in troff.
154 In mandoc, this is interpreted as a comment.
163 .%A Brian W. Kernighan
164 .%A Lorinda L. Cherry
165 .%T System for Typesetting Mathematics
166 .%J Communications of the ACM
172 .%A Brian W. Kernighan
173 .%A Lorinda L. Cherry
174 .%T Typesetting Mathematics, User's Guide
178 .%A Brian W. Kernighan
179 .%A Lorinda L. Cherry
180 .%T Typesetting Mathematics, User's Guide (Second Edition)
184 The eqn utility, a preprocessor for troff, was originally written by
185 Brian W. Kernighan and Lorinda L. Cherry in 1975.
186 The GNU reimplementation of eqn, part of the GNU troff package, was
187 released in 1989 by James Clark.
194 reference was written by
195 .An Kristaps Dzonsons Aq kristaps@bsd.lv .