diff --git a/src/functions/utils/assembleSupSub.js b/src/functions/utils/assembleSupSub.js index ccd4d381..a8679270 100644 --- a/src/functions/utils/assembleSupSub.js +++ b/src/functions/utils/assembleSupSub.js @@ -1,6 +1,7 @@ // @flow import buildCommon from "../../buildCommon"; import * as html from "../../buildHTML"; +import utils from "../../utils"; import type {StyleInterface} from "../../Style"; import type Options from "../../Options"; import type {DomSpan, SymbolNode} from "../../domTree"; @@ -18,6 +19,7 @@ export const assembleSupSub = ( baseShift: number, ): DomSpan => { base = buildCommon.makeSpan([], [base]); + const subIsSingleCharacter = subGroup && utils.isCharacterBox(subGroup); let sub; let sup; // We manually have to handle the superscripts and subscripts. This, @@ -105,6 +107,13 @@ export const assembleSupSub = ( return base; } - return buildCommon.makeSpan( - ["mop", "op-limits"], [finalGroup], options); + const parts = [finalGroup]; + if (sub && slant !== 0 && !subIsSingleCharacter) { + // A negative margin-left was applied to the lower limit. + // Avoid an overlap by placing a spacer on the left on the group. + const spacer = buildCommon.makeSpan(["mspace"], [], options); + spacer.style.marginRight = `${slant}em`; + parts.unshift(spacer); + } + return buildCommon.makeSpan(["mop", "op-limits"], parts, options); }; diff --git a/test/screenshotter/images/Integrands-chrome.png b/test/screenshotter/images/Integrands-chrome.png index 3aa5ed39..e61b38f9 100644 Binary files a/test/screenshotter/images/Integrands-chrome.png and b/test/screenshotter/images/Integrands-chrome.png differ diff --git a/test/screenshotter/images/Integrands-firefox.png b/test/screenshotter/images/Integrands-firefox.png index 4c8f6994..27f24bb3 100644 Binary files a/test/screenshotter/images/Integrands-firefox.png and b/test/screenshotter/images/Integrands-firefox.png differ diff --git a/test/screenshotter/images/Integrands-safari.png b/test/screenshotter/images/Integrands-safari.png index ab5673f2..5b013fe1 100644 Binary files a/test/screenshotter/images/Integrands-safari.png and b/test/screenshotter/images/Integrands-safari.png differ diff --git a/test/screenshotter/ss_data.yaml b/test/screenshotter/ss_data.yaml index f0885586..761c09c4 100644 --- a/test/screenshotter/ss_data.yaml +++ b/test/screenshotter/ss_data.yaml @@ -184,7 +184,8 @@ Integrands: | \begin{array}{l} \displaystyle \int + \oint + \iint + \oiint_i^n \\[0.6em] \displaystyle \iiint + \oiiint + \textstyle \int + \oint_i^n \\[0.6em] - \iint + \oiint + \iiint + \oiiint + \iint + \oiint + \iiint + \oiiint \\[0.6em] + \int\limits^x_{y + 4 - a} \int\limits^x_{y + 4 - a} \end{array} KaTeX: tex: \KaTeX, \large \KaTeX