The branch, master, has been updated.

- Log -----------------------------------------------------------------

commit 01a6d4252b94c3b0a38faf32da1eea9b17cbf3c5
Author: Georg Baum <[email protected]>
Date:   Sun Dec 16 15:49:42 2012 +0100

    Full delimiter support for llbracket and rrbracket
    
    stmaryrd.sty sets these symbols up as variable size math delimiters (i.e.
    they may be used with \left and \right). Now LyX knows about that and offers
    them in the delimiter dialog as well as single symbols.

diff --git a/lib/Makefile.am b/lib/Makefile.am
index 9888787..ea2d1f4 100644
--- a/lib/Makefile.am
+++ b/lib/Makefile.am
@@ -708,6 +708,7 @@ dist_imagesmath_DATA = \
        images/math/lfloor.png \
        images/math/lfloor_rfloor.png \
        images/math/ll.png \
+       images/math/llbracket.png \
        images/math/llcorner.png \
        images/math/Lleftarrow.png \
        images/math/lll.png \
@@ -862,6 +863,7 @@ dist_imagesmath_DATA = \
        images/math/risingdotseq.png \
        images/math/root.png \
        images/math/rparen.png \
+       images/math/rrbracket.png \
        images/math/Rrightarrow.png \
        images/math/Rsh.png \
        images/math/rtimes.png \
diff --git a/lib/images/math/llbracket.png b/lib/images/math/llbracket.png
new file mode 100644
index 0000000..3e4d957
Binary files /dev/null and b/lib/images/math/llbracket.png differ
diff --git a/lib/images/math/rrbracket.png b/lib/images/math/rrbracket.png
new file mode 100644
index 0000000..2082f69
Binary files /dev/null and b/lib/images/math/rrbracket.png differ
diff --git a/src/frontends/qt4/GuiDelimiter.cpp 
b/src/frontends/qt4/GuiDelimiter.cpp
index 2736c20..8303fa6 100644
--- a/src/frontends/qt4/GuiDelimiter.cpp
+++ b/src/frontends/qt4/GuiDelimiter.cpp
@@ -41,6 +41,7 @@ namespace {
 static char const *  latex_delimiters[] = {
        "(", ")", "{", "}", "[", "]",
        "lceil", "rceil", "lfloor", "rfloor", "langle", "rangle",
+       "llbracket", "rrbracket",
        "uparrow", "updownarrow", "Uparrow", "Updownarrow", "downarrow", 
"Downarrow",
        "|", "Vert", "/", "backslash", ""
 };
@@ -114,6 +115,8 @@ void initMathSymbols()
        math_symbols_["rfloor"] = MathSymbol(0x230B, 99, CMSY_FAMILY);
        math_symbols_["langle"] = MathSymbol(0x2329, 104, CMSY_FAMILY);
        math_symbols_["rangle"] = MathSymbol(0x232A, 105, CMSY_FAMILY);
+       math_symbols_["llbracket"] = MathSymbol(0x27e6, 74, STMARY_FAMILY);
+       math_symbols_["rrbracket"] = MathSymbol(0x27e7, 75, STMARY_FAMILY);
        math_symbols_["uparrow"] = MathSymbol(0x2191, 34, CMSY_FAMILY);
        math_symbols_["Uparrow"] = MathSymbol(0x21D1, 42, CMSY_FAMILY);
        math_symbols_["updownarrow"] = MathSymbol(0x2195, 108, CMSY_FAMILY);
@@ -233,6 +236,8 @@ char_type GuiDelimiter::doMatch(char_type const symbol)
        else if (str == "lfloor") match = "rfloor";
        else if (str == "rangle") match = "langle";
        else if (str == "langle") match = "rangle";
+       else if (str == "llbracket") match = "rrbracket";
+       else if (str == "rrbracket") match = "llbracket";
        else if (str == "backslash") match = "/";
        else if (str == "/") match = "backslash";
        else return symbol;
diff --git a/src/mathed/InsetMathDelim.cpp b/src/mathed/InsetMathDelim.cpp
index 0d2fd97..0653e88 100644
--- a/src/mathed/InsetMathDelim.cpp
+++ b/src/mathed/InsetMathDelim.cpp
@@ -14,10 +14,13 @@
 #include "InsetMathDelim.h"
 
 #include "MathData.h"
+#include "MathFactory.h"
 #include "MathStream.h"
 #include "MathSupport.h"
 #include "MetricsInfo.h"
 
+#include "LaTeXFeatures.h"
+
 #include "support/docstring.h"
 
 #include "frontends/FontMetrics.h"
@@ -58,6 +61,30 @@ Inset * InsetMathDelim::clone() const
 }
 
 
