home *** CD-ROM | disk | FTP | other *** search
/ PC World 2000 May / PCWorld_2000-05_cd.bin / Komunik / amaya / amaya25.exe / _SETUP.1 / MathML.trans < prev    next >
Encoding:
Text File  |  2000-02-28  |  5.7 KB  |  338 lines

  1. ! file MathML.trans : structure transformation for MathML
  2. ! see HTML.trans for a description of Trans language
  3. !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
  4.  
  5. ! WARNING : transformations do NOT work with Multiscript elements
  6. !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
  7.  
  8. !!! mrow transformations
  9.  
  10. !surround an element with a mrow
  11. surrounding row: *;
  12.         {
  13.         * > mrow:*;
  14.         }
  15.  
  16.  
  17. !surround a sequence of elements with a mrow
  18. surrounding row: *,*+;
  19.         {
  20.         * > mrow:*;
  21.         }
  22.  
  23. ! remove a mrow level
  24. remove row: mrow{*+};
  25.         {
  26.         * > :*;
  27.         }
  28.  
  29. !!! mstyle transformations
  30.  
  31. !surround an element with a mstyle
  32. surrounding mstyle: *;
  33.         {
  34.         * > mstyle:*;
  35.         }
  36.  
  37.  
  38. !surround a sequence of elements with a mstyle
  39. surrounding mstyle: *,*+;
  40.         {
  41.         * > mstyle:*;
  42.         }
  43.  
  44. ! remove a mstyle level
  45. remove mstyle: mstyle{*+};
  46.         {
  47.         * > :*;
  48.         }
  49.  
  50. !!! Root Transformations
  51.  
  52. !surround an element with a root
  53. surrounding root : *;
  54.     {
  55.     * > mroot:*;
  56.     * > mroot:none % ;
  57.     }
  58.  
  59. !surround a sequence of elements with a root
  60. surrounding root: *+,last:*;
  61.         {
  62.         * > mroot.mrow:*;
  63.     last > mroot.mrow:*;
  64.     last > mroot:none % ;
  65.         }
  66.  
  67. !remove a root
  68. remove root: mroot{base:*,? index:*};
  69.         {
  70.         base > :*;
  71.     index / ;
  72.         }
  73.  
  74.  
  75. !!! Square Root Transformations
  76.  
  77. !surround an element with a square root
  78. surrounding square root: *;
  79.         {
  80.         * > msqrt:*;
  81.         }
  82.  
  83.  
  84. !surround a sequence of elements with a square root
  85. surrounding square root: *,*+;
  86.         {
  87.         * > msqrt.mrow:*;
  88.         }
  89.  
  90. !remove a square root
  91. remove square root: msqrt{*};
  92.         {
  93.         * > :*;
  94.         }
  95.  
  96. !transform a square root into a root
  97. root with index: msqrt{*};
  98.     {
  99.     * > mroot:*;
  100.     * > mroot:none %;
  101.     }
  102.  
  103. !transform a square root into a menclose
  104. menclose: msqrt{*};
  105.     {
  106.     * > menclose:*;
  107.     }
  108.  
  109. !!! menclose Transformations
  110.  
  111. !surround an element with a menclose
  112. surrounding menclose: *;
  113.         {
  114.         * > menclose:*;
  115.         }
  116.  
  117.  
  118. !surround a sequence of elements with a menclose
  119. surrounding menclose: *,*+;
  120.         {
  121.         * > menclose:*;
  122.         }
  123.  
  124. !remove a menclose
  125. remove menclose: menclose{*};
  126.         {
  127.         * > :*;
  128.         }
  129.  
  130. !transform a menclose into a square root
  131. square root: menclose{*};
  132.     {
  133.     * > msqrt:*;
  134.     }
  135.  
  136. !!! Fraction transformations
  137.  
  138. !transform 2 elements into a fraction
  139. fraction: (num:*,den:*) | mrow{num:*,den:*};
  140.         {
  141.         num > mfrac:*;
  142.         den > mfrac:*;
  143.         }
  144.  
  145. !transform an  element into a numerator
  146. numerator: *;
  147.         {
  148.         * > mfrac:*;
  149.         * > mfrac:none %;
  150.         }
  151.  
  152. !transform an sequence of elements into a numerator
  153. numerator: ?*+,last:*;
  154.         {
  155.         * > mfrac.mrow:*;
  156.     last > mfrac.mrow:*;
  157.         last > mfrac:none %;
  158.         }
  159.  
  160. !transform an element into a denominator
  161. denominator: *;
  162.         {
  163.         * > mfrac:none %;
  164.         * > mfrac:*;
  165.         }
  166.  
  167. !transform an sequence of elements into a denominator
  168. denominator: first:*,?*+;
  169.         {
  170.         first > mfrac:none %;
  171.     first > mfrac.mrow:*;
  172.         * > mfrac.mrow:*;
  173.         }
  174.  
  175. !remove a fraction
  176. remove fraction: mfrac{?(num:*),?(den:*)};
  177.         {
  178.         num > :*;
  179.         den > :*;
  180.         }
  181.  
  182.  
  183. !!! Sub and Sup Transformations
  184.  
  185. !surroud an element with a subsup
  186. add sub and sup:*;
  187.     {
  188.     * > msubsup:*;
  189.     * > msubsup:none%;
  190.     * > msubsup:none;
  191.     }
  192.  
  193. !removes a subsup
  194. remove subsup: msubsup{base:*,?sub:*,?sup:*};
  195.     {
  196.     base > :*;
  197.     sub /;
  198.     sup /;
  199.     }
  200.  
  201. !removes a superscript
  202. remove superscript: msubsup{base:*,?sub:*,?sup:*};
  203.     {
  204.     msubsup > msub;
  205.     sup /;
  206.     }
  207.  
  208. !removes a subscript
  209. remove subscript: msubsup{base:*,?sub:*,?sup:*};
  210.     {
  211.     msubsup > msup;
  212.     sub /;
  213.     }
  214.  
  215. !surroud element with a sub
  216. add subscript:*;
  217.     {
  218.     * > msub:*;
  219.     * > msub:none %;
  220.     }
  221.  
  222. !removes a subscript
  223. remove subscript: msub{base:*,?sub:*};
  224.     {
  225.     base > :*;
  226.     sub /;
  227.     }
  228.  
  229. !surroud an element with a sup
  230. add superscript:*;
  231.     {
  232.     * > msup:*;
  233.     * > msup:none %;
  234.     }
  235.  
  236. !removes a superscript
  237. remove superscript: msup{base:*,?sup:*};
  238.     {
  239.     base > :*;
  240.     sup /;
  241.     }
  242.  
  243. !change msub into msup
  244. superscript:msub;
  245.     {
  246.     msub > msup;
  247.     }
  248.  
  249. !change msup into msub
  250. subscript:msup;
  251.     {
  252.     msup > msub;
  253.     }
  254.  
  255. !change msub or msup into msubsup
  256. subsup:msub{base:*,sub:*} | msup{base:*,sup:*};
  257.     {
  258.     base > msubsup:*;
  259.     sup > msubsup:none %;
  260.     sup > msubsup:*;
  261.     sub > msubsup:*;
  262.     sub > msubsup:none;
  263.     }
  264.  
  265. !!! Under and Over transformations
  266.  
  267. !surroud an element with a underover
  268. add under and over:*;
  269.     {
  270.     * > munderover:*;
  271.     * > munderover:none %;
  272.     * > munderover:none;
  273.     }
  274.  
  275. ! remove an underover
  276. remove under and over:munderover{base:*,?under:*,?over:*};
  277.     {
  278.     base > :*;
  279.     under /;
  280.     over /;
  281.     }
  282.  
  283. !surroud an element with a over
  284. add over:*;
  285.     {
  286.     * > mover:*;
  287.     * > mover:none %;
  288.     }
  289.  
  290. ! remove an over
  291. remove under and over:mover{base:*,?over:*};
  292.     {
  293.     base > :*;
  294.     over /;
  295.     }
  296.  
  297. !surroud an element with a under
  298. add under:*;
  299.     {
  300.     * > munder:*;
  301.     * > munder:none;
  302.     }
  303.  
  304. ! remove an under
  305. remove under:munder{base:*,?under:*};
  306.     {
  307.     base > :*;
  308.     under /;
  309.     }
  310.  
  311. !!! Parenthesis Transformations
  312.  
  313. !surround an element with parentheses
  314. parenthesize:*;
  315.         {
  316.         * > mrow:mo."(";
  317.         * > mrow:*;
  318.         * > mrow:mo.")";
  319.         }
  320.  
  321. !surround a sequence of elements with parentheses
  322. !group: first:*,?*+, last:* ;
  323. !        {
  324. !        first > mrow:mo."(";
  325. !        first > mrow:*;
  326. !        * > mrow:*;
  327. !        last > mrow:*;
  328. !        last > mrow:mo.")";
  329. !        }
  330.  
  331. !remove parenthesis
  332. remove parenthesis: mrow{mf,?*+,mf};
  333.     {
  334.     mf /;
  335.     * > :*;
  336.     }
  337.  
  338.