Skip to content

Fix or not? XeTeX’s botched radical construction #671

@RuixiZhang42

Description

@RuixiZhang42

\box_ht:N \l_tmpa_box - \@@_radical_vgap:N ##1

According to um-code-fontparam.dtx, \@@_radical_vgap:N \displaystyle ultimately expands to \fontdimen 60 \textfont 2~ for XeTeX. But this is wrong.

As I wrote in the XeTeX mailing list, running

% plain XeTeX
\def\tmp#1{\textfont#1\ten \scriptfont#1\seven
 \scriptscriptfont#1\five}
\def\showfontdimen#1{\immediate\write-1{#1:
 \the\fontdimen#1\textfont2}}
\def\test#1{\font\ten="[#1.otf]:script=math" at 10pt
 \font\seven="[#1.otf]:script=math;+ssty=0" at 7pt
 \font\five="[#1.otf]:script=math;+ssty=1" at 5pt
 \tmp0\tmp1\tmp2\tmp3%
 \noindent#1\par
 \immediate\write-1{--- #1 ---}%
 \showfontdimen{5}%
 \showfontdimen{16}%
 \showfontdimen{48}%
 \showfontdimen{54}%
 \showfontdimen{57}%
 \showfontdimen{61}%
 \setbox0\hbox{$\displaystyle E$}%
 \setbox2\hbox{$\displaystyle\kern-\nulldelimiterspace
  \Uradical255 0 {E}$}%
 \immediate\write-1{displaystyle diff:
  \the\dimexpr\ht2-\ht0}%
 \showfontdimen{60}%
}
\test{texgyrebonum-math}
\test{texgyredejavu-math}
\test{texgyrepagella-math}
\test{texgyreschola-math}
\test{texgyretermes-math}
\test{STIXTwoMath-Regular}
\bye

yields

--- texgyrebonum-math ---
5: 4.85pt
16: 4.7pt
48: 0.72pt
54: 0.72pt
57: 0.72pt
61: 0.72pt
displaystyle diff: 1.89499pt
60: 1.05pt
--- texgyredejavu-math ---
5: 5.19pt
16: 5.39pt
48: 0.64pt
54: 0.52pt
57: 0.52pt
61: 0.52pt
displaystyle diff: 1.98749pt
60: 0.96pt
--- texgyrepagella-math ---
5: 4.69pt
16: 5.0pt
48: 0.6pt
54: 0.6pt
57: 0.6pt
61: 0.6pt
displaystyle diff: 1.85pt
60: 1.2pt
--- texgyreschola-math ---
5: 4.66pt
16: 4.86pt
48: 0.7pt
54: 0.7pt
57: 0.7pt
61: 0.7pt
displaystyle diff: 1.915pt
60: 1.0pt
--- texgyretermes-math ---
5: 4.5pt
16: 4.7pt
48: 0.52pt
54: 0.52pt
57: 0.52pt
61: 0.52pt
displaystyle diff: 1.69499pt
60: 1.4pt
--- STIXTwoMath-Regular ---
5: 4.73pt
16: 4.8pt
48: 0.68pt
54: 0.68pt
57: 0.68pt
61: 0.68pt
displaystyle diff: 1.87999pt
60: 1.7pt

meaning that when XeTeX constructs radicals in display style, it NEVER uses \fontdimen60. Instead, XeTeX uses 0.25 \fontdimen16 + \fontdimen48 as the vertical gap for radicals in display style. Similar issues exist for Overbar and Underbar constructions.

To me, this is clearly an upstream issue. But should unicode-math try to accommodate this?

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions