Add support for \lparen and \rparen delimiters. (#1741)

* Add support for `\lparen` and `\rparen` delimiters.

* Add missing math delimiter. Fix alphabetic order.

* Add test.

* Add spaces between parenthesis and square brackets.
This commit is contained in:
AlbertHilb
2018-10-16 03:05:10 +02:00
committed by Erik Demaine
parent de961dedd5
commit 89bb371152
6 changed files with 14 additions and 7 deletions

View File

@@ -587,6 +587,7 @@ table td {
|\lor|$\lor$||
|\lower|<span style="color:firebrick;">Not supported</span>||
|\lozenge|$\lozenge$||
|\lparen|$\lparen$||
|\Lrarr|$\Lrarr$||
|\lrArr|$\lrArr$||
|\lrarr|$\lrarr$||
@@ -864,6 +865,7 @@ table td {
|\rmoustache|$\rmoustache$||
|\root|<span style="color:firebrick;">Not supported</span>||
|\rotatebox|<span style="color:firebrick;">Not supported</span>|[Issue #681](https://github.com/Khan/KaTeX/issues/681)|
|\rparen|$\rparen$||
|\rq|$\rq$||
|\Rrightarrow|$\Rrightarrow$||
|\Rsh|$\Rsh$||

View File

@@ -53,14 +53,14 @@ See also [letters](#letters)
||||||
|:-----------------------------------|:---------------------------------------|:----------|:-------------------------------------------------------|:-----
|$( )$ `( )` |$\lt~\gt$ `\lt \gt` |$⌈~⌉$ `⌈ ⌉`|$\lceil~\rceil$ `\lceil`<br>$~~~~~$`\rceil` |$\uparrow$ `\uparrow`
|$[ ]$ `[ ]` |$\lbrack~\rbrack$ `\lbrack`<br>$~~~~$`\rbrack`|$⌊~⌋$ `⌊ ⌋`|$\lfloor~\rfloor$ `\lfloor`<br>$~~~~~$`\rfloor` |$\downarrow$ `\downarrow`
|$(~)$ `( )` |$\lparen~\rparen$ `\lparen`<br>$~~~~$`\rparen`|$⌈~⌉$ `⌈ ⌉`|$\lceil~\rceil$ `\lceil`<br>$~~~~~$`\rceil` |$\uparrow$ `\uparrow`
|$[~]$ `[ ]` |$\lbrack~\rbrack$ `\lbrack`<br>$~~~~$`\rbrack`|$⌊~⌋$ `⌊ ⌋`|$\lfloor~\rfloor$ `\lfloor`<br>$~~~~~$`\rfloor` |$\downarrow$ `\downarrow`
|$\{ \}$ `\{ \}`|$\lbrace \rbrace$ `\lbrace`<br>$~~~~$`\rbrace`|$⎰⎱$ `⎰⎱` |$\lmoustache \rmoustache$ `\lmoustache`<br>$~~~~$`\rmoustache`|$\updownarrow$ `\updownarrow`
|$⟨~⟩$ `⟨ ⟩` |$\langle~\rangle$ `\langle`<br>$~~~~$`\rangle`|$⟮~⟯$ `⟮ ⟯`|$\lgroup~\rgroup$ `\lgroup`<br>$~~~~~$`\rgroup` |$\Uparrow$ `\Uparrow`
|$\vert$ <code>&#124;</code> |$\vert$ `\vert` |$┌ ┐$ `┌ ┐`|$\ulcorner \urcorner$ `\ulcorner`<br>$~~~~$`\urcorner` |$\Downarrow$ `\Downarrow`
|$\Vert$ <code>&#92;&#124;</code> |$\Vert$ `\Vert` |$└ ┘$ `└ ┘`|$\llcorner \lrcorner$ `\llcorner`<br>$~~~~$`\lrcorner` |$\Updownarrow$ `\Updownarrow`
|$\lvert~\rvert$ `\lvert`<br>$~~~~$`\rvert`|$\lVert~\rVert$ `\lVert`<br>$~~~~~$`\rVert` |`\left.`| `\right.` |$\backslash$ `\backslash`
|$\lang~\rang$ `\lang`<br>$~~~~$`\rang`
|$\lang~\rang$ `\lang`<br>$~~~~$`\rang`|$\lt~\gt$ `\lt \gt`|
**Delimiter Sizing**

View File

@@ -245,12 +245,12 @@ const makeStackedDelim = function(
top = "\u23a4";
repeat = bottom = "\u23a5";
font = "Size4-Regular";
} else if (delim === "(") {
} else if (delim === "(" || delim === "\\lparen") {
top = "\u239b";
repeat = "\u239c";
bottom = "\u239d";
font = "Size4-Regular";
} else if (delim === ")") {
} else if (delim === ")" || delim === "\\rparen") {
top = "\u239e";
repeat = "\u239f";
bottom = "\u23a0";
@@ -489,7 +489,8 @@ const makeSqrtImage = function(
// There are three kinds of delimiters, delimiters that stack when they become
// too large
const stackLargeDelimiters = [
"(", ")", "[", "\\lbrack", "]", "\\rbrack",
"(", "\\lparen", ")", "\\rparen",
"[", "\\lbrack", "]", "\\rbrack",
"\\{", "\\lbrace", "\\}", "\\rbrace",
"\\lfloor", "\\rfloor", "\u230a", "\u230b",
"\\lceil", "\\rceil", "\u2308", "\u2309",

View File

@@ -35,7 +35,8 @@ const delimiterSizes = {
};
const delimiters = [
"(", ")", "[", "\\lbrack", "]", "\\rbrack",
"(", "\\lparen", ")", "\\rparen",
"[", "\\lbrack", "]", "\\rbrack",
"\\{", "\\lbrace", "\\}", "\\rbrace",
"\\lfloor", "\\rfloor", "\u230a", "\u230b",
"\\lceil", "\\rceil", "\u2308", "\u2309",

View File

@@ -625,6 +625,8 @@ defineSymbol(math, main, open, "[", "\\lbrack");
defineSymbol(text, main, textord, "[", "\\lbrack");
defineSymbol(math, main, close, "]", "\\rbrack");
defineSymbol(text, main, textord, "]", "\\rbrack");
defineSymbol(math, main, open, "(", "\\lparen");
defineSymbol(math, main, close, ")", "\\rparen");
defineSymbol(text, main, textord, "<", "\\textless"); // in T1 fontenc
defineSymbol(text, main, textord, ">", "\\textgreater"); // in T1 fontenc
defineSymbol(math, main, open, "\u230a", "\\lfloor", true);

View File

@@ -1198,6 +1198,7 @@ describe("left/right builder", () => {
const cases = [
[r`\left\langle \right\rangle`, r`\left< \right>`],
[r`\left\langle \right\rangle`, '\\left\u27e8 \\right\u27e9'],
[r`\left\lparen \right\rparen`, r`\left( \right)`],
];
for (const [actual, expected] of cases) {