STRUCTURE Math; DEFPRES MathP; ATTR INLSTYLE = YES; CONST EmptyContents = ''; EmptyHead = ' '; ModuloConstant = ' mod '; STRUCT Math = LIST OF (Choice_math) ; Choice_math = CASE OF Textual; Emb_tex; Fraction; Subscr_d; Root_cst; Int_cst; Sum_cst; Stackrel; Superline; Lim_like; Delimiters; Array; Thin_space; Medium_space; Thick_space; Cdots; Ldots; Vdots; Ddots; B_Modulo; P_Modulo; Invoc_Fct; END ; Textual (ATTR CALLIGRAPHIC = Activec; NEGATED = Activen; ACCENT = Hat, Acute, Tilde, Bar, Vec, Dot, Ddot, Sprime, Dprime, Grave; SHAVE = Actives) = TEXT ; Emb_tex = TEXT ; Fraction = BEGIN Numera_r; Denomi_r; END ; Subscr_d = BEGIN Main; ? Presub; ? Presup; {/?} Subscr; {/?} Supscr; END ; Root_cst = BEGIN ? Root_ord; Root_obj; END ; Int_cst = BEGIN L_part_a; Integrnd; END ; Sum_cst = BEGIN L_part_b; Operand; END ; Stackrel = BEGIN Upper_a; Lower_a; END ; Superline (ATTR LINE_TYPE = OverBar, UnderBar, OverBrace, UnderBrace, WideHat, WideTilde) = LIST OF (Choice_math); Lim_like = BEGIN L_part_c; R_part_c; END ; Delimiters = BEGIN Left_del; Included_1; Right_del; END ; Thin_space = CONSTANT EmptyContents ; Medium_space = CONSTANT EmptyContents ; Thick_space = CONSTANT EmptyContents ; Cdots = CONSTANT EmptyContents ; Ldots = CONSTANT EmptyContents ; Vdots = CONSTANT EmptyContents ; Ddots = CONSTANT EmptyContents ; Invoc_Fct = BEGIN Function_name; Parameter; END; B_Modulo = CONSTANT ModuloConstant; P_Modulo = LIST OF (Choice_math) ; Numera_r = LIST OF (Choice_math) ; Denomi_r = LIST OF (Choice_math) ; Main = LIST OF (Choice_math) ; Presub = LIST OF (Choice_math) ; Presup = LIST OF (Choice_math) ; Subscr = LIST OF (Choice_math) ; Supscr = LIST OF (Choice_math) ; Root_ord = LIST OF (Choice_math) ; Root_obj = LIST OF (Choice_math) ; L_part_a = BEGIN Intsym; {/?} Lower_bd; {/?} Upper_bd; END ; Integrnd = LIST OF (Choice_math) ; Intsym (ATTR INTTYPE = Single, Double, Contour) = CONSTANT EmptyContents WITH INTTYPE ?= Single; Lower_bd = LIST OF (Choice_math) ; Upper_bd = LIST OF (Choice_math) ; L_part_b = BEGIN Sumsym; {/?} Lower_ex; {/?} Upper_ex; END ; Operand = LIST OF (Choice_math) ; Sumsym = SYMBOL ; Lower_ex = LIST OF (Choice_math) ; Upper_ex = LIST OF (Choice_math) ; Lower_a = LIST OF (Choice_math) ; Upper_a = LIST OF (Choice_math) ; L_part_c (ATTR LIMITOP = Inf, Limm, Liminf, Limsup, Maxx, Minn, Sup) = BEGIN Range; END WITH LIMITOP ?= Limm; R_part_c = LIST OF (Choice_math) ; Function_name = TEXT; Parameter = LIST OF (Choice_math) ; Range = LIST OF (Choice_math) ; Left_del = SYMBOL ; Included_1 = LIST OF (Choice_math) ; Right_del = SYMBOL ; Array (ATTR ROW_VALIGN = Row_top, Row_bottom) = BEGIN Array_head = LIST OF (Column_head); Array_body = LIST OF (Array_row); END; Column_head (ATTR COLUMN_WIDTH = INTEGER; ROW_ALIGN = Row_left, Row_center, Row_right) = CONSTANT EmptyHead; Array_row = LIST OF (Array_cell); Array_cell (ATTR REF_COLUMN = REFERENCE(Column_head)) = LIST OF (Choice_math); EXCEPT #include "exc_matrix.h" Math: MoveResize; Textual: MoveResize; Fraction: MoveResize; Subscr_d: MoveResize; Root_cst: MoveResize; Int_cst: MoveResize; Sum_cst: MoveResize; Stackrel: MoveResize; Superline: MoveResize; Lim_like: MoveResize; Delimiters: MoveResize; P_Modulo: MoveResize; Numera_r: MoveResize; Denomi_r: MoveResize; Main: MoveResize; Presub: MoveResize; Presup: MoveResize; Subscr: MoveResize; Supscr: MoveResize; Root_ord: MoveResize; Root_obj: MoveResize; L_part_a: MoveResize; Integrnd: MoveResize; Lower_bd: MoveResize; Upper_bd: MoveResize; L_part_b: MoveResize; Operand: MoveResize; Lower_ex: MoveResize; Upper_ex: MoveResize; Lower_a: MoveResize; Upper_a: MoveResize; L_part_c: MoveResize; R_part_c: MoveResize; Parameter: MoveResize; Range: MoveResize; Included_1: MoveResize; Array: MoveResize; Column_head:MoveResize, Nohmove, Novmove, Nocut; Array_head: MoveResize, Nohmove, Novmove, Nocut; Array_row: MoveResize, Nohmove, EXC_ID_Tableau; Array_cell: MoveResize, NoHMove, NoHResize, EXC_ID_Tableau, EXC_ID_Cellule; COLUMN_WIDTH:NewWidth; REF_COLUMN: Invisible; END