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