Merge pull request #697 from edemaine/implies

Add \iff, \implies, \impliedby support
This commit is contained in:
Kevin Barabash
2017-05-16 20:02:39 -04:00
committed by GitHub
2 changed files with 16 additions and 1 deletions

View File

@@ -21,3 +21,12 @@ defineMacro("\\endgroup", "}");
// \def\overset#1#2{\binrel@{#2}\binrel@@{\mathop{\kern\z@#2}\limits^{#1}}}
defineMacro("\\overset", "\\mathop{#2}\\limits^{#1}");
defineMacro("\\underset", "\\mathop{#2}\\limits_{#1}");
//TODO: When implementing \dots, should ideally add the \DOTSB indicator
// into the macro, to indicate these are binary operators.
// \def\iff{\DOTSB\;\Longleftrightarrow\;}
// \def\implies{\DOTSB\;\Longrightarrow\;}
// \def\impliedby{\DOTSB\;\Longleftarrow\;}
defineMacro("\\iff", "\\;\\Longleftrightarrow\\;");
defineMacro("\\implies", "\\;\\Longrightarrow\\;");
defineMacro("\\impliedby", "\\;\\Longleftarrow\\;");

View File

@@ -2012,12 +2012,18 @@ describe("A macro expander", function() {
});
});
it("should expand the \overset macro as expected", function() {
it("should expand the \\overset macro as expected", function() {
expect("\\overset?=").toParseLike("\\mathop{=}\\limits^{?}");
expect("\\overset{x=y}{\sqrt{ab}}")
.toParseLike("\\mathop{\sqrt{ab}}\\limits^{x=y}");
expect("\\overset {?} =").toParseLike("\\mathop{=}\\limits^{?}");
});
it("should build \\iff, \\implies, \\impliedby", function() {
expect("X \\iff Y").toBuild();
expect("X \\implies Y").toBuild();
expect("X \\impliedby Y").toBuild();
});
});
describe("A parser taking String objects", function() {