xref: /netbsd-src/external/bsd/mdocml/dist/eqn.7 (revision c9bcef0391a5afc0280459d5c16c26ace267c496)
1*c9bcef03Schristos.\"	Id: eqn.7,v 1.37 2017/09/04 10:35:27 schwarze Exp
248741257Sjoerg.\"
348741257Sjoerg.\" Copyright (c) 2011 Kristaps Dzonsons <kristaps@bsd.lv>
4fec65c98Schristos.\" Copyright (c) 2014 Ingo Schwarze <schwarze@openbsd.org>
548741257Sjoerg.\"
648741257Sjoerg.\" Permission to use, copy, modify, and distribute this software for any
748741257Sjoerg.\" purpose with or without fee is hereby granted, provided that the above
848741257Sjoerg.\" copyright notice and this permission notice appear in all copies.
948741257Sjoerg.\"
1048741257Sjoerg.\" THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
1148741257Sjoerg.\" WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
1248741257Sjoerg.\" MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
1348741257Sjoerg.\" ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
1448741257Sjoerg.\" WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
1548741257Sjoerg.\" ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
1648741257Sjoerg.\" OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
1748741257Sjoerg.\"
18*c9bcef03Schristos.Dd September 4, 2017
1948741257Sjoerg.Dt EQN 7
2048741257Sjoerg.Os
2148741257Sjoerg.Sh NAME
2248741257Sjoerg.Nm eqn
2348741257Sjoerg.Nd eqn language reference for mandoc
2448741257Sjoerg.Sh DESCRIPTION
2548741257SjoergThe
2648741257Sjoerg.Nm eqn
27c5f73b34Sjoerglanguage is an equation-formatting language.
2848741257SjoergIt is used within
2948741257Sjoerg.Xr mdoc 7
3048741257Sjoergand
3148741257Sjoerg.Xr man 7
3248741257Sjoerg.Ux
3348741257Sjoergmanual pages.
34c5f73b34SjoergIt describes the
35c5f73b34Sjoerg.Em structure
36c5f73b34Sjoergof an equation, not its mathematical meaning.
37c5f73b34SjoergThis manual describes the
3848741257Sjoerg.Nm
3948741257Sjoerglanguage accepted by the
4048741257Sjoerg.Xr mandoc 1
41fec65c98Schristosutility, which corresponds to the Second Edition
42fec65c98Schristos.Nm
43fec65c98Schristosspecification (see
44c5f73b34Sjoerg.Sx SEE ALSO
45c5f73b34Sjoergfor references).
4648741257Sjoerg.Pp
4748741257SjoergEquations within
4848741257Sjoerg.Xr mdoc 7
4948741257Sjoergor
5048741257Sjoerg.Xr man 7
51c5f73b34Sjoergdocuments are enclosed by the standalone
52c5f73b34Sjoerg.Sq \&.EQ
5348741257Sjoergand
54c5f73b34Sjoerg.Sq \&.EN
55c5f73b34Sjoergtags.
56c5f73b34SjoergEquations are multi-line blocks consisting of formulas and control
57c5f73b34Sjoergstatements.
58c5f73b34Sjoerg.Sh EQUATION STRUCTURE
59c5f73b34SjoergEach equation is bracketed by
60c5f73b34Sjoerg.Sq \&.EQ
61c5f73b34Sjoergand
62c5f73b34Sjoerg.Sq \&.EN
63c5f73b34Sjoergstrings.
64c5f73b34Sjoerg.Em Note :
65c5f73b34Sjoergthese are not the same as
66c5f73b34Sjoerg.Xr roff 7
67c5f73b34Sjoergmacros, and may only be invoked as
68c5f73b34Sjoerg.Sq \&.EQ .
6948741257Sjoerg.Pp
70c5f73b34SjoergThe equation grammar is as follows, where quoted strings are
71c5f73b34Sjoergcase-sensitive literals in the input:
72c5f73b34Sjoerg.Bd -literal -offset indent
73c5f73b34Sjoergeqn     : box | eqn box
74c5f73b34Sjoergbox     : text
75fec65c98Schristos        | \(dq{\(dq eqn \(dq}\(dq
76fec65c98Schristos        | \(dqdefine\(dq text text
77fec65c98Schristos        | \(dqndefine\(dq text text
78fec65c98Schristos        | \(dqtdefine\(dq text text
79fec65c98Schristos        | \(dqgfont\(dq text
80fec65c98Schristos        | \(dqgsize\(dq text
81fec65c98Schristos        | \(dqset\(dq text text
82fec65c98Schristos        | \(dqundef\(dq text
83fec65c98Schristos        | \(dqsqrt\(dq box
84c5f73b34Sjoerg        | box pos box
85c5f73b34Sjoerg        | box mark
86*c9bcef03Schristos        | \(dqmatrix\(dq \(dq{\(dq [col \(dq{\(dq list \(dq}\(dq]* \(dq}\(dq
87fec65c98Schristos        | pile \(dq{\(dq list \(dq}\(dq
88c5f73b34Sjoerg        | font box
89fec65c98Schristos        | \(dqsize\(dq text box
90fec65c98Schristos        | \(dqleft\(dq text eqn [\(dqright\(dq text]
91fec65c98Schristoscol     : \(dqlcol\(dq | \(dqrcol\(dq | \(dqccol\(dq | \(dqcol\(dq
92fec65c98Schristostext    : [^space\e\(dq]+ | \e\(dq.*\e\(dq
93fec65c98Schristospile    : \(dqlpile\(dq | \(dqcpile\(dq | \(dqrpile\(dq | \(dqpile\(dq
94fec65c98Schristospos     : \(dqover\(dq | \(dqsup\(dq | \(dqsub\(dq | \(dqto\(dq | \(dqfrom\(dq
95fec65c98Schristosmark	: \(dqdot\(dq | \(dqdotdot\(dq | \(dqhat\(dq | \(dqtilde\(dq | \(dqvec\(dq
96fec65c98Schristos        | \(dqdyad\(dq | \(dqbar\(dq | \(dqunder\(dq
97fec65c98Schristosfont    : \(dqroman\(dq | \(dqitalic\(dq | \(dqbold\(dq | \(dqfat\(dq
98c5f73b34Sjoerglist    : eqn
99fec65c98Schristos        | list \(dqabove\(dq eqn
100c5f73b34Sjoergspace   : [\e^~ \et]
101c5f73b34Sjoerg.Ed
102c5f73b34Sjoerg.Pp
103c5f73b34SjoergWhite-space consists of the space, tab, circumflex, and tilde
104c5f73b34Sjoergcharacters.
105fec65c98SchristosIt is required to delimit tokens consisting of alphabetic characters
106fec65c98Schristosand it is ignored at other places.
107fec65c98SchristosBraces and quotes also delimit tokens.
108c5f73b34SjoergIf within a quoted string, these space characters are retained.
109fec65c98SchristosQuoted strings are also not scanned for keywords, glyph names,
110fec65c98Schristosand expansion of definitions.
111fec65c98SchristosTo print a literal quote character, it can be prepended with a
112fec65c98Schristosbackslash or expressed with the \e(dq escape sequence.
113fec65c98Schristos.Pp
114fec65c98SchristosSubequations can be enclosed in braces to pass them as arguments
115fec65c98Schristosto operation keywords, overriding standard operation precedence.
116fec65c98SchristosBraces can be nested.
117fec65c98SchristosTo set a brace verbatim, it needs to be enclosed in quotes.
118c5f73b34Sjoerg.Pp
119c5f73b34SjoergThe following text terms are translated into a rendered glyph, if
120c5f73b34Sjoergavailable: alpha, beta, chi, delta, epsilon, eta, gamma, iota, kappa,
121c5f73b34Sjoerglambda, mu, nu, omega, omicron, phi, pi, psi, rho, sigma, tau, theta,
122c5f73b34Sjoergupsilon, xi, zeta, DELTA, GAMMA, LAMBDA, OMEGA, PHI, PI, PSI, SIGMA,
123c5f73b34SjoergTHETA, UPSILON, XI, inter (intersection), union (union), prod (product),
124c5f73b34Sjoergint (integral), sum (summation), grad (gradient), del (vector
125fec65c98Schristosdifferential), times (multiply), cdot (center-dot), nothing (zero-width
126c5f73b34Sjoergspace), approx (approximately equals), prime (prime), half (one-half),
127c5f73b34Sjoergpartial (partial differential), inf (infinity), >> (much greater), <<
128*c9bcef03Schristos(much less), <\- (left arrow), \-> (right arrow), +\- (plus-minus), !=
129c5f73b34Sjoerg(not equal), == (equivalence), <= (less-than-equal), and >=
130c5f73b34Sjoerg(more-than-equal).
131fec65c98SchristosThe character escape sequences documented in
132fec65c98Schristos.Xr mandoc_char 7
133fec65c98Schristoscan be used, too.
134c5f73b34Sjoerg.Pp
135c5f73b34SjoergThe following control statements are available:
136c5f73b34Sjoerg.Bl -tag -width Ds
137c5f73b34Sjoerg.It Cm define
138c5f73b34SjoergReplace all occurrences of a key with a value.
139c5f73b34SjoergIts syntax is as follows:
140c5f73b34Sjoerg.Pp
141fec65c98Schristos.D1 Cm define Ar key cvalc
142c5f73b34Sjoerg.Pp
143c5f73b34SjoergThe first character of the value string,
144c5f73b34Sjoerg.Ar c ,
145c5f73b34Sjoergis used as the delimiter for the value
146c5f73b34Sjoerg.Ar val .
147c5f73b34SjoergThis allows for arbitrary enclosure of terms (not just quotes), such as
148c5f73b34Sjoerg.Pp
1499ff1f2acSchristos.D1 Cm define Ar foo \(aqbar baz\(aq
150fec65c98Schristos.D1 Cm define Ar foo cbar bazc
151c5f73b34Sjoerg.Pp
152c5f73b34SjoergIt is an error to have an empty
153c5f73b34Sjoerg.Ar key
154c5f73b34Sjoergor
155c5f73b34Sjoerg.Ar val .
156c5f73b34SjoergNote that a quoted
157c5f73b34Sjoerg.Ar key
158c5f73b34Sjoergcauses errors in some
15948741257Sjoerg.Nm
160c5f73b34Sjoergimplementations and should not be considered portable.
161c5f73b34SjoergIt is not expanded for replacements.
162c5f73b34SjoergDefinitions may refer to other definitions; these are evaluated
163c5f73b34Sjoergrecursively when text replacement occurs and not when the definition is
164c5f73b34Sjoergcreated.
165c5f73b34Sjoerg.Pp
166c5f73b34SjoergDefinitions can create arbitrary strings, for example, the following is
167c5f73b34Sjoerga legal construction.
168c5f73b34Sjoerg.Bd -literal -offset indent
1699ff1f2acSchristosdefine foo \(aqdefine\(aq
1709ff1f2acSchristosfoo bar \(aqbaz\(aq
171c5f73b34Sjoerg.Ed
172c5f73b34Sjoerg.Pp
173c5f73b34SjoergSelf-referencing definitions will raise an error.
174c5f73b34SjoergThe
175c5f73b34Sjoerg.Cm ndefine
176c5f73b34Sjoergstatement is a synonym for
177c5f73b34Sjoerg.Cm define ,
178c5f73b34Sjoergwhile
179c5f73b34Sjoerg.Cm tdefine
180c5f73b34Sjoergis discarded.
181c5f73b34Sjoerg.It Cm gfont
182c5f73b34SjoergSet the default font of subsequent output.
183c5f73b34SjoergIts syntax is as follows:
184c5f73b34Sjoerg.Pp
185fec65c98Schristos.D1 Cm gfont Ar font
186c5f73b34Sjoerg.Pp
187c5f73b34SjoergIn mandoc, this value is discarded.
188c5f73b34Sjoerg.It Cm gsize
189c5f73b34SjoergSet the default size of subsequent output.
190c5f73b34SjoergIts syntax is as follows:
191c5f73b34Sjoerg.Pp
192fec65c98Schristos.D1 Cm gsize Oo +|\- Oc Ns Ar size
19348741257Sjoerg.Pp
19448741257SjoergThe
195c5f73b34Sjoerg.Ar size
196c5f73b34Sjoergvalue should be an integer.
197fec65c98SchristosIf prepended by a sign,
198fec65c98Schristosthe font size is changed relative to the current size.
199c5f73b34Sjoerg.It Cm set
200c5f73b34SjoergSet an equation mode.
201c5f73b34SjoergIn mandoc, both arguments are thrown away.
202c5f73b34SjoergIts syntax is as follows:
203c5f73b34Sjoerg.Pp
204fec65c98Schristos.D1 Cm set Ar key val
205c5f73b34Sjoerg.Pp
206c5f73b34SjoergThe
207c5f73b34Sjoerg.Ar key
208c5f73b34Sjoergand
209c5f73b34Sjoerg.Ar val
210c5f73b34Sjoergare not expanded for replacements.
211c5f73b34SjoergThis statement is a GNU extension.
212c5f73b34Sjoerg.It Cm undef
213c5f73b34SjoergUnset a previously-defined key.
214c5f73b34SjoergIts syntax is as follows:
215c5f73b34Sjoerg.Pp
216fec65c98Schristos.D1 Cm define Ar key
217c5f73b34Sjoerg.Pp
218c5f73b34SjoergOnce invoked, the definition for
219c5f73b34Sjoerg.Ar key
220c5f73b34Sjoergis discarded.
221c5f73b34SjoergThe
222c5f73b34Sjoerg.Ar key
223c5f73b34Sjoergis not expanded for replacements.
224c5f73b34SjoergThis statement is a GNU extension.
225c5f73b34Sjoerg.El
226fec65c98Schristos.Pp
227fec65c98SchristosOperation keywords have the following semantics:
228fec65c98Schristos.Bl -tag -width Ds
229fec65c98Schristos.It Cm above
230fec65c98SchristosSee
231fec65c98Schristos.Cm pile .
232fec65c98Schristos.It Cm bar
233fec65c98SchristosDraw a line over the preceding box.
234fec65c98Schristos.It Cm bold
235fec65c98SchristosSet the following box using bold font.
236fec65c98Schristos.It Cm ccol
237fec65c98SchristosLike
238fec65c98Schristos.Cm cpile ,
239fec65c98Schristosbut for use in
240fec65c98Schristos.Cm matrix .
241fec65c98Schristos.It Cm cpile
242fec65c98SchristosLike
243fec65c98Schristos.Cm pile ,
244fec65c98Schristosbut with slightly increased vertical spacing.
245fec65c98Schristos.It Cm dot
246fec65c98SchristosSet a single dot over the preceding box.
247fec65c98Schristos.It Cm dotdot
248fec65c98SchristosSet two dots (dieresis) over the preceding box.
249fec65c98Schristos.It Cm dyad
250fec65c98SchristosSet a dyad symbol (left-right arrow) over the preceding box.
251fec65c98Schristos.It Cm fat
252fec65c98SchristosA synonym for
253fec65c98Schristos.Cm bold .
254fec65c98Schristos.It Cm font
255fec65c98SchristosSet the second argument using the font specified by the first argument;
256fec65c98Schristoscurrently not recognized by the
257fec65c98Schristos.Xr mandoc 1
258fec65c98Schristos.Nm
259fec65c98Schristosparser.
260fec65c98Schristos.It Cm from
261fec65c98SchristosSet the following box below the preceding box,
262fec65c98Schristosusing a slightly smaller font.
263fec65c98SchristosUsed for sums, integrals, limits, and the like.
264fec65c98Schristos.It Cm hat
265fec65c98SchristosSet a hat (circumflex) over the preceding box.
266fec65c98Schristos.It Cm italic
267fec65c98SchristosSet the following box using italic font.
268fec65c98Schristos.It Cm lcol
269fec65c98SchristosLike
270fec65c98Schristos.Cm lpile ,
271fec65c98Schristosbut for use in
272fec65c98Schristos.Cm matrix .
273fec65c98Schristos.It Cm left
274fec65c98SchristosSet the first argument as a big left delimiter before the second argument.
275fec65c98SchristosAs an optional third argument,
276fec65c98Schristos.Cm right
277fec65c98Schristoscan follow.
278fec65c98SchristosIn that case, the fourth argument is set as a big right delimiter after
279fec65c98Schristosthe second argument.
280fec65c98Schristos.It Cm lpile
281fec65c98SchristosLike
282fec65c98Schristos.Cm cpile ,
283fec65c98Schristosbut subequations are left-justified.
284fec65c98Schristos.It Cm matrix
285fec65c98SchristosFollowed by a list of columns enclosed in braces.
286fec65c98SchristosAll columns need to have the same number of subequations.
287fec65c98SchristosThe columns are set as a matrix.
288fec65c98SchristosThe difference compared to multiple subsequent
289fec65c98Schristos.Cm pile
290fec65c98Schristosoperators is that in a
291fec65c98Schristos.Cm matrix ,
292fec65c98Schristoscorresponding subequations in all columns line up horizontally,
293fec65c98Schristoswhile each
294fec65c98Schristos.Cm pile
295fec65c98Schristosdoes vertical spacing independently.
296fec65c98Schristos.It Cm over
297fec65c98SchristosSet a fraction.
298fec65c98SchristosThe preceding box is the numerator, the following box is the denominator.
299fec65c98Schristos.It Cm pile
300fec65c98SchristosFollowed by a list of subequations enclosed in braces,
301fec65c98Schristosthe subequations being separated by
302fec65c98Schristos.Cm above
303fec65c98Schristoskeywords.
304fec65c98SchristosSets the subequations one above the other, each of them centered.
305fec65c98SchristosTypically used to represent vectors in coordinate representation.
306fec65c98Schristos.It Cm rcol
307fec65c98SchristosLike
308fec65c98Schristos.Cm rpile ,
309fec65c98Schristosbut for use in
310fec65c98Schristos.Cm matrix .
311fec65c98Schristos.It Cm right
312fec65c98SchristosSee
313fec65c98Schristos.Cm left ;
314fec65c98Schristos.Cm right
315fec65c98Schristoscannot be used without
316fec65c98Schristos.Cm left .
317fec65c98SchristosTo set a big right delimiter without a big left delimiter, the following
318fec65c98Schristosconstruction can be used:
319fec65c98Schristos.Pp
320fec65c98Schristos.D1 Cm left No \(dq\(dq Ar box Cm right Ar delimiter
321fec65c98Schristos.It Cm roman
322fec65c98SchristosSet the following box using the default font.
323fec65c98Schristos.It Cm rpile
324fec65c98SchristosLike
325fec65c98Schristos.Cm cpile ,
326fec65c98Schristosbut subequations are right-justified.
327fec65c98Schristos.It Cm size
328fec65c98SchristosSet the second argument with the font size specified by the first
329fec65c98Schristosargument; currently ignored by
330fec65c98Schristos.Xr mandoc 1 .
331fec65c98SchristosBy prepending a plus or minus sign to the first argument,
332fec65c98Schristosthe font size can be selected relative to the current size.
333fec65c98Schristos.It Cm sqrt
334fec65c98SchristosSet the square root of the following box.
335fec65c98Schristos.It Cm sub
336fec65c98SchristosSet the following box as a subscript to the preceding box.
337fec65c98Schristos.It Cm sup
338fec65c98SchristosSet the following box as a superscript to the preceding box.
339fec65c98SchristosAs a special case, if a
340fec65c98Schristos.Cm sup
341fec65c98Schristosclause immediately follows a
342fec65c98Schristos.Cm sub
343fec65c98Schristosclause as in
344fec65c98Schristos.Pp
345fec65c98Schristos.D1 Ar mainbox Cm sub Ar subbox Cm sup Ar supbox
346fec65c98Schristos.Pp
347fec65c98Schristosboth are set with respect to the same
348fec65c98Schristos.Ar mainbox ,
349fec65c98Schristosthat is,
350fec65c98Schristos.Ar supbox
351fec65c98Schristosis set above
352fec65c98Schristos.Ar subbox .
353fec65c98Schristos.It Cm tilde
354fec65c98SchristosSet a tilde over the preceding box.
355fec65c98Schristos.It Cm to
356fec65c98SchristosSet the following box above the preceding box,
357fec65c98Schristosusing a slightly smaller font.
358fec65c98SchristosUsed for sums and integrals and the like.
359fec65c98SchristosAs a special case, if a
360fec65c98Schristos.Cm to
361fec65c98Schristosclause immediately follows a
362fec65c98Schristos.Cm from
363fec65c98Schristosclause as in
364fec65c98Schristos.Pp
365fec65c98Schristos.D1 Ar mainbox Cm from Ar frombox Cm to Ar tobox
366fec65c98Schristos.Pp
367fec65c98Schristosboth are set below and above the same
368fec65c98Schristos.Ar mainbox .
369fec65c98Schristos.It Cm under
370fec65c98SchristosUnderline the preceding box.
371fec65c98Schristos.It Cm vec
372fec65c98SchristosSet a vector symbol (right arrow) over the preceding box.
373fec65c98Schristos.El
374fec65c98Schristos.Pp
375fec65c98SchristosThe binary operations
376fec65c98Schristos.Cm from ,
377fec65c98Schristos.Cm to ,
378fec65c98Schristos.Cm sub ,
379fec65c98Schristosand
380fec65c98Schristos.Cm sup
381fec65c98Schristosgroup to the right, that is,
382fec65c98Schristos.Pp
383fec65c98Schristos.D1 Ar mainbox Cm sup Ar supbox Cm sub Ar subbox
384fec65c98Schristos.Pp
385fec65c98Schristosis the same as
386fec65c98Schristos.Pp
387fec65c98Schristos.D1 Ar mainbox Cm sup Brq Ar supbox Cm sub Ar subbox
388fec65c98Schristos.Pp
389fec65c98Schristosand different from
390fec65c98Schristos.Pp
391fec65c98Schristos.D1 Bro Ar mainbox Cm sup Ar supbox Brc Cm sub Ar subbox .
392fec65c98Schristos.Pp
393fec65c98SchristosBy contrast,
394fec65c98Schristos.Cm over
395fec65c98Schristosgroups to the left.
396fec65c98Schristos.Pp
397fec65c98SchristosIn the following list, earlier operations bind more tightly than
398fec65c98Schristoslater operations:
399fec65c98Schristos.Pp
400fec65c98Schristos.Bl -enum -compact
401fec65c98Schristos.It
402fec65c98Schristos.Cm dyad ,
403fec65c98Schristos.Cm vec ,
404fec65c98Schristos.Cm under ,
405fec65c98Schristos.Cm bar ,
406fec65c98Schristos.Cm tilde ,
407fec65c98Schristos.Cm hat ,
408fec65c98Schristos.Cm dot ,
409fec65c98Schristos.Cm dotdot
410fec65c98Schristos.It
411fec65c98Schristos.Cm fat ,
412fec65c98Schristos.Cm roman ,
413fec65c98Schristos.Cm italic ,
414fec65c98Schristos.Cm bold ,
415fec65c98Schristos.Cm size
416fec65c98Schristos.It
417fec65c98Schristos.Cm sub ,
418fec65c98Schristos.Cm sup
419fec65c98Schristos.It
420fec65c98Schristos.Cm sqrt
421fec65c98Schristos.It
422fec65c98Schristos.Cm over
423fec65c98Schristos.It
424fec65c98Schristos.Cm from ,
425fec65c98Schristos.Cm to
426fec65c98Schristos.El
427c5f73b34Sjoerg.Sh COMPATIBILITY
428c5f73b34SjoergThis section documents the compatibility of mandoc
42948741257Sjoerg.Nm
430c5f73b34Sjoergand the troff
431c5f73b34Sjoerg.Nm
432c5f73b34Sjoergimplementation (including GNU troff).
433c5f73b34Sjoerg.Pp
434c5f73b34Sjoerg.Bl -dash -compact
435c5f73b34Sjoerg.It
436c5f73b34SjoergThe text string
437fec65c98Schristos.Sq \e\(dq
438c5f73b34Sjoergis interpreted as a literal quote in troff.
439c5f73b34SjoergIn mandoc, this is interpreted as a comment.
440c5f73b34Sjoerg.It
441c5f73b34SjoergIn troff, The circumflex and tilde white-space symbols map to
442c5f73b34Sjoergfixed-width spaces.
443c5f73b34SjoergIn mandoc, these characters are synonyms for the space character.
444c5f73b34Sjoerg.It
445c5f73b34SjoergThe troff implementation of
446c5f73b34Sjoerg.Nm
447c5f73b34Sjoergallows for equation alignment with the
448c5f73b34Sjoerg.Cm mark
449c5f73b34Sjoergand
450c5f73b34Sjoerg.Cm lineup
451c5f73b34Sjoergtokens.
452c5f73b34Sjoergmandoc discards these tokens.
453c5f73b34SjoergThe
454c5f73b34Sjoerg.Cm back Ar n ,
455c5f73b34Sjoerg.Cm fwd Ar n ,
456c5f73b34Sjoerg.Cm up Ar n ,
457c5f73b34Sjoergand
458c5f73b34Sjoerg.Cm down Ar n
459c5f73b34Sjoergcommands are also ignored.
460c5f73b34Sjoerg.El
46148741257Sjoerg.Sh SEE ALSO
46248741257Sjoerg.Xr mandoc 1 ,
46348741257Sjoerg.Xr man 7 ,
46448741257Sjoerg.Xr mandoc_char 7 ,
46548741257Sjoerg.Xr mdoc 7 ,
46648741257Sjoerg.Xr roff 7
46748741257Sjoerg.Rs
46848741257Sjoerg.%A Brian W. Kernighan
46948741257Sjoerg.%A Lorinda L. Cherry
47048741257Sjoerg.%T System for Typesetting Mathematics
47148741257Sjoerg.%J Communications of the ACM
47248741257Sjoerg.%V 18
47348741257Sjoerg.%P 151\(en157
47448741257Sjoerg.%D March, 1975
47548741257Sjoerg.Re
476c5f73b34Sjoerg.Rs
477c5f73b34Sjoerg.%A Brian W. Kernighan
478c5f73b34Sjoerg.%A Lorinda L. Cherry
479c5f73b34Sjoerg.%T Typesetting Mathematics, User's Guide
480c5f73b34Sjoerg.%D 1976
481c5f73b34Sjoerg.Re
482c5f73b34Sjoerg.Rs
483c5f73b34Sjoerg.%A Brian W. Kernighan
484c5f73b34Sjoerg.%A Lorinda L. Cherry
485c5f73b34Sjoerg.%T Typesetting Mathematics, User's Guide (Second Edition)
486c5f73b34Sjoerg.%D 1978
487c5f73b34Sjoerg.Re
488c5f73b34Sjoerg.Sh HISTORY
489c5f73b34SjoergThe eqn utility, a preprocessor for troff, was originally written by
490c5f73b34SjoergBrian W. Kernighan and Lorinda L. Cherry in 1975.
491c5f73b34SjoergThe GNU reimplementation of eqn, part of the GNU troff package, was
492c5f73b34Sjoergreleased in 1989 by James Clark.
493c5f73b34SjoergThe eqn component of
494c5f73b34Sjoerg.Xr mandoc 1
495c5f73b34Sjoergwas added in 2011.
49648741257Sjoerg.Sh AUTHORS
497c5f73b34SjoergThis
49848741257Sjoerg.Nm
49948741257Sjoergreference was written by
50070f041f9Sjoerg.An Kristaps Dzonsons Aq Mt kristaps@bsd.lv .
501