From f05ff9c5fafd86c4a7a86d05343ae77287d56f1a Mon Sep 17 00:00:00 2001 From: Martin von Gagern Date: Tue, 7 Jul 2015 00:26:03 +0200 Subject: [PATCH 1/3] Offer some help working out the types of math formula atoms --- src/buildHTML.js | 3 ++- src/symbols.js | 1 + 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/src/buildHTML.js b/src/buildHTML.js index 11faf4088..6040c4a48 100644 --- a/src/buildHTML.js +++ b/src/buildHTML.js @@ -32,7 +32,8 @@ var buildExpression = function(expression, options, prev) { return groups; }; -// List of types used by getTypeOfGroup +// List of types used by getTypeOfGroup, +// see https://github.com/Khan/KaTeX/wiki/Examining-TeX#group-types var groupToType = { mathord: "mord", textord: "mord", diff --git a/src/symbols.js b/src/symbols.js index b620d730f..b5d8f6cf4 100644 --- a/src/symbols.js +++ b/src/symbols.js @@ -7,6 +7,7 @@ normal font), or "ams" (the ams fonts). * - group (required): the ParseNode group type the symbol should have (i.e. "textord", "mathord", etc). + See https://github.com/Khan/KaTeX/wiki/Examining-TeX#group-types * - replace (optional): the character that this symbol or function should be * replaced with (i.e. "\phi" has a replace value of "\u03d5", the phi * character in the main font). From 8bff74ca09bb68fa48a0be217e1f97ec3e25a6da Mon Sep 17 00:00:00 2001 From: Martin von Gagern Date: Tue, 7 Jul 2015 00:24:40 +0200 Subject: [PATCH 2/3] Change group type of array from inner to ord This is a consequence of Rule 8 of Appendix G of The Tex Book. --- src/buildHTML.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/buildHTML.js b/src/buildHTML.js index 6040c4a48..98903252e 100644 --- a/src/buildHTML.js +++ b/src/buildHTML.js @@ -44,7 +44,7 @@ var groupToType = { close: "mclose", inner: "minner", genfrac: "mord", - array: "minner", + array: "mord", spacing: "mord", punct: "mpunct", ordgroup: "mord", @@ -616,7 +616,7 @@ var groupTypes = { } } body = makeSpan(["mtable"], cols); - return makeSpan(["minner"], [body], options.getColor()); + return makeSpan(["mord"], [body], options.getColor()); }, spacing: function(group, options, prev) { From 6362e0f8f2a691b28962f624031c919588ab96d7 Mon Sep 17 00:00:00 2001 From: Martin von Gagern Date: Tue, 7 Jul 2015 00:26:39 +0200 Subject: [PATCH 3/3] Test case demonstrating the desired spacing around an array --- test/screenshotter/images/ArrayType-firefox.png | Bin 0 -> 9665 bytes test/screenshotter/ss_data.json | 1 + 2 files changed, 1 insertion(+) create mode 100644 test/screenshotter/images/ArrayType-firefox.png diff --git a/test/screenshotter/images/ArrayType-firefox.png b/test/screenshotter/images/ArrayType-firefox.png new file mode 100644 index 0000000000000000000000000000000000000000..c108bf12352f5b9fd650dced49d3660a0d2d230a GIT binary patch literal 9665 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 literal 0 HcmV?d00001 diff --git a/test/screenshotter/ss_data.json b/test/screenshotter/ss_data.json index e5f9359f2..deaf70c4c 100644 --- a/test/screenshotter/ss_data.json +++ b/test/screenshotter/ss_data.json @@ -1,6 +1,7 @@ { "Accents": "http://localhost:7936/test/screenshotter/test.html?m=\\vec{A}\\vec{x}\\vec x^2\\vec{x}_2^2\\vec{A}^2\\vec{xA}^2", "Arrays": "http://localhost:7936/test/screenshotter/test.html?m=\\left(\\begin{array}{rlc}1%262%263\\\\1+1%262+1%263+1\\cr1\\over2%26\\scriptstyle 1/2%26\\frac12\\\\[1ex]\\begin{pmatrix}x\\\\y\\end{pmatrix}%260%26\\begin{vmatrix}a%26b\\\\c%26d\\end{vmatrix}\\end{array}\\right]", + "ArrayType": "http://localhost:7936/test/screenshotter/test.html?m=1\\begin{array}{c}2\\\\3\\end{array}4", "Baseline": "http://localhost:7936/test/screenshotter/test.html?m=a+b-c\\cdot d/e", "BasicTest": "http://localhost:7936/test/screenshotter/test.html?m=a", "BinomTest": "http://localhost:7936/test/screenshotter/test.html?m=\\dbinom{a}{b}\\tbinom{a}{b}^{\\binom{a}{b}+17}",