[LyX/2.3.x] Fix bug #3751

Enrico Forestieri forenr at lyx.org
Sat Feb 27 23:29:59 UTC 2021


commit 51ec16b6c77222aa018959e165adc29d3b9648e5
Author: Enrico Forestieri <forenr at lyx.org>
Date:   Sun Feb 28 00:33:43 2021 +0100

    Fix bug #3751
    
    We lack the necessary font (cmb10) for drawing bold uppercase greek
    letters. It would be overkill adding it for this sole purpose, so
    adopt the same poor man's bold strategy used with \boldsymbol.
---
 src/mathed/MathSupport.cpp |   11 ++++++++---
 status.23x                 |    2 ++
 2 files changed, 10 insertions(+), 3 deletions(-)

diff --git a/src/mathed/MathSupport.cpp b/src/mathed/MathSupport.cpp
index dc0d90c..b98dc54 100644
--- a/src/mathed/MathSupport.cpp
+++ b/src/mathed/MathSupport.cpp
@@ -705,9 +705,12 @@ void mathedSymbolDraw(PainterInfo & pi, int x, int y, latexkeys const * sym)
 	//	<< "' drawn as: '" << sym->draw
 	//	<< "'" << endl;
 
-	bool const italic_upcase_greek = sym->inset == "cmr" &&
-		sym->extra == "mathalpha" &&
-		pi.base.fontname == "mathit";
+	bool const upcase_greek =
+		sym->inset == "cmr" && sym->extra == "mathalpha";
+	bool const bold_upcase_greek =
+		upcase_greek && pi.base.fontname == "mathbf";
+	bool const italic_upcase_greek =
+		upcase_greek && pi.base.fontname == "mathit";
 	std::string const font = italic_upcase_greek ? "cmm" : sym->inset;
 	bool const change_font = font != "cmr" ||
 				(pi.base.fontname != "mathbb" &&
@@ -717,6 +720,8 @@ void mathedSymbolDraw(PainterInfo & pi, int x, int y, latexkeys const * sym)
 				 pi.base.fontname != "mathscr");
 	Changer dummy = change_font ? pi.base.changeFontSet(font) : Changer();
 	pi.draw(x, y, sym->draw);
+	if (bold_upcase_greek)
+		pi.draw(x + 1, y, sym->draw);
 }
 
 
diff --git a/status.23x b/status.23x
index 027bd7e..82253ef 100644
--- a/status.23x
+++ b/status.23x
@@ -88,6 +88,8 @@ What's new
 - Fix crash in tabular when an empty paragraph is removed
   automatically (bug 12117).
 
+- On screen, show upper case greek letters in \mathbf as bold (bug 3751).
+
 
 * INTERNALS
 


More information about the lyx-cvs mailing list