Skip to main content

MathKeyboardEngine provides the logic for a highly customizable virtual math keyboard. It is intended for use together with any LaTeX typesetting library.

Project description

latest release

MathKeyboardEngine for Python

MathKeyboardEngine for Python provides the logic for a highly customizable virtual math keyboard. It is intended for use together with any LaTeX typesetting library (for example matplotlib.mathtext).

Also available:

An execution timeline

todo. For now, see the JavaScript repo.

Let me test it now!

Live examples can be tested at MathKeyboardEngine.GitHub.io.

Pros and cons?

Unique about MathKeyboardEngine:

  • it supports (almost?) all math mode LaTeX, including matrices. (Please share if you know anything that is not supported.)
  • its syntax tree consists of very few different parts: the StandardLeafNode, StandardBranchingNode, AscendingBranchingNode and DescendingBranchingNode can be used for almost all LaTeX, including fractions, powers, combinations, subscript, etc. with ready-to-use up/down/left/right navigation.
  • it can be used with any LaTeX math typesetting library you like.

A con:

  • this library will never be able to handle setting the cursor with the touch of a finger on a typeset formula. (But it DOES support up/down/left/right navigation and has a selection mode via arrow keys.)

More pros:

  • you have full control over what you display on the virtual keyboard keys and what a virtual key press actually does.
  • customize the editor output at runtime: dot or comma as decimal separator, cross or dot for multiplication, cursor style, colors, etc.
  • this library also supports handling input from a physical keyboard, where - for example - the forward slash "/" key can be programmed to result in encapsulating a previously typed number as the numerator of a fraction. (See the examples.)
  • almost forgotten: it's open source, free to use, free to modify (please fork this repo)!

How to use this library

This library has been distributed via PyPi.

Install Python and VS Code.

For installing a specific version of mathkeyboardengine - for example 0.1.0-alpha.12 - run the following command in the VS Code Terminal:

py -m pip install mathkeyboardengine==0.1.0a12

Then create a new folder 'MathKeyboardEngineTest' and open it in VS Code. Add a file main.py with the following content:

from mathkeyboardengine import *

k = KeyboardMemory()
latexconfiguration = LatexConfiguration()

insert(k, DigitNode('2'))
insert_with_encapsulate_current(k, AscendingBranchingNode('', '^{', '}'))
insert(k, StandardLeafNode('x'))

print(get_edit_mode_latex(k, latexconfiguration))

Press the play button in the upper-right corner of VS Code. The result that is displayed in the Terminal:

2^{x\blacksquare}

Documentation

todo. For now, see the JavaScript repo.

How to use this repo

Follow these steps to set up (and verify) a development environment for this repository:

  1. Install the latest version of Python via https://www.python.org/downloads. The download includes pip.
  2. Open the Terminal in VS Code and run
    py -m pip install -U pytest.
  3. Run all tests via
    py -m pytest.
  4. See code coverage:
    py -m pip install pytest-cov
    py -m pytest --cov=src --cov-report term-missing.
  5. Run all tests for multiple versions of python and multiple operating systems:
    py -m pip install --upgrade nox
    py -m nox (this uses noxfile.py from the root of the repository).
  6. If you're interested all the release steps, see _disthelper/release_steps.txt.

Ask or contribute

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

mathkeyboardengine-0.1.0a19.tar.gz (13.6 kB view details)

Uploaded Source

Built Distribution

mathkeyboardengine-0.1.0a19-py3-none-any.whl (25.1 kB view details)

Uploaded Python 3

File details

Details for the file mathkeyboardengine-0.1.0a19.tar.gz.

File metadata

  • Download URL: mathkeyboardengine-0.1.0a19.tar.gz
  • Upload date:
  • Size: 13.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.11.1

File hashes

Hashes for mathkeyboardengine-0.1.0a19.tar.gz
Algorithm Hash digest
SHA256 d16e3f902a5a5055c5bed348001872a7c53e4f528244eb8c432ef8583d196299
MD5 f6c59a0d647ff2cc7cd03ded493ca6d9
BLAKE2b-256 ff1fdc8b9808e8e4c4d77b164e0cdd518446a03ae71a0ddae82568025fd3e892

See more details on using hashes here.

File details

Details for the file mathkeyboardengine-0.1.0a19-py3-none-any.whl.

File metadata

File hashes

Hashes for mathkeyboardengine-0.1.0a19-py3-none-any.whl
Algorithm Hash digest
SHA256 39801e497d34cb2ba9c57e41618e0584b97cbc8c99f7fdfdcba092c8de4dae04
MD5 17806495191fb0635948b35732a05888
BLAKE2b-256 41183e2c5f67b74235c5f2944dd9e5f7c9c4e3b358662833f146a6cffd63e3e4

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page