/contrib/groff/src/preproc/eqn/pbox.h

https://bitbucket.org/freebsd/freebsd-head/ · C++ Header · 141 lines · 102 code · 17 blank · 22 comment · 0 complexity · e78550a35cc420d1271936bd14718287 MD5 · raw file

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