--- /dev/null
+jsMath.Package(jsMath.Parser,{
+
+ macros: {font: 'Font'},
+ fontCS: {},
+
+ /*
+ * Get a CS name or give an error
+ */
+ GetCSname: function (cmd) {
+ var c = this.GetNext();
+ if (c != this.cmd) {this.Error(cmd+" must be followed by a control sequence"); return null}
+ var cs = this.trimSpaces(this.GetArgument(cmd)); if (this.error) {return null};
+ return cs.substr(1);
+ },
+
+ /*
+ * Handle the \font command
+ */
+ Font: function (name) {
+ var cs = this.GetCSname(this.cmd+name); if (this.error) return;
+ while (this.nextIsSpace()) {this.i++}
+ if (this.string.charAt(this.i++) == '=') {
+ while (this.nextIsSpace()) {this.i++}
+ var font = this.string.slice(this.i).match(/^[a-z]+[0-9]+/i);
+ if (font) {
+ this.i += (new String(font)).length;
+ if (jsMath.TeX.famName[font] != null) {
+ this.macros[cs] = ['HandleFont',jsMath.TeX.famName[font]];
+ } else {
+ this.macros[cs] = ['Extension',jsMath.Font.URL(font),"fontCS"];
+ this.fontCS[cs] = 1; // so Extension has something to delete
+ }
+ } else {this.Error("Missing font name")}
+ } else {this.Error("Missing font definition")}
+ }
+
+});
+