Update to groff 1.19.2.
[dragonfly.git] / contrib / groff-1.19 / src / preproc / eqn / eqn.man
1 .ig
2 Copyright (C) 1989-2000, 2001, 2004, 2005 Free Software Foundation, Inc.
3
4 Permission is granted to make and distribute verbatim copies of
5 this manual provided the copyright notice and this permission notice
6 are preserved on all copies.
7
8 Permission is granted to copy and distribute modified versions of this
9 manual under the conditions for verbatim copying, provided that the
10 entire resulting derived work is distributed under the terms of a
11 permission notice identical to this one.
12
13 Permission is granted to copy and distribute translations of this
14 manual into another language, under the above conditions for modified
15 versions, except that this permission notice may be included in
16 translations approved by the Free Software Foundation instead of in
17 the original English.
18 ..
19 .
20 .
21 .ie \n(.V<\n(.v \
22 .  ds tx T\h'-.1667m'\v'.224m'E\v'-.224m'\h'-.125m'X
23 .el \
24 .  ds tx TeX
25 .
26 .
27 .\" Like TP, but if specified indent is more than half
28 .\" the current line-length - indent, use the default indent.
29 .de Tp
30 .  ie \\n(.$=0:((0\\$1)*2u>(\\n(.lu-\\n(.iu)) .TP
31 .  el .TP "\\$1"
32 ..
33 .
34 .
35 .de TQ
36 .  br
37 .  ns
38 .  TP \\$1
39 ..
40 .
41 .
42 .\" The BSD man macros can't handle " in arguments to font change macros,
43 .\" so use \(ts instead of ".
44 .tr \(ts"
45 .
46 .
47 .TH @G@EQN @MAN1EXT@ "@MDATE@" "Groff Version @VERSION@"
48 .
49 .
50 .SH NAME
51 @g@eqn \- format equations for troff
52 .
53 .
54 .SH SYNOPSIS
55 .nr a \n(.j
56 .ad l
57 .nr i \n(.i
58 .in +\w'\fB@g@eqn 'u
59 .ti \niu
60 .B @g@eqn
61 .de OP
62 .  ie \\n(.$-1 .RI "[\ \fB\\$1\fP" "\\$2" "\ ]"
63 .  el .RB "[\ " "\\$1" "\ ]"
64 ..
65 .OP \-rvCNR
66 .OP \-d xy
67 .OP \-T name
68 .OP \-M dir
69 .OP \-f F
70 .OP \-s n
71 .OP \-p n
72 .OP \-m n
73 .RI "[\ " files\|.\|.\|. "\ ]"
74 .br
75 .ad \na
76 .
77 .LP
78 It is possible to have whitespace between a command line option and its
79 parameter.
80 .
81 .
82 .SH DESCRIPTION
83 This manual page describes the GNU version of
84 .BR eqn ,
85 which is part of the groff document formatting system.
86 .B eqn
87 compiles descriptions of equations embedded within
88 .B troff
89 input files into commands that are understood by
90 .BR troff .
91 Normally, it should be invoked using the
92 .B \-e
93 option of
94 .BR groff .
95 The syntax is quite compatible with Unix eqn.
96 The output of GNU
97 .B eqn
98 cannot be processed with Unix troff;
99 it must be processed with GNU troff.
100 If no files are given on the command line, the standard input
101 will be read.
102 A filename of
103 .B \-
104 will cause the standard input to be read.
105 .
106 .LP
107 .B eqn
108 searches for the file
109 .B eqnrc
110 in the directories given with the
111 .B \-M
112 option first, then in
113 .BR @SYSTEMMACRODIR@ ,
114 .BR @LOCALMACRODIR@ ,
115 and finally in the standard macro directory
116 .BR @MACRODIR@ .
117 If it exists,
118 .B eqn
119 will process it before the other input files.
120 The
121 .B \-R
122 option prevents this.
123 .
124 .LP
125 GNU
126 .B eqn
127 does not provide the functionality of neqn:
128 it does not support low-resolution, typewriter-like devices
129 (although it may work adequately for very simple input).
130 .
131 .
132 .SH OPTIONS
133 .TP
134 .BI \-d xy
135 Specify delimiters
136 .I x
137 and\~\c
138 .I y
139 for the left and right end, respectively, of in-line equations.
140 Any
141 .B delim
142 statements in the source file overrides this.
143 .
144 .TP
145 .B \-C
146 Recognize
147 .B .EQ
148 and
149 .B .EN
150 even when followed by a character other than space or newline.
151 .TP
152 .B \-N
153 Don't allow newlines within delimiters.
154 This option allows
155 .B eqn
156 to recover better from missing closing delimiters.
157 .
158 .TP
159 .B \-v
160 Print the version number.
161 .
162 .TP
163 .B \-r
164 Only one size reduction.
165 .
166 .TP
167 .BI \-m n
168 The minimum point-size is\~\c
169 .IR n .
170 .B eqn
171 will not reduce the size of subscripts or superscripts to
172 a smaller size than\~\c
173 .IR n .
174 .
175 .TP
176 .BI \-T name
177 The output is for device
178 .IR name .
179 The only effect of this is to define a macro
180 .I name
181 with a value of\~\c
182 .BR 1 .
183 Typically
184 .B eqnrc
185 will use this to provide definitions appropriate for the output device.
186 The default output device is
187 .BR @DEVICE@ .
188 .
189 .TP
190 .BI \-M dir
191 Search
192 .I dir
193 for
194 .B eqnrc
195 before the default directories.
196 .
197 .TP
198 .B \-R
199 Don't load
200 .BR eqnrc .
201 .
202 .TP
203 .BI \-f F
204 This is equivalent to a
205 .BI gfont\  F
206 command.
207 .
208 .TP
209 .BI \-s n
210 This is equivalent to a
211 .BI gsize\  n
212 command.
213 This option is deprecated.
214 .B eqn
215 will normally set equations at whatever the current point size
216 is when the equation is encountered.
217 .
218 .TP
219 .BI \-p n
220 This says that subscripts and superscripts should be
221 .I n\~\c
222 points smaller than the surrounding text.
223 This option is deprecated. 
224 Normally
225 .B eqn
226 makes sets subscripts and superscripts at 70% 
227 of the size of the surrounding text.
228 .
229 .
230 .SH USAGE
231 Only the differences between GNU
232 .B eqn
233 and Unix eqn are described here.
234 .
235 .LP
236 Most of the new features of GNU
237 .B eqn
238 are based on \*(tx.
239 There are some references to the differences between \*(tx and GNU
240 .B eqn
241 below;
242 these may safely be ignored if you do not know \*(tx.
243 .
244 .SS Automatic spacing
245 .B eqn
246 gives each component of an equation a type, and adjusts the spacing
247 between components using that type.
248 Possible types are:
249 .
250 .RS
251 .TP \w'punctuation'u+2n
252 ordinary
253 an ordinary character such as `1' or `\c
254 .IR x ';
255 .
256 .TP
257 operator
258 a large operator such as
259 .ds Su `\s+5\(*S\s0'
260 .if \n(.g .if !c\(*S .ds Su the summation operator
261 \*(Su;
262 .
263 .TP
264 binary
265 a binary operator such as `\(pl';
266 .
267 .TP
268 relation
269 a relation such as `=';
270 .
271 .TP
272 opening
273 a opening bracket such as `(';
274 .
275 .TP
276 closing
277 a closing bracket such as `)';
278 .
279 .TP
280 punctuation
281 a punctuation character such as `,';
282 .
283 .TP
284 inner
285 a subformula contained within brackets;
286 .TP
287 suppress
288 spacing that suppresses automatic spacing adjustment.
289 .RE
290 .
291 .LP
292 Components of an equation get a type in one of two ways.
293 .
294 .TP
295 .BI type\  t\ e
296 This yields an equation component that contains\~\c
297 .I e
298 but that has type\~\c
299 .IR t ,
300 where
301 .I t
302 is one of the types mentioned above.
303 For example,
304 .B times
305 is defined as
306 .
307 .RS
308 .IP
309 .B
310 type "binary" \e(mu
311 .RE
312 .
313 .IP
314 The name of the type doesn't have to be quoted, but quoting protects
315 from macro expansion.
316 .
317 .TP
318 .BI chartype\  t\ text
319 Unquoted groups of characters are split up into individual characters,
320 and the type of each character is looked up;
321 this changes the type that is stored for each character;
322 it says that the characters in
323 .I text
324 from now on have type\~\c
325 .IR t .
326 For example,
327 .
328 .RS
329 .IP
330 .B
331 chartype "punctuation" .,;:
332 .RE
333 .
334 .IP
335 would make the characters `.,;:' have type punctuation
336 whenever they subsequently appeared in an equation.
337 The type\~\c
338 .I t
339 can also be
340 .B letter
341 or
342 .BR digit ;
343 in these cases
344 .B chartype
345 changes the font type of the characters.
346 See the
347 .B Fonts
348 subsection.
349 .
350 .SS New primitives
351 .TP
352 .IB e1\  smallover\  e2
353 This is similar to
354 .BR over ;
355 .B smallover
356 reduces the size of
357 .I e1
358 and
359 .IR e2 ;
360 it also puts less vertical space between
361 .I e1
362 or
363 .I e2
364 and the fraction bar.
365 The
366 .B over
367 primitive corresponds to the \*(tx
368 .B \eover
369 primitive in display styles;
370 .B smallover
371 corresponds to
372 .B \eover
373 in non-display styles.
374 .
375 .TP
376 .BI vcenter\  e
377 This vertically centers
378 .I e
379 about the math axis.
380 The math axis is the vertical position about which characters
381 such as `\(pl' and `\(mi' are centered; also it is the vertical position
382 used for the bar of fractions.
383 For example,
384 .B sum
385 is defined as
386 .
387 .RS
388 .IP
389 .B
390 { type "operator" vcenter size +5 \e(*S }
391 .RE
392 .
393 .TP
394 .IB e1\  accent\  e2
395 This sets
396 .I e2
397 as an accent over
398 .IR e1 .
399 .I e2
400 is assumed to be at the correct height for a lowercase letter;
401 .I e2
402 will be moved down according if
403 .I e1
404 is taller or shorter than a lowercase letter.
405 For example,
406 .B hat
407 is defined as
408 .
409 .RS
410 .IP
411 .B
412 accent { "^" }
413 .RE
414 .
415 .IP
416 .BR dotdot ,
417 .BR dot ,
418 .BR tilde ,
419 .BR vec ,
420 and
421 .B dyad
422 are also defined using the
423 .B accent
424 primitive.
425 .
426 .TP
427 .IB e1\  uaccent\  e2
428 This sets
429 .I e2
430 as an accent under
431 .IR e1 .
432 .I e2
433 is assumed to be at the correct height for a character without a descender;
434 .I e2
435 will be moved down if
436 .I e1
437 has a descender.
438 .B utilde
439 is pre-defined using
440 .B uaccent
441 as a tilde accent below the baseline.
442 .
443 .TP
444 .BI split\ \(ts text \(ts
445 This has the same effect as simply
446 .
447 .RS
448 .IP
449 .I text
450 .RE
451 .
452 .IP
453 but
454 .I text
455 is not subject to macro expansion because it is quoted;
456 .I text
457 will be split up and the spacing between individual characters
458 will be adjusted.
459 .
460 .TP
461 .BI nosplit\  text
462 This has the same effect as
463 .
464 .RS
465 .IP
466 .BI \(ts text \(ts
467 .RE
468 .
469 .IP
470 but because
471 .I text
472 is not quoted it will be subject to macro expansion;
473 .I text
474 will not be split up
475 and the spacing between individual characters will not be adjusted.
476 .
477 .TP
478 .IB e\  opprime
479 This is a variant of
480 .B prime
481 that acts as an operator on\~\c
482 .IR e .
483 It produces a different result from
484 .B prime
485 in a case such as
486 .BR A\ opprime\ sub\ 1 :
487 with
488 .B opprime
489 the\~\c
490 .B 1
491 will be tucked under the prime as a subscript to the\~\c
492 .B A
493 (as is conventional in mathematical typesetting),
494 whereas with
495 .B prime
496 the\~\c
497 .B 1
498 will be a subscript to the prime character.
499 The precedence of
500 .B opprime
501 is the same as that of
502 .B bar
503 and
504 .BR under ,
505 which is higher than that of everything except
506 .B accent
507 and
508 .BR uaccent .
509 In unquoted text a\~\c
510 .B '
511 that is not the first character will be treated like
512 .BR opprime .
513 .
514 .TP
515 .BI special\  text\ e
516 This constructs a new object from\~\c
517 .I e
518 using a
519 .BR @g@troff (@MAN1EXT@)
520 macro named
521 .IR text .
522 When the macro is called,
523 the string
524 .B 0s
525 will contain the output for\~\c
526 .IR e ,
527 and the number registers
528 .BR 0w ,
529 .BR 0h ,
530 .BR 0d ,
531 .BR 0skern ,
532 and
533 .BR 0skew
534 will contain the width, height, depth, subscript kern, and skew of\~\c
535 .IR e .
536 (The
537 .I "subscript kern"
538 of an object says how much a subscript on that object should be tucked in;
539 the
540 .I skew
541 of an object says how far to the right of the center of the object an
542 accent over the object should be placed.)
543 The macro must modify
544 .B 0s
545 so that it will output the desired result with its origin at the current
546 point, and increase the current horizontal position by the width
547 of the object.
548 The number registers must also be modified so that they correspond to the
549 result.
550 .
551 .IP
552 For example, suppose you wanted a construct that `cancels' an expression
553 by drawing a diagonal line through it.
554 .
555 .RS
556 .IP
557 .ft B
558 .if t .ne 6+\n(.Vu
559 .br
560 \&.EQ
561 .br
562 define cancel 'special Ca'
563 .br
564 \&.EN
565 .br
566 \&.de Ca
567 .br
568 \&.\ \ ds 0s \e
569 .br
570 \eZ'\e\e*(0s'\e
571 .br
572 \ev'\e\en(0du'\e
573 .br
574 \eD'l \e\en(0wu -\e\en(0hu-\e\en(0du'\e
575 .br
576 \ev'\e\en(0hu'
577 .br
578 \&..
579 .ft
580 .RE
581 .
582 .IP
583 Then you could cancel an expression\~\c
584 .I e
585 with
586 .BI \%cancel\ {\  e\  }
587 .
588 .IP
589 Here's a more complicated construct that draws a box round an expression:
590 .
591 .RS
592 .IP
593 .ft B
594 .if t .ne 11+\n(.Vu
595 \&.EQ
596 .br
597 define box 'special Bx'
598 .br
599 \&.EN
600 .br
601 \&.de Bx
602 .br
603 \&.\ \ ds 0s \e
604 .br
605 \eZ'\eh'1n'\e\e*(0s'\e
606 .br
607 \eZ'\e
608 .br
609 \ev'\e\en(0du+1n'\e
610 .br
611 \eD'l \e\en(0wu+2n 0'\e
612 .br
613 \eD'l 0 -\e\en(0hu-\e\en(0du-2n'\e
614 .br
615 \eD'l -\e\en(0wu-2n 0'\e
616 .br
617 \eD'l 0 \e\en(0hu+\e\en(0du+2n'\e
618 .br
619 \&'\e
620 .br
621 \eh'\e\en(0wu+2n'
622 .br
623 \&.\ \ nr 0w +2n
624 .br
625 \&.\ \ nr 0d +1n
626 .br
627 \&.\ \ nr 0h +1n
628 .br
629 \&..
630 .ft
631 .RE
632 .
633 .TP
634 .BI space\  n
635 A positive value of the integer\~\c
636 .I n
637 (in hundredths of an em) sets the vertical spacing before the equation,
638 a negative value sets the spacing after the equation, replacing the
639 default values.
640 This primitive provides an interface to
641 .BR groff 's
642 .B \ex
643 escape (but with opposite sign).
644 .
645 .IP
646 This keyword has no effect if the equation is part of a
647 .B pic
648 picture.
649 .
650 .SS Extended primitives
651 .TP
652 .BI col\  n\  {\  .\|.\|.\  }
653 .TQ
654 .BI ccol\  n\  {\  .\|.\|.\  }
655 .TQ
656 .BI lcol\  n\  {\  .\|.\|.\  }
657 .TQ
658 .BI rcol\  n\  {\  .\|.\|.\  }
659 .TQ
660 .BI pile\  n\  {\  .\|.\|.\  }
661 .TQ
662 .BI cpile\  n\  {\  .\|.\|.\  }
663 .TQ
664 .BI lpile\  n\  {\  .\|.\|.\  }
665 .TQ
666 .BI rpile\  n\  {\  .\|.\|.\  }
667 The integer value\~\c
668 .I n
669 (in hundredths of an em) increases the vertical spacing between rows,
670 using
671 .BR groff 's
672 .B \ex
673 escape.
674 Negative values are possible but have no effect.
675 If there is more than a single value given in a matrix, the biggest one
676 is used.
677 .
678 .SS Customization
679 The appearance of equations is controlled by a large number of parameters.
680 These can be set using
681 the
682 .B set
683 command.
684 .
685 .TP
686 .BI set\  p\ n
687 This sets parameter\~\c
688 .I p
689 to value\~\c
690 .IR n ;
691 .I n\~\c
692 is an integer.
693 For example,
694 .
695 .RS
696 .IP
697 .B
698 set x_height 45
699 .RE
700 .
701 .IP
702 says that
703 .B eqn
704 should assume an x\~height of 0.45\~ems.
705 .
706 .RS
707 .LP
708 Possible parameters are as follows.
709 Values are in units of hundredths of an em unless otherwise stated.
710 These descriptions are intended to be expository rather than
711 definitive.
712 .
713 .ie t \
714 .  TP \w'\fBdefault_rule_thickness'u+2n
715 .el \
716 .  TP
717 .B minimum_size
718 .B eqn
719 will not set anything at a smaller point-size than this.
720 The value is in points.
721 .
722 .TP
723 .B fat_offset
724 The
725 .B fat
726 primitive emboldens an equation
727 by overprinting two copies of the equation
728 horizontally offset by this amount.
729 .
730 .TP
731 .B over_hang
732 A fraction bar will be longer by twice this amount than
733 the maximum of the widths of the numerator and denominator;
734 in other words, it will overhang the numerator and
735 denominator by at least this amount.
736 .
737 .TP
738 .B accent_width
739 When
740 .B bar
741 or
742 .B under
743 is applied to a single character,
744 the line will be this long.
745 Normally,
746 .B bar
747 or
748 .B under
749 produces a line whose length is the width of the object to which it applies;
750 in the case of a single character,
751 this tends to produce a line that looks too long.
752 .
753 .TP
754 .B delimiter_factor
755 Extensible delimiters produced with the
756 .B left
757 and
758 .B right
759 primitives will have a combined height and depth of at least this many
760 thousandths of twice the maximum amount by which the sub-equation that
761 the delimiters enclose extends away from the axis.
762 .
763 .TP
764 .B delimiter_shortfall
765 Extensible delimiters produced with the
766 .B left
767 and
768 .B right
769 primitives will have a combined height and depth
770 not less than the difference of
771 twice the maximum amount by which the sub-equation that
772 the delimiters enclose extends away from the axis
773 and this amount.
774 .
775 .TP
776 .B null_delimiter_space
777 This much horizontal space is inserted
778 on each side of a fraction.
779 .
780 .TP
781 .B script_space
782 The width of subscripts and superscripts is increased by this amount.
783 .
784 .TP
785 .B thin_space
786 This amount of space is automatically inserted after punctuation
787 characters.
788 .
789 .TP
790 .B medium_space
791 This amount of space is automatically inserted on either side
792 of binary operators.
793 .
794 .TP
795 .B thick_space
796 This amount of space is automatically inserted on either side of
797 relations.
798 .
799 .TP
800 .B x_height
801 The height of lowercase letters without ascenders such as `x'.
802 .
803 .TP
804 .B axis_height
805 The height above the baseline of the center of characters
806 such as `\(pl' and `\(mi'.
807 It is important that this value is correct for the font
808 you are using.
809 .
810 .TP
811 .B default_rule_thickness
812 This should set to the thickness of the
813 .B \e(ru
814 character, or the thickness of horizontal lines produced with the
815 .B \eD
816 escape sequence.
817 .
818 .TP
819 .B num1
820 The
821 .B over
822 command will shift up the numerator by at least this amount.
823 .
824 .TP
825 .B num2
826 The
827 .B smallover
828 command will shift up the numerator by at least this amount.
829 .
830 .TP
831 .B denom1
832 The
833 .B over
834 command will shift down the denominator by at least this amount.
835 .
836 .TP
837 .B denom2
838 The
839 .B smallover
840 command will shift down the denominator by at least this amount.
841 .
842 .TP
843 .B sup1
844 Normally superscripts will be shifted up by at least this amount.
845 .
846 .TP
847 .B sup2
848 Superscripts within superscripts or upper limits
849 or numerators of
850 .B smallover
851 fractions
852 will be shifted up by at least this amount.
853 This is usually less than sup1.
854 .
855 .TP
856 .B sup3
857 Superscripts within denominators or square roots
858 or subscripts or lower limits will be shifted up by at least
859 this amount.
860 This is usually less than sup2.
861 .
862 .TP
863 .B sub1
864 Subscripts will normally be shifted down by at least this amount.
865 .
866 .TP
867 .B sub2
868 When there is both a subscript and a superscript, the subscript
869 will be shifted down by at least this amount.
870 .
871 .TP
872 .B sup_drop
873 The baseline of a superscript will be no more
874 than this much amount below the top of the object on
875 which the superscript is set.
876 .
877 .TP
878 .B sub_drop
879 The baseline of a subscript will be at least this much below
880 the bottom of the object on which the subscript is set.
881 .
882 .TP
883 .B big_op_spacing1
884 The baseline of an upper limit will be at least this
885 much above the top of the object on which the limit is set.
886 .
887 .TP
888 .B big_op_spacing2
889 The baseline of a lower limit will be at least this
890 much below the bottom of the object on which the limit is set.
891 .
892 .TP
893 .B big_op_spacing3
894 The bottom of an upper limit will be at least this much above the
895 top of the object on which the limit is set.
896 .
897 .TP
898 .B big_op_spacing4
899 The top of a lower limit will be at least this much below
900 the bottom of the object on which the limit is set.
901 .
902 .TP
903 .B big_op_spacing5
904 This much vertical space will be added above and below limits.
905 .
906 .TP
907 .B baseline_sep
908 The baselines of the rows in a pile or matrix will normally be
909 this far apart.
910 In most cases this should be equal to the sum of
911 .B num1
912 and
913 .BR denom1 .
914 .
915 .TP
916 .B shift_down
917 The midpoint between the top baseline and the bottom baseline
918 in a matrix or pile will be shifted down by this much from the axis.
919 In most cases this should be equal to
920 .BR axis_height .
921 .
922 .TP
923 .B column_sep
924 This much space will be added between columns in a matrix.
925 .
926 .TP
927 .B matrix_side_sep
928 This much space will be added at each side of a matrix.
929 .
930 .TP
931 .B draw_lines
932 If this is non-zero, lines will be drawn using the
933 .B \eD
934 escape sequence, rather than with the
935 .B \el
936 escape sequence and the
937 .B \e(ru
938 character.
939 .
940 .TP
941 .B body_height
942 The amount by which the height of the equation exceeds this
943 will be added as extra space before the line containing the equation
944 (using
945 .BR \ex ).
946 The default value is 85.
947 .
948 .TP
949 .B body_depth
950 The amount by which the depth of the equation exceeds this
951 will be added as extra space after the line containing the equation
952 (using
953 .BR \ex ).
954 The default value is 35.
955 .
956 .TP
957 .B nroff
958 If this is non-zero,
959 then
960 .B ndefine
961 will behave like
962 .B define
963 and
964 .B tdefine
965 will be ignored,
966 otherwise
967 .B tdefine
968 will behave like
969 .B define
970 and
971 .B ndefine
972 will be ignored.
973 The default value is\~0
974 (This is typically changed to\~1 by the
975 .B eqnrc
976 file for the
977 .BR ascii ,
978 .BR latin1 ,
979 .BR utf8 ,
980 and
981 .B cp1047
982 devices.)
983 .
984 .LP
985 A more precise description of the role of many of these
986 parameters can be found in Appendix\~H of
987 .IR "The \*(txbook" .
988 .RE
989 .
990 .SS Macros
991 Macros can take arguments.
992 In a macro body,
993 .BI $ n
994 where
995 .I n
996 is between 1 and\~9,
997 will be replaced by the
998 .IR n-th
999 argument if the macro is called with arguments;
1000 if there are fewer than
1001 .I n\~\c
1002 arguments, it will be replaced by nothing.
1003 A word containing a left parenthesis where the part of the word
1004 before the left parenthesis has been defined using the
1005 .B define
1006 command
1007 will be recognized as a macro call with arguments;
1008 characters following the left parenthesis
1009 up to a matching right parenthesis will be treated as comma-separated
1010 arguments;
1011 commas inside nested parentheses do not terminate an argument.
1012 .
1013 .TP
1014 .BI sdefine\  name\ X\ anything\ X
1015 This is like the
1016 .B define
1017 command, but
1018 .I name
1019 will not be recognized if called with arguments.
1020 .
1021 .TP
1022 .BI include\ \(ts file \(ts
1023 .TQ
1024 .BI copy\ \(ts file \(ts
1025 Include the contents of
1026 .I file
1027 .RB ( include
1028 and
1029 .B copy
1030 are synonyms).
1031 Lines of
1032 .I file
1033 beginning with
1034 .B .EQ
1035 or
1036 .B .EN
1037 will be ignored.
1038 .
1039 .TP
1040 .BI ifdef\  name\ X\ anything\ X
1041 If
1042 .I name
1043 has been defined by
1044 .B define
1045 (or has been automatically defined because
1046 .I name
1047 is the output device)
1048 process
1049 .IR anything ;
1050 otherwise ignore
1051 .IR anything .
1052 .I X
1053 can be any character not appearing in
1054 .IR anything .
1055 .
1056 .TP
1057 .BI undef\  name
1058 Remove definition of
1059 .IR name ,
1060 making it undefined.
1061 .
1062 .LP
1063 Besides the macros mentioned above, the following definitions are available:
1064 .BR Alpha ,
1065 .BR Beta ,
1066 \&.\|.\|.,
1067 .B Omega
1068 (this is the same as
1069 .BR ALPHA ,
1070 .BR BETA ,
1071 \&.\|.\|.,
1072 .BR OMEGA ),
1073 .B ldots
1074 (three dots on the base line),
1075 and
1076 .BR dollar .
1077 .
1078 .SS Fonts
1079 .B eqn
1080 normally uses at least two fonts to set an equation:
1081 an italic font for letters,
1082 and a roman font for everything else.
1083 The existing
1084 .B gfont
1085 command
1086 changes the font that is used as the italic font.
1087 By default this is\~\c
1088 .BR I .
1089 The font that is used as the roman font can be changed
1090 using the new
1091 .B grfont
1092 command.
1093 .
1094 .TP
1095 .BI grfont\  f
1096 Set the roman font to\~\c
1097 .IR f .
1098 .
1099 .LP
1100 The
1101 .B italic
1102 primitive uses the current italic font set by
1103 .BR gfont ;
1104 the
1105 .B roman
1106 primitive uses the current roman font set by
1107 .BR grfont .
1108 There is also a new
1109 .B gbfont
1110 command, which changes the font used by the
1111 .B bold
1112 primitive.
1113 If you only use the
1114 .BR roman ,
1115 .B italic
1116 and
1117 .B bold
1118 primitives to changes fonts within an equation,
1119 you can change all the fonts used by your equations
1120 just by using
1121 .BR gfont ,
1122 .B grfont
1123 and
1124 .B gbfont
1125 commands.
1126 .
1127 .LP
1128 You can control which characters are treated as letters
1129 (and therefore set in italics) by using the
1130 .B chartype
1131 command described above.
1132 A type of
1133 .B letter
1134 will cause a character to be set in italic type.
1135 A type of
1136 .B digit
1137 will cause a character to be set in roman type.
1138 .
1139 .
1140 .SH FILES
1141 .Tp \w'\fB@MACRODIR@/eqnrc'u+2n
1142 .B @MACRODIR@/eqnrc
1143 Initialization file.
1144 .
1145 .
1146 .SH BUGS
1147 Inline equations will be set at the point size that is current at the
1148 beginning of the input line.
1149 .
1150 .
1151 .SH "SEE ALSO"
1152 .BR groff (@MAN1EXT@),
1153 .BR @g@troff (@MAN1EXT@),
1154 .BR @g@pic (@MAN1EXT@),
1155 .BR groff_font (@MAN5EXT@),
1156 .I The\ \*(txbook
1157 .
1158 .\" Local Variables:
1159 .\" mode: nroff
1160 .\" End: