mathchoice.js 2.3 KB

12345678910111213141516171819202122232425
  1. /* -*- Mode: Javascript; indent-tabs-mode:nil; js-indent-level: 2 -*- */
  2. /* vim: set ts=2 et sw=2 tw=80: */
  3. /*************************************************************
  4. *
  5. * MathJax/extensions/TeX/mathchoice.js
  6. *
  7. * Implements the \mathchoice macro (rarely used)
  8. *
  9. * ---------------------------------------------------------------------
  10. *
  11. * Copyright (c) 2009-2013 The MathJax Consortium
  12. *
  13. * Licensed under the Apache License, Version 2.0 (the "License");
  14. * you may not use this file except in compliance with the License.
  15. * You may obtain a copy of the License at
  16. *
  17. * http://www.apache.org/licenses/LICENSE-2.0
  18. *
  19. * Unless required by applicable law or agreed to in writing, software
  20. * distributed under the License is distributed on an "AS IS" BASIS,
  21. * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  22. * See the License for the specific language governing permissions and
  23. * limitations under the License.
  24. */MathJax.Hub.Register.StartupHook("TeX Jax Ready",function(){var c=MathJax.ElementJax.mml,b=MathJax.InputJax.TeX;b.Definitions.Add({macros:{mathchoice:"MathChoice"}},null,!0);b.Parse.Augment({MathChoice:function(a){var b=this.ParseArg(a),d=this.ParseArg(a),e=this.ParseArg(a);a=this.ParseArg(a);this.Push(c.TeXmathchoice(b,d,e,a))}});c.TeXmathchoice=c.mbase.Subclass({type:"TeXmathchoice",notParent:!0,choice:function(){if(null==this.selection){this.selection=0;var a=this.getValues("displaystyle","scriptlevel");this.selection=0<a.scriptlevel?Math.min(3,a.scriptlevel+1):a.displaystyle?0:1}return this.selection},selected:function(){return this.data[this.choice()]},setTeXclass:function(a){return this.selected().setTeXclass(a)},isSpacelike:function(){return this.selected().isSpacelike()},isEmbellished:function(){return this.selected().isEmbellished()},Core:function(){return this.selected()},CoreMO:function(){return this.selected().CoreMO()},toHTML:function(a){a=this.HTMLcreateSpan(a);a.bbox=this.Core().toHTML(a).bbox;a.firstChild&&a.firstChild.style.marginLeft&&(a.style.marginLeft=a.firstChild.style.marginLeft,a.firstChild.style.marginLeft="");return a},toSVG:function(){return this.Core().toSVG()}});MathJax.Hub.Startup.signal.Post("TeX mathchoice Ready")});MathJax.Ajax.loadComplete("[MathJax]/extensions/TeX/mathchoice.js");