From 67422e664b9e7089e8eb4de65c5a25b2817a00c0 Mon Sep 17 00:00:00 2001 From: frozolotl <44589151+frozolotl@users.noreply.github.com> Date: Mon, 13 Nov 2023 12:26:58 +0100 Subject: [PATCH] Allow non-string contents for math operators (#2663) --- crates/typst-library/src/math/op.rs | 20 +++++++++++--------- tests/ref/math/op.png | Bin 6576 -> 6762 bytes tests/typ/math/op.typ | 4 ++++ 3 files changed, 15 insertions(+), 9 deletions(-) diff --git a/crates/typst-library/src/math/op.rs b/crates/typst-library/src/math/op.rs index b4c360023..8f44b3e19 100644 --- a/crates/typst-library/src/math/op.rs +++ b/crates/typst-library/src/math/op.rs @@ -21,7 +21,7 @@ use super::*; pub struct OpElem { /// The operator's text. #[required] - pub text: EcoString, + pub text: Content, /// Whether the operator should show attachments as limits in display mode. #[default(false)] @@ -31,8 +31,7 @@ pub struct OpElem { impl LayoutMath for OpElem { #[tracing::instrument(skip(ctx))] fn layout_math(&self, ctx: &mut MathContext) -> SourceResult<()> { - let fragment = - ctx.layout_text(&TextElem::new(self.text().clone()).spanned(self.span()))?; + let fragment = ctx.layout_fragment(self.text())?; ctx.push( FrameFragment::new(ctx, fragment.into_frame()) .with_class(MathClass::Large) @@ -49,12 +48,15 @@ impl LayoutMath for OpElem { macro_rules! ops { ($($name:ident $(: $value:literal)? $(($tts:tt))?),* $(,)?) => { pub(super) fn define(math: &mut Scope) { - $(math.define( - stringify!($name), - OpElem::new(ops!(@name $name $(: $value)?).into()) - .with_limits(ops!(@limit $($tts)*)) - .pack() - );)* + $({ + let operator = EcoString::from(ops!(@name $name $(: $value)?)); + math.define( + stringify!($name), + OpElem::new(TextElem::new(operator).into()) + .with_limits(ops!(@limit $($tts)*)) + .pack() + ); + })* let dif = |d| { HElem::new(THIN.into()).with_weak(true).pack() diff --git a/tests/ref/math/op.png b/tests/ref/math/op.png index 863c66848f3af1926da4d855a22afecc72cd548c..089e51683e5c46b3efae1488686b92fb065d0349 100644 GIT binary patch literal 6762 zcmai(XEfYhyT<=Bh8b;)5K)35g6O?RO$b8t-n-~RNVE}cNQme{h!Ufhh!S;#h!)*M z8POu5_ZrN}d*1V&wVrd{=bW{!wfC3%(_YuU_wTxQtd6!CB^e_b005Ng_wMKc00;&E zVE#V~0L;@i%K`wSu=*V(gTU#{SyzJ;M*?>DH@>FS(!=gd!?~$>sZ$GfcIiF4L0Q(jICZ?n}7RIk2G< z1O1&85hibeERav1?=VRbm*sVgD)>(8~u_!8akeV zdO|`h+@NbY1`kjO{J7Pe^;4qKZTeO1*Xf}e@{5gG@!wV@=KCCOZnzLP_EWcIutUa! zfKmFh!MzSk#eVCnS;W|oDZ75tP93&-3=C2@6I^7$)$pP!NUqSkW{f!=057tta0srR z79=Ro`qat9>MC`8J#kO~Orfmaosx8@_0G*ODDqNA<{JDRVpqS|R;8;E4pW?aQBgH? zdK6e8)o3TVM|T!2_-kQpe-p}Ulv94ya~Oe{2}>pgrd``hevhP3J)>kLylCS!#~F~V zl)k_EkVV`D<|i8z#7TrTu2}He(jsc=0ZCghE1FTYg$ucFoJ$xz~#%|JUvWQyu;^|VvCl2=W#z?@sg} z_%dbY0a&_Z*Ke+3AccfEY3wj)^9FMb;EXmDkU19iYL|rEE+UuPZ}qtr z?|xXc?C*@JH}7?w#pH$r1f1-w-c^Pivo6>%000(EM-Kv&i8`q>sCyvExkH~%hbY_vBR5IT3$t%DlnqWDmaS*crk^4!x%UAH-ZqL- z$T-XW4!eAtOm+7fs~ZV^!Ad1G2lR{aY6#gL4?RQvkDomUJu9bvZXB&dOjeWwlLdUs zCM9DQJWEi-Vx2^G%b8@Jl*+~shug}GCE-fG;{#+7+I*=+gb8atb=QUJIa>rATpl3X zP~T0*a-1uic-7jSEqW6O{vOJHCsOiQ^J}=4+jCS;`8QS@i;3Um)~ecGkWb}(WG{mnWFXG0U3~-j!6`~u$aQxKiHt{F(k1#c!T$JXrBr1&Z zo8ZsNCa~Xr6#rTX@Vz1-(7zUi+`Q=__QO|{aRAk+Nai|pt~ZNOTuk*oXjR5 zh-+wUGdkeqVig;SxaX)J%QUF}gRE8kgB>oNBOuDr4PZ9JU$mS4 zF0q~BE8&Y_-Rfu7#W>#6-<@~+$29xj{$h`Q)o$|Tg&pxLUkkN7_Hq&K;n*6viYMaZ zo3y6qnAoUB=rvxLv!iI#dw8DC(s`hnb1p>pK%CB9P#e)~W?f*zCI8NQp~8>0nEbTa zSPas^s@n+JKd@_6J&-<$Y-i3_yh;%6LdWY!t!RA)v9B9lxuvK~r^x97%-c?g9k@OU zMWw>SpzQoFvc=v~#@(zcHw(zyF%0k{%&E9=HU+(OYkN_Wnp%q&DjQxXkI?L_0@?^L zpwi!Gd7W0YhF!_Lk#cr?*$uP-U&mvI$Hg3zT~@?j!*9EVJyag;eDdDJnxm zouGvd%5DBx2ZSgjK=5+57+*RUdkJ`(=qXW#6I9V}E@txE)MJZG%EV&TtHeGHIQd}{ ziYTbK(JN0GPFKk%Py9j1&mxS+)BVZ@*8nTnnU^w$*KGDT?E@{5W~g%mwpR@iks|A@ zIt85!fny^d3C-W#jHp@!6?+$P!^#>!@Y2w7eL&4O7veKOr zBj9-Ava4Mpd6H00+$bC{Jp?pT+`y!~C-13PNF#7|eNEe5o}dX)D8%;CZRP^PeNovG z#bJstz%1GA?kuArA0SYg-236Wlc?V{tS}~PWv-4SV=O%z&W)Kb%Bdc#A#g$hKJCY; z&Q)t+1>ZeJ{SBD!k}xKmPcS4nCd2VU1CzOqLu?N1=n=Ej6;u>#d+2>X7A z#0m8w^R*+wWjs5jz3sArUsmeu+lyiivJFFHFz65j9-nIX9vpk18wy-^>DEVr$M4E4 zu7`oB{hbxf;DgtOvw?yIo8lAfL!a8 zNV7CIC}#zsoZoPujGTe&Y?99d^=owuKw5$z&U`~KO=aPAlL>ykrTq(1xgOI01IYRB2^Vg(W&2o?5c}aO|;F|r({K&3_}Vo z77aqf8x^dujthG!UjWD@rhTXwC>&#BfFyqHogFrQsWc0HoWn@^?f#oD@vi>NK+%PA z_|MIvMwMSJJ=QyHIW;A-m*p{ZA-p}-2ahxD`lYP@p5Bz(QvZp0>PZgIFQmc|uz#yK zfx~fp05Q0+&2F$C48m4kp?F36wAMkz;)Afhb^Rmy@v&0?$d>OCr5(i=iXz(CY6_K6 zxr?Bk=8{J;ikt6UF;m? z40$q_PpCq!^LolDwds8t?RlY?yVYP$7(%3kkeBmjsx*B$Vwww# zce(S`YU-HDquQAy&iBxG0?h-A#TA)-VsTN)aD>i<+({*hW1qRYKi`%SzNv3p27OcUq1v1IOr%OO_%_E4 zrw9>Q)oZv34x!zJp*a6WiE_1)N3kdTv9TtXjvP_ZbDf1)*XJ!qiDRtwDlyX}K~u7nyH8z~q}+Fown=2A zC%fdIo?!izntONGr<1GX8^T*#B?rnKFtHmy7<{MMBHGi*m+@h=wzf zkECxs)v$c1$@-WrA&qU0k&WX zus+w_-NsHyU~Slz$0zLNkC{T2uquOL!! z_)ykaCF{qWU|^CyyoOVD*;MPW$K?QX}o0%oB(dW!S-8Hg#8mE-2$&8}< zt-pxeSO<3d>}=|NncnkIK9Q*!c)Z1kvMT)Nrjz5Swkz|BKuh$%9Y@` z7T>Q_?6PeqD=Il9W6ToQA2usnK}cqIS-1Pj7WV3aaG`r>zNJVsSc~IS;{y?DT!<7nJaoX=Frd_w#nbD5Jz3Z|NN954?ta-Gw4&?{2BZKJB3K zjMp*3_z)r<2<*J=Fhhq1iJLaOHt<#d(r_Md{-$NcIlF3z#SM>|EaJ7@WDQ0$|^nJ>y8@DN<0c)gfqWeeSyJ!8k~ zH?6g+^!C^Sk1uG=ky8#x>@9!QKe!fR6ZH-$nX$`cLC8~oF02_PYG=9= z5V(V2R9@Ia%A}3G;B9}Cu{E6p@hSIz)8qm6SpO#eNd74Fjf@8oNL3Jm>SuQUB4$xY zRIW8!G$fgeiQ>S--+q%8+{nC=*L7Yh*a}3hs1>Anx~&}f81&AW!k@EYe!zh0$_L75 zxQ!7)bb8Szvml1_(#+Zd1iM0m+-Ldo$XP1TEGUK_Af#Qfb^=kOD)czh&Xy?86MwRA zdC}2$vDAxL?PWJXaQ4AnM)oexb?up32KUO+D$KTsP@vzTy24_9k%AkPu*Ied5n)vSTDEYnNh|S4bAMPM z&1^moQ*y=}52=O10K0q9=r2jT*TLDOsO~kX2!)Kt1^LY&rD`ivit*AUxHa!9RLJK2 z$s=Y+sx+j~IFp<9venzIL}E z3)Q*@yuIu1%l3K#iBaiO?-BAw|0s=sg53?Y!P90J@7aR?w7%aUZ_XF7%OY&lU{`7~TM$O$gr-#DyR7QjmVyTjp`vlIQ0!_F}R- z?aQSC3AC3IBmE6lOf6;cNTyGYCjs>pD!@I_tnp*JnBI#b`t!lPb3Wg`rq_U+*$t7Q zIj#mKMwnLDTehuAZRZ`!y}l@+`r2;B<%7>Yw1a9>?(PUuI`~EMtrY!aPOXi23h?MM zy}&*!{Ozv~bF)`r*pAASc11u3_X~O67Umsf50Mk{g*9l!%rUe#Q9?C7yR@{jEPK5` zG^G2e#JB8`yFwRI2nC;BP=hBY@8MvI5uGqGXQ|`wo#kw}m(va}5N=IexXZY^YO#Jp zJoEZzXdfjD7Fmg5A3PQ9!`E7Kph2JaFBAFe|8^qx$7}yRl)Ih!{|x2ka7*ua(&X}T z*C%+w!n4m>4C=D-RPZ&%Pj@2q9%L53WMhxH#mXcD(afa)UEM>P+(M|5P!BETFOjKm z6fu(CVM-rtEe#+8&yIW^#sGanMEuqlgyr3%OI{iOMP6>G+jNp4#(32t0g z#t^NoXQZ{D{w2BI@^-IVlM(=yqaB6sgr(dQ1~-SiC!W z8(5s7s`JeIo?;(JK_x0vm;9uQRy@v)^EYumA&^DFjE#opS&Y<6szlv4ufFop*pJ|8 zU`ASgEK3{no(BlfqaDF(7j+FIDje%3)7m%~a25>ORi&zN4fUUGf@55 zoUeg|)J#v$F+Pzp_5biou;0HvDRK?DoGJf;Z~r66o`iX5MKD@{LEgHiHxU5iKWclv zcAhW$pO2JY1`)I2j#*bf&J1NBMUHvC?^Lg55hL+Tat=zXCEXAu7YPWC7%5TW{D;Qo zijnMODvHr1(mRfs4)!rS#y^Q}&)66s0$7v|`l)KncA;9SC0z_Ocbb|=TvAx=p8G-* zxS?C2p7#+g(#%KSO0r2u;-J8S;0g6^8)MB0N>?e{UHIV-3+F>e)@`SFCR1R3%>KM5 zu&jfH{wk!ceG7tADJo7>5B)qLiY(Dw1^4grdg9Q_#DD(Y6o%mm ZAPB9jge$MdpMVYk>UXv8R4Us%`wvgwFB<>= literal 6576 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 diff --git a/tests/typ/math/op.typ b/tests/typ/math/op.typ index 2a0f84fc6..14e1c6e61 100644 --- a/tests/typ/math/op.typ +++ b/tests/typ/math/op.typ @@ -24,3 +24,7 @@ $ op("myop", limits: #false)_(x:=1) x \ --- // Test styled operator. $ bold(op("bold", limits: #true))_x y $ + +--- +// With non-text content +$ op(#underline[ul]) a $