flutter_tex_js

A lightweight TeX plugin for Flutter based on KaTeX, a popular and full-featured JavaScript TeX rendering library.

flutter_tex_js used in Orgro

See a demo video

What's different about this plugin?

As of July 2020, there are several other TeX packages/plugins for Flutter, but most of them are either a) very heavyweight, relying on webview_flutter, or b) very immature, with poor support for common TeX syntax.

This plugin seeks a middle ground: It uses a single native webview under the hood, in which it renders TeX markup to PNG. It then sends the PNG bytes back to the Dart world where the result is displayed as an image.

Supported platforms

  • Android 4.1 (SDK 16) and higher
  • iOS 11 and higher*
    • *You can include the plugin on iOS 9+, but it will only render on 11+. On iOS 9 and 10, the TexImage widget will simply show the supplied text as-is.

Setup

Android

If your app uses Kotlin, make sure it is v1.3.60 or later (see ext.kotlin_version in your build.gradle file). The default is v1.3.50, but this has known problems, so if you have never updated your Kotlin version then please do so.

iOS

No setup required.

Usage

import 'package:flutter_tex_js/flutter_tex_js.dart';

class MyMathWidget extends StatelessWidget {
  Widget build(BuildContext context) {
    return TexImage(r'a=\pm\sqrt{b^2+c^2} \int_\infty^\beta d\gamma');
  }
}

Libraries

flutter_tex_js