Complex math formula gives Math Output Error

6 views
Skip to first unread message

Mark Doyle

unread,
Nov 24, 2025, 11:19:41 AM (9 days ago) Nov 24
to MathJax Users
Hi,

Presumably, Davide, you are best to answer this one! Our journal production vendor has typeset a complex display equation. There are similar equations in the article that render quite nicely, but this one produces a math output error, both on our website and on the MathJax.org test area. I am unable to figure out what going awry. Are you able to give me any insights into what the problem might be and a possible workaround to avoid it? I am wondering if the problem may have to do with the speech rendering or braille settings as  the javascript console gives:

<mjx-container class="MathJax mjx-output-error CtxtMenu_Attached_0 mjx-explorer-active" jax="CHTML" tabindex="0" ctxtmenu_counter="662" style="display: block; margin: 1em 0px; text-align: center;" aria-roledescription="math" data-semantic-locale="en" data-semantic-domain="clearspeak" data-semantic-style="default" data-semantic-domain2style="mathspeak:default,clearspeak:default" data-semantic-collapsible="collapsible" data-semantic-expandable="expandable" data-semantic-level="Level" data-semantic-speech-none="K sub 1 raised to the p p power of F equals e the p-th p-th power of K of F times open brace trace times open bracket the fraction with numerator 4 and denominator T squared f times Z times left super composed with normal Xi raised to the composed with power plus the integral from 0 to T of d tau f times left super bullet normal Xi sub tau tau close bracket plus the fraction with numerator 8 i and denominator T squared p times open bracket T f times Z times left super composed with normal Xi raised to the composed with power plus the integral from 0 to T of d sigma Z times left super composed with normal Xi sub sigma times f times left super bullet normal Xi raised to the composed with power sub sigma times Z plus the fraction with numerator 4 and denominator T squared Z times left super composed with normal Xi raised to the composed with power times f times Z times left super composed with normal Xi raised to the composed with power times Z close bracket times p close brace period" data-semantic-speech="&lt;prosody pitch=&quot;+30%&quot;&gt; &lt;mark name=&quot;0&quot;/&gt; &lt;say-as interpret-as=&quot;character&quot;&gt;K&lt;/say-as&gt; &lt;/prosody&gt; &lt;mark name=&quot;1&quot;/&gt; sub 1 &lt;break time=&quot;250ms&quot;/&gt; &lt;mark name=&quot;5&quot;/&gt; raised to the &lt;prosody rate=&quot;+25%&quot;&gt; &lt;mark name=&quot;2&quot;/&gt; &lt;say-as interpret-as=&quot;character&quot;&gt;p&lt;/say-as&gt; &lt;mark name=&quot;3&quot;/&gt; &lt;say-as interpret-as=&quot;character&quot;&gt;p&lt;/say-as&gt; &lt;/prosody&gt; &lt;break time=&quot;250ms&quot;/&gt; &lt;mark name=&quot;7&quot; kind=&quot;LAST&quot;/&gt; power &lt;break time=&quot;250ms&quot;/&gt; &lt;mark name=&quot;158&quot;/&gt; of &lt;prosody pitch=&quot;+30%&quot;&gt; &lt;mark name=&quot;9&quot;/&gt; &lt;say-as interpret-as=&quot;character&quot;&gt;F&lt;/say-as&gt; &lt;/prosody&gt; &lt;break time=&quot;250ms&quot;/&gt; &lt;mark name=&quot;11&quot;/&gt; equals &lt;mark name=&quot;12&quot;/&gt; &lt;say-as interpret-as=&quot;character&quot;&gt;e&lt;/say-as&gt; &lt;mark name=&quot;17&quot;/&gt; the &lt;prosody rate=&quot;+25%&quot;&gt; &lt;mark name=&quot;14&quot;/&gt; p-th &lt;mark name=&quot;15&quot;/&gt; p-th &lt;/prosody&gt; &lt;break time=&quot;250ms&quot;/&gt; &lt;mark name=&quot;13&quot;/&gt; power of &lt;break time=&quot;250ms&quot;/&gt; &lt;prosody pitch=&quot;+30%&quot;&gt; &lt;mark name=&quot;13&quot;/&gt; &lt;say-as interpret-as=&quot;character&quot;&gt;K&lt;/say-as&gt; &lt;/prosody&gt; &lt;mark name=&quot;159&quot;/&gt; of &lt;prosody pitch=&quot;+30%&quot;&gt; &lt;mark name=&quot;20&quot;/&gt; &lt;say-as interpret-as=&quot;character&quot;&gt;F&lt;/say-as&gt; &lt;/prosody&gt; &lt;break time=&quot;250ms&quot;/&gt; &lt;mark name=&quot;197&quot;/&gt; times &lt;break time=&quot;250ms&quot;/&gt; &lt;mark name=&quot;22&quot;/&gt; open brace &lt;break time=&quot;250ms&quot;/&gt; &lt;mark name=&quot;23&quot;/&gt; trace &lt;mark name=&quot;185&quot;/&gt; times &lt;break time=&quot;250ms&quot;/&gt; &lt;mark name=&quot;24&quot;/&gt; open bracket &lt;break time=&quot;250ms&quot;/&gt; &lt;mark name=&quot;29&quot;/&gt; the &lt;mark name=&quot;25&quot;/&gt; fraction with numerator 4 &lt;break time=&quot;250ms&quot;/&gt; &lt;mark name=&quot;28&quot;/&gt; and denominator &lt;prosody pitch=&quot;+30%&quot;&gt; &lt;mark name=&quot;26&quot;/&gt; &lt;say-as interpret-as=&quot;character&quot;&gt;T&lt;/say-as&gt; &lt;/prosody&gt; &lt;mark name=&quot;27&quot;/&gt; squared &lt;break time=&quot;250ms&quot;/&gt; &lt;mark name=&quot;30&quot;/&gt; &lt;say-as interpret-as=&quot;character&quot;&gt;f&lt;/say-as&gt; &lt;mark name=&quot;31&quot;/&gt; times &lt;prosody pitch=&quot;+30%&quot;&gt; &lt;mark name=&quot;32&quot;/&gt; &lt;say-as interpret-as=&quot;character&quot;&gt;Z&lt;/say-as&gt; &lt;/prosody&gt; &lt;mark name=&quot;33&quot;/&gt; times &lt;break time=&quot;500ms&quot;/&gt; &lt;mark name=&quot;38&quot;/&gt; left super composed with &lt;mark name=&quot;34&quot;/&gt; normal &lt;prosody pitch=&quot;+30%&quot;&gt; &lt;mark name=&quot;34&quot;/&gt; Xi &lt;/prosody&gt; &lt;break time=&quot;250ms&quot;/&gt; &lt;mark name=&quot;35&quot;/&gt; raised to the composed with &lt;mark name=&quot;36&quot; kind=&quot;LAST&quot;/&gt; power &lt;break time=&quot;500ms&quot;/&gt; &lt;mark name=&quot;42&quot;/&gt; plus &lt;mark name=&quot;46&quot;/&gt; the &lt;mark name=&quot;43&quot;/&gt; integral &lt;mark name=&quot;44&quot;/&gt; from 0 &lt;mark name=&quot;45&quot;/&gt; to &lt;prosody pitch=&quot;+30%&quot;&gt; &lt;mark name=&quot;45&quot;/&gt; &lt;say-as interpret-as=&quot;character&quot;&gt;T&lt;/say-as&gt; &lt;/prosody&gt; &lt;mark name=&quot;161&quot;/&gt; of &lt;break time=&quot;250ms&quot;/&gt; &lt;mark name=&quot;47&quot;/&gt; &lt;say-as interpret-as=&quot;character&quot;&gt;d&lt;/say-as&gt; &lt;mark name=&quot;48&quot;/&gt; tau &lt;break time=&quot;250ms&quot;/&gt; &lt;mark name=&quot;49&quot;/&gt; &lt;say-as interpret-as=&quot;character&quot;&gt;f&lt;/say-as&gt; &lt;mark name=&quot;50&quot;/&gt; times &lt;break time=&quot;500ms&quot;/&gt; &lt;mark name=&quot;58&quot;/&gt; left super bullet &lt;break time=&quot;250ms&quot;/&gt; &lt;mark name=&quot;51&quot;/&gt; normal &lt;prosody pitch=&quot;+30%&quot;&gt; &lt;mark name=&quot;51&quot;/&gt; Xi &lt;/prosody&gt; &lt;break time=&quot;250ms&quot;/&gt; &lt;mark name=&quot;55&quot;/&gt; sub &lt;prosody rate=&quot;+25%&quot;&gt; &lt;mark name=&quot;52&quot;/&gt; tau &lt;mark name=&quot;53&quot;/&gt; tau &lt;/prosody&gt; &lt;break time=&quot;500ms&quot;/&gt; &lt;mark name=&quot;62&quot;/&gt; close bracket &lt;break time=&quot;250ms&quot;/&gt; &lt;mark name=&quot;64&quot;/&gt; plus &lt;break time=&quot;250ms&quot;/&gt; &lt;mark name=&quot;72&quot;/&gt; the &lt;mark name=&quot;68&quot;/&gt; fraction with numerator &lt;prosody rate=&quot;+25%&quot;&gt; &lt;mark name=&quot;65&quot;/&gt; 8 &lt;mark name=&quot;66&quot;/&gt; &lt;say-as interpret-as=&quot;character&quot;&gt;i&lt;/say-as&gt; &lt;/prosody&gt; &lt;break time=&quot;250ms&quot;/&gt; &lt;mark name=&quot;71&quot;/&gt; and denominator &lt;prosody pitch=&quot;+30%&quot;&gt; &lt;mark name=&quot;69&quot;/&gt; &lt;say-as interpret-as=&quot;character&quot;&gt;T&lt;/say-as&gt; &lt;/prosody&gt; &lt;mark name=&quot;70&quot;/&gt; squared &lt;break time=&quot;250ms&quot;/&gt; &lt;mark name=&quot;73&quot;/&gt; &lt;say-as interpret-as=&quot;character&quot;&gt;p&lt;/say-as&gt; &lt;mark name=&quot;74&quot;/&gt; times &lt;break time=&quot;250ms&quot;/&gt; &lt;mark name=&quot;75&quot;/&gt; open bracket &lt;break time=&quot;250ms&quot;/&gt; &lt;prosody rate=&quot;+25%&quot;&gt; &lt;prosody pitch=&quot;+30%&quot;&gt; &lt;mark name=&quot;76&quot;/&gt; &lt;say-as interpret-as=&quot;character&quot;&gt;T&lt;/say-as&gt; &lt;/prosody&gt; &lt;mark name=&quot;77&quot;/&gt; &lt;say-as interpret-as=&quot;character&quot;&gt;f&lt;/say-as&gt; &lt;/prosody&gt; &lt;break time=&quot;250ms&quot;/&gt; &lt;mark name=&quot;78&quot;/&gt; times &lt;prosody pitch=&quot;+30%&quot;&gt; &lt;mark name=&quot;79&quot;/&gt; &lt;say-as interpret-as=&quot;character&quot;&gt;Z&lt;/say-as&gt; &lt;/prosody&gt; &lt;mark name=&quot;80&quot;/&gt; times &lt;break time=&quot;500ms&quot;/&gt; &lt;mark name=&quot;85&quot;/&gt; left super composed with &lt;mark name=&quot;81&quot;/&gt; normal &lt;prosody pitch=&quot;+30%&quot;&gt; &lt;mark name=&quot;81&quot;/&gt; Xi &lt;/prosody&gt; &lt;break time=&quot;250ms&quot;/&gt; &lt;mark name=&quot;82&quot;/&gt; raised to the composed with &lt;mark name=&quot;83&quot; kind=&quot;LAST&quot;/&gt; power &lt;break time=&quot;500ms&quot;/&gt; &lt;mark name=&quot;89&quot;/&gt; plus &lt;mark name=&quot;93&quot;/&gt; the &lt;mark name=&quot;90&quot;/&gt; integral &lt;mark name=&quot;91&quot;/&gt; from 0 &lt;mark name=&quot;92&quot;/&gt; to &lt;prosody pitch=&quot;+30%&quot;&gt; &lt;mark name=&quot;92&quot;/&gt; &lt;say-as interpret-as=&quot;character&quot;&gt;T&lt;/say-as&gt; &lt;/prosody&gt; &lt;mark name=&quot;172&quot;/&gt; of &lt;break time=&quot;250ms&quot;/&gt; &lt;mark name=&quot;94&quot;/&gt; &lt;say-as interpret-as=&quot;character&quot;&gt;d&lt;/say-as&gt; &lt;mark name=&quot;95&quot;/&gt; sigma &lt;break time=&quot;250ms&quot;/&gt; &lt;prosody pitch=&quot;+30%&quot;&gt; &lt;mark name=&quot;96&quot;/&gt; &lt;say-as interpret-as=&quot;character&quot;&gt;Z&lt;/say-as&gt; &lt;/prosody&gt; &lt;mark name=&quot;97&quot;/&gt; times &lt;break time=&quot;500ms&quot;/&gt; &lt;mark name=&quot;100&quot;/&gt; left super composed with &lt;mark name=&quot;98&quot;/&gt; normal &lt;prosody pitch=&quot;+30%&quot;&gt; &lt;mark name=&quot;98&quot;/&gt; Xi &lt;/prosody&gt; &lt;break time=&quot;500ms&quot;/&gt; &lt;mark name=&quot;104&quot;/&gt; sub sigma &lt;break time=&quot;250ms&quot;/&gt; &lt;mark name=&quot;106&quot;/&gt; times &lt;mark name=&quot;107&quot;/&gt; &lt;say-as interpret-as=&quot;character&quot;&gt;f&lt;/say-as&gt; &lt;mark name=&quot;108&quot;/&gt; times &lt;break time=&quot;500ms&quot;/&gt; &lt;mark name=&quot;115&quot;/&gt; left super bullet &lt;break time=&quot;250ms&quot;/&gt; &lt;mark name=&quot;109&quot;/&gt; normal &lt;prosody pitch=&quot;+30%&quot;&gt; &lt;mark name=&quot;109&quot;/&gt; Xi &lt;/prosody&gt; &lt;break time=&quot;250ms&quot;/&gt; &lt;mark name=&quot;110&quot;/&gt; raised to the composed with &lt;mark name=&quot;111&quot; kind=&quot;LAST&quot;/&gt; power &lt;break time=&quot;250ms&quot;/&gt; &lt;mark name=&quot;112&quot;/&gt; sub sigma &lt;break time=&quot;500ms&quot;/&gt; &lt;mark name=&quot;119&quot;/&gt; times &lt;prosody pitch=&quot;+30%&quot;&gt; &lt;mark name=&quot;120&quot;/&gt; &lt;say-as interpret-as=&quot;character&quot;&gt;Z&lt;/say-as&gt; &lt;/prosody&gt; &lt;mark name=&quot;122&quot;/&gt; plus &lt;break time=&quot;250ms&quot;/&gt; &lt;mark name=&quot;127&quot;/&gt; the &lt;mark name=&quot;123&quot;/&gt; fraction with numerator 4 &lt;break time=&quot;250ms&quot;/&gt; &lt;mark name=&quot;126&quot;/&gt; and denominator &lt;prosody pitch=&quot;+30%&quot;&gt; &lt;mark name=&quot;124&quot;/&gt; &lt;say-as interpret-as=&quot;character&quot;&gt;T&lt;/say-as&gt; &lt;/prosody&gt; &lt;mark name=&quot;125&quot;/&gt; squared &lt;break time=&quot;250ms&quot;/&gt; &lt;prosody pitch=&quot;+30%&quot;&gt; &lt;mark name=&quot;128&quot;/&gt; &lt;say-as interpret-as=&quot;character&quot;&gt;Z&lt;/say-as&gt; &lt;/prosody&gt; &lt;mark name=&quot;129&quot;/&gt; times &lt;break time=&quot;500ms&quot;/&gt; &lt;mark name=&quot;134&quot;/&gt; left super composed with &lt;mark name=&quot;130&quot;/&gt; normal &lt;prosody pitch=&quot;+30%&quot;&gt; &lt;mark name=&quot;130&quot;/&gt; Xi &lt;/prosody&gt; &lt;break time=&quot;250ms&quot;/&gt; &lt;mark name=&quot;131&quot;/&gt; raised to the composed with &lt;mark name=&quot;132&quot; kind=&quot;LAST&quot;/&gt; power &lt;break time=&quot;500ms&quot;/&gt; &lt;mark name=&quot;138&quot;/&gt; times &lt;mark name=&quot;139&quot;/&gt; &lt;say-as interpret-as=&quot;character&quot;&gt;f&lt;/say-as&gt; &lt;mark name=&quot;140&quot;/&gt; times &lt;prosody pitch=&quot;+30%&quot;&gt; &lt;mark name=&quot;141&quot;/&gt; &lt;say-as interpret-as=&quot;character&quot;&gt;Z&lt;/say-as&gt; &lt;/prosody&gt; &lt;mark name=&quot;142&quot;/&gt; times &lt;break time=&quot;500ms&quot;/&gt; &lt;mark name=&quot;147&quot;/&gt; left super composed with &lt;mark name=&quot;143&quot;/&gt; normal &lt;prosody pitch=&quot;+30%&quot;&gt; &lt;mark name=&quot;143&quot;/&gt; Xi &lt;/prosody&gt; &lt;break time=&quot;250ms&quot;/&gt; &lt;mark name=&quot;144&quot;/&gt; raised to the composed with &lt;mark name=&quot;145&quot; kind=&quot;LAST&quot;/&gt; power &lt;break time=&quot;500ms&quot;/&gt; &lt;mark name=&quot;151&quot;/&gt; times &lt;prosody pitch=&quot;+30%&quot;&gt; &lt;mark name=&quot;152&quot;/&gt; &lt;say-as interpret-as=&quot;character&quot;&gt;Z&lt;/say-as&gt; &lt;/prosody&gt; &lt;break time=&quot;250ms&quot;/&gt; &lt;mark name=&quot;153&quot;/&gt; close bracket &lt;break time=&quot;250ms&quot;/&gt; &lt;mark name=&quot;154&quot;/&gt; times &lt;mark name=&quot;155&quot;/&gt; &lt;say-as interpret-as=&quot;character&quot;&gt;p&lt;/say-as&gt; &lt;break time=&quot;250ms&quot;/&gt; &lt;mark name=&quot;156&quot;/&gt; close brace &lt;break time=&quot;250ms&quot;/&gt; &lt;mark name=&quot;157&quot;/&gt; period" data-speech-attached="true" data-semantic-braille="⠠⠅⠂⠘⠏⠏⠐⠈⠷⠠⠋⠈⠾⠀⠨⠅⠀⠑⠠⠅⠘⠏⠏⠐⠈⠷⠠⠋⠈⠾⠨⠷⠞⠗⠈⠷⠹⠲⠌⠠⠞⠘⠆⠐⠼⠋⠡⠠⠵⠡⠘⠨⠡⠐⠨⠠⠭⠘⠨⠡⠬⠮⠰⠴⠘⠠⠞⠐⠙⠨⠞⠋⠡⠘⠔⠔⠐⠨⠠⠭⠰⠨⠞⠨⠞⠐⠈⠾⠬⠹⠦⠊⠌⠠⠞⠘⠆⠐⠼⠏⠡⠈⠷⠠⠞⠋⠡⠠⠵⠡⠘⠨⠡⠐⠨⠠⠭⠘⠨⠡⠬⠮⠰⠴⠘⠠⠞⠐⠙⠨⠎⠠⠵⠡⠘⠨⠡⠐⠨⠠⠭⠰⠨⠎⠐⠡⠋⠡⠘⠔⠔⠐⠨⠠⠭⠘⠨⠡⠐⠰⠨⠎⠐⠡⠠⠵⠬⠹⠲⠌⠠⠞⠘⠆⠐⠼⠠⠵⠡⠘⠨⠡⠐⠨⠠⠭⠘⠨⠡⠡⠋⠡⠠⠵⠡⠘⠨⠡⠐⠨⠠⠭⠘⠨⠡⠡⠠⠵⠈⠾⠡⠏⠨⠾⠲" data-braille-attached="true" has-speech="true"><span data-mjx-error="undefined is not an object (evaluating 'this.scriptChild.getOuterBBox')" title="undefined is not an object (evaluating 'this.scriptChild.getOuterBBox')" aria-hidden="true" style="color: red; background-color: yellow; line-height: normal;">Math output error</span><mjx-speech aria-label="K sub 1 raised to the p p power of F equals e the p-th p-th power of K of F times open brace trace times open bracket the fraction with numerator 4 and denominator T squared f times Z times left super composed with normal Xi raised to the composed with power plus the integral from 0 to T of d tau f times left super bullet normal Xi sub tau tau close bracket plus the fraction with numerator 8 i and denominator T squared p times open bracket T f times Z times left super composed with normal Xi raised to the composed with power plus the integral from 0 to T of d sigma Z times left super composed with normal Xi sub sigma times f times left super bullet normal Xi raised to the composed with power sub sigma times Z plus the fraction with numerator 4 and denominator T squared Z times left super composed with normal Xi raised to the composed with power times f times Z times left super composed with normal Xi raised to the composed with power times Z close bracket times p close brace period, math" role="img" aria-roledescription="‘"></mjx-speech></mjx-container>

