1 /* $NetBSD: pbox.h,v 1.1.1.1 2016/01/13 18:41:49 christos Exp $ */ 2 3 // -*- C++ -*- 4 /* Copyright (C) 1989, 1990, 1991, 1992 Free Software Foundation, Inc. 5 Written by James Clark (jjc@jclark.com) 6 7 This file is part of groff. 8 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 12 version. 13 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 17 for more details. 18 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. */ 22 23 extern int fat_offset; 24 25 extern int over_hang; 26 extern int accent_width; 27 28 extern int delimiter_factor; 29 extern int delimiter_shortfall; 30 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; 36 37 extern int num1; 38 extern int num2; 39 // we don't use num3, because we don't have \atop 40 extern int denom1; 41 extern int denom2; 42 extern int axis_height; 43 extern int sup1; 44 extern int sup2; 45 extern int sup3; 46 extern int default_rule_thickness; 47 extern int sub1; 48 extern int sub2; 49 extern int sup_drop; 50 extern int sub_drop; 51 extern int x_height; 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; 57 58 extern int baseline_sep; 59 extern int shift_down; 60 extern int column_sep; 61 extern int matrix_side_sep; 62 63 // ms.eqn relies on this! 64 65 #define LINE_STRING "10" 66 #define MARK_OR_LINEUP_FLAG_REG "MK" 67 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" 87 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" 118 119 #define DELIMITER_CHAR "\\(EQ" 120 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; 125 126 extern int script_style(int); 127 extern int cramped_style(int); 128 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; 138 139 void set_script_size(); 140 141 enum { HINT_PREV_IS_ITALIC = 01, HINT_NEXT_IS_ITALIC = 02 }; 142 143 extern const char *current_roman_font; 144