+/**
+ * \file math_support.C
+ * This file is part of LyX, the document processor.
+ * Licence details can be found in the file COPYING.
+ *
+ * \author Alejandro Aguilar Sierra
+ * \author André Pönitz
+ *
+ * Full author contact details are available in file CREDITS.
+ */
#include <config.h>
#include "math_support.h"
-#include "lyxfont.h"
+#include "math_data.h"
#include "math_inset.h"
+#include "math_mathmlstream.h"
#include "math_parser.h"
-#include "metricsinfo.h"
-#include "math_data.h"
+
+#include "debug.h"
+#include "LColor.h"
+
#include "frontends/Painter.h"
#include "frontends/font_metrics.h"
#include "frontends/lyx_gui.h"
-#include "debug.h"
-#include "lfuns.h"
-#include "dimension.h"
-#include "Lsstream.h"
-#include "math_mathmlstream.h"
#include <map>
+#include <sstream>
+
+using std::string;
using std::max;
+using std::endl;
///
void mathed_draw_deco(PainterInfo & pi, int x, int y, int w, int h,
- const string & name)
+ string const & name)
{
if (name == ".") {
pi.pain.line(x + w/2, y, x + w/2, y + h,
deco_struct const * mds = search_deco(name);
if (!mds) {
- lyxerr << "Deco was not found. Programming error?\n";
- lyxerr << "name: '" << name << "'\n";
+ lyxerr << "Deco was not found. Programming error?" << endl;
+ lyxerr << "name: '" << name << "'" << endl;
return;
}
int(x + xx + 0.5), int(y + yy + 0.5),
int(x + x2 + 0.5), int(y + y2 + 0.5),
LColor::math);
- } else {
+ } else {
int xp[32];
int yp[32];
int const n = int(d[i++]);
// does not work
fontinfo fontinfos[] = {
// math fonts
- {"mathnormal", inh_family, LyXFont::MEDIUM_SERIES,
- LyXFont::UP_SHAPE, LColor::math},
+ {"mathnormal", LyXFont::ROMAN_FAMILY, LyXFont::MEDIUM_SERIES,
+ LyXFont::ITALIC_SHAPE, LColor::math},
{"mathbf", inh_family, LyXFont::BOLD_SERIES,
inh_shape, LColor::math},
{"mathcal", LyXFont::CMSY_FAMILY, inh_series,
{"mathfrak", LyXFont::EUFRAK_FAMILY, inh_series,
inh_shape, LColor::math},
{"mathrm", LyXFont::ROMAN_FAMILY, inh_series,
- inh_shape, LColor::math},
+ LyXFont::UP_SHAPE, LColor::math},
{"mathsf", LyXFont::SANS_FAMILY, inh_series,
inh_shape, LColor::math},
{"mathbb", LyXFont::MSB_FAMILY, inh_series,
inh_shape, LColor::math},
{"mathtt", LyXFont::TYPEWRITER_FAMILY, inh_series,
inh_shape, LColor::math},
+ {"mathit", inh_family, inh_series,
+ LyXFont::ITALIC_SHAPE, LColor::math},
{"cmex", LyXFont::CMEX_FAMILY, inh_series,
- inh_shape, LColor::none},
+ inh_shape, LColor::math},
{"cmm", LyXFont::CMM_FAMILY, inh_series,
- inh_shape, LColor::none},
+ inh_shape, LColor::math},
{"cmr", LyXFont::CMR_FAMILY, inh_series,
- inh_shape, LColor::none},
+ inh_shape, LColor::math},
{"cmsy", LyXFont::CMSY_FAMILY, inh_series,
- inh_shape, LColor::none},
+ inh_shape, LColor::math},
{"eufrak", LyXFont::EUFRAK_FAMILY, inh_series,
- inh_shape, LColor::none},
+ inh_shape, LColor::math},
{"msa", LyXFont::MSA_FAMILY, inh_series,
- inh_shape, LColor::none},
+ inh_shape, LColor::math},
{"msb", LyXFont::MSB_FAMILY, inh_series,
- inh_shape, LColor::none},
+ inh_shape, LColor::math},
{"wasy", LyXFont::WASY_FAMILY, inh_series,
inh_shape, LColor::none},
{"textnormal", inh_family, inh_series,
LyXFont::UP_SHAPE, LColor::foreground},
{"textrm", LyXFont::ROMAN_FAMILY,
- inh_series,LyXFont::UP_SHAPE,LColor::foreground},
+ inh_series, LyXFont::UP_SHAPE,LColor::foreground},
{"textsc", inh_family, inh_series,
LyXFont::SMALLCAPS_SHAPE, LColor::foreground},
{"textsf", LyXFont::SANS_FAMILY, inh_series,
// LyX internal usage
{"lyxtex", inh_family, inh_series,
- inh_shape, LColor::latex},
+ LyXFont::UP_SHAPE, LColor::latex},
{"lyxert", LyXFont::TYPEWRITER_FAMILY, inh_series,
- inh_shape, LColor::latex},
+ LyXFont::UP_SHAPE, LColor::latex},
{"lyxsymbol", LyXFont::SYMBOL_FAMILY, inh_series,
inh_shape, LColor::math},
{"lyxboldsymbol", LyXFont::SYMBOL_FAMILY, LyXFont::BOLD_SERIES,
inh_shape, LColor::math},
- {"lyxitsymbol", LyXFont::SYMBOL_FAMILY, inh_series,
- LyXFont::ITALIC_SHAPE, LColor::math},
{"lyxblacktext", LyXFont::ROMAN_FAMILY, LyXFont::MEDIUM_SERIES,
- LyXFont::UP_SHAPE, LColor::foreground},
+ LyXFont::UP_SHAPE, LColor::foreground},
{"lyxnochange", inh_family, inh_series,
- inh_shape, LColor::foreground},
+ inh_shape, LColor::foreground},
{"lyxfakebb", LyXFont::TYPEWRITER_FAMILY, LyXFont::BOLD_SERIES,
LyXFont::UP_SHAPE, LColor::math},
{"lyxfakecal", LyXFont::SANS_FAMILY, LyXFont::MEDIUM_SERIES,
fontinfo * lookupFont(string const & name)
{
- //lyxerr << "searching font '" << name << "'\n";
+ //lyxerr << "searching font '" << name << "'" << endl;
int const n = sizeof(fontinfos) / sizeof(fontinfo);
for (int i = 0; i < n; ++i)
if (fontinfos[i].cmd_ == name) {
- //lyxerr << "found '" << i << "'\n";
+ //lyxerr << "found '" << i << "'" << endl;
return fontinfos + i;
}
return 0;
forig->shape_ = ffake->shape_;
forig->color_ = ffake->color_;
} else {
- lyxerr << "Can't fake font '" << orig << "' with '" << fake << "'\n";
+ lyxerr << "Can't fake font '" << orig << "' with '"
+ << fake << "'" << endl;
}
}
std::ostringstream os;
WriteStream ws(os);
ws << ar;
- return STRCONV(os.str());
+ return os.str();
}
}
+string asString(MathInset const & inset)
+{
+ std::ostringstream os;
+ WriteStream ws(os);
+ inset.write(ws);
+ return os.str();
+}
+
+
+string asString(MathAtom const & at)
+{
+ std::ostringstream os;
+ WriteStream ws(os);
+ at->write(ws);
+ return os.str();
+}