From 965b8a6164ee54212bf382108f256c6920eb7a70 Mon Sep 17 00:00:00 2001 From: Ben Alpert Date: Sun, 10 Apr 2016 20:32:24 -0700 Subject: [PATCH] Add \underline support (#456) ![image](https://cloud.githubusercontent.com/assets/6820/14412284/e63218b6-ff13-11e5-912c-fc6e30928b93.png) Fixes #209. --- src/buildHTML.js | 27 +++++++++++++++ src/buildMathML.js | 14 ++++++++ src/functions.js | 11 ++++++ static/katex.less | 32 ++++++++---------- .../images/OverUnderline-chrome.png | Bin 0 -> 16477 bytes .../images/OverUnderline-firefox.png | Bin 0 -> 11795 bytes test/screenshotter/images/Overline-chrome.png | Bin 11709 -> 0 bytes .../screenshotter/images/Overline-firefox.png | Bin 9483 -> 0 bytes test/screenshotter/ss_data.yaml | 2 +- 9 files changed, 68 insertions(+), 18 deletions(-) create mode 100644 test/screenshotter/images/OverUnderline-chrome.png create mode 100644 test/screenshotter/images/OverUnderline-firefox.png delete mode 100644 test/screenshotter/images/Overline-chrome.png delete mode 100644 test/screenshotter/images/Overline-firefox.png diff --git a/src/buildHTML.js b/src/buildHTML.js index dbd33a3fc..42c33a6c4 100644 --- a/src/buildHTML.js +++ b/src/buildHTML.js @@ -51,6 +51,7 @@ var groupToType = { op: "mop", katex: "mord", overline: "mord", + underline: "mord", rule: "mord", leftright: "minner", sqrt: "mord", @@ -928,6 +929,32 @@ groupTypes.overline = function(group, options, prev) { return makeSpan(["overline", "mord"], [vlist], options.getColor()); }; +groupTypes.underline = function(group, options, prev) { + // Underlines are handled in the TeXbook pg 443, Rule 10. + + // Build the inner group. + var innerGroup = buildGroup(group.value.body, options); + + var ruleWidth = fontMetrics.metrics.defaultRuleThickness / + options.style.sizeMultiplier; + + // Create the line above the body + var line = makeSpan( + [options.style.reset(), Style.TEXT.cls(), "underline-line"]); + line.height = ruleWidth; + line.maxFontSize = 1.0; + + // Generate the vlist, with the appropriate kerns + var vlist = buildCommon.makeVList([ + {type: "kern", size: ruleWidth}, + {type: "elem", elem: line}, + {type: "kern", size: 3 * ruleWidth}, + {type: "elem", elem: innerGroup}, + ], "top", innerGroup.height, options); + + return makeSpan(["underline", "mord"], [vlist], options.getColor()); +}; + groupTypes.sqrt = function(group, options, prev) { // Square roots are handled in the TeXbook pg. 443, Rule 11. diff --git a/src/buildMathML.js b/src/buildMathML.js index f3c7c5e1c..7bf38e86a 100644 --- a/src/buildMathML.js +++ b/src/buildMathML.js @@ -422,6 +422,20 @@ groupTypes.overline = function(group, options) { return node; }; +groupTypes.underline = function(group, options) { + var operator = new mathMLTree.MathNode( + "mo", [new mathMLTree.TextNode("\u203e")]); + operator.setAttribute("stretchy", "true"); + + var node = new mathMLTree.MathNode( + "munder", + [buildGroup(group.value.body, options), + operator]); + node.setAttribute("accentunder", "true"); + + return node; +}; + groupTypes.rule = function(group) { // TODO(emily): Figure out if there's an actual way to draw black boxes // in MathML. diff --git a/src/functions.js b/src/functions.js index 2fa124d3b..08d8874d0 100644 --- a/src/functions.js +++ b/src/functions.js @@ -170,6 +170,17 @@ defineFunction("\\overline", { }; }); +// An underline +defineFunction("\\underline", { + numArgs: 1, +}, function(context, args) { + var body = args[0]; + return { + type: "underline", + body: body, + }; +}); + // A box of the width and height defineFunction("\\rule", { numArgs: 2, diff --git a/static/katex.less b/static/katex.less index affddcaac..b7c8f84d9 100644 --- a/static/katex.less +++ b/static/katex.less @@ -352,25 +352,23 @@ position: relative; } - .overline { + .overline .overline-line, + .underline .underline-line { + width: 100%; - .overline-line { - width: 100%; + &:before { + border-bottom-style: solid; + border-bottom-width: 1px; + content: ""; + display: block; + } - &:before { - border-bottom-style: solid; - border-bottom-width: 1px; - content: ""; - display: block; - } - - &:after { - border-bottom-style: solid; - border-bottom-width: 0.04em; - content: ""; - display: block; - margin-top: -1px; - } + &:after { + border-bottom-style: solid; + border-bottom-width: 0.04em; + content: ""; + display: block; + margin-top: -1px; } } diff --git a/test/screenshotter/images/OverUnderline-chrome.png b/test/screenshotter/images/OverUnderline-chrome.png new file mode 100644 index 0000000000000000000000000000000000000000..abefb60e3b6395943958261ea7218e8b51f710f2 GIT binary patch literal 16477 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 F{eKn1M|%JO literal 0 HcmV?d00001 diff --git a/test/screenshotter/images/Overline-chrome.png b/test/screenshotter/images/Overline-chrome.png deleted file mode 100644 index 98189238805a83c8a0e6f246c2efe315b430b70a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 11709 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 diff --git a/test/screenshotter/images/Overline-firefox.png b/test/screenshotter/images/Overline-firefox.png deleted file mode 100644 index d301a884b46e2540e03d30b09a96d6f490733740..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 9483 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 HyWIUJkPQ{X diff --git a/test/screenshotter/ss_data.yaml b/test/screenshotter/ss_data.yaml index d5e8736fa..964fc6d7c 100644 --- a/test/screenshotter/ss_data.yaml +++ b/test/screenshotter/ss_data.yaml @@ -85,7 +85,7 @@ NullDelimiterInteraction: a \bigl. + 2 \quad \left. + a \right) OpLimits: | {\sin_2^2 \lim_2^2 \int_2^2 \sum_2^2} {\displaystyle \lim_2^2 \int_2^2 \intop_2^2 \sum_2^2} -Overline: \overline{x}\overline{x}\overline{x^{x^{x^x}}} \blue{\overline{y}} +OverUnderline: x\underline{x}\underline{\underline{x}}\underline{x_{x_{x_x}}}\underline{x^{x^{x^x}}}\overline{x}\overline{x}\overline{x^{x^{x^x}}} \blue{\overline{\underline{x}}\underline{\overline{x}}} Phantom: \dfrac{1+\phantom{x^{\blue{2}}} = x}{1+x^{\blue{2}} = x} PrimeSpacing: f'+f_2'+f^{f'} RlapBug: \frac{\rlap{x}}{2}