diff --git a/development/HTML/HTML.notes b/development/HTML/HTML.notes
index 8628aad8d6..d609cb3fd0 100644
--- a/development/HTML/HTML.notes
+++ b/development/HTML/HTML.notes
@@ -44,8 +44,6 @@ Math
- Space: Needs checking.
- SpecialChar: Needs checking.
- Split: There are some alignment issues here, but it basically works.
- - Substack: This is a stack of however many cells, all in a smaller style.
- Probably do something with , again.
- Tabular: This is more or less a text-like table in math. Probably output it
as a table, but set the font.
diff --git a/src/mathed/InsetMathSubstack.cpp b/src/mathed/InsetMathSubstack.cpp
index fccdf7b3c3..56d253e3b2 100644
--- a/src/mathed/InsetMathSubstack.cpp
+++ b/src/mathed/InsetMathSubstack.cpp
@@ -128,15 +128,31 @@ void InsetMathSubstack::maple(MapleStream & os) const
}
+void InsetMathSubstack::mathmlize(MathStream & os) const
+{
+ int movers = 0;
+ row_type const numrows = nrows();
+ for (row_type row = 0; row < nrows(); ++row) {
+ if (row < numrows - 1) {
+ movers ++;
+ os << MTag("munder");
+ }
+ os << MTag("mrow") << cell(index(row, 0)) << ETag("mrow");
+ }
+ for (int i = 1; i <= movers; ++i)
+ os << ETag("munder");
+}
+
+
void InsetMathSubstack::htmlize(HtmlStream & os) const
{
os << MTag("span", "class='substack'");
- for (row_type row = 0; row < nrows(); ++row)
+ for (row_type row = 0; row < nrows(); ++row)
os << MTag("span") << cell(index(row, 0)) << ETag("span");
os << ETag("span");
}
-
+
void InsetMathSubstack::validate(LaTeXFeatures & features) const
{
if (features.runparams().isLaTeX())
@@ -146,7 +162,7 @@ void InsetMathSubstack::validate(LaTeXFeatures & features) const
"span.substack{display: inline-block; vertical-align: middle; text-align:center; font-size: 75%;}\n"
"span.substack span{display: block;}\n"
"");
-
+
InsetMathGrid::validate(features);
}
diff --git a/src/mathed/InsetMathSubstack.h b/src/mathed/InsetMathSubstack.h
index 612187ae89..822b0aa453 100644
--- a/src/mathed/InsetMathSubstack.h
+++ b/src/mathed/InsetMathSubstack.h
@@ -39,6 +39,8 @@ public:
///
void write(WriteStream & os) const;
///
+ void mathmlize(MathStream &) const;
+ ///
void htmlize(HtmlStream &) const;
///
void normalize(NormalStream &) const;