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:
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();
});
});