diff --git a/src/functions.js b/src/functions.js index 0d4992130..ec702a8dc 100644 --- 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 index 2239bbdbf..64d30294c 100644 --- 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(); }); });