[Libreoffice-commits] core.git: starmath/inc starmath/qa starmath/source

dante (via logerrit) logerrit at kemper.freedesktop.org
Tue Nov 17 12:58:50 UTC 2020


 starmath/inc/parse.hxx                    |    2 
 starmath/inc/starmathdatabase.hxx         |  137 +++++++
 starmath/inc/strings.hrc                  |   22 +
 starmath/inc/strings.hxx                  |  551 +++++++++++++++---------------
 starmath/inc/token.hxx                    |    2 
 starmath/qa/extras/mmlimport-test.cxx     |    2 
 starmath/source/ElementsDockingWindow.cxx |   31 +
 starmath/source/mathmlimport.cxx          |    4 
 starmath/source/parse.cxx                 |   12 
 starmath/source/starmathdatabase.cxx      |  319 +++++++++++++++--
 starmath/source/visitors.cxx              |   25 -
 11 files changed, 779 insertions(+), 328 deletions(-)

New commits:
commit 0643dab6819bdf248321d27f6b58a2cce125e51c
Author:     dante <dante19031999 at gmail.com>
AuthorDate: Sun Nov 15 10:11:16 2020 +0100
Commit:     Noel Grandin <noel.grandin at collabora.co.uk>
CommitDate: Tue Nov 17 13:58:13 2020 +0100

    Starmath has now full support of HTML colors.
    
    Some of them have been added to the UI ( from Css3 ).
    There was not a criteria for color picking so I chose those whose name told me something, those I liked and some to have a more complete palette.
    It would be nice to be able to ask our users whose colors from https://developer.mozilla.org/en-US/docs/Web/CSS/color_value#Color_Keywords they want in the UI.
    The color names have been left in alphabetical order.
    Starmathdatabse has clang format.
    
    Change-Id: I6ac1bdbc9e3ed10bff75a99b90bf92d3dcdcabcb
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/105892
    Tested-by: Jenkins
    Reviewed-by: Noel Grandin <noel.grandin at collabora.co.uk>

diff --git a/starmath/inc/parse.hxx b/starmath/inc/parse.hxx
index 020d22fb37b4..d7db4772e81c 100644
--- a/starmath/inc/parse.hxx
+++ b/starmath/inc/parse.hxx
@@ -89,7 +89,7 @@ class SmParser
 
     // Moves between tokens inside starmath code.
     void            NextToken();
-    void            NextTokenColor();
+    void            NextTokenColor(bool dvipload);
     void            NextTokenFontSize();
     sal_Int32       GetTokenIndex() const   { return m_nTokenIndex; }
     void            Replace( sal_Int32 nPos, sal_Int32 nLen, const OUString &rText );
diff --git a/starmath/inc/starmathdatabase.hxx b/starmath/inc/starmathdatabase.hxx
index 31e7f4651285..10e177493e68 100644
--- a/starmath/inc/starmathdatabase.hxx
+++ b/starmath/inc/starmathdatabase.hxx
@@ -43,9 +43,138 @@ constexpr Color COL_SM_BLUE(0x0000FF);
 constexpr Color COL_SM_TEAL(0x008080);
 constexpr Color COL_SM_AQUA(0x00FFFF);
 /* CSS Level 2 */
-// TODO
+constexpr Color COL_SM_ORANGE(0xFFA500);
 /* CSS Level 3 */
-// TODO
+constexpr Color COL_SM_ALICEBLUE(0xF0F8FF);
+constexpr Color COL_SM_ANTIQUEWHITE(0xFAEBD7);
+constexpr Color COL_SM_AQUAMARINE(0x7FFFD4);
+constexpr Color COL_SM_AZURE(0xF0FFFF);
+constexpr Color COL_SM_BEIGE(0xF5F5DC);
+constexpr Color COL_SM_BISQUE(0xFFE4C4);
+constexpr Color COL_SM_BLANCHEDALMOND(0xFFEBCD);
+constexpr Color COL_SM_BLUEVIOLET(0x8A2BE2);
+constexpr Color COL_SM_BROWN(0xA52A2A);
+constexpr Color COL_SM_BURLYWOOD(0xDEB887);
+constexpr Color COL_SM_CADETBLUE(0x5F9EA0);
+constexpr Color COL_SM_CHARTREUSE(0x7FFF00);
+constexpr Color COL_SM_CHOCOLATE(0xD2691E);
+constexpr Color COL_SM_CORAL(0xFF7F50);
+constexpr Color COL_SM_CORNFLOWERBLUE(0x6495ED);
+constexpr Color COL_SM_CORNSILK(0xFFF8DC);
+constexpr Color COL_SM_CRIMSON(0xDC143C);
+constexpr Color COL_SM_CYAN(0x00FFFF);
+constexpr Color COL_SM_DARKBLUE(0x00008B);
+constexpr Color COL_SM_DARKCYAN(0x008B8B);
+constexpr Color COL_SM_DARKGOLDENROD(0xB8860B);
+constexpr Color COL_SM_DARKGRAY(0xA9A9A9);
+constexpr Color COL_SM_DARKGREEN(0x006400);
+constexpr Color COL_SM_DARKGREY(0xA9A9A9);
+constexpr Color COL_SM_DARKKHAKI(0xBDB76B);
+constexpr Color COL_SM_DARKMAGENTA(0x8B008B);
+constexpr Color COL_SM_DARKOLIVEGREEN(0x556B2F);
+constexpr Color COL_SM_DARKORANGE(0xFF8C00);
+constexpr Color COL_SM_DARKORCHID(0x9932CC);
+constexpr Color COL_SM_DARKRED(0x8B0000);
+constexpr Color COL_SM_DARKSALMON(0xE9967A);
+constexpr Color COL_SM_DARKSEAGREEN(0x8FBC8F);
+constexpr Color COL_SM_DARKSLATEBLUE(0x483D8B);
+constexpr Color COL_SM_DARKSLATEGRAY(0x2F4F4F);
+constexpr Color COL_SM_DARKSLATEGREY(0x2F4F4F);
+constexpr Color COL_SM_DARKTURQUOISE(0x00CED1);
+constexpr Color COL_SM_DARKVIOLET(0x9400D3);
+constexpr Color COL_SM_DEEPPINK(0xFF1493);
+constexpr Color COL_SM_DEEPSKYBLUE(0x00BFFF);
+constexpr Color COL_SM_DIMGRAY(0x696969);
+constexpr Color COL_SM_DIMGREY(0x696969);
+constexpr Color COL_SM_DODGERBLUE(0x1E90FF);
+constexpr Color COL_SM_FIREBRICK(0xB22222);
+constexpr Color COL_SM_FLORALWHITE(0xFFFAF0);
+constexpr Color COL_SM_FORESTGREEN(0x228B22);
+constexpr Color COL_SM_GAINSBORO(0xDCDCDC);
+constexpr Color COL_SM_GHOSTWHITE(0xF8F8FF);
+constexpr Color COL_SM_GOLD(0xFFD700);
+constexpr Color COL_SM_GOLDENROD(0xDAA520);
+constexpr Color COL_SM_GREENYELLOW(0xADFF2F);
+constexpr Color COL_SM_GREY(0x808080);
+constexpr Color COL_SM_HONEYDEW(0xF0FFF0);
+constexpr Color COL_SM_HOTPINK(0xFF69B4);
+constexpr Color COL_SM_INDIANRED(0xCD5C5C);
+constexpr Color COL_SM_INDIGO(0x4B0082);
+constexpr Color COL_SM_IVORY(0xFFFFF0);
+constexpr Color COL_SM_KHAKI(0xF0E68C);
+constexpr Color COL_SM_LAVENDER(0xE6E6FA);
+constexpr Color COL_SM_LAVENDERBLUSH(0xFFF0F5);
+constexpr Color COL_SM_LAWNGREEN(0x7CFC00);
+constexpr Color COL_SM_LEMONCHIFFON(0xFFFACD);
+constexpr Color COL_SM_LIGHTBLUE(0xADD8E6);
+constexpr Color COL_SM_LIGHTCORAL(0xF08080);
+constexpr Color COL_SM_LIGHTCYAN(0xE0FFFF);
+constexpr Color COL_SM_LIGHTGOLDENRODYELLOW(0xFAFAD2);
+constexpr Color COL_SM_LIGHTGRAY(0xD3D3D3);
+constexpr Color COL_SM_LIGHTGREEN(0x90EE90);
+constexpr Color COL_SM_LIGHTGREY(0xD3D3D3);
+constexpr Color COL_SM_LIGHTPINK(0xFFB6C1);
+constexpr Color COL_SM_LIGHTSALMON(0xFFA07A);
+constexpr Color COL_SM_LIGHTSEAGREEN(0x20B2AA);
+constexpr Color COL_SM_LIGHTSKYBLUE(0x87CEFA);
+constexpr Color COL_SM_LIGHTSLATEGRAY(0x778899);
+constexpr Color COL_SM_LIGHTSLATEGREY(0x778899);
+constexpr Color COL_SM_LIGHTSTEELBLUE(0xB0C4DE);
+constexpr Color COL_SM_LIGHTYELLOW(0xFFFFE0);
+constexpr Color COL_SM_LIMEGREEN(0x32CD32);
+constexpr Color COL_SM_LINEN(0xFAF0E6);
+constexpr Color COL_SM_MAGENTA(0xFF00FF);
+constexpr Color COL_SM_MEDIUMAQUAMARINE(0x66CDAA);
+constexpr Color COL_SM_MEDIUMBLUE(0x0000CD);
+constexpr Color COL_SM_MEDIUMORCHID(0xBA55D3);
+constexpr Color COL_SM_MEDIUMPURPLE(0x9370DB);
+constexpr Color COL_SM_MEDIUMSEAGREEN(0x3CB371);
+constexpr Color COL_SM_MEDIUMSLATEBLUE(0x7B68EE);
+constexpr Color COL_SM_MEDIUMSPRINGGREEN(0x00FA9A);
+constexpr Color COL_SM_MEDIUMTURQUOISE(0x48D1CC);
+constexpr Color COL_SM_MEDIUMVIOLETRED(0xC71585);
+constexpr Color COL_SM_MIDNIGHTBLUE(0x191970);
+constexpr Color COL_SM_MINTCREAM(0xF5FFFA);
+constexpr Color COL_SM_MISTYROSE(0xFFE4E1);
+constexpr Color COL_SM_MOCCASIN(0xFFE4B5);
+constexpr Color COL_SM_NAVAJOWHITE(0xFFDEAD);
+constexpr Color COL_SM_OLDLACE(0xFDF5E6);
+constexpr Color COL_SM_OLIVEDRAB(0x6B8E23);
+constexpr Color COL_SM_ORANGERED(0xFF4500);
+constexpr Color COL_SM_ORCHID(0xDA70D6);
+constexpr Color COL_SM_PALEGOLDENROD(0xEEE8AA);
+constexpr Color COL_SM_PALEGREEN(0x98FB98);
+constexpr Color COL_SM_PALETURQUOISE(0xAFEEEE);
+constexpr Color COL_SM_PALEVIOLETRED(0xDB7093);
+constexpr Color COL_SM_PAPAYAWHIP(0xFFEFD5);
+constexpr Color COL_SM_PEACHPUFF(0xFFDAB9);
+constexpr Color COL_SM_PERU(0xCD853F);
+constexpr Color COL_SM_PINK(0xFFC0CB);
+constexpr Color COL_SM_PLUM(0xDDA0DD);
+constexpr Color COL_SM_POWDERBLUE(0xB0E0E6);
+constexpr Color COL_SM_ROSYBROWN(0xBC8F8F);
+constexpr Color COL_SM_ROYALBLUE(0x4169E1);
+constexpr Color COL_SM_SADDLEBROWN(0x8B4513);
+constexpr Color COL_SM_SALMON(0xFA8072);
+constexpr Color COL_SM_SANDYBROWN(0xF4A460);
+constexpr Color COL_SM_SEAGREEN(0x2E8B57);
+constexpr Color COL_SM_SEASHELL(0xFFF5EE);
+constexpr Color COL_SM_SIENNA(0xA0522D);
+constexpr Color COL_SM_SKYBLUE(0x87CEEB);
+constexpr Color COL_SM_SLATEBLUE(0x6A5ACD);
+constexpr Color COL_SM_SLATEGRAY(0x708090);
+constexpr Color COL_SM_SLATEGREY(0x708090);
+constexpr Color COL_SM_SNOW(0xFFFAFA);
+constexpr Color COL_SM_SPRINGGREEN(0x00FF7F);
+constexpr Color COL_SM_STEELBLUE(0x4682B4);
+constexpr Color COL_SM_TAN(0xD2B48C);
+constexpr Color COL_SM_THISTLE(0xD8BFD8);
+constexpr Color COL_SM_TOMATO(0xFF6347);
+constexpr Color COL_SM_TURQUOISE(0x40E0D0);
+constexpr Color COL_SM_VIOLET(0xEE82EE);
+constexpr Color COL_SM_WHEAT(0xF5DEB3);
+constexpr Color COL_SM_WHITESMOKE(0xF5F5F5);
+constexpr Color COL_SM_YELLOWGREEN(0x9ACD32);
 /* CSS Level 4 */
 constexpr Color COL_SM_REBECCAPURPLE(0x663399);
 /* dvipsnames */
