如何在 Flutter 中正确实现数学方程式 (TeX)
How to properly implement math equations (TeX) in Flutter
我尝试使用 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_tex:^3.5.0+2,添加了样式功能,现在您可以非常轻松地为每个样式设置样式。此版本中有一些 API 更改,因此请在升级前小心并在继续之前检查示例。
关于渲染速度,您应该将渲染引擎从 Mathjax 更改为比 Mathjax 快得多的 Katex。例如renderingEngine:RenderingEngine.Katex
现在还有 catex
package(完全公开:我是作者)。
CaTeX 不需要 Web 视图,这就是为什么您可以非常快速(基本上与任何其他小部件一样快)呈现方程式的原因。
注意:目前处于预发布阶段,这意味着很多功能仍然不受支持。
import 'package:catex/catex.dart';
Widget build(BuildContext context) => CaTeX(r'x = {-b \pm \frac{\sqrt{b^2-4ac}} {2a}}');
我尝试使用 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_tex:^3.5.0+2,添加了样式功能,现在您可以非常轻松地为每个样式设置样式。此版本中有一些 API 更改,因此请在升级前小心并在继续之前检查示例。
关于渲染速度,您应该将渲染引擎从 Mathjax 更改为比 Mathjax 快得多的 Katex。例如renderingEngine:RenderingEngine.Katex
现在还有 catex
package(完全公开:我是作者)。
CaTeX 不需要 Web 视图,这就是为什么您可以非常快速(基本上与任何其他小部件一样快)呈现方程式的原因。
注意:目前处于预发布阶段,这意味着很多功能仍然不受支持。
import 'package:catex/catex.dart';
Widget build(BuildContext context) => CaTeX(r'x = {-b \pm \frac{\sqrt{b^2-4ac}} {2a}}');