MathJax snippet:


<math display="block"><mrow><msubsup><mrow><mi>K</mi></mrow><mrow><mn>1</mn></mrow><mrow><mi>p</mi><mi>p</mi></mrow></msubsup><mo stretchy="false">[</mo><mi>F</mi><mo stretchy="false">]</mo><mo indentalign="id" indenttarget="d137a1">=</mo><mi>e</mi><msup><mrow><mi>K</mi></mrow><mrow><mi>p</mi><mi>p</mi></mrow></msup><mo stretchy="false">[</mo><mi>F</mi><mo stretchy="false">]</mo><mo>{</mo><mi>tr</mi><mo>[</mo><mfrac><mrow><mn>4</mn></mrow><mrow><msup><mrow><mi>T</mi></mrow><mrow><mn>2</mn></mrow></msup></mrow></mfrac><mi>f</mi><mo>·</mo><mi>Z</mi><mo>·</mo><mmultiscripts><mrow><msup><mrow><mi mathvariant="normal">Ξ</mi></mrow><mrow><mo>∘</mo></mrow></msup></mrow><mprescripts/><none/><mrow><mo>∘</mo></mrow></mmultiscripts><mo>+</mo><msubsup><mrow><mo>∫</mo></mrow><mrow><mn>0</mn></mrow><mrow><mi>T</mi></mrow></msubsup><mi>d</mi><mi>τ</mi><mi>f</mi><mo>·</mo><mmultiscripts><mrow><msub><mrow><mi mathvariant="normal">Ξ</mi></mrow><mrow><mi>τ</mi><mi>τ</mi></mrow></msub></mrow><mprescripts/><none/><mrow><mo>•</mo></mrow></mmultiscripts><mo>]</mo><mspace linebreak="newline"/><mo indentalign="id" indentshift="1em" indenttarget="d137a1">+</mo><mfrac><mrow><mn>8</mn><mi>i</mi></mrow><mrow><msup><mrow><mi>T</mi></mrow><mrow><mn>2</mn></mrow></msup></mrow></mfrac><mi>p</mi><mo>·</mo><mo>[</mo><mi>T</mi><mi>f</mi><mo>·</mo><mi>Z</mi><mo>·</mo><mmultiscripts><mrow><msup><mrow><mi mathvariant="normal">Ξ</mi></mrow><mrow><mo>∘</mo></mrow></msup></mrow><mprescripts/><none/><mrow><mo>∘</mo></mrow></mmultiscripts><mo>+</mo><msubsup><mrow><mo>∫</mo></mrow><mrow><mn>0</mn></mrow><mrow><mi>T</mi></mrow></msubsup><mi>d</mi><mi>σ</mi><mi>Z</mi><mo>·</mo><msub><mrow><mmultiscripts><mrow><mi mathvariant="normal">Ξ</mi></mrow><mprescripts/><none/><mrow><mo>∘</mo></mrow></mmultiscripts></mrow><mrow><mi>σ</mi></mrow></msub><mo>·</mo><mi>f</mi><mo>·</mo><mmultiscripts><mrow><msub><mrow><msup><mrow><mi mathvariant="normal">Ξ</mi></mrow><mrow><mmultiscripts><mrow><mo>∘</mo></mrow></mmultiscripts></mrow></msup></mrow><mrow><mi>σ</mi></mrow></msub></mrow><mprescripts/><none/><mrow><mo>•</mo></mrow></mmultiscripts><mo>·</mo><mi>Z</mi><mspace linebreak="newline"/><mo indentalign="id" indentshift="1em" indenttarget="d137a1">+</mo><mfrac><mrow><mn>4</mn></mrow><mrow><msup><mrow><mi>T</mi></mrow><mrow><mn>2</mn></mrow></msup></mrow></mfrac><mi>Z</mi><mo>·</mo><mmultiscripts><mrow><msup><mrow><mi mathvariant="normal">Ξ</mi></mrow><mrow><mo>∘</mo></mrow></msup></mrow><mprescripts/><none/><mrow><mo>∘</mo></mrow></mmultiscripts><mo>·</mo><mi>f</mi><mo>·</mo><mi>Z</mi><mo>·</mo><mmultiscripts><mrow><msup><mrow><mi mathvariant="normal">Ξ</mi></mrow><mrow><mo>∘</mo></mrow></msup></mrow><mprescripts/><none/><mrow><mo>∘</mo></mrow></mmultiscripts><mo>·</mo><mi>Z</mi><mo>]</mo><mo>·</mo><mi>p</mi><mo>}</mo><mo>.</mo></mrow></math>

