首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >在JavaFX WebView中无法正确呈现MathML标记

在JavaFX WebView中无法正确呈现MathML标记
EN

Stack Overflow用户
提问于 2018-08-30 21:48:18
回答 1查看 522关注 0票数 2

在JavaFX WebView中无法正确呈现MathML标记

JDK版本: 1.8.0_192

例如,

代码语言:javascript
复制
<math xmlns="http://www.w3.org/1998/Math/MathML"> 
   <msub> 
    <mi>
      S 
    </mi> 
    <mi>
      n 
    </mi> 
   </msub> 
   <mo>
     &lt; 
   </mo> 
   <mstyle displaystyle="true" scriptlevel="0"> 
    <mfrac> 
     <mi>
       π 
     </mi> 
     <mrow> 
      <mn>
        3 
      </mn>     
      <msqrt> 
       <mn>
         3 
       </mn> 
      </msqrt> 
     </mrow> 
    </mfrac> 
   </mstyle> 
 </math>

上面的代码呈现为:

在Google Chrome中,虽然它呈现为:

在JavaFX WebView中。

如何解决此问题?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-08-31 05:32:02

在我电脑上的结果和你发布的代码??

首先,确保您使用的至少是Java/JavaFX8192 build 04或JavaFX 11 (在Java/JavaFX9和10中,MathML支持被破坏,并且在这些版本中不会被修复)。

其次,验证你的字体列表。您的计算机上是否存在字体配置问题?

必须至少安装以下字体中的一种(按首选顺序):

  • Latin Modern Math
  • STIX Two Math
  • XITS Math
  • STIX Math
  • Libertinus Math
  • TeX Gyre Termes Math
  • TeX Gyre Bonum Math
  • TeX Gyre Schola
  • DejaVu Math TeX Gyre
  • TeX Gyre Pagella Math
  • Asana Math
  • Cambria Math
  • Lucida Bright Math
  • Minion Math
  • Times New Roman

结果也在我的电脑上,但在Latin Modern Math字体安装后:

代码示例:您是否使用了这样的代码?

代码语言:javascript
复制
import java.time.LocalDate;
import java.time.format.DateTimeFormatter;
import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.layout.StackPane;
import javafx.scene.web.WebView;
import javafx.stage.Stage;

public class NavigateurTest extends Application {

    final StackPane root = new StackPane();
    final WebView webView =  new WebView();
    String ContentStackOverFlow = ""
            + "<math xmlns=\"http://www.w3.org/1998/Math/MathML\">"
            + "   <msub>"
            + "      <mi>S</mi>"
            + "      <mi>n</mi>"
            + "   </msub>"
            + "   <mo>&lt;</mo>"
            + "   <mstyle displaystyle=\"true\" scriptlevel=\"0\">"
            + "      <mfrac>"
            + "         <mi>π</mi>"
            + "         <mrow>"
            + "            <mn>3</mn>"
            + "            <msqrt>"
            + "               <mn>3</mn>"
            + "            </msqrt>"
            + "         </mrow>"
            + "      </mfrac>"
            + "   </mstyle>"
            + "</math>";

    public void init() {    
        root.getChildren().add(webView);
    }

    @Override
    public void start(Stage primaryStage) {

        //webView.getEngine().load("https://www.qwant.com");
        webView.getEngine().loadContent(ContentStackOverFlow);

        primaryStage.setTitle("OpenJFX MathML Rendering WebBrowser Test");
        primaryStage.setScene(new Scene(root));
        primaryStage.show();

    }

}
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52098692

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档