Annotation of loncom/html/adm/jsMath/extensions/moreArrows.js, revision 1.1

1.1     ! albertel    1: /*
        !             2:  *  extensions/moreArrows.js
        !             3:  *  
        !             4:  *  Part of the jsMath package for mathematics on the web.
        !             5:  *
        !             6:  *  This file implements additional arrow macros with under- and
        !             7:  *  overset labels.  It can be loaded by
        !             8:  *  
        !             9:  *    jsMath.Extension.Require('moreArrows');
        !            10:  *
        !            11:  *  or using \require{moreArrows} within a math formula.
        !            12:  *
        !            13:  *  ---------------------------------------------------------------------
        !            14:  *
        !            15:  *  Copyright 2005-2006 by Davide P. Cervone
        !            16:  * 
        !            17:  *  Licensed under the Apache License, Version 2.0 (the "License");
        !            18:  *  you may not use this file except in compliance with the License.
        !            19:  *  You may obtain a copy of the License at
        !            20:  * 
        !            21:  *      http://www.apache.org/licenses/LICENSE-2.0
        !            22:  * 
        !            23:  *  Unless required by applicable law or agreed to in writing, software
        !            24:  *  distributed under the License is distributed on an "AS IS" BASIS,
        !            25:  *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
        !            26:  *  See the License for the specific language governing permissions and
        !            27:  *  limitations under the License.
        !            28:  */
        !            29: 
        !            30: /********************************************************************/
        !            31: 
        !            32: jsMath.Script.Start();
        !            33: 
        !            34: jsMath.Extension.Require('leaders');
        !            35: 
        !            36: jsMath.Package(jsMath.Parser,{
        !            37: 
        !            38:   macros: {
        !            39:     xrightarrow:       ['HandleArrows','rightarrow'],
        !            40:     xleftarrow:        ['HandleArrows','leftarrow'],
        !            41:     xuprightharpoon:   ['HandleArrows','uprightharpoon'],
        !            42:     xupleftharpoon:    ['HandleArrows','upleftharpoon'],
        !            43:     xdownrightharpoon: ['HandleArrows','downrightharpoon'],
        !            44:     xdownleftharpoon:  ['HandleArrows','downleftharpoon']
        !            45:   },
        !            46:   
        !            47:   leaders: {
        !            48:     upleftharpoon:    {left: [1,0x28], rep:   [2,0x00]},
        !            49:     uprightharpoon:   {rep:  [2,0x00], right: [1,0x2A]},
        !            50:     downleftharpoon:  {left: [1,0x29], rep:   [2,0x00]},
        !            51:     downrightharpoon: {rep:  [2,0x00], right: [1,0x2B]}
        !            52:   },
        !            53: 
        !            54:   HandleArrows: function (name,data) {
        !            55:     var bot = this.GetBrackets(this.cmd+name); if (this.error) return;
        !            56:     var top = this.ProcessArg(this.cmd+name); if (this.error) return;
        !            57:     var box = jsMath.Box.Set(top,'S',this.mlist.data.size).Remeasured();
        !            58:     var w = box.w;
        !            59:     if (bot) {
        !            60:       bot = this.Process(bot); if (this.error) return;
        !            61:       var box = jsMath.Box.Set(bot,'S',this.mlist.data.size).Remeasured();
        !            62:       w = Math.max(w,box.w);
        !            63:     }
        !            64:     var leader = jsMath.Box.Leaders(w+.75,this.leaders[data[0]]);
        !            65:     box = jsMath.mItem.Atom('op',jsMath.Box.SetList([leader],'T',this.mlist.data.size));
        !            66:     box.limits = 1; box.sup = top; box.sub = bot;
        !            67:     this.mlist.Add(box);
        !            68:   }
        !            69: 
        !            70: });
        !            71: 
        !            72: jsMath.Script.End();

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>