1 // -*- C++ -*- 2 /* Copyright (C) 1989, 1990, 1991, 1992 Free Software Foundation, Inc. 3 Written by James Clark (jjc@jclark.com) 4 5 This file is part of groff. 6 7 groff is free software; you can redistribute it and/or modify it under 8 the terms of the GNU General Public License as published by the Free 9 Software Foundation; either version 2, or (at your option) any later 10 version. 11 12 groff is distributed in the hope that it will be useful, but WITHOUT ANY 13 WARRANTY; without even the implied warranty of MERCHANTABILITY or 14 FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License 15 for more details. 16 17 You should have received a copy of the GNU General Public License along 18 with groff; see the file COPYING. If not, write to the Free Software 19 Foundation, 51 Franklin St - Fifth Floor, Boston, MA 02110-1301, USA. */ 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; 142