www

Unnamed repository; edit this file 'description' to name the repository.
Log | Files | Refs | README

commit 2cbee18010037e0814486d9ded3991a96e3aa262
parent 006a0a761c59a99acbfc2ce48ce717dae1e76a6b
Author: Ben Alpert <alpert@khanacademy.org>
Date:   Wed, 15 Oct 2014 16:05:58 -0700

Add \choose support

Test Plan: Looked at `1 + 2\choose {3 \over 4}`, npm tested.

Reviewers: emily

Reviewed By: emily

Differential Revision: http://phabricator.khanacademy.org/D13903

Diffstat:
Msrc/functions.js | 35+++++++++++++++++++++++++----------
Mtest/katex-spec.js | 3+++
2 files changed, 28 insertions(+), 10 deletions(-)

diff --git a/src/functions.js b/src/functions.js @@ -164,16 +164,6 @@ var functions = { type: "katex" }; } - }, - - "\\over": { - numArgs: 0, - handler: function (func) { - return { - type: "infix", - replaceWith: "\\frac" - }; - } } }; @@ -477,6 +467,31 @@ var duplicatedFunctions = [ }; } } + }, + + // Infix generalized fractions + { + funcs: ["\\over", "\\choose"], + data: { + numArgs: 0, + handler: function (func) { + var replaceWith; + switch (func) { + case "\\over": + replaceWith = "\\frac"; + break; + case "\\choose": + replaceWith = "\\binom"; + break; + default: + throw new Error("Unrecognized infix genfrac command"); + } + return { + type: "infix", + replaceWith: replaceWith + }; + } + } } ]; diff --git a/test/katex-spec.js b/test/katex-spec.js @@ -559,6 +559,9 @@ describe("An over parser", function() { it("should fail with multiple overs in the same group", function () { var badMultipleOvers = "1 \\over 2 + 3 \\over 4"; expect(badMultipleOvers).toNotParse(); + + var badOverChoose = "1 \\over 2 \\choose 3"; + expect(badOverChoose).toNotParse(); }); });