Home | History | Annotate | Line # | Download | only in eqn
      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 (at) 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