Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

open list of unexpected changes #11

Closed
8 tasks done
pkra opened this issue Mar 16, 2021 · 24 comments · Fixed by #13
Closed
8 tasks done

open list of unexpected changes #11

pkra opened this issue Mar 16, 2021 · 24 comments · Fixed by #13
Assignees

Comments

@pkra
Copy link
Member

pkra commented Mar 16, 2021

From wider testing, let's collect unexpected changes

  • integrals now have moveable limits?
    • $$\begin{equation*} f_{k,m}(z) = \frac{1}{2\pi i} \oint _C \dfrac{\Delta ^\ell (z) E_{k'}(z) E_{14-k'}(\tau )}{\Delta ^{1+\ell }(\tau ) (j(\tau ) - j(z))} r^{-1-m} \, dr, \end{equation*}$$
    • $$\begin{equation*} f_{k,m}(z) = \int _{-\frac{1}{2}+iA}^{\frac{1}{2}+iA} \frac{\Delta (z)^\ell }{\Delta (\tau )^{1+\ell }} \frac{E_{k'}(z)E_{14-k'}(\tau )}{j(\tau )-j(z)} e^{-2\pi i m \tau } \, d\tau . \end{equation*}$$
    • ✔️ proposal: remove movesupsub: true
    • but see also open list of unexpected changes #11 (comment)
    • => 072c879
  • root overline no longer expands, optional arg broken
  • STIX2 smallsetminus and setminus are visually identical now
  • jmath more space to left
    • e.g., parametrizes those $(Y,\jmath ,\mu )$ with $(Y[p^\infty ], \jmath [p^\infty ],\mu [p^\infty ]) \cong (X[p^\infty ],\iota [p^\infty ],\lambda [p^\infty ])$,
    • ✔️ proposal: leave as is See open list of unexpected changes #11 (comment)
    • => documented at c110058
  • underleftarrow etc
  • nabla now italic
    • $\nabla (i)$
    • ✔️ proposal: set to normal
    • => f9e5b75
  • prime set at scriptsize
    • $\sigma (z,z^{\prime })=Jz\cdot z^{\prime }$
    • ✔️ proposal: set variantForm
    • All other primes left as is.
    • => 1d92989
  • varnothing glyph change
@pkra
Copy link
Member Author

pkra commented Mar 16, 2021

Updated after testing our current random sample set. Not too terrible and not all bugs.

@pkra
Copy link
Member Author

pkra commented Apr 23, 2021

Following #12 all of the mathops tests are broken (extremely large output).

pkra added a commit that referenced this issue Apr 26, 2021
WARNING includes new issues, see
#11 (comment)
WARNING squash before merge!
@pkra
Copy link
Member Author

pkra commented Apr 27, 2021

Following #12 all of the mathops tests are broken (extremely large output).

Confirmed by @dpvc to be a regression in MathJax > v3.1.3.

@pkra
Copy link
Member Author

pkra commented Apr 27, 2021

root overline no longer expands

I noticed that there are cuberoot and fourthroot - @davidmjones should we map those back to traditional \sqrt[3] \sqrt[4] or are they meant to not have stretchy overlines?

@pkra
Copy link
Member Author

pkra commented Apr 27, 2021

Fun find while creating a test file for this mathjax/MathJax#2678

@pkra
Copy link
Member Author

pkra commented Apr 27, 2021

jmath:

Without unicode-math extension:
image

With unicode-math extension:
image

Note the space before the jmath when the extension is used.

@pkra
Copy link
Member Author

pkra commented Apr 27, 2021

Re jmath: this probably comes down to MathJax using u0237 https://github.com/mathjax/MathJax-src/blob/29cd0e8569788ec41dd4b2198018983493b83e36/ts/input/tex/base/BaseMappings.ts#L118 and unicode-math using u1D6A5.

