Fixed: when parsing \langle/\rangle from Latex, subsequently exported \langle/\rangle misses following whitespace.
Same for \lVert,\rVert
diff --git a/src/commands/math/commands.js b/src/commands/math/commands.js
index 6153881..4a5b808 100644
--- a/src/commands/math/commands.js
+++ b/src/commands/math/commands.js
@@ -659,8 +659,8 @@
'\\langle ': '\\rangle ',
'\\rangle ': '\\langle ',
'|': '|',
- '\\lVert' : '\\rVert',
- '\\rVert' : '\\lVert',
+ '\\lVert ' : '\\rVert ',
+ '\\rVert ' : '\\lVert ',
};
function bindCharBracketPair(open, ctrlSeq) {
@@ -687,14 +687,14 @@
return optWhitespace.then(regex(/^(?:[([|]|\\\{|\\langle|\\lVert)/))
.then(function(ctrlSeq) {
var open = (ctrlSeq.charAt(0) === '\\' ? ctrlSeq.slice(1) : ctrlSeq);
- if (ctrlSeq=="\\langle") open = '⟨';
- if (ctrlSeq=="\\lVert") open = '∥';
+ if (ctrlSeq=="\\langle") { open = '⟨'; ctrlSeq = ctrlSeq + ' '; }
+ if (ctrlSeq=="\\lVert") { open = '∥'; ctrlSeq = ctrlSeq + ' '; }
return latexMathParser.then(function (block) {
return string('\\right').skip(optWhitespace)
.then(regex(/^(?:[\])|]|\\\}|\\rangle|\\rVert)/)).map(function(end) {
var close = (end.charAt(0) === '\\' ? end.slice(1) : end);
- if (end=="\\rangle") close = '⟩';
- if (end=="\\rVert") close = '∥';
+ if (end=="\\rangle") { close = '⟩'; end = end + ' '; }
+ if (end=="\\rVert") { close = '∥'; end = end + ' '; }
var cmd = Bracket(0, open, close, ctrlSeq, end);
cmd.blocks = [ block ];
block.adopt(cmd, 0, 0);
diff --git a/test/unit/latex.test.js b/test/unit/latex.test.js
index bd60403..e1a368d 100644
--- a/test/unit/latex.test.js
+++ b/test/unit/latex.test.js
@@ -91,7 +91,7 @@
assert.ok(tree.ends[L] instanceof Bracket);
var contents = tree.ends[L].ends[L].join('latex');
assert.equal(contents, '123');
- assert.equal(tree.join('latex'), '\\left\\langle123\\right\\rangle)');
+ assert.equal(tree.join('latex'), '\\left\\langle 123\\right\\rangle )');
});
test('lVert/rVert', function() {
@@ -100,7 +100,7 @@
assert.ok(tree.ends[L] instanceof Bracket);
var contents = tree.ends[L].ends[L].join('latex');
assert.equal(contents, '123');
- assert.equal(tree.join('latex'), '\\left\\lVert123\\right\\rVert)');
+ assert.equal(tree.join('latex'), '\\left\\lVert 123\\right\\rVert )');
});
test('parens with whitespace', function() {