Fix bug #7019 (Math labels should not be escaped on saving)

git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@36156 a592a061-630c-0410-9148-cb99ea01b6c8
This commit is contained in:
Enrico Forestieri 2010-11-06 02:53:29 +00:00
parent c9332413e5
commit 79ef98205d
4 changed files with 16 additions and 9 deletions

View File

@ -644,7 +644,8 @@ void InsetMathGrid::updateBuffer(ParIterator const & it, UpdateType utype)
}
docstring InsetMathGrid::eolString(row_type row, bool fragile, bool last_eoln) const
docstring InsetMathGrid::eolString(row_type row, bool fragile, bool latex,
bool last_eoln) const
{
docstring eol;
@ -1061,7 +1062,7 @@ void InsetMathGrid::write(WriteStream & os,
ModeSpecifier specifier(os, TEXT_MODE);
os << eocString(col, lastcol);
}
eol = eolString(row, os.fragile(), last_eoln);
eol = eolString(row, os.fragile(), os.latex(), last_eoln);
os << eol;
// append newline only if line wasn't completely empty
// and the formula is not written on a single line

View File

@ -240,7 +240,8 @@ protected:
/// returns y offset of cell compared to inset
int cellYOffset(idx_type idx) const;
/// returns proper 'end of line' code for LaTeX
virtual docstring eolString(row_type row, bool fragile, bool last_eoln) const;
virtual docstring eolString(row_type row, bool fragile, bool latex,
bool last_eoln) const;
/// returns proper 'end of column' code for LaTeX
virtual docstring eocString(col_type col, col_type lastcol) const;
/// splits cells and shifts right part to the next cell

View File

@ -1120,19 +1120,23 @@ void InsetMathHull::mutate(HullType newtype)
}
docstring InsetMathHull::eolString(row_type row, bool fragile, bool last_eoln) const
docstring InsetMathHull::eolString(row_type row, bool fragile, bool latex,
bool last_eoln) const
{
docstring res;
if (numberedType()) {
if (label_[row] && numbered_[row])
res += "\\label{" +
escape(label_[row]->getParam("name")) + '}';
if (label_[row] && numbered_[row]) {
docstring const name =
latex ? escape(label_[row]->getParam("name"))
: label_[row]->getParam("name");
res += "\\label{" + name + '}';
}
if (!numbered_[row] && (type_ != hullMultline))
res += "\\nonumber ";
}
// Never add \\ on the last empty line of eqnarray and friends
last_eoln = false;
return res + InsetMathGrid::eolString(row, fragile, last_eoln);
return res + InsetMathGrid::eolString(row, fragile, latex, last_eoln);
}

View File

@ -167,7 +167,8 @@ protected:
bool getStatus(Cursor & cur, FuncRequest const & cmd,
FuncStatus & status) const;
///
docstring eolString(row_type row, bool fragile, bool last_eoln) const;
docstring eolString(row_type row, bool fragile, bool latex,
bool last_eoln) const;
private:
virtual Inset * clone() const;