X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2Fmathed%2FMathParser.cpp;h=0f10aa5ed75c7104c38d94e18e72b7c8dee8d8bd;hb=89342f2946abd5d01b019a729d1f160b0c9d3d50;hp=a756a5315fbf7ca756975100df8fa095742fb181;hpb=cc87f81002f60cc5ab9263d97fe4b37791376af0;p=lyx.git diff --git a/src/mathed/MathParser.cpp b/src/mathed/MathParser.cpp index a756a5315f..0f10aa5ed7 100644 --- a/src/mathed/MathParser.cpp +++ b/src/mathed/MathParser.cpp @@ -64,6 +64,7 @@ following hack as starting point to write some macros: #include "InsetMathString.h" #include "InsetMathTabular.h" #include "MathMacroTemplate.h" +#include "MathExtern.h" #include "MathFactory.h" #include "MathMacroArgument.h" #include "MathSupport.h" @@ -1374,7 +1375,6 @@ bool Parser::parse1(InsetMathGrid & grid, unsigned flags, } } -#if 0 else if (t.cs() == "multicolumn") { // extract column count and insert dummy cells MathData count; @@ -1382,30 +1382,30 @@ bool Parser::parse1(InsetMathGrid & grid, unsigned flags, int cols = 1; if (!extractNumber(count, cols)) { success_ = false; - lyxerr << " can't extract number of cells from " << count << endl; + error("can't extract number of multicolumn cells"); } // resize the table if necessary + size_t first = 0; for (int i = 0; i < cols; ++i) { if (addCol(grid, cellcol)) { - cell = &grid.cell(grid.index( - cellrow, cellcol)); - // mark this as dummy - grid.cellinfo(grid.index( - cellrow, cellcol)).dummy_ = true; + size_t const idx = grid.index(cellrow, cellcol); + if (i == 0) + first = idx; + grid.cellinfo(idx).multi_ = + InsetMathGrid::CELL_PART_OF_MULTICOLUMN; } } - // the last cell is the real thing, not a dummy - grid.cellinfo(grid.index(cellrow, cellcol)).dummy_ = false; + + // the first cell is the real thing, not a dummy + cell = &grid.cell(first); + grid.cellinfo(first).multi_ = InsetMathGrid::CELL_BEGIN_OF_MULTICOLUMN; // read special alignment - MathData align; - parse(align, FLAG_ITEM, mode); - //grid.cellinfo(grid.index(cellrow, cellcol)).align_ = extractString(align); + grid.cellinfo(first).align_ = parse_verbatim_item(); // parse the remaining contents into the "real" cell parse(*cell, FLAG_ITEM, mode); } -#endif else if (t.cs() == "limits" || t.cs() == "nolimits") { CatCode const cat = nextToken().cat(); @@ -1748,7 +1748,7 @@ bool Parser::parse1(InsetMathGrid & grid, unsigned flags, lyxerr << "found math environment `" << to_utf8(name) << "' in symbols file with unsupported inset `" - << to_utf8(l->inset) + << l->inset << "'." << endl; } // create generic environment inset