2 #ifndef MATH_SYMBOLINSET_H
3 #define MATH_SYMBOLINSET_H
5 #include "math_diminset.h"
9 // "normal" symbols that don't take limits and don't grow in displayed
12 class MathSymbolInset : public MathDimInset {
15 explicit MathSymbolInset(latexkeys const *);
17 explicit MathSymbolInset(char const *);
19 MathInset * clone() const;
21 void metrics(MathMetricsInfo const & st) const;
23 void draw(Painter &, int x, int y) const;
26 /// do we take scripts?
27 bool isScriptable() const;
28 /// do we take \limits or \nolimits?
29 bool takesLimits() const;
30 /// identifies SymbolInset as such
31 MathSymbolInset const * asSymbolInset() const { return this; }
32 /// the LaTeX name of the symbol (without the backslash)
35 bool match(MathInset *) const;
38 void normalize(NormalStream &) const;
40 void maplize(MapleStream &) const;
42 void mathmlize(MathMLStream &) const;
44 void octavize(OctaveStream &) const;
46 void write(WriteStream & os) const;
50 MathTextCodes code() const;
52 MathTextCodes code2() const;
55 latexkeys const * sym_;
59 mutable MathMetricsInfo mi_;