mirror of
https://git.lyx.org/repos/lyx.git
synced 2024-11-26 11:16:55 +00:00
proper support for \underset
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@3469 a592a061-630c-0410-9148-cb99ea01b6c8
This commit is contained in:
parent
c3e5ddf89a
commit
66d171ea78
@ -1,3 +1,7 @@
|
||||
2002-02-01 André Pönitz <poenitz@gmx.net>
|
||||
|
||||
* math_undersetinset.[Ch]: implement direct support for \underset
|
||||
|
||||
2002-01-28 Martin Vermeer <martin.vermeer@hut.fi>
|
||||
|
||||
* math_support.C: removed the arrays latex_mathstyle[] and
|
||||
@ -74,7 +78,6 @@
|
||||
|
||||
* math_sizeinset.[Ch]: support for \displaystyle etc
|
||||
|
||||
|
||||
2001-12-18 Dekel Tsur <dekelts@tau.ac.il>
|
||||
|
||||
* math_macrotable.C (builtinMacros): Adjust kern values.
|
||||
|
@ -125,5 +125,7 @@ libmathed_la_SOURCES = \
|
||||
math_symbolinset.h \
|
||||
math_unknowninset.C \
|
||||
math_unknowninset.h \
|
||||
math_undersetinset.C \
|
||||
math_undersetinset.h \
|
||||
math_xdata.C \
|
||||
math_xdata.h
|
||||
|
@ -21,6 +21,7 @@
|
||||
#include "math_sqrtinset.h"
|
||||
#include "math_stackrelinset.h"
|
||||
#include "math_symbolinset.h"
|
||||
#include "math_undersetinset.h"
|
||||
#include "math_unknowninset.h"
|
||||
|
||||
|
||||
@ -41,6 +42,8 @@ MathAtom createMathInset(latexkeys const * l)
|
||||
return MathAtom(new MathSymbolInset(l));
|
||||
case LM_TK_STACK:
|
||||
return MathAtom(new MathStackrelInset);
|
||||
case LM_TK_UNDERSET:
|
||||
return MathAtom(new MathUndersetInset);
|
||||
case LM_TK_KERN:
|
||||
return MathAtom(new MathKernInset);
|
||||
case LM_TK_BINOM:
|
||||
|
@ -138,6 +138,7 @@ key_type wordlist_array[] =
|
||||
{"underbar", LM_TK_DECORATION, 0},
|
||||
{"underbrace", LM_TK_DECORATION, 0},
|
||||
{"underline", LM_TK_DECORATION, 0},
|
||||
{"underset", LM_TK_UNDERSET, 0},
|
||||
{"vdots", LM_TK_DOTS, 0},
|
||||
{"vec", LM_TK_DECORATION, 0},
|
||||
{"widehat", LM_TK_DECORATION, 0},
|
||||
|
@ -110,6 +110,8 @@ enum MathTokenEnum
|
||||
///
|
||||
LM_TK_KERN,
|
||||
///
|
||||
LM_TK_UNDERSET,
|
||||
///
|
||||
LM_TK_STACK
|
||||
};
|
||||
|
||||
|
50
src/mathed/math_undersetinset.C
Normal file
50
src/mathed/math_undersetinset.C
Normal file
@ -0,0 +1,50 @@
|
||||
#ifdef __GNUG__
|
||||
#pragma implementation
|
||||
#endif
|
||||
|
||||
#include "math_undersetinset.h"
|
||||
#include "math_mathmlstream.h"
|
||||
#include "math_support.h"
|
||||
|
||||
|
||||
MathUndersetInset::MathUndersetInset()
|
||||
{}
|
||||
|
||||
|
||||
MathInset * MathUndersetInset::clone() const
|
||||
{
|
||||
return new MathUndersetInset(*this);
|
||||
}
|
||||
|
||||
|
||||
void MathUndersetInset::metrics(MathMetricsInfo const & mi) const
|
||||
{
|
||||
MathMetricsInfo m = mi;
|
||||
smallerStyleFrac(m);
|
||||
xcell(0).metrics(m);
|
||||
xcell(1).metrics(mi);
|
||||
width_ = std::max(xcell(0).width(), xcell(1).width()) + 4;
|
||||
ascent_ = xcell(1).ascent();
|
||||
descent_ = xcell(1).descent() + xcell(0).height() + 4;
|
||||
}
|
||||
|
||||
|
||||
void MathUndersetInset::draw(Painter & pain, int x, int y) const
|
||||
{
|
||||
int m = x + width() / 2;
|
||||
int yo = y + xcell(1).descent() + xcell(0).ascent() + 1;
|
||||
xcell(0).draw(pain, m - xcell(0).width() / 2, yo);
|
||||
xcell(1).draw(pain, m - xcell(1).width() / 2, y);
|
||||
}
|
||||
|
||||
|
||||
void MathUndersetInset::write(WriteStream & os) const
|
||||
{
|
||||
os << "\\underset{" << cell(0) << "}{" << cell(1) << '}';
|
||||
}
|
||||
|
||||
|
||||
void MathUndersetInset::normalize(NormalStream & os) const
|
||||
{
|
||||
os << "[underset " << cell(0) << ' ' << cell(1) << ']';
|
||||
}
|
31
src/mathed/math_undersetinset.h
Normal file
31
src/mathed/math_undersetinset.h
Normal file
@ -0,0 +1,31 @@
|
||||
// -*- C++ -*-
|
||||
#ifndef MATH_UNDERSETINSET_H
|
||||
#define MATH_UNDERSETINSET_H
|
||||
|
||||
#include "math_fracbase.h"
|
||||
|
||||
#ifdef __GNUG__
|
||||
#pragma interface
|
||||
#endif
|
||||
|
||||
/** Underset objects
|
||||
\author André Pönitz
|
||||
*/
|
||||
class MathUndersetInset : public MathFracbaseInset {
|
||||
public:
|
||||
///
|
||||
MathUndersetInset();
|
||||
///
|
||||
MathInset * clone() const;
|
||||
///
|
||||
void metrics(MathMetricsInfo const & st) const;
|
||||
///
|
||||
void draw(Painter &, int x, int y) const;
|
||||
|
||||
///
|
||||
void write(WriteStream & os) const;
|
||||
///
|
||||
void normalize(NormalStream &) const;
|
||||
};
|
||||
|
||||
#endif
|
Loading…
Reference in New Issue
Block a user