mirror of
https://git.lyx.org/repos/lyx.git
synced 2024-12-23 05:25:26 +00:00
read/write support for the AMS split environment
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@2688 a592a061-630c-0410-9148-cb99ea01b6c8
This commit is contained in:
parent
971f1755d0
commit
3b2f6decf2
@ -80,6 +80,8 @@ libmathed_la_SOURCES = \
|
||||
math_spaceinset.h \
|
||||
math_specialcharinset.C \
|
||||
math_specialcharinset.h \
|
||||
math_splitinset.C \
|
||||
math_splitinset.h \
|
||||
math_sqrtinset.C \
|
||||
math_sqrtinset.h \
|
||||
math_stackrelinset.C \
|
||||
|
@ -24,6 +24,7 @@ MathGridInset::RowInfo::RowInfo()
|
||||
{}
|
||||
|
||||
|
||||
|
||||
int MathGridInset::RowInfo::skipPixels() const
|
||||
{
|
||||
#ifdef WITH_WARNINGS
|
||||
@ -46,10 +47,7 @@ MathGridInset::MathGridInset(int m, int n)
|
||||
lyxerr << "positve number of columns expected\n";
|
||||
if (n <= 0)
|
||||
lyxerr << "positve number of rows expected\n";
|
||||
for (int col = 0; col < m; ++col) {
|
||||
colinfo_[col].skip_ = defaultColSpace(col);
|
||||
colinfo_[col].align_ = defaultColAlign(col);
|
||||
}
|
||||
setDefaults();
|
||||
}
|
||||
|
||||
|
||||
@ -59,6 +57,14 @@ int MathGridInset::index(int row, int col) const
|
||||
}
|
||||
|
||||
|
||||
void MathGridInset::setDefaults()
|
||||
{
|
||||
for (int col = 0; col < ncols(); ++col) {
|
||||
colinfo_[col].align_ = defaultColAlign(col);
|
||||
colinfo_[col].skip_ = defaultColSpace(col);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
void MathGridInset::halign(string const & hh)
|
||||
{
|
||||
|
@ -138,6 +138,8 @@ public:
|
||||
virtual int defaultColSpace(int) { return 10; }
|
||||
///
|
||||
virtual char defaultColAlign(int) { return 'c'; }
|
||||
///
|
||||
void setDefaults();
|
||||
|
||||
protected:
|
||||
/// returns proper 'end of line' code for LaTeX
|
||||
|
@ -108,15 +108,6 @@ int MathMatrixInset::defaultColSpace(int col)
|
||||
}
|
||||
|
||||
|
||||
void MathMatrixInset::setDefaults()
|
||||
{
|
||||
for (int col = 0; col < ncols(); ++col) {
|
||||
colinfo_[col].align_ = defaultColAlign(col);
|
||||
colinfo_[col].skip_ = defaultColSpace(col);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
void MathMatrixInset::metrics(MathStyles) const
|
||||
{
|
||||
size_ = (getType() == LM_OT_SIMPLE) ? LM_ST_TEXT : LM_ST_DISPLAY;
|
||||
|
@ -76,8 +76,6 @@ public:
|
||||
MathInsetTypes getType() const;
|
||||
|
||||
private:
|
||||
///
|
||||
void setDefaults();
|
||||
///
|
||||
void setType(MathInsetTypes t);
|
||||
///
|
||||
|
@ -40,6 +40,7 @@
|
||||
#include "math_sqrtinset.h"
|
||||
#include "math_scriptinset.h"
|
||||
#include "math_specialcharinset.h"
|
||||
#include "math_splitinset.h"
|
||||
#include "math_sqrtinset.h"
|
||||
#include "debug.h"
|
||||
#include "support.h"
|
||||
@ -825,6 +826,10 @@ void Parser::parse_into(MathArray & array, unsigned flags, MathTextCodes code)
|
||||
m->halign(halign);
|
||||
parse_lines(m, false, false);
|
||||
array.push_back(m);
|
||||
} else if (name == "split") {
|
||||
MathSplitInset * m = new MathSplitInset(1);
|
||||
parse_lines(m, false, false);
|
||||
array.push_back(m);
|
||||
} else
|
||||
lyxerr[Debug::MATHED] << "unknow math inset begin '" << name << "'\n";
|
||||
}
|
||||
|
31
src/mathed/math_splitinset.C
Normal file
31
src/mathed/math_splitinset.C
Normal file
@ -0,0 +1,31 @@
|
||||
#ifdef __GNUG__
|
||||
#pragma implementation
|
||||
#endif
|
||||
|
||||
#include "math_splitinset.h"
|
||||
#include "support/LOstream.h"
|
||||
|
||||
|
||||
MathSplitInset::MathSplitInset(int n)
|
||||
: MathGridInset(2, n)
|
||||
{
|
||||
setDefaults();
|
||||
}
|
||||
|
||||
|
||||
MathInset * MathSplitInset::clone() const
|
||||
{
|
||||
return new MathSplitInset(*this);
|
||||
}
|
||||
|
||||
|
||||
void MathSplitInset::write(std::ostream & os, bool fragile) const
|
||||
{
|
||||
if (fragile)
|
||||
os << "\\protect";
|
||||
os << "\\begin{split}";
|
||||
MathGridInset::write(os, fragile);
|
||||
if (fragile)
|
||||
os << "\\protect";
|
||||
os << "\\end{split}\n";
|
||||
}
|
26
src/mathed/math_splitinset.h
Normal file
26
src/mathed/math_splitinset.h
Normal file
@ -0,0 +1,26 @@
|
||||
// -*- C++ -*-
|
||||
#ifndef MATH_SPLITINSET_H
|
||||
#define MATH_SPLITINSET_H
|
||||
|
||||
#include "math_gridinset.h"
|
||||
|
||||
#ifdef __GNUG__
|
||||
#pragma interface
|
||||
#endif
|
||||
|
||||
|
||||
class MathSplitInset : public MathGridInset {
|
||||
public:
|
||||
///
|
||||
explicit MathSplitInset(int n);
|
||||
///
|
||||
MathInset * clone() const;
|
||||
///
|
||||
void write(std::ostream &, bool fragile) const;
|
||||
///
|
||||
int defaultColSpace(int) { return 0; }
|
||||
///
|
||||
char defaultColAlign(int) { return 'l'; }
|
||||
};
|
||||
|
||||
#endif
|
Loading…
Reference in New Issue
Block a user