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;