lyxnot cmsy 54 47 mathrel / hiddensymbol
iffont cmsy
# kerning is slightly imperfect so that one can see when \not is selected
-\def\not{\lyxnot\mathrel{\kern-11mu}}
+\def\not{\lyxnot}
else
\def\not{\kern4mu\lyxnot\kern-19mu}
endif
\def\varcopyright{\mathord{c\kern-11mu\varbigcirc}} stmaryrd
# kerning is slightly imperfect so that one sees when \[Aa]rrownot is selected
-\def\arrownot{\lyxarrownot\mathrel{\kern-11mu}} stmaryrd
-\def\Arrownot{\lyxArrownot\mathrel{\kern-10.5mu}} stmaryrd
+\def\arrownot{\lyxarrownot} stmaryrd
+\def\Arrownot{\lyxArrownot\mathrel{\kern0.5mu}} stmaryrd
\def\longarrownot{\mathrel{\kern5.5mu}\arrownot\mathrel{\kern-5.5mu}} stmaryrd
\def\Longarrownot{\mathrel{\kern5.5mu}\Arrownot\mathrel{\kern-5.5mu}} stmaryrd
-\def\Mapsto{\Mapstochar\mathrel{\kern-2mu}\Rightarrow} mathrel ⤇ stmaryrd
+\def\Mapsto{\Mapstochar\mathrel\Rightarrow} mathrel ⤇ stmaryrd
\def\mapsfrom{\leftarrow\kern-9mu\mapsfromchar} mathrel ↤ stmaryrd
\def\Mapsfrom{\Leftarrow\kern-9mu\Mapsfromchar} mathrel ⤆ stmaryrd
\def\Longmapsto{\Mapstochar\Longrightarrow} mathrel ⟾ stmaryrd
\def\Longleftarrow{\Leftarrow\joinrel\Relbar} mathrel ⟸
\def\implies{\Longrightarrow} mathrel ⟹ amsmath
\def\impliedby{\Longleftarrow} mathrel ⟸ amsmath
-\def\mapsto{\mapstochar\mathrel{\kern-2mu}\rightarrow} mathrel ↤
+\def\mapsto{\mapstochar\rightarrow} mathrel ↤
\def\longmapsto{\mapstochar\joinrel\relbar\joinrel\rightarrow} mathrel ⟻
\def\models{\mathrel{\vert}\joinrel\Relbar} mathrel ⊨
else
int * pw = strwidth_cache_[s];
if (pw)
return *pw;
- // For some reason QMetrics::width returns a wrong value with Qt5
- // int w = metrics_.width(toqstr(s));
PROFILE_CACHE_MISS(width)
#endif
- QTextLayout tl;
- tl.setText(toqstr(s));
- tl.setFont(font_);
- tl.beginLayout();
- QTextLine line = tl.createLine();
- tl.endLayout();
- int w = int(line.naturalTextWidth());
+ /* For some reason QMetrics::width returns a wrong value with Qt5
+ * with some arabic text. OTOH, QTextLayout is broken for single
+ * characters with null width (like \not in mathed).
+ */
+ int w = 0;
+ if (s.length() == 1
+#if QT_VERSION >= 0x040800
+ || font_.styleName() == "LyX"
+#endif
+ )
+ w = metrics_.width(toqstr(s));
+ else {
+ QTextLayout tl;
+ tl.setText(toqstr(s));
+ tl.setFont(font_);
+ tl.beginLayout();
+ QTextLine line = tl.createLine();
+ tl.endLayout();
+ w = int(line.naturalTextWidth());
+ }
#ifdef CACHE_METRICS_WIDTH
strwidth_cache_.insert(s, new int(w), s.size() * sizeof(char_type));
#endif