I have included a screenshot of how the equation (# 137) is rendered. The equation above, although simpler, has quite similar markup. Thanks for any assistance you might be able to give.

Thanks,
Mark



Screenshot 2025-11-24 at 11.09.51 AM.png
Screenshot 2025-11-24 at 11.01.02 AM.png

Davide Cervone

unread,
Nov 24, 2025, 5:53:59 PM (9 days ago) Nov 24
to mathja...@googlegroups.com
Mark:

It's not a problem with the speech generation.  The problem is actually due to the use of 

<mmultiscripts><mrow><mo>∘</mo></mrow></mmultiscripts>

in the formula, which is an mmultiscripts element with a base, but no scripts.  This is legal (but pointless), so I will need to fix the fact that MathJax has trouble processing it, but for now, you could remove the outer mmultiscripts (and the unneeded mrow) and just use

<mo>∘</mo>.

MathJax would have handled it if they had used

<mmultiscripts><mrow><mo>∘</mo></mrow><mprescripts></mprescripts><none></none></mmultiscripts>

as they have in other situations, though it is a bit awkward.

It looks like your vender doesn't really understand how mmultiscripts actually works.  They are using multiple nested msub and msup nodes inside an mmultiscripts node, as in the following:

    <mmultiscripts>
      <mrow>
        <msub>
          <mrow>
            <msup>
              <mrow>
                <mi mathvariant="normal">&#x39E;</mi>
              </mrow>
              <mrow>
                <mmultiscripts>
                  <mrow>
                    <mo>&#x2218;</mo>
                  </mrow>
                </mmultiscripts>
              </mrow>
            </msup>
          </mrow>
          <mrow>
            <mi>&#x3C3;</mi>
          </mrow>
        </msub>
      </mrow>
      <mprescripts></mprescripts>
      <none></none>
      <mrow>
        <mo>&#x2022;</mo>
      </mrow>
    </mmultiscripts>

but this can be handled much more compactly as

<mmultiscripts>
  <mi mathvariant="normal">&#x39E;</mi>
  <none></none>
  <mo>&#x2218;</mo>
  <mi>&#x3C3;</mi>
  <none></none>
  <mprescripts></mprescripts>
  <none></none>
  <mo>&#x2022;</mo>
</mmultiscripts>

as one of the purposes of mmultiscripts is to handle both pre- and post-scripts in tensor notation.

If you can't (or don't want) to change the code from the vender, then it is possible to use a MathML input jax post-filter to add a <none> element to mmultiscripts elements with only one child (or better yet, remove the mmultiscripts and just use the single child node), so that it will render.  If you need that, let me know and I can put one together for you.

