/itexToMML

To download this project, use:
bzr branch http://golem.ph.utexas.edu/~distler/code/itexToMML/

« back to all changes in this revision

Viewing changes to itex-src/itex2MML.y

  • Committer: Jacques Distler
  • Date: 2009-10-05 07:21:53 UTC
  • Revision ID: distler@golem.ph.utexas.edu-20091005072153-bibw6asyyutv35n2
Tags: 1.3.13
itex2MML 1.3.13

Introduce \mathrlap{}, \mathllap{} and \mathclap{}.
Actually, \mathrlap{} is equivalent to the foolishly
named \rlap{} command, introduced in itex2MML 1.3.9.
The problem is that TeX's \rlap{} command does not
work in math mode. It is possible to define a TeX
equivalent that does work in math mode (see
http://math.arizona.edu/~aprl/publications/mathclap/ )
and we should give the corresponding itex command the
same name (distinct from \rlap{}).

At the same time, I figured out how to implement
\mathllap{} (a math-mode version of \llap{}) and
\mathclap{} in MathML. So those come as a bonus.

Also, I implemented \colon, which has the correct
math-spacing, unlike ':'.

Show diffs side-by-side

added added

removed removed

1
 
/*             itex2MML 1.3.10
2
 
 *   itex2MML.y last modified 8/28/2009
 
1
/*             itex2MML 1.3.13
 
2
 *   itex2MML.y last modified 10/5/2009
3
3
 */
4
4
 
5
5
%{
277
277
%}
278
278
 
279
279
%left TEXOVER TEXATOP
280
 
%token CHAR STARTMATH STARTDMATH ENDMATH MI MIB MN MO SUP SUB MROWOPEN MROWCLOSE LEFT RIGHT BIG BBIG BIGG BBIGG BIGL BBIGL BIGGL BBIGGL FRAC TFRAC MATHOP MOP MOL MOLL MOF PERIODDELIM OTHERDELIM LEFTDELIM RIGHTDELIM MOS MOB SQRT ROOT BINOM UNDER OVER OVERBRACE UNDERLINE UNDERBRACE UNDEROVER TENSOR MULTI ARRAY COLSEP ROWSEP ARRAYOPTS COLLAYOUT COLALIGN ROWALIGN ALIGN EQROWS EQCOLS ROWLINES COLLINES FRAME PADDING ATTRLIST ITALICS BOLD SLASHED RM BB ST END BBLOWERCHAR BBUPPERCHAR BBDIGIT CALCHAR FRAKCHAR CAL FRAK RLAP ROWOPTS TEXTSIZE SCSIZE SCSCSIZE DISPLAY TEXTSTY TEXTBOX TEXTSTRING XMLSTRING CELLOPTS ROWSPAN COLSPAN THINSPACE MEDSPACE THICKSPACE QUAD QQUAD NEGSPACE PHANTOM HREF UNKNOWNCHAR EMPTYMROW STATLINE TOGGLE FGHIGHLIGHT BGHIGHLIGHT SPACE INTONE INTTWO INTTHREE BAR WIDEBAR VEC WIDEVEC HAT WIDEHAT CHECK WIDECHECK TILDE WIDETILDE DOT DDOT UNARYMINUS UNARYPLUS BEGINENV ENDENV MATRIX PMATRIX BMATRIX BBMATRIX VMATRIX VVMATRIX SVG ENDSVG SMALLMATRIX CASES ALIGNED GATHERED SUBSTACK PMOD RMCHAR COLOR BGCOLOR
 
280
%token CHAR STARTMATH STARTDMATH ENDMATH MI MIB MN MO SUP SUB MROWOPEN MROWCLOSE LEFT RIGHT BIG BBIG BIGG BBIGG BIGL BBIGL BIGGL BBIGGL FRAC TFRAC MATHOP MOP MOL MOLL MOF MOR PERIODDELIM OTHERDELIM LEFTDELIM RIGHTDELIM MOS MOB SQRT ROOT BINOM UNDER OVER OVERBRACE UNDERLINE UNDERBRACE UNDEROVER TENSOR MULTI ARRAY COLSEP ROWSEP ARRAYOPTS COLLAYOUT COLALIGN ROWALIGN ALIGN EQROWS EQCOLS ROWLINES COLLINES FRAME PADDING ATTRLIST ITALICS BOLD SLASHED RM BB ST END BBLOWERCHAR BBUPPERCHAR BBDIGIT CALCHAR FRAKCHAR CAL FRAK CLAP LLAP RLAP ROWOPTS TEXTSIZE SCSIZE SCSCSIZE DISPLAY TEXTSTY TEXTBOX TEXTSTRING XMLSTRING CELLOPTS ROWSPAN COLSPAN THINSPACE MEDSPACE THICKSPACE QUAD QQUAD NEGSPACE PHANTOM HREF UNKNOWNCHAR EMPTYMROW STATLINE TOGGLE FGHIGHLIGHT BGHIGHLIGHT SPACE INTONE INTTWO INTTHREE BAR WIDEBAR VEC WIDEVEC HAT WIDEHAT CHECK WIDECHECK TILDE WIDETILDE DOT DDOT UNARYMINUS UNARYPLUS BEGINENV ENDENV MATRIX PMATRIX BMATRIX BBMATRIX VMATRIX VVMATRIX SVG ENDSVG SMALLMATRIX CASES ALIGNED GATHERED SUBSTACK PMOD RMCHAR COLOR BGCOLOR
281
281
 
282
282
%%
283
283
 
543
543
| munderline
544
544
| munderover
545
545
| emptymrow
546
 
| rlap
 
546
| mathclap
 
547
| mathllap
 
548
| mathrlap
547
549
| displaystyle
548
550
| textstyle
549
551
| textsize
793
795
  $$ = itex2MML_copy3("<mo lspace=\"0em\" rspace=\"thinmathspace\">", $1, "</mo>");
794
796
  itex2MML_free_string($1);
795
797
}
 
798
| MOR {
 
799
  itex2MML_rowposn = 2;
 
800
  $$ = itex2MML_copy3("<mo lspace=\"verythinmathspace\">", $1, "</mo>");
 
801
  itex2MML_free_string($1);
 
802
}
796
803
| MATHOP TEXTSTRING {
797
804
  itex2MML_rowposn = 2;
798
805
  $$ = itex2MML_copy3("<mo lspace=\"0em\" rspace=\"thinmathspace\">", $2, "</mo>");
861
868
  itex2MML_free_string($3);
862
869
};
863
870
 
864
 
rlap: RLAP closedTerm {
 
871
mathrlap: RLAP closedTerm {
865
872
  $$ = itex2MML_copy3("<mpadded width=\"0\">", $2, "</mpadded>");
866
873
  itex2MML_free_string($2);
867
874
};
868
875
 
 
876
mathllap: LLAP closedTerm {
 
877
  $$ = itex2MML_copy3("<mpadded width=\"0\" lspace=\"-100%width\">", $2, "</mpadded>");
 
878
  itex2MML_free_string($2);
 
879
};
 
880
 
 
881
mathclap: CLAP closedTerm {
 
882
  $$ = itex2MML_copy3("<mpadded width=\"0\" lspace=\"-50%width\">", $2, "</mpadded>");
 
883
  itex2MML_free_string($2);
 
884
};
 
885
 
869
886
textstring: TEXTBOX TEXTSTRING {
870
887
  $$ = itex2MML_copy3("<mtext>", $2, "</mtext>");
871
888
  itex2MML_free_string($2);