mirror of
https://git.lyx.org/repos/lyx.git
synced 2025-01-11 03:03:06 +00:00
Integrals via HTML.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@33960 a592a061-630c-0410-9148-cb99ea01b6c8
This commit is contained in:
parent
ab2a59b0a1
commit
36b1623c5b
@ -11,6 +11,8 @@
|
|||||||
#include <config.h>
|
#include <config.h>
|
||||||
|
|
||||||
#include "InsetMathExInt.h"
|
#include "InsetMathExInt.h"
|
||||||
|
|
||||||
|
#include "LaTeXFeatures.h"
|
||||||
#include "MathData.h"
|
#include "MathData.h"
|
||||||
#include "MathStream.h"
|
#include "MathStream.h"
|
||||||
#include "MathStream.h"
|
#include "MathStream.h"
|
||||||
@ -156,10 +158,35 @@ void InsetMathExInt::mathmlize(MathStream & os) const
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void InsetMathExInt::htmlize(HtmlStream & os) const
|
||||||
|
{
|
||||||
|
// At the moment, we are not extracting sums and the like for HTML.
|
||||||
|
// So right now this only handles integrals.
|
||||||
|
InsetMathSymbol sym(symbol_);
|
||||||
|
bool const lower = !cell(2).empty();
|
||||||
|
bool const upper = !cell(3).empty();
|
||||||
|
|
||||||
|
os << MTag("span", "class='integral'")
|
||||||
|
<< MTag("span", "class='intsym'");
|
||||||
|
sym.htmlize(os, false);
|
||||||
|
os << ETag("span");
|
||||||
|
|
||||||
|
if (lower && upper) {
|
||||||
|
os << MTag("span", "class='limits'")
|
||||||
|
<< MTag("span") << cell(2) << ETag("span")
|
||||||
|
<< MTag("span") << cell(3) << ETag("span")
|
||||||
|
<< ETag("span");
|
||||||
|
} else if (lower)
|
||||||
|
os << MTag("sub", "class='limit'") << cell(2) << ETag("sub");
|
||||||
|
else if (upper)
|
||||||
|
os << MTag("sup", "class='limit'") << cell(3) << ETag("sup");
|
||||||
|
os << cell(0) << "<b>d</b>" << cell(1) << ETag("span");
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
void InsetMathExInt::write(WriteStream &) const
|
void InsetMathExInt::write(WriteStream &) const
|
||||||
{
|
{
|
||||||
LYXERR0("should not happen");
|
LYXERR0("should not happen");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
} // namespace lyx
|
} // namespace lyx
|
||||||
|
@ -54,6 +54,8 @@ public:
|
|||||||
///
|
///
|
||||||
void mathmlize(MathStream &) const;
|
void mathmlize(MathStream &) const;
|
||||||
///
|
///
|
||||||
|
void htmlize(HtmlStream &) const;
|
||||||
|
///
|
||||||
void write(WriteStream & os) const;
|
void write(WriteStream & os) const;
|
||||||
///
|
///
|
||||||
InsetCode lyxCode() const { return MATH_EXINT_CODE; }
|
InsetCode lyxCode() const { return MATH_EXINT_CODE; }
|
||||||
|
@ -130,13 +130,6 @@ bool InsetMathSymbol::takesLimits() const
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void InsetMathSymbol::validate(LaTeXFeatures & features) const
|
|
||||||
{
|
|
||||||
if (!sym_->requires.empty())
|
|
||||||
features.require(to_utf8(sym_->requires));
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
void InsetMathSymbol::normalize(NormalStream & os) const
|
void InsetMathSymbol::normalize(NormalStream & os) const
|
||||||
{
|
{
|
||||||
os << "[symbol " << name() << ']';
|
os << "[symbol " << name() << ']';
|
||||||
@ -199,7 +192,7 @@ void InsetMathSymbol::mathmlize(MathStream & os) const
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void InsetMathSymbol::htmlize(HtmlStream & os) const
|
void InsetMathSymbol::htmlize(HtmlStream & os, bool spacing) const
|
||||||
{
|
{
|
||||||
// FIXME We may need to do more interesting things
|
// FIXME We may need to do more interesting things
|
||||||
// with MathMLtype.
|
// with MathMLtype.
|
||||||
@ -209,13 +202,19 @@ void InsetMathSymbol::htmlize(HtmlStream & os) const
|
|||||||
if (sym_->xmlname == "x")
|
if (sym_->xmlname == "x")
|
||||||
// unknown so far
|
// unknown so far
|
||||||
os << ' ' << name() << ' ';
|
os << ' ' << name() << ' ';
|
||||||
else if (op)
|
else if (op && spacing)
|
||||||
os << ' ' << sym_->xmlname << ' ';
|
os << ' ' << sym_->xmlname << ' ';
|
||||||
else
|
else
|
||||||
os << sym_->xmlname;
|
os << sym_->xmlname;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void InsetMathSymbol::htmlize(HtmlStream & os) const
|
||||||
|
{
|
||||||
|
htmlize(os, true);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
void InsetMathSymbol::octave(OctaveStream & os) const
|
void InsetMathSymbol::octave(OctaveStream & os) const
|
||||||
{
|
{
|
||||||
if (name() == "cdot")
|
if (name() == "cdot")
|
||||||
@ -246,4 +245,23 @@ void InsetMathSymbol::infoize2(odocstream & os) const
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void InsetMathSymbol::validate(LaTeXFeatures & features) const
|
||||||
|
{
|
||||||
|
// this is not really the ideal place to do this, but we can't
|
||||||
|
// validate in InsetMathExInt.
|
||||||
|
if (features.runparams().flavor == OutputParams::HTML
|
||||||
|
&& sym_->name == from_ascii("int")) {
|
||||||
|
features.addPreambleSnippet("<style type=\"text/css\">\n"
|
||||||
|
"span.limits{display: inline-block; vertical-align: middle; text-align:center; font-size: 75%;}\n"
|
||||||
|
"span.limits span{display: block;}\n"
|
||||||
|
"span.intsym{font-size: 150%;}\n"
|
||||||
|
"sub.limit{font-size: 75%;}\n"
|
||||||
|
"sup.limit{font-size: 75%;}\n"
|
||||||
|
"</style>");
|
||||||
|
} else {
|
||||||
|
if (!sym_->requires.empty())
|
||||||
|
features.require(to_utf8(sym_->requires));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
} // namespace lyx
|
} // namespace lyx
|
||||||
|
@ -64,6 +64,9 @@ public:
|
|||||||
void mathmlize(MathStream &) const;
|
void mathmlize(MathStream &) const;
|
||||||
///
|
///
|
||||||
void htmlize(HtmlStream &) const;
|
void htmlize(HtmlStream &) const;
|
||||||
|
/// \param spacing controls whether we print spaces around
|
||||||
|
/// "operator"-type symbols or just print them raw
|
||||||
|
void htmlize(HtmlStream &, bool spacing) const;
|
||||||
///
|
///
|
||||||
void octave(OctaveStream &) const;
|
void octave(OctaveStream &) const;
|
||||||
///
|
///
|
||||||
|
Loading…
Reference in New Issue
Block a user