/* * extensions/verb.js * * Part of the jsMath package for mathematics on the web. * * This file implements the \verb macro. You can activate it * by calling * * jsMath.Extension.Macro('verb'); * * which will cause the extension to be loaded only when it is * needed, or you can force it to be loaded via * * jsMath.Extension.Require('verb'); * * once jsMath.js has been loaded, or by adding "extensions/verb.js" * to the loadFiles array in the easy/load.js file. * * --------------------------------------------------------------------- * * Copyright 2008 by Davide P. Cervone * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ /********************************************************************/ jsMath.Package(jsMath.Parser,{ macros: {verb: 'Verb'}, /* * Implement \verb|...| */ Verb: function (name) { var c = this.GetNext(); var start = ++this.i; if (c == "" ) {this.Error(this.cmd+name+" requires an argument"); return} while (this.i < this.string.length && this.string.charAt(this.i) != c) {this.i++} if (this.i == this.string.length) {this.Error("Can't find closing delimiter for "+this.cmd+name); return} var text = this.string.slice(start,this.i); this.i++; text = text.replace(/&/g,'&').replace(//g,'>'); text = ''+text+''; var box = jsMath.Box.Text(text,'normal','T',this.mlist.data.size).Styled(); box.h = box.bh+box.bd -jsMath.d; box.d = jsMath.d; this.mlist.Add(jsMath.mItem.Typeset(box)); } });