Fix wide character spacing (#1371)

* Fix wide character spacing

Fixes issue #1360

* Add test

* Use concat
This commit is contained in:
Ron Kok
2018-05-27 20:11:59 -07:00
committed by Kevin Barabash
parent 2974639877
commit 5a9e4c1708
2 changed files with 12 additions and 1 deletions

View File

@@ -238,7 +238,8 @@ const makeOrd = function<NODETYPE: "spacing" | "mathord" | "textord">(
if (value.charCodeAt(0) === 0xD835) {
// surrogate pairs get special treatment
const [wideFontName, wideFontClass] = wideCharacterFont(value, mode);
return makeSymbol(value, wideFontName, mode, options, [wideFontClass]);
return makeSymbol(value, wideFontName, mode, options,
classes.concat(wideFontClass));
} else if (fontOrFamily) {
let fontName;
let fontClasses;

View File

@@ -1548,6 +1548,16 @@ describe("An HTML font tree-builder", function() {
expect(markup).toContain(span);
});
it("should render wide characters with mord and with the correct font", function() {
const markup = katex.renderToString(String.fromCharCode(0xD835, 0xDC00));
expect(markup).toContain("<span class=\"mord mathbf\">A</span>");
const phrase1 = getBuilt(String.fromCharCode(0xD835, 0xDC00) +
" = " + String.fromCharCode(0xD835, 0xDC1A))[0];
const phrase2 = getBuilt("\\mathbf A = \\mathbf a")[0];
expect(phrase1).toEqual(phrase2);
});
it("should throw TypeError when the expression is of the wrong type", function() {
expect(function() {
katex.renderToString({badInputType: "yes"});