[hmath-commits] org.hartmath.tex2mml/src/org/hartmath/tex2mml Space.java,NONE,1.1 Identifier.java,1.
Status: Pre-Alpha
Brought to you by:
jsurfer
|
From: Klaus H. <js...@us...> - 2004-04-14 19:54:32
|
Update of /cvsroot/hmath/org.hartmath.tex2mml/src/org/hartmath/tex2mml In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv20339/src/org/hartmath/tex2mml Modified Files: Identifier.java Row.java Scanner.java Operator.java TeX2MathMLFactory.java Text.java Number.java Node.java TeXParser.java Added Files: Space.java Log Message: misc changes --- NEW FILE: Space.java --- package org.hartmath.tex2mml; public class Space extends Node { String fWidth; public Space(String mmlWidth, String cssOutput) { super("mspace", cssOutput); fWidth = mmlWidth; } public int getType() { return TeX2MathMLFactory.CONSTANT; } public void convert2MML(TeX2MathMLFactory f, StringBuffer buf, boolean noMrowTags) { f.tagStart(buf, fTag+" width=\""+fWidth+"\"/"); } public void convert2CSS(StringBuffer buf, boolean noTags) { buf.append(fOutput); } } Index: Operator.java =================================================================== RCS file: /cvsroot/hmath/org.hartmath.tex2mml/src/org/hartmath/tex2mml/Operator.java,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** Operator.java 19 Mar 2004 20:19:03 -0000 1.3 --- Operator.java 14 Apr 2004 19:54:22 -0000 1.4 *************** *** 12,15 **** --- 12,22 ---- } + public Operator(String oper, Map attributes) { + super("mo", ""); + fOperator = oper; + fType = TeX2MathMLFactory.CONSTANT; + fCSSOperator = ""; + fAttributes = attributes; + } public Operator(String oper, int type) { super("mo", ""); *************** *** 27,31 **** fAttributes = attributes; } ! public Operator(String oper, String cssOper, int type) { super("mo", ""); --- 34,38 ---- fAttributes = attributes; } ! public Operator(String oper, String cssOper, int type) { super("mo", ""); *************** *** 44,54 **** } ! public void convert2MML(TeX2MathMLFactory f,StringBuffer buf) { ! f.tagStart(buf, "mo"); ! buf.append(fOperator.toString()); ! f.tagEnd(buf, "mo"); } ! ! public void convert2CSS(StringBuffer buf,boolean noTags) { buf.append(fOperator.toString()); } --- 51,82 ---- } ! public void convert2MML(TeX2MathMLFactory f, StringBuffer buf, boolean noMrowTags) { ! ! if (containsAttribute(TeX2MathMLFactory.APPLY_FUNCTION)) { ! if (!noMrowTags) { ! f.tagStart(buf, "mrow"); ! } ! f.tagStart(buf, "mi"); ! buf.append(fOperator.toString()); ! f.tagEnd(buf, "mi"); ! f.tagStart(buf, "mo"); ! buf.append("⁡"); ! f.tagEnd(buf, "mo"); ! if (!noMrowTags) { ! f.tagEnd(buf, "mrow"); ! } ! } else { ! if (containsAttribute(TeX2MathMLFactory.STRETCHY_FALSE)) { ! f.tagStart(buf, "mo stretchy=\"false\""); ! } else { ! f.tagStart(buf, "mo"); ! } ! buf.append(fOperator.toString()); ! f.tagEnd(buf, "mo"); ! ! } } ! ! public void convert2CSS(StringBuffer buf, boolean noTags) { buf.append(fOperator.toString()); } *************** *** 87,91 **** return (String) fAttributes.get(key); } ! /** * @return Returns the cSSOperator. --- 115,119 ---- return (String) fAttributes.get(key); } ! /** * @return Returns the cSSOperator. *************** *** 96,100 **** /** ! * @param operator The cSSOperator to set. */ public void setCSSOperator(String operator) { --- 124,129 ---- /** ! * @param operator ! * The cSSOperator to set. */ public void setCSSOperator(String operator) { Index: Scanner.java =================================================================== RCS file: /cvsroot/hmath/org.hartmath.tex2mml/src/org/hartmath/tex2mml/Scanner.java,v retrieving revision 1.5 retrieving revision 1.6 diff -C2 -d -r1.5 -r1.6 *** Scanner.java 2 Apr 2004 21:07:01 -0000 1.5 --- Scanner.java 14 Apr 2004 19:54:22 -0000 1.6 *************** *** 60,63 **** --- 60,64 ---- final static public int TT_LEFT = 62; final static public int TT_RIGHT = 63; + final static public int TT_TEXT = 64; final static public int TT_ARGUMENTS_OPEN = 126; *************** *** 223,226 **** --- 224,244 ---- fCurrentPosition++; getBackslashSymbol(); + if (token == TT_TEXT) { + int startPosition = -1; + try { + while (Character.isWhitespace(fSourceString.charAt(fCurrentPosition))) { + fCurrentPosition++; + } + startPosition = fCurrentPosition; + if (fSourceString.charAt(fCurrentPosition++) == '{') { + startPosition = fCurrentPosition; + while (fSourceString.charAt(fCurrentPosition++) != '}') { + } + fBackslashSymbol = fSourceString.substring(startPosition, fCurrentPosition - 1); + } + } catch (IndexOutOfBoundsException e) { + token = TT_DOUBLE_BACKSLASH; + } + } return; } *************** *** 245,248 **** --- 263,286 ---- fBackslashSymbol = ";"; return; + case '{' : + fCurrentPosition++; + token = TT_BACKSLASH_SYMBOL; + fBackslashSymbol = "{"; + return; + case '}' : + fCurrentPosition++; + token = TT_BACKSLASH_SYMBOL; + fBackslashSymbol = "}"; + return; + case '^' : + fCurrentPosition++; + token = TT_BACKSLASH_SYMBOL; + fBackslashSymbol = "^"; + return; + case '_' : + fCurrentPosition++; + token = TT_BACKSLASH_SYMBOL; + fBackslashSymbol = "_"; + return; } } *************** *** 385,389 **** } break; ! case 4 : // \left if (fSourceString.charAt(index) == 'l' && fSourceString.charAt(++index) == 'e' --- 423,427 ---- } break; ! case 4 : // \left \text \mbox if (fSourceString.charAt(index) == 'l' && fSourceString.charAt(++index) == 'e' *************** *** 393,396 **** --- 431,450 ---- return fBackslashSymbol; } + index = startPosition; + if (fSourceString.charAt(index) == 't' + && fSourceString.charAt(++index) == 'e' + && fSourceString.charAt(++index) == 'x' + && fSourceString.charAt(++index) == 't') { + token = TT_TEXT; + return fBackslashSymbol; + } + index = startPosition; + if (fSourceString.charAt(index) == 'm' + && fSourceString.charAt(++index) == 'b' + && fSourceString.charAt(++index) == 'o' + && fSourceString.charAt(++index) == 'x') { + token = TT_TEXT; + return fBackslashSymbol; + } break; case 5 : // \begin \right Index: TeXParser.java =================================================================== RCS file: /cvsroot/hmath/org.hartmath.tex2mml/src/org/hartmath/tex2mml/TeXParser.java,v retrieving revision 1.7 retrieving revision 1.8 diff -C2 -d -r1.7 -r1.8 *** TeXParser.java 2 Apr 2004 21:07:01 -0000 1.7 --- TeXParser.java 14 Apr 2004 19:54:22 -0000 1.8 *************** *** 30,42 **** } - public class Attribute { - String fKey; - String fValue; - public Attribute(String key, String value) { - fKey = key; - fValue = value; - } - } - private Node createOperationNode(String str, Row stack) { Node temp; --- 30,33 ---- *************** *** 168,181 **** getNextToken(); Row result = MML_FACTORY.getRow(); ! result.add(new Operator("(")); result.add(temp); ! result.add(new Operator(")")); return result; } else if (temp != null) { Row list = MML_FACTORY.getRow(); ! list.add(new Operator("(")); list.add(temp); appendRowNodePrecedence(list); ! list.add(new Operator(")")); return list; } --- 159,172 ---- getNextToken(); Row result = MML_FACTORY.getRow(); ! result.add(new Operator("(",TeX2MathMLFactory.STRETCHY_FALSE_ATTR)); result.add(temp); ! result.add(new Operator(")",TeX2MathMLFactory.STRETCHY_FALSE_ATTR)); return result; } else if (temp != null) { Row list = MML_FACTORY.getRow(); ! list.add(new Operator("(",TeX2MathMLFactory.STRETCHY_FALSE_ATTR)); list.add(temp); appendRowNodePrecedence(list); ! list.add(new Operator(")",TeX2MathMLFactory.STRETCHY_FALSE_ATTR)); return list; } *************** *** 206,210 **** --- 197,205 ---- return MML_FACTORY.getIdentifier(str); case TT_AMPERSAND : + getNextToken(); + return new Operator("&"); case TT_COMMA: + getNextToken(); + return new Operator(","); case TT_CHARACTER : str = fOperatorString; *************** *** 212,219 **** return MML_FACTORY.getText(str); case TT_BACKSLASH_SYMBOL : ! str = fBackslashSymbol; getNextToken(); temp = createOperationNode(str, stack); return temp; case TT_BEGIN : getNextToken(); --- 207,218 ---- return MML_FACTORY.getText(str); case TT_BACKSLASH_SYMBOL : ! str = '\\'+fBackslashSymbol; getNextToken(); temp = createOperationNode(str, stack); return temp; + case TT_TEXT : + str = fBackslashSymbol; + getNextToken(); + return MML_FACTORY.getText(str); case TT_BEGIN : getNextToken(); Index: Text.java =================================================================== RCS file: /cvsroot/hmath/org.hartmath.tex2mml/src/org/hartmath/tex2mml/Text.java,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** Text.java 19 Mar 2004 20:19:03 -0000 1.3 --- Text.java 14 Apr 2004 19:54:22 -0000 1.4 *************** *** 13,18 **** return TeX2MathMLFactory.CONSTANT; } ! ! public void convert2MML(TeX2MathMLFactory f, StringBuffer buf) { f.tagStart(buf, fTag); buf.append(fOutput); --- 13,19 ---- return TeX2MathMLFactory.CONSTANT; } ! ! public void convert2MML(TeX2MathMLFactory f, StringBuffer buf, boolean noMrowTags) { ! //<mtext>is divergent, but</mtext> f.tagStart(buf, fTag); buf.append(fOutput); Index: Number.java =================================================================== RCS file: /cvsroot/hmath/org.hartmath.tex2mml/src/org/hartmath/tex2mml/Number.java,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** Number.java 19 Mar 2004 20:19:03 -0000 1.3 --- Number.java 14 Apr 2004 19:54:22 -0000 1.4 *************** *** 14,18 **** } ! public void convert2MML(TeX2MathMLFactory f, StringBuffer buf) { f.tagStart(buf, fTag); buf.append(fOutput); --- 14,18 ---- } ! public void convert2MML(TeX2MathMLFactory f, StringBuffer buf, boolean noMrowTags) { f.tagStart(buf, fTag); buf.append(fOutput); Index: Row.java =================================================================== RCS file: /cvsroot/hmath/org.hartmath.tex2mml/src/org/hartmath/tex2mml/Row.java,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -d -r1.4 -r1.5 *** Row.java 28 Mar 2004 19:14:39 -0000 1.4 --- Row.java 14 Apr 2004 19:54:22 -0000 1.5 *************** *** 77,81 **** } ! public void convert2MML(TeX2MathMLFactory f, StringBuffer buf) { IRowMMLConverter converter = getMMLConverter(fTeXSymbol); --- 77,81 ---- } ! public void convert2MML(TeX2MathMLFactory f, StringBuffer buf, boolean noMrowTags) { IRowMMLConverter converter = getMMLConverter(fTeXSymbol); *************** *** 84,90 **** } f.tagStart(buf, fTag); for (int i = 0; i < fList.size(); i++) { ! ((Node) fList.get(i)).convert2MML(f, buf); } f.tagEnd(buf, fTag); --- 84,91 ---- } + boolean noMROW = fTag.equals("mrow"); f.tagStart(buf, fTag); for (int i = 0; i < fList.size(); i++) { ! ((Node) fList.get(i)).convert2MML(f, buf, noMROW); } f.tagEnd(buf, fTag); Index: Node.java =================================================================== RCS file: /cvsroot/hmath/org.hartmath.tex2mml/src/org/hartmath/tex2mml/Node.java,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** Node.java 19 Mar 2004 20:19:03 -0000 1.3 --- Node.java 14 Apr 2004 19:54:22 -0000 1.4 *************** *** 31,35 **** } ! public void convert2MML(TeX2MathMLFactory f, StringBuffer buf) { f.tagStart(buf, fTag); buf.append(fOutput); --- 31,35 ---- } ! public void convert2MML(TeX2MathMLFactory f, StringBuffer buf, boolean noMrowTags) { f.tagStart(buf, fTag); buf.append(fOutput); Index: TeX2MathMLFactory.java =================================================================== RCS file: /cvsroot/hmath/org.hartmath.tex2mml/src/org/hartmath/tex2mml/TeX2MathMLFactory.java,v retrieving revision 1.8 retrieving revision 1.9 diff -C2 -d -r1.8 -r1.9 *** TeX2MathMLFactory.java 2 Apr 2004 21:07:01 -0000 1.8 --- TeX2MathMLFactory.java 14 Apr 2004 19:54:22 -0000 1.9 *************** *** 23,26 **** --- 23,30 ---- public final static String CSS_OPEN_SUB = "css_open_sub"; public final static String CSS_CLOSE_SUB = "css_close_sub"; + public final static String APPLY_FUNCTION = "apply_function"; + public final static String STRETCHY_FALSE = "stretchy_false"; + + public final static Map STRETCHY_FALSE_ATTR = new HashMap(); public final static boolean USE_IDENTIFIERS = true; *************** *** 73,77 **** public void convert2MML(Node node, StringBuffer buf) { ! node.convert2MML(this, buf); } --- 77,81 ---- public void convert2MML(Node node, StringBuffer buf) { ! node.convert2MML(this, buf, false); } *************** *** 142,241 **** // greek Symbols: ! CONSTANT_SYMBOLS.put("alpha", new Identifier(toEntity('\u03B1'))); ! CONSTANT_SYMBOLS.put("beta", new Identifier(toEntity('\u03B2'))); ! CONSTANT_SYMBOLS.put("chi", new Identifier(toEntity('\u03C7'))); ! CONSTANT_SYMBOLS.put("delta", new Identifier(toEntity('\u03B4'))); ! CONSTANT_SYMBOLS.put("Delta", new Identifier(toEntity('\u0394'))); ! CONSTANT_SYMBOLS.put("epsilon", new Identifier(toEntity('\u03B5'))); ! CONSTANT_SYMBOLS.put("varepsilon", new Identifier(toEntity('\u025B'))); ! CONSTANT_SYMBOLS.put("eta", new Identifier(toEntity('\u03B7'))); ! ! CONSTANT_SYMBOLS.put("gamma", new Identifier(toEntity('\u03B3'))); ! CONSTANT_SYMBOLS.put("Gamma", new Identifier(toEntity('\u0393'))); ! CONSTANT_SYMBOLS.put("iota", new Identifier(toEntity('\u03B9'))); ! CONSTANT_SYMBOLS.put("kappa", new Identifier(toEntity('\u03BA'))); ! CONSTANT_SYMBOLS.put("lambda", new Identifier(toEntity('\u03BB'))); ! CONSTANT_SYMBOLS.put("lambda", new Identifier(toEntity('\u039B'))); ! CONSTANT_SYMBOLS.put("mu", new Identifier(toEntity('\u03BC'))); ! CONSTANT_SYMBOLS.put("nu", new Identifier(toEntity('\u03BD'))); ! CONSTANT_SYMBOLS.put("omega", new Identifier(toEntity('\u03C9'))); ! CONSTANT_SYMBOLS.put("Omega", new Identifier(toEntity('\u03A9'))); ! CONSTANT_SYMBOLS.put("phi", new Identifier(toEntity('\u03C6'))); ! CONSTANT_SYMBOLS.put("varphi", new Identifier(toEntity('\u03D5'))); ! CONSTANT_SYMBOLS.put("Phi", new Identifier(toEntity('\u03A6'))); ! CONSTANT_SYMBOLS.put("pi", new Identifier(toEntity('\u03C0'))); ! CONSTANT_SYMBOLS.put("Pi", new Identifier(toEntity('\u03A0'))); ! CONSTANT_SYMBOLS.put("psi", new Identifier(toEntity('\u03C8'))); ! CONSTANT_SYMBOLS.put("rho", new Identifier(toEntity('\u03C1'))); ! CONSTANT_SYMBOLS.put("sigma", new Identifier(toEntity('\u03C3'))); ! CONSTANT_SYMBOLS.put("Sigma", new Identifier(toEntity('\u03A3'))); ! CONSTANT_SYMBOLS.put("tau", new Identifier(toEntity('\u03C4'))); ! CONSTANT_SYMBOLS.put("theta", new Identifier(toEntity('\u03B8'))); ! CONSTANT_SYMBOLS.put("vartheta", new Identifier(toEntity('\u03D1'))); ! CONSTANT_SYMBOLS.put("Theta", new Identifier(toEntity('\u0398'))); ! CONSTANT_SYMBOLS.put("upsilon", new Identifier(toEntity('\u0398'))); ! CONSTANT_SYMBOLS.put("xi", new Identifier(toEntity('\u03BE'))); ! CONSTANT_SYMBOLS.put("Xi", new Identifier(toEntity('\u039E'))); ! CONSTANT_SYMBOLS.put("zeta", new Identifier(toEntity('\u03B6'))); ! //standard functions ! CONSTANT_SYMBOLS.put("sin", new Operator("sin", CONSTANT)); ! CONSTANT_SYMBOLS.put("cos", new Operator("cos", CONSTANT)); ! CONSTANT_SYMBOLS.put("tan", new Operator("tan", CONSTANT)); ! CONSTANT_SYMBOLS.put("arcsin", new Operator("sin", CONSTANT)); ! CONSTANT_SYMBOLS.put("arccos", new Operator("cos", CONSTANT)); ! CONSTANT_SYMBOLS.put("arctan", new Operator("tan", CONSTANT)); ! CONSTANT_SYMBOLS.put("sinh", new Operator("sinh", CONSTANT)); ! CONSTANT_SYMBOLS.put("cosh", new Operator("cosh", CONSTANT)); ! CONSTANT_SYMBOLS.put("tanh", new Operator("tanh", CONSTANT)); ! CONSTANT_SYMBOLS.put("cot", new Operator("cot", CONSTANT)); ! CONSTANT_SYMBOLS.put("sec", new Operator("sec", CONSTANT)); ! CONSTANT_SYMBOLS.put("csc", new Operator("csc", CONSTANT)); ! CONSTANT_SYMBOLS.put("log", new Operator("log", CONSTANT)); ! CONSTANT_SYMBOLS.put("ln", new Operator("ln", CONSTANT)); ! CONSTANT_SYMBOLS.put("det", new Operator("det", CONSTANT)); ! CONSTANT_SYMBOLS.put("dim", new Operator("dim", CONSTANT)); ! CONSTANT_SYMBOLS.put("mod", new Operator("mod", CONSTANT)); ! CONSTANT_SYMBOLS.put("gcd", new Operator("gcd", CONSTANT)); ! CONSTANT_SYMBOLS.put("lcm", new Operator("lcm", CONSTANT)); //miscellaneous symbols ! CONSTANT_SYMBOLS.put("partial", new Operator(toEntity('\u2202'), CONSTANT)); ! CONSTANT_SYMBOLS.put("nabla", new Operator(toEntity('\u2207'), CONSTANT)); ! CONSTANT_SYMBOLS.put("pm", new Operator(toEntity('\u00B1'), CONSTANT)); ! CONSTANT_SYMBOLS.put("emptyset", new Operator(toEntity('\u2205'), CONSTANT)); ! CONSTANT_SYMBOLS.put("infty", new Operator(toEntity('\u221E'), CONSTANT)); ! CONSTANT_SYMBOLS.put("aleph", new Operator(toEntity('\u2135'), CONSTANT)); ! CONSTANT_SYMBOLS.put("ldots", new Operator(toEntity('\u222B'), CONSTANT)); String quad = toEntity('\u00A0') + toEntity('\u00A0'); ! // TODO find a beter way to distinguish the different spacings: ! CONSTANT_SYMBOLS.put("!", new Operator(toEntity(' '), CONSTANT)); ! CONSTANT_SYMBOLS.put(",", new Operator(toEntity('\u00A0'), CONSTANT)); ! CONSTANT_SYMBOLS.put(";", new Operator(toEntity('\u00A0'), CONSTANT)); ! CONSTANT_SYMBOLS.put("quad", new Operator(quad, CONSTANT)); ! CONSTANT_SYMBOLS.put("qquad", new Operator(quad + quad, CONSTANT)); ! CONSTANT_SYMBOLS.put("cdots", new Operator(toEntity('\u22EF'), CONSTANT)); ! CONSTANT_SYMBOLS.put("diamond", new Operator(toEntity('\u22C4'), CONSTANT)); ! CONSTANT_SYMBOLS.put("square", new Operator(toEntity('\u25A1'), CONSTANT)); ! CONSTANT_SYMBOLS.put("lfloor", new Operator(toEntity('\u230A'), CONSTANT)); ! CONSTANT_SYMBOLS.put("rfloor", new Operator(toEntity('\u230B'), CONSTANT)); ! CONSTANT_SYMBOLS.put("lceiling", new Operator(toEntity('\u2308'), CONSTANT)); ! CONSTANT_SYMBOLS.put("rceiling", new Operator(toEntity('\u2309'), CONSTANT)); ! CONSTANT_SYMBOLS.put("mid", new Operator(toEntity('\u2223'), CONSTANT)); ! CONSTANT_SYMBOLS.put("circ", new Operator("∘", CONSTANT)); ! CONSTANT_SYMBOLS.put("bigcirc", new Operator("◯", CONSTANT)); ! CONSTANT_SYMBOLS.put("wr", new Operator("≀", CONSTANT)); ! CONSTANT_SYMBOLS.put("odot", new Operator("⊙", CONSTANT)); ! CONSTANT_SYMBOLS.put("uplus", new Operator("⊎", CONSTANT)); ! CONSTANT_SYMBOLS.put("circ", new Operator("∘", CONSTANT)); ! CONSTANT_SYMBOLS.put("circ", new Operator("∘", CONSTANT)); ! CONSTANT_SYMBOLS.put("sqcup", new Operator("⊔", CONSTANT)); ! CONSTANT_SYMBOLS.put("sqcap", new Operator("⊓", CONSTANT)); ! CONSTANT_SYMBOLS.put("rhd", new Operator("⊳", CONSTANT)); ! CONSTANT_SYMBOLS.put("lhd", new Operator("⊲", CONSTANT)); ! CONSTANT_SYMBOLS.put("unrhd", new Operator("⊵", CONSTANT)); ! CONSTANT_SYMBOLS.put("unlhd", new Operator("⊴", CONSTANT)); // {input:"\\ ", tag:"mo", output:"\u00A0"}, --- 146,224 ---- // greek Symbols: ! CONSTANT_SYMBOLS.put("\\alpha", new Identifier(toEntity('\u03B1'))); ! CONSTANT_SYMBOLS.put("\\beta", new Identifier(toEntity('\u03B2'))); ! CONSTANT_SYMBOLS.put("\\chi", new Identifier(toEntity('\u03C7'))); ! CONSTANT_SYMBOLS.put("\\delta", new Identifier(toEntity('\u03B4'))); ! CONSTANT_SYMBOLS.put("\\Delta", new Identifier(toEntity('\u0394'))); ! CONSTANT_SYMBOLS.put("\\epsilon", new Identifier(toEntity('\u03B5'))); ! CONSTANT_SYMBOLS.put("\\varepsilon", new Identifier(toEntity('\u025B'))); ! CONSTANT_SYMBOLS.put("\\eta", new Identifier(toEntity('\u03B7'))); ! CONSTANT_SYMBOLS.put("\\gamma", new Identifier(toEntity('\u03B3'))); ! CONSTANT_SYMBOLS.put("\\Gamma", new Identifier(toEntity('\u0393'))); ! CONSTANT_SYMBOLS.put("\\iota", new Identifier(toEntity('\u03B9'))); ! CONSTANT_SYMBOLS.put("\\kappa", new Identifier(toEntity('\u03BA'))); ! CONSTANT_SYMBOLS.put("\\lambda", new Identifier(toEntity('\u03BB'))); ! CONSTANT_SYMBOLS.put("\\Lambda", new Identifier(toEntity('\u039B'))); ! CONSTANT_SYMBOLS.put("\\mu", new Identifier(toEntity('\u03BC'))); ! CONSTANT_SYMBOLS.put("\\nu", new Identifier(toEntity('\u03BD'))); ! CONSTANT_SYMBOLS.put("\\omega", new Identifier(toEntity('\u03C9'))); ! CONSTANT_SYMBOLS.put("\\Omega", new Identifier(toEntity('\u03A9'))); ! CONSTANT_SYMBOLS.put("\\phi", new Identifier(toEntity('\u03C6'))); ! CONSTANT_SYMBOLS.put("\\varphi", new Identifier(toEntity('\u03D5'))); ! CONSTANT_SYMBOLS.put("\\Phi", new Identifier(toEntity('\u03A6'))); ! CONSTANT_SYMBOLS.put("\\pi", new Identifier(toEntity('\u03C0'))); ! CONSTANT_SYMBOLS.put("\\Pi", new Identifier(toEntity('\u03A0'))); ! CONSTANT_SYMBOLS.put("\\psi", new Identifier(toEntity('\u03C8'))); ! CONSTANT_SYMBOLS.put("\\rho", new Identifier(toEntity('\u03C1'))); ! CONSTANT_SYMBOLS.put("\\sigma", new Identifier(toEntity('\u03C3'))); ! CONSTANT_SYMBOLS.put("\\Sigma", new Identifier(toEntity('\u03A3'))); ! CONSTANT_SYMBOLS.put("\\tau", new Identifier(toEntity('\u03C4'))); ! CONSTANT_SYMBOLS.put("\\theta", new Identifier(toEntity('\u03B8'))); ! CONSTANT_SYMBOLS.put("\\vartheta", new Identifier(toEntity('\u03D1'))); ! CONSTANT_SYMBOLS.put("\\Theta", new Identifier(toEntity('\u0398'))); ! CONSTANT_SYMBOLS.put("\\upsilon", new Identifier(toEntity('\u0398'))); ! CONSTANT_SYMBOLS.put("\\xi", new Identifier(toEntity('\u03BE'))); ! CONSTANT_SYMBOLS.put("\\Xi", new Identifier(toEntity('\u039E'))); ! CONSTANT_SYMBOLS.put("\\zeta", new Identifier(toEntity('\u03B6'))); //miscellaneous symbols ! CONSTANT_SYMBOLS.put("\\partial", new Operator(toEntity('\u2202'), CONSTANT)); ! CONSTANT_SYMBOLS.put("\\nabla", new Operator(toEntity('\u2207'), CONSTANT)); ! CONSTANT_SYMBOLS.put("\\pm", new Operator(toEntity('\u00B1'), CONSTANT)); ! CONSTANT_SYMBOLS.put("\\emptyset", new Operator(toEntity('\u2205'), CONSTANT)); ! CONSTANT_SYMBOLS.put("\\infty", new Operator(toEntity('\u221E'), CONSTANT)); ! CONSTANT_SYMBOLS.put("\\aleph", new Operator(toEntity('\u2135'), CONSTANT)); ! CONSTANT_SYMBOLS.put("\\ldots", new Operator(toEntity('\u222B'), CONSTANT)); String quad = toEntity('\u00A0') + toEntity('\u00A0'); ! // TODO find a better way to distinguish the different spacings: ! CONSTANT_SYMBOLS.put("\\!", new Space("-0.1667 em", "​")); ! CONSTANT_SYMBOLS.put("\\,", new Space("thinmathspace"," ")); ! CONSTANT_SYMBOLS.put("\\;", new Space("mediummathspace","  ")); ! CONSTANT_SYMBOLS.put("\\quad", new Space("thickmathspace", quad)); ! CONSTANT_SYMBOLS.put("\\qquad", new Space("verythickmathspace",quad+quad)); ! CONSTANT_SYMBOLS.put("\\cdots", new Operator(toEntity('\u22EF'), CONSTANT)); ! CONSTANT_SYMBOLS.put("\\diamond", new Operator(toEntity('\u22C4'), CONSTANT)); ! CONSTANT_SYMBOLS.put("\\square", new Operator(toEntity('\u25A1'), CONSTANT)); ! CONSTANT_SYMBOLS.put("\\lfloor", new Operator(toEntity('\u230A'), CONSTANT)); ! CONSTANT_SYMBOLS.put("\\rfloor", new Operator(toEntity('\u230B'), CONSTANT)); ! CONSTANT_SYMBOLS.put("\\lceiling", new Operator(toEntity('\u2308'), CONSTANT)); ! CONSTANT_SYMBOLS.put("\\rceiling", new Operator(toEntity('\u2309'), CONSTANT)); ! CONSTANT_SYMBOLS.put("\\mid", new Operator(toEntity('\u2223'), CONSTANT)); ! CONSTANT_SYMBOLS.put("\\circ", new Operator("∘", CONSTANT)); ! CONSTANT_SYMBOLS.put("\\bigcirc", new Operator("◯", CONSTANT)); ! CONSTANT_SYMBOLS.put("\\wr", new Operator("≀", CONSTANT)); ! CONSTANT_SYMBOLS.put("\\odot", new Operator("⊙", CONSTANT)); ! CONSTANT_SYMBOLS.put("\\uplus", new Operator("⊎", CONSTANT)); ! CONSTANT_SYMBOLS.put("\\circ", new Operator("∘", CONSTANT)); ! CONSTANT_SYMBOLS.put("\\circ", new Operator("∘", CONSTANT)); ! CONSTANT_SYMBOLS.put("\\sqcup", new Operator("⊔", CONSTANT)); ! CONSTANT_SYMBOLS.put("\\sqcap", new Operator("⊓", CONSTANT)); ! CONSTANT_SYMBOLS.put("\\rhd", new Operator("⊳", CONSTANT)); ! CONSTANT_SYMBOLS.put("\\lhd", new Operator("⊲", CONSTANT)); ! CONSTANT_SYMBOLS.put("\\unrhd", new Operator("⊵", CONSTANT)); ! CONSTANT_SYMBOLS.put("\\unlhd", new Operator("⊴", CONSTANT)); // {input:"\\ ", tag:"mo", output:"\u00A0"}, *************** *** 247,297 **** //arrows ! CONSTANT_SYMBOLS.put("uparrow", new Operator(toEntity('\u2191'), CONSTANT)); ! CONSTANT_SYMBOLS.put("downarrow", new Operator(toEntity('\u2193'), CONSTANT)); ! CONSTANT_SYMBOLS.put("rightarrow", new Operator(toEntity('\u2192'), CONSTANT)); ! CONSTANT_SYMBOLS.put("to", new Operator(toEntity('\u2192'), CONSTANT)); ! CONSTANT_SYMBOLS.put("leftarrow", new Operator(toEntity('\u2190'), CONSTANT)); ! CONSTANT_SYMBOLS.put("leftrightarrow", new Operator(toEntity('\u2194'), CONSTANT)); ! CONSTANT_SYMBOLS.put("Rightarrow", new Operator(toEntity('\u21D2'), CONSTANT)); ! CONSTANT_SYMBOLS.put("Leftarrow", new Operator(toEntity('\u21D0'), CONSTANT)); ! CONSTANT_SYMBOLS.put("Leftrightarrow", new Operator(toEntity('\u21D4'), CONSTANT)); //binary relation symbols ! CONSTANT_SYMBOLS.put("ne", new Operator(toEntity('\u2260'), CONSTANT)); CONSTANT_SYMBOLS.put("<", new Operator(toEntity('<'), CONSTANT)); CONSTANT_SYMBOLS.put(">", new Operator(toEntity('>'), CONSTANT)); ! CONSTANT_SYMBOLS.put("le", new Operator(toEntity('\u2264'), CONSTANT)); ! CONSTANT_SYMBOLS.put("leq", new Operator(toEntity('\u2264'), CONSTANT)); ! CONSTANT_SYMBOLS.put("gne", new Operator(toEntity('\u2265'), CONSTANT)); ! CONSTANT_SYMBOLS.put("geq", new Operator(toEntity('\u2265'), CONSTANT)); ! CONSTANT_SYMBOLS.put("prec", new Operator(toEntity('\u227A'), CONSTANT)); ! CONSTANT_SYMBOLS.put("succ", new Operator(toEntity('\u227B'), CONSTANT)); ! CONSTANT_SYMBOLS.put("in", new Operator(toEntity('\u2208'), CONSTANT)); ! CONSTANT_SYMBOLS.put("notin", new Operator(toEntity('\u2209'), CONSTANT)); ! CONSTANT_SYMBOLS.put("subset", new Operator(toEntity('\u2282'), CONSTANT)); ! CONSTANT_SYMBOLS.put("supset", new Operator(toEntity('\u2283'), CONSTANT)); ! CONSTANT_SYMBOLS.put("subseteq", new Operator(toEntity('\u2286'), CONSTANT)); ! CONSTANT_SYMBOLS.put("supseteq", new Operator(toEntity('\u2287'), CONSTANT)); ! CONSTANT_SYMBOLS.put("equiv", new Operator(toEntity('\u2261'), CONSTANT)); ! CONSTANT_SYMBOLS.put("cong", new Operator(toEntity('\u2245'), CONSTANT)); ! CONSTANT_SYMBOLS.put("approx", new Operator(toEntity('\u2248'), CONSTANT)); ! CONSTANT_SYMBOLS.put("propto", new Operator(toEntity('\u221D'), CONSTANT)); // {input:"lt", tag:"mo", output:"<"}, //logical symbols // {input:"and", tag:"mtext", output:"and", space:"1ex"}, // {input:"or", tag:"mtext", output:"or", space:"1ex"}, ! CONSTANT_SYMBOLS.put("neg", new Operator(toEntity('\u00AC'), CONSTANT)); ! CONSTANT_SYMBOLS.put("implies", new Operator(toEntity('\u21D2'), CONSTANT)); ! CONSTANT_SYMBOLS.put("forall", new Operator(toEntity('\u2200'), CONSTANT)); ! CONSTANT_SYMBOLS.put("exists", new Operator(toEntity('\u2203'), CONSTANT)); ! CONSTANT_SYMBOLS.put("bot", new Operator(toEntity('\u22A5'), CONSTANT)); ! CONSTANT_SYMBOLS.put("top", new Operator(toEntity('\u22A4'), CONSTANT)); ! CONSTANT_SYMBOLS.put("vdash", new Operator(toEntity('\u22A2'), CONSTANT)); ! CONSTANT_SYMBOLS.put("vdash", new Operator(toEntity('\u22A8'), CONSTANT)); // {input:"if", tag:"mo", output:"if", space:"1ex"}, // {input:"iff", tag:"mo", output:"\u21D4"}, ! // div = {input:"/", tag:"mfrac", output:"/", infix:true}, // sub = {input:"_", tag:"msub", output:"_", infix:true}, --- 230,286 ---- //arrows ! CONSTANT_SYMBOLS.put("\\uparrow", new Operator(toEntity('\u2191'), CONSTANT)); ! CONSTANT_SYMBOLS.put("\\downarrow", new Operator(toEntity('\u2193'), CONSTANT)); ! CONSTANT_SYMBOLS.put("\\rightarrow", new Operator(toEntity('\u2192'), CONSTANT)); ! CONSTANT_SYMBOLS.put("\\to", new Operator(toEntity('\u2192'), CONSTANT)); ! CONSTANT_SYMBOLS.put("\\leftarrow", new Operator(toEntity('\u2190'), CONSTANT)); ! CONSTANT_SYMBOLS.put("\\leftrightarrow", new Operator(toEntity('\u2194'), CONSTANT)); ! CONSTANT_SYMBOLS.put("\\Rightarrow", new Operator(toEntity('\u21D2'), CONSTANT)); ! CONSTANT_SYMBOLS.put("\\Leftarrow", new Operator(toEntity('\u21D0'), CONSTANT)); ! CONSTANT_SYMBOLS.put("\\Leftrightarrow", new Operator(toEntity('\u21D4'), CONSTANT)); //binary relation symbols ! CONSTANT_SYMBOLS.put("\\ne", new Operator(toEntity('\u2260'), CONSTANT)); CONSTANT_SYMBOLS.put("<", new Operator(toEntity('<'), CONSTANT)); CONSTANT_SYMBOLS.put(">", new Operator(toEntity('>'), CONSTANT)); ! CONSTANT_SYMBOLS.put("\\le", new Operator(toEntity('\u2264'), CONSTANT)); ! CONSTANT_SYMBOLS.put("\\leq", new Operator(toEntity('\u2264'), CONSTANT)); ! CONSTANT_SYMBOLS.put("\\gne", new Operator(toEntity('\u2265'), CONSTANT)); ! CONSTANT_SYMBOLS.put("\\geq", new Operator(toEntity('\u2265'), CONSTANT)); ! CONSTANT_SYMBOLS.put("\\prec", new Operator(toEntity('\u227A'), CONSTANT)); ! CONSTANT_SYMBOLS.put("\\succ", new Operator(toEntity('\u227B'), CONSTANT)); ! CONSTANT_SYMBOLS.put("\\in", new Operator(toEntity('\u2208'), CONSTANT)); ! CONSTANT_SYMBOLS.put("\\notin", new Operator(toEntity('\u2209'), CONSTANT)); ! CONSTANT_SYMBOLS.put("\\subset", new Operator(toEntity('\u2282'), CONSTANT)); ! CONSTANT_SYMBOLS.put("\\supset", new Operator(toEntity('\u2283'), CONSTANT)); ! CONSTANT_SYMBOLS.put("\\subseteq", new Operator(toEntity('\u2286'), CONSTANT)); ! CONSTANT_SYMBOLS.put("\\supseteq", new Operator(toEntity('\u2287'), CONSTANT)); ! CONSTANT_SYMBOLS.put("\\equiv", new Operator(toEntity('\u2261'), CONSTANT)); ! CONSTANT_SYMBOLS.put("\\cong", new Operator(toEntity('\u2245'), CONSTANT)); ! CONSTANT_SYMBOLS.put("\\approx", new Operator(toEntity('\u2248'), CONSTANT)); ! CONSTANT_SYMBOLS.put("\\propto", new Operator(toEntity('\u221D'), CONSTANT)); // {input:"lt", tag:"mo", output:"<"}, + CONSTANT_SYMBOLS.put("\\lt", new Operator(toEntity('<'), CONSTANT)); + CONSTANT_SYMBOLS.put("\\gt", new Operator(toEntity('>'), CONSTANT)); //logical symbols // {input:"and", tag:"mtext", output:"and", space:"1ex"}, // {input:"or", tag:"mtext", output:"or", space:"1ex"}, ! CONSTANT_SYMBOLS.put("\\and", new Operator("∧", CONSTANT)); ! CONSTANT_SYMBOLS.put("\\or", new Operator("∨", CONSTANT)); ! ! CONSTANT_SYMBOLS.put("\\neg", new Operator(toEntity('\u00AC'), CONSTANT)); ! CONSTANT_SYMBOLS.put("\\implies", new Operator(toEntity('\u21D2'), CONSTANT)); ! CONSTANT_SYMBOLS.put("\\forall", new Operator(toEntity('\u2200'), CONSTANT)); ! CONSTANT_SYMBOLS.put("\\exists", new Operator(toEntity('\u2203'), CONSTANT)); ! CONSTANT_SYMBOLS.put("\\bot", new Operator(toEntity('\u22A5'), CONSTANT)); ! CONSTANT_SYMBOLS.put("\\top", new Operator(toEntity('\u22A4'), CONSTANT)); ! CONSTANT_SYMBOLS.put("\\vdash", new Operator(toEntity('\u22A2'), CONSTANT)); ! CONSTANT_SYMBOLS.put("\\vdash", new Operator(toEntity('\u22A8'), CONSTANT)); // {input:"if", tag:"mo", output:"if", space:"1ex"}, // {input:"iff", tag:"mo", output:"\u21D4"}, ! CONSTANT_SYMBOLS.put("\\iff", new Operator("⇔", CONSTANT)); ! CONSTANT_SYMBOLS.put("\\sim", new Operator("∼", CONSTANT)); // div = {input:"/", tag:"mfrac", output:"/", infix:true}, // sub = {input:"_", tag:"msub", output:"_", infix:true}, *************** *** 301,305 **** Map underoverAttr = new HashMap(); underoverAttr.put(UNDEROVER, "true"); ! Map intAttr = new HashMap(); intAttr.put(UNDEROVER, "true"); --- 290,294 ---- Map underoverAttr = new HashMap(); underoverAttr.put(UNDEROVER, "true"); ! Map intAttr = new HashMap(); intAttr.put(UNDEROVER, "true"); *************** *** 339,355 **** bigcupAttr.put(CSS_CLOSE, "</CuP>"); ! CONSTANT_SYMBOLS.put("int", new Operator(toEntity('\u222B'), CONSTANT, intAttr)); ! // CONSTANT_SYMBOLS.put("oint", new Operator("∮", CONSTANT, ointAttr)); ! CONSTANT_SYMBOLS.put("oint", new Operator(toEntity('\u222E'), CONSTANT, ointAttr)); ! CONSTANT_SYMBOLS.put("sum", new Operator(toEntity('\u2211'), CONSTANT, sumAttr)); ! CONSTANT_SYMBOLS.put("prod", new Operator(toEntity('\u220F'), CONSTANT, prodAttr)); ! CONSTANT_SYMBOLS.put("bigoplus", new Operator(toEntity('\u2295'), CONSTANT, bigoplusAttr)); ! CONSTANT_SYMBOLS.put("bigotimes", new Operator(toEntity('\u2297'), CONSTANT, bigotimesAttr)); ! CONSTANT_SYMBOLS.put("lim", new Operator("lim", CONSTANT, limAttr)); ! CONSTANT_SYMBOLS.put("bigwedge", new Operator(toEntity('\u22C0'), CONSTANT, underoverAttr)); ! CONSTANT_SYMBOLS.put("bigvee", new Operator(toEntity('\u22C1'), CONSTANT, underoverAttr)); ! CONSTANT_SYMBOLS.put("bigcap", new Operator(toEntity('\u22C2'), CONSTANT, bigcapAttr)); ! CONSTANT_SYMBOLS.put("bigcup", new Operator(toEntity('\u22C3'), CONSTANT, bigcupAttr)); CONSTANT_SYMBOLS.put("+", new Operator("+", CONSTANT)); --- 328,344 ---- bigcupAttr.put(CSS_CLOSE, "</CuP>"); ! CONSTANT_SYMBOLS.put("\\int", new Operator(toEntity('\u222B'), CONSTANT, intAttr)); ! // CONSTANT_SYMBOLS.put("\\oint", new Operator("∮", CONSTANT, ointAttr)); ! CONSTANT_SYMBOLS.put("\\oint", new Operator(toEntity('\u222E'), CONSTANT, ointAttr)); ! CONSTANT_SYMBOLS.put("\\sum", new Operator(toEntity('\u2211'), CONSTANT, sumAttr)); ! CONSTANT_SYMBOLS.put("\\prod", new Operator(toEntity('\u220F'), CONSTANT, prodAttr)); ! CONSTANT_SYMBOLS.put("\\bigoplus", new Operator(toEntity('\u2295'), CONSTANT, bigoplusAttr)); ! CONSTANT_SYMBOLS.put("\\bigotimes", new Operator(toEntity('\u2297'), CONSTANT, bigotimesAttr)); ! CONSTANT_SYMBOLS.put("\\lim", new Operator("lim", CONSTANT, limAttr)); ! CONSTANT_SYMBOLS.put("\\bigwedge", new Operator(toEntity('\u22C0'), CONSTANT, underoverAttr)); ! CONSTANT_SYMBOLS.put("\\bigvee", new Operator(toEntity('\u22C1'), CONSTANT, underoverAttr)); ! CONSTANT_SYMBOLS.put("\\bigcap", new Operator(toEntity('\u22C2'), CONSTANT, bigcapAttr)); ! CONSTANT_SYMBOLS.put("\\bigcup", new Operator(toEntity('\u22C3'), CONSTANT, bigcupAttr)); CONSTANT_SYMBOLS.put("+", new Operator("+", CONSTANT)); *************** *** 360,384 **** CONSTANT_SYMBOLS.put("!", new Operator("!", CONSTANT)); CONSTANT_SYMBOLS.put("|", new Operator(toEntity('\u2223'), CONSTANT)); ! CONSTANT_SYMBOLS.put("sqrt", new Row("sqrt", "msqrt", UNARY)); ! CONSTANT_SYMBOLS.put("root", new Row("root", "mroot", BINARY)); ! CONSTANT_SYMBOLS.put("frac", new Row("frac", "mfrac", BINARY)); ! CONSTANT_SYMBOLS.put("mathbb", new Row("mathbb", "mathbb", UNARY)); ! CONSTANT_SYMBOLS.put("hat", new Row("hat", "hat", UNARY)); ! CONSTANT_SYMBOLS.put("bar", new Row("bar", "bar", UNARY)); ! CONSTANT_SYMBOLS.put("vec", new Row("vec", "vec", UNARY)); ! CONSTANT_SYMBOLS.put("dot", new Row("dot", "dot", UNARY)); ! CONSTANT_SYMBOLS.put("ddot", new Row("ddot", "ddot", UNARY)); ! CONSTANT_SYMBOLS.put("ul", new Row("ul", "ul", UNARY)); ! CONSTANT_SYMBOLS.put("text", new Row("text", "text", UNARY)); ! CONSTANT_SYMBOLS.put("mbox", new Row("mbox", "mbox", UNARY)); // text = {input:"text", tag:"mtext", output:"text", unary:true}, // mbox = {input:"mbox", tag:"mtext", output:"mbox", unary:true}, ! ! CONSTANT_SYMBOLS.put("^", new Row("sup", "msup", INFIX)); ! CONSTANT_SYMBOLS.put("_", new Row("sub", "msub", INFIX)); } } --- 349,406 ---- CONSTANT_SYMBOLS.put("!", new Operator("!", CONSTANT)); CONSTANT_SYMBOLS.put("|", new Operator(toEntity('\u2223'), CONSTANT)); + CONSTANT_SYMBOLS.put("^", new Row("sup", "msup", INFIX)); + CONSTANT_SYMBOLS.put("_", new Row("sub", "msub", INFIX)); + CONSTANT_SYMBOLS.put("\\_", new Operator("_", CONSTANT)); + CONSTANT_SYMBOLS.put("\\^", new Operator("^", CONSTANT)); + CONSTANT_SYMBOLS.put("\\{", new Operator("{", CONSTANT)); + CONSTANT_SYMBOLS.put("\\}", new Operator("}", CONSTANT)); + + CONSTANT_SYMBOLS.put("\\sqrt", new Row("sqrt", "msqrt", UNARY)); + CONSTANT_SYMBOLS.put("\\root", new Row("root", "mroot", BINARY)); + CONSTANT_SYMBOLS.put("\\frac", new Row("frac", "mfrac", BINARY)); ! CONSTANT_SYMBOLS.put("\\mathbb", new Row("mathbb", "mathbb", UNARY)); ! CONSTANT_SYMBOLS.put("\\hat", new Row("hat", "hat", UNARY)); ! CONSTANT_SYMBOLS.put("\\bar", new Row("bar", "bar", UNARY)); ! CONSTANT_SYMBOLS.put("\\vec", new Row("vec", "vec", UNARY)); ! CONSTANT_SYMBOLS.put("\\dot", new Row("dot", "dot", UNARY)); ! CONSTANT_SYMBOLS.put("\\ddot", new Row("ddot", "ddot", UNARY)); ! CONSTANT_SYMBOLS.put("\\ul", new Row("ul", "ul", UNARY)); ! // text and mbox are hard coded: ! // CONSTANT_SYMBOLS.put("\\text", new Row("text", "text", UNARY)); ! // CONSTANT_SYMBOLS.put("\\mbox", new Row("mbox", "mbox", UNARY)); // text = {input:"text", tag:"mtext", output:"text", unary:true}, // mbox = {input:"mbox", tag:"mtext", output:"mbox", unary:true}, ! ! ! //standard functions ! Map applyFunctionAttr = new HashMap(); ! applyFunctionAttr.put(APPLY_FUNCTION, "true");//"⁡" + CONSTANT_SYMBOLS.put("\\sin", new Operator("sin", CONSTANT, applyFunctionAttr)); + CONSTANT_SYMBOLS.put("\\cos", new Operator("cos", CONSTANT, applyFunctionAttr)); + CONSTANT_SYMBOLS.put("\\tan", new Operator("tan", CONSTANT, applyFunctionAttr)); + CONSTANT_SYMBOLS.put("\\arcsin", new Operator("sin", CONSTANT, applyFunctionAttr)); + CONSTANT_SYMBOLS.put("\\arccos", new Operator("cos", CONSTANT, applyFunctionAttr)); + CONSTANT_SYMBOLS.put("\\arctan", new Operator("tan", CONSTANT, applyFunctionAttr)); + CONSTANT_SYMBOLS.put("\\sinh", new Operator("sinh", CONSTANT, applyFunctionAttr)); + CONSTANT_SYMBOLS.put("\\cosh", new Operator("cosh", CONSTANT, applyFunctionAttr)); + CONSTANT_SYMBOLS.put("\\tanh", new Operator("tanh", CONSTANT, applyFunctionAttr)); + CONSTANT_SYMBOLS.put("\\cot", new Operator("cot", CONSTANT, applyFunctionAttr)); + CONSTANT_SYMBOLS.put("\\sec", new Operator("sec", CONSTANT, applyFunctionAttr)); + CONSTANT_SYMBOLS.put("\\csc", new Operator("csc", CONSTANT, applyFunctionAttr)); + CONSTANT_SYMBOLS.put("\\log", new Operator("log", CONSTANT, applyFunctionAttr)); + CONSTANT_SYMBOLS.put("\\ln", new Operator("ln", CONSTANT, applyFunctionAttr)); + CONSTANT_SYMBOLS.put("\\det", new Operator("det", CONSTANT, applyFunctionAttr)); + CONSTANT_SYMBOLS.put("\\dim", new Operator("dim", CONSTANT, applyFunctionAttr)); + CONSTANT_SYMBOLS.put("\\mod", new Operator("mod", CONSTANT, applyFunctionAttr)); + CONSTANT_SYMBOLS.put("\\gcd", new Operator("gcd", CONSTANT, applyFunctionAttr)); + CONSTANT_SYMBOLS.put("\\lcm", new Operator("lcm", CONSTANT, applyFunctionAttr)); + CONSTANT_SYMBOLS.put("\\ker", new Operator("ker", CONSTANT, applyFunctionAttr)); + + + STRETCHY_FALSE_ATTR.put(STRETCHY_FALSE, "true"); } } Index: Identifier.java =================================================================== RCS file: /cvsroot/hmath/org.hartmath.tex2mml/src/org/hartmath/tex2mml/Identifier.java,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** Identifier.java 19 Mar 2004 20:19:03 -0000 1.3 --- Identifier.java 14 Apr 2004 19:54:22 -0000 1.4 *************** *** 14,18 **** } ! public void convert2MML(TeX2MathMLFactory f, StringBuffer buf) { f.tagStart(buf, fTag); buf.append(fOutput); --- 14,18 ---- } ! public void convert2MML(TeX2MathMLFactory f, StringBuffer buf, boolean noMrowTags) { f.tagStart(buf, fTag); buf.append(fOutput); |