mirror of
https://git.lyx.org/repos/lyx.git
synced 2024-11-09 18:31:04 +00:00
some support for \atop
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@2542 a592a061-630c-0410-9148-cb99ea01b6c8
This commit is contained in:
parent
07a0f43eee
commit
1555e4c27c
@ -1188,7 +1188,7 @@ void MathCursor::interpret(string const & s)
|
||||
return;
|
||||
}
|
||||
|
||||
if (s == "\\over" || s == "\\choose") {
|
||||
if (s == "\\over" || s == "\\choose" || s == "\\atop") {
|
||||
MathArray ar = array();
|
||||
MathInset * p = createMathInset(in_word_set(s.substr(1)));
|
||||
p->cell(0).swap(array());
|
||||
|
@ -39,6 +39,8 @@ MathInset * createMathInset(latexkeys const * l)
|
||||
case LM_TK_OVER:
|
||||
case LM_TK_FRAC:
|
||||
return new MathFracInset;
|
||||
case LM_TK_ATOP:
|
||||
return new MathFracInset(true);
|
||||
case LM_TK_NOT:
|
||||
return new MathNotInset;
|
||||
case LM_TK_SQRT:
|
||||
|
@ -8,7 +8,8 @@
|
||||
#include "support/LOstream.h"
|
||||
|
||||
|
||||
MathFracInset::MathFracInset()
|
||||
MathFracInset::MathFracInset(bool atop)
|
||||
: atop_(atop)
|
||||
{}
|
||||
|
||||
|
||||
@ -36,23 +37,35 @@ void MathFracInset::draw(Painter & pain, int x, int y) const
|
||||
int m = x + width() / 2;
|
||||
xcell(0).draw(pain, m - xcell(0).width() / 2, y - xcell(0).descent() - 3 - 5);
|
||||
xcell(1).draw(pain, m - xcell(1).width() / 2, y + xcell(1).ascent() + 3 - 5);
|
||||
pain.line(x + 2, y - 5, x + width() - 4, y - 5, LColor::mathline);
|
||||
if (!atop_)
|
||||
pain.line(x + 2, y - 5, x + width() - 4, y - 5, LColor::mathline);
|
||||
}
|
||||
|
||||
|
||||
void MathFracInset::write(std::ostream & os, bool fragile) const
|
||||
{
|
||||
os << "\\frac{";
|
||||
cell(0).write(os, fragile);
|
||||
os << "}{";
|
||||
cell(1).write(os, fragile);
|
||||
os << '}';
|
||||
if (atop_) {
|
||||
os << "{";
|
||||
cell(0).write(os, fragile);
|
||||
os << "\\atop ";
|
||||
cell(1).write(os, fragile);
|
||||
os << '}';
|
||||
} else {
|
||||
os << "\\frac{";
|
||||
cell(0).write(os, fragile);
|
||||
os << "}{";
|
||||
cell(1).write(os, fragile);
|
||||
os << '}';
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
void MathFracInset::writeNormal(std::ostream & os) const
|
||||
{
|
||||
os << "[frac ";
|
||||
if (atop_)
|
||||
os << "[atop ";
|
||||
else
|
||||
os << "[frac ";
|
||||
cell(0).writeNormal(os);
|
||||
os << " ";
|
||||
cell(1).writeNormal(os);
|
||||
|
@ -14,7 +14,7 @@
|
||||
class MathFracInset : public MathFracbaseInset {
|
||||
public:
|
||||
///
|
||||
MathFracInset();
|
||||
explicit MathFracInset(bool atop = false);
|
||||
///
|
||||
MathInset * clone() const;
|
||||
///
|
||||
@ -25,6 +25,12 @@ public:
|
||||
void metrics(MathStyles st) const;
|
||||
///
|
||||
void draw(Painter &, int x, int y) const;
|
||||
public:
|
||||
///
|
||||
char const name() const;
|
||||
|
||||
///
|
||||
const bool atop_;
|
||||
};
|
||||
|
||||
#endif
|
||||
|
@ -67,6 +67,7 @@ latexkeys wordlist[] =
|
||||
{"arctan", LM_TK_FUNC, 0, LMB_NONE},
|
||||
{"arg", LM_TK_FUNC, 0, LMB_NONE},
|
||||
{"asymp", LM_TK_NOGLYPH, 0, LMB_RELATION},
|
||||
{"atop", LM_TK_ATOP, 0, LMB_NONE},
|
||||
{"backslash", LM_TK_SPECIAL, '\\', LMB_NONE},
|
||||
{"bar", LM_TK_DECORATION, LM_bar, LMB_NONE},
|
||||
{"begin", LM_TK_BEGIN, 0, LMB_NONE},
|
||||
|
@ -820,7 +820,7 @@ void Parser::parse_into(MathArray & array, unsigned flags)
|
||||
//curr_label_ = getArg('{', '}');
|
||||
}
|
||||
|
||||
else if (t.cs() == "choose" || t.cs() == "over") {
|
||||
else if (t.cs() == "choose" || t.cs() == "over" || t.cs() == "atop") {
|
||||
limits = 0;
|
||||
MathInset * p = createMathInset(t.cs());
|
||||
p->cell(0).swap(array);
|
||||
|
@ -43,6 +43,8 @@ enum MathTokenEnum
|
||||
///
|
||||
LM_TK_BINOM,
|
||||
///
|
||||
LM_TK_ATOP,
|
||||
///
|
||||
LM_TK_OVER,
|
||||
///
|
||||
LM_TK_FRAC,
|
||||
|
Loading…
Reference in New Issue
Block a user