diff --git a/src/macros.js b/src/macros.js index f88935f0..fb1054bf 100644 --- a/src/macros.js +++ b/src/macros.js @@ -8,6 +8,13 @@ function defineMacro(name, body) { module.exports[name] = body; } +////////////////////////////////////////////////////////////////////// +// basics +defineMacro("\\bgroup", "{"); +defineMacro("\\egroup", "}"); +defineMacro("\\begingroup", "{"); +defineMacro("\\endgroup", "}"); + ////////////////////////////////////////////////////////////////////// // amsmath.sty diff --git a/test/screenshotter/images/GroupMacros-chrome.png b/test/screenshotter/images/GroupMacros-chrome.png new file mode 100644 index 00000000..da77a3ac Binary files /dev/null and b/test/screenshotter/images/GroupMacros-chrome.png differ diff --git a/test/screenshotter/images/GroupMacros-firefox.png b/test/screenshotter/images/GroupMacros-firefox.png new file mode 100644 index 00000000..1813705b Binary files /dev/null and b/test/screenshotter/images/GroupMacros-firefox.png differ diff --git a/test/screenshotter/ss_data.js b/test/screenshotter/ss_data.js index 7dd926da..81ff909f 100644 --- a/test/screenshotter/ss_data.js +++ b/test/screenshotter/ss_data.js @@ -26,5 +26,8 @@ for (var key in dict) { } }); itm.query = querystring.stringify(query); + if (itm.macros) { + itm.query += "&" + querystring.stringify(itm.macros); + } } module.exports = dict; diff --git a/test/screenshotter/ss_data.yaml b/test/screenshotter/ss_data.yaml index 8838e486..2c620e63 100644 --- a/test/screenshotter/ss_data.yaml +++ b/test/screenshotter/ss_data.yaml @@ -74,6 +74,11 @@ Exponents: a^{a^a_a}_{a^a_a} FractionTest: \dfrac{a}{b}\frac{a}{b}\tfrac{a}{b}\;-\dfrac12\;1\tfrac12\;{1 \atop 2} Functions: \sin\cos\tan\ln\log GreekLetters: \alpha\beta\gamma\omega +GroupMacros: + macros: + \startExp: e^\bgroup + \endExp: \egroup + tex: \startExp a+b\endExp KaTeX: \KaTeX Kern: tex: \frac{a\kern{1em}b}{c}a\kern{1em}b\kern{1ex}c\kern{-0.25em}d diff --git a/test/screenshotter/test.html b/test/screenshotter/test.html index 4d9745fe..b046e42a 100644 --- a/test/screenshotter/test.html +++ b/test/screenshotter/test.html @@ -47,6 +47,12 @@ if (query["errorColor"]) { settings.errorColor = query["errorColor"]; } + var macros = {}; + var macroRegex = /(?:^\?|&)(?:\\|%5[Cc])([A-Za-z]+)=([^&]*)/g; + while ((match = macroRegex.exec(window.location.search)) !== null) { + settings.macros = macros; + macros["\\" + match[1]] = decodeURIComponent(match[2]); + } katex.render(query["tex"], mathNode, settings); document.getElementById("pre").innerHTML = query["pre"] || "";