Skip to content

Commit 560faa4

Browse files
authored
Merge pull request #1355 from mathjax/update/amscd-labels
Update the position of labels on vertical arrows to better match actual LaTeX output
2 parents 61c9f29 + 6ce7bef commit 560faa4

File tree

3 files changed

+173
-89
lines changed

3 files changed

+173
-89
lines changed

testsuite/tests/input/tex/Amscd.test.ts

Lines changed: 170 additions & 86 deletions
Original file line numberDiff line numberDiff line change
@@ -37,25 +37,37 @@ describe('AmsCD', () => {
3737
<mtd>
3838
<mrow>
3939
<mo minsize="1.75em" symmetric="true" lspace="0" rspace="0">&#x2193;</mo>
40-
<mstyle displaystyle="false" scriptlevel="1" data-latex="\\scriptstyle\\rlap{b}">
41-
<mrow data-mjx-texclass="ORD" data-latex="\\rlap{b}">
42-
<mpadded width="0">
43-
<mi data-latex="b">b</mi>
44-
</mpadded>
45-
</mrow>
40+
<mstyle displaystyle="false" scriptlevel="1" data-latex="\\scriptstyle\\raise.125em{\\vcenter{\\rlap{b}}}">
41+
<mpadded height="+.125em" depth="-.125em" voffset="+.125em" data-latex="{}">
42+
<mrow data-mjx-texclass="ORD">
43+
<mpadded data-mjx-vbox="center" data-mjx-texclass="ORD" data-vertical-align="center" data-latex="\\vcenter{\\rlap{b}}">
44+
<mrow data-mjx-texclass="ORD" data-latex="\\rlap{b}">
45+
<mpadded width="0">
46+
<mi data-latex="b">b</mi>
47+
</mpadded>
48+
</mrow>
49+
</mpadded>
50+
</mrow>
51+
</mpadded>
4652
</mstyle>
4753
</mrow>
4854
</mtd>
4955
<mtd></mtd>
5056
<mtd>
5157
<mrow>
5258
<mo minsize="1.75em" symmetric="true" lspace="0" rspace="0">&#x2193;</mo>
53-
<mstyle displaystyle="false" scriptlevel="1" data-latex="\\scriptstyle\\rlap{c}">
54-
<mrow data-mjx-texclass="ORD" data-latex="\\rlap{c}">
55-
<mpadded width="0">
56-
<mi data-latex="c">c</mi>
57-
</mpadded>
58-
</mrow>
59+
<mstyle displaystyle="false" scriptlevel="1" data-latex="\\scriptstyle\\raise.125em{\\vcenter{\\rlap{c}}}">
60+
<mpadded height="+.125em" depth="-.125em" voffset="+.125em" data-latex="{}">
61+
<mrow data-mjx-texclass="ORD">
62+
<mpadded data-mjx-vbox="center" data-mjx-texclass="ORD" data-vertical-align="center" data-latex="\\vcenter{\\rlap{c}}">
63+
<mrow data-mjx-texclass="ORD" data-latex="\\rlap{c}">
64+
<mpadded width="0">
65+
<mi data-latex="c">c</mi>
66+
</mpadded>
67+
</mrow>
68+
</mpadded>
69+
</mrow>
70+
</mpadded>
5971
</mstyle>
6072
</mrow>
6173
</mtd>
@@ -180,40 +192,64 @@ describe('AmsCD', () => {
180192
<mtr>
181193
<mtd>
182194
<mrow>
183-
<mstyle displaystyle="false" scriptlevel="1" data-latex="\\scriptstyle\\llap{l}">
184-
<mrow data-mjx-texclass="ORD" data-latex="\\llap{l}">
185-
<mpadded width="0" lspace="-1width">
186-
<mi data-latex="l">l</mi>
187-
</mpadded>
188-
</mrow>
195+
<mstyle displaystyle="false" scriptlevel="1" data-latex="\\scriptstyle\\raise.125em{\\vcenter{\\llap{l}}}">
196+
<mpadded height="+.125em" depth="-.125em" voffset="+.125em" data-latex="{}">
197+
<mrow data-mjx-texclass="ORD">
198+
<mpadded data-mjx-vbox="center" data-mjx-texclass="ORD" data-vertical-align="center" data-latex="\\vcenter{\\llap{l}}">
199+
<mrow data-mjx-texclass="ORD" data-latex="\\llap{l}">
200+
<mpadded width="0" lspace="-1width">
201+
<mi data-latex="l">l</mi>
202+
</mpadded>
203+
</mrow>
204+
</mpadded>
205+
</mrow>
206+
</mpadded>
189207
</mstyle>
190208
<mo minsize="1.75em" symmetric="true" lspace="0" rspace="0">&#x2193;</mo>
191-
<mstyle displaystyle="false" scriptlevel="1" data-latex="\\scriptstyle\\rlap{r}">
192-
<mrow data-mjx-texclass="ORD" data-latex="\\rlap{r}">
193-
<mpadded width="0">
194-
<mi data-latex="r">r</mi>
195-
</mpadded>
196-
</mrow>
209+
<mstyle displaystyle="false" scriptlevel="1" data-latex="\\scriptstyle\\raise.125em{\\vcenter{\\rlap{r}}}">
210+
<mpadded height="+.125em" depth="-.125em" voffset="+.125em" data-latex="{}">
211+
<mrow data-mjx-texclass="ORD">
212+
<mpadded data-mjx-vbox="center" data-mjx-texclass="ORD" data-vertical-align="center" data-latex="\\vcenter{\\rlap{r}}">
213+
<mrow data-mjx-texclass="ORD" data-latex="\\rlap{r}">
214+
<mpadded width="0">
215+
<mi data-latex="r">r</mi>
216+
</mpadded>
217+
</mrow>
218+
</mpadded>
219+
</mrow>
220+
</mpadded>
197221
</mstyle>
198222
</mrow>
199223
</mtd>
200224
<mtd></mtd>
201225
<mtd>
202226
<mrow>
203-
<mstyle displaystyle="false" scriptlevel="1" data-latex="\\scriptstyle\\llap{l}">
204-
<mrow data-mjx-texclass="ORD" data-latex="\\llap{l}">
205-
<mpadded width="0" lspace="-1width">
206-
<mi data-latex="l">l</mi>
207-
</mpadded>
208-
</mrow>
227+
<mstyle displaystyle="false" scriptlevel="1" data-latex="\\scriptstyle\\raise.125em{\\vcenter{\\llap{l}}}">
228+
<mpadded height="+.125em" depth="-.125em" voffset="+.125em" data-latex="{}">
229+
<mrow data-mjx-texclass="ORD">
230+
<mpadded data-mjx-vbox="center" data-mjx-texclass="ORD" data-vertical-align="center" data-latex="\\vcenter{\\llap{l}}">
231+
<mrow data-mjx-texclass="ORD" data-latex="\\llap{l}">
232+
<mpadded width="0" lspace="-1width">
233+
<mi data-latex="l">l</mi>
234+
</mpadded>
235+
</mrow>
236+
</mpadded>
237+
</mrow>
238+
</mpadded>
209239
</mstyle>
210240
<mo minsize="1.75em" symmetric="true" lspace="0" rspace="0">&#x2191;</mo>
211-
<mstyle displaystyle="false" scriptlevel="1" data-latex="\\scriptstyle\\rlap{r}">
212-
<mrow data-mjx-texclass="ORD" data-latex="\\rlap{r}">
213-
<mpadded width="0">
214-
<mi data-latex="r">r</mi>
215-
</mpadded>
216-
</mrow>
241+
<mstyle displaystyle="false" scriptlevel="1" data-latex="\\scriptstyle\\raise.125em{\\vcenter{\\rlap{r}}}">
242+
<mpadded height="+.125em" depth="-.125em" voffset="+.125em" data-latex="{}">
243+
<mrow data-mjx-texclass="ORD">
244+
<mpadded data-mjx-vbox="center" data-mjx-texclass="ORD" data-vertical-align="center" data-latex="\\vcenter{\\rlap{r}}">
245+
<mrow data-mjx-texclass="ORD" data-latex="\\rlap{r}">
246+
<mpadded width="0">
247+
<mi data-latex="r">r</mi>
248+
</mpadded>
249+
</mrow>
250+
</mpadded>
251+
</mrow>
252+
</mpadded>
217253
</mstyle>
218254
</mrow>
219255
</mtd>
@@ -552,25 +588,37 @@ describe('AmsCD', () => {
552588
<mtd>
553589
<mrow>
554590
<mo minsize="1.75em" symmetric="true" lspace="0" rspace="0">&#x2193;</mo>
555-
<mstyle displaystyle="false" scriptlevel="1" data-latex="\\scriptstyle\\rlap{b}">
556-
<mrow data-mjx-texclass="ORD" data-latex="\\rlap{b}">
557-
<mpadded width="0">
558-
<mi data-latex="b">b</mi>
559-
</mpadded>
560-
</mrow>
591+
<mstyle displaystyle="false" scriptlevel="1" data-latex="\\scriptstyle\\raise.125em{\\vcenter{\\rlap{b}}}">
592+
<mpadded height="+.125em" depth="-.125em" voffset="+.125em" data-latex="{}">
593+
<mrow data-mjx-texclass="ORD">
594+
<mpadded data-mjx-vbox="center" data-mjx-texclass="ORD" data-vertical-align="center" data-latex="\\vcenter{\\rlap{b}}">
595+
<mrow data-mjx-texclass="ORD" data-latex="\\rlap{b}">
596+
<mpadded width="0">
597+
<mi data-latex="b">b</mi>
598+
</mpadded>
599+
</mrow>
600+
</mpadded>
601+
</mrow>
602+
</mpadded>
561603
</mstyle>
562604
</mrow>
563605
</mtd>
564606
<mtd></mtd>
565607
<mtd>
566608
<mrow>
567609
<mo minsize="1.75em" symmetric="true" lspace="0" rspace="0">&#x2193;</mo>
568-
<mstyle displaystyle="false" scriptlevel="1" data-latex="\\scriptstyle\\rlap{c}">
569-
<mrow data-mjx-texclass="ORD" data-latex="\\rlap{c}">
570-
<mpadded width="0">
571-
<mi data-latex="c">c</mi>
572-
</mpadded>
573-
</mrow>
610+
<mstyle displaystyle="false" scriptlevel="1" data-latex="\\scriptstyle\\raise.125em{\\vcenter{\\rlap{c}}}">
611+
<mpadded height="+.125em" depth="-.125em" voffset="+.125em" data-latex="{}">
612+
<mrow data-mjx-texclass="ORD">
613+
<mpadded data-mjx-vbox="center" data-mjx-texclass="ORD" data-vertical-align="center" data-latex="\\vcenter{\\rlap{c}}">
614+
<mrow data-mjx-texclass="ORD" data-latex="\\rlap{c}">
615+
<mpadded width="0">
616+
<mi data-latex="c">c</mi>
617+
</mpadded>
618+
</mrow>
619+
</mpadded>
620+
</mrow>
621+
</mpadded>
574622
</mstyle>
575623
</mrow>
576624
</mtd>
@@ -628,25 +676,37 @@ describe('AmsCD', () => {
628676
<mtd>
629677
<mrow>
630678
<mo minsize="4cm" symmetric="true" lspace="0" rspace="0">&#x2193;</mo>
631-
<mstyle displaystyle="false" scriptlevel="1" data-latex="\\scriptstyle\\rlap{b}">
632-
<mrow data-mjx-texclass="ORD" data-latex="\\rlap{b}">
633-
<mpadded width="0">
634-
<mi data-latex="b">b</mi>
635-
</mpadded>
636-
</mrow>
679+
<mstyle displaystyle="false" scriptlevel="1" data-latex="\\scriptstyle\\raise.125em{\\vcenter{\\rlap{b}}}">
680+
<mpadded height="+.125em" depth="-.125em" voffset="+.125em" data-latex="{}">
681+
<mrow data-mjx-texclass="ORD">
682+
<mpadded data-mjx-vbox="center" data-mjx-texclass="ORD" data-vertical-align="center" data-latex="\\vcenter{\\rlap{b}}">
683+
<mrow data-mjx-texclass="ORD" data-latex="\\rlap{b}">
684+
<mpadded width="0">
685+
<mi data-latex="b">b</mi>
686+
</mpadded>
687+
</mrow>
688+
</mpadded>
689+
</mrow>
690+
</mpadded>
637691
</mstyle>
638692
</mrow>
639693
</mtd>
640694
<mtd></mtd>
641695
<mtd>
642696
<mrow>
643697
<mo minsize="4cm" symmetric="true" lspace="0" rspace="0">&#x2193;</mo>
644-
<mstyle displaystyle="false" scriptlevel="1" data-latex="\\scriptstyle\\rlap{c}">
645-
<mrow data-mjx-texclass="ORD" data-latex="\\rlap{c}">
646-
<mpadded width="0">
647-
<mi data-latex="c">c</mi>
648-
</mpadded>
649-
</mrow>
698+
<mstyle displaystyle="false" scriptlevel="1" data-latex="\\scriptstyle\\raise.125em{\\vcenter{\\rlap{c}}}">
699+
<mpadded height="+.125em" depth="-.125em" voffset="+.125em" data-latex="{}">
700+
<mrow data-mjx-texclass="ORD">
701+
<mpadded data-mjx-vbox="center" data-mjx-texclass="ORD" data-vertical-align="center" data-latex="\\vcenter{\\rlap{c}}">
702+
<mrow data-mjx-texclass="ORD" data-latex="\\rlap{c}">
703+
<mpadded width="0">
704+
<mi data-latex="c">c</mi>
705+
</mpadded>
706+
</mrow>
707+
</mpadded>
708+
</mrow>
709+
</mpadded>
650710
</mstyle>
651711
</mrow>
652712
</mtd>
@@ -704,25 +764,37 @@ describe('AmsCD', () => {
704764
<mtd>
705765
<mrow>
706766
<mo minsize="4cm" symmetric="true" lspace="0" rspace="0">&#x2193;</mo>
707-
<mstyle displaystyle="false" scriptlevel="1" data-latex="\\scriptstyle\\rlap{b}">
708-
<mrow data-mjx-texclass="ORD" data-latex="\\rlap{b}">
709-
<mpadded width="0">
710-
<mi data-latex="b">b</mi>
711-
</mpadded>
712-
</mrow>
767+
<mstyle displaystyle="false" scriptlevel="1" data-latex="\\scriptstyle\\raise.125em{\\vcenter{\\rlap{b}}}">
768+
<mpadded height="+.125em" depth="-.125em" voffset="+.125em" data-latex="{}">
769+
<mrow data-mjx-texclass="ORD">
770+
<mpadded data-mjx-vbox="center" data-mjx-texclass="ORD" data-vertical-align="center" data-latex="\\vcenter{\\rlap{b}}">
771+
<mrow data-mjx-texclass="ORD" data-latex="\\rlap{b}">
772+
<mpadded width="0">
773+
<mi data-latex="b">b</mi>
774+
</mpadded>
775+
</mrow>
776+
</mpadded>
777+
</mrow>
778+
</mpadded>
713779
</mstyle>
714780
</mrow>
715781
</mtd>
716782
<mtd></mtd>
717783
<mtd>
718784
<mrow>
719785
<mo minsize="4cm" symmetric="true" lspace="0" rspace="0">&#x2193;</mo>
720-
<mstyle displaystyle="false" scriptlevel="1" data-latex="\\scriptstyle\\rlap{c}">
721-
<mrow data-mjx-texclass="ORD" data-latex="\\rlap{c}">
722-
<mpadded width="0">
723-
<mi data-latex="c">c</mi>
724-
</mpadded>
725-
</mrow>
786+
<mstyle displaystyle="false" scriptlevel="1" data-latex="\\scriptstyle\\raise.125em{\\vcenter{\\rlap{c}}}">
787+
<mpadded height="+.125em" depth="-.125em" voffset="+.125em" data-latex="{}">
788+
<mrow data-mjx-texclass="ORD">
789+
<mpadded data-mjx-vbox="center" data-mjx-texclass="ORD" data-vertical-align="center" data-latex="\\vcenter{\\rlap{c}}">
790+
<mrow data-mjx-texclass="ORD" data-latex="\\rlap{c}">
791+
<mpadded width="0">
792+
<mi data-latex="c">c</mi>
793+
</mpadded>
794+
</mrow>
795+
</mpadded>
796+
</mrow>
797+
</mpadded>
726798
</mstyle>
727799
</mrow>
728800
</mtd>
@@ -878,25 +950,37 @@ describe('AmsCD Options', () => {
878950
<mtd>
879951
<mrow>
880952
<mo minsize="1.75em" symmetric="true" lspace="0" rspace="0">&#x2193;</mo>
881-
<mstyle displaystyle="false" scriptlevel="1" data-latex="\\scriptstyle\\rlap{b}">
882-
<mrow data-mjx-texclass="ORD" data-latex="\\rlap{b}">
883-
<mpadded width="0">
884-
<mi data-latex="b">b</mi>
885-
</mpadded>
886-
</mrow>
953+
<mstyle displaystyle="false" scriptlevel="1" data-latex="\\scriptstyle\\raise.125em{\\vcenter{\\rlap{b}}}">
954+
<mpadded height="+.125em" depth="-.125em" voffset="+.125em" data-latex="{}">
955+
<mrow data-mjx-texclass="ORD">
956+
<mpadded data-mjx-vbox="center" data-mjx-texclass="ORD" data-vertical-align="center" data-latex="\\vcenter{\\rlap{b}}">
957+
<mrow data-mjx-texclass="ORD" data-latex="\\rlap{b}">
958+
<mpadded width="0">
959+
<mi data-latex="b">b</mi>
960+
</mpadded>
961+
</mrow>
962+
</mpadded>
963+
</mrow>
964+
</mpadded>
887965
</mstyle>
888966
</mrow>
889967
</mtd>
890968
<mtd></mtd>
891969
<mtd>
892970
<mrow>
893971
<mo minsize="1.75em" symmetric="true" lspace="0" rspace="0">&#x2193;</mo>
894-
<mstyle displaystyle="false" scriptlevel="1" data-latex="\\scriptstyle\\rlap{c}">
895-
<mrow data-mjx-texclass="ORD" data-latex="\\rlap{c}">
896-
<mpadded width="0">
897-
<mi data-latex="c">c</mi>
898-
</mpadded>
899-
</mrow>
972+
<mstyle displaystyle="false" scriptlevel="1" data-latex="\\scriptstyle\\raise.125em{\\vcenter{\\rlap{c}}}">
973+
<mpadded height="+.125em" depth="-.125em" voffset="+.125em" data-latex="{}">
974+
<mrow data-mjx-texclass="ORD">
975+
<mpadded data-mjx-vbox="center" data-mjx-texclass="ORD" data-vertical-align="center" data-latex="\\vcenter{\\rlap{c}}">
976+
<mrow data-mjx-texclass="ORD" data-latex="\\rlap{c}">
977+
<mpadded width="0">
978+
<mi data-latex="c">c</mi>
979+
</mpadded>
980+
</mrow>
981+
</mpadded>
982+
</mrow>
983+
</mpadded>
900984
</mstyle>
901985
</mrow>
902986
</mtd>
@@ -921,8 +1005,8 @@ describe('AmsCD Options', () => {
9211005
<mi data-latex="D">D</mi>
9221006
</mtd>
9231007
</mtr>
924-
</mtable>
925-
</math>`
1008+
</mtable>
1009+
</math>`
9261010
);
9271011
});
9281012

testsuite/tests/input/tex/Tag.test.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ describe('TagAll', () => {
2323
toXmlMatch(
2424
tex2mml('a'),
2525
`<math xmlns="http://www.w3.org/1998/Math/MathML" data-latex="a" display="block">
26-
<mtable displaystyle="true" data-latex="a">
26+
<mtable displaystyle="true" data-latex="a">
2727
<mlabeledtr>
2828
<mtd id="mjx-eqn:1">
2929
<mtext data-latex="\\text{(1)}">(1)</mtext>

ts/input/tex/amscd/AmsCdMethods.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -165,7 +165,7 @@ const AmsCdMethods: { [key: string]: ParseMethod } = {
165165
if (a) {
166166
NodeUtil.appendChildren(mml, [
167167
new TexParser(
168-
'\\scriptstyle\\llap{' + a + '}',
168+
'\\scriptstyle\\raise.125em{\\vcenter{\\llap{' + a + '}}}',
169169
parser.stack.env,
170170
parser.configuration
171171
).mml(),
@@ -176,7 +176,7 @@ const AmsCdMethods: { [key: string]: ParseMethod } = {
176176
if (b) {
177177
NodeUtil.appendChildren(mml, [
178178
new TexParser(
179-
'\\scriptstyle\\rlap{' + b + '}',
179+
'\\scriptstyle\\raise.125em{\\vcenter{\\rlap{' + b + '}}}',
180180
parser.stack.env,
181181
parser.configuration
182182
).mml(),

0 commit comments

Comments
 (0)