#include "support/convert.h"
#include "support/lassert.h"
#include "support/debug.h"
+#include "support/filetools.h"
#include "support/gettext.h"
#include "support/lstrings.h"
if (haveNumbers()) {
BufferParams const & bp = buffer_->params();
string const & lang = it->getParLanguage(bp)->code();
- Counters & cnts = bp.documentClass().counters();
+ Counters & cnts =
+ buffer_->masterBuffer()->params().documentClass().counters();
// right now, we only need to do this at export time
if (utype == OutputUpdate) {
// this has to be done separately
docstring const eqstr = from_ascii("equation");
if (cnts.hasCounter(eqstr)) {
- if (utype == OutputUpdate) {
+ if (utype == OutputUpdate)
counter_map[eqstr] = cnts.value(eqstr);
- LYXERR0(counter_map[eqstr]);}
for (size_t i = 0; i != label_.size(); ++i) {
if (numbered(i)) {
cnts.step(eqstr, utype);
case hullEquation:
if (n)
- os << "\\begin{equation" << star(n) << "}\n";
+ os << "\n\\begin{equation" << star(n) << "}\n";
else
- os << "\\[\n";
+ os << "\n\\[\n";
break;
case hullEqnArray:
case hullFlAlign:
case hullGather:
case hullMultline:
- os << "\\begin{" << hullName(type_) << star(n) << "}\n";
+ os << "\n\\begin{" << hullName(type_) << star(n) << "}\n";
break;
case hullAlignAt:
case hullXAlignAt:
- os << "\\begin{" << hullName(type_) << star(n) << '}'
+ os << "\n\\begin{" << hullName(type_) << star(n) << '}'
<< '{' << static_cast<unsigned int>((ncols() + 1)/2) << "}\n";
break;
case hullXXAlignAt:
- os << "\\begin{" << hullName(type_) << '}'
+ os << "\n\\begin{" << hullName(type_) << '}'
<< '{' << static_cast<unsigned int>((ncols() + 1)/2) << "}\n";
break;
break;
default:
- os << "\\begin{unknown" << star(n) << "}\n";
+ os << "\n\\begin{unknown" << star(n) << "}\n";
break;
}
}
// LABEL_INSERT?
bool const enable = (type_ == hullMultline)
? (nrows() - 1 == cur.row())
- : display() != Inline && nrows() > 1;
+ : display() != Inline;
row_type const r = (type_ == hullMultline) ? nrows() - 1 : cur.row();
status.setEnabled(enable);
status.setOnOff(enable && numbered(r));
InsetMathGrid::mathmlize(ms);
ms << ETag("math");
} else {
+ TexRow texrow;
+ texrow.reset();
+ otexstream ols(ls, texrow);
ms << MTag("alt role='tex'");
- res = latex(ls, runparams);
+ latex(ols, runparams);
+ res = texrow.rows();
ms << from_utf8(subst(subst(to_utf8(ls.str()), "&", "&"), "<", "<"));
ms << ETag("alt");
}
bool InsetMathHull::haveNumbers() const
{
bool havenumbers = false;
+ // inline formulas are never numbered (bug 7351 part 3)
+ if (getType() == hullSimple)
+ return havenumbers;
for (size_t i = 0; i != numbered_.size(); ++i) {
if (numbered_[i]) {
havenumbers = true;
// and we simply do not have that in InsetMathGrid.
void InsetMathHull::mathmlize(MathStream & os) const
{
- bool havenumbers = haveNumbers();
+ bool const havenumbers = haveNumbers();
bool const havetable = havenumbers || nrows() > 1 || ncols() > 1;
if (havetable)
// tried and failed with MathML or HTML or (b) didn't try yet at all but
// aren't doing LaTeX, in which case we are doing Images.
if (!success && mathtype != BufferParams::LaTeX) {
- loadPreview(docit_);
- graphics::PreviewImage const * pimage = preview_->getPreviewImage(buffer());
- if (pimage) {
+ graphics::PreviewImage const * pimage = 0;
+ if (!op.dryrun) {
+ loadPreview(docit_);
+ pimage = preview_->getPreviewImage(buffer());
// FIXME Do we always have png?
+ }
+
+ if (pimage || op.dryrun) {
+ string const filename = pimage ? pimage->filename().onlyFileName()
+ : "previewimage.png";
+ if (pimage) {
+ // if we are not in the master buffer, then we need to see that the
+ // generated image is copied there; otherwise, preview fails.
+ Buffer const * mbuf = buffer().masterBuffer();
+ if (mbuf != &buffer()) {
+ string mbtmp = mbuf->temppath();
+ FileName const mbufimg(support::addName(mbtmp, filename));
+ pimage->filename().copyTo(mbufimg);
+ }
+ // add the file to the list of files to be exported
+ op.exportdata->addExternalFile("xhtml", pimage->filename());
+ }
+
string const tag = (getType() == hullSimple) ? "span" : "div";
- FileName const & mathimg = pimage->filename();
- xs << html::StartTag(tag)
- << html::CompTag("img", "src=\"" + mathimg.onlyFileName() + "\"")
- << html::EndTag(tag);
- xs.cr();
- // add the file to the list of files to be exported
- op.exportdata->addExternalFile("xhtml", mathimg);
+ xs << html::CR()
+ << html::StartTag(tag)
+ << html::CompTag("img", "src=\"" + filename + "\"")
+ << html::EndTag(tag)
+ << html::CR();
success = true;
}
}
// probably should allow for some kind of customization here
string const tag = (getType() == hullSimple) ? "span" : "div";
xs << html::StartTag(tag, "class='math'")
- << XHTMLStream::ESCAPE_AND
<< latex
- << html::EndTag(tag);
- xs.cr();
+ << html::EndTag(tag)
+ << html::CR();
}
return docstring();
}