+void InsetMathDelim::validate(LaTeXFeatures & features) const
+{
+       InsetMathNest::validate(features);
+       // The delimiters may be used without \left or \right as well.
+       // Therefore they are listed in lib/symbols, and if they have
+       // requirements, we need to add them here.
+       MathWordList const & words = mathedWordList();
+       MathWordList::const_iterator it = words.find(left_);
+       if (it != words.end())
+       {
+               docstring const req = it->second.requires;
+               if (!req.empty())
+                       features.require(to_ascii(req));
+       }
+       it = words.find(right_);
+       if (it != words.end())
+       {
+               docstring const req = it->second.requires;
+               if (!req.empty())
+                       features.require(to_ascii(req));
+       }
+}
+
+
 void InsetMathDelim::write(WriteStream & os) const
 {
        MathEnsurer ensurer(os);
diff --git a/src/mathed/InsetMathDelim.h b/src/mathed/InsetMathDelim.h
index cbea8ec..72e204e 100644
--- a/src/mathed/InsetMathDelim.h
+++ b/src/mathed/InsetMathDelim.h
@@ -46,6 +46,8 @@ public:
        void draw(PainterInfo &, int x, int y) const;
 
        ///
+       void validate(LaTeXFeatures & features) const;
+       ///
        void write(WriteStream & os) const;
        /// write normalized content
        void normalize(NormalStream &) const;
diff --git a/src/mathed/MathSupport.cpp b/src/mathed/MathSupport.cpp
index 95d27b4..0a87fd6 100644
--- a/src/mathed/MathSupport.cpp
+++ b/src/mathed/MathSupport.cpp
@@ -160,6 +160,15 @@ double const brack[] = {
 };
 
 
+double const dbrack[] = {
+       2, 4,
+       0.95, 0.05,  0.05, 0.05,  0.05, 0.95,  0.95, 0.95,
+       2, 2,
+       0.50, 0.05,  0.50, 0.95,
+       0
+};
+
+
 double const corner[] = {
        2, 3,
        0.95, 0.05,  0.05, 0.05,  0.05, 0.95,
@@ -299,6 +308,8 @@ named_deco_struct deco_table[] = {
        {"rbrace",         brace,      2 },
        {"[",              brack,      0 },
        {"]",              brack,      2 },
+       {"llbracket",      dbrack,     0 },
+       {"rrbracket",      dbrack,     2 },
        {"|",              vert,       0 },
        {"/",              slash,      0 },
        {"slash",          slash,      0 },

-----------------------------------------------------------------------

Summary of changes:
 lib/Makefile.am                    |    2 ++
 lib/images/math/llbracket.png      |  Bin 0 -> 143 bytes
 lib/images/math/rrbracket.png      |  Bin 0 -> 143 bytes
 src/frontends/qt4/GuiDelimiter.cpp |    5 +++++
 src/mathed/InsetMathDelim.cpp      |   27 +++++++++++++++++++++++++++
 src/mathed/InsetMathDelim.h        |    2 ++
 src/mathed/MathSupport.cpp         |   11 +++++++++++
 7 files changed, 47 insertions(+), 0 deletions(-)
 create mode 100644 lib/images/math/llbracket.png
 create mode 100644 lib/images/math/rrbracket.png


hooks/post-receive
-- 
The LyX Source Repository

Reply via email to