The space between the preceding comma and jmath vs preceding comma and mu seem to match (and match CM rendering on mathjax.org#demo) so I'm no longer sure if the change introduced by unicode-math is bad or actually an improvement.

@davidmjones what do you think?

For reference, CM rendering on mathjax.org#demo
image

@pkra
Copy link
Member Author

pkra commented Apr 27, 2021

STIX2 smallsetminus is small, regular setminus is large [better but intentional?]

With the latest STIX2, they are now both large.

@davidmjones based on your comment at stipub/stixfonts#179 (comment) I think this is the expected change, correct?

@pkra
Copy link
Member Author

pkra commented Apr 27, 2021

Updated the previous comment to clarify a bvit. But I'm wondering if they should both map to u2216 now.

@pkra
Copy link
Member Author

pkra commented Apr 27, 2021

varnothing. This seems to come down to MathJax using ['\u2205', {variantForm: true}] https://github.com/mathjax/MathJax-src/blob/29cd0e8569788ec41dd4b2198018983493b83e36/ts/input/tex/ams/AmsMappings.ts#L184 and unicode-math using just \u2205

with variantForm:true
image

without:
image

I think without is the correct form - @davidmjones wdyt?

@pkra
Copy link
Member Author

pkra commented Apr 27, 2021

On integrals.

We set moveablelimits on all of the following

// \mathop
Bbbsum: ['\u{2140}', {texClass: TEXCLASS.OP, movesupsub: true}],
Join: ['\u{2A1D}', {texClass: TEXCLASS.OP, movesupsub: true}],
arabichad: ['\u{1EEF1}', {texClass: TEXCLASS.OP, movesupsub: true}],
arabicmaj: ['\u{1EEF0}', {texClass: TEXCLASS.OP, movesupsub: true}],
awint: ['\u{2A11}', {texClass: TEXCLASS.OP, movesupsub: true}],
bigbot: ['\u{27D8}', {texClass: TEXCLASS.OP, movesupsub: true}],
bigcap: ['\u{22C2}', {texClass: TEXCLASS.OP, movesupsub: true}],
bigcup: ['\u{22C3}', {texClass: TEXCLASS.OP, movesupsub: true}],
bigcupdot: ['\u{2A03}', {texClass: TEXCLASS.OP, movesupsub: true}],
biginterleave: ['\u{2AFC}', {texClass: TEXCLASS.OP, movesupsub: true}],
bigodot: ['\u{2A00}', {texClass: TEXCLASS.OP, movesupsub: true}],
bigoplus: ['\u{2A01}', {texClass: TEXCLASS.OP, movesupsub: true}],
bigotimes: ['\u{2A02}', {texClass: TEXCLASS.OP, movesupsub: true}],
bigsqcap: ['\u{2A05}', {texClass: TEXCLASS.OP, movesupsub: true}],
bigsqcup: ['\u{2A06}', {texClass: TEXCLASS.OP, movesupsub: true}],
bigtalloblong: ['\u{2AFF}', {texClass: TEXCLASS.OP, movesupsub: true}],
bigtimes: ['\u{2A09}', {texClass: TEXCLASS.OP, movesupsub: true}],
bigtop: ['\u{27D9}', {texClass: TEXCLASS.OP, movesupsub: true}],
bigtriangleleft: ['\u{2A1E}', {texClass: TEXCLASS.OP, movesupsub: true}],
biguplus: ['\u{2A04}', {texClass: TEXCLASS.OP, movesupsub: true}],
bigvee: ['\u{22C1}', {texClass: TEXCLASS.OP, movesupsub: true}],
bigwedge: ['\u{22C0}', {texClass: TEXCLASS.OP, movesupsub: true}],
cirfnint: ['\u{2A10}', {texClass: TEXCLASS.OP, movesupsub: true}],
conjquant: ['\u{2A07}', {texClass: TEXCLASS.OP, movesupsub: true}],
coprod: ['\u{2210}', {texClass: TEXCLASS.OP, movesupsub: true}],
disjquant: ['\u{2A08}', {texClass: TEXCLASS.OP, movesupsub: true}],
fint: ['\u{2A0F}', {texClass: TEXCLASS.OP, movesupsub: true}],
fullouterjoin: ['\u{27D7}', {texClass: TEXCLASS.OP, movesupsub: true}],
iiiint: ['\u{2A0C}', {texClass: TEXCLASS.OP, movesupsub: true}],
iiint: ['\u{222D}', {texClass: TEXCLASS.OP, movesupsub: true}],
iint: ['\u{222C}', {texClass: TEXCLASS.OP, movesupsub: true}],
int: ['\u{222B}', {texClass: TEXCLASS.OP, movesupsub: true}],
intBar: ['\u{2A0E}', {texClass: TEXCLASS.OP, movesupsub: true}],
intbar: ['\u{2A0D}', {texClass: TEXCLASS.OP, movesupsub: true}],
intcap: ['\u{2A19}', {texClass: TEXCLASS.OP, movesupsub: true}],
intclockwise: ['\u{2231}', {texClass: TEXCLASS.OP, movesupsub: true}],
intcup: ['\u{2A1A}', {texClass: TEXCLASS.OP, movesupsub: true}],
intlarhk: ['\u{2A17}', {texClass: TEXCLASS.OP, movesupsub: true}],
intx: ['\u{2A18}', {texClass: TEXCLASS.OP, movesupsub: true}],
leftouterjoin: ['\u{27D5}', {texClass: TEXCLASS.OP, movesupsub: true}],
lowint: ['\u{2A1C}', {texClass: TEXCLASS.OP, movesupsub: true}],
modtwosum: ['\u{2A0A}', {texClass: TEXCLASS.OP, movesupsub: true}],
npolint: ['\u{2A14}', {texClass: TEXCLASS.OP, movesupsub: true}],
oiiint: ['\u{2230}', {texClass: TEXCLASS.OP, movesupsub: true}],
oiint: ['\u{222F}', {texClass: TEXCLASS.OP, movesupsub: true}],
oint: ['\u{222E}', {texClass: TEXCLASS.OP, movesupsub: true}],
ointctrclockwise: ['\u{2233}', {texClass: TEXCLASS.OP, movesupsub: true}],
pointint: ['\u{2A15}', {texClass: TEXCLASS.OP, movesupsub: true}],
prod: ['\u{220F}', {texClass: TEXCLASS.OP, movesupsub: true}],
rightouterjoin: ['\u{27D6}', {texClass: TEXCLASS.OP, movesupsub: true}],
rppolint: ['\u{2A12}', {texClass: TEXCLASS.OP, movesupsub: true}],
scpolint: ['\u{2A13}', {texClass: TEXCLASS.OP, movesupsub: true}],
sqint: ['\u{2A16}', {texClass: TEXCLASS.OP, movesupsub: true}],
sum: ['\u{2211}', {texClass: TEXCLASS.OP, movesupsub: true}],
sumint: ['\u{2A0B}', {texClass: TEXCLASS.OP, movesupsub: true}],
upint: ['\u{2A1B}', {texClass: TEXCLASS.OP, movesupsub: true}],
varointclockwise: ['\u{2232}', {texClass: TEXCLASS.OP, movesupsub: true}],
xbsol: ['\u{29F9}', {texClass: TEXCLASS.OP, movesupsub: true}],
xsol: ['\u{29F8}', {texClass: TEXCLASS.OP, movesupsub: true}],
zcmp: ['\u{2A1F}', {texClass: TEXCLASS.OP, movesupsub: true}],
zpipe: ['\u{2A20}', {texClass: TEXCLASS.OP, movesupsub: true}],
zproject: ['\u{2A21}', {texClass: TEXCLASS.OP, movesupsub: true}],

IIRC integrals are generally not moveable (cf. https://github.com/mathjax/MathJax-src/blob/29cd0e8569788ec41dd4b2198018983493b83e36/ts/input/tex/base/BaseMappings.ts#L153-L184)

@davidmjones is that correct? are the any others the linked section that we should reconsider?

@dpvc
Copy link

dpvc commented Apr 27, 2021

Concerning \emptyset and \varnothing, the TeX fonts have the "zero-slash" form as the normal form for U+2205 and the "circle-slash" form for the variant U+2205. The STIX2 fonts have them the other way (the circle-slash is the normal form and the zero-slash is the variant). I can swap them in the MathJax stix2 tables, if you want, so the two will be consistent.

@pkra
Copy link
Member Author

pkra commented Apr 27, 2021

Thanks, Davide. I'll leave that to David to decide.

@pkra
Copy link
Member Author

pkra commented Apr 27, 2021

On "varprojlim arrow tighter and thinner (worse?)"

This is actually about underleftarrow.

The difference is that MathJax uses u2190 for underleftarrow cf. https://github.com/mathjax/MathJax-src/blob/29cd0e8569788ec41dd4b2198018983493b83e36/ts/input/tex/base/BaseMappings.ts#L520 while unicode-mathjax uses u20EE.

With u2190:

image

With u20EE:

image

@davidmjones what do you think?

If we decide we don't like the current mathjax-unicode-math output, then the question is which other arrows need checking and changing.

@dpvc
Copy link

dpvc commented Apr 27, 2021

Note that U+20EE is not in the operator dictionary in Appendix C of the MathML spec, so it doesn't get the accent="true" attribute automatically. Setting that on the arrow might help.

@pkra
Copy link
Member Author

pkra commented Apr 27, 2021

On nabla being italic. Simplest answer: MathJax sets it to normal - alongside other symbols https://github.com/mathjax/MathJax-src/blob/29cd0e8569788ec41dd4b2198018983493b83e36/ts/input/tex/base/BaseMappings.ts#L113-L144.

@davidmjones is unicode-math's behavior intentional? (If not, are there other characters we need to consider?)

@pkra
Copy link
Member Author

pkra commented Apr 27, 2021

On \prime. MathJax has variantForm:true https://github.com/mathjax/MathJax-src/blob/29cd0e8569788ec41dd4b2198018983493b83e36/ts/input/tex/base/BaseMappings.ts#L125 and mathjax-unicode-math does not.

@davidmjones besides the 6 other macros containing "prime" are there others we'd need to consider?

@dpvc
Copy link

dpvc commented Apr 27, 2021

On \prime. MathJax has variantForm:true

Just to clarify: the large version of the prime is considered to be the variant form, and the small-raised version is the normal form. That allows U+2032 and similar characters to be used as pseudo scripts properly. When used as <mi>f</mi><mo>&#x2032</mo>, the small-and-raised version is used, but in <msup><mi>f</mi><mo>&#x2032</mo></msup> the variant form is used. Since \prime is supposed to generate the large form in TeX, it is set explicitly to the variant form, so that, for example, f^{\prime a} will produce the prime in the usual size in the superscript rather than a smaller size, as would occur with f^{'a}.

@pkra
Copy link
Member Author

pkra commented Apr 27, 2021

Thanks for both comments, @dpvc!

@pkra
Copy link
Member Author

pkra commented Apr 27, 2021

@davidmjones I've updated the OP with links to the various comments to make it easier to go through this. I suppose it's best to go through it F2F; then I'd create issues for the various pieces.

@pkra pkra self-assigned this Apr 27, 2021
@pkra pkra mentioned this issue Apr 30, 2021
@davidmjones
Copy link
Contributor

On nabla being italic. Simplest answer: MathJax sets it to normal - alongside other symbols https://github.com/mathjax/MathJax-src/blob/29cd0e8569788ec41dd4b2198018983493b83e36/ts/input/tex/base/BaseMappings.ts#L113-L144.

@davidmjones is unicode-math's behavior intentional? (If not, are there other characters we need to consider?)

No, it's not intentional. The \nabla should be upright.

@davidmjones
Copy link
Contributor

root overline no longer expands

I noticed that there are cuberoot and fourthroot - @davidmjones should we map those back to traditional \sqrt[3] \sqrt[4] or are they meant to not have stretchy overlines?

unicode-math.sty just defines them to produce the Unicode characters; i.e., leave them as-is.

pkra added a commit that referenced this issue May 4, 2021
WARNING includes new issues, see
#11 (comment)
WARNING squash before merge!
pkra added a commit that referenced this issue May 4, 2021
This definition would break stretchy root overlines.

Part of #11
pkra added a commit that referenced this issue May 4, 2021
Document this intentional change (which is an improvement).

See also the discussion in #11.
@pkra
Copy link
Member Author

pkra commented May 4, 2021

Re underleftarrow (varprojlim in the top card):

As per F2F, the problem stems from the fact that, in LaTeX both varprojlim and underleftarrow are defined using \leftarrowfill. However, MathJax uses u2190 for underleftarrow as it makes the most sense given its internal format. So we will follow MathJax here which in this case simply means disabling underleftarrow (and revisit related macros).

pkra added a commit that referenced this issue May 4, 2021
Avoids problems in superscripts by falling back to core MathJax.

Part of #11
@pkra
Copy link
Member Author

pkra commented May 4, 2021

For completeness, regarding \prime. Xetex+unicode-math is smarter with primes and keeps \prime (and others) in their normal ("superscripted") form while automatically applying ssty1 when primes are in a superscript. For now, we disabled / fallback for \prime to core MathJax and punt on the other primes.

pkra added a commit that referenced this issue May 4, 2021
Set emptyset to use u2205's variant form (cf varnothing).
NOTE This is STIX Two specific; CM has u2205 forms reversed.

Part of #11
pkra added a commit that referenced this issue May 4, 2021
pkra added a commit that referenced this issue May 4, 2021
Disables many to fallback to core MathJax, and adjusts others.
The main theme is to avoid combining above/below characters.

Part of #11
pkra added a commit that referenced this issue May 4, 2021
@pkra pkra closed this as completed in #13 May 11, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging a pull request may close this issue.

3 participants