]> git.lyx.org Git - features.git/commitdiff
Implement mathClass() for \big and friends
authorJean-Marc Lasgouttes <lasgouttes@lyx.org>
Thu, 12 Jan 2017 09:27:41 +0000 (10:27 +0100)
committerJean-Marc Lasgouttes <lasgouttes@lyx.org>
Thu, 12 Jan 2017 09:28:52 +0000 (10:28 +0100)
The information here is obtained by reading LaTeX sources.

src/mathed/InsetMathBig.cpp
src/mathed/InsetMathBig.h

index eeaf96514bd97fdd32d6c9d79585f9fc4e294785..889f8d4f97842e2e926a43fca3e2272e15a0da96 100644 (file)
@@ -39,6 +39,25 @@ docstring InsetMathBig::name() const
 }
 
 
+MathClass InsetMathBig::mathClass() const
+{
+       /* The class of the delimiter depends on the type (l, m, r, nothing).
+        * For example, the definition of \bigl in LaTeX sources is
+        * \def\bigl{\mathopen\big}
+        */
+       switch(name_.back()) {
+       case 'l':
+               return MC_OPEN;
+       case 'm':
+               return MC_REL;
+       case 'r':
+               return MC_CLOSE;
+       default:
+               return MC_ORD;
+       }
+}
+
+
 Inset * InsetMathBig::clone() const
 {
        return new InsetMathBig(*this);
@@ -49,9 +68,9 @@ InsetMathBig::size_type InsetMathBig::size() const
 {
        // order: big Big bigg Bigg biggg Biggg
        //        0   1   2    3    4     5
-       char_type const c = name_[name_.size() - 1];
+       char_type const c = name_.back();
        int const base_size = (c == 'l' || c == 'm' || c == 'r') ? 4 : 3;
-       return name_[0] == 'B' ?
+       return name_.front() == 'B' ?
                2 * (name_.size() - base_size) + 1:
                2 * (name_.size() - base_size);
 }
index 996a30a39d27ecf3946553ad3c88446c3e424ae5..83010a92600938a5e606126cced77a1e30865641 100644 (file)
@@ -24,6 +24,8 @@ public:
        InsetMathBig(docstring const & name, docstring const & delim);
        ///
        docstring name() const;
+       /// class is different for l(eft), r(ight) and m(iddle)
+       MathClass mathClass() const;
        ///
        void metrics(MetricsInfo & mi, Dimension & dim) const;
        ///