Properly fix #9616

Now all symbols in the unicodesymbols file having a mathcommand
are not wrapped in a \text inset anymore.

(cherry picked from commit 506324ef9d)
This commit is contained in:
Enrico Forestieri 2019-04-15 20:56:52 +02:00
parent 112616a97b
commit 7998616edb
4 changed files with 4 additions and 13 deletions

View File

@ -714,10 +714,4 @@ bool createInsetMath_fromDialogStr(docstring const & str, MathData & ar)
}
bool isAsciiOrMathAlpha(char_type c)
{
return isASCII(c) || Encodings::isMathAlpha(c);
}
} // namespace lyx

View File

@ -33,11 +33,6 @@ MathAtom createInsetMath(char const * const, Buffer * buf);
*/
bool createInsetMath_fromDialogStr(docstring const &, MathData &);
/** Tells whether the argument is an ascii character or is marked as
* mathalpha in the unicodesymbols file.
*/
bool isAsciiOrMathAlpha(char_type);
typedef std::map<docstring, latexkeys> MathWordList;
MathWordList const & mathedWordList();

View File

@ -1017,7 +1017,7 @@ bool Parser::parse1(InsetMathGrid & grid, unsigned flags,
else if (t.cat() == catOther) {
char_type c = t.character();
if (isAsciiOrMathAlpha(c)
if (!Encodings::isUnicodeTextOnly(c)
|| mode_ & Parse::VERBATIM
|| !(mode_ & Parse::USETEXT)
|| mode == InsetMath::TEXT_MODE) {
@ -1026,7 +1026,7 @@ bool Parser::parse1(InsetMathGrid & grid, unsigned flags,
MathAtom at = createInsetMath("text", buf);
at.nucleus()->cell(0).push_back(MathAtom(new InsetMathChar(c)));
while (nextToken().cat() == catOther
&& !isAsciiOrMathAlpha(nextToken().character())) {
&& Encodings::isUnicodeTextOnly(nextToken().character())) {
c = getToken().character();
at.nucleus()->cell(0).push_back(MathAtom(new InsetMathChar(c)));
}

View File

@ -29,6 +29,8 @@ What's new
The "Rows & Columns" optional submenu has been added to the math context menu.
Avoid using text mode for unicode symbols representable in math mode (bug 9616).
* DOCUMENTATION AND LOCALIZATION