Commit Graph

588 Commits

Author SHA1 Message Date
Ron Kok
ab7b7826ff \Improve MathML for \colorbox and \fcolorbox (#1914)
* Add border color

* Fix lint errors

* Edit to persuade flow its okay.

* Add \colorbox
2019-04-04 18:19:19 +09:00
Ron Kok
5d29a28c14 Improve MathML for \tag (#1915)
* Improve MathML for \tag

* Make a duplicate pad

* Add TODO

* Add semi-colon
2019-04-02 09:39:31 -07:00
Ron Kok
01a94d5f07 Improve MathML for fractions (#1882)
* Improve MathML for fractions

* Fix lint errors

* Revise arguments

* Reverting to previous arguments

* Revise arguments

* Pick up comment

* Change > to >=
2019-03-29 07:17:22 -07:00
Ron Kok
e52f6859ec Improve MathML for \rule (#1912)
* MathML for \rule

* Pick up comments

* Update rule.js
2019-03-29 22:59:21 +09:00
Ron Kok
32b25cd5cf Improve MathML for extensible arrows (#1901)
* Add padding

* Fix lint errors

* Pick up comments

* Pick up comment
2019-03-29 22:52:56 +09:00
Ron Kok
21f7fe85d5 Improve MathML for characters in Unicode private use area (#1908)
* Add macros for private area characters

* Add \nsupseteqq and \nsubseteqq
2019-03-28 09:37:54 -07:00
Ron Kok
27d557bccf Make \smallint small in \displaystyle (#1907) 2019-03-28 09:31:30 -07:00
Ron Kok
79efcc3447 Improve more coloneq (#1902) 2019-03-28 09:21:26 -07:00
Ron Kok
9fcf14dccf Get a tall \middle\vert from MathML (#1911) 2019-03-28 17:49:05 +09:00
Ron Kok
26e1518b7b Fix \middle spacing (#1906) 2019-03-26 08:27:26 +09:00
Ron Kok
04078aa09d Improve MathML for \brace (#1884)
* Fix \brace

* Fix lint error
2019-03-24 13:43:19 +09:00
Ron Kok
f95160b041 Improve MathML for \coloneqq, \dblcolon, \eqcolon, and \eqqcolon (#1889)
* Improve MathML for colonequals

* Fix lint errors

* Change to macro implementation
2019-03-24 13:22:28 +09:00
Ron Kok
8da1377c08 Improve MathML for \hphantom and \vphantom (#1883)
* Improve MathML for \phantom

* Add mpadded
2019-03-24 13:17:54 +09:00
Ron Kok
cb477ca01a Improve MathML for \limits (#1897)
* Improve MathML for \limits

* Make code parallel
2019-03-24 13:02:12 +09:00
Ron Kok
f8f4809886 Fix ApplyFunction character (#1890) 2019-03-23 10:30:33 +09:00
Ron Kok
a1e341a5c6 Improve MathML for \overset, \stackrel, and \underset (#1886)
* Fix \overset and \stackrel

* Fix indentation
2019-03-22 08:37:05 -07:00
Ron Kok
64d1c4e590 Fix nested \dfrac (#1825)
* Fix nested \dfrac

* Update screen shots
2019-03-20 14:20:01 -04:00
Ron Kok
f35c77a544 Improve MathML accents (#1877) 2019-03-21 02:57:53 +09:00
riteme
6ae095fcd4 Fix \Rho (#1870) 2019-03-07 10:18:20 -05:00
Erik Demaine
ee16854612 Fix \not and \neq on Chrome via new Unicode symbol U+E020 (#1852)
* Fix \not and \neq via new Unicode symbol U+E020

Fix #1842

* Fix font metrics

* Update screenshots

* Use lower case letters in code points
2019-02-21 16:06:29 +09:00
Erik Demaine
23958337a2 \fbox inherits default color (#1847)
Merge `.fbox` and `.fcolorbox` rules to inherit default color, instead
of forcing `black`.  We no longer have any explicit `black` in CSS.
Fix #1772.
2019-02-09 18:10:35 -05:00
Erik Demaine
7f778d1543 leqno and fleqn support (#1814)
* leqno support

* Add fleqn support

* Add tests

* Lint fix

* Add leqno and fleqn to website demo
2019-01-29 18:40:17 +09:00
Erik Demaine
58c36c6fdf Add \textbackslash and \textasciicircum (#1839)
* Add \textbackslash and \textasciicircum

Fix #1838

* lint fix

* Add documentation
2019-01-27 12:02:47 -08:00
Ron Kok
2cd37ae7c3 Fix Unicode bigcup (#1836) 2019-01-20 12:38:14 -05:00
René Filip
9ddc24c9f1 add \argmax and \argmin (#1820)
* add \argmax and \argmin

* add reference to argmin and argmax
2019-01-12 18:36:36 -05:00
Ron Kok
e85cb97cca Fix \genfrac w/empty delimiter arguments (#1816) 2019-01-02 02:13:54 +09:00
Erik Demaine
647c661db0 Remove double encoding in MathML via Unicode MathML spaces (#1813)
* Remove double encoding in MathML via Unicode MathML spaces

We used to have a complex mechanic for escaping strings, marking them as
`needsEscape = false`, and then not escaping those strings (for
combining strings in `\operatorname`).  But this doesn't really work
with `render`ing directly to a node, as `document.createTextNode` can't
be stopped from escaping.

I've thus removed this mechanic, which required the following changes:

* Switch MathML "smart space" encoding to use Unicode instead of
  `&LongNames;` (which weren't working with `render` for the same reason).
* Hack our HTML/MathML serializer to not use `String.trim`, which wrecks
  havoc with emitted Unicode spaces.

Now `toText()` doesn't escape, so strings concatenate in unescaped form,
and `toHTML()` only does the necessary escaping.  Thus fix #1782.

* Fix src/utils.js

Co-Authored-By: edemaine <edemaine@mit.edu>

* Fix src/mathMLTree.js documentation

Co-Authored-By: edemaine <edemaine@mit.edu>

* Remove trim hack thanks to diffable-html@4.0.0

* Switch back to jest-serializer-html

* Update mathMLTree.js
2019-01-02 01:55:44 +09:00
Ron Kok
f5234a2f01 Fix \hphantom width (#1809)
* Fix \hphantom width

* Spin up phony screenshot test

* Make better choice of smash screenshot test

* Real screenshotter test

* Add strict mode

* Fix lint error

* useStrictBehavior

* Revert to previous strict setting

* useStrictBehavior "phantomSpacing"

* Fix tests via nonstrictSettings

* Fix documentation

* Remove bin|rel
2019-01-02 01:49:23 +09:00
Erik Demaine
8346294bf3 Fix \\ and \newline after operator (#1796)
* Fix \\ and \newline after operator

Fix #1790.  `\\` and `\newline` render as a span with classes
`mspace` and `newline`.  We need to check for `newline` when bringing
spaces into the same `base` group.

* Add tests and comment
2018-12-26 18:17:30 -05:00
Ron Kok
d604965c62 Allow \includegraphics to omit the optional argument (#1807)
* Allow \includegraphics to omit the optional argument

* Fix lint error
2018-12-23 18:52:30 -05:00
Ron Kok
64745b5c8a Add mhchem extension (#1436)
* A proposal for support of mhchem

* Create extension

* Add index

* Remove arrow function

* Fix lint errors in macros.js

* Remove mhchem from build

* Move code from macros.js to mhchem.js

* Add minified mhchem

* Remove arrow head mods. Disable eslint.

* Fix space handling

* Update code to mhchem v3.3.0

* Tweak arrows to reduce diff

* Raise \tripledash

* Edit docs and webpack

* Update package.json

* Remove wrap. Remove manual.

* Correct second brush stroke in \xrightleftarrows

* Added patch file

* Add import line

* Add mhchem to eslint ignore
2018-11-24 18:52:25 -05:00
ylemkimon
3dfd17d9b4 Add catcode to Lexer, move comment parsing back to Lexer (#1789)
* Remove redundant consumeSpaces()

- Spaces after command sequence are ignored in Lexer
- parseExpression consumes spaces in the math mode

* Add catcode to Lexer, move comment parsing back to Lexer

- Fix parsing a comment before a sup/subscript argument
- Fix parsing a comment before an expression
- Fix parsing a comment before or between \hline
- Fix parsing a comment in the macro definition
- Fix parsing a comment including a command sequence

* Update Lexer.js

* Update Parser.js

* catcode -> catcodes
2018-11-24 18:42:14 -05:00
ylemkimon
112582daa5 Replace Khan/KaTeX with KaTeX/KaTeX (#1781)
* Replace Khan/KaTeX with KaTeX/KaTeX

* Remove RawGit links

* Remove old files
2018-11-19 21:24:33 -05:00
Ron Kok
f713f324bd Support \includegraphics (#1620)
* Support \includegraphics

* Update screenshots

* Fix lint errors

* Fix more lint errors

* Fix lint errors take 3

* Add documentation, error messages

* Improve CSS

* Update domTree to coordinate with PR #1633

* Update screenshots

* fix flow errors

* Use same RegEx as href

* Fix lint error

* Accept raw ArgType

* Fix lint error

* fix flow error

* Add test
2018-11-01 18:43:41 -04:00
ylemkimon
a3215b284e Refactor buildExpression to depth-first traverse groups (nodes), fix spacings and \begingroup...\endgroup (#1706)
* Refactor `buildExpression` to depth-first traverse groups (nodes)

* Fix \begingroup...\endgroup

* Rename traverseNodes to traverseNonSpaceNodes, update comments and tests

* Update Parser.js

* Update katex-spec.js.snap
2018-10-29 00:31:00 -04:00
Ron Kok
5f3ab13d02 Support blackboard bold in text mode (#1757) 2018-10-29 00:24:44 -04:00
ylemkimon
4dd0e2cdca Add \> (#1752)
* Add \>

* Update snapshot
2018-10-24 22:04:00 -04:00
Ron Kok
0b7b4db7fc Support Unicode double square brackets (#1750) 2018-10-24 15:57:36 +09:00
AlbertHilb
89bb371152 Add support for \lparen and \rparen delimiters. (#1741)
* Add support for `\lparen` and `\rparen` delimiters.

* Add missing math delimiter. Fix alphabetic order.

* Add test.

* Add spaces between parenthesis and square brackets.
2018-10-15 21:05:10 -04:00
ylemkimon
0bc31f1822 Refactor Parser (#1723)
* Move unsupported command (undefined control sequence) error to parseSymbol

* Change parseGivenFunction and parseFunction to parse only function

* Move \begin handling to environment.js

* Remove ParsedFunc/Arg, move logics into parseGroup

* Fix flow error

* Remove parseFunction, rename parseGivenFunction to parseFunction

* Minor fixes

* Remove previously resolved TODO

* Minor fixes

* Update flow typing
2018-10-14 00:58:13 +09:00
ylemkimon
a51dc4b072 Wrap document fragment where classes, attributes, or styles are applied (#1707)
* Wrap document fragment group where classes or styles are applied

* Wrap non-math node where attributes are applied in \href
2018-10-12 22:26:13 -04:00
ylemkimon
3907545e2c Add raw string group, move comment parsing to Parser, change URL group parser (#1711)
* Add raw string group

* Move comment parsing to Parser

* Use raw string group in URL group parser

* Update types.js

* Add multi-level nested url test
2018-10-12 21:21:57 -04:00
ylemkimon
ba8e224b8d Fix \mathit font and italic correction and add \mathnormal (#1700)
* Fix \mathit font (Math-Italic -> Main-Italic) and italic correction

* Rename mathit to mathdefault and mainit to mathit

* Add \mathnormal
2018-10-10 17:18:07 +09:00
Erik Demaine
faa0c7e3fe Fix tag positioning to live within katex-html parent (#1721)
* Fix tag positioning to live within katex-html parent

`.tag` has `position: absolute`, but this positions it relative to the nearest
parent with a non-static `position` (see
https://developer.mozilla.org/en-US/docs/Web/CSS/Containing_block).
This PR makes `.katex-display > .katex > .katex-html` that parent.

* Update screenshots
2018-09-20 21:30:12 +09:00
Brian Leung
f71f469d4b Remove duplicate defineFunction invocation for \mathop. (#1701) 2018-09-05 23:43:23 -04:00
Kevin Barabash
48e5a26ee9 extract makeVerb and some spacing functions from buildCommon (#1640)
* extract makeVerb and some spacing functions from buildCommon

* fix case sensitivity issue

* move function definitions before their use
2018-09-03 18:10:46 -04:00
ylemkimon
4178639ea5 Upgrade to Babel 7 (#1595)
* Upgrade to Babel 7

* Update dependencies

* Remove `modules` and `useEsModules` as module support is automatically detected

Target browsers supporting ESM in the ESM build.

* Disable corejs aliasing (polyfill)

* Fix package.json and update lockfile

* Bump CircleCI cache version

* Remove `Object.values()` use for Node 6 compatability

* Remove redundant arguments to @babel/register

* Update rollup and rollup-plugin-babel

* Add ignore option to no-transform-runtime-aliasing

Ignore JSON.stringify, parseInt, and ParseFloat

* Upgrade babel-loader to 8.0.1

* Use api.env() in Babel configuration

* Upgrade babel-loader to 8.0.2
2018-09-03 17:19:12 -04:00
Brian Leung
010dc88029 Add Flow types to CssStyle. (#1684) 2018-09-02 23:53:22 -04:00
Ron Kok
9b7e10e4f7 Allow 6-digit color spec w/o # (#1690)
* Allow 6-digit color spec w/o #

* Improve RegEx pattern

* Pick up comment

* fix lint
2018-09-01 13:27:17 -04:00
Kevin Barabash
539172098a simplify combining chars (#1633)
* simplify comibining chars

* try combining chars in text operators instead of all ordgroups

* ensure that adjacent chars have the same classes

* fix phantom tests

* extract canCombe from tryCombineChars, check for skew and maxFontSize

* check prev.italic !== next.italic

* use the last character's italic correction.
2018-08-23 17:38:36 -04:00