Skip to content

Render beautiful LaTeX Math Equations in an Android View

License

Notifications You must be signed in to change notification settings

quipper/AndroidMath

 
 

Repository files navigation

AndroidMath to Bitmap

How to use this offline latex to bitmap generator?

  1. Set up the project as @gregcockroft described on his original readme below.

  2. run this command on the AndroidMath project: ./gradlew mathdisplaylib:assemble

  3. Copy the result .aar file from: ../AndroidMath/mathdisplaylib/build/outputs/aar

  4. To: ../YourAndroidProject/app/libs

  5. Add this on build.gradlew implementation(name: "mathdisplaylib-debug", ext: "aar")

  6. Initialize the mathdisplaylib on (preferably) Application level onCreate(): MTFontManager.setContext(context);

  7. Call the offline latex bitmap generator from anywhere on the project MTMathGenerator.createBitmap("latex str")

AndroidMath

  • Rendering of LaTeX Math inside of an Android View
  • No dependency on WebView
  • Easy to use.

Installation from the command line

git clone https://github.com/gregcockroft/AndroidMath.git

cd AndroidMath
./gradlew installDebug

Installation for Android Studio

Clone this project, run CDep. CDep pulls in the freetype dependency.

git clone https://github.com/gregcockroft/AndroidMath.git
cd AndroidMath/mathdisplaylib
./cdep 

Open the project in Android Studio

Using library in your app

This is using jitpack.io Add below lines to root's build.gradle

	allprojects {
		repositories {
			...
			maven { url 'https://jitpack.io' }
		}
	}

Add below lines to apps's build.gradle

dependencies {
	        implementation 'com.github.gregcockroft:AndroidMath:ALPHA'
	}
	
<ConstraintLayout ...>

    <TextView
        android:id="@+id/description"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Hello Math!"
        app:layout_constraintBottom_toTopOf="@+id/mathview"
        app:layout_constraintLeft_toLeftOf="parent"
        app:layout_constraintRight_toRightOf="parent"
        app:layout_constraintTop_toTopOf="parent" />
      
    <com.agog.mathdisplay.MTMathView
        android:id="@+id/mathview"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginTop="56dp"
        app:layout_constraintLeft_toLeftOf="parent"
        app:layout_constraintRight_toRightOf="parent"
        app:layout_constraintTop_toBottomOf="@id/description" />


</ConstraintLayout>
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(activity_main)

        mathview.latex = "x = \\frac{-b \\pm \\sqrt{b^2-4ac}}{2a}"
    }
	

API

Look at MTMathView This is the central access class.

Credits:

  • iosMath This project is a Kotlin port for Android of the iosMath project
  • Freetype is used for rendering glyphs and font metrics.
  • Freetype jni was copied as a starting point to access the native freetype library.

Related Projects

For people looking for things beyond just rendering math, there are two related projects:

  • MathEditor: A WYSIWYG editor for math equations on iOS.
  • MathSolver: A library for solving math equations.

License

AndroidMath is available under the MIT license. See the LICENSE file for more info.

Fonts

This distribution contains the following fonts. These fonts are licensed as follows:

About

Render beautiful LaTeX Math Equations in an Android View

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Kotlin 88.0%
  • Java 5.6%
  • C++ 4.7%
  • Shell 1.1%
  • Other 0.6%