1// -*- C++ -*- 2/* Copyright (C) 1989, 1990, 1991, 1992 Free Software Foundation, Inc. 3 Written by James Clark (jjc@jclark.com) 4 5This file is part of groff. 6 7groff is free software; you can redistribute it and/or modify it under 8the terms of the GNU General Public License as published by the Free 9Software Foundation; either version 2, or (at your option) any later 10version. 11 12groff is distributed in the hope that it will be useful, but WITHOUT ANY 13WARRANTY; without even the implied warranty of MERCHANTABILITY or 14FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License 15for more details. 16 17You should have received a copy of the GNU General Public License along 18with groff; see the file COPYING. If not, write to the Free Software 19Foundation, 51 Franklin St - Fifth Floor, Boston, MA 02110-1301, USA. */ 20 21extern int fat_offset; 22 23extern int over_hang; 24extern int accent_width; 25 26extern int delimiter_factor; 27extern int delimiter_shortfall; 28 29extern int null_delimiter_space; 30extern int script_space; 31extern int thin_space; 32extern int medium_space; 33extern int thick_space; 34 35extern int num1; 36extern int num2; 37// we don't use num3, because we don't have \atop 38extern int denom1; 39extern int denom2; 40extern int axis_height; 41extern int sup1; 42extern int sup2; 43extern int sup3; 44extern int default_rule_thickness; 45extern int sub1; 46extern int sub2; 47extern int sup_drop; 48extern int sub_drop; 49extern int x_height; 50extern int big_op_spacing1; 51extern int big_op_spacing2; 52extern int big_op_spacing3; 53extern int big_op_spacing4; 54extern int big_op_spacing5; 55 56extern int baseline_sep; 57extern int shift_down; 58extern int column_sep; 59extern 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 119const int CRAMPED_SCRIPT_STYLE = 0; 120const int SCRIPT_STYLE = 1; 121const int CRAMPED_DISPLAY_STYLE = 2; 122const int DISPLAY_STYLE = 3; 123 124extern int script_style(int); 125extern int cramped_style(int); 126 127const int ORDINARY_TYPE = 0; 128const int OPERATOR_TYPE = 1; 129const int BINARY_TYPE = 2; 130const int RELATION_TYPE = 3; 131const int OPENING_TYPE = 4; 132const int CLOSING_TYPE = 5; 133const int PUNCTUATION_TYPE = 6; 134const int INNER_TYPE = 7; 135const int SUPPRESS_TYPE = 8; 136 137void set_script_size(); 138 139enum { HINT_PREV_IS_ITALIC = 01, HINT_NEXT_IS_ITALIC = 02 }; 140 141extern const char *current_roman_font; 142