4 /* Copyright (C) 1989, 1990, 1991, 1992 Free Software Foundation, Inc.
5 Written by James Clark (jjc@jclark.com)
7 This file is part of groff.
9 groff is free software; you can redistribute it and/or modify it under
10 the terms of the GNU General Public License as published by the Free
11 Software Foundation; either version 2, or (at your option) any later
14 groff is distributed in the hope that it will be useful, but WITHOUT ANY
15 WARRANTY; without even the implied warranty of MERCHANTABILITY or
16 FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
19 You should have received a copy of the GNU General Public License along
20 with groff; see the file COPYING. If not, write to the Free Software
21 Foundation, 51 Franklin St - Fifth Floor, Boston, MA 02110-1301, USA. */
23 extern int fat_offset
;
26 extern int accent_width
;
28 extern int delimiter_factor
;
29 extern int delimiter_shortfall
;
31 extern int null_delimiter_space
;
32 extern int script_space
;
33 extern int thin_space
;
34 extern int medium_space
;
35 extern int thick_space
;
39 // we don't use num3, because we don't have \atop
42 extern int axis_height
;
46 extern int default_rule_thickness
;
52 extern int big_op_spacing1
;
53 extern int big_op_spacing2
;
54 extern int big_op_spacing3
;
55 extern int big_op_spacing4
;
56 extern int big_op_spacing5
;
58 extern int baseline_sep
;
59 extern int shift_down
;
60 extern int column_sep
;
61 extern int matrix_side_sep
;
63 // ms.eqn relies on this!
65 #define LINE_STRING "10"
66 #define MARK_OR_LINEUP_FLAG_REG "MK"
68 #define WIDTH_FORMAT PREFIX "w%d"
69 #define HEIGHT_FORMAT PREFIX "h%d"
70 #define DEPTH_FORMAT PREFIX "d%d"
71 #define TOTAL_FORMAT PREFIX "t%d"
72 #define SIZE_FORMAT PREFIX "z%d"
73 #define SMALL_SIZE_FORMAT PREFIX "Z%d"
74 #define SUP_RAISE_FORMAT PREFIX "p%d"
75 #define SUB_LOWER_FORMAT PREFIX "b%d"
76 #define SUB_KERN_FORMAT PREFIX "k%d"
77 #define FONT_FORMAT PREFIX "f%d"
78 #define SKEW_FORMAT PREFIX "s%d"
79 #define LEFT_WIDTH_FORMAT PREFIX "lw%d"
80 #define LEFT_DELIM_STRING_FORMAT PREFIX "l%d"
81 #define RIGHT_DELIM_STRING_FORMAT PREFIX "r%d"
82 #define SQRT_STRING_FORMAT PREFIX "sqr%d"
83 #define SQRT_WIDTH_FORMAT PREFIX "sq%d"
84 #define BASELINE_SEP_FORMAT PREFIX "bs%d"
85 // this needs two parameters, the uid and the column index
86 #define COLUMN_WIDTH_FORMAT PREFIX "cw%d,%d"
88 #define BAR_STRING PREFIX "sqb"
89 #define TEMP_REG PREFIX "temp"
90 #define MARK_REG PREFIX "mark"
91 #define MARK_WIDTH_REG PREFIX "mwidth"
92 #define SAVED_MARK_REG PREFIX "smark"
93 #define MAX_SIZE_REG PREFIX "mxsz"
94 #define REPEAT_APPEND_STRING_MACRO PREFIX "ras"
95 #define TOP_HEIGHT_REG PREFIX "th"
96 #define TOP_DEPTH_REG PREFIX "td"
97 #define MID_HEIGHT_REG PREFIX "mh"
98 #define MID_DEPTH_REG PREFIX "md"
99 #define BOT_HEIGHT_REG PREFIX "bh"
100 #define BOT_DEPTH_REG PREFIX "bd"
101 #define EXT_HEIGHT_REG PREFIX "eh"
102 #define EXT_DEPTH_REG PREFIX "ed"
103 #define TOTAL_HEIGHT_REG PREFIX "tot"
104 #define DELTA_REG PREFIX "delta"
105 #define DELIM_STRING PREFIX "delim"
106 #define DELIM_WIDTH_REG PREFIX "dwidth"
107 #define SAVED_FONT_REG PREFIX "sfont"
108 #define SAVED_PREV_FONT_REG PREFIX "spfont"
109 #define SAVED_INLINE_FONT_REG PREFIX "sifont"
110 #define SAVED_INLINE_PREV_FONT_REG PREFIX "sipfont"
111 #define SAVED_SIZE_REG PREFIX "ssize"
112 #define SAVED_INLINE_SIZE_REG PREFIX "sisize"
113 #define SAVED_INLINE_PREV_SIZE_REG PREFIX "sipsize"
114 #define SAVE_FONT_STRING PREFIX "sfont"
115 #define RESTORE_FONT_STRING PREFIX "rfont"
116 #define INDEX_REG PREFIX "i"
117 #define TEMP_MACRO PREFIX "tempmac"
119 #define DELIMITER_CHAR "\\(EQ"
121 const int CRAMPED_SCRIPT_STYLE
= 0;
122 const int SCRIPT_STYLE
= 1;
123 const int CRAMPED_DISPLAY_STYLE
= 2;
124 const int DISPLAY_STYLE
= 3;
126 extern int script_style(int);
127 extern int cramped_style(int);
129 const int ORDINARY_TYPE
= 0;
130 const int OPERATOR_TYPE
= 1;
131 const int BINARY_TYPE
= 2;
132 const int RELATION_TYPE
= 3;
133 const int OPENING_TYPE
= 4;
134 const int CLOSING_TYPE
= 5;
135 const int PUNCTUATION_TYPE
= 6;
136 const int INNER_TYPE
= 7;
137 const int SUPPRESS_TYPE
= 8;
139 void set_script_size();
141 enum { HINT_PREV_IS_ITALIC
= 01, HINT_NEXT_IS_ITALIC
= 02 };
143 extern const char *current_roman_font
;