Davide



--
You received this message because you are subscribed to the Google Groups "MathJax Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to mathjax-user...@googlegroups.com.
To view this discussion visit https://groups.google.com/d/msgid/mathjax-users/ade7c3a4-7902-4c65-a83f-18372a1e95a1n%40googlegroups.com.
<Screenshot 2025-11-24 at 11.09.51 AM.png><Screenshot 2025-11-24 at 11.01.02 AM.png>

Mark Doyle

unread,
Nov 24, 2025, 6:17:39 PM (9 days ago) Nov 24
to mathja...@googlegroups.com
Hi Davide,

Thank you for the speedy and in-depth explanation! Much appreciated. I will bring this back to the vendor and see if they can fix the MathML. I don't want to bother you at this point with the filter, but appreciate the offer! I have a feeling these kinds of issues happen more because of various tools and poor automated conversions, rather than lack of understanding. I would rather have them check and fix things like this if possible. That said, I may have to take you up on your offer. Thanks again!

Best,
Mark


You received this message because you are subscribed to a topic in the Google Groups "MathJax Users" group.
To unsubscribe from this topic, visit https://groups.google.com/d/topic/mathjax-users/bP79lt7l2Wo/unsubscribe.
To unsubscribe from this group and all its topics, send an email to mathjax-user...@googlegroups.com.
To view this discussion visit https://groups.google.com/d/msgid/mathjax-users/D23042D6-F1DD-4841-84D5-16FF45088EB9%40gmail.com.
Reply all
Reply to author
Forward
0 new messages