@@ -68,8 +197,8 @@ constexpr Color COL_SM_LO_GREEN(0x00A500);
 namespace starmathdatabase
 {
 // Variables containing color information.
-extern const SmColorTokenTableEntry aColorTokenTableParse[31];
-extern const SmColorTokenTableEntry aColorTokenTableHTML[20];
+extern const SmColorTokenTableEntry aColorTokenTableParse[159];
+extern const SmColorTokenTableEntry aColorTokenTableHTML[148];
 extern const SmColorTokenTableEntry aColorTokenTableDVIPSNAMES[5];
 
 /**
diff --git a/starmath/inc/strings.hrc b/starmath/inc/strings.hrc
index c93de7c026d1..499d263a4607 100644
--- a/starmath/inc/strings.hrc
+++ b/starmath/inc/strings.hrc
@@ -205,6 +205,17 @@
 #define RID_COLORX_RGB_HELP                 NC_("RID_COLORX_RGB_HELP", "Color RGB" )
 #define RID_COLORX_RGBA_HELP                NC_("RID_COLORX_RGBA_HELP", "Color RGBA" )
 #define RID_COLORX_HEX_HELP                 NC_("RID_COLORX_HEX_HELP", "Color hexadecimal" )
+#define RID_COLORX_CORAL_HELP               NC_("RID_COLORX_CORAL_HELP", "Color Coral" )
+#define RID_COLORX_CRIMSON_HELP             NC_("RID_COLORX_CRIMSON_HELP", "Color Crimson" )
+#define RID_COLORX_MIDNIGHT_HELP            NC_("RID_COLORX_MIDNIGHT_HELP", "Color Midnight blue" )
+#define RID_COLORX_VIOLET_HELP              NC_("RID_COLORX_VIOLET_HELP", "Color Violet" )
+#define RID_COLORX_ORANGE_HELP              NC_("RID_COLORX_ORANGE_HELP", "Color Orange" )
+#define RID_COLORX_ORANGERED_HELP           NC_("RID_COLORX_ORANGERED_HELP", "Color Orangered" )
+#define RID_COLORX_SEAGREEN_HELP            NC_("RID_COLORX_SEAGREEN_HELP", "Color Seagreen" )
+#define RID_COLORX_INDIGO_HELP              NC_("RID_COLORX_INDIGO_HELP", "Color Indigo" )
+#define RID_COLORX_HOTPINK_HELP             NC_("RID_COLORX_HOTPINK_HELP", "Color Hot pink" )
+#define RID_COLORX_LAVENDER_HELP            NC_("RID_COLORX_LAVENDER_HELP", "Color Lavender" )
+#define RID_COLORX_SNOW_HELP                NC_("RID_COLORX_SNOW_HELP", "Color Snow" )
 #define RID_LRGROUPX_HELP                   NC_("RID_LRGROUPX_HELP", "Group Brackets" )
 #define RID_LRPARENTX_HELP                  NC_("RID_LRPARENTX_HELP", "Round Brackets" )
 #define RID_LRBRACKETX_HELP                 NC_("RID_LRBRACKETX_HELP", "Square Brackets" )
@@ -337,6 +348,17 @@
 #define STR_SILVER                          NC_("STR_SILVER", "silver" )
 #define STR_TEAL                            NC_("STR_TEAL", "teal" )
 #define STR_YELLOW                          NC_("STR_YELLOW", "yellow" )
+#define STR_CORAL                           NC_("STR_CORAL", "coral" )
+#define STR_CRIMSON                         NC_("STR_CRIMSON", "crimson" )
+#define STR_MIDNIGHT                        NC_("STR_MIDNIGHT", "midnight" )
+#define STR_VIOLET                          NC_("STR_VIOLET", "violet" )
+#define STR_ORANGE                          NC_("STR_ORANGE", "orange" )
+#define STR_ORANGERED                       NC_("STR_ORANGERED", "orangered" )
+#define STR_LAVENDER                        NC_("STR_LAVENDER", "lavender" )
+#define STR_SNOW                            NC_("STR_SNOW", "snow" )
+#define STR_SEAGREEN                        NC_("STR_SEAGREEN", "seagreen" )
+#define STR_INDIGO                          NC_("STR_INDIGO", "indigo" )
+#define STR_HOTPINK                         NC_("STR_HOTPINK", "hotpink" )
 #define STR_RGB                             NC_("STR_RGB", "rgb" )
 #define STR_RGBA                            NC_("STR_RGBA", "rgba" )
 #define STR_HEX                             NC_("STR_HEX", "hex" )
diff --git a/starmath/inc/strings.hxx b/starmath/inc/strings.hxx
index fe537df552b6..15b41ec03dab 100644
--- a/starmath/inc/strings.hxx
+++ b/starmath/inc/strings.hxx
@@ -16,277 +16,288 @@
 #ifndef INCLUDED_STARMATH_INC_STRINGS_HXX
 #define INCLUDED_STARMATH_INC_STRINGS_HXX
 
-#define RID_UNDOFORMATNAME  "Format"
+#define RID_UNDOFORMATNAME      "Format"
 
-#define RID_PLUSX           "+<?> "
-#define RID_MINUSX          "-<?> "
-#define RID_PLUSMINUSX      "+-<?> "
-#define RID_MINUSPLUSX      "-+<?> "
-#define RID_NEGX            "neg <?> "
-#define RID_XPLUSY          "<?> + <?> "
-#define RID_XMINUSY         "<?> - <?> "
-#define RID_XCDOTY          "<?> cdot <?> "
-#define RID_XTIMESY         "<?> times <?> "
-#define RID_XSYMTIMESY      "<?> * <?> "
-#define RID_XSYMDIVIDEY     "<?> / <?> "
-#define RID_XDIVY           "<?> div <?> "
-#define RID_XOVERY          "{<?>} over {<?>} "
-#define RID_FRACXY          "frac {<?>} {<?>} "
-#define RID_XODIVIDEY       "<?> odivide <?> "
-#define RID_XODOTY          "<?> odot <?> "
-#define RID_XOMINUSY        "<?> ominus <?> "
-#define RID_XOPLUSY         "<?> oplus <?> "
-#define RID_XOTIMESY        "<?> otimes <?> "
-#define RID_XANDY           "<?> and <?> "
-#define RID_XORY            "<?> or <?> "
-#define RID_XEQY            "<?> = <?> "
-#define RID_XNEQY           "<?> <> <?> "
-#define RID_XLTY            "<?> < <?> "
-#define RID_XGTY            "<?> > <?> "
-#define RID_XLEY            "<?> <= <?> "
-#define RID_XGEY            "<?> >= <?> "
-#define RID_XLESLANTY       "<?> leslant <?> "
-#define RID_XGESLANTY       "<?> geslant <?> "
-#define RID_XLLY            "<?> << <?> "
-#define RID_XGGY            "<?> >> <?> "
-#define RID_XDEFY           "<?> def <?> "
-#define RID_XEQUIVY         "<?> equiv <?> "
-#define RID_XAPPROXY        "<?> approx <?> "
-#define RID_XSIMY           "<?> sim <?> "
-#define RID_XSIMEQY         "<?> simeq <?> "
-#define RID_XPROPY          "<?> prop <?> "
-#define RID_XORTHOY         "<?> ortho <?> "
-#define RID_XPARALLELY      "<?> parallel <?> "
-#define RID_XTOWARDY        "<?> toward <?> "
-#define RID_XTRANSLY        "<?> transl <?> "
-#define RID_XTRANSRY        "<?> transr <?> "
-#define RID_XINY            "<?> in <?> "
-#define RID_XNOTINY         "<?> notin <?> "
-#define RID_XOWNSY          "<?> owns <?> "
-#define RID_XUNIONY         "<?> union <?> "
-#define RID_XINTERSECTIONY  "<?> intersection <?> "
-#define RID_XSETMINUSY      "<?> setminus <?> "
-#define RID_XSETQUOTIENTY   "<?> setquotient <?> "
-#define RID_XSUBSETY        "<?> subset <?> "
-#define RID_XSUBSETEQY      "<?> subseteq <?> "
-#define RID_XSUPSETY        "<?> supset <?> "
-#define RID_XSUPSETEQY      "<?> supseteq <?> "
-#define RID_XNSUBSETY       "<?> nsubset <?> "
-#define RID_XNSUBSETEQY     "<?> nsubseteq <?> "
-#define RID_XNSUPSETY       "<?> nsupset <?> "
-#define RID_XNSUPSETEQY     "<?> nsupseteq <?> "
-#define RID_FUNCX           "func func(<?>) "
-#define RID_ABSX            "abs{<?>} "
-#define RID_FACTX           "fact{<?>} "
-#define RID_SQRTX           "sqrt{<?>} "
-#define RID_NROOTXY         "nroot{<?>}{<?>} "
-#define RID_EX              "func e^{<?>} "
-#define RID_EXPX            "exp(<?>) "
-#define RID_LNX             "ln(<?>) "
-#define RID_LOGX            "log(<?>) "
-#define RID_SINX            "sin(<?>) "
-#define RID_COSX            "cos(<?>) "
-#define RID_TANX            "tan(<?>) "
-#define RID_COTX            "cot(<?>) "
-#define RID_ARCSINX         "arcsin(<?>) "
-#define RID_ARCCOSX         "arccos(<?>) "
-#define RID_ARCTANX         "arctan(<?>) "
-#define RID_ARCCOTX         "arccot(<?>) "
-#define RID_SINHX           "sinh(<?>) "
-#define RID_COSHX           "cosh(<?>) "
-#define RID_TANHX           "tanh(<?>) "
-#define RID_COTHX           "coth(<?>) "
-#define RID_ARSINHX         "arsinh(<?>) "
-#define RID_ARCOSHX         "arcosh(<?>) "
-#define RID_ARTANHX         "artanh(<?>) "
-#define RID_ARCOTHX         "arcoth(<?>) "
-#define RID_OPERX           "oper oper <?> "
-#define RID_OPER_FROMX      "oper oper from{<?>} <?> "
-#define RID_OPER_TOX        "oper oper to{<?>} <?> "
-#define RID_OPER_FROMTOX    "oper oper from{<?>} to{<?>} <?> "
-#define RID_SUMX            "sum <?> "
-#define RID_SUM_FROMX       "sum from{<?>} <?> "
-#define RID_SUM_TOX         "sum to{<?>} <?> "
-#define RID_SUM_FROMTOX     "sum from{<?>} to{<?>} <?> "
-#define RID_PRODX           "prod <?> "
-#define RID_PROD_FROMX      "prod from{<?>} <?> "
-#define RID_PROD_TOX        "prod to{<?>} <?> "
-#define RID_PROD_FROMTOX    "prod from{<?>} to{<?>} <?> "
-#define RID_COPRODX         "coprod <?> "
-#define RID_COPROD_FROMX    "coprod from{<?>} <?> "
-#define RID_COPROD_TOX      "coprod to{<?>} <?> "
-#define RID_COPROD_FROMTOX  "coprod from{<?>} to{<?>} <?> "
-#define RID_LIMX            "lim <?> "
-#define RID_LIM_FROMX       "lim from{<?>} <?> "
-#define RID_LIM_TOX         "lim to{<?>} <?> "
-#define RID_LIM_FROMTOX     "lim from{<?>} to{<?>} <?> "
-#define RID_LIMINFX         "liminf <?> "
-#define RID_LIMINF_FROMX    "liminf from{<?>} <?> "
-#define RID_LIMINF_TOX      "liminf to{<?>} <?> "
-#define RID_LIMINF_FROMTOX  "liminf from{<?>} to{<?>} <?> "
-#define RID_LIMSUPX         "limsup <?> "
-#define RID_LIMSUP_FROMX    "limsup from{<?>} <?> "
-#define RID_LIMSUP_TOX      "limsup to{<?>} <?> "
-#define RID_LIMSUP_FROMTOX  "limsup from{<?>} to{<?>} <?> "
-#define RID_EXISTS          "exists "
-#define RID_NOTEXISTS       "notexists "
-#define RID_FORALL          "forall "
-#define RID_INTX            "int <?> "
-#define RID_INT_FROMX       "int from{<?>} <?> "
-#define RID_INT_TOX         "int to{<?>} <?> "
-#define RID_INT_FROMTOX     "int from{<?>} to{<?>} <?> "
-#define RID_IINTX           "iint <?> "
-#define RID_IINT_FROMX      "iint from{<?>} <?> "
-#define RID_IINT_TOX        "iint to{<?>} <?> "
-#define RID_IINT_FROMTOX    "iint from{<?>} to{<?>} <?> "
-#define RID_IIINTX          "iiint <?> "
-#define RID_IIINT_FROMX     "iiint from{<?>} <?> "
-#define RID_IIINT_TOX       "iiint to{<?>} <?> "
-#define RID_IIINT_FROMTOX   "iiint from{<?>} to{<?>} <?> "
-#define RID_LINTX           "lint <?> "
-#define RID_LINT_FROMX      "lint from{<?>} <?> "
-#define RID_LINT_TOX        "lint to{<?>} <?> "
-#define RID_LINT_FROMTOX    "lint from{<?>} to{<?>} <?> "
-#define RID_LLINTX          "llint <?> "
-#define RID_LLINT_FROMX     "llint from{<?>} <?> "
-#define RID_LLINT_TOX       "llint to{<?>} <?> "
-#define RID_LLINT_FROMTOX   "llint from{<?>} to{<?>} <?> "
-#define RID_LLLINTX         "lllint <?> "
-#define RID_LLLINT_FROMX    "lllint from{<?>} <?> "
-#define RID_LLLINT_TOX      "lllint to{<?>} <?> "
-#define RID_LLLINT_FROMTOX  "lllint from{<?>} to{<?>} <?> "
-#define RID_FROMX           "from{<?>} <?> "
-#define RID_TOX             "to{<?>} <?> "
-#define RID_FROMXTOY        "from{<?>} to{<?>} <?> "
-#define RID_ACUTEX          "acute <?> "
-#define RID_BARX            "bar <?> "
-#define RID_BREVEX          "breve <?> "
-#define RID_CHECKX          "check <?> "
-#define RID_CIRCLEX         "circle <?> "
-#define RID_DOTX            "dot <?> "
-#define RID_DDOTX           "ddot <?> "
-#define RID_DDDOTX          "dddot <?> "
-#define RID_GRAVEX          "grave <?> "
-#define RID_HATX            "hat <?> "
-#define RID_TILDEX          "tilde <?> "
-#define RID_VECX            "vec <?> "
-#define RID_HARPOONX        "harpoon <?> "
-#define RID_UNDERLINEX      "underline {<?>} "
-#define RID_OVERLINEX       "overline {<?>} "
-#define RID_OVERSTRIKEX     "overstrike {<?>} "
-#define RID_PHANTOMX        "phantom {<?>} "
-#define RID_BOLDX           "bold <?> "
-#define RID_ITALX           "ital <?> "
-#define RID_SIZEXY          "size <?> {<?>} "
-#define RID_FONTXY          "font <?> {<?>} "
-#define RID_COLORX_BLACK    "color black {<?>} "
-#define RID_COLORX_BLUE     "color blue {<?>} "
-#define RID_COLORX_GREEN    "color green {<?>} "
-#define RID_COLORX_RED      "color red {<?>} "
-#define RID_COLORX_AQUA     "color aqua {<?>} "
-#define RID_COLORX_FUCHSIA  "color fuchsia {<?>} "
-#define RID_COLORX_GRAY     "color gray {<?>} "
-#define RID_COLORX_LIME     "color lime {<?>} "
-#define RID_COLORX_MAROON   "color maroon {<?>} "
-#define RID_COLORX_NAVY     "color navy {<?>} "
-#define RID_COLORX_OLIVE    "color olive {<?>} "
-#define RID_COLORX_PURPLE   "color purple {<?>} "
-#define RID_COLORX_SILVER   "color silver {<?>} "
-#define RID_COLORX_TEAL     "color teal {<?>} "
-#define RID_COLORX_YELLOW   "color yellow {<?>} "
-#define RID_COLORX_RGB      "color rgb 0 0 0 {<?>} "
-#define RID_COLORX_RGBA     "color rgba 0 0 0 0 {<?>} "
-#define RID_COLORX_HEX      "color hex 000000 {<?>} "
-#define RID_LRGROUPX        "{<?>} "
-#define RID_LRPARENTX       "(<?>) "
-#define RID_LRBRACKETX      "[<?>] "
-#define RID_LRDBRACKETX     "ldbracket <?> rdbracket "
-#define RID_LRBRACEX        "lbrace <?> rbrace "
-#define RID_LRANGLEX        "langle <?> rangle "
-#define RID_LRCEILX         "lceil <?> rceil "
-#define RID_LRFLOORX        "lfloor <?> rfloor "
-#define RID_LRLINEX         "lline <?> rline "
-#define RID_LRDLINEX        "ldline <?> rdline "
-#define RID_LMRANGLEXY      "langle <?> mline <?> rangle "
-#define RID_SLRPARENTX      "left ( <?> right ) "
-#define RID_SLRBRACKETX     "left [ <?> right ] "
-#define RID_SLRDBRACKETX    "left ldbracket <?> right rdbracket "
-#define RID_SLRBRACEX       "left lbrace <?> right rbrace "
-#define RID_SLRANGLEX       "left langle <?> right rangle "
-#define RID_SLRCEILX        "left lceil <?> right rceil "
-#define RID_SLRFLOORX       "left lfloor <?> right rfloor "
-#define RID_SLRLINEX        "left lline <?> right rline "
-#define RID_SLRDLINEX       "left ldline <?> right rdline "
-#define RID_SLMRANGLEXY     "left langle <?> mline <?> right rangle "
-#define RID_XEVALUATEDATY   "left none {<?>} right rline_{<?>} "
-#define RID_XOVERBRACEY     "{<?>} overbrace {<?>} "
-#define RID_XUNDERBRACEY    "{<?>} underbrace {<?>} "
-#define RID_EVALX           "evaluate <?> "
-#define RID_EVAL_FROMX      "evaluate {<?>} from{<?>} "
-#define RID_EVAL_TOX        "evaluate {<?>} to{<?>} "
-#define RID_EVAL_FROMTOX    "evaluate {<?>} from{<?>} to{<?>} "
-#define RID_RSUBX           "<?>_{<?>}"
-#define RID_RSUPX           "<?>^{<?>}"
-#define RID_LSUBX           "<?> lsub{<?>} "
-#define RID_LSUPX           "<?> lsup{<?>} "
-#define RID_CSUBX           "<?> csub{<?>} "
-#define RID_CSUPX           "<?> csup{<?>} "
-#define RID_SBLANK          "`"
-#define RID_BLANK           "~"
-#define RID_NEWLINE         "newline "
-#define RID_BINOMXY         "binom{<?>}{<?>} "
-#define RID_STACK           "stack{<?> # <?> # <?>} "
-#define RID_MATRIX          "matrix{<?> # <?> ## <?> # <?>} "
-#define RID_ALIGNLX         "alignl <?> "
-#define RID_ALIGNCX         "alignc <?> "
-#define RID_ALIGNRX         "alignr <?> "
-#define RID_ALEPH           "aleph "
-#define RID_EMPTYSET        "emptyset "
-#define RID_RE              "Re "
-#define RID_IM              "Im "
-#define RID_INFINITY        "infinity "
-#define RID_PARTIAL         "partial "
-#define RID_NABLA           "nabla "
-#define RID_WP              "wp "
-#define RID_LAPLACE         "laplace "
-#define RID_FOURIER         "fourier "
-#define RID_DOTSAXIS        "dotsaxis "
-#define RID_DOTSUP          "dotsup "
-#define RID_DOTSDOWN        "dotsdown "
-#define RID_DOTSLOW         "dotslow "
-#define RID_DOTSVERT        "dotsvert "
-#define RID_XCIRCY          "<?> circ <?> "
-#define RID_XWIDESLASHY     "{<?>} wideslash {<?>} "
-#define RID_XWIDEBSLASHY    "{<?>} widebslash {<?>} "
-#define RID_XDIVIDESY       "<?> divides <?> "
-#define RID_XNDIVIDESY      "<?> ndivides <?> "
-#define RID_DLARROW         "<?> dlarrow <?> "
-#define RID_DLRARROW        "<?> dlrarrow <?> "
-#define RID_DRARROW         "<?> drarrow <?> "
-#define RID_SETN            "setN "
-#define RID_SETZ            "setZ "
-#define RID_SETQ            "setQ "
-#define RID_SETR            "setR "
-#define RID_SETC            "setC "
-#define RID_WIDEHATX        "widehat {<?>} "
-#define RID_WIDETILDEX      "widetilde {<?>} "
-#define RID_WIDEVECX        "widevec {<?>} "
-#define RID_WIDEHARPOONX    "wideharpoon {<?>} "
-#define RID_HBAR            "hbar "
-#define RID_LAMBDABAR       "lambdabar "
-#define RID_LEFTARROW       "leftarrow "
-#define RID_RIGHTARROW      "rightarrow "
-#define RID_UPARROW         "uparrow "
-#define RID_DOWNARROW       "downarrow "
-#define RID_NOSPACE         "nospace {<?>} "
-#define RID_XPRECEDESY      "<?> prec <?> "
-#define RID_XPRECEDESEQUALY "<?> preccurlyeq <?> "
-#define RID_XPRECEDESEQUIVY "<?> precsim <?> "
-#define RID_XSUCCEEDSY      "<?> succ <?> "
-#define RID_XSUCCEEDSEQUALY "<?> succcurlyeq <?> "
-#define RID_XSUCCEEDSEQUIVY "<?> succsim <?> "
-#define RID_XNOTPRECEDESY   "<?> nprec <?> "
-#define RID_XNOTSUCCEEDSY   "<?> nsucc <?> "
+#define RID_PLUSX               "+<?> "
+#define RID_MINUSX              "-<?> "
+#define RID_PLUSMINUSX          "+-<?> "
+#define RID_MINUSPLUSX          "-+<?> "
+#define RID_NEGX                "neg <?> "
+#define RID_XPLUSY              "<?> + <?> "
+#define RID_XMINUSY             "<?> - <?> "
+#define RID_XCDOTY              "<?> cdot <?> "
+#define RID_XTIMESY             "<?> times <?> "
+#define RID_XSYMTIMESY          "<?> * <?> "
+#define RID_XSYMDIVIDEY         "<?> / <?> "
+#define RID_XDIVY               "<?> div <?> "
+#define RID_XOVERY              "{<?>} over {<?>} "
+#define RID_FRACXY              "frac {<?>} {<?>} "
+#define RID_XODIVIDEY           "<?> odivide <?> "
+#define RID_XODOTY              "<?> odot <?> "
+#define RID_XOMINUSY            "<?> ominus <?> "
+#define RID_XOPLUSY             "<?> oplus <?> "
+#define RID_XOTIMESY            "<?> otimes <?> "
+#define RID_XANDY               "<?> and <?> "
+#define RID_XORY                "<?> or <?> "
+#define RID_XEQY                "<?> = <?> "
+#define RID_XNEQY               "<?> <> <?> "
+#define RID_XLTY                "<?> < <?> "
+#define RID_XGTY                "<?> > <?> "
+#define RID_XLEY                "<?> <= <?> "
+#define RID_XGEY                "<?> >= <?> "
+#define RID_XLESLANTY           "<?> leslant <?> "
+#define RID_XGESLANTY           "<?> geslant <?> "
+#define RID_XLLY                "<?> << <?> "
+#define RID_XGGY                "<?> >> <?> "
+#define RID_XDEFY               "<?> def <?> "
+#define RID_XEQUIVY             "<?> equiv <?> "
+#define RID_XAPPROXY            "<?> approx <?> "
+#define RID_XSIMY               "<?> sim <?> "
+#define RID_XSIMEQY             "<?> simeq <?> "
+#define RID_XPROPY              "<?> prop <?> "
+#define RID_XORTHOY             "<?> ortho <?> "
+#define RID_XPARALLELY          "<?> parallel <?> "
+#define RID_XTOWARDY            "<?> toward <?> "
+#define RID_XTRANSLY            "<?> transl <?> "
+#define RID_XTRANSRY            "<?> transr <?> "
+#define RID_XINY                "<?> in <?> "
+#define RID_XNOTINY             "<?> notin <?> "
+#define RID_XOWNSY              "<?> owns <?> "
+#define RID_XUNIONY             "<?> union <?> "
+#define RID_XINTERSECTIONY      "<?> intersection <?> "
+#define RID_XSETMINUSY          "<?> setminus <?> "
+#define RID_XSETQUOTIENTY       "<?> setquotient <?> "
+#define RID_XSUBSETY            "<?> subset <?> "
+#define RID_XSUBSETEQY          "<?> subseteq <?> "
+#define RID_XSUPSETY            "<?> supset <?> "
+#define RID_XSUPSETEQY          "<?> supseteq <?> "
+#define RID_XNSUBSETY           "<?> nsubset <?> "
+#define RID_XNSUBSETEQY         "<?> nsubseteq <?> "
+#define RID_XNSUPSETY           "<?> nsupset <?> "
+#define RID_XNSUPSETEQY         "<?> nsupseteq <?> "
+#define RID_FUNCX               "func func(<?>) "
+#define RID_ABSX                "abs{<?>} "
+#define RID_FACTX               "fact{<?>} "
+#define RID_SQRTX               "sqrt{<?>} "
+#define RID_NROOTXY             "nroot{<?>}{<?>} "
+#define RID_EX                  "func e^{<?>} "
+#define RID_EXPX                "exp(<?>) "
+#define RID_LNX                 "ln(<?>) "
+#define RID_LOGX                "log(<?>) "
+#define RID_SINX                "sin(<?>) "
+#define RID_COSX                "cos(<?>) "
+#define RID_TANX                "tan(<?>) "
+#define RID_COTX                "cot(<?>) "
+#define RID_ARCSINX             "arcsin(<?>) "
+#define RID_ARCCOSX             "arccos(<?>) "
+#define RID_ARCTANX             "arctan(<?>) "
+#define RID_ARCCOTX             "arccot(<?>) "
+#define RID_SINHX               "sinh(<?>) "
+#define RID_COSHX               "cosh(<?>) "
+#define RID_TANHX               "tanh(<?>) "
+#define RID_COTHX               "coth(<?>) "
+#define RID_ARSINHX             "arsinh(<?>) "
+#define RID_ARCOSHX             "arcosh(<?>) "
+#define RID_ARTANHX             "artanh(<?>) "
+#define RID_ARCOTHX             "arcoth(<?>) "
+#define RID_OPERX               "oper oper <?> "
+#define RID_OPER_FROMX          "oper oper from{<?>} <?> "
+#define RID_OPER_TOX            "oper oper to{<?>} <?> "
+#define RID_OPER_FROMTOX        "oper oper from{<?>} to{<?>} <?> "
+#define RID_SUMX                "sum <?> "
+#define RID_SUM_FROMX           "sum from{<?>} <?> "
+#define RID_SUM_TOX             "sum to{<?>} <?> "
+#define RID_SUM_FROMTOX         "sum from{<?>} to{<?>} <?> "
+#define RID_PRODX               "prod <?> "
+#define RID_PROD_FROMX          "prod from{<?>} <?> "
+#define RID_PROD_TOX            "prod to{<?>} <?> "
+#define RID_PROD_FROMTOX        "prod from{<?>} to{<?>} <?> "
+#define RID_COPRODX             "coprod <?> "
+#define RID_COPROD_FROMX        "coprod from{<?>} <?> "
+#define RID_COPROD_TOX          "coprod to{<?>} <?> "
+#define RID_COPROD_FROMTOX      "coprod from{<?>} to{<?>} <?> "
+#define RID_LIMX                "lim <?> "
+#define RID_LIM_FROMX           "lim from{<?>} <?> "
+#define RID_LIM_TOX             "lim to{<?>} <?> "
+#define RID_LIM_FROMTOX         "lim from{<?>} to{<?>} <?> "
+#define RID_LIMINFX             "liminf <?> "
+#define RID_LIMINF_FROMX        "liminf from{<?>} <?> "
+#define RID_LIMINF_TOX          "liminf to{<?>} <?> "
+#define RID_LIMINF_FROMTOX      "liminf from{<?>} to{<?>} <?> "
+#define RID_LIMSUPX             "limsup <?> "
+#define RID_LIMSUP_FROMX        "limsup from{<?>} <?> "
+#define RID_LIMSUP_TOX          "limsup to{<?>} <?> "
+#define RID_LIMSUP_FROMTOX      "limsup from{<?>} to{<?>} <?> "
+#define RID_EXISTS              "exists "
+#define RID_NOTEXISTS           "notexists "
+#define RID_FORALL              "forall "
+#define RID_INTX                "int <?> "
+#define RID_INT_FROMX           "int from{<?>} <?> "
+#define RID_INT_TOX             "int to{<?>} <?> "
+#define RID_INT_FROMTOX         "int from{<?>} to{<?>} <?> "
+#define RID_IINTX               "iint <?> "
+#define RID_IINT_FROMX          "iint from{<?>} <?> "
+#define RID_IINT_TOX            "iint to{<?>} <?> "
+#define RID_IINT_FROMTOX        "iint from{<?>} to{<?>} <?> "
+#define RID_IIINTX              "iiint <?> "
+#define RID_IIINT_FROMX         "iiint from{<?>} <?> "
+#define RID_IIINT_TOX           "iiint to{<?>} <?> "
+#define RID_IIINT_FROMTOX       "iiint from{<?>} to{<?>} <?> "
+#define RID_LINTX               "lint <?> "
+#define RID_LINT_FROMX          "lint from{<?>} <?> "
+#define RID_LINT_TOX            "lint to{<?>} <?> "
+#define RID_LINT_FROMTOX        "lint from{<?>} to{<?>} <?> "
+#define RID_LLINTX              "llint <?> "
+#define RID_LLINT_FROMX         "llint from{<?>} <?> "
+#define RID_LLINT_TOX           "llint to{<?>} <?> "
+#define RID_LLINT_FROMTOX       "llint from{<?>} to{<?>} <?> "
+#define RID_LLLINTX             "lllint <?> "
+#define RID_LLLINT_FROMX        "lllint from{<?>} <?> "
+#define RID_LLLINT_TOX          "lllint to{<?>} <?> "
+#define RID_LLLINT_FROMTOX      "lllint from{<?>} to{<?>} <?> "
+#define RID_FROMX               "from{<?>} <?> "
+#define RID_TOX                 "to{<?>} <?> "
+#define RID_FROMXTOY            "from{<?>} to{<?>} <?> "
+#define RID_ACUTEX              "acute <?> "
+#define RID_BARX                "bar <?> "
+#define RID_BREVEX              "breve <?> "
+#define RID_CHECKX              "check <?> "
+#define RID_CIRCLEX             "circle <?> "
+#define RID_DOTX                "dot <?> "
+#define RID_DDOTX               "ddot <?> "
+#define RID_DDDOTX              "dddot <?> "
+#define RID_GRAVEX              "grave <?> "
+#define RID_HATX                "hat <?> "
+#define RID_TILDEX              "tilde <?> "
+#define RID_VECX                "vec <?> "
+#define RID_HARPOONX            "harpoon <?> "
+#define RID_UNDERLINEX          "underline {<?>} "
+#define RID_OVERLINEX           "overline {<?>} "
+#define RID_OVERSTRIKEX         "overstrike {<?>} "
+#define RID_PHANTOMX            "phantom {<?>} "
+#define RID_BOLDX               "bold <?> "
+#define RID_ITALX               "ital <?> "
+#define RID_SIZEXY              "size <?> {<?>} "
+#define RID_FONTXY              "font <?> {<?>} "
+#define RID_COLORX_BLACK        "color black {<?>} "
+#define RID_COLORX_BLUE         "color blue {<?>} "
+#define RID_COLORX_GREEN        "color green {<?>} "
+#define RID_COLORX_RED          "color red {<?>} "
+#define RID_COLORX_AQUA         "color aqua {<?>} "
+#define RID_COLORX_FUCHSIA      "color fuchsia {<?>} "
+#define RID_COLORX_GRAY         "color gray {<?>} "
+#define RID_COLORX_LIME         "color lime {<?>} "
+#define RID_COLORX_MAROON       "color maroon {<?>} "
+#define RID_COLORX_NAVY         "color navy {<?>} "
+#define RID_COLORX_OLIVE        "color olive {<?>} "
+#define RID_COLORX_PURPLE       "color purple {<?>} "
+#define RID_COLORX_SILVER       "color silver {<?>} "
+#define RID_COLORX_TEAL         "color teal {<?>} "
+#define RID_COLORX_YELLOW       "color yellow {<?>} "
+#define RID_COLORX_RGB          "color rgb 0 0 0 {<?>} "
+#define RID_COLORX_RGBA         "color rgba 0 0 0 0 {<?>} "
+#define RID_COLORX_HEX          "color hex 000000 {<?>} "
+#define RID_COLORX_CORAL        "color coral {<?>} "
+#define RID_COLORX_CRIMSON      "color crimson {<?>} "
+#define RID_COLORX_MIDNIGHT     "color mignightblue {<?>} "
+#define RID_COLORX_VIOLET       "color violet {<?>} "
+#define RID_COLORX_ORANGE       "color orange {<?>} "
+#define RID_COLORX_ORANGERED    "color orangered {<?>} "
+#define RID_COLORX_SEAGREEN     "color seagreen {<?>} "
+#define RID_COLORX_INDIGO       "color indigo {<?>} "
+#define RID_COLORX_HOTPINK      "color hotpink {<?>} "
+#define RID_COLORX_LAVENDER     "color lavender {<?>} "
+#define RID_COLORX_SNOW         "color snow {<?>} "
+#define RID_LRGROUPX            "{<?>} "
+#define RID_LRPARENTX           "(<?>) "
+#define RID_LRBRACKETX          "[<?>] "
+#define RID_LRDBRACKETX         "ldbracket <?> rdbracket "
+#define RID_LRBRACEX            "lbrace <?> rbrace "
+#define RID_LRANGLEX            "langle <?> rangle "
+#define RID_LRCEILX             "lceil <?> rceil "
+#define RID_LRFLOORX            "lfloor <?> rfloor "
+#define RID_LRLINEX             "lline <?> rline "
+#define RID_LRDLINEX            "ldline <?> rdline "
+#define RID_LMRANGLEXY          "langle <?> mline <?> rangle "
+#define RID_SLRPARENTX          "left ( <?> right ) "
+#define RID_SLRBRACKETX         "left [ <?> right ] "
+#define RID_SLRDBRACKETX        "left ldbracket <?> right rdbracket "
+#define RID_SLRBRACEX           "left lbrace <?> right rbrace "
+#define RID_SLRANGLEX           "left langle <?> right rangle "
+#define RID_SLRCEILX            "left lceil <?> right rceil "
+#define RID_SLRFLOORX           "left lfloor <?> right rfloor "
+#define RID_SLRLINEX            "left lline <?> right rline "
+#define RID_SLRDLINEX           "left ldline <?> right rdline "
+#define RID_SLMRANGLEXY         "left langle <?> mline <?> right rangle "
+#define RID_XEVALUATEDATY       "left none {<?>} right rline_{<?>} "
+#define RID_XOVERBRACEY         "{<?>} overbrace {<?>} "
+#define RID_XUNDERBRACEY        "{<?>} underbrace {<?>} "
+#define RID_EVALX               "evaluate <?> "
+#define RID_EVAL_FROMX          "evaluate {<?>} from{<?>} "
+#define RID_EVAL_TOX            "evaluate {<?>} to{<?>} "
+#define RID_EVAL_FROMTOX        "evaluate {<?>} from{<?>} to{<?>} "
+#define RID_RSUBX               "<?>_{<?>} "
+#define RID_RSUPX               "<?>^{<?>} "
+#define RID_LSUBX               "<?> lsub{<?>} "
+#define RID_LSUPX               "<?> lsup{<?>} "
+#define RID_CSUBX               "<?> csub{<?>} "
+#define RID_CSUPX               "<?> csup{<?>} "
+#define RID_SBLANK              "` "
+#define RID_BLANK               "~ "
+#define RID_NEWLINE             "newline "
+#define RID_BINOMXY             "binom{<?>}{<?>} "
+#define RID_STACK               "stack{<?> # <?> # <?>} "
+#define RID_MATRIX              "matrix{<?> # <?> ## <?> # <?>} "
+#define RID_ALIGNLX             "alignl <?> "
+#define RID_ALIGNCX             "alignc <?> "
+#define RID_ALIGNRX             "alignr <?> "
+#define RID_ALEPH               "aleph "
+#define RID_EMPTYSET            "emptyset "
+#define RID_RE                  "Re "
+#define RID_IM                  "Im "
+#define RID_INFINITY            "infinity "
+#define RID_PARTIAL             "partial "
+#define RID_NABLA               "nabla "
+#define RID_WP                  "wp "
+#define RID_LAPLACE             "laplace "
+#define RID_FOURIER             "fourier "
+#define RID_DOTSAXIS            "dotsaxis "
+#define RID_DOTSUP              "dotsup "
+#define RID_DOTSDOWN            "dotsdown "
+#define RID_DOTSLOW             "dotslow "
+#define RID_DOTSVERT            "dotsvert "
+#define RID_XCIRCY              "<?> circ <?> "
+#define RID_XWIDESLASHY         "{<?>} wideslash {<?>} "
+#define RID_XWIDEBSLASHY        "{<?>} widebslash {<?>} "
+#define RID_XDIVIDESY           "<?> divides <?> "
+#define RID_XNDIVIDESY          "<?> ndivides <?> "
+#define RID_DLARROW             "<?> dlarrow <?> "
+#define RID_DLRARROW            "<?> dlrarrow <?> "
+#define RID_DRARROW             "<?> drarrow <?> "
+#define RID_SETN                "setN "
+#define RID_SETZ                "setZ "
+#define RID_SETQ                "setQ "
+#define RID_SETR                "setR "
+#define RID_SETC                "setC "
+#define RID_WIDEHATX            "widehat {<?>} "
+#define RID_WIDETILDEX          "widetilde {<?>} "
+#define RID_WIDEVECX            "widevec {<?>} "
+#define RID_WIDEHARPOONX        "wideharpoon {<?>} "
+#define RID_HBAR                "hbar "
+#define RID_LAMBDABAR           "lambdabar "
+#define RID_LEFTARROW           "leftarrow "
+#define RID_RIGHTARROW          "rightarrow "
+#define RID_UPARROW             "uparrow "
+#define RID_DOWNARROW           "downarrow "
+#define RID_NOSPACE             "nospace {<?>} "
+#define RID_XPRECEDESY          "<?> prec <?> "
+#define RID_XPRECEDESEQUALY     "<?> preccurlyeq <?> "
+#define RID_XPRECEDESEQUIVY     "<?> precsim <?> "
+#define RID_XSUCCEEDSY          "<?> succ <?> "
+#define RID_XSUCCEEDSEQUALY     "<?> succcurlyeq <?> "
+#define RID_XSUCCEEDSEQUIVY     "<?> succsim <?> "
+#define RID_XNOTPRECEDESY       "<?> nprec <?> "
+#define RID_XNOTSUCCEEDSY       "<?> nsucc <?> "
 
 #endif
 
diff --git a/starmath/inc/token.hxx b/starmath/inc/token.hxx
index 0c3788fd8966..da33c818105b 100644
--- a/starmath/inc/token.hxx
+++ b/starmath/inc/token.hxx
@@ -64,6 +64,7 @@ namespace o3tl {
 // Tokens identifiers. Allow to know what kind of information the node contains.
 enum SmTokenType
 {
+    // clang-format off
     // Uncategorized
     TEND,           TSPECIAL,       TNONE,          TESCAPE,        TUNKNOWN,
     TBLANK,         TSBLANK,        TPLACE,         TNOSPACE,       TDOTSDOWN,
@@ -139,6 +140,7 @@ enum SmTokenType
     // Color
     TRGB,           TRGBA,          THEX,           THTMLCOL,       TDVIPSNAMESCOL,
     TICONICCOL
+    // clang-format on
 };
 
 struct SmTokenTableEntry
diff --git a/starmath/qa/extras/mmlimport-test.cxx b/starmath/qa/extras/mmlimport-test.cxx
index 80b608757618..b31fd1676102 100644
--- a/starmath/qa/extras/mmlimport-test.cxx
+++ b/starmath/qa/extras/mmlimport-test.cxx
@@ -148,7 +148,7 @@ void Test::testtdf99556()
 void Test::testTdf103430()
 {
     loadURL(m_directories.getURLFromSrc("starmath/qa/extras/data/tdf103430.mml"));
-    CPPUNIT_ASSERT_EQUAL(OUString("frac { { nitalic d ^ 2 nitalic color blue y } } { { color apricot nitalic d font sans bold italic color red x } }"),
+    CPPUNIT_ASSERT_EQUAL(OUString("frac { { nitalic d ^ 2 nitalic color blue y } } { { color dvip apricot nitalic d font sans bold italic color red x } }"),
                          mxDocShell->GetText());
 }
 
diff --git a/starmath/source/ElementsDockingWindow.cxx b/starmath/source/ElementsDockingWindow.cxx
index 63edc2c2bf56..da7a6c10b343 100644
--- a/starmath/source/ElementsDockingWindow.cxx
+++ b/starmath/source/ElementsDockingWindow.cxx
@@ -191,7 +191,14 @@ const SmElementDescr SmElementsControl::m_aAttributesList[] =
     {RID_COLORX_NAVY, RID_COLORX_NAVY_HELP}, {RID_COLORX_OLIVE, RID_COLORX_OLIVE_HELP},
     {RID_COLORX_PURPLE, RID_COLORX_PURPLE_HELP}, {RID_COLORX_SILVER, RID_COLORX_SILVER_HELP},
     {RID_COLORX_TEAL, RID_COLORX_TEAL_HELP},{RID_COLORX_RGB, RID_COLORX_RGB_HELP},
-    {RID_COLORX_HEX, RID_COLORX_HEX_HELP}
+    {RID_COLORX_HEX, RID_COLORX_HEX_HELP},
+    {nullptr, nullptr},
+    {RID_COLORX_CORAL, RID_COLORX_CORAL_HELP}, {RID_COLORX_MIDNIGHT, RID_COLORX_MIDNIGHT_HELP},
+    {RID_COLORX_CRIMSON, RID_COLORX_CRIMSON_HELP}, {RID_COLORX_VIOLET, RID_COLORX_VIOLET_HELP},
+    {RID_COLORX_ORANGE, RID_COLORX_ORANGE_HELP}, {RID_COLORX_ORANGERED, RID_COLORX_ORANGERED_HELP},
+    {RID_COLORX_SEAGREEN, RID_COLORX_SEAGREEN_HELP}, {RID_COLORX_INDIGO, RID_COLORX_INDIGO_HELP},
+    {RID_COLORX_HOTPINK, RID_COLORX_HOTPINK_HELP}, {RID_COLORX_LAVENDER, RID_COLORX_LAVENDER_HELP},
+    {RID_COLORX_SNOW, RID_COLORX_SNOW_HELP},
 };
 
 const SmElementDescr SmElementsControl::m_aBracketsList[] =
@@ -933,6 +940,28 @@ void SmElementsControl::addElements(const SmElementDescr aElementsArray[], sal_u
                 addElement(aParser, "color silver { \"" + SmResId(STR_SILVER) + "\" }", aElement, SmResId(pElementHelp));
             else if (aElement == RID_COLORX_TEAL)
                 addElement(aParser, "color teal { \"" + SmResId(STR_TEAL) + "\" }", aElement, SmResId(pElementHelp));
+            else if (aElement == RID_COLORX_CORAL)
+                addElement(aParser, "color coral { \"" + SmResId(STR_CORAL) + "\" }", aElement, SmResId(pElementHelp));
+            else if (aElement == RID_COLORX_CRIMSON)
+                addElement(aParser, "color crimson { \"" + SmResId(STR_CRIMSON) + "\" }", aElement, SmResId(pElementHelp));
+            else if (aElement == RID_COLORX_MIDNIGHT)
+                addElement(aParser, "color midnightblue { \"" + SmResId(STR_MIDNIGHT) + "\" }", aElement, SmResId(pElementHelp));
+            else if (aElement == RID_COLORX_VIOLET)
+                addElement(aParser, "color violet { \"" + SmResId(STR_VIOLET) + "\" }", aElement, SmResId(pElementHelp));
+            else if (aElement == RID_COLORX_ORANGE)
+                addElement(aParser, "color orange { \"" + SmResId(STR_ORANGE) + "\" }", aElement, SmResId(pElementHelp));
+            else if (aElement == RID_COLORX_ORANGERED)
+                addElement(aParser, "color orangered { \"" + SmResId(STR_ORANGERED) + "\" }", aElement, SmResId(pElementHelp));
+            else if (aElement == RID_COLORX_SEAGREEN)
+                addElement(aParser, "color seagreen { \"" + SmResId(STR_SEAGREEN) + "\" }", aElement, SmResId(pElementHelp));
+            else if (aElement == RID_COLORX_INDIGO)
+                addElement(aParser, "color indigo { \"" + SmResId(STR_INDIGO) + "\" }", aElement, SmResId(pElementHelp));
+            else if (aElement == RID_COLORX_HOTPINK)
+                addElement(aParser, "color hotpink { \"" + SmResId(STR_HOTPINK) + "\" }", aElement, SmResId(pElementHelp));
+            else if (aElement == RID_COLORX_SNOW)
+                addElement(aParser, "color snow { \"" + SmResId(STR_SNOW) + "\" }", aElement, SmResId(pElementHelp));
+            else if (aElement == RID_COLORX_LAVENDER)
+                addElement(aParser, "color lavender { \"" + SmResId(STR_LAVENDER) + "\" }", aElement, SmResId(pElementHelp));
             else if (aElement == RID_COLORX_RGB)
                 addElement(aParser, "color rgb 0 0 0 { \"" + SmResId(STR_RGB) + "\" }", aElement, SmResId(pElementHelp));
             else if (aElement == RID_COLORX_RGBA)
diff --git a/starmath/source/mathmlimport.cxx b/starmath/source/mathmlimport.cxx
index 7a3ca34b9a5a..543a8d02fcb2 100644
--- a/starmath/source/mathmlimport.cxx
+++ b/starmath/source/mathmlimport.cxx
@@ -698,7 +698,9 @@ void SmXMLContext_Helper::ApplyAttrs()
     {
         std::unique_ptr<SmColorTokenTableEntry> aSmColorTokenTableEntry;
         aSmColorTokenTableEntry = starmathdatabase::Identify_ColorName_HTML( sColor );
-        if( aSmColorTokenTableEntry )
+        if( aSmColorTokenTableEntry->eType == TRGB )
+            aSmColorTokenTableEntry = starmathdatabase::Identify_Color_Parser( sal_uInt32(aSmColorTokenTableEntry->cColor) );
+        if( aSmColorTokenTableEntry->eType != TERROR )
         {
             aToken = aSmColorTokenTableEntry;
             std::unique_ptr<SmFontNode> pFontNode(new SmFontNode(aToken));
diff --git a/starmath/source/parse.cxx b/starmath/source/parse.cxx
index 86864bd612b2..4ac26866e07c 100644
--- a/starmath/source/parse.cxx
+++ b/starmath/source/parse.cxx
@@ -954,7 +954,7 @@ void SmParser::NextToken() //Central part of the parser
         m_nBufferIndex = aRes.EndPos;
 }
 
-void SmParser::NextTokenColor()
+void SmParser::NextTokenColor(bool dvipload)
 {
 
     sal_Int32   nBufLen = m_aBufferString.getLength();
@@ -1008,9 +1008,9 @@ void SmParser::NextTokenColor()
         assert(n >= 0);
         OUString aName( m_aBufferString.copy( nRealStart, n ) );
         std::unique_ptr<SmColorTokenTableEntry> aSmColorTokenTableEntry;
-        aSmColorTokenTableEntry = starmathdatabase::Identify_ColorName_Parser( aName );
-        if ( aSmColorTokenTableEntry ) m_aCurToken = aSmColorTokenTableEntry;
-        else m_aCurToken.eType     = TNONE;
+        if(dvipload) aSmColorTokenTableEntry = starmathdatabase::Identify_ColorName_DVIPSNAMES( aName );
+        else aSmColorTokenTableEntry = starmathdatabase::Identify_ColorName_Parser( aName );
+        m_aCurToken = aSmColorTokenTableEntry;
     }
     else if (aRes.TokenType & KParseType::ONE_SINGLE_CHAR)
     {
@@ -2085,9 +2085,11 @@ std::unique_ptr<SmStructureNode> SmParser::DoColor()
     if (aDepthGuard.TooDeep()) throw std::range_error("parser depth limit");
 
     assert(m_aCurToken.eType == TCOLOR);
-    NextTokenColor();
+    NextTokenColor(false);
     SmToken  aToken;
 
+    if( m_aCurToken.eType == TDVIPSNAMESCOL ) NextTokenColor(true);
+    if( m_aCurToken.eType == TERROR ) return DoError(SmParseError::ColorExpected);
     if (TokenInGroup(TG::Color))
     {
         aToken = m_aCurToken;
diff --git a/starmath/source/starmathdatabase.cxx b/starmath/source/starmathdatabase.cxx
index ecab361f73c0..90a29c62db6c 100644
--- a/starmath/source/starmathdatabase.cxx
+++ b/starmath/source/starmathdatabase.cxx
@@ -358,72 +358,328 @@ SmToken starmathdatabase::Identify_PrefixPostfix_SmXMLOperatorContext_Impl(sal_U
 }
 
 const SmColorTokenTableEntry starmathdatabase::aColorTokenTableParse[]
-    = { { "apricot", "Apricot", TDVIPSNAMESCOL, COL_SM_DIV_APRICOT },
+    = { { "aliceblue", "aliceblue", THTMLCOL, COL_SM_ALICEBLUE },
+        { "antiquewhite", "antiquewhite", THTMLCOL, COL_SM_ANTIQUEWHITE },
         { "aqua", "aqua", THTMLCOL, COL_SM_AQUA },
-        { "aquamarine", "Aquamarine", TDVIPSNAMESCOL, COL_SM_DIV_AQUAMARINE },
-        { "bittersweet", "Bittersweet", TDVIPSNAMESCOL, COL_SM_DIV_BITTERSWEET },
+        { "aquamarine", "aquamarine", THTMLCOL, COL_SM_AQUAMARINE },
+        { "azure", "azure", THTMLCOL, COL_SM_AZURE },
+        { "beige", "beige", THTMLCOL, COL_SM_BEIGE },
+        { "bisque", "bisque", THTMLCOL, COL_SM_BISQUE },
         { "black", "black", THTMLCOL, COL_SM_BLACK },
+        { "blanchedalmond", "blanchedalmond", THTMLCOL, COL_SM_BLANCHEDALMOND },
         { "blue", "blue", THTMLCOL, COL_SM_BLUE },
-        { "cyan", "cyan", THTMLCOL, COL_SM_BLACK },
+        { "blueviolet", "blueviolet", THTMLCOL, COL_SM_BLUEVIOLET },
+        { "brown", "brown", THTMLCOL, COL_SM_BROWN },
+        { "burlywood", "burlywood", THTMLCOL, COL_SM_BURLYWOOD },
+        { "cadetblue", "cadetblue", THTMLCOL, COL_SM_CADETBLUE },
+        { "chartreuse", "chartreuse", THTMLCOL, COL_SM_CHARTREUSE },
+        { "chocolate", "chocolate", THTMLCOL, COL_SM_CHOCOLATE },
+        { "coral", "coral", THTMLCOL, COL_SM_CORAL },
+        { "cornflowerblue", "cornflowerblue", THTMLCOL, COL_SM_CORNFLOWERBLUE },
+        { "cornsilk", "cornsilk", THTMLCOL, COL_SM_CORNSILK },
+        { "crimson", "crimson", THTMLCOL, COL_SM_CRIMSON },
+        { "cyan", "cyan", THTMLCOL, COL_SM_CYAN },
+        { "darkblue", "darkblue", THTMLCOL, COL_SM_DARKBLUE },
+        { "darkcyan", "darkcyan", THTMLCOL, COL_SM_DARKCYAN },
+        { "darkgoldenrod", "darkgoldenrod", THTMLCOL, COL_SM_DARKGOLDENROD },
+        { "darkgray", "darkgray", THTMLCOL, COL_SM_DARKGRAY },
+        { "darkgreen", "darkgreen", THTMLCOL, COL_SM_DARKGREEN },
+        { "darkgrey", "darkgrey", THTMLCOL, COL_SM_DARKGREY },
+        { "darkkhaki", "darkkhaki", THTMLCOL, COL_SM_DARKKHAKI },
+        { "darkmagenta", "darkmagenta", THTMLCOL, COL_SM_DARKMAGENTA },
+        { "darkolivegreen", "darkolivegreen", THTMLCOL, COL_SM_DARKOLIVEGREEN },
+        { "darkorange", "darkorange", THTMLCOL, COL_SM_DARKORANGE },
+        { "darkorchid", "darkorchid", THTMLCOL, COL_SM_DARKORCHID },
+        { "darkred", "darkred", THTMLCOL, COL_SM_DARKRED },
+        { "darksalmon", "darksalmon", THTMLCOL, COL_SM_DARKSALMON },
+        { "darkseagreen", "darkseagreen", THTMLCOL, COL_SM_DARKSEAGREEN },
+        { "darkslateblue", "darkslateblue", THTMLCOL, COL_SM_DARKSLATEBLUE },
+        { "darkslategray", "darkslategray", THTMLCOL, COL_SM_DARKSLATEGRAY },
+        { "darkslategrey", "darkslategrey", THTMLCOL, COL_SM_DARKSLATEGREY },
+        { "darkturquoise", "darkturquoise", THTMLCOL, COL_SM_DARKTURQUOISE },
+        { "darkviolet", "darkviolet", THTMLCOL, COL_SM_DARKVIOLET },
         { "debian", "", TICONICCOL, COL_SM_DEBIAN_MAGENTA },
-        { "dblack", "Black", TDVIPSNAMESCOL, COL_SM_BLACK },
-        { "dblue", "Blue", TDVIPSNAMESCOL, COL_SM_BLACK },
+        { "deeppink", "deeppink", THTMLCOL, COL_SM_DEEPPINK },
+        { "deepskyblue", "deepskyblue", THTMLCOL, COL_SM_DEEPSKYBLUE },
+        { "dimgray", "dimgray", THTMLCOL, COL_SM_DIMGRAY },
+        { "dimgrey", "dimgrey", THTMLCOL, COL_SM_DIMGREY },
+        { "dodgerblue", "dodgerblue", THTMLCOL, COL_SM_DODGERBLUE },
+        { "dvip", "dvip", TDVIPSNAMESCOL, COL_SM_BLACK },
+        { "firebrick", "firebrick", THTMLCOL, COL_SM_FIREBRICK },
+        { "floralwhite", "floralwhite", THTMLCOL, COL_SM_FLORALWHITE },
+        { "forestgreen", "forestgreen", THTMLCOL, COL_SM_FORESTGREEN },
         { "fuchsia", "fuchsia", THTMLCOL, COL_SM_FUCHSIA },
+        { "gainsboro", "gainsboro", THTMLCOL, COL_SM_GAINSBORO },
+        { "ghostwhite", "ghostwhite", THTMLCOL, COL_SM_GHOSTWHITE },
+        { "gold", "gold", THTMLCOL, COL_SM_GOLD },
+        { "goldenrod", "goldenrod", THTMLCOL, COL_SM_GOLDENROD },
         { "gray", "gray", THTMLCOL, COL_SM_GRAY },
         { "green", "green", THTMLCOL, COL_SM_GREEN },
+        { "greenyellow", "greenyellow", THTMLCOL, COL_SM_GREENYELLOW },
+        { "grey", "grey", THTMLCOL, COL_SM_GREY },
         { "hex", "hex", THEX, COL_SM_BLACK },
+        { "honeydew", "honeydew", THTMLCOL, COL_SM_HONEYDEW },
+        { "hotpink", "hotpink", THTMLCOL, COL_SM_HOTPINK },
+        { "indianred", "indianred", THTMLCOL, COL_SM_INDIANRED },
+        { "indigo", "indigo", THTMLCOL, COL_SM_INDIGO },
+        { "ivory", "ivory", THTMLCOL, COL_SM_IVORY },
+        { "khaki", "khaki", THTMLCOL, COL_SM_KHAKI },
+        { "lavender", "lavender", THTMLCOL, COL_SM_LAVENDER },
+        { "lavenderblush", "lavenderblush", THTMLCOL, COL_SM_LAVENDERBLUSH },
+        { "lawngreen", "lawngreen", THTMLCOL, COL_SM_LAWNGREEN },
+        { "lemonchiffon", "lemonchiffon", THTMLCOL, COL_SM_LEMONCHIFFON },
+        { "lightblue", "lightblue", THTMLCOL, COL_SM_LIGHTBLUE },
+        { "lightcoral", "lightcoral", THTMLCOL, COL_SM_LIGHTCORAL },
+        { "lightcyan", "lightcyan", THTMLCOL, COL_SM_LIGHTCYAN },
+        { "lightgoldenrodyellow", "lightgoldenrodyellow", THTMLCOL, COL_SM_LIGHTGOLDENRODYELLOW },
+        { "lightgray", "lightgray", THTMLCOL, COL_SM_LIGHTGRAY },
+        { "lightgreen", "lightgreen", THTMLCOL, COL_SM_LIGHTGREEN },
+        { "lightgrey", "lightgrey", THTMLCOL, COL_SM_LIGHTGREY },
+        { "lightpink", "lightpink", THTMLCOL, COL_SM_LIGHTPINK },
+        { "lightsalmon", "lightsalmon", THTMLCOL, COL_SM_LIGHTSALMON },
+        { "lightseagreen", "lightseagreen", THTMLCOL, COL_SM_LIGHTSEAGREEN },
+        { "lightskyblue", "lightskyblue", THTMLCOL, COL_SM_LIGHTSKYBLUE },
+        { "lightslategray", "lightslategray", THTMLCOL, COL_SM_LIGHTSLATEGRAY },
+        { "lightslategrey", "lightslategrey", THTMLCOL, COL_SM_LIGHTSLATEGREY },
+        { "lightsteelblue", "lightsteelblue", THTMLCOL, COL_SM_LIGHTSTEELBLUE },
+        { "lightyellow", "lightyellow", THTMLCOL, COL_SM_LIGHTYELLOW },
         { "lime", "lime", THTMLCOL, COL_SM_LIME },
+        { "limegreen", "limegreen", THTMLCOL, COL_SM_LIMEGREEN },
+        { "linen", "linen", THTMLCOL, COL_SM_LINEN },
         { "lo", "", TICONICCOL, COL_SM_LO_GREEN },
-        { "magenta", "magenta", THTMLCOL, COL_SM_FUCHSIA },
+        { "magenta", "magenta", THTMLCOL, COL_SM_MAGENTA },
         { "maroon", "maroon", THTMLCOL, COL_SM_MAROON },
+        { "mediumaquamarine", "mediumaquamarine", THTMLCOL, COL_SM_MEDIUMAQUAMARINE },
+        { "mediumblue", "mediumblue", THTMLCOL, COL_SM_MEDIUMBLUE },
+        { "mediumorchid", "mediumorchid", THTMLCOL, COL_SM_MEDIUMORCHID },
+        { "mediumpurple", "mediumpurple", THTMLCOL, COL_SM_MEDIUMPURPLE },
+        { "mediumseagreen", "mediumseagreen", THTMLCOL, COL_SM_MEDIUMSEAGREEN },
+        { "mediumslateblue", "mediumslateblue", THTMLCOL, COL_SM_MEDIUMSLATEBLUE },
+        { "mediumspringgreen", "mediumspringgreen", THTMLCOL, COL_SM_MEDIUMSPRINGGREEN },
+        { "mediumturquoise", "mediumturquoise", THTMLCOL, COL_SM_MEDIUMTURQUOISE },
+        { "mediumvioletred", "mediumvioletred", THTMLCOL, COL_SM_MEDIUMVIOLETRED },
+        { "midnightblue", "midnightblue", THTMLCOL, COL_SM_MIDNIGHTBLUE },
+        { "mintcream", "mintcream", THTMLCOL, COL_SM_MINTCREAM },
+        { "mistyrose", "mistyrose", THTMLCOL, COL_SM_MISTYROSE },
+        { "moccasin", "moccasin", THTMLCOL, COL_SM_MOCCASIN },
+        { "navajowhite", "navajowhite", THTMLCOL, COL_SM_NAVAJOWHITE },
         { "navy", "navy", THTMLCOL, COL_SM_NAVY },
+        { "oldlace", "oldlace", THTMLCOL, COL_SM_OLDLACE },
         { "olive", "olive", THTMLCOL, COL_SM_OLIVE },
+        { "olivedrab", "olivedrab", THTMLCOL, COL_SM_OLIVEDRAB },
+        { "orange", "orange", THTMLCOL, COL_SM_ORANGE },
+        { "orangered", "orangered", THTMLCOL, COL_SM_ORANGERED },
+        { "orchid", "orchid", THTMLCOL, COL_SM_ORCHID },
+        { "palegoldenrod", "palegoldenrod", THTMLCOL, COL_SM_PALEGOLDENROD },
+        { "palegreen", "palegreen", THTMLCOL, COL_SM_PALEGREEN },
+        { "paleturquoise", "paleturquoise", THTMLCOL, COL_SM_PALETURQUOISE },
+        { "palevioletred", "palevioletred", THTMLCOL, COL_SM_PALEVIOLETRED },
+        { "papayawhip", "papayawhip", THTMLCOL, COL_SM_PAPAYAWHIP },
+        { "peachpuff", "peachpuff", THTMLCOL, COL_SM_PEACHPUFF },
+        { "peru", "peru", THTMLCOL, COL_SM_PERU },
+        { "pink", "pink", THTMLCOL, COL_SM_PINK },
+        { "plum", "plum", THTMLCOL, COL_SM_PLUM },
+        { "powderblue", "powderblue", THTMLCOL, COL_SM_POWDERBLUE },
         { "purple", "purple", THTMLCOL, COL_SM_PURPLE },
         { "rebeccapurple", "rebeccapurple", THTMLCOL, COL_SM_REBECCAPURPLE },
         { "red", "red", THTMLCOL, COL_SM_RED },
         { "rgb", "rgb", TRGB, COL_AUTO },
         { "rgba", "rgba", TRGBA, COL_AUTO },
+        { "rosybrown", "rosybrown", THTMLCOL, COL_SM_ROSYBROWN },
+        { "royalblue", "royalblue", THTMLCOL, COL_SM_ROYALBLUE },
+        { "saddlebrown", "saddlebrown", THTMLCOL, COL_SM_SADDLEBROWN },
+        { "salmon", "salmon", THTMLCOL, COL_SM_SALMON },
+        { "sandybrown", "sandybrown", THTMLCOL, COL_SM_SANDYBROWN },
+        { "seagreen", "seagreen", THTMLCOL, COL_SM_SEAGREEN },
+        { "seashell", "seashell", THTMLCOL, COL_SM_SEASHELL },
+        { "sienna", "sienna", THTMLCOL, COL_SM_SIENNA },
         { "silver", "silver", THTMLCOL, COL_SM_SILVER },
+        { "skyblue", "skyblue", THTMLCOL, COL_SM_SKYBLUE },
+        { "slateblue", "slateblue", THTMLCOL, COL_SM_SLATEBLUE },
+        { "slategray", "slategray", THTMLCOL, COL_SM_SLATEGRAY },
+        { "slategrey", "slategrey", THTMLCOL, COL_SM_SLATEGREY },
+        { "snow", "snow", THTMLCOL, COL_SM_SNOW },
+        { "springgreen", "springgreen", THTMLCOL, COL_SM_SPRINGGREEN },
+        { "steelblue", "steelblue", THTMLCOL, COL_SM_STEELBLUE },
+        { "tan", "tan", THTMLCOL, COL_SM_TAN },
         { "teal", "teal", THTMLCOL, COL_SM_TEAL },
+        { "thistle", "thistle", THTMLCOL, COL_SM_THISTLE },
+        { "tomato", "tomato", THTMLCOL, COL_SM_TOMATO },
+        { "turquoise", "turquoise", THTMLCOL, COL_SM_TURQUOISE },
         { "ubuntu", "", TICONICCOL, COL_SM_UBUNTU_ORANGE },
+        { "violet", "COL_SM_VIOLET", THTMLCOL, COL_SM_VIOLET },
+        { "wheat", "wheat", THTMLCOL, COL_SM_WHEAT },
         { "white", "white", THTMLCOL, COL_SM_WHITE },
-        { "yellow", "yellow", THTMLCOL, COL_SM_YELLOW } };
+        { "whitesmoke", "whitesmoke", THTMLCOL, COL_SM_WHITESMOKE },
+        { "yellow", "yellow", THTMLCOL, COL_SM_YELLOW },
+        { "yellowgreen", "yellowgreen", THTMLCOL, COL_SM_YELLOWGREEN } };
 
 const SmColorTokenTableEntry starmathdatabase::aColorTokenTableHTML[]
-    = { { "aqua", "aqua", THTMLCOL, COL_SM_AQUA },
+    = { { "aliceblue", "aliceblue", THTMLCOL, COL_SM_ALICEBLUE },
+        { "antiquewhite", "antiquewhite", THTMLCOL, COL_SM_ANTIQUEWHITE },
+        { "aqua", "aqua", THTMLCOL, COL_SM_AQUA },
+        { "aquamarine", "aquamarine", THTMLCOL, COL_SM_AQUAMARINE },
+        { "azure", "azure", THTMLCOL, COL_SM_AZURE },
+        { "beige", "beige", THTMLCOL, COL_SM_BEIGE },
+        { "bisque", "bisque", THTMLCOL, COL_SM_BISQUE },
         { "black", "black", THTMLCOL, COL_SM_BLACK },
+        { "blanchedalmond", "blanchedalmond", THTMLCOL, COL_SM_BLANCHEDALMOND },
         { "blue", "blue", THTMLCOL, COL_SM_BLUE },
-        { "cyan", "cyan", THTMLCOL, COL_SM_BLACK },
+        { "blueviolet", "blueviolet", THTMLCOL, COL_SM_BLUEVIOLET },
+        { "brown", "brown", THTMLCOL, COL_SM_BROWN },
+        { "burlywood", "burlywood", THTMLCOL, COL_SM_BURLYWOOD },
+        { "cadetblue", "cadetblue", THTMLCOL, COL_SM_CADETBLUE },
+        { "chartreuse", "chartreuse", THTMLCOL, COL_SM_CHARTREUSE },
+        { "chocolate", "chocolate", THTMLCOL, COL_SM_CHOCOLATE },
+        { "coral", "coral", THTMLCOL, COL_SM_CORAL },
+        { "cornflowerblue", "cornflowerblue", THTMLCOL, COL_SM_CORNFLOWERBLUE },
+        { "cornsilk", "cornsilk", THTMLCOL, COL_SM_CORNSILK },
+        { "crimson", "crimson", THTMLCOL, COL_SM_CRIMSON },
+        { "cyan", "cyan", THTMLCOL, COL_SM_CYAN },
+        { "darkblue", "darkblue", THTMLCOL, COL_SM_DARKBLUE },
+        { "darkcyan", "darkcyan", THTMLCOL, COL_SM_DARKCYAN },
+        { "darkgoldenrod", "darkgoldenrod", THTMLCOL, COL_SM_DARKGOLDENROD },
+        { "darkgray", "darkgray", THTMLCOL, COL_SM_DARKGRAY },
+        { "darkgreen", "darkgreen", THTMLCOL, COL_SM_DARKGREEN },
+        { "darkgrey", "darkgrey", THTMLCOL, COL_SM_DARKGREY },
+        { "darkkhaki", "darkkhaki", THTMLCOL, COL_SM_DARKKHAKI },
+        { "darkmagenta", "darkmagenta", THTMLCOL, COL_SM_DARKMAGENTA },
+        { "darkolivegreen", "darkolivegreen", THTMLCOL, COL_SM_DARKOLIVEGREEN },
+        { "darkorange", "darkorange", THTMLCOL, COL_SM_DARKORANGE },
+        { "darkorchid", "darkorchid", THTMLCOL, COL_SM_DARKORCHID },
+        { "darkred", "darkred", THTMLCOL, COL_SM_DARKRED },
+        { "darksalmon", "darksalmon", THTMLCOL, COL_SM_DARKSALMON },
+        { "darkseagreen", "darkseagreen", THTMLCOL, COL_SM_DARKSEAGREEN },
+        { "darkslateblue", "darkslateblue", THTMLCOL, COL_SM_DARKSLATEBLUE },
+        { "darkslategray", "darkslategray", THTMLCOL, COL_SM_DARKSLATEGRAY },
+        { "darkslategrey", "darkslategrey", THTMLCOL, COL_SM_DARKSLATEGREY },
+        { "darkturquoise", "darkturquoise", THTMLCOL, COL_SM_DARKTURQUOISE },
+        { "darkviolet", "darkviolet", THTMLCOL, COL_SM_DARKVIOLET },
+        { "deeppink", "deeppink", THTMLCOL, COL_SM_DEEPPINK },
+        { "deepskyblue", "deepskyblue", THTMLCOL, COL_SM_DEEPSKYBLUE },
+        { "dimgray", "dimgray", THTMLCOL, COL_SM_DIMGRAY },
+        { "dimgrey", "dimgrey", THTMLCOL, COL_SM_DIMGREY },
+        { "dodgerblue", "dodgerblue", THTMLCOL, COL_SM_DODGERBLUE },
+        { "firebrick", "firebrick", THTMLCOL, COL_SM_FIREBRICK },
+        { "floralwhite", "floralwhite", THTMLCOL, COL_SM_FLORALWHITE },
+        { "forestgreen", "forestgreen", THTMLCOL, COL_SM_FORESTGREEN },
         { "fuchsia", "fuchsia", THTMLCOL, COL_SM_FUCHSIA },
+        { "gainsboro", "gainsboro", THTMLCOL, COL_SM_GAINSBORO },
+        { "ghostwhite", "ghostwhite", THTMLCOL, COL_SM_GHOSTWHITE },
+        { "gold", "gold", THTMLCOL, COL_SM_GOLD },
+        { "goldenrod", "goldenrod", THTMLCOL, COL_SM_GOLDENROD },
         { "gray", "gray", THTMLCOL, COL_SM_GRAY },
         { "green", "green", THTMLCOL, COL_SM_GREEN },
-        { "hex", "hex", THEX, COL_SM_BLACK },
+        { "greenyellow", "greenyellow", THTMLCOL, COL_SM_GREENYELLOW },
+        { "grey", "grey", THTMLCOL, COL_SM_GREY },
+        { "honeydew", "honeydew", THTMLCOL, COL_SM_HONEYDEW },
+        { "hotpink", "hotpink", THTMLCOL, COL_SM_HOTPINK },
+        { "indianred", "indianred", THTMLCOL, COL_SM_INDIANRED },
+        { "indigo", "indigo", THTMLCOL, COL_SM_INDIGO },
+        { "ivory", "ivory", THTMLCOL, COL_SM_IVORY },
+        { "khaki", "khaki", THTMLCOL, COL_SM_KHAKI },
+        { "lavender", "lavender", THTMLCOL, COL_SM_LAVENDER },
+        { "lavenderblush", "lavenderblush", THTMLCOL, COL_SM_LAVENDERBLUSH },
+        { "lawngreen", "lawngreen", THTMLCOL, COL_SM_LAWNGREEN },
+        { "lemonchiffon", "lemonchiffon", THTMLCOL, COL_SM_LEMONCHIFFON },
+        { "lightblue", "lightblue", THTMLCOL, COL_SM_LIGHTBLUE },
+        { "lightcoral", "lightcoral", THTMLCOL, COL_SM_LIGHTCORAL },
+        { "lightcyan", "lightcyan", THTMLCOL, COL_SM_LIGHTCYAN },
+        { "lightgoldenrodyellow", "lightgoldenrodyellow", THTMLCOL, COL_SM_LIGHTGOLDENRODYELLOW },
+        { "lightgray", "lightgray", THTMLCOL, COL_SM_LIGHTGRAY },
+        { "lightgreen", "lightgreen", THTMLCOL, COL_SM_LIGHTGREEN },
+        { "lightgrey", "lightgrey", THTMLCOL, COL_SM_LIGHTGREY },
+        { "lightpink", "lightpink", THTMLCOL, COL_SM_LIGHTPINK },
+        { "lightsalmon", "lightsalmon", THTMLCOL, COL_SM_LIGHTSALMON },
+        { "lightseagreen", "lightseagreen", THTMLCOL, COL_SM_LIGHTSEAGREEN },
+        { "lightskyblue", "lightskyblue", THTMLCOL, COL_SM_LIGHTSKYBLUE },
+        { "lightslategray", "lightslategray", THTMLCOL, COL_SM_LIGHTSLATEGRAY },
+        { "lightslategrey", "lightslategrey", THTMLCOL, COL_SM_LIGHTSLATEGREY },
+        { "lightsteelblue", "lightsteelblue", THTMLCOL, COL_SM_LIGHTSTEELBLUE },
+        { "lightyellow", "lightyellow", THTMLCOL, COL_SM_LIGHTYELLOW },
         { "lime", "lime", THTMLCOL, COL_SM_LIME },
-        { "magenta", "magenta", THTMLCOL, COL_SM_FUCHSIA },
+        { "limegreen", "limegreen", THTMLCOL, COL_SM_LIMEGREEN },
+        { "linen", "linen", THTMLCOL, COL_SM_LINEN },
+        { "magenta", "magenta", THTMLCOL, COL_SM_MAGENTA },
         { "maroon", "maroon", THTMLCOL, COL_SM_MAROON },
+        { "mediumaquamarine", "mediumaquamarine", THTMLCOL, COL_SM_MEDIUMAQUAMARINE },
+        { "mediumblue", "mediumblue", THTMLCOL, COL_SM_MEDIUMBLUE },
+        { "mediumorchid", "mediumorchid", THTMLCOL, COL_SM_MEDIUMORCHID },
+        { "mediumpurple", "mediumpurple", THTMLCOL, COL_SM_MEDIUMPURPLE },
+        { "mediumseagreen", "mediumseagreen", THTMLCOL, COL_SM_MEDIUMSEAGREEN },
+        { "mediumslateblue", "mediumslateblue", THTMLCOL, COL_SM_MEDIUMSLATEBLUE },
+        { "mediumspringgreen", "mediumspringgreen", THTMLCOL, COL_SM_MEDIUMSPRINGGREEN },
+        { "mediumturquoise", "mediumturquoise", THTMLCOL, COL_SM_MEDIUMTURQUOISE },
+        { "mediumvioletred", "mediumvioletred", THTMLCOL, COL_SM_MEDIUMVIOLETRED },
+        { "midnightblue", "midnightblue", THTMLCOL, COL_SM_MIDNIGHTBLUE },
+        { "mintcream", "mintcream", THTMLCOL, COL_SM_MINTCREAM },
+        { "mistyrose", "mistyrose", THTMLCOL, COL_SM_MISTYROSE },
+        { "moccasin", "moccasin", THTMLCOL, COL_SM_MOCCASIN },
+        { "navajowhite", "navajowhite", THTMLCOL, COL_SM_NAVAJOWHITE },
         { "navy", "navy", THTMLCOL, COL_SM_NAVY },
+        { "oldlace", "oldlace", THTMLCOL, COL_SM_OLDLACE },
         { "olive", "olive", THTMLCOL, COL_SM_OLIVE },
+        { "olivedrab", "olivedrab", THTMLCOL, COL_SM_OLIVEDRAB },
+        { "orange", "orange", THTMLCOL, COL_SM_ORANGE },
+        { "orangered", "orangered", THTMLCOL, COL_SM_ORANGERED },
+        { "orchid", "orchid", THTMLCOL, COL_SM_ORCHID },
+        { "palegoldenrod", "palegoldenrod", THTMLCOL, COL_SM_PALEGOLDENROD },
+        { "palegreen", "palegreen", THTMLCOL, COL_SM_PALEGREEN },
+        { "paleturquoise", "paleturquoise", THTMLCOL, COL_SM_PALETURQUOISE },
+        { "palevioletred", "palevioletred", THTMLCOL, COL_SM_PALEVIOLETRED },
+        { "papayawhip", "papayawhip", THTMLCOL, COL_SM_PAPAYAWHIP },
+        { "peachpuff", "peachpuff", THTMLCOL, COL_SM_PEACHPUFF },
+        { "peru", "peru", THTMLCOL, COL_SM_PERU },
+        { "pink", "pink", THTMLCOL, COL_SM_PINK },
+        { "plum", "plum", THTMLCOL, COL_SM_PLUM },
+        { "powderblue", "powderblue", THTMLCOL, COL_SM_POWDERBLUE },
         { "purple", "purple", THTMLCOL, COL_SM_PURPLE },
         { "rebeccapurple", "rebeccapurple", THTMLCOL, COL_SM_REBECCAPURPLE },
         { "red", "red", THTMLCOL, COL_SM_RED },
+        { "rosybrown", "rosybrown", THTMLCOL, COL_SM_ROSYBROWN },
+        { "royalblue", "royalblue", THTMLCOL, COL_SM_ROYALBLUE },
+        { "saddlebrown", "saddlebrown", THTMLCOL, COL_SM_SADDLEBROWN },
+        { "salmon", "salmon", THTMLCOL, COL_SM_SALMON },
+        { "sandybrown", "sandybrown", THTMLCOL, COL_SM_SANDYBROWN },
+        { "seagreen", "seagreen", THTMLCOL, COL_SM_SEAGREEN },
+        { "seashell", "seashell", THTMLCOL, COL_SM_SEASHELL },
+        { "sienna", "sienna", THTMLCOL, COL_SM_SIENNA },
         { "silver", "silver", THTMLCOL, COL_SM_SILVER },
+        { "skyblue", "skyblue", THTMLCOL, COL_SM_SKYBLUE },
+        { "slateblue", "slateblue", THTMLCOL, COL_SM_SLATEBLUE },
+        { "slategray", "slategray", THTMLCOL, COL_SM_SLATEGRAY },
+        { "slategrey", "slategrey", THTMLCOL, COL_SM_SLATEGREY },
+        { "snow", "snow", THTMLCOL, COL_SM_SNOW },
+        { "springgreen", "springgreen", THTMLCOL, COL_SM_SPRINGGREEN },
+        { "steelblue", "steelblue", THTMLCOL, COL_SM_STEELBLUE },
+        { "tan", "tan", THTMLCOL, COL_SM_TAN },
         { "teal", "teal", THTMLCOL, COL_SM_TEAL },
+        { "thistle", "thistle", THTMLCOL, COL_SM_THISTLE },
+        { "tomato", "tomato", THTMLCOL, COL_SM_TOMATO },
+        { "turquoise", "turquoise", THTMLCOL, COL_SM_TURQUOISE },
+        { "violet", "COL_SM_VIOLET", THTMLCOL, COL_SM_VIOLET },
+        { "wheat", "wheat", THTMLCOL, COL_SM_WHEAT },
         { "white", "white", THTMLCOL, COL_SM_WHITE },
-        { "yellow", "yellow", THTMLCOL, COL_SM_YELLOW } };
+        { "whitesmoke", "whitesmoke", THTMLCOL, COL_SM_WHITESMOKE },
+        { "yellow", "yellow", THTMLCOL, COL_SM_YELLOW },
+        { "yellowgreen", "yellowgreen", THTMLCOL, COL_SM_YELLOWGREEN } };
 
-const SmColorTokenTableEntry starmathdatabase::aColorTokenTableDVIPSNAMES[] = {
-    { "apricot", "Apricot", TDVIPSNAMESCOL, COL_SM_DIV_APRICOT },
-    { "aquamarine", "Aquamarine", TDVIPSNAMESCOL, COL_SM_DIV_AQUAMARINE },
-    { "bittersweet", "Bittersweet", TDVIPSNAMESCOL, COL_SM_DIV_BITTERSWEET },
-    { "dblack", "Black", TDVIPSNAMESCOL, COL_SM_BLACK },
-    { "dblue", "Blue", TDVIPSNAMESCOL, COL_SM_BLACK },
-};
+const SmColorTokenTableEntry starmathdatabase::aColorTokenTableDVIPSNAMES[]
+    = { { "apricot", "Apricot", TDVIPSNAMESCOL, COL_SM_DIV_APRICOT },
+        { "aquamarine", "Aquamarine", TDVIPSNAMESCOL, COL_SM_DIV_AQUAMARINE },
+        { "bittersweet", "Bittersweet", TDVIPSNAMESCOL, COL_SM_DIV_BITTERSWEET },
+        { "black", "Black", TDVIPSNAMESCOL, COL_SM_BLACK },
+        { "blue", "Blue", TDVIPSNAMESCOL, COL_SM_BLACK } };
 
 std::unique_ptr<SmColorTokenTableEntry> starmathdatabase::Identify_Color_Parser(sal_uInt32 cColor)
 {
     for (auto i = std::begin(aColorTokenTableParse); i < std::end(aColorTokenTableParse); ++i)
         if (i->equals(cColor))
             return std::unique_ptr<SmColorTokenTableEntry>(new SmColorTokenTableEntry(i));
+    for (auto i = std::begin(aColorTokenTableDVIPSNAMES); i < std::end(aColorTokenTableDVIPSNAMES);
+         ++i)
+        if (i->equals(cColor))
+            return std::unique_ptr<SmColorTokenTableEntry>(new SmColorTokenTableEntry(i));
     if ((cColor & 0x00FFFFFF) == cColor)
         return std::unique_ptr<SmColorTokenTableEntry>(
             new SmColorTokenTableEntry("", "", TRGB, cColor));
@@ -464,34 +720,41 @@ std::unique_ptr<SmColorTokenTableEntry>
 starmathdatabase::Identify_ColorName_Parser(const OUString& colorname)
 {
     if (colorname.isEmpty())
-        return nullptr;
+        return std::unique_ptr<SmColorTokenTableEntry>(
+            new SmColorTokenTableEntry("", "", TERROR, COL_SM_BLACK));
     for (auto i = std::begin(aColorTokenTableParse); i < std::end(aColorTokenTableParse); ++i)
         if (i->equals(colorname))
             return std::unique_ptr<SmColorTokenTableEntry>(new SmColorTokenTableEntry(i));
-    return nullptr;
+    return std::unique_ptr<SmColorTokenTableEntry>(
+        new SmColorTokenTableEntry("", "", TERROR, COL_SM_BLACK));
 }
 
 std::unique_ptr<SmColorTokenTableEntry>
 starmathdatabase::Identify_ColorName_HTML(const OUString& colorname)
 {
     if (colorname.isEmpty())
-        return nullptr;
-    for (auto i = std::begin(aColorTokenTableParse); i < std::end(aColorTokenTableParse); ++i)
+        return std::unique_ptr<SmColorTokenTableEntry>(
+            new SmColorTokenTableEntry("", "", TERROR, COL_SM_BLACK));
+    for (auto i = std::begin(aColorTokenTableHTML); i < std::end(aColorTokenTableHTML); ++i)
         if (i->equals(colorname))
             return std::unique_ptr<SmColorTokenTableEntry>(new SmColorTokenTableEntry(i));
     if (colorname[0] == '#' && colorname.getLength() == 7)
         return std::unique_ptr<SmColorTokenTableEntry>(
             new SmColorTokenTableEntry("", "", TRGB, colorname.copy(1, 6).toUInt32(16)));
-    return nullptr;
+    return std::unique_ptr<SmColorTokenTableEntry>(
+        new SmColorTokenTableEntry("", "", TERROR, COL_SM_BLACK));
 }
 
 std::unique_ptr<SmColorTokenTableEntry>
 starmathdatabase::Identify_ColorName_DVIPSNAMES(const OUString& colorname)
 {
     if (colorname.isEmpty())
-        return nullptr;
-    for (auto i = std::begin(aColorTokenTableParse); i < std::end(aColorTokenTableParse); ++i)
+        return std::unique_ptr<SmColorTokenTableEntry>(
+            new SmColorTokenTableEntry("", "", TERROR, COL_SM_BLACK));
+    for (auto i = std::begin(aColorTokenTableDVIPSNAMES); i < std::end(aColorTokenTableDVIPSNAMES);
+         ++i)
         if (i->equals(colorname))
             return std::unique_ptr<SmColorTokenTableEntry>(new SmColorTokenTableEntry(i));
-    return nullptr;
+    return std::unique_ptr<SmColorTokenTableEntry>(
+        new SmColorTokenTableEntry("", "", TERROR, COL_SM_BLACK));
 }
diff --git a/starmath/source/visitors.cxx b/starmath/source/visitors.cxx
index 924690282e42..0fbe4271d477 100644
--- a/starmath/source/visitors.cxx
+++ b/starmath/source/visitors.cxx
@@ -2135,22 +2135,23 @@ void SmNodeToTextVisitor::Visit( SmFontNode* pNode )
                 Separate( );
             }
             break;
-        case THTMLCOL:
+
         case TDVIPSNAMESCOL:
-        case TICONICCOL:
+            Append( "color dvip " );
             nc = pNode->GetToken().aText.toUInt32(16);
+            aSmColorTokenTableEntry = starmathdatabase::Identify_Color_Parser( nc );
+            Append( aSmColorTokenTableEntry->pIdent );
+            break;
+        case THTMLCOL:
+        case TICONICCOL:
             Append( "color " );
+            nc = pNode->GetToken().aText.toUInt32(16);
             aSmColorTokenTableEntry = starmathdatabase::Identify_Color_Parser( nc );
             Append( aSmColorTokenTableEntry->pIdent );
             break;
         case TRGB:
             nc = pNode->GetToken().aText.toUInt32(16);
             aSmColorTokenTableEntry = starmathdatabase::Identify_Color_Parser( nc );
-            if ( aSmColorTokenTableEntry ) {
-                Append( "color " );
-                Append( aSmColorTokenTableEntry->pIdent );
-                break;
-            }
             Append( "color rgb " );
             nb = nc % 256;
             nc /= 256;
@@ -2167,11 +2168,6 @@ void SmNodeToTextVisitor::Visit( SmFontNode* pNode )
         case TRGBA:
             nc = pNode->GetToken().aText.toUInt32(16);
             aSmColorTokenTableEntry = starmathdatabase::Identify_Color_Parser( nc );
-            if ( aSmColorTokenTableEntry ) {
-                Append( "color " );
-                Append( aSmColorTokenTableEntry->pIdent );
-                break;
-            }
             Append( "color rgba " );
             nc = pNode->GetToken().aText.toUInt32(16);
             nb = nc % 256;
@@ -2192,11 +2188,6 @@ void SmNodeToTextVisitor::Visit( SmFontNode* pNode )
         case THEX:
             nc = pNode->GetToken().aText.toUInt32(16);
             aSmColorTokenTableEntry = starmathdatabase::Identify_Color_Parser( nc );
-            if ( aSmColorTokenTableEntry ) {
-                Append( "color " );
-                Append( aSmColorTokenTableEntry->pIdent );
-                break;
-            }
             Append( "color hex " );
             nc = pNode->GetToken().aText.toUInt32(16);
             Append(OUString::number(nc,16));


More information about the Libreoffice-commits mailing list