Extra padding/spaces around fences in some cases
Created by: jmitsdarfer
Issue Summary
I have noticed some extra padding (or spaces) around fences in some cases (though not all) and am wondering what the reason behind this may be. It’d be nice to decrease this padding if possible, though it’s also not extremely critical. I’m basically just wondering if this is a bug or expected behavior and if there is any decent way to adjust it or if it’s really better off just left alone. Compared to the equations in our PDFs (included below just for comparison purposes), things are looking all in all just more "spacey" in the MathJax.
Example 1:
Original tagging (space seems a little large to the left of the left parens):
MathML:
<m:msub><m:mrow><m:mi mathvariant="script">H</m:mi></m:mrow><m:mrow>
<m:msub><m:mrow><m:mi mathvariant="bold">Γ</m:mi></m:mrow><m:mrow>
<m:msub><m:mrow><m:mi mathvariant="bold">c</m:mi></m:mrow><m:mrow><m:mi
>j</m:mi></m:mrow></m:msub></m:mrow></m:msub></m:mrow></m:msub><m:mrow>
<m:mo stretchy="false">(</m:mo><m:mi mathvariant="bold">r</m:mi><m:mo
>,</m:mo><m:mi mathvariant="bold">p</m:mi><m:mo stretchy="false">)</m:mo>
</m:mrow><m:mo>=</m:mo><m:mfrac><m:mrow><m:msup><m:mrow><m:mi
mathvariant="bold">p</m:mi></m:mrow><m:mrow><m:mn>2</m:mn></m:mrow>
</m:msup></m:mrow><m:mrow><m:mn>2</m:mn><m:mi>m</m:mi></m:mrow>
</m:mfrac><m:mo>+</m:mo><m:msub><m:mrow><m:mi>U</m:mi></m:mrow><m:mrow>
<m:msub><m:mrow><m:mi mathvariant="bold">c</m:mi></m:mrow><m:mrow><m:mi
>j</m:mi></m:mrow></m:msub></m:mrow></m:msub><m:mrow><m:mo
stretchy="false">(</m:mo><m:mi mathvariant="bold">r</m:mi><m:mo
stretchy="false">)</m:mo></m:mrow><m:mo linebreak="goodbreak"
lspace="0em" rspace="1em">⁣</m:mo><m:mo>∴</m:mo><m:mo
linebreak="goodbreak" lspace="0em" rspace="1em">⁣</m:mo><m:mi
>j</m:mi><m:mo>=</m:mo><m:mn>1</m:mn><m:mo>,</m:mo><m:mn>2</m:mn><m:mo
>,</m:mo><m:mn>3</m:mn>
If the mrows around the fenced expressions are removed just as a test, the extra padding is no longer present:
<m:msub><m:mrow><m:mi mathvariant="script">H</m:mi></m:mrow><m:mrow>
<m:msub><m:mrow><m:mi mathvariant="bold">Γ</m:mi></m:mrow><m:mrow>
<m:msub><m:mrow><m:mi mathvariant="bold">c</m:mi></m:mrow><m:mrow><m:mi
>j</m:mi></m:mrow></m:msub></m:mrow></m:msub></m:mrow></m:msub><m:mo
stretchy="false">(</m:mo><m:mi mathvariant="bold">r</m:mi><m:mo>,</m:mo
><m:mi mathvariant="bold">p</m:mi><m:mo stretchy="false">)</m:mo><m:mo
>=</m:mo><m:mfrac><m:mrow><m:msup><m:mrow><m:mi mathvariant="bold"
>p</m:mi></m:mrow><m:mrow><m:mn>2</m:mn></m:mrow></m:msup></m:mrow>
<m:mrow><m:mn>2</m:mn><m:mi>m</m:mi></m:mrow></m:mfrac><m:mo>+</m:mo
><m:msub><m:mrow><m:mi>U</m:mi></m:mrow><m:mrow><m:msub><m:mrow><m:mi
mathvariant="bold">c</m:mi></m:mrow><m:mrow><m:mi>j</m:mi></m:mrow>
</m:msub></m:mrow></m:msub><m:mo stretchy="false">(</m:mo><m:mi
mathvariant="bold">r</m:mi><m:mo stretchy="false">)</m:mo><m:mo
linebreak="goodbreak" lspace="0em" rspace="1em">⁣</m:mo><m:mo
>∴</m:mo><m:mo linebreak="goodbreak" lspace="0em" rspace="1em"
>⁣</m:mo><m:mi>j</m:mi><m:mo>=</m:mo><m:mn>1</m:mn><m:mo>,</m:mo
><m:mn>2</m:mn><m:mo>,</m:mo><m:mn>3</m:mn>
Example 2:
Original tagging (again, padding around the parens seems a little too large):
MathML:
<m:mi mathvariant="normal">Ω</m:mi><m:mrow><m:mo stretchy="false"
>(</m:mo><m:mi>E</m:mi><m:mo stretchy="false">)</m:mo></m:mrow><m:mo
>=</m:mo><m:munderover><m:mrow><m:mo form="prefix">∑</m:mo>
</m:mrow><m:mrow><m:mi>j</m:mi><m:mo>=</m:mo><m:mn>1</m:mn></m:mrow>
<m:mrow><m:msub><m:mrow><m:mi>N</m:mi></m:mrow><m:mrow><m:mi>c</m:mi>
</m:mrow></m:msub></m:mrow></m:munderover><m:msub><m:mrow><m:mi
mathvariant="normal">Ω</m:mi></m:mrow><m:mrow><m:mi>e</m:mi>
</m:mrow></m:msub><m:mrow><m:mo stretchy="false">(</m:mo><m:msub>
<m:mrow><m:mi mathvariant="bold">c</m:mi></m:mrow><m:mrow><m:mi>j</m:mi>
</m:mrow></m:msub><m:mo stretchy="false">)</m:mo></m:mrow><m:msub>
<m:mrow><m:mi mathvariant="normal">Ω</m:mi></m:mrow><m:mrow><m:mi
>n</m:mi></m:mrow></m:msub><m:mrow><m:mo stretchy="false">(</m:mo>
<m:msub><m:mrow><m:mi mathvariant="bold">c</m:mi></m:mrow><m:mrow><m:mi
>j</m:mi></m:mrow></m:msub><m:mo stretchy="false">)</m:mo></m:mrow
><m:msub><m:mrow><m:mi mathvariant="normal">Ω</m:mi></m:mrow>
<m:mrow><m:msub><m:mrow><m:mi mathvariant="bold">c</m:mi></m:mrow>
<m:mrow><m:mi>j</m:mi></m:mrow></m:msub></m:mrow></m:msub><m:mrow><m:mo
stretchy="false">(</m:mo><m:mi>E</m:mi><m:mo stretchy="false">)</m:mo>
</m:mrow>
If the mrows around the fenced expressions are removed just as a test, the extra padding is no longer present:
<m:mi mathvariant="normal">Ω</m:mi><m:mo stretchy="false">(</m:mo
><m:mi>E</m:mi><m:mo stretchy="false">)</m:mo><m:mo>=</m:mo><m:munderover>
<m:mrow><m:mo form="prefix">∑</m:mo></m:mrow><m:mrow><m:mi
>j</m:mi><m:mo>=</m:mo><m:mn>1</m:mn></m:mrow><m:mrow><m:msub><m:mrow>
<m:mi>N</m:mi></m:mrow><m:mrow><m:mi>c</m:mi></m:mrow></m:msub></m:mrow>
</m:munderover><m:msub><m:mrow><m:mi mathvariant="normal">Ω</m:mi>
</m:mrow><m:mrow><m:mi>e</m:mi></m:mrow></m:msub><m:mo stretchy="false"
>(</m:mo><m:msub><m:mrow><m:mi mathvariant="bold">c</m:mi></m:mrow>
<m:mrow><m:mi>j</m:mi></m:mrow></m:msub><m:mo stretchy="false">)</m:mo
><m:msub><m:mrow><m:mi mathvariant="normal">Ω</m:mi></m:mrow>
<m:mrow><m:mi>n</m:mi></m:mrow></m:msub><m:mo stretchy="false">(</m:mo
><m:msub><m:mrow><m:mi mathvariant="bold">c</m:mi></m:mrow><m:mrow>
<m:mi>j</m:mi></m:mrow></m:msub><m:mo stretchy="false">)</m:mo><m:msub>
<m:mrow><m:mi mathvariant="normal">Ω</m:mi></m:mrow><m:mrow>
<m:msub><m:mrow><m:mi mathvariant="bold">c</m:mi></m:mrow><m:mrow><m:mi
>j</m:mi></m:mrow></m:msub></m:mrow></m:msub><m:mo stretchy="false"
>(</m:mo><m:mi>E</m:mi><m:mo stretchy="false">)</m:mo>
Example 3 (space between right square bracket and superscript -1 is a bit large):
MathML:
<m:msubsup><m:mrow><m:mi>u</m:mi></m:mrow><m:mrow><m:mi>t</m:mi>
</m:mrow><m:mrow><m:mo>*</m:mo></m:mrow></m:msubsup><m:mo>=</m:mo
><m:msup><m:mrow><m:mo stretchy="true">[</m:mo><m:mfrac><m:mrow><m:mn
>18</m:mn></m:mrow><m:mrow><m:msup><m:mrow><m:mo stretchy="false"
>(</m:mo><m:msubsup><m:mrow><m:mi>d</m:mi></m:mrow><m:mrow><m:mi>c</m:mi>
</m:mrow><m:mrow><m:mo>*</m:mo></m:mrow></m:msubsup><m:mo
stretchy="false">)</m:mo></m:mrow><m:mrow><m:mn>2</m:mn></m:mrow>
</m:msup></m:mrow></m:mfrac><m:mo>+</m:mo><m:mfrac><m:mrow><m:mn>2.335</m:mn>
<m:mo>−</m:mo><m:mn>1.744</m:mn><m:mi mathvariant="normal"
>φ</m:mi></m:mrow><m:mrow><m:msqrt><m:mrow><m:msubsup><m:mrow>
<m:mi>d</m:mi></m:mrow><m:mrow><m:mi>c</m:mi></m:mrow><m:mrow><m:mo
>*</m:mo></m:mrow></m:msubsup></m:mrow></m:msqrt></m:mrow></m:mfrac>
<m:mo stretchy="true">]</m:mo></m:mrow><m:mrow><m:mo>−</m:mo>
<m:mn>1</m:mn></m:mrow></m:msup>
Example 4 (noticed the difference in padding between right parens and superscript 2 and right square bracket and superscript 2):
MathML:
<m:msubsup><m:mrow><m:mi>G</m:mi></m:mrow><m:mrow><m:mi>m</m:mi>
</m:mrow><m:mrow><m:mi>Q</m:mi><m:mo>,</m:mo><m:mi>L</m:mi></m:mrow>
</m:msubsup><m:mrow><m:mo stretchy="false">(</m:mo><m:mi
mathvariant="normal">τ</m:mi><m:mo stretchy="false">)</m:mo>
</m:mrow><m:mo>=</m:mo><m:msup><m:mrow><m:mo stretchy="false">(</m:mo>
<m:msubsup><m:mrow><m:mi>V</m:mi></m:mrow><m:mrow><m:mi>z</m:mi><m:mi
>z</m:mi></m:mrow><m:mrow><m:mi>B</m:mi></m:mrow></m:msubsup><m:mo
stretchy="false">)</m:mo></m:mrow><m:mrow><m:mn>2</m:mn></m:mrow>
</m:msup><m:msup><m:mrow><m:mo stretchy="true">[</m:mo><m:mfrac><m:mrow>
<m:mn>1</m:mn></m:mrow><m:mrow><m:msub><m:mrow><m:mi>N</m:mi></m:mrow>
<m:mrow><m:mi>i</m:mi></m:mrow></m:msub></m:mrow></m:mfrac>
<m:munderover><m:mrow><m:mo>∏</m:mo></m:mrow><m:mrow><m:mi
>i</m:mi><m:mo>=</m:mo><m:mn>1</m:mn></m:mrow><m:mrow><m:msub><m:mrow>
<m:mi>N</m:mi></m:mrow><m:mrow><m:mi mathvariant="italic">i</m:mi>
</m:mrow></m:msub></m:mrow></m:munderover><m:mrow><m:munderover><m:mrow>
<m:mo>∏</m:mo></m:mrow><m:mrow><m:mi>j</m:mi><m:mo>=</m:mo><m:mn
>1</m:mn></m:mrow><m:mrow><m:msub><m:mrow><m:mi>N</m:mi></m:mrow>
<m:mrow><m:mi mathvariant="italic">p</m:mi></m:mrow></m:msub></m:mrow>
</m:munderover><m:mrow><m:munderover><m:mrow><m:mo>∏</m:mo>
</m:mrow><m:mrow><m:mi>s</m:mi><m:mo>=</m:mo><m:mn>1</m:mn></m:mrow>
<m:mrow><m:msub><m:mrow><m:mi>N</m:mi></m:mrow><m:mrow><m:mi
mathvariant="italic">p</m:mi></m:mrow></m:msub></m:mrow></m:munderover>
<m:mrow><m:munderover><m:mrow><m:mo>∏</m:mo></m:mrow><m:mrow>
<m:mi>l</m:mi><m:mo>=</m:mo><m:mo>−</m:mo><m:mn>2</m:mn></m:mrow>
<m:mrow><m:mn>2</m:mn></m:mrow></m:munderover><m:mtable>
<m:mtr><m:mtd><m:mi>P</m:mi><m:mrow><m:mo stretchy="false">(</m:mo>
<m:mi>i</m:mi><m:mo>∈</m:mo><m:mi>j</m:mi><m:mrow><m:mo
stretchy="false">|</m:mo><m:mn>0</m:mn></m:mrow><m:mo stretchy="false"
>)</m:mo></m:mrow></m:mtd></m:mtr>
<m:mtr><m:mtd><m:mi>P</m:mi><m:mrow><m:mo stretchy="false">(</m:mo>
<m:mi>i</m:mi><m:mo>∈</m:mo><m:mi>s</m:mi><m:mrow><m:mo
stretchy="false">|</m:mo><m:mi mathvariant="normal">τ</m:mi>
</m:mrow><m:mo stretchy="false">)</m:mo></m:mrow></m:mtd></m:mtr>
<m:mtr><m:mtd><m:msubsup><m:mrow><m:mi>D</m:mi></m:mrow><m:mrow><m:mi
>l</m:mi><m:mi>m</m:mi></m:mrow><m:mrow><m:mi mathvariant="italic"
>L</m:mi><m:msub><m:mrow><m:mi mathvariant="italic">P</m:mi></m:mrow>
<m:mrow><m:mi>j</m:mi></m:mrow></m:msub></m:mrow></m:msubsup></m:mtd>
</m:mtr>
</m:mtable></m:mrow></m:mrow></m:mrow><m:mo>−</m:mo><m:msup>
<m:mrow><m:mo stretchy="true">(</m:mo><m:mfrac><m:mrow><m:mn>1</m:mn>
</m:mrow><m:mrow><m:msub><m:mrow><m:mi>N</m:mi></m:mrow><m:mrow><m:mi
>i</m:mi></m:mrow></m:msub></m:mrow></m:mfrac><m:munderover><m:mrow>
<m:mo>∏</m:mo></m:mrow><m:mrow><m:mi>i</m:mi><m:mo>=</m:mo><m:mn
>1</m:mn></m:mrow><m:mrow><m:msub><m:mrow><m:mi>N</m:mi></m:mrow>
<m:mrow><m:mi>i</m:mi></m:mrow></m:msub></m:mrow></m:munderover><m:mrow>
<m:munderover><m:mrow><m:mo>∏</m:mo></m:mrow><m:mrow><m:mi
>j</m:mi><m:mo>=</m:mo><m:mn>1</m:mn></m:mrow><m:mrow><m:msub><m:mrow>
<m:mi>N</m:mi></m:mrow><m:mrow><m:mi mathvariant="italic">p</m:mi>
</m:mrow></m:msub></m:mrow></m:munderover><m:mrow><m:munderover><m:mrow>
<m:mo>∏</m:mo></m:mrow><m:mrow><m:mi>l</m:mi><m:mo>=</m:mo><m:mo
>−</m:mo><m:mn>2</m:mn></m:mrow><m:mrow><m:mn>2</m:mn></m:mrow>
</m:munderover><m:mi>P</m:mi><m:mrow><m:mo stretchy="false">(</m:mo>
<m:mi>i</m:mi><m:mo>∈</m:mo><m:mi>j</m:mi><m:mrow><m:mo
stretchy="false">|</m:mo><m:mn>0</m:mn></m:mrow><m:mo stretchy="false"
>)</m:mo></m:mrow><m:msubsup><m:mrow><m:mi>D</m:mi></m:mrow><m:mrow>
<m:mi>l</m:mi><m:mi>m</m:mi></m:mrow><m:mrow><m:mi mathvariant="italic"
>L</m:mi><m:msub><m:mrow><m:mi mathvariant="italic">P</m:mi></m:mrow>
<m:mrow><m:mi>j</m:mi></m:mrow></m:msub></m:mrow></m:msubsup></m:mrow>
</m:mrow><m:mo stretchy="true">)</m:mo></m:mrow><m:mrow><m:mn>2</m:mn>
</m:mrow></m:msup><m:mo stretchy="true">]</m:mo></m:mrow><m:mrow><m:mn
>2</m:mn></m:mrow></m:msup>
Example 5:
MathML:
<m:msubsup><m:mrow><m:mi>U</m:mi></m:mrow><m:mrow><m:mi>μ</m:mi>
<m:mi>ν</m:mi></m:mrow><m:mrow><m:mo stretchy="false">(</m:mo>
<m:mn>2</m:mn><m:mo stretchy="false">)</m:mo></m:mrow></m:msubsup
><m:mrow><m:mo stretchy="false">(</m:mo><m:mrow><m:mo stretchy="false"
>|</m:mo><m:msub><m:mrow><m:mi mathvariant="bold-script">R</m:mi>
</m:mrow><m:mrow><m:mi>μ</m:mi><m:mi>ν</m:mi></m:mrow>
</m:msub><m:mo stretchy="false">|</m:mo></m:mrow><m:mo stretchy="false"
>)</m:mo></m:mrow><m:mo>=</m:mo><m:mn>4</m:mn><m:mi>ε</m:mi
><m:mrow><m:mo stretchy="true">[</m:mo><m:msup><m:mrow><m:mo
stretchy="true">(</m:mo><m:mfrac><m:mrow><m:mi>σ</m:mi></m:mrow>
<m:mrow><m:mo stretchy="false">|</m:mo><m:msub><m:mrow><m:mi
mathvariant="bold-script">R</m:mi></m:mrow><m:mrow><m:mi>μ</m:mi>
<m:mi>ν</m:mi></m:mrow></m:msub><m:mo stretchy="false">|</m:mo>
</m:mrow></m:mfrac><m:mo stretchy="true">)</m:mo></m:mrow><m:mrow><m:mn
>12</m:mn></m:mrow></m:msup><m:mo>−</m:mo><m:msup><m:mrow><m:mo
stretchy="true">(</m:mo><m:mfrac><m:mrow><m:mi>σ</m:mi></m:mrow>
<m:mrow><m:mo stretchy="false">|</m:mo><m:msub><m:mrow><m:mi
mathvariant="bold-script">R</m:mi></m:mrow><m:mrow><m:mi>μ</m:mi>
<m:mi>ν</m:mi></m:mrow></m:msub><m:mo stretchy="false">|</m:mo>
</m:mrow></m:mfrac><m:mo stretchy="true">)</m:mo></m:mrow><m:mrow><m:mn
>6</m:mn></m:mrow></m:msup><m:mo stretchy="true">]</m:mo></m:mrow>
Technical details:
MathJax Version: master - latest commit: MathJax.js v2.7.5 Client OS: Windows Browser: Chrome Version 91.0.4472.114 (Official Build) (64-bit) Renderer: HTML-CSS