DeTeXt — Find the LaTeX Command You Want

Finding the symbol you want to use in LaTeX can be hard since you can’t memorize all the commands and packages for every symbol. DeTeXt tries to solve this problem by giving you two ways to find the command you want:

Screenshot of DeTeXt finding the LaTeX symbol for infinity on iPhone 12 mini.
Screenshot of DeTeXt finding the LaTeX symbol for infinity on iPad Pro.
Screenshot of DeTeXt running in a window on the mac, finding the LaTeX symbol for infinity

Privacy

DeTeXt does not collect or store any personal data or information. All processing of drawings to find the corresponding symbol happens on your device.

DeTeXt does not display any advertisements, use any trackers or analytics, or send any data to any server.

Support

Contact me on Twitter or email me.

How does it work?

Inspired by Detexify, I wanted to make a native iOS app for translating hand-drawn symbols to their corresponding LaTeX commands that was fast, efficient, and light. DeTeXt is the result.

DeTeXt uses a MobileNet_V2 PyTorch model trained on the Detexify training data, which was then translated to CoreML using coremltools.

The symbol images are generated by converting PDF files containing each symbol (made with LaTeX) to SVG files. All symbols are typeset in their default font.

FAQ

  1. Why doesn’t the app recognize my drawings correctly sometimes?

    The classification model could always use some improvement, so do contact me if you find bugs or have any feedback to offer. You can DM me on Twitter or file an issue on the GitHub repo

  2. Where is the app available?

    The iOS app is currently available on the App Store for iPhones and iPads running iOS 14 or later. The Mac app is available on the Mac App Store and requires macOS 11.0 or later.

  3. Will there be an Apple Watch app?

    Maybe. It’s one of the top things I want to do, but I haven’t figured out yet how. My app requires the PencilKit API, which watchOS doesn’t support.

  4. Will there be a native Mac-assed Mac app?

    I would love to make a Mac-assed Mac app, but that will take time. PKCanvasView, which my app depends on, is only supported on Macs via Mac Catalyst. Unless Apple releases new APIs or port the existing ones to Macs (which I doubt, that’s why Catalyst exists), a native Mac app might not be possible.

  5. Will there be a Web app/Android app?

    No.

    Detexify is a great web app that you can use to find the command corresponding to a LaTeX symbol. My classification engine is based on the Detexify’s training data, which they’ve made publicly available.

    I will not be making this app for Android. I built this app in any free time I can get away from graduate school, and it was primarily a means for me to learn CoreML, SwiftUI and Combine. I don’t have the time nor expertise to learn new APIs to build this app for Android (nor have I ever used Android), so I will focus on updating the iOS app.

  6. Can I see the source code?

    Yes. The source code for my app is available under the MIT License.

Credits

Thanks to Daniel Kirsch and the team at Detexify for their cool open-source web app that inspired me to make DeTeXt, and for providing the training data and prompt responses to my questions.

Thanks to Will Bishop for helping me figure out a tricky problem I had with the PencilKit APIs.

A big thanks to Hans for beta testing new features and giving valuable feedback.

Finally a big thanks to all the folks on the NetNewsWire Slack for being supportive and inspiring me to build my own iOS app.

Release Notes

1.4

1.3

1.2.3

1.2.2

1.2.1

1.2

1.1.3

1.1.2

1.1.0

1.0.3

1.0.2

1.0.1

1.0.0