commit 509551cae09bb9b43a1ad0a9bdca6a56e1cc515b
Author: Juergen Spitzmueller <sp...@lyx.org>
Date:   Sun Jul 14 09:09:46 2019 +0200

    More osf (texfont) fixes
---
 lib/latexfonts           |   22 ++++++++++++----------
 lib/lyx2lyx/lyx_2_4.py   |    7 +++----
 src/tex2lyx/Preamble.cpp |    8 ++++++++
 3 files changed, 23 insertions(+), 14 deletions(-)

diff --git a/lib/latexfonts b/lib/latexfonts
index 75dba78..72917f3 100644
--- a/lib/latexfonts
+++ b/lib/latexfonts
@@ -721,11 +721,12 @@ Font IBMPlexSansSemibold
        MoreOptions      1
 EndFont
 
-Font   ADOBESourceSansPro
-       GuiName         "Adobe Source Sans Pro"
-       Family          sf
-       Package         sourcesanspro
-       ScaleOption     scaled=$$val
+Font ADOBESourceSansPro
+       GuiName          "Adobe Source Sans Pro"
+       Family           sf
+       Package          sourcesanspro
+       ScaleOption      scaled=$$val
+       OsfOption        osf
        MoreOptions      1
 EndFont
 
@@ -984,11 +985,12 @@ Font IBMPlexMonoSemibold
        MoreOptions      1
 EndFont
 
-Font   ADOBESourceCodePro
-       GuiName         "Adobe Source Code Pro"
-       Family          tt
-       Package         sourcecodepro
-       ScaleOption     scaled=$$val
+Font ADOBESourceCodePro
+       GuiName          "Adobe Source Code Pro"
+       Family           tt
+       Package          sourcecodepro
+       ScaleOption      scaled=$$val
+       OsfOption        osf
        MoreOptions      1
 EndFont
 
diff --git a/lib/lyx2lyx/lyx_2_4.py b/lib/lyx2lyx/lyx_2_4.py
index b26f941..ca55c8e 100644
--- a/lib/lyx2lyx/lyx_2_4.py
+++ b/lib/lyx2lyx/lyx_2_4.py
@@ -161,8 +161,8 @@ def createFontMapping(fontlist):
                                  "typewriter", "tt", "plex-mono", "scale")
         elif font == 'Adobe':
             fm.expandFontMapping(['ADOBESourceSerifPro'], "roman", None, 
"sourceserifpro", None, "osf")
-            fm.expandFontMapping(['ADOBESourceSansPro'], "sans", "sf", 
"sourcesanspro", "scaled")
-            fm.expandFontMapping(['ADOBESourceCodePro'], "typewriter", "tt", 
"sourcecodepro", "scaled")
+            fm.expandFontMapping(['ADOBESourceSansPro'], "sans", "sf", 
"sourcesanspro", "scaled", "osf")
+            fm.expandFontMapping(['ADOBESourceCodePro'], "typewriter", "tt", 
"sourcecodepro", "scaled", "osf")
         elif font == 'Noto':
             fm.expandFontMapping(['NotoSerifRegular,regular', 
'NotoSerifMedium,medium',
                                   'NotoSerifThin,thin', 'NotoSerifLight,light',
@@ -305,10 +305,9 @@ def revert_fonts(document, fm, fontmap, OnlyWithXOpts = 
False):
                 if xval1 != "100":
                     # set correct scale option
                     fontmap[val].extend([fontinfo.scaleopt + "=" + 
format(float(xval1) / 100, '.2f')])
-        if fontinfo.osfopt != None and fontinfo.fonttype == "roman":
+        if fontinfo.osfopt != None:
             osf = find_token(document.header, "\\font_osf true")
             if osf != -1:
-                document.header[osf] = "\\font_osf false"
                 fontmap[val].extend([fontinfo.osfopt])
         if len(fontinfo.options) > 0:
             fontmap[val].extend(fontinfo.options)
diff --git a/src/tex2lyx/Preamble.cpp b/src/tex2lyx/Preamble.cpp
index a5906d7..336a939 100644
--- a/src/tex2lyx/Preamble.cpp
+++ b/src/tex2lyx/Preamble.cpp
@@ -1075,6 +1075,10 @@ void Preamble::handle_package(Parser &p, string const & 
name,
                                scale_as_percentage(opt, h_font_sf_scale[0]);
                                continue;
                        }
+                       if (opt == "osf") {
+                               h_font_osf = "true";
+                               continue;
+                       }
                        if (!xopts.empty())
                                xopts += ", ";
                        xopts += opt;
@@ -1168,6 +1172,10 @@ void Preamble::handle_package(Parser &p, string const & 
name,
                                scale_as_percentage(opt, h_font_tt_scale[0]);
                                continue;
                        }
+                       if (opt == "osf") {
+                               h_font_osf = "true";
+                               continue;
+                       }
                        if (!xopts.empty())
                                xopts += ", ";
                        xopts += opt;

Reply via email to