Commit 7d7834f3 authored by Anna.Pavlova's avatar Anna.Pavlova Committed by Alexander.Trofimov

1. Реализовала alnAt для свойства brk (для Box и для m:rPrp)

2. Поправила баг: для инлайн формул игнорируется принудительный перенос
3. Дополнила таблицу break Operator

git-svn-id: svn://192.168.3.15/activex/AVS/Sources/TeamlabOffice/trunk/OfficeWeb@64057 954022d7-b5bf-4e40-9824-e11837661b57
parent 24600ebc
...@@ -554,6 +554,8 @@ function ParaMath() ...@@ -554,6 +554,8 @@ function ParaMath()
this.Ascent = 0; this.Ascent = 0;
this.Descent = 0; this.Descent = 0;
this.DispositionOpers = [];
this.DefaultTextPr = new CTextPr(); this.DefaultTextPr = new CTextPr();
this.DefaultTextPr.FontFamily = {Name : "Cambria Math", Index : -1 }; this.DefaultTextPr.FontFamily = {Name : "Cambria Math", Index : -1 };
...@@ -752,16 +754,15 @@ ParaMath.prototype.Get_AlignToLine = function(_CurLine, _CurRange, _Page, _X, _X ...@@ -752,16 +754,15 @@ ParaMath.prototype.Get_AlignToLine = function(_CurLine, _CurRange, _Page, _X, _X
var Page = AbsolutePage + _Page; var Page = AbsolutePage + _Page;
var WrapState = this.PageInfo.GetWrap(Page); var WrapState = this.PageInfo.GetWrap(Page);
var wrap = 0;
var bFirstLine = this.Root.IsStartLine(_CurLine); var bFirstLine = this.Root.IsStartLine(_CurLine);
/*var wrap = 0;
var wrapIndent = MathSettings.Get_WrapIndent(WrapState); var wrapIndent = MathSettings.Get_WrapIndent(WrapState);
if(bFirstLine == false && true == MathSettings.IsWrap(WrapState)) if(bFirstLine == false && true == MathSettings.IsWrap(WrapState))
{ {
wrap = this.Root.Get_WrapToLine(_CurLine, _CurRange, wrapIndent); wrap = this.Root.Get_WrapToLine(_CurLine, _CurRange, wrapIndent);
} }*/
var XStart, XEnd; var XStart, XEnd;
...@@ -783,8 +784,13 @@ ParaMath.prototype.Get_AlignToLine = function(_CurLine, _CurRange, _Page, _X, _X ...@@ -783,8 +784,13 @@ ParaMath.prototype.Get_AlignToLine = function(_CurLine, _CurRange, _Page, _X, _X
var W = this.PageInfo.GetMaxW(Page); var W = this.PageInfo.GetMaxW(Page);
if(bFirstLine == true) // первая строка первой страницы, если строка разбивается на несколько отрезко, то это уже будет inline-формула var alignBrk = this.Root.GetAlignBrk(_CurLine, _CurRange);
{ var DispLng = this.DispositionOpers.length;
var bAlignAt = WrapState === ALIGN_MARGIN_WRAP && DispLng > 0 && bFirstLine === false && alignBrk > 0;
if(bFirstLine == true || bAlignAt == true) // первая строка первой страницы, если строка разбивается на несколько отрезков, то это уже будет inline-формула => ф-ия Get_AlignToLine не будет вызвана
{ // bAlignAt == true - учтем выравниевание первой строки + прибавим смещение для alnAt
var StartLineWidth = this.PageInfo.GetStarLinetWidth(); // если страница не первая, то ширину первой строки формулы не учитываем var StartLineWidth = this.PageInfo.GetStarLinetWidth(); // если страница не первая, то ширину первой строки формулы не учитываем
switch(Jc) switch(Jc)
...@@ -798,9 +804,23 @@ ParaMath.prototype.Get_AlignToLine = function(_CurLine, _CurRange, _Page, _X, _X ...@@ -798,9 +804,23 @@ ParaMath.prototype.Get_AlignToLine = function(_CurLine, _CurRange, _Page, _X, _X
break; break;
} }
} }
if(bAlignAt == true)
{
var PosAln = alignBrk < DispLng ? alignBrk -1 : DispLng - 1;
X += this.DispositionOpers[PosAln];
}
} }
else else
{ {
var wrap = 0;
var wrapIndent = MathSettings.Get_WrapIndent(WrapState);
if(true == MathSettings.IsWrap(WrapState))
{
wrap = this.Root.Get_WrapToLine(_CurLine, _CurRange, wrapIndent);
}
if(Jc == align_Justify) if(Jc == align_Justify)
{ {
X = XEnd - XStart > W ? XStart + (XEnd - XStart - W)/2 + wrap : XStart; X = XEnd - XStart > W ? XStart + (XEnd - XStart - W)/2 + wrap : XStart;
...@@ -1186,6 +1206,12 @@ ParaMath.prototype.Recalculate_Range = function(PRS, ParaPr, Depth) ...@@ -1186,6 +1206,12 @@ ParaMath.prototype.Recalculate_Range = function(PRS, ParaPr, Depth)
this.ParaMathRPI.ResetInfoRanges(); this.ParaMathRPI.ResetInfoRanges();
} }
if(true == this.NeedDispOperators(PRS))
{
this.DispositionOpers.length = 0;
PRS.DispositionOpers = this.DispositionOpers;
}
if(bUpdateWrapMath == true && this.ParaMathRPI.bInternalRanges == false && PRS.bFastRecalculate == false) if(bUpdateWrapMath == true && this.ParaMathRPI.bInternalRanges == false && PRS.bFastRecalculate == false)
{ {
this.ParaMathRPI.bInternalRanges = true; this.ParaMathRPI.bInternalRanges = true;
...@@ -1218,8 +1244,7 @@ ParaMath.prototype.Recalculate_Range = function(PRS, ParaPr, Depth) ...@@ -1218,8 +1244,7 @@ ParaMath.prototype.Recalculate_Range = function(PRS, ParaPr, Depth)
//здесь обновляем WrapState, исходя из этого параметра будем считать WrapIndent //здесь обновляем WrapState, исходя из этого параметра будем считать WrapIndent
this.PageInfo.UpdateCurrentWrap(DispDef, bInline); this.PageInfo.UpdateCurrentWrap(DispDef, bInline);
if(this.ParaMathRPI.Wrap !== WRAP_MATH_EMPTY && this.ParaMathRPI.bStartRanges == true) // картинка в параграфе перед формулой
if(this.ParaMathRPI.Wrap !== WRAP_MATH_EMPTY && this.ParaMathRPI.bStartRanges == true)
{ {
this.private_RecalculateRangeWrap(PRS, ParaPr, Depth); this.private_RecalculateRangeWrap(PRS, ParaPr, Depth);
} }
...@@ -1241,7 +1266,7 @@ ParaMath.prototype.Recalculate_Range = function(PRS, ParaPr, Depth) ...@@ -1241,7 +1266,7 @@ ParaMath.prototype.Recalculate_Range = function(PRS, ParaPr, Depth)
this.private_RecalculateRoot(PRS, ParaPr, Depth); this.private_RecalculateRoot(PRS, ParaPr, Depth);
if(PRS.bMathWordLarge && this.ParaMathRPI.bInline == true && PRS.Ranges.length > 0) if(PRS.bMathWordLarge == true && this.ParaMathRPI.bInline == true && PRS.Ranges.length > 0)
{ {
this.Root.Math_Set_EmptyRange(PRS); this.Root.Math_Set_EmptyRange(PRS);
PRS.bMathWordLarge = false; PRS.bMathWordLarge = false;
...@@ -1709,6 +1734,10 @@ ParaMath.prototype.Is_Inline = function() ...@@ -1709,6 +1734,10 @@ ParaMath.prototype.Is_Inline = function()
//return this.ParaMathRPI.bInline; //return this.ParaMathRPI.bInline;
return this.ParaMathRPI.bInline == true || (this.ParaMathRPI.bInternalRanges == true && this.ParaMathRPI.bStartRanges == false); return this.ParaMathRPI.bInline == true || (this.ParaMathRPI.bInternalRanges == true && this.ParaMathRPI.bStartRanges == false);
}; };
ParaMath.prototype.NeedDispOperators = function(PRS)
{
return false === this.Is_Inline() && true == this.Root.IsStartLine(PRS.Line);
};
ParaMath.prototype.Get_Align = function() ParaMath.prototype.Get_Align = function()
{ {
var Jc; var Jc;
......
...@@ -2192,15 +2192,17 @@ function CParagraphRecalculateStateWrap(Para) ...@@ -2192,15 +2192,17 @@ function CParagraphRecalculateStateWrap(Para)
this.WrapIndent = 0; // WrapIndent нужен для сравнения с длиной слова (когда слово разбивается по Compare Oper): ширина первой строки формулы не должна быть меньше WrapIndent this.WrapIndent = 0; // WrapIndent нужен для сравнения с длиной слова (когда слово разбивается по Compare Oper): ширина первой строки формулы не должна быть меньше WrapIndent
this.bFirstCompareOper = true; this.bFirstCompareOper = true;
this.bFirstLine = false; this.bFirstLine = false;
this.MathFirstItem = true; this.MathFirstItem = true; // параметр необходим для принудительного переноса
this.bPriorityOper = true; this.bPriorityOper = true;
// у "крайних" в строке операторов/мат объектов сооответствующий Gap равен нулю // у "крайних" в строке операторов/мат объектов сооответствующий Gap равен нулю
this.OperGapRight = 0; this.OperGapRight = 0;
this.OperGapLeft = 0; this.OperGapLeft = 0;
this.bNoOneBreakOperator = true; // прежде чем обновлять позицию в контент Run, учтем были ли до этого операторы (проверки на Word == false не достаточно, т.к. формула мб инлайновая и тогда не нужно обновлять позицию) this.bNoOneBreakOperator = true; // прежде чем обновлять позицию в контент Run, учтем были ли до этого break-операторы (проверки на Word == false не достаточно, т.к. формула мб инлайновая и тогда не нужно обновлять позицию)
this.DispositionOpers = [];
this.BreakBox = false;
this.bInsideOper = false; // учитываем есть ли разбивка внутри мат объекта, чтобы случайно не вставить в конец пред оператора (при Brk_Before == false) this.bInsideOper = false; // учитываем есть ли разбивка внутри мат объекта, чтобы случайно не вставить в конец пред оператора (при Brk_Before == false)
this.bOnlyForcedBreak = false; // учитывается, если возможна разбивка только по операторам выше уровням => в этом случае можно сделать принуительный разрыв во внутреннем контенте this.bOnlyForcedBreak = false; // учитывается, если возможна разбивка только по операторам выше уровням => в этом случае можно сделать принудительный разрыв во внутреннем контенте
this.bFastRecalculate = false; this.bFastRecalculate = false;
this.bBoxOperator = false; this.bBoxOperator = false;
} }
...@@ -2241,6 +2243,8 @@ CParagraphRecalculateStateWrap.prototype = ...@@ -2241,6 +2243,8 @@ CParagraphRecalculateStateWrap.prototype =
this.bNoOneBreakOperator = true; this.bNoOneBreakOperator = true;
this.bFastRecalculate = false; this.bFastRecalculate = false;
this.bBoxOperator = false; this.bBoxOperator = false;
this.BreakBox = false;
this.DispositionOpers = []; // выставляем ссылку на новый массив ! length нельзя обнулять, т.к. при пересчете передаем ссылку на массив из ParaMath, чтобы после не пришлось копировать элементы массива
}, },
// Обнуляем некоторые параметры перед новым отрезком // Обнуляем некоторые параметры перед новым отрезком
...@@ -2275,6 +2279,7 @@ CParagraphRecalculateStateWrap.prototype = ...@@ -2275,6 +2279,7 @@ CParagraphRecalculateStateWrap.prototype =
this.bInsideOper = false; this.bInsideOper = false;
this.bOnlyForcedBreak = false; this.bOnlyForcedBreak = false;
this.bNoOneBreakOperator = true; this.bNoOneBreakOperator = true;
this.BreakBox = false;
this.bFastRecalculate = false; this.bFastRecalculate = false;
this.bBoxOperator = false; this.bBoxOperator = false;
}, },
......
...@@ -2068,6 +2068,7 @@ ParaRun.prototype.Recalculate_Range = function(PRS, ParaPr, Depth) ...@@ -2068,6 +2068,7 @@ ParaRun.prototype.Recalculate_Range = function(PRS, ParaPr, Depth)
var bFirstCompareOper = PRS.bFirstCompareOper; var bFirstCompareOper = PRS.bFirstCompareOper;
var bEndRunToContent = PRS.bEndRunToContent; var bEndRunToContent = PRS.bEndRunToContent;
var bNoOneBreakOperator = PRS.bNoOneBreakOperator; var bNoOneBreakOperator = PRS.bNoOneBreakOperator;
var BreakBox = PRS.BreakBox;
var Pos = RangeStartPos; var Pos = RangeStartPos;
...@@ -2211,6 +2212,12 @@ ParaRun.prototype.Recalculate_Range = function(PRS, ParaPr, Depth) ...@@ -2211,6 +2212,12 @@ ParaRun.prototype.Recalculate_Range = function(PRS, ParaPr, Depth)
NewRange = true; NewRange = true;
RangeEndPos = Pos; RangeEndPos = Pos;
} }
else if(BreakBox == true)
{
MoveToLBP = true;
NewRange = true;
PRS.Set_LineBreakPos(Pos);
}
} }
if(true !== NewRange) if(true !== NewRange)
...@@ -2286,7 +2293,29 @@ ParaRun.prototype.Recalculate_Range = function(PRS, ParaPr, Depth) ...@@ -2286,7 +2293,29 @@ ParaRun.prototype.Recalculate_Range = function(PRS, ParaPr, Depth)
bNoOneBreakOperator = false; bNoOneBreakOperator = false;
if(bOperInEndContent || bLowPriority) if(Pos == 0 && true === this.MathPrp.IsBreak())
{
if(FirstItemOnLine === true)
{
WordLen += BrkLen;
}
else
{
if(bOperBefore)
{
X += SpaceLen + WordLen;
NewRange = true;
RangeEndPos = Pos;
}
else
{
Word = false;
BreakBox = true;
}
}
}
else if(bOperInEndContent || bLowPriority)
{ {
if(X + SpaceLen + WordLen + BrkLen > XEnd) if(X + SpaceLen + WordLen + BrkLen > XEnd)
{ {
...@@ -2321,7 +2350,6 @@ ParaRun.prototype.Recalculate_Range = function(PRS, ParaPr, Depth) ...@@ -2321,7 +2350,6 @@ ParaRun.prototype.Recalculate_Range = function(PRS, ParaPr, Depth)
{ {
bOverXEnd = X + WordLen + SpaceLen + BrkLen > XEnd; // BrkLen прибавляем дла случая, если идут подряд Brk Operators в конце bOverXEnd = X + WordLen + SpaceLen + BrkLen > XEnd; // BrkLen прибавляем дла случая, если идут подряд Brk Operators в конце
if(bOverXEnd && FirstItemOnLine === false) // Слово не убирается в отрезке. Переносим слово в следующий отрезок if(bOverXEnd && FirstItemOnLine === false) // Слово не убирается в отрезке. Переносим слово в следующий отрезок
{ {
MoveToLBP = true; MoveToLBP = true;
...@@ -2400,9 +2428,19 @@ ParaRun.prototype.Recalculate_Range = function(PRS, ParaPr, Depth) ...@@ -2400,9 +2428,19 @@ ParaRun.prototype.Recalculate_Range = function(PRS, ParaPr, Depth)
FirstItemOnLine = false; FirstItemOnLine = false;
Word = false; Word = false;
} }
} }
}
if(PRS.NewRange == false && true === this.ParaMath.NeedDispOperators(PRS))
{
var W = X - XRange + Item.GapLeft;
if(bOperBefore == false)
W -= BrkLen
PRS.DispositionOpers.push(W);
} }
break; break;
...@@ -2738,6 +2776,7 @@ ParaRun.prototype.Recalculate_Range = function(PRS, ParaPr, Depth) ...@@ -2738,6 +2776,7 @@ ParaRun.prototype.Recalculate_Range = function(PRS, ParaPr, Depth)
PRS.bFirstCompareOper = bFirstCompareOper; PRS.bFirstCompareOper = bFirstCompareOper;
PRS.bEndRunToContent = bEndRunToContent; PRS.bEndRunToContent = bEndRunToContent;
PRS.bNoOneBreakOperator = bNoOneBreakOperator; PRS.bNoOneBreakOperator = bNoOneBreakOperator;
PRS.BreakBox = BreakBox;
if(this.Type == para_Math_Run) if(this.Type == para_Math_Run)
...@@ -9169,7 +9208,6 @@ ParaRun.prototype.Math_RecalculateContent = function(PRS) ...@@ -9169,7 +9208,6 @@ ParaRun.prototype.Math_RecalculateContent = function(PRS)
if (descent < size.height - size.ascent) if (descent < size.height - size.ascent)
descent = size.height - size.ascent; descent = size.height - size.ascent;
if(this.bEqArray) if(this.bEqArray)
{ {
if(Type !== para_Math_Ampersand) if(Type !== para_Math_Ampersand)
...@@ -9231,7 +9269,7 @@ ParaRun.prototype.IsNormalText = function() ...@@ -9231,7 +9269,7 @@ ParaRun.prototype.IsNormalText = function()
ParaRun.prototype.getPropsForWrite = function() ParaRun.prototype.getPropsForWrite = function()
{ {
var wRPrp = this.Pr.Copy(), var wRPrp = this.Pr.Copy(),
mathRPrp = this.MathPrp.getPropsForWrite(); mathRPrp = this.MathPrp.Copy();
return {wRPrp: wRPrp, mathRPrp: mathRPrp}; return {wRPrp: wRPrp, mathRPrp: mathRPrp};
}; };
...@@ -9365,9 +9403,9 @@ ParaRun.prototype.OnlyOnePlaceholder = function() ...@@ -9365,9 +9403,9 @@ ParaRun.prototype.OnlyOnePlaceholder = function()
ParaRun.prototype.Set_MathPr = function(MPrp) ParaRun.prototype.Set_MathPr = function(MPrp)
{ {
var OldValue = this.MathPrp; var OldValue = this.MathPrp;
this.MathPrp = MPrp; this.MathPrp.Set_Pr(MPrp);
History.Add( this, { Type : historyitem_ParaRun_MathPrp, New : MPrp, Old : OldValue } ); History.Add( this, { Type : historyitem_ParaRun_MathPrp, New : this.MathPrp, Old : OldValue } );
this.Recalc_CompiledPr(true); this.Recalc_CompiledPr(true);
}; };
...@@ -9388,6 +9426,14 @@ ParaRun.prototype.IsEqArray = function() ...@@ -9388,6 +9426,14 @@ ParaRun.prototype.IsEqArray = function()
{ {
return this.Parent.IsEqArray(); return this.Parent.IsEqArray();
}; };
ParaRun.prototype.IsBreak = function()
{
return this.MathPrp.IsBreak();
};
ParaRun.prototype.Get_AlignBrk = function()
{
return this.MathPrp.Get_AlignBrk();
};
ParaRun.prototype.Math_Is_InclineLetter = function() ParaRun.prototype.Math_Is_InclineLetter = function()
{ {
var result = false; var result = false;
......
...@@ -2031,10 +2031,6 @@ CMathBase.prototype.MeasureJustDraw = function(Item) ...@@ -2031,10 +2031,6 @@ CMathBase.prototype.MeasureJustDraw = function(Item)
Item.Measure(g_oTextMeasurer); Item.Measure(g_oTextMeasurer);
}; };
CMathBase.prototype.Math_GetWidth = function(_CurLine, _CurRange)
{
return this.size.width;
};
CMathBase.prototype.UpdatePRS_OneLine = function(PRS, WordLen) CMathBase.prototype.UpdatePRS_OneLine = function(PRS, WordLen)
{ {
if(this.bInside == false) if(this.bInside == false)
......
...@@ -2,29 +2,33 @@ ...@@ -2,29 +2,33 @@
function CMathBreak() function CMathBreak()
{ {
this.AlnAt = undefined; this.alnAt = undefined;
} }
CMathBreak.prototype.Set_FromObject = function(Obj) CMathBreak.prototype.Set_FromObject = function(Obj)
{ {
if(Obj.AlnAt !== undefined && Obj.AlnAt !== null && Obj.AlnAt - 0 == Obj.AlnAt) if(Obj.alnAt !== undefined && Obj.alnAt !== null && Obj.alnAt - 0 == Obj.alnAt)
{ {
if(Obj.AlnAt >= 1 && Obj.AlnAt <= 255) if(Obj.alnAt >= 1 && Obj.alnAt <= 255)
this.AlnAt = Obj.AlnAt; this.alnAt = Obj.alnAt;
} }
}; };
CMathBreak.prototype.Copy = function() CMathBreak.prototype.Copy = function()
{ {
var NewMBreak = new CMathBreak(); var NewMBreak = new CMathBreak();
NewMBreak.AlnAt = this.AlnAt; NewMBreak.alnAt = this.alnAt;
return NewMBreak; return NewMBreak;
}; };
CMathBreak.prototype.Get_AlignBrk = function()
{
return this.alnAt !== undefined ? this.alnAt : 0;
};
CMathBreak.prototype.Write_ToBinary = function(Writer) CMathBreak.prototype.Write_ToBinary = function(Writer)
{ {
if(this.AlnAt !== undefined) if(this.alnAt !== undefined)
{ {
Writer.WriteBool(false); Writer.WriteBool(false);
Writer.WriteLong(this.AlnAt); Writer.WriteLong(this.alnAt);
} }
else else
{ {
...@@ -35,14 +39,15 @@ CMathBreak.prototype.Read_FromBinary = function(Reader) ...@@ -35,14 +39,15 @@ CMathBreak.prototype.Read_FromBinary = function(Reader)
{ {
if(Reader.GetBool() == false) if(Reader.GetBool() == false)
{ {
this.AlnAt = Reader.GetLong(); this.alnAt = Reader.GetLong();
} }
else else
{ {
this.AlnAt = undefined; this.alnAt = undefined;
} }
}; };
function CMathBorderBoxPr() function CMathBorderBoxPr()
{ {
this.hideBot = false; this.hideBot = false;
...@@ -419,6 +424,10 @@ CMathBoxPr.prototype.Set_FromObject = function(Obj) ...@@ -419,6 +424,10 @@ CMathBoxPr.prototype.Set_FromObject = function(Obj)
else else
this.opEmu = false; this.opEmu = false;
}; };
CMathBoxPr.prototype.Get_AlignBrk = function()
{
return this.brk !== undefined ? this.brk.Get_AlignBrk() : 0;
};
CMathBoxPr.prototype.Copy = function() CMathBoxPr.prototype.Copy = function()
{ {
var NewPr = new CMathBoxPr(); var NewPr = new CMathBoxPr();
...@@ -531,9 +540,13 @@ CBox.prototype.IsOperatorEmulator = function() ...@@ -531,9 +540,13 @@ CBox.prototype.IsOperatorEmulator = function()
{ {
return this.Pr.opEmu == true; return this.Pr.opEmu == true;
}; };
CBox.prototype.IsBreak = function() CBox.prototype.IsBreak = function(bInline)
{
return bInline == false && this.Pr.opEmu == true && this.Pr.brk !== undefined;
};
CBox.prototype.Get_AlignBrk = function()
{ {
return this.Pr.opEmu == true && this.Pr.brk !== undefined; return this.Pr.Get_AlignBrk();
}; };
......
This diff is collapsed.
...@@ -1216,14 +1216,16 @@ var q_Math_Apostrophe = ...@@ -1216,14 +1216,16 @@ var q_Math_Apostrophe =
var q_Math_BreakOperators = var q_Math_BreakOperators =
{ {
0x002A: 1, 0x002B: 1, 0x002D: 1, 0x002F: 1,0x003C: 2, 0x003D: 2, 0x002A: 1, 0x002B: 1, 0x002D: 1, 0x002F: 1,0x003C: 2, 0x003D: 2,
0x003E: 2, 0x005C: 1, 0x2190: 2, 0x2191: 2, 0x2192: 2, 0x2193: 2, 0x003E: 2, 0x005C: 1, 0x00B1: 1, 0x2190: 2, 0x2191: 2, 0x2192: 2,
0x2193: 2,
0x2194: 2, 0x2195: 2, 0x2196: 2, 0x2197: 2,0x2198: 2, 0x2199: 2, 0x2194: 2, 0x2195: 2, 0x2196: 2, 0x2197: 2,0x2198: 2, 0x2199: 2,
0x219A: 2, 0x219B: 2, 0x219C: 2, 0x219D: 2,0x219E: 2,0x219F: 2, 0x219A: 2, 0x219B: 2, 0x219C: 2, 0x219D: 2,0x219E: 2, 0x219F: 2,
0x21A0: 2, 0x21A1: 2, 0x21A2: 2, 0x21A3: 2, 0x21A4: 2, 0x21A5: 2, 0x21A0: 2, 0x21A1: 2, 0x21A2: 2, 0x21A3: 2, 0x21A4: 2, 0x21A5: 2,
0x21A6: 2, 0x21A7: 2, 0x21A8: 2, 0x21A9: 2, 0x21AA: 2, 0x21AB: 2, 0x21A6: 2, 0x21A7: 2, 0x21A8: 2, 0x21A9: 2, 0x21AA: 2, 0x21AB: 2,
0x21AC: 2, 0x21AD: 2, 0x21AE: 2, 0x21AF: 2, 0x21B0: 2, 0x21B1: 2, 0x21AC: 2, 0x21AD: 2, 0x21AE: 2, 0x21AF: 2, 0x21B0: 2, 0x21B1: 2,
0x21B2: 2, 0x21B3: 2, 0x21B4: 2, 0x21B5: 2, 0x21B6: 2, 0x21B7: 2, 0x21B2: 2, 0x21B3: 2,
0x21BA: 2, 0x21BB: 2, 0x21BC: 2, 0x21BD: 2, // check
0x21B6: 2, 0x21B7: 2, 0x21BA: 2, 0x21BB: 2, 0x21BC: 2, 0x21BD: 2,
0x21BE: 2, 0x21BF: 2, 0x21C0: 2, 0x21C1: 2, 0x21C2: 2, 0x21C3: 2, 0x21BE: 2, 0x21BF: 2, 0x21C0: 2, 0x21C1: 2, 0x21C2: 2, 0x21C3: 2,
0x21C4: 2, 0x21C5: 2, 0x21C6: 2, 0x21C7: 2, 0x21C8: 2, 0x21C9: 2, 0x21C4: 2, 0x21C5: 2, 0x21C6: 2, 0x21C7: 2, 0x21C8: 2, 0x21C9: 2,
0x21CA: 2, 0x21CB: 2, 0x21CC: 2, 0x21CD: 2, 0x21CE: 2, 0x21CF: 2, 0x21CA: 2, 0x21CB: 2, 0x21CC: 2, 0x21CD: 2, 0x21CE: 2, 0x21CF: 2,
...@@ -1253,12 +1255,30 @@ var q_Math_BreakOperators = ...@@ -1253,12 +1255,30 @@ var q_Math_BreakOperators =
0x2282: 2, 0x2283: 2, 0x2284: 2, 0x2285: 2, 0x2286: 2, 0x2287: 2, 0x2282: 2, 0x2283: 2, 0x2284: 2, 0x2285: 2, 0x2286: 2, 0x2287: 2,
0x2288: 2, 0x2289: 2, 0x228A: 2, 0x228B: 2, 0x228C: 1, 0x228D: 1, 0x2288: 2, 0x2289: 2, 0x228A: 2, 0x228B: 2, 0x228C: 1, 0x228D: 1,
0x228E: 1, 0x228F: 2, 0x2290: 2, 0x2291: 2, 0x2292: 2, 0x2293: 1, 0x228E: 1, 0x228F: 2, 0x2290: 2, 0x2291: 2, 0x2292: 2, 0x2293: 1,
0x2294: 1, 0x22D0: 2, 0x22D1: 2, 0x22D2: 1, 0x22D3: 1, 0x22D4: 2, 0x2294: 1, 0x2295: 1, 0x2296: 1, 0x2297: 1, 0x2298: 1, 0x2299: 1,
0x229A: 1, 0x229B: 1, 0x229C: 1, 0x229D: 1, 0x229E: 1, 0x229F: 1,
0x22A0: 1, 0x22A1: 1, 0x22A2: 2, 0x22A3: 2, 0x22A5: 2, 0x22A6: 2,
0x22A7: 2, 0x22A8: 2, 0x22A9: 2, 0x22AA: 2, 0x22AB: 2, 0x22AC: 2,
0x22AD: 2, 0x22AE: 2, 0x22AF: 2, 0x22B0: 2, 0x22B1: 2, 0x22B2: 2,
0x22B3: 2, 0x22B4: 2, 0x22B5: 2, 0x22B6: 2, 0x22B7: 2, 0x22B8: 2,
0x22B9: 2, 0x22BA: 1, 0x22BB: 1, 0x22BC: 1, 0x22BD: 1, 0x22C4: 1,
0x22C5: 1, 0x22C6: 1, 0x22C7: 1, 0x22C8: 2, 0x22C9: 1, 0x22CA: 1,
0x22CB: 1, 0x22CC: 1, 0x22CD: 2, 0x22CE: 1, 0x22CF: 1, 0x22D0: 2,
0x22D1: 2, 0x22D2: 1, 0x22D3: 1, 0x22D4: 2,
0x22D5: 2, 0x22D6: 2, 0x22D7: 2, 0x22D8: 2, 0x22D9: 2, 0x22DA: 2, 0x22D5: 2, 0x22D6: 2, 0x22D7: 2, 0x22D8: 2, 0x22D9: 2, 0x22DA: 2,
0x22DB: 2, 0x22DC: 2, 0x22DD: 2, 0x22DE: 2, 0x22DF: 2, 0x22E0: 2, 0x22DB: 2, 0x22DC: 2, 0x22DD: 2, 0x22DE: 2, 0x22DF: 2, 0x22E0: 2,
0x22E1: 2, 0x22E2: 2, 0x22E3: 2, 0x22E4: 2, 0x22E5: 2, 0x22E6: 2, 0x22E1: 2, 0x22E2: 2, 0x22E3: 2, 0x22E4: 2, 0x22E5: 2, 0x22E6: 2,
0x22E7: 2, 0x22E8: 2, 0x22E9: 2, 0x233F: 2, 0x233D: 1, 0x23B0: 2, 0x22E7: 2, 0x22E8: 2, 0x22E9: 2, 0x22EA: 2, 0x22EB: 2, 0x22EC: 2,
0x23B1: 2, 0x27DC: 2, 0x27DD: 2, 0x27DE: 2, 0x22ED: 2, 0x22EE: 2, 0x22EF: 2, 0x22F0: 2, 0x22F1: 2, 0x22F2: 2,
0x22F3: 2, 0x22F4: 2, 0x22F5: 2, 0x22F6: 2, 0x22F7: 2, 0x22F8: 2,
0x22F9: 2, 0x22FA: 2, 0x22FB: 2, 0x22FC: 2, 0x22FD: 2, 0x22FE: 2,
0x22FF: 2, 0x2305: 1, 0x2306: 1, 0x2322: 2, 0x2323: 2, 0x233D: 1,
0x233F: 2, 0x23B0: 2, 0x23B1: 2, 0x25B3: 1, 0x25CA: 1, 0x25CB: 1,
0x27D1: 1, 0x27D2: 2, 0x27D3: 2, 0x27D4: 2, 0x27DA: 2, 0x27DB: 2,
0x27DC: 2, 0x27DD: 2, 0x27DE: 2, 0x27DF: 2, 0x27E0: 1, 0x27E1: 1,
0x27E2: 1, 0x27E3: 1, 0x27E4: 1, 0x27E5: 1, 0x27F0: 2, 0x27F1: 2,
0x27F2: 2, 0x27F3: 2, 0x27F4: 2,
//end check
0x27F5: 2, 0x27F6: 2, 0x27F7: 2, 0x27F8: 2, 0x27F9: 2, 0x27FA: 2, 0x27F5: 2, 0x27F6: 2, 0x27F7: 2, 0x27F8: 2, 0x27F9: 2, 0x27FA: 2,
0x27FB: 2, 0x27FC: 2, 0x27FD: 2, 0x27FE: 2, 0x27FF: 2, 0x2900: 2, 0x27FB: 2, 0x27FC: 2, 0x27FD: 2, 0x27FE: 2, 0x27FF: 2, 0x2900: 2,
0x2901: 2, 0x2902: 2, 0x2903: 2, 0x2904: 2, 0x2905: 2, 0x2906: 2, 0x2901: 2, 0x2902: 2, 0x2903: 2, 0x2904: 2, 0x2905: 2, 0x2906: 2,
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment