mirror of
https://github.com/Smaug123/KaTeX
synced 2025-10-08 20:48:41 +00:00
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:
@@ -587,6 +587,7 @@ table td {
|
|||||||
|\lor|$\lor$||
|
|\lor|$\lor$||
|
||||||
|\lower|<span style="color:firebrick;">Not supported</span>||
|
|\lower|<span style="color:firebrick;">Not supported</span>||
|
||||||
|\lozenge|$\lozenge$||
|
|\lozenge|$\lozenge$||
|
||||||
|
|\lparen|$\lparen$||
|
||||||
|\Lrarr|$\Lrarr$||
|
|\Lrarr|$\Lrarr$||
|
||||||
|\lrArr|$\lrArr$||
|
|\lrArr|$\lrArr$||
|
||||||
|\lrarr|$\lrarr$||
|
|\lrarr|$\lrarr$||
|
||||||
@@ -864,6 +865,7 @@ table td {
|
|||||||
|\rmoustache|$\rmoustache$||
|
|\rmoustache|$\rmoustache$||
|
||||||
|\root|<span style="color:firebrick;">Not supported</span>||
|
|\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)|
|
|\rotatebox|<span style="color:firebrick;">Not supported</span>|[Issue #681](https://github.com/Khan/KaTeX/issues/681)|
|
||||||
|
|\rparen|$\rparen$||
|
||||||
|\rq|$\rq$||
|
|\rq|$\rq$||
|
||||||
|\Rrightarrow|$\Rrightarrow$||
|
|\Rrightarrow|$\Rrightarrow$||
|
||||||
|\Rsh|$\Rsh$||
|
|\Rsh|$\Rsh$||
|
||||||
|
@@ -53,14 +53,14 @@ See also [letters](#letters)
|
|||||||
|
|
||||||
||||||
|
||||||
|
||||||
|:-----------------------------------|:---------------------------------------|:----------|:-------------------------------------------------------|:-----
|
|:-----------------------------------|:---------------------------------------|:----------|:-------------------------------------------------------|:-----
|
||||||
|$( )$ `( )` |$\lt~\gt$ `\lt \gt` |$⌈~⌉$ `⌈ ⌉`|$\lceil~\rceil$ `\lceil`<br>$~~~~~$`\rceil` |$\uparrow$ `\uparrow`
|
|$(~)$ `( )` |$\lparen~\rparen$ `\lparen`<br>$~~~~$`\rparen`|$⌈~⌉$ `⌈ ⌉`|$\lceil~\rceil$ `\lceil`<br>$~~~~~$`\rceil` |$\uparrow$ `\uparrow`
|
||||||
|$[ ]$ `[ ]` |$\lbrack~\rbrack$ `\lbrack`<br>$~~~~$`\rbrack`|$⌊~⌋$ `⌊ ⌋`|$\lfloor~\rfloor$ `\lfloor`<br>$~~~~~$`\rfloor` |$\downarrow$ `\downarrow`
|
|$[~]$ `[ ]` |$\lbrack~\rbrack$ `\lbrack`<br>$~~~~$`\rbrack`|$⌊~⌋$ `⌊ ⌋`|$\lfloor~\rfloor$ `\lfloor`<br>$~~~~~$`\rfloor` |$\downarrow$ `\downarrow`
|
||||||
|$\{ \}$ `\{ \}`|$\lbrace \rbrace$ `\lbrace`<br>$~~~~$`\rbrace`|$⎰⎱$ `⎰⎱` |$\lmoustache \rmoustache$ `\lmoustache`<br>$~~~~$`\rmoustache`|$\updownarrow$ `\updownarrow`
|
|$\{ \}$ `\{ \}`|$\lbrace \rbrace$ `\lbrace`<br>$~~~~$`\rbrace`|$⎰⎱$ `⎰⎱` |$\lmoustache \rmoustache$ `\lmoustache`<br>$~~~~$`\rmoustache`|$\updownarrow$ `\updownarrow`
|
||||||
|$⟨~⟩$ `⟨ ⟩` |$\langle~\rangle$ `\langle`<br>$~~~~$`\rangle`|$⟮~⟯$ `⟮ ⟯`|$\lgroup~\rgroup$ `\lgroup`<br>$~~~~~$`\rgroup` |$\Uparrow$ `\Uparrow`
|
|$⟨~⟩$ `⟨ ⟩` |$\langle~\rangle$ `\langle`<br>$~~~~$`\rangle`|$⟮~⟯$ `⟮ ⟯`|$\lgroup~\rgroup$ `\lgroup`<br>$~~~~~$`\rgroup` |$\Uparrow$ `\Uparrow`
|
||||||
|$\vert$ <code>|</code> |$\vert$ `\vert` |$┌ ┐$ `┌ ┐`|$\ulcorner \urcorner$ `\ulcorner`<br>$~~~~$`\urcorner` |$\Downarrow$ `\Downarrow`
|
|$\vert$ <code>|</code> |$\vert$ `\vert` |$┌ ┐$ `┌ ┐`|$\ulcorner \urcorner$ `\ulcorner`<br>$~~~~$`\urcorner` |$\Downarrow$ `\Downarrow`
|
||||||
|$\Vert$ <code>\|</code> |$\Vert$ `\Vert` |$└ ┘$ `└ ┘`|$\llcorner \lrcorner$ `\llcorner`<br>$~~~~$`\lrcorner` |$\Updownarrow$ `\Updownarrow`
|
|$\Vert$ <code>\|</code> |$\Vert$ `\Vert` |$└ ┘$ `└ ┘`|$\llcorner \lrcorner$ `\llcorner`<br>$~~~~$`\lrcorner` |$\Updownarrow$ `\Updownarrow`
|
||||||
|$\lvert~\rvert$ `\lvert`<br>$~~~~$`\rvert`|$\lVert~\rVert$ `\lVert`<br>$~~~~~$`\rVert` |`\left.`| `\right.` |$\backslash$ `\backslash`
|
|$\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**
|
**Delimiter Sizing**
|
||||||
|
|
||||||
|
@@ -245,12 +245,12 @@ const makeStackedDelim = function(
|
|||||||
top = "\u23a4";
|
top = "\u23a4";
|
||||||
repeat = bottom = "\u23a5";
|
repeat = bottom = "\u23a5";
|
||||||
font = "Size4-Regular";
|
font = "Size4-Regular";
|
||||||
} else if (delim === "(") {
|
} else if (delim === "(" || delim === "\\lparen") {
|
||||||
top = "\u239b";
|
top = "\u239b";
|
||||||
repeat = "\u239c";
|
repeat = "\u239c";
|
||||||
bottom = "\u239d";
|
bottom = "\u239d";
|
||||||
font = "Size4-Regular";
|
font = "Size4-Regular";
|
||||||
} else if (delim === ")") {
|
} else if (delim === ")" || delim === "\\rparen") {
|
||||||
top = "\u239e";
|
top = "\u239e";
|
||||||
repeat = "\u239f";
|
repeat = "\u239f";
|
||||||
bottom = "\u23a0";
|
bottom = "\u23a0";
|
||||||
@@ -489,7 +489,8 @@ const makeSqrtImage = function(
|
|||||||
// There are three kinds of delimiters, delimiters that stack when they become
|
// There are three kinds of delimiters, delimiters that stack when they become
|
||||||
// too large
|
// too large
|
||||||
const stackLargeDelimiters = [
|
const stackLargeDelimiters = [
|
||||||
"(", ")", "[", "\\lbrack", "]", "\\rbrack",
|
"(", "\\lparen", ")", "\\rparen",
|
||||||
|
"[", "\\lbrack", "]", "\\rbrack",
|
||||||
"\\{", "\\lbrace", "\\}", "\\rbrace",
|
"\\{", "\\lbrace", "\\}", "\\rbrace",
|
||||||
"\\lfloor", "\\rfloor", "\u230a", "\u230b",
|
"\\lfloor", "\\rfloor", "\u230a", "\u230b",
|
||||||
"\\lceil", "\\rceil", "\u2308", "\u2309",
|
"\\lceil", "\\rceil", "\u2308", "\u2309",
|
||||||
|
@@ -35,7 +35,8 @@ const delimiterSizes = {
|
|||||||
};
|
};
|
||||||
|
|
||||||
const delimiters = [
|
const delimiters = [
|
||||||
"(", ")", "[", "\\lbrack", "]", "\\rbrack",
|
"(", "\\lparen", ")", "\\rparen",
|
||||||
|
"[", "\\lbrack", "]", "\\rbrack",
|
||||||
"\\{", "\\lbrace", "\\}", "\\rbrace",
|
"\\{", "\\lbrace", "\\}", "\\rbrace",
|
||||||
"\\lfloor", "\\rfloor", "\u230a", "\u230b",
|
"\\lfloor", "\\rfloor", "\u230a", "\u230b",
|
||||||
"\\lceil", "\\rceil", "\u2308", "\u2309",
|
"\\lceil", "\\rceil", "\u2308", "\u2309",
|
||||||
|
@@ -625,6 +625,8 @@ defineSymbol(math, main, open, "[", "\\lbrack");
|
|||||||
defineSymbol(text, main, textord, "[", "\\lbrack");
|
defineSymbol(text, main, textord, "[", "\\lbrack");
|
||||||
defineSymbol(math, main, close, "]", "\\rbrack");
|
defineSymbol(math, main, close, "]", "\\rbrack");
|
||||||
defineSymbol(text, main, textord, "]", "\\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, "<", "\\textless"); // in T1 fontenc
|
||||||
defineSymbol(text, main, textord, ">", "\\textgreater"); // in T1 fontenc
|
defineSymbol(text, main, textord, ">", "\\textgreater"); // in T1 fontenc
|
||||||
defineSymbol(math, main, open, "\u230a", "\\lfloor", true);
|
defineSymbol(math, main, open, "\u230a", "\\lfloor", true);
|
||||||
|
@@ -1198,6 +1198,7 @@ describe("left/right builder", () => {
|
|||||||
const cases = [
|
const cases = [
|
||||||
[r`\left\langle \right\rangle`, r`\left< \right>`],
|
[r`\left\langle \right\rangle`, r`\left< \right>`],
|
||||||
[r`\left\langle \right\rangle`, '\\left\u27e8 \\right\u27e9'],
|
[r`\left\langle \right\rangle`, '\\left\u27e8 \\right\u27e9'],
|
||||||
|
[r`\left\lparen \right\rparen`, r`\left( \right)`],
|
||||||
];
|
];
|
||||||
|
|
||||||
for (const [actual, expected] of cases) {
|
for (const [actual, expected] of cases) {
|
||||||
|
Reference in New Issue
Block a user