All notable changes to this project will be documented in this file. This CHANGELOG roughly follows the guidelines from www.keepachangelog.com.
- Unicode: °, delimiters, 1D400-1D7FF, \ll, \lll, ≘≙≚≛≝≞≟, Unicode Mathematical Alphanumeric Symbols, ⟂ ¬ ⊨ ‼ ∌ ≲ ⩽ ⪅ ≶ ⋚ ⪋, corner (#1203, #1207, #1260, #1273, #1274, #1232, #1377, #1389, #1459)
- \yen support on text mode (#1208)
- ( (#1213)
- Add defineSymbol to the main katex object (#1263)
- Capital Greek letters (#1283, #1285)
- Add version to katex object (#1279, #1475)
- \copyright, \textregistered, \textcircled (#1073)
- Tilde \textasciitilde (#1286)
- Line breaks for inline formulas (#1287)
- \hline (#1306)
- Top-level \newline and \ in inline math (#1298)
- Strict mode, unicode text in math mode (#1117, #1278)
- Strict setting for \newline display-mode behavior (#1314)
- Allow all Unicode symbols in nonstrict mode (#1217)
- \tag, \tag*, and \gdef (#1309)
- \def, \gdef, and \global\def (#1348, #1425)
- Change default maxExpand limit to 1000 (#1383)
- \cfrac (#1392)
- \arraystretch as a macro definition (#1381)
- Add ability to create a dashed vertical line in arrays, using ':' (#1395)
- \widecheck (#1406)
- \hdashline (#1407)
- \newcommand, \renewcommand, \providecommand (#1382)
- Add a utility function (setFontMetrics) to extend builtin fontMetrics (#1269)
- \oiint and \oiiint (#1430)
- Remove
match-at
dependency, use RegExp for lexer (#1447) - \brace and \brack (#1453)
- Allow only allowed protocols in \href (#1440)
- \genfrac and \above (#1455, #1458)
- \char character escaping and nicer MathML via \html@mathml (#1454)
- @binrel (#1487)
- \pmb (#1418)
- KaTeX website & documentation (#1484, #1515, #1518, #1514, #1526, #1516, #1519, #1527, #1564, #1566, #1584)
- Improve supported functions documentation (#1511, #1517, #1532, #1533, #1576, #1556, #1580, #1602)
- Alpha sorted function support page (#1536)
- MediaWiki (texvc) (#1558)
- Add ignore option for class names in auto-render (#1555)
- ScrollSpy for table of contents in the documentation (#1557, #1567, #1568)
- Build ECMAScript modules (#1479, #1622)
- Enable environment variable USE_TTF to disable bundling TTF fonts (#1600)
- List of KaTeX users (#1569, #1579)
- Port to @flow: delimiter, spacingData, unicodeSymbols, buildHTML, buildMathML, parseNode, defineFunction (#1177, #1195, #1206, #1239, #1247, #1276, #1312, #1324, #1361, #1373, #1393, #1386, #1387, #1408, #1478, #1486, #1534, #1541, #1542, #1551, #1552, #1554, #1559, #1606, #1609, #1612, #1637)
- Online screenshot diff/generation using CircleCI (#1187)
- Add display/displayMode toggle on test page (#1193)
- Change CDN links (#1243)
- Changelog for KaTeX (#1322)
- Move test helpers into common modules (#1318)
- Move function handlers to functions/ (#1323, #1325, #1328, #1329, #1331, #1327, #1334, #1339, #1349, #1359, #1332, #1335)
- Add regenerate option to the screenshotter (#1220)
- Upgrade to webpack 4 (#1337, #1435)
- Automatic submodule updating via husky tool (#1391)
- Refactor test helpers (#1336)
- Change build directory to
dist
and cleanup NPM scripts (#1500, #1610) - Switch from nomnom to commander (#1496)
- Add test job to CircleCI (#1235)
- Switch npm to Yarn (#1522, #1528)
- Improve release script & enable versioning documentation (#1521, #1603)
- Enable stylelint-config-standard, lint CSS files (#1575)
- Rename Screenshotter -> screenshotter (#1573)
- Fix nested math mode in non-default text mode (#1111)
- Fix contenteditable mode (#1179)
- Work around negative space bug in Chrome (#1194)
- Fix \nobreakspace (#1200)
- Fix instant mode switching for $, (, \text (#1213)
- Add metrics for \S and \P (#1224)
- Fix anchor.toMarkup (#1246)
- Specify height for SVG elements (#1252)
- Include Bold-Italic fonts for \boldsymbol (#1257)
- Fix space width in \texttt (#1261)
- Fix \underset (#1277)
- Remove special \verb space handling now that space is in Typewriter-Regular (#1258)
- Switch makeGlue from .mord .rule to .mspace (#1295)
- Fix ~ in \verb (#1286)
- Stop throwing ParseError when throwOnError is false (#1169, #1302, #1308)
- Fix extensible arrow sup vertical alignment (#1256)
- Adjust \underset alignment and spacing (#1290)
- Revert frac-lines and \rule to borders (min-height) (#1249, #1417, #1594)
- Fix vertical alignment of \underbrace (#1304)
- Use one strut instead of two (#1307)
- Fix MacroExpander space handling (#1314)
- Cleanup MathML , , (#1338)
- Fix lap vertical alignment. (#1162)
- Fix nested \tfrac (#1370)
- Fix \coloneq etc (#1372)
- Fix wide character spacing (#1371)
- Fix auto-render \[…] bug (#1375)
- Rewrite spacing commands as macros (#1156)
- Enable output modules to be used in browser or Node (#1401)
- Add vertical kern to \vdots (#1402)
- Implement \neq and \notin via macros like LaTeX's (#1400, #1499)
- Improve \cancel (#1398)
- Fix ligatures vs. \tt (#1379)
- Implement \colon as amsmath does (#1410)
- Automatic mrel/mbin spacing for \boldsymbol (#1388)
- Phantom text (#1449)
- Fix arrowheads for mhchem <--> (#1451)
- Set
documentFragment.style
to empty object (#1471) - Remove tree cloning before building HTML (#1470)
- Fix \operatorname to support general math functions (#1461)
- Use \not character without left side-bearing correction (#1267)
- Remove codes that require expensive polyfill (#1469, #1563, #1591, #1597)
- Fix \not vertical alignment (#1497)
- Comments without terminating newlines, \href fixes, \url support (#1529)
- Fix \textdaggerdbl (#1539)
- Fix \neq (#1548, #1574)
- Fix wide characters (#1549)
- Fix \fbox (#1550)
- Fix \Large roots (#1485)
- index.html: replace font, make responsive, improve demo (#1547, #1577, #1615, #1601)
- Italic Greek capital letters #1118
- Added support for
\mathring
#1125 - Added support for unicode angle brackets, single vertical bar, double vertical bar #1123
- Added support for Reaction Arrows #1078
- Added
\nobreakspace
#1145 - Added support for Unicode colon equals ≔ #1151
- Added support for
\underline
in text mode #1159
- Enable spacing functions in text mode #1139
- Improved JS spacing #1103
- Fixed handling of Unicode characters ð, Å, å #1157
- Padding over
\sqrt
and Paths for frac-line #1143
- Added support for
\aa
,\AA
,\lq
,\rq
,\lbrack
,\rbrack
#1069 - Added support for more scripts in
\text{}
environments such as Czech, Georgian, Hungarian, Turkish. #1076 - add Main-BoldItalic font to allow nesting of
\textit
and\textbf
- Added
\S
and\P
#1110
- Remove symlink to support devs using Windows #1090
- Do not inherit SVG style properties from the environment. #1089
- Update fonts and metrics so that accents are positioned correctly #1094
- Non-portable use of String method
.includes
. Fixed #1093 - Use correct spacing with tight styles. See #1106 for more details.
\kern
fixed and support\hskip
,\TeX
,\LaTeX
,\KaTeX
. See #974- Supported Unicode middle dot and Unicode accents.
- Added basic support for Indic scripts in addition to CJK. #1060
- Added support for bold italic symbols. #1011
- add
\ae
,\AE
,\oe
,\OE
,\o
,\O
,\ss
with unicode support for those characters in text mode. #1030 - Added
\i
and\j
for text mode. #1029 - Added
buildHTMLTree
. #1022 - Implemented
\TextOrMath
, @secondoftwo. #1024 - Added a 'common issues' section to the
README.md
. #1034
- Made a more working example in README.md. Fixed #1049 PR is #1050
- Exposing the build tree. #1017
- Changed
\xLongequal
to\xlongequal
. #997
- Avoid negative space in
\bmod
. #984 - Stacking text commands. #1009
- Fixed
\vec
by replacing the combining font glyph with an SVG. #1018 - Made accents zero width. #1033
- Fixed frac-line. #1025
- Implemented correct macros for
liminf
andlimsup
. Fixed #111 \kern
generates right-margin instead of left-margin. Fixed #995
- Added Unicode Relations and Unicode Symbol support. Supports Unicode ∴, ∵,
\mid
, Arrows, Big Operators, Binary Operators, Negated Relations. - Implemented the
alignedat
environment for flexible math spacing. #930 - Implemented
\mathchoice
command. #969 - Implemented
\href
command. #923 \hspace*
,\@ifstar
,\@ifnextchar
,\@firstoftwo
(#975)- Added
\notni
character∌
. #710 - Added ng-katex link to README.md. #959
- Single-character macros like active characters. #973
- Re
@flow
:- Port buildTree, katex, mathMLTree, parseTree, stretchy to @flow.
- Fixed the spacing between columns in the {aligned} environment. #942
- Fixed issue where the {aligned} environment skips the last line if the first column is empty. #949
- Appended
ApplyFunction
to math functions in MathML. #960 - Changed
\undertilde
to\utilde
. #948 - Changed
frac-line
from border to full span. #976
- Edited link to Function Support page. #922
- Re
@flow
:
- Added MathJax compatibility script. #680
- Added a maxSize option to limit user-specified sizes. #803
- Added
\smash
, laps, spaces, and phantoms. #833 - Support for
\raisebox
,\operatorname
,\And
,\colorbox
,\fcolorbox
and\verb
. - Added support for comments. Fixed #20
- To
@flow
:- fontMetrics, fontMetricsData, Token, Lexer, MacroExpander, Options, ParseError, ParseNode, Settings, Style.
- Removed the positions array computed by Parser's parseArguments(). #864
- Advanced macro support and magic
\dots
. #794 - Allow sizing commands inside optional groups. #885
- Upgraded
\sqrt
zoom and width. #890 - Refactored defineEnvironment to also accept HTML and MathML builders. #875
- For
@flow
:- Ported environments.js, functions.js, symbol.js, unit.js.
- Separated mandatory and optional arguments in parseArguments. #903
- Require [text]color HTML colors to be well-formed. See #827
\llap
and\rlap
now render contents in math mode. Use\mathllap
(new) and\mathrlap
(new) if you need the previous behavior.
- Fixed exponential behavior in accent production. #834
- Use mpadded for
\raisebox
MathML. #876 - Array/Matrix environments do not trim newlines. Fixed #337. PR is #479.
- For
@flow
:
- Support CJK full-width punctuation + Unicode dots. See #814
- Support for
' \` ^ ~ = \u . " \r \H \v
text-mode accents. See #802 - Modernized font creation. See #624
- Accepts all existing Greek letters using unicode characters in math mode. See #410
- Fixed MathML output for ' and large operators with limits. #788
- Updated package.json to point 'main' at dist/katex.js. #791
- Fixed color support for stretchy, strikethrough, and fbox. #792
- Detect attachEvent() support correctly. See #771 and #772 for the issue and PR fix respectively.
-
Note: The v0.8.0 release did not include the SVG images which are necessary for rendering wide and stretchy accents as well as
\overbrace
and\underbrace
. This release corrects that. -
Note that if you're including copies of KaTeX in your web application, you should now include the dist/images directory in addition to the usual the dist/fonts directory.
- Added some international operators. See #509
- Old font command support:
\rm
,\sf
,\tt
,\bf
,\it
. #675 - Builtin macros, macro arguments,
\overset
and\underset
. #605 - Added
\iff
,\implies
,\impliedby
support. #697 - Support <, >, | and many
\text
... commands in text mode. #684 - Implemented
$...$ via styling node. #637 - Added
\jot
lineskip to aligned environment, switch contents to displaystyle, and add gathered. #725 - Support stretchy wide elements. #670
- Set maxFontSize on rules. #744
- Added support for Windows high-contrast mode. Fixed #716 #724
-Implemented
\coloneqq
,\colonequals
, etc. based on mathtools and colonequals. #727 - Added configurable error callback. #658
- Added support for absolute TeX units. #732
- Revert "Remove trailing commas for IE 9 compatibility". #622
- Use utils.deflt for Settings. #649
- Refactored and commented space splicing code. #699
- Vertically center single-character
\mathop
. #745 - Associate font metrics with Options, not Style. #743
- Upgraded the source to use ES6 syntax including classes, import and static properties. #679
- Use
\displaystyle
within\over/\underbrace
. #765 - Shrinkwrap vlists in table-like CSS. #768
- Improve rule coding, including for
\sqrt
. #776
- Implicit
\color
, explicitly grouped\textcolor
. See #619
- Fixed high contrast mode better. #733
- Fixed all AMS mathord symbols. #618
- Fixed x'^2 #636
- Fixed font typo math -> main. #678
- Fixed spaces before
\middle
. #689 - Fixed #711 issue with multiple superscripts. #718
- Fixed interaction between styles and sizes. #719
- Correct handling of unbraced kerns followed by spaces. #751
- Corrected computation of TeX sizes. #755
- Solved Safari rendering issues with font-size overrides. #780
- Restored creation of dist directory during release process.
- Added
\atop
,\bmod
,\degree
,\kern
,\ldots
,\maltese
,\mathbin
,\mathclose
,\mathellipsis
,\mathop
,\mathopen
,\mathord
,\mathpunct
,\mathrel
,\middle
,\mod
,\pod
,\pounds
,\pmod
,\stackre
,\textbf
,\textellipsis
,\textit
,\textnormal
,\textrm
,\textsf
,\texttt
,--
,---
,'''
,'
,""
. - Added
\#
,\&
,\$
,\%
,\_
,\{
, and\}
in text mode.
- Allow specifying macros (without arguments) in the settings object.
- Combine adjacent spans in text mode.
- Do not apply italic correction in text mode.
- Fixed the MathML fence attribute on delimiters.
- Fixed converting bins to ords.
- Made
\llap
and\rlap
produce ords. - Fixed spacing around
\color
,\mathbf
, and in other places. - Added per-style font metrics.
- Complain when trying to render a non-string.
- Fixed subscript positioning with changed-font bases.
- Fixed superscript/subscript centering in fractions.
- Added
\gt
,\lt
and\underline
support. - Introduced the aligned environment.
- Removed 3px border around rules.
- Bundle CSS and fonts in npm package.
- Fixed sub- and super-scripts not being centered inside of math display.
- Set the greediness of font functions to 2 so that
e^\mathbf{x}
will parse.
- Added the font changing functions
\mathrm
,\mathit
,\mathbf
,\mathbb
,\mathcal
,\mathfrak
,\mathscr
,\mathsf
,\mathtt
,\Bbb
,\bold
, and\frak
. - Added the
\limits
and\nolimits
functions. - Added a throwOnError option to allow generating red error text when rendering invalid commands instead of throwing errors, and a corresponding errorColor option to decide the color of invalid commands.
- Added support for
|
column delimiters in the array environment. - Added
\lVert
and\rVert
symbols.
- Allow
\lvert
,\rvert
,\lVert
,\rVert
,\lgroup
,\rgroup
,\lmoustache
, and\rmoustache
in delimiters.
- Fix the spacing of the
\ulcorner
,\urcorner
,\llcorner
,\lrcorner
,\barwedge
,\veebar
,\circledcirc
,\boxdot
,\uparrow
,\Uparrow
,\downarrow
,\Downarrow
,\updownarrow
,\Updownarrow
, and\ldots
symbols.
- Added the cases and Bmatrix environments.
- Added
\checkmark
and\circledR
symbols.
- Ran
ttfautohint
on our fonts to produce better results at small font sizes. - Improved the spacing inside fractions.
- Correctly set environments to the ord type.
- Fixed bower.json to include a "main" entry
- Added support for some
\begin
/\end
environments, including support forarray
,matrix
,pmatrix
,bmatrix
,vmatrix
, andVmatrix
. - Added support for optional
\sqrt
arguments, e.g.\sqrt[3]{x}
. - Bower package is now available: run
bower install katex
to download the built files.
- Added a display mode flag to the cli.
- Exposed an unstable
__parse
method for retrieving the parse tree. - Prevent elements from inheriting
text-indent
.
- Added an auto-render extension for automatically rendering math on a page.
- Added support for
\phantom
. - Added
\#
,\&
.
- Removed
!important
from MathML hiding rules, so they can be overridden.
- The greediness of the
\color
function has changed to maintain compatibility with MathJax, so expressions like\color{red}\text{a}
will no longer work and instead need to be rewritten as\color{red}{\text{a}}
.
- Fixed spacing for
\odot
,\oplus
,\otimes
,\oslash
,\bigtriangleup
,\bigtriangledown
,\dagger
,\diamond
,\star
,\triangleleft
,\triangleright
. - Fixed MathML handling of text operators.
- Added accessibility through the use of MathML.
- Added the ability to render math in display mode, centered on a single line in display style.
- Added support for new symbols:
\aleph
,\amalg
,\approxeq
,\ast
,\asymp
,\backepsilon
,\backprime
,\backsim
,\backsimeq
,\Bbbk
,\because
,\beth
,\between
,\bigcirc
,\bigstar
,\blacklozenge
,\blacksquare
,\blacktriangle
,\blacktriangledown
,\blacktriangleleft
,\blacktriangleright
,\bowtie
,\Box
,\boxminus
,\boxplus
,\boxtimes
,\bullet
,\bumpeq
,\Bumpeq
,\Cap
,\cdotp
,\centerdot
,\circeq
,\circlearrowleft
,\circlearrowright
,\circledast
,\circleddash
,\circledS
,\clubsuit
,\complement
,\Cup
,\curlyeqprec
,\curlyeqsucc
,\curlyvee
,\curlywedge
,\curvearrowleft
,\curvearrowright
,\dag
,\daleth
,\dashleftarrow
,\dashrightarrow
,\dashv
,\ddag
,\ddagger
,\diagdown
,\diagup
,\Diamond
,\diamondsuit
,\digamma
,\divideontimes
,\doteq
,\Doteq
,\doteqdot
,\dotplus
,\doublebarwedge
,\doublecap
,\doublecup
,\downdownarrows
,\downharpoonleft
,\downharpoonright
,\ell
,\eqcirc
,\eqsim
,\eqslantgtr
,\eqslantless
,\equiv
,\eth,
\exists,\fallingdotseq
,\Finv
,\flat
,\forall
,\frown
,\Game
,\geqq
,\geqslant
,\gg
,\ggg
,\gggtr
,\gimel
,\gnapprox
,\gneq
,\gneqq
,\gnsim
,\gtrapprox
,\gtrdot
,\gtreqless
,\gtreqqless
,\gtrless
,\gtrsim
,\gvertneqq
,\hbar
,\heartsuit
,\hookleftarrow
,\hookrightarrow
,\hslash
,\Im
,\intercal
,\Join
,\ldotp
,\leadsto
,\Leftarrow
,\leftarrowtail
,\leftharpoondown
,\leftharpoonup
,\leftleftarrows
,\leftrightarrow
,\Leftrightarrow
,\leftrightarrows
,\leftrightharpoons
,\leftrightsquigarrow
,\leftthreetimes
,\leqq
,\leqslant
,\lessapprox
,\lessdot
,\lesseqgtr
,\lesseqqgtr
,\lessgtr
,\lesssim
,\lgroup
,\lhd
,\ll
,\llcorner
,\Lleftarrow
,\lll
,\llless
,\lmoustache
,\lnapprox
,\lneq
,\lneqq
,\lnsim
,\longleftarrow
,\Longleftarrow
,\longleftrightarrow
,\Longleftrightarrow
,\longmapsto
,\longrightarrow
,\Longrightarrow
,\looparrowleft
,\looparrowright
,\lozenge
,\lrcorner
,\Lsh
,\ltimes
,\lvertneqq
,\mapsto
,\measuredangle
,\mho
,\mid
,\mp
,\multimap
,\nabla
,\natural
,\ncong
,\nearrow
,\nexists
,\ngeqq
,\ngeqslant
,\ngtr
,\ni
,\nleftarrow
,\nLeftarrow
,\nleftrightarrow
,\nLeftrightarrow
,\nleqq
,\nleqslant
,\nless
,\nmid
,\nparallel
,\nprec
,\npreceq
,\nrightarrow
,\nRightarrow
,\nshortmid
,\nshortparallel
,\nsim
,\nsubseteqq
,\nsucc
,\nsucceq
,\nsupseteqq
,\ntriangleleft
,\ntrianglelefteq
,\ntriangleright
,\ntrianglerighteq
,\nvdash
,\nvDash
,\nVdash
,\nVDash
,\nwarrow
,\ominus
,\owns
,\parallel
,\perp
,\pitchfork
,\prec
,\precapprox
,\preccurlyeq
,\preceq
,\precnapprox
,\precneqq
,\precnsim
,\precsim
,\propto
,\Re
,\restriction
,\rgroup
,\rhd
,\Rightarrow
,\rightarrowtail
,\rightharpoondown
,\rightharpoonup
,\rightleftarrows
,\rightleftharpoons
,\rightrightarrows
,\rightsquigarrow
,\rightthreetimes
,\risingdotseq
,\rmoustache
,\Rrightarrow
,\Rsh
,\rtimes
,\searrow
,\sharp
,\shortmid
,\shortparallel
,\sim
,\simeq
,\smallfrown
,\smallsetminus
,\smallsmile
,\smile
,\spadesuit
,\sphericalangle
,\sqcap
,\sqcup
,\sqsubset
,\sqsubseteq
,\sqsupset
,\sqsupseteq
,\square
,\Subset
,\subseteqq
,\subsetneq
,\subsetneqq
,\succ
,\succapprox
,\succcurlyeq
,\succeq
,\succnapprox
,\succneqq
,\succnsim
,\succsim
,\Supset
,\supseteqq
,\supsetneq
,\supsetneqq
,\swarrow
,\therefore
,\thickapprox
,\thicksim
,\triangledown
,\trianglelefteq
,\triangleq
,\trianglerighteq
,\twoheadleftarrow
,\twoheadrightarrow
,\ulcorner
,\unlhd
,\unrhd
,\upharpoonleft
,\upharpoonright
,\uplus
,\upuparrows
,\urcorner
,\varkappa
,\varpropto
,\varsubsetneq
,\varsubsetneqq
,\varsupsetneq
\varsupsetneqq
,\vartriangle
,\vartriangleleft
,\vartriangleright
,\vdash
,\vDash
,\Vdash
,\Vvdash
,\wp
,\wr
,\yen
.
- Removed unused greek fonts.
- Added support for
\binom
- Added support for
\over
and\choose
- Added
\partial
,\subset
,\supset
,\subseteq
,\supseteq
,\cap
,\cup
,\setminus
,\neg
,\lnot
,\top
,\bot
,\emptyset
,\varnothing
,\land
,\lor
,\wedge
,\vee
,\notin
,\nsubseteq
,\nsupseteq
,\models
. - Added simple
katex
command-line binary to convert TeX to HTML on the server. - Added WOFF2 fonts for faster downloads in Chrome and Opera.
- Correctly throws on
\sqrt[3]{x}
to indicate lack of support. - Warn when in quirks mode (i.e., missing a
<!DOCTYPE html>
declaration). - Built files now only use ASCII characters to avoid character encoding problems.
- Fixed spacing for
\iint
and\iiint
.
Initial Public Release