From fe9aabf34a7b46eea66f8d79992b49dca4e5902b Mon Sep 17 00:00:00 2001 From: Richard Heck Date: Tue, 11 Jan 2011 23:34:59 +0000 Subject: [PATCH] Fix equation number output for MathML+HTML. git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@37180 a592a061-630c-0410-9148-cb99ea01b6c8 --- src/mathed/InsetMathHull.cpp | 47 ++++++++++++++++++++++++++++++++++-- src/mathed/InsetMathHull.h | 2 ++ 2 files changed, 47 insertions(+), 2 deletions(-) diff --git a/src/mathed/InsetMathHull.cpp b/src/mathed/InsetMathHull.cpp index 8129508774..5a809e066f 100644 --- a/src/mathed/InsetMathHull.cpp +++ b/src/mathed/InsetMathHull.cpp @@ -1910,8 +1910,51 @@ int InsetMathHull::docbook(odocstream & os, OutputParams const & runparams) cons } +// FIXME XHTML +// We need to do something about alignment here. +// +// This duplicates code from InsetMathGrid, but +// we need access here to number information, +// and we simply do not have that in InsetMathGrid. +void InsetMathHull::htmlize(HtmlStream & os) const +{ + bool havenumbers = false; + for (size_t i = 0; i != numbered_.size(); ++i) { + if (numbered_[i]) { + havenumbers = true; + break; + } + } + bool const havetable = havenumbers || nrows() > 1 || ncols() > 1; + + if (!havetable) { + os << cell(index(0, 0)); + return; + } + + os << MTag("table", "class='mathtable'"); + for (row_type row = 0; row < nrows(); ++row) { + os << MTag("tr"); + for (col_type col = 0; col < ncols(); ++col) { + os << MTag("td"); + os << cell(index(row, col)); + os << ETag("td"); + } + if (havenumbers) { + os << MTag("td"); + docstring const & num = numbers_[row]; + if (!num.empty()) + os << '(' << num << ')'; + os << ETag("td"); + } + os << ETag("tr"); + } + os << ETag("table"); +} + + // this duplicates code from InsetMathGrid, but -// we need access here to label and number information, +// we need access here to number information, // and we simply do not have that in InsetMathGrid. void InsetMathHull::mathmlize(MathStream & os) const { @@ -1984,7 +2027,7 @@ docstring InsetMathHull::xhtml(XHTMLStream & xs, OutputParams const & op) const odocstringstream os; HtmlStream ms(os); try { - InsetMathGrid::htmlize(ms); + htmlize(ms); success = true; } catch (MathExportException const &) {} if (success) { diff --git a/src/mathed/InsetMathHull.h b/src/mathed/InsetMathHull.h index 6635d8be99..53062d3298 100644 --- a/src/mathed/InsetMathHull.h +++ b/src/mathed/InsetMathHull.h @@ -130,6 +130,8 @@ public: docstring xhtml(XHTMLStream &, OutputParams const &) const; /// void mathmlize(MathStream &) const; + /// + void htmlize(HtmlStream &) const; /// void toString(odocstream &) const; /// -- 2.39.2