Skip to content

Commit 22957a7

Browse files
authored
feat: support missing commands (#214)
* feat: support \mathscr command * chore: update deprecated symbols to latest * feat: support some missing eqq commands * fix(test): accept insta tests review
1 parent ee351fe commit 22957a7

3 files changed

Lines changed: 46 additions & 37 deletions

File tree

crates/mitex/tests/cvt/left_right.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ fn base() {
66
assert_snapshot!(convert_math(r#"\left.a\right."#).unwrap(), @"lr( a )");
77
assert_snapshot!(convert_math(r#"\left. \right] ,"#).unwrap(), @r###"lr( \] ) \,"###);
88
assert_snapshot!(convert_math(r#"\left . a \right \|"#).unwrap(), @"lr( a || )");
9-
assert_snapshot!(convert_math(r#"\left\langle a\right\|"#).unwrap(), @"lr(angle.l a || )");
9+
assert_snapshot!(convert_math(r#"\left\langle a\right\|"#).unwrap(), @"lr(chevron.l a || )");
1010
// Note: this is an invalid expression
1111
// Error handling
1212
assert_snapshot!(convert_math(r#"\left{.}a\right{.}"#).unwrap_err(), @r###"error: error unexpected: "}""###);

crates/mitex/tests/cvt/misc.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -115,7 +115,7 @@ fn test_convert_lr() {
115115
);
116116
assert_snapshot!(convert_math(r#"$\left . a \right \|$"#).unwrap(), @"lr( a || )"
117117
);
118-
assert_snapshot!(convert_math(r#"$\left\langle a\right\|$"#).unwrap(), @"lr(angle.l a || )"
118+
assert_snapshot!(convert_math(r#"$\left\langle a\right\|$"#).unwrap(), @"lr(chevron.l a || )"
119119
);
120120
assert_snapshot!(convert_math(r#"$\left\lbrack\lbrack x\rbrack\right\rbrack$"#).unwrap(), @"lr(bracket.l bracket.l x bracket.r bracket.r )"
121121
);

packages/mitex/specs/latex/standard.typ

Lines changed: 44 additions & 35 deletions
Original file line numberDiff line numberDiff line change
@@ -166,6 +166,10 @@
166166
Bbb: define-cmd(1, alias: "bb"),
167167
mathbb: define-cmd(1, alias: "bb"),
168168
mathcal: define-cmd(1, alias: "cal"),
169+
mathscr: define-cmd(1, handle: it => {
170+
let s = get-tex-str(it)
171+
s.clusters().map(x => $scr(#x)$).join()
172+
}),
169173
mathbin: define-cmd(1, handle: it => math.class("binary", it)),
170174
mathclose: define-cmd(1, handle: it => math.class("closing", it)),
171175
mathinner: define-cmd(1, handle: it => math.class("fence", it)),
@@ -386,14 +390,14 @@
386390
cdotp: define-sym("dot.c"),
387391
sdot: define-sym("dot.c"),
388392
times: define-sym("times"),
389-
oplus: define-sym("plus.circle"),
390-
ominus: define-sym("minus.circle"),
393+
oplus: define-sym("plus.o"),
394+
ominus: define-sym("minus.o"),
391395
pm: define-sym("plus.minus"),
392396
plusmn: define-sym("plus.minus"),
393397
mp: define-sym("minus.plus"),
394398
div: define-sym("div"),
395399
star: define-sym("star"),
396-
cap: define-sym("sect"),
400+
cap: define-sym("inter"),
397401
cup: define-sym("union"),
398402
"in": define-sym("in"),
399403
isin: define-sym("in"),
@@ -445,24 +449,24 @@
445449
rbrack: define-sym("bracket.r"),
446450
lgroup: define-sym(""),
447451
rgroup: define-sym(""),
448-
llbracket: define-sym("bracket.l.double"),
449-
rrbracket: define-sym("bracket.r.double"),
452+
llbracket: define-sym("bracket.stroked.l"),
453+
rrbracket: define-sym("bracket.stroked.r"),
450454
angle: define-sym("angle"),
451-
lang: define-sym("angle.l"),
452-
rang: define-sym("angle.r"),
453-
langle: define-sym("angle.l"),
454-
rangle: define-sym("angle.r"),
455+
lang: define-sym("chevron.l"),
456+
rang: define-sym("chevron.r"),
457+
langle: define-sym("chevron.l"),
458+
rangle: define-sym("chevron.r"),
455459
measuredangle: define-sym("angle.arc"),
456460
sphericalangle: define-sym("angle.spheric"),
457461
ast: define-sym("ast"),
458462
checkmark: define-sym("checkmark"),
459-
circledast: define-sym("ast.circle"),
463+
circledast: define-sym("convolve.o"),
460464
backslash: define-sym("backslash"),
461465
dagger: define-sym("dagger"),
462466
ddagger: define-sym("dagger.double"),
463-
circleddash: define-sym("dash.circle"),
464-
odot: define-sym("dot.circle"),
465-
bigodot: define-sym("dot.circle.big"),
467+
circleddash: define-sym("dash.o"),
468+
odot: define-sym("dot.o"),
469+
bigodot: define-sym("dot.o.big"),
466470
boxdot: define-sym("dot.square"),
467471
dots: define-sym("dots.h"),
468472
cdots: define-sym("dots.h.c"),
@@ -483,13 +487,13 @@
483487
backsim: define-sym("tilde.rev"),
484488
prime: define-sym("prime"),
485489
backprime: define-sym("prime.rev"),
486-
bigoplus: define-sym("plus.circle.big"),
490+
bigoplus: define-sym("plus.o.big"),
487491
dotplus: define-sym("plus.dot"),
488492
boxplus: define-sym("plus.square"),
489493
boxminus: define-sym("minus.square"),
490494
eqsim: define-sym("minus.tilde"),
491-
otimes: define-sym("times.circle"),
492-
bigotimes: define-sym("times.circle.big"),
495+
otimes: define-sym("times.o"),
496+
bigotimes: define-sym("times.o.big"),
493497
divideontimes: define-sym("times.div"),
494498
leftthreetimes: define-sym("times.three.l"),
495499
rightthreetimes: define-sym("times.three.r"),
@@ -503,8 +507,10 @@
503507
gg: define-sym("gt.double"),
504508
gtreqless: define-sym("gt.eq.lt"),
505509
gtreqqless: define-sym(""),
510+
gtrapprox: define-sym("gt.approx"),
506511
ngeq: define-sym("gt.eq.not"),
507512
geqq: define-sym("gt.equiv"),
513+
ngeqq: of-sym(math.cancel(angle: 20deg, "\u{2267}")),
508514
gtrless: define-sym("gt.lt"),
509515
gneqq: define-sym("gt.nequiv"),
510516
ngtr: define-sym("gt.not"),
@@ -519,7 +525,9 @@
519525
ll: define-sym("lt.double"),
520526
lesseqgtr: define-sym("lt.eq.gt"),
521527
nleq: define-sym("lt.eq.not"),
528+
nleqslant: of-sym(math.cancel(angle: 20deg, length: 1em, math.lt.eq.slant)),
522529
leqq: define-sym("lt.equiv"),
530+
nleqq: of-sym(math.cancel(angle: 20deg, "\u{2266}")),
523531
lessgtr: define-sym("lt.gt"),
524532
lneqq: define-sym("lt.nequiv"),
525533
nless: define-sym("lt.not"),
@@ -566,12 +574,14 @@
566574
notni: define-sym("in.rev.not"),
567575
Subset: define-sym("subset.double"),
568576
nsubseteq: define-sym("subset.eq.not"),
577+
nsubseteqq: of-sym(math.cancel(angle: 20deg, length: 1em, "\u{2AC5}")),
569578
sqsubseteq: define-sym("subset.eq.sq"),
570579
subsetneq: define-sym("subset.neq"),
571580
supset: define-sym("supset"),
572581
Supset: define-sym("supset.double"),
573582
supseteq: define-sym("supset.eq"),
574583
nsupseteq: define-sym("supset.eq.not"),
584+
nsupseteqq: of-sym(math.cancel(angle: 20deg, length: 1em, "\u{2AC6}")),
575585
sqsupseteq: define-sym("supset.eq.sq"),
576586
supsetneq: define-sym("supset.neq"),
577587
bigcup: define-sym("union.big"),
@@ -580,10 +590,10 @@
580590
biguplus: define-sym("union.plus.big"),
581591
sqcup: define-sym("union.sq"),
582592
bigsqcup: define-sym("union.sq.big"),
583-
bigcap: define-sym("sect.big"),
584-
Cap: define-sym("sect.double"),
585-
sqcap: define-sym("sect.sq"),
586-
partial: define-sym("diff"),
593+
bigcap: define-sym("inter.big"),
594+
Cap: define-sym("inter.double"),
595+
sqcap: define-sym("inter.sq"),
596+
partial: define-sym("partial"),
587597
nabla: define-sym("nabla"),
588598
coprod: define-sym("product.co"),
589599
forall: define-sym("forall"),
@@ -621,7 +631,7 @@
621631
spadesuit: define-sym("suit.spade"),
622632
bull: define-sym("bullet"),
623633
bullet: define-sym("bullet"),
624-
circledcirc: define-sym("circle.nested"),
634+
circledcirc: define-sym("compose.o"),
625635
rhd: define-sym("triangle.stroked.r"),
626636
lhd: define-sym("triangle.stroked.l"),
627637
triangle: define-sym("triangle.stroked.t"),
@@ -694,8 +704,8 @@
694704
vDash: define-sym("tack.r.double"),
695705
nvDash: define-sym("tack.r.double.not"),
696706
dashv: define-sym("tack.l"),
697-
hbar: define-sym("planck.reduce"),
698-
hslash: define-sym("planck.reduce"),
707+
hbar: define-sym("planck"),
708+
hslash: define-sym("planck"),
699709
Re: define-sym("Re"),
700710
Im: define-sym("Im"),
701711
AA: define-sym("circle(A)"),
@@ -756,9 +766,9 @@
756766
barwedge: define-sym(""),
757767
beth: define-sym("beth"),
758768
between: define-sym(""),
759-
bigdot: define-sym("dot.circle.big"),
760-
bigplus: define-sym("plus.circle.big"),
761-
bigtimes: define-sym("times.circle.big"),
769+
bigdot: define-sym("dot.o.big"),
770+
bigplus: define-sym("plus.o.big"),
771+
bigtimes: define-sym("times.o.big"),
762772
blacktriangle: define-sym("triangle.filled.t"),
763773
blacktriangledown: define-sym("triangle.filled.b"),
764774
blacktriangleleft: define-sym("triangle.filled.l"),
@@ -801,7 +811,7 @@
801811
diagup: define-sym(""),
802812
doteqdot: define-sym(""),
803813
doublebarwedge: define-sym(""),
804-
doublecap: define-sym("sect.double"),
814+
doublecap: define-sym("inter.double"),
805815
doublecup: define-sym("union.double"),
806816
eqcirc: define-sym(""),
807817
Eqcolon: define-sym("−::"),
@@ -835,15 +845,14 @@
835845
llcorner: define-sym(""),
836846
llless: define-sym("<<<"),
837847
lnapprox: define-sym(""),
838-
gtrapprox: define-sym(""),
839848
lneq: define-sym(""),
840849
lrcorner: define-sym(""),
841850
lq: define-sym("quote.l.single"),
842851
Lsh: define-sym(""),
843852
maltese: define-sym("maltese"),
844853
mathellipsis: define-sym("..."),
845854
mathsterling: define-sym("pound"),
846-
mho: define-sym("ohm.inv"),
855+
mho: define-sym("Omega.inv"),
847856
minuscolon: define-sym("dash.colon"),
848857
minuscoloncolon: define-sym("−::"),
849858
minuso: define-sym(""),
@@ -974,12 +983,12 @@
974983
pod: define-cmd(1, handle: it => $quad (it)$),
975984
"set": define-cmd(1, handle: it => $\{it\}$),
976985
Set: define-cmd(1, handle: it => $lr(\{it\})$),
977-
bra: define-cmd(1, handle: it => $angle.l it|$),
978-
Bra: define-cmd(1, handle: it => $lr(angle.l it|)$),
979-
ket: define-cmd(1, handle: it => $|it angle.r$),
980-
Ket: define-cmd(1, handle: it => $lr(|it angle.r)$),
981-
braket: define-cmd(1, handle: it => $angle.l it angle.r$),
982-
Braket: define-cmd(1, handle: it => $lr(angle.l it angle.r)$),
986+
bra: define-cmd(1, handle: it => $chevron.l it|$),
987+
Bra: define-cmd(1, handle: it => $lr(chevron.l it|)$),
988+
ket: define-cmd(1, handle: it => $|it chevron.r$),
989+
Ket: define-cmd(1, handle: it => $lr(|it chevron.r)$),
990+
braket: define-cmd(1, handle: it => $chevron.l it chevron.r$),
991+
Braket: define-cmd(1, handle: it => $lr(chevron.l it chevron.r)$),
983992
fbox: define-cmd(1, handle: it => box(stroke: 0.5pt, $it$)),
984993
hbox: define-cmd(1, handle: it => it),
985994
// Matrices

0 commit comments

Comments
 (0)