mirror of
https://git.lyx.org/repos/lyx.git
synced 2024-12-22 21:21:32 +00:00
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.
This commit is contained in:
parent
5d45be0f93
commit
01a6d4252b
@ -708,6 +708,7 @@ dist_imagesmath_DATA = \
|
|||||||
images/math/lfloor.png \
|
images/math/lfloor.png \
|
||||||
images/math/lfloor_rfloor.png \
|
images/math/lfloor_rfloor.png \
|
||||||
images/math/ll.png \
|
images/math/ll.png \
|
||||||
|
images/math/llbracket.png \
|
||||||
images/math/llcorner.png \
|
images/math/llcorner.png \
|
||||||
images/math/Lleftarrow.png \
|
images/math/Lleftarrow.png \
|
||||||
images/math/lll.png \
|
images/math/lll.png \
|
||||||
@ -862,6 +863,7 @@ dist_imagesmath_DATA = \
|
|||||||
images/math/risingdotseq.png \
|
images/math/risingdotseq.png \
|
||||||
images/math/root.png \
|
images/math/root.png \
|
||||||
images/math/rparen.png \
|
images/math/rparen.png \
|
||||||
|
images/math/rrbracket.png \
|
||||||
images/math/Rrightarrow.png \
|
images/math/Rrightarrow.png \
|
||||||
images/math/Rsh.png \
|
images/math/Rsh.png \
|
||||||
images/math/rtimes.png \
|
images/math/rtimes.png \
|
||||||
|
BIN
lib/images/math/llbracket.png
Normal file
BIN
lib/images/math/llbracket.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 143 B |
BIN
lib/images/math/rrbracket.png
Normal file
BIN
lib/images/math/rrbracket.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 143 B |
@ -41,6 +41,7 @@ namespace {
|
|||||||
static char const * latex_delimiters[] = {
|
static char const * latex_delimiters[] = {
|
||||||
"(", ")", "{", "}", "[", "]",
|
"(", ")", "{", "}", "[", "]",
|
||||||
"lceil", "rceil", "lfloor", "rfloor", "langle", "rangle",
|
"lceil", "rceil", "lfloor", "rfloor", "langle", "rangle",
|
||||||
|
"llbracket", "rrbracket",
|
||||||
"uparrow", "updownarrow", "Uparrow", "Updownarrow", "downarrow", "Downarrow",
|
"uparrow", "updownarrow", "Uparrow", "Updownarrow", "downarrow", "Downarrow",
|
||||||
"|", "Vert", "/", "backslash", ""
|
"|", "Vert", "/", "backslash", ""
|
||||||
};
|
};
|
||||||
@ -114,6 +115,8 @@ void initMathSymbols()
|
|||||||
math_symbols_["rfloor"] = MathSymbol(0x230B, 99, CMSY_FAMILY);
|
math_symbols_["rfloor"] = MathSymbol(0x230B, 99, CMSY_FAMILY);
|
||||||
math_symbols_["langle"] = MathSymbol(0x2329, 104, CMSY_FAMILY);
|
math_symbols_["langle"] = MathSymbol(0x2329, 104, CMSY_FAMILY);
|
||||||
math_symbols_["rangle"] = MathSymbol(0x232A, 105, 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(0x2191, 34, CMSY_FAMILY);
|
||||||
math_symbols_["Uparrow"] = MathSymbol(0x21D1, 42, CMSY_FAMILY);
|
math_symbols_["Uparrow"] = MathSymbol(0x21D1, 42, CMSY_FAMILY);
|
||||||
math_symbols_["updownarrow"] = MathSymbol(0x2195, 108, 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 == "lfloor") match = "rfloor";
|
||||||
else if (str == "rangle") match = "langle";
|
else if (str == "rangle") match = "langle";
|
||||||
else if (str == "langle") match = "rangle";
|
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 == "backslash") match = "/";
|
||||||
else if (str == "/") match = "backslash";
|
else if (str == "/") match = "backslash";
|
||||||
else return symbol;
|
else return symbol;
|
||||||
|
@ -14,10 +14,13 @@
|
|||||||
#include "InsetMathDelim.h"
|
#include "InsetMathDelim.h"
|
||||||
|
|
||||||
#include "MathData.h"
|
#include "MathData.h"
|
||||||
|
#include "MathFactory.h"
|
||||||
#include "MathStream.h"
|
#include "MathStream.h"
|
||||||
#include "MathSupport.h"
|
#include "MathSupport.h"
|
||||||
#include "MetricsInfo.h"
|
#include "MetricsInfo.h"
|
||||||
|
|
||||||
|
#include "LaTeXFeatures.h"
|
||||||
|
|
||||||
#include "support/docstring.h"
|
#include "support/docstring.h"
|
||||||
|
|
||||||
#include "frontends/FontMetrics.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
|
void InsetMathDelim::write(WriteStream & os) const
|
||||||
{
|
{
|
||||||
MathEnsurer ensurer(os);
|
MathEnsurer ensurer(os);
|
||||||
|
@ -45,6 +45,8 @@ public:
|
|||||||
///
|
///
|
||||||
void draw(PainterInfo &, int x, int y) const;
|
void draw(PainterInfo &, int x, int y) const;
|
||||||
|
|
||||||
|
///
|
||||||
|
void validate(LaTeXFeatures & features) const;
|
||||||
///
|
///
|
||||||
void write(WriteStream & os) const;
|
void write(WriteStream & os) const;
|
||||||
/// write normalized content
|
/// write normalized content
|
||||||
|
@ -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[] = {
|
double const corner[] = {
|
||||||
2, 3,
|
2, 3,
|
||||||
0.95, 0.05, 0.05, 0.05, 0.05, 0.95,
|
0.95, 0.05, 0.05, 0.05, 0.05, 0.95,
|
||||||
@ -299,6 +308,8 @@ named_deco_struct deco_table[] = {
|
|||||||
{"rbrace", brace, 2 },
|
{"rbrace", brace, 2 },
|
||||||
{"[", brack, 0 },
|
{"[", brack, 0 },
|
||||||
{"]", brack, 2 },
|
{"]", brack, 2 },
|
||||||
|
{"llbracket", dbrack, 0 },
|
||||||
|
{"rrbracket", dbrack, 2 },
|
||||||
{"|", vert, 0 },
|
{"|", vert, 0 },
|
||||||
{"/", slash, 0 },
|
{"/", slash, 0 },
|
||||||
{"slash", slash, 0 },
|
{"slash", slash, 0 },
|
||||||
|
Loading…
Reference in New Issue
Block a user