【问题标题】:How to properly implement math equations (TeX) in Flutter如何在 Flutter 中正确实现数学方程 (TeX)
【发布时间】:2020-08-10 14:44:59
【问题描述】:

我尝试使用 Flutter TeX 包在 Flutter 应用程序中实现数学方程。渲染方程需要很多时间。 它看起来不像我想要的那么好。是否有任何其他实现可以在不影响设计的情况下有效地使用数学化学和其他复杂格式的方程。

这是我的代码:

import 'package:flutter/material.dart';
import 'package:flutter_tex/flutter_tex.dart';
void main() => runApp(MyApp());

class MyApp extends StatelessWidget {
  // This widget is the root of your application.
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      home: MyHomePage(),
    );
  }
}

class MyHomePage extends StatelessWidget{
  @override
  Widget build(BuildContext context) {
    return Scaffold(
      backgroundColor: Colors.grey,
      body:TeXView(
          teXHTML: r"""
  <style>#myDiv 
   {color:   "#CC0000",}</style>

  <div id='myDiv'>$$x = {-b \pm \sqrt{b^2-4ac} \over 2a}.$$</div>
  """ ,
          renderingEngine: RenderingEngine.Katex,  // Katex for fast render and MathJax for quality render.
          onRenderFinished: (height) {
                print("Widget Height is : $height");
                },   
          onPageFinished: (string) {
                print("Page Loading finished");
              },
        )
    );
  }}

这是输出:[屏幕截图][1]

【问题讨论】:

    标签: flutter flutter-layout mathjax tex flutter-tex


    【解决方案1】:

    现在还有catex package(完全披露:我是作者)。

    CaTeX 不需要网络视图,这就是为什么您可以非常快速(基本上与任何其他小部件一样快)渲染您的方程式。

    注意:目前处于预发布阶段,这意味着很多功能仍然不受支持。

    import 'package:catex/catex.dart';
    
    Widget build(BuildContext context) => CaTeX(r'x = {-b \pm \frac{\sqrt{b^2-4ac}}  {2a}}');
    

    【讨论】:

    • 它能够渲染内联数学方程吗?例如 html 中的 &lt;p&gt;$\sum_{i=1}^\infty\frac{1}{n^2}=\frac{\pi^2}{6}$ is a well known result.
    【解决方案2】:

    看看flutter_tex:^3.5.0+2的最新版本,添加了样式功能,现在您可以非常轻松地为每个东西设置样式。此版本有一些 API 更改,因此请在升级之前小心,并在继续之前检查示例。

    至于渲染速度,您应该将渲染引擎从 Mathjax 更改为比 Mathjax 快得多的 Katex。例如renderingEngine:RenderingEngine.Katex

    【讨论】:

    • 有没有办法将自定义字体与内联文本一起使用?
    • 目前,这是不可能的,但正在进行中。
    • 您好,我在flutter_tex中集成了自定义字体功能,请查看Demo Here
    • 嘿!棒极了。它看起来好多了。谢谢你的工作。非常感谢!
    猜你喜欢
    • 2019-06-15
    • 1970-01-01
    • 2021-02-21
    • 1970-01-01
    • 2019-06-15
    • 2021-08-17
    • 2018-08-04
    • 1970-01-01
    • 2011-01-12
    相关资源
    最近更新 更多