- fix requirements of \dddot

- add support for \ddddot
- add partial support for inverse diagonal dots (i. e. they are recognized and
  displayed correctly, but the needed package is not loaded, because it would
  need an off/auto/on setting as amsmath, and that calls for a general solution)


git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@30162 a592a061-630c-0410-9148-cb99ea01b6c8
This commit is contained in:
Georg Baum 2009-06-18 20:04:27 +00:00
parent dae70977a0
commit 9c662bf442
15 changed files with 59 additions and 24 deletions

View File

@ -1542,6 +1542,7 @@ lib_images_math_files = Split('''
Rsh.png Rsh.png
Vvdash.png Vvdash.png
acute.png acute.png
adots.png
aleph.png aleph.png
alpha.png alpha.png
amalg.png amalg.png
@ -1624,6 +1625,8 @@ lib_images_math_files = Split('''
dashrightarrow.png dashrightarrow.png
dashv.png dashv.png
ddagger.png ddagger.png
ddddot.png
dddot.png
ddot.png ddot.png
ddots.png ddots.png
delim.png delim.png
@ -1698,6 +1701,7 @@ lib_images_math_files = Split('''
hookrightarrow.png hookrightarrow.png
hphantom.png hphantom.png
hslash.png hslash.png
iddots.png
iiiint.png iiiint.png
iiiintop.png iiiintop.png
iiint.png iiint.png

View File

@ -450,6 +450,7 @@ dist_imagesmath_DATA = \
images/math/Rsh.png \ images/math/Rsh.png \
images/math/Vvdash.png \ images/math/Vvdash.png \
images/math/acute.png \ images/math/acute.png \
images/math/adots.png \
images/math/aleph.png \ images/math/aleph.png \
images/math/alpha.png \ images/math/alpha.png \
images/math/amalg.png \ images/math/amalg.png \
@ -532,6 +533,8 @@ dist_imagesmath_DATA = \
images/math/dashrightarrow.png \ images/math/dashrightarrow.png \
images/math/dashv.png \ images/math/dashv.png \
images/math/ddagger.png \ images/math/ddagger.png \
images/math/ddddot.png \
images/math/dddot.png \
images/math/ddot.png \ images/math/ddot.png \
images/math/ddots.png \ images/math/ddots.png \
images/math/delta.png \ images/math/delta.png \
@ -603,6 +606,7 @@ dist_imagesmath_DATA = \
images/math/hookrightarrow.png \ images/math/hookrightarrow.png \
images/math/hphantom.png \ images/math/hphantom.png \
images/math/hslash.png \ images/math/hslash.png \
images/math/iddots.png \
images/math/iiiint.png \ images/math/iiiint.png \
images/math/iiiintop.png \ images/math/iiiintop.png \
images/math/iiint.png \ images/math/iiint.png \

View File

@ -216,6 +216,7 @@
\cdots * \hdots \cdots * \hdots
\hdots * \vdots \hdots * \vdots
\ddots * \ddots \ddots * \ddots
\iddots * \iddots
\udots * \udots \udots * \udots
: = \assign : = \assign
+ = \plusassign + = \plusassign

View File

@ -256,6 +256,7 @@
\TestPackage{latex8} \TestPackage{latex8}
\TestPackage{listings} \TestPackage{listings}
\TestPackage{longtable} \TestPackage{longtable}
\TestPackage{mathdots}
\TestPackage{natbib} \TestPackage{natbib}
\TestPackage{nicefrac} \TestPackage{nicefrac}
\TestPackage{nomencl} \TestPackage{nomencl}

BIN
lib/images/math/adots.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 160 B

BIN
lib/images/math/ddddot.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 174 B

BIN
lib/images/math/dddot.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 174 B

BIN
lib/images/math/iddots.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 160 B

View File

@ -7,7 +7,8 @@ acute decoration none
bar decoration none bar decoration none
breve decoration none breve decoration none
check decoration none check decoration none
dddot decoration none ddddot decoration none amsmath
dddot decoration none amsmath
ddot decoration none ddot decoration none
dot decoration none dot decoration none
grave decoration none grave decoration none
@ -15,22 +16,26 @@ hat decoration none
mathring decoration none mathring decoration none
overbrace decoration none overbrace decoration none
overleftarrow decoration none overleftarrow decoration none
overleftrightarrow decoration none overleftrightarrow decoration none amsmath
overline decoration none overline decoration none
overrightarrow decoration none overrightarrow decoration none
tilde decoration none tilde decoration none
underbar decoration none underbar decoration none
underbrace decoration none underbrace decoration none
underleftarrow decoration none underleftarrow decoration none amsmath
underleftrightarrow decoration none underleftrightarrow decoration none amsmath
underline decoration none underline decoration none
underrightarrow decoration none underrightarrow decoration none amsmath
vec decoration none vec decoration none
widehat decoration none widehat decoration none
widetilde decoration none widetilde decoration none
# dots # dots
dots dots none dots dots none
#Do not load automatically, it redefines some other symbols, and we don't
#have a possibility to turn automatic loading off like for ams
#adots dots none yhmath
adots dots none
cdots dots none cdots dots none
ddots dots none ddots dots none
dotsb dots none amsmath dotsb dots none amsmath
@ -38,6 +43,10 @@ dotsc dots none amsmath
dotsi dots none amsmath dotsi dots none amsmath
dotsm dots none amsmath dotsm dots none amsmath
dotso dots none amsmath dotso dots none amsmath
#Do not load automatically, since we don't have a possibility to turn
#automatic loading off like for ams
#iddots dots none mathdots
iddots dots none
ldots dots none ldots dots none
vdots dots none vdots dots none
@ -872,6 +881,7 @@ Pr lyxblacktext 0 0 funclim x
gcd lyxblacktext 0 0 funclim x gcd lyxblacktext 0 0 funclim x
deg lyxblacktext 0 0 func x deg lyxblacktext 0 0 func x
bmod lyxblacktext 0 0 func x bmod lyxblacktext 0 0 func x
pmod lyxblacktext 0 0 func x

View File

@ -360,6 +360,8 @@ ToolbarSet
Item "cdots" "math-insert \cdots" Item "cdots" "math-insert \cdots"
Item "vdots" "math-insert \vdots" Item "vdots" "math-insert \vdots"
Item "ddots" "math-insert \ddots" Item "ddots" "math-insert \ddots"
# Do not show it as long as it does not load mathdots automatically
# Item "iddots" "math-insert \iddots"
End End
Toolbar "latex_deco" "Frame Decorations" Toolbar "latex_deco" "Frame Decorations"
@ -374,6 +376,8 @@ ToolbarSet
Item "vec" "math-insert \vec" Item "vec" "math-insert \vec"
Item "acute" "math-insert \acute" Item "acute" "math-insert \acute"
Item "ddot" "math-insert \ddot" Item "ddot" "math-insert \ddot"
Item "dddot" "math-insert \dddot"
Item "ddddot" "math-insert \ddddot"
Item "breve" "math-insert \breve" Item "breve" "math-insert \breve"
Item "overline" "math-insert \overline" Item "overline" "math-insert \overline"
Item "overbrace" "math-insert \overbrace" Item "overbrace" "math-insert \overbrace"

View File

@ -649,6 +649,14 @@ string const LaTeXFeatures::getPackages() const
if (mustProvide("accents")) if (mustProvide("accents"))
packages << "\\usepackage{accents}\n"; packages << "\\usepackage{accents}\n";
// mathdots must be loaded after amsmath
if (mustProvide("mathdots"))
packages << "\\usepackage{mathdots}\n";
// yhmath must be loaded after amsmath
if (mustProvide("yhmath"))
packages << "\\usepackage{yhmath}\n";
// [x]color and pdfcolmk are handled in getColorOptions() above // [x]color and pdfcolmk are handled in getColorOptions() above
// makeidx.sty // makeidx.sty

View File

@ -94,16 +94,6 @@ bool InsetMathDecoration::wide() const
} }
bool InsetMathDecoration::ams() const
{
return
key_->name == "overleftrightarrow" ||
key_->name == "underleftarrow" ||
key_->name == "underrightarrow" ||
key_->name == "underleftrightarrow";
}
void InsetMathDecoration::metrics(MetricsInfo & mi, Dimension & dim) const void InsetMathDecoration::metrics(MetricsInfo & mi, Dimension & dim) const
{ {
cell(0).metrics(mi, dim); cell(0).metrics(mi, dim);
@ -160,8 +150,8 @@ void InsetMathDecoration::infoize(odocstream & os) const
void InsetMathDecoration::validate(LaTeXFeatures & features) const void InsetMathDecoration::validate(LaTeXFeatures & features) const
{ {
if (ams()) if (!key_->requires.empty())
features.require("amsmath"); features.require(to_utf8(key_->requires));
InsetMathNest::validate(features); InsetMathNest::validate(features);
} }

View File

@ -48,8 +48,6 @@ private:
bool protect() const; bool protect() const;
/// is it a wide decoration? /// is it a wide decoration?
bool wide() const; bool wide() const;
/// does this need AMS
bool ams() const;
/// ///
latexkeys const * key_; latexkeys const * key_;

View File

@ -48,7 +48,7 @@ void InsetMathDots::metrics(MetricsInfo & mi, Dimension & dim) const
dim.wid = (dim.wid / 2) + 1; dim.wid = (dim.wid / 2) + 1;
dh_ = dim.asc; dh_ = dim.asc;
} }
else if (key_->name == "ddots") else if (key_->name == "ddots" || key_->name == "adots" || key_->name == "iddots")
dh_ = dim.asc; dh_ = dim.asc;
} }
@ -56,11 +56,15 @@ void InsetMathDots::metrics(MetricsInfo & mi, Dimension & dim) const
void InsetMathDots::draw(PainterInfo & pain, int x, int y) const void InsetMathDots::draw(PainterInfo & pain, int x, int y) const
{ {
Dimension const dim = dimension(*pain.base.bv); Dimension const dim = dimension(*pain.base.bv);
if (key_->name == "adots" || key_->name == "iddots")
--y;
mathed_draw_deco(pain, x + 2, y - dh_, dim.width() - 2, dim.ascent(), mathed_draw_deco(pain, x + 2, y - dh_, dim.width() - 2, dim.ascent(),
key_->name); key_->name);
if (key_->name == "vdots" || key_->name == "ddots") if (key_->name == "vdots" || key_->name == "ddots" || key_->name == "adots" || key_->name == "iddots")
++x; ++x;
if (key_->name != "vdots") if (key_->name == "adots" || key_->name == "iddots")
++y;
else if (key_->name != "vdots")
--y; --y;
mathed_draw_deco(pain, x + 2, y - dh_, dim.width() - 2, dim.ascent(), mathed_draw_deco(pain, x + 2, y - dh_, dim.width() - 2, dim.ascent(),
key_->name); key_->name);

View File

@ -26,7 +26,6 @@
#include "support/docstream.h" #include "support/docstream.h"
#include <map> #include <map>
#include <sstream>
using namespace std; using namespace std;
@ -202,6 +201,15 @@ double const dddot[] = {
}; };
double const ddddot[] = {
1, 0.0, 0.5, 0.1, 0.5,
1, 0.3, 0.5, 0.4, 0.5,
1, 0.6, 0.5, 0.7, 0.5,
1, 0.9, 0.5, 1.0, 0.5,
0
};
double const hline3[] = { double const hline3[] = {
1, 0.1, 0, 0.15, 0, 1, 0.1, 0, 0.15, 0,
1, 0.475, 0, 0.525, 0, 1, 0.475, 0, 0.525, 0,
@ -313,6 +321,7 @@ named_deco_struct deco_table[] = {
// Accents // Accents
{"ddot", ddot, 0 }, {"ddot", ddot, 0 },
{"dddot", dddot, 0 }, {"dddot", dddot, 0 },
{"ddddot", ddddot, 0 },
{"hat", angle, 3 }, {"hat", angle, 3 },
{"grave", slash, 1 }, {"grave", slash, 1 },
{"acute", slash, 0 }, {"acute", slash, 0 },
@ -330,6 +339,8 @@ named_deco_struct deco_table[] = {
{"cdots", hline3, 0 }, {"cdots", hline3, 0 },
{"vdots", hline3, 1 }, {"vdots", hline3, 1 },
{"ddots", dline3, 0 }, {"ddots", dline3, 0 },
{"adots", dline3, 1 },
{"iddots", dline3, 1 },
{"dotsb", hline3, 0 }, {"dotsb", hline3, 0 },
{"dotsc", hline3, 0 }, {"dotsc", hline3, 0 },
{"dotsi", hline3, 0 }, {"dotsi", hline3, 0 },