3 * \file InsetMathSymbol.h
4 * This file is part of LyX, the document processor.
5 * Licence details can be found in the file COPYING.
9 * Full author contact details are available in file CREDITS.
12 #ifndef MATH_SYMBOLINSET_H
13 #define MATH_SYMBOLINSET_H
15 #include "InsetMath.h"
22 /** "normal" symbols that don't take limits and don't grow in displayed
25 class InsetMathSymbol
: public InsetMath
{
28 explicit InsetMathSymbol(latexkeys
const * l
);
30 explicit InsetMathSymbol(char const * name
);
32 explicit InsetMathSymbol(docstring
const & name
);
34 void metrics(MetricsInfo
& mi
, Dimension
& dim
) const;
36 void draw(PainterInfo
&, int x
, int y
) const;
38 int kerning(BufferView
const *) const { return kerning_
; }
43 bool isOrdAlpha() const;
44 /// do we take scripts?
45 bool isScriptable() const;
46 /// do we take \limits or \nolimits?
47 bool takesLimits() const;
48 /// identifies SymbolInset as such
49 InsetMathSymbol
const * asSymbolInset() const { return this; }
50 /// the LaTeX name of the symbol (without the backslash)
51 docstring
name() const;
52 /// request "external features"
53 void validate(LaTeXFeatures
& features
) const;
56 void normalize(NormalStream
&) const;
58 void maple(MapleStream
&) const;
60 void maxima(MaximaStream
&) const;
62 void mathematica(MathematicaStream
&) const;
64 void mathmlize(MathStream
&) const;
66 void octave(OctaveStream
&) const;
68 void write(WriteStream
& os
) const;
70 void infoize2(odocstream
& os
) const;
72 InsetCode
lyxCode() const { return MATH_SYMBOL_CODE
; }
75 virtual Inset
* clone() const;
77 latexkeys
const * sym_
;
80 /// cached superscript kerning
83 mutable bool scriptable_
;