#endif
#include "support/LAssert.h"
+#include "support/lstrings.h"
#include "debug.h"
-
#include "MathsSymbols.h"
#include "FormMathsPanel.h"
#include "misc.xbm"
#include "varsz.xbm"
#include "dots.xbm"
+
+#include "ams_misc.xbm"
+#include "ams_arrows.xbm"
+#include "ams_rel.xbm"
+#include "ams_nrel.xbm"
+#include "ams_ops.xbm"
+
#include "mathed/math_parser.h"
#include "frac.xpm"
+#include "sub.xpm"
+#include "super.xpm"
+#include "style.xpm"
#include "sqrt.xpm"
#include "delim.xbm"
#include "delim.xpm"
"Re", "Im", "aleph", "wp", "hbar",
"angle", "top", "bot", "Vert", "neg",
"flat", "natural", "sharp", "surd", "triangle",
- "diamondsuit", "heartsuit", "clubsuit", "spadesuit", ""
+ "diamondsuit", "heartsuit", "clubsuit", "spadesuit",
+ "mathbb N", "mathbb Z", "mathbb Q",
+ "mathbb R", "mathbb C", "mathbb H",
+ "mathcal F", "mathcal L",
+ "mathcal H", "mathcal O",""
};
int const nr_latex_misc = sizeof(latex_misc) / sizeof(char const *);
int const nr_latex_varsz = sizeof(latex_varsz) / sizeof(char const *);
+char const * latex_ams_misc[] = {
+ "digamma", "varkappa", "beth", "daleth", "gimel",
+ "ulcorner", "urcorner", "llcorner", "lrcorner",
+ "hbar", "hslash", "vartriangle",
+ "triangledown", "square", "lozenge",
+ "circledS", "angle", "measuredangle",
+ "nexists", "mho", "Finv",
+ "Game", "Bbbk", "backprime",
+ "varnothing", "blacktriangle", "blacktriangledown",
+ "blacksquare", "blacklozenge", "bigstar",
+ "sphericalangle", "complement", "eth",
+ "diagup", "diagdown", ""
+};
+
+int const nr_latex_ams_misc = sizeof(latex_ams_misc) / sizeof(char const *);
+
+char const * latex_ams_arrows[] = {
+ "dashrightarrow", "dashleftarrow", "leftleftarrows",
+ "leftrightarrows", "Lleftarrow", "twoheadleftarrow",
+ "leftarrowtail", "looparrowleft", "leftrightharpoons",
+ "curvearrowleft", "circlearrowleft", "Lsh",
+ "upuparrows", "upharpoonleft", "downharpoonleft",
+ "multimap", "leftrightsquigarrow", "rightrightarrows",
+ "rightleftarrows", "rightrightarrows", "rightleftarrows",
+ "twoheadrightarrow", "rightarrowtail", "looparrowright",
+ "rightleftharpoons", "curvearrowright", "circlearrowright",
+ "Rsh", "downdownarrows", "upharpoonright",
+ "downharpoonright", "rightsquigarrow",
+ "nleftarrow", "nrightarrow", "nLeftarrow",
+ "nRightarrow", "nleftrightarrow", "nLeftrightarrow"
+};
+
+int const nr_latex_ams_arrows = sizeof(latex_ams_arrows) / sizeof(char const *);
+
+char const * latex_ams_rel[] = {
+ "leqq", "leqslant", "eqslantless",
+ "lesssim", "lessapprox", "approxeq",
+ "lessdot", "lll", "lessgtr",
+ "lesseqgtr", "lesseqqgtr", "doteqdot",
+ "risingdotseq", "fallingdotseq", "backsim",
+ "backsimeq", "subseteqq", "Subset",
+ "sqsubset", "preccurlyeq", "curlyeqprec",
+ "precsim", "precapprox", "vartriangleleft",
+ "trianglelefteq", "vDash", "Vvdash",
+ "smallsmile", "smallfrown", "bumpeq",
+ "Bumpeq", "geqq", "geqslant",
+ "eqslantgtr", "gtrsim", "gtrapprox",
+ "gtrdot", "ggg", "gtrless",
+ "gtreqless", "gtreqqless", "eqcirc",
+ "circeq", "triangleq", "thicksim",
+ "thickapprox", "supseteqq", "Supset",
+ "sqsupset", "succcurlyeq", "curlyeqsucc",
+ "succsim", "succapprox", "vartriangleright",
+ "trianglerighteq", "Vdash", "shortmid",
+ "shortparallel", "between", "pitchfork",
+ "varpropto", "blacktriangleleft", "therefore",
+ "backepsilon", "blacktriangleright", "because"
+};
+
+int const nr_latex_ams_rel = sizeof(latex_ams_rel) / sizeof(char const *);
+
+char const * latex_ams_nrel[] = {
+ "nless", "nleq", "nleqslant",
+ "nleqq", "lneq", "lneqq",
+ "lvertneqq", "lnsim", "lnapprox",
+ "nprec", "npreceq", "precnsim",
+ "precnapprox", "nsim", "nshortmid",
+ "nmid", "nvdash", "nvDash",
+ "ntriangleleft", "ntrianglelefteq", "nsubseteq",
+ "subsetneq", "varsubsetneq", "subsetneqq",
+ "varsubsetneqq", "ngtr", "ngeq",
+ "ngeqslant", "ngeqq", "gneq",
+ "gneqq", "gverteqq", "gnsim",
+ "gnapprox", "nsucc", "nsucceq",
+ "succnsim", "succnapprox", "ncong",
+ "nshortparallel", "nparallel", "nvDash",
+ "nVDash", "ntriangleright", "ntrianglerighteq",
+ "nsupseteq", "nsupseteqq", "supsetneq",
+ "varsupsetneq", "supsetneqq", "varsupsetneqq"
+};
+
+int const nr_latex_ams_nrel = sizeof(latex_ams_nrel) / sizeof(char const *);
+
+
+char const * latex_ams_ops[] = {
+ "dotplus", "smallsetminus", "Cap",
+ "Cup", "barwedge", "veebar",
+ "doublebarwedge", "boxminus", "boxtimes",
+ "boxdot", "boxplus", "divideontimes",
+ "ltimes", "rtimes", "leftthreetimes",
+ "rightthreetimes", "curlywedge", "curlyvee",
+ "circleddash", "circledast", "circledcirc",
+ "centerdot", "intercal", ""
+};
+
+int const nr_latex_ams_ops = sizeof(latex_ams_ops) / sizeof(char const *);
+
static char const ** mathed_get_pixmap_from_icon(int d)
{
switch (d) {
case MM_FRAC: return frac;
case MM_SQRT: return sqrt_xpm;
+ case MM_SUPER: return super_xpm;
+ case MM_SUB: return sub_xpm;
+ case MM_STYLE: return style_xpm;
case MM_DELIM: return delim;
case MM_MATRIX: return matrix;
case MM_EQU: return equation;
int id = -1;
int i = 0;
- for (; i < 6; ++i) {
+ for (; i < 11; ++i) {
char const ** latex_str = 0;
switch (i) {
case 0: latex_str = latex_greek; break;
case 3: latex_str = latex_arrow; break;
case 4: latex_str = latex_varsz; break;
case 5: latex_str = latex_misc; break;
+ case 6: latex_str = latex_ams_misc; break;
+ case 7: latex_str = latex_ams_arrows; break;
+ case 8: latex_str = latex_ams_rel; break;
+ case 9: latex_str = latex_ams_nrel; break;
+ case 10: latex_str = latex_ams_ops; break;
+ // Add AMS stuff here -- MV
}
for (int k = 0; latex_str[k][0] > ' '; ++k) {
}
if (id >= 0) break;
}
- if (i < 6 && id >= 0) {
+ if (i < 11 && id >= 0) {
unsigned char const * bdata = 0;
int w = 0;
int h = 0;
int dw = 0;
int dh = 0;
- lyxerr[Debug::MATHED] << "Imando " << i << ", " << id << endl;
+ lyxerr [Debug::MATHED] << "Imando " << i << ", " << id << endl;
switch (i) {
case 0:
if (id <= 10) {
dh = 5;
break;
case 5:
- w = misc_width;
- h = misc_height;
- bdata = misc_bits;
- dw = 5;
- dh = 6;
+ if (id < 29) {
+ w = misc_width;
+ h = misc_height;
+ bdata = misc_bits;
+ dw = 5;
+ dh = 6;
+ } else if (id > 36) {
+ w = misc3_width;
+ h = misc3_height;
+ bdata = misc3_bits;
+ dw = 3;
+ dh = 2;
+ id -= 37;
+ } else {
+ w = misc2_width;
+ h = misc2_height;
+ bdata = misc2_bits;
+ dw = 2;
+ dh = 2;
+ id -= 29;
+ }
+ break;
+ case 7:
+ case 8:
+ case 9:
+ case 10:
+ // to be added -- MV
break;
}
int ww = w / dw;
int hh = h / dh;
-
XImage * xima = XCreateImage(fl_get_display(), 0, 1, XYBitmap, 0,
const_cast<char*>(reinterpret_cast<char const *>(bdata)), w, h, 8, 0);
xima->byte_order = LSBFirst;
case LM_TK_SQRT:
data = mathed_get_pixmap_from_icon(MM_SQRT);
break;
- case LM_TK_BIGSYM:
case LM_TK_SYM:
+ case LM_TK_CMR:
+ case LM_TK_CMSY:
+ case LM_TK_CMEX:
+ case LM_TK_CMM:
+ case LM_TK_MSA:
+ case LM_TK_MSB:
// I have to use directly the bitmap data since the
// bitmap tables are not yet created when this
// function is called.
data = pixmapFromBitmapData(arg, wx, hx);
break;
+ default:
+ break;
}
return data;