Skip to content

Latest commit

 

History

History
220 lines (190 loc) · 10.2 KB

CHANGELOG.md

File metadata and controls

220 lines (190 loc) · 10.2 KB

0.22 (April 11, 2018)

Major New Features

  • Support for styling in the virtual keyboard UI: the text and highlihgt color can be adjusted to emphasize a portion of a formula
  • Smart Fences. When a fence ("(", "{", etc...) is inserted, a matching closing fence is automatically inserted, displayed as a greyed out placeholder.
    The Latex code inserted will vary depending on the context where the insertion is made, either standalone characters (() or \left...\right. This feature is on by default and can be turned off with config.smartFence.
    Option-9 and Option-0, as well as \( and \) will override the setting and insert a plain old parenthesis.
  • \mleft...\mright. Similar to \left...\right (i.e. grow in height depending on its content) but with vertical spacing before and after similar to \mathopen and \mathclose. Used automatically by smart fences after a function such as \sin or f.
  • Haptic and audio feedback for the virtual keyboard.
    Haptic feedback is available on Android only.
    Two new config options to control it. config.keypressVibration, which is on by default, control the haptic feedback. config.keypressSound control the audio feedback (off by default). Specify the URL to a sound file to be played when a key on the virtual keyboard is pressed, or an object with a delete, return, spacebar and default (required) keys to specify different sounds for those keys.

Other New Features

  • When a fraction is inserted, for example by pressing '/', the items before the insertion point are considered as potential numerator. This now include parenthesized expressions and roots. In the case of parenthesized expressions, the parentheses are removed before being adoped for the numerator.
  • MASTON: Use Unicode to represent math-variant letters (e.g. ℂ)
  • Convert math-variant letters encoded in Unicode to Latex when pasting (e.g. ℂ becomes \C, 𝕰 becomes \mathord{\mathbf{\mathfrak{E}}}
  • MASTON: Commutativity support. a + b + c -> add(a, b, c)
  • MASTON: Right and left-associativity support ('=' and '=>' are right associative)
  • Improvements to the delete behavior: when to the right of a \left...\right deletes remove the closing fence, not the whole expression. Same for root, fractions, and other groups. When at the beginning of a denominator, pressing delete will remove the fraction, but keep numerator and denominator, etc...
  • When using the command virtual keyboard, switch to command mode as necessary.
  • Added MathAtom.skipBoundary. When true, navigating into/out of the atom the last/first element will be skipped. For example, with \textcolor{} this implements a behavior similar to word processors.

Bug fixes

  • Fixed #63: improved displayed of \enclose over stacked atoms such as fractions and \overset
  • Fixed issue with selecting sparse arrays
  • Make \bigl et al. properly selectable

Code Maintenance and Performance

  • Moved operator precedence and canonical names from Definitions to MASTON.
  • Improved rendering performance by eliminating hotspots through profiling.

0.21 (March 30, 2018)

Major New Features

  • Basic support for Latex macros. Macros can be defined with MathField.config({macros:'...')
  • Display alternate keys when a key on the virtual keyboard is held down.
  • Support for AZERTY, QWERTZ, Dvorak and Colemak virtual keyboards. Can be setup with MathField.config({virtualKeyboardLayout:'...'). Also, shift clicking on the keyboard icon toggles between layouts.

Other New Features

  • Toggle the virtual keyboard layer when the shift key is pressed
  • New onVirtualKeyboardToogle handler will get called when the visibility of the virtual keyboard changes. Useful to scroll into view important content that might be obscured by the keyboard.
  • Some common functions added as inline shortcuts: limsup, liminf, argmin, argmax, bessel, mean, median, fft.
  • Added \rd command (synonym with \differentialD and used by Proof Wiki)
  • Added a format option (latex-expanded) to MathField.text() and MathField.selectedText() to return Latex with macros expanded.
  • Removed restrictions on charset in text
  • Support shift + arrows to extend the selection with the virtual keyboard

Bug Fixes

  • More accurate operator precedence. Follow the MathML recommendation, except for arrows that are given a way too high priority in MathML.
  • Correctly output to Latex the \unicode command
  • When undoing, correctly restore the selection
  • Improved behavior when inserting superscript and subscript on a selected item
  • Fixed handling of unbalanced \left...\right sequences
  • Correctly output the minus sign to Latex (as U+002D not as U+2212)
  • Fixed some cases where the layout would shift by a couple of pixels as you navigated into the expression

Code Maintenance and Performance

  • Use .test() instead of .match() whenever possible
  • Eliminated .value and .children in Math Atoms. It's only .body now.
  • Avoid unnecessary rendering while tracking the pointer
  • Refactored the Popover code into Popover.js
  • Moved some content from Definitions.js and into Popover.js

0.20 (March 24, 2018)

Major New Features

  • Virtual keyboards with multi-touch support
  • BREAKING CHANGE: the command bar is no longer supported. Use virtual keyboards instead.

Other New Features

  • Added support for wide layouts to virtual keyboard. If space is available, up to four more columns of keys can be displayed.
  • Added Copy button to virtual keyboard
  • Allow 'space' in command mode
  • MASTON: improved parsing of numbers
  • Handle Unicode pseudo-superscript characters as exponents

0.19 (March 19, 2018)

Majore New Features

  • MASTON: first implementation
  • Support selecting cells in arrays

Other New Features

  • MASTON: handle complex numbers and modulo
  • Added option for styling of keyboard glyph
  • Improved output to Latex for arrays
  • Additional trig and long functions (\lb, \arsinh, \arcosh, \artanh, \arcsech, \arccsh, \arcsec, \arccsc)
  • MathML: more robust handling of complex <mo>
  • MathML: improved handling of fences
  • Improved Latex output

Bug Fixes

  • Correctly handle latex output for the \char command
  • Correctly handle invalid Unicode code points in the \char command
  • Correctly output MathML for extended Unicode characters and \char command
  • Correctly handle selection in sparse arrays
  • Correct spacing issue of selected items
  • Fixed #17: correctly extend the selection when the anchor is at the end of the selection
  • The caret would not blink in empty supsub
  • The last character of the selection would not be copied on the clipboard
  • MathML: don't insert &invisibleTimes; for factorial, but do insert it before a fence.
  • Going up from a numerator longer than the denominator could hang.
  • MathML and Latex output: better handling of \Big (etc...) delimiters
  • MathML: do not render \text as <mi>
  • Latex output: handle the \math... (\mathop, \mathbin...) family of functions
  • Properly parse custom operators
  • Commands with multiple keyboard shortcuts would not display correctly in the Popover panel

Code Maintenance and Performance

  • Reduce the amount of markup generated, avoid generating markup for empty spans.
  • Updated fonts from KaTeX

0.18 (March 4, 2018)

Bug Fixes

  • Fixed issue where \underset annotation was not selectable

Code Maintenance and Performance

  • Reverted back to WebPack 3
  • Simplified CSS and streamlined markup for vlist spans.

0.0.17 (February 27, 2018)

New Features

  • Improved accessibility support (major contribution from Neil Soiffer)
  • Support for MathML output and Latex to MathML conversion.

Bug Fixes

  • #26 Fixed issue with Chrome 62 where fraction lines and other thin lines would intermittently not render.
  • #20, #51. Ensure that a placeholder is always present for numerator, denominator.
  • #21. Do not allow sub-elements of an enclose element to be selected.
  • Font-size will now respect font-size specified by the parent element. As a result of this non-backward compatible change, the size of the equation may now be different than it was. To ensure that the size remains the same as before, specify a font-size property on the parent element with a value of 16px.
  • #29. Correctly handle $ and @ as inlineShortcuts
  • Improved handling of undo.
  • New implementation of \enclose notations.

0.0.16 (September 13, 2017)

Deprecated Features

  • MathField.write() has been deprecated. Use MathField.insert() instead.

New Features

  • Added MathField.selectedText() which returns the textual content of the selection.

Bug Fixes

  • Perform a snapshot with the undo manager when invoking MathField.insert().
  • Documentation improvements.

0.0.15 (July 1, 2017)

New Features

  • Properly exported public API, including renderMathInDocument() and renderMathInElement()
  • Added \enclose command, implementing the MathML equivalent.
  • Added \cancel, \bcancel and \xcancel commands
  • Added preserveOriginalContent option to MathLive.renderMathIn...()
  • Made \backslash work in text mode, for example when an argument of \rlap{}
  • Added MathField.revertToOriginalContent() when a math field is no longer needed for an element
  • Added customization of the command bar. See MathField.config() and config.commands
  • Added MathLive.revertToOriginalContent() and MathLive.getOriginalContent()
  • Added optional namespacing of data- attributes
  • Added onContentWillChange and onContentDidChange handlers in the math field config object.
  • Added tutorials and improved documentation

Bug Fixes

  • Fixed #5: AZERTY keyboard input was misbehaving, particularly for the ^ key
  • Dead keys (´, ^, ¨, ˜ and others on some keyboards) were not properly handled
  • Complex emojis (emojis made of multiple codepoints, such as emojis with skin tone modifiers, or emojis with a ZERO WIDTH JOINER, such as the David Bowie emoji) would be incorrectly recognized as multiple symbols
  • Fixed the \color command
  • Properly roundtrip to LaTeX \rlap, \color and many other commands. Now, copying content using these commands in a math field will result in the correct LaTeX code to be generated.