From 2b1649c7b7b0b1d6b72287115b39e972dfa0b140 Mon Sep 17 00:00:00 2001 From: jkriege2 Date: Sat, 18 May 2019 11:41:17 +0200 Subject: [PATCH] added slanted fractions to JKQTMathText + improved documentation --- doc/dox/whatsnew.dox | 2 + doc/images/mathparser/MTDarrow.png | Bin 0 -> 1543 bytes doc/images/mathparser/MTDbar.png | Bin 0 -> 1350 bytes doc/images/mathparser/MTDddot.png | Bin 0 -> 1553 bytes doc/images/mathparser/MTDdot.png | Bin 0 -> 1394 bytes doc/images/mathparser/MTDdoubleoverline.png | Bin 0 -> 1249 bytes doc/images/mathparser/MTDdoubleunderline.png | Bin 0 -> 1382 bytes doc/images/mathparser/MTDhat.png | Bin 0 -> 1691 bytes doc/images/mathparser/MTDoverline.png | Bin 0 -> 1232 bytes doc/images/mathparser/MTDtilde.png | Bin 0 -> 1769 bytes doc/images/mathparser/MTDunderline.png | Bin 0 -> 1273 bytes doc/images/mathparser/MTDvec.png | Bin 0 -> 1410 bytes doc/images/mathparser/MTFMdfrac.png | Bin 0 -> 3276 bytes doc/images/mathparser/MTFMfrac.png | Bin 0 -> 2994 bytes doc/images/mathparser/MTFMoverbrace.png | Bin 0 -> 2627 bytes doc/images/mathparser/MTFMoverset.png | Bin 0 -> 5504 bytes doc/images/mathparser/MTFMsfrac.png | Bin 0 -> 3283 bytes doc/images/mathparser/MTFMstackrel.png | Bin 0 -> 3147 bytes doc/images/mathparser/MTFMstfrac.png | Bin 0 -> 2957 bytes doc/images/mathparser/MTFMtfrac.png | Bin 0 -> 2245 bytes doc/images/mathparser/MTFMunderbrace.png | Bin 0 -> 3335 bytes doc/images/mathparser/MTFMunderset.png | Bin 0 -> 5381 bytes examples/jkqtmathtext_test/testform.cpp | 3 ++ lib/jkqtmathtext/jkqtmathtext.cpp | 38 ++++++++++++++--- lib/jkqtmathtext/jkqtmathtext.h | 42 ++++++++++--------- 25 files changed, 61 insertions(+), 24 deletions(-) create mode 100644 doc/images/mathparser/MTDarrow.png create mode 100644 doc/images/mathparser/MTDbar.png create mode 100644 doc/images/mathparser/MTDddot.png create mode 100644 doc/images/mathparser/MTDdot.png create mode 100644 doc/images/mathparser/MTDdoubleoverline.png create mode 100644 doc/images/mathparser/MTDdoubleunderline.png create mode 100644 doc/images/mathparser/MTDhat.png create mode 100644 doc/images/mathparser/MTDoverline.png create mode 100644 doc/images/mathparser/MTDtilde.png create mode 100644 doc/images/mathparser/MTDunderline.png create mode 100644 doc/images/mathparser/MTDvec.png create mode 100644 doc/images/mathparser/MTFMdfrac.png create mode 100644 doc/images/mathparser/MTFMfrac.png create mode 100644 doc/images/mathparser/MTFMoverbrace.png create mode 100644 doc/images/mathparser/MTFMoverset.png create mode 100644 doc/images/mathparser/MTFMsfrac.png create mode 100644 doc/images/mathparser/MTFMstackrel.png create mode 100644 doc/images/mathparser/MTFMstfrac.png create mode 100644 doc/images/mathparser/MTFMtfrac.png create mode 100644 doc/images/mathparser/MTFMunderbrace.png create mode 100644 doc/images/mathparser/MTFMunderset.png diff --git a/doc/dox/whatsnew.dox b/doc/dox/whatsnew.dox index 73b292c3c1..163b557d32 100644 --- a/doc/dox/whatsnew.dox +++ b/doc/dox/whatsnew.dox @@ -55,9 +55,11 @@ Changes, compared to \ref page_whatsnew_V2018_08 "v2018.08" include:
  • Updates to JKQTMathText:
  • diff --git a/doc/images/mathparser/MTDarrow.png b/doc/images/mathparser/MTDarrow.png new file mode 100644 index 0000000000000000000000000000000000000000..8a4607f61846d59d243e745736766589bee75c71 GIT binary patch literal 1543 zcmV+i2Kf1jP)Px#1ZP1_K>z@;j|==^1poj532;bRa{vGi!vFvd!vV){sAK>D01|XXSaefwW^{L9 za%BKVa%E+1b7*gLUR4MM000GkNklSrQamt7P|_$G3!4{F^dS}!2n0+a1hEL>i}+DJRGuG=2!aZVg%Q;Jx#xH| z?#}Ga?&{u~WPdEOduHa$od3+6nQQJbBalp>5Hf*6$OHItfq?<8 zm&>iMud_8>;s~_7yo?beLEt6EE?8V#q?iF#3R_K}l&Zbb!ol2}oSg871*<@a{BH|5 zam&ieXy~}+PEJmuCwHY#nc5O;^>KWBOch>lTMZ8nmz0!rb#<+*tk}kH9pC2WCXLUL zt*tF?>3}Q^u)Dja?`9%+Jq9z2iax zYEF3aG_5Zj^Ze}q^4e$7X=rGusi`S1FQ;LE+S*$7_(U9muwx-mcX#*N+FI#xs;a8~{{FqaJuXnh5eT9rPn?ov0CE8tY3pHsVTqCDRhgTcYi@3y znVGq{xnYx!5P>jI3>vda*EYOx!4sH#Dss;kg1+V;8OyO1a5J)jMNMt7^o&_woC7xH zFLbm65GFiOAV7Nv5(xE>4$xBnze2Aay-g4;Tb+Tp+&F(BqL7-oiCKrgc31%A;nX&+++c~Uiq;Y6b+%oAsTKo~z4nC={|0?GVfs_}{bUL;fK zko@~MDmt%u4#5C{WM|=pO$t|m^z|3Iz*q7-4fMEUY*Ih$%NMOppa4w?SAl>ijYwYV zr=w0BAVzxjpzr8x%3~8q+l@g*5J=L{i%d1pvqwa_92(K*iOv8vfph{w9kwbW2qcG& z<>@3~Zm|sEijFN=o4|OBai@?1>8WN@Tu2ew^V&0t z$QX|#0vV4T*HHB-28?1mLTSQtsLKfelH4AW2*jr6xC%s9YH^1bE{F&nTmCdJo8KSpyZQVZb4! zcSn++9r{cZp^XCR9&J-%5Qrkde4;(xJ(oARiD4Xw78TGpmst>X@Rv;{Jm)~D=r*(# zk_wCh(WpSc(V6>o?-UPx&^xsuzWs5Wj8bRj&u2dle){bXsUUT<<=x6(ZC`vvmB0Mv zjj;|rs7cibjDBJ3lc$b;Y<}>3H}Q_Wvg1D3Hg;e*jwZkda9hOu7I7002ovPDHLkV1n8*xX%Cp literal 0 HcmV?d00001 diff --git a/doc/images/mathparser/MTDbar.png b/doc/images/mathparser/MTDbar.png new file mode 100644 index 0000000000000000000000000000000000000000..287a6e3ed651fa80e9d0b688dfeb945e91cc532a GIT binary patch literal 1350 zcmeAS@N?(olHy`uVBq!ia0vp^sX*+=!2~4TmH+MlQjEnx?oJHr&dIz4a#+$GeH|GX zHuiJ>Nn{1`ISV`@iy0XB4ude`@%$AjKtZ7r*NBqf{Irtt#G+IN_oCF)yyA@flDJR~ zpca)FpY|IvM6gl?Y{<6Iz%k3MSVrF7aJRS$M3U0Y|G%jFkQs7wWvQD5o zLvf{wQgV6*t5htj$!FW2h7 zP+Ba{%*n^kzjW<^KY#WdNxgaP+O&%510mlZA3N5TVGtMjNSApn&+C($f|jik7ZV9p zc%-{w`}X4v`#M>H0vB4D%gV}*WH-3wv}QeeC4BkX>9CDcr;2`zD=H~Da!OQ&>2Kn# zDo4RC*QQD5uWsMDQ}h1s<6FKmZF_ZlbN|0bi(ZR{FPI*t(Gbl#_s;SgJrNCGzD!;b zSCQYtSbXlbvYp3a)d;DatibFyU%5(S`Hyr-NA^4{IFY{5z?)ydm+wgG0fUK+%#2GV zb)Hr|G@K%&;-s0Vl;B^!d$~cyM>Dpl(}y2-OW1GOXM4kViACkrs+VU%@6Vt5>u*P8 zvfBxFe!B(Id)U*L9sR|%$}VH#k)-GP5@oG%74?}J8#a0DjkBtb;P}z?PCY2~4M+Fv zyWML$4}OeVI6cp~Mj%}FYt>C}%M_qf7oQl@dhqy{RTFkJRqbs!$INE7 zGJgNI7Y$-l?GF4a61YBNM%=agH37X}E(w`UY-M z^|El8>VEEB2LqFSGMcPcFid*9pK0$F?`ePZ5}s}JnApX>XkE;O4=r66mG{1J5(tmh zm~f4Iwxn;#w#D6XXZ<()`gr@Zpvn9$B^|?qZyouCFFc)f$yLA5bb;Lz@!GR}{FffI zuqS;ya^cK^(+{)xV`i%_3x8v?cA1(;^FxlU*UMCU*p-4r!zaYoM?4W6xo&n5w4jB-%NZ)B5UJZ%;wbiPIN^=v&KNU*EkV?nK9_r1Ls+ z1^76%4g^OR3LIe9?z7)Lb=M!WP0QE5id!}P?L|{(%e@u`XUr}=EG}rj!mSv`-R#Z~ z=Xy(NMZ}Nrm{b;bueUNsHeAZMt8ukEpLI`r(YJTUJ$f}y{9VpmA#vo|^!dg66Xxyx z@3Fsk<2IW=RiCfPvIVbKaNwQDqrCmSZN=wY^Nxi_e+5as9ZD z*{<#zF6}F-(p|SVRVgK9(F4hEETSPg5dzH7zdy;YKNP}M_WiEA|Amyp4;npP literal 0 HcmV?d00001 diff --git a/doc/images/mathparser/MTDddot.png b/doc/images/mathparser/MTDddot.png new file mode 100644 index 0000000000000000000000000000000000000000..ed00b48b28897c04b9ce532b87a6c880bec6756c GIT binary patch literal 1553 zcmV+s2JZQZP)Px#1ZP1_K>z@;j|==^1poj532;bRa{vGi!vFvd!vV){sAK>D01|XXSaefwW^{L9 za%BKVa%E+1b7*gLUR4MM000GuNklA@U`$g`RH?|I8)tqdZydV zb8UY7p;ezy8dPfv4&=QTGsv$doYTb-t+CKkZ+P-d%-6t1eO zimfH3*y;=o4Y2^8H#|JdR-dJ%C9d$ij*bqtmXuWWPzrP%6xTBPb|r0Qs->S(0uXlUx-;8``=_>g?_9RaaM|e-#xKi;IhF^|`&h#a{vH{pjc@ zTirkfawag~%galy3otM+z$xw*;K0(pFVTwY$@+Sh$#V za34Ldp`n4TK9iG^T;X|TWn~W!4_x79c6OE<_^XDkVW5`WVlNr2>&C`L3W8CvHA{DQ zH&wwWvgb+FDK9V2M;$B{Zs5b#0LRD2@zhr#nvo0H#d}VtW+I?=jZ2^mKOTZ z;NT!zv%o@Ct*x!_WUB*Bowo(!r*08eVy2ZfKR?g!$#{8r+1c4SIy&O_Tn-NpQ41e_ zcT+rdfXvPEJR*B=L6w}Ms$((>z`0IF+Hu%cSX^ZJ{}7@MdWjxmKIv|T0#{_gv{O}# z93ihW$iC)~Qf@#lR#sN1Ef!s9nm54#n*QYA$)Iw7S7>zNE*#8MFWU>G;^09@yg|o@WrH-`ggNjhcq@FjKWFY5_ zNPYv92Z-GGE_Gzmfe%~5h)~BIF(xr5!E99|LMi}#=jVfKwEwv}<^z1bL1av1tGpGc1vr0uIzrIg;e2Nb;{jo`6Q>P<7-NBj;RZ9qB@<9Qm+1KfV8hnqiq(&FG=HUwru$qzOhb&-<;v@nH&OK&!96{}ENv4KobbBNsTM zKX41}vGqtFGYUfX1cwa5QW=Hd7-byugyfx18thHXALba+n@t4pime2V3d;STn>v!v zyi*XVIvS}u8mT%OsX7{|IvS}u8mT%OpR+ni$z=WoMBLRR__YnF00000NkvXXu0mjf DTZ+-) literal 0 HcmV?d00001 diff --git a/doc/images/mathparser/MTDdot.png b/doc/images/mathparser/MTDdot.png new file mode 100644 index 0000000000000000000000000000000000000000..8eb1493a63dd464713d12994ddeee3342e91d110 GIT binary patch literal 1394 zcmV-&1&#WNP)Px#1ZP1_K>z@;j|==^1poj532;bRa{vGi!vFvd!vV){sAK>D01|XXSaefwW^{L9 za%BKVa%E+1b7*gLUR4MM000E(NklB!AmY0{++9Vnz*6{GKN|hv2Q&Vbf5)Be-Zf;JcN|KF@4Yf9j28nfZbF;X(I5|1l z>2w|*9@N?-8YEWpX~hbl6)S*NtN>cE0*Dmr{QP`(cbC6S_ymm?!1;*c|)S}PMH z*2KhwyboxrH3ULQpYNj96elMqGN4ymZ*_H5972D8|LyIqc2pxqEVjeY&=BwAZ}ir1 zAp^(9$7(eokn|#%nrgGYzAiptU|=Bhe;YAk0im(Cw^xvBO0k)1ZEa1hPh4GHNw)H` zeoaVNV`F2u?d$7XSy@qQWg^9@4{~&cQas%y?zXnJ^uBl8-`|tnPft(vK7oHQY@F1fCGdWWqYy*2|ckihjOv_XePjF%Mp==c055)NLNIDvBxM9xhsDW z*>GoPN1i1lGb@I34r($mO+3g%Ak#yMSUf}ezzgX^ynrp_b}KP+wN?h9_2KS;OB&G! z1zR-ID_1O*TegBja=F5;3H&BA|lI6^AO?0Vi(VwbAecVzjoxrln@}6 zTQ@?0Ti)H1%wngP-s7RzJm?kE0omW#3P^)exvt`#m*sOBd1YcshQ`A zRiLj&fLP#GfLTSK-92ogfr!-ZVSgK_sY{+%)?PfRFtJ?P>PZNIT~(p}LDbeFnZniHP5lJe(b77FT76`CTJ z4FNU9BI>vtVLj6&#yIMTRa~+H=4`7W6fZ(Cl2*Kff~y`-=R{IREH&j2AeJ2EoogD} z5r~w(bct}Dp-!o_<<YE z`qD~b$qeNL#3aQvNH6dmRbs)(k(V0mA{VERV${X+`Dcn{r&Id-p{qLS%v}fU_r67JE+c2A6r|U=$T^KHwpcPN))`;4y@R4V_3=&2oB@1?_T}J| z;;)*r@M=iu0_0(Jap@vcEcq&^Qi7A8{yg)pf2@Wt-Y$6q)_;BW17-Q=U%UZw$qQ(7 zc7A{L*=rg6`I|2@$H>J<8746J$3On^#$;aUF<*V(Q7=hC8$VVo8S~8#@8worgeC3A zUfE)~!h}2V;$0G4NRX!#7k-EozC&C&cxv|RZ{Pj)QN{pmEL=L`IfMq^V?C!Y@#7i4 zd-p+Iba6ohbh+2jaC6M`cE z0%*kwpcN~CR;&P8u>xqt3gCYvR()ErD)adGH(X4I;5nHY!2kdN07*qoM6N<$g5BMM Ao&W#< literal 0 HcmV?d00001 diff --git a/doc/images/mathparser/MTDdoubleoverline.png b/doc/images/mathparser/MTDdoubleoverline.png new file mode 100644 index 0000000000000000000000000000000000000000..09636bd0fadc673afc938cdb4f24eb356328b483 GIT binary patch literal 1249 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 literal 0 HcmV?d00001 diff --git a/doc/images/mathparser/MTDoverline.png b/doc/images/mathparser/MTDoverline.png new file mode 100644 index 0000000000000000000000000000000000000000..75005713e73f231b3a3c6b1c3bba4cb2fdf33f40 GIT binary patch literal 1232 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 LNkvXXu0mjfIgl>w literal 0 HcmV?d00001 diff --git a/doc/images/mathparser/MTDunderline.png b/doc/images/mathparser/MTDunderline.png new file mode 100644 index 0000000000000000000000000000000000000000..d30707b442dc6abf9f35b725247126f9c767064d GIT binary patch literal 1273 zcmVPx#1ZP1_K>z@;j|==^1poj532;bRa{vGi!vFvd!vV){sAK>D01|XXSaefwW^{L9 za%BKVa%E+1b7*gLUR4MM000DVNklYx z55ZGVh~RBc3gQcxpZ&|Swx@e$duDeWr9YZv ztgfk^{=2)XH@i;6ko1Zp=@m!PD~_aB97(S@l3sBnz2ZoE#gX)iBk2`K(kqU+>(%e~ zS5{UsALu$dIugGzUT0WFqmg*rH4W`A=pwTp0|_oJE~GEV>guZaW!d53p;+5NbLVk) zcULqR?<}$UKrh|ev#pfo^umUs3Ph|q&d$#0&_c05b9w>YINIH1px3!P<{HALgP3xr@ z3gA{jBhM)gBQ_u{t;Mewz8iDEn)CLE2kE#0TZ3H{a*e%SA+KveEVz+{7z_q{7aP-C zKr}cIlL6C21Wp8aBRF`X;5DQY1VSodAYiMzJyV#xSf>VB%gf`77#}L%9&8QCFJ7@; zx^l($XG_U>#JVveKBe8Om59w7PaWN%& z0bK`7Y*xR1ZPEc1GQETS3qE3< zf^xmIoN3ChgC20CSU!NL4B{m;|2xo2hh)mH16CfJ6rorUb?1WVE0mWO>18*9n5sg7 zG+)@r=%TS2b@Ym=U?mdR`Us+y!htEqxjkqx0d=k^b@UR`bd-4WqOZ~MARUpgAm%HE zMh10?uPwMXPDrm%JuRik8SDKWNH3;Q5Ibm4FHVv- zBg~W00eb;HWtttKiiFaHUFxV*;vgX=CGhHHrxW|@!mk%1BD2_9uD{v=?kD@;a@TNa7s$) z8icUYXx{MZ#jgStigNb-WW>f0g70S zgD2g{lkUqefBrc>Y@xBVz51{rQL+rrh+~7(=gr5@{Ig&nw9r_$di8d`F%Tj$kn;{l zf(j}Yn&X4E^ZPG8g`pIj?&q)HqRYC$f+il5z>e=xXSV!U`DP0)uwR0JIvh4&fmmpv zvHbb#UV{^jl!62TQS|5m{D}hyL2FeN`Tv39&0lqJqwMYNJ&HkI^Rd3ZE>1OAUS5`P zm6*F;o12>wehL;A7UVS_ynu1pIFN|NTwnhO-DBcw5IJs400000NkvXXu0mjfBWg{M literal 0 HcmV?d00001 diff --git a/doc/images/mathparser/MTDvec.png b/doc/images/mathparser/MTDvec.png new file mode 100644 index 0000000000000000000000000000000000000000..f2f6c52baba742c1530748f472ecd6831b5f909b GIT binary patch literal 1410 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 literal 0 HcmV?d00001 diff --git a/doc/images/mathparser/MTFMfrac.png b/doc/images/mathparser/MTFMfrac.png new file mode 100644 index 0000000000000000000000000000000000000000..5f14158a9c28e82b44ad389d49ec856604e66cd1 GIT binary patch literal 2994 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 literal 0 HcmV?d00001 diff --git a/doc/images/mathparser/MTFMoverset.png b/doc/images/mathparser/MTFMoverset.png new file mode 100644 index 0000000000000000000000000000000000000000..6e58eee22fbd534d26b45be920b777af0cc0de52 GIT binary patch literal 5504 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 IhuXdRe}`{u@Bjb+ literal 0 HcmV?d00001 diff --git a/doc/images/mathparser/MTFMsfrac.png b/doc/images/mathparser/MTFMsfrac.png new file mode 100644 index 0000000000000000000000000000000000000000..c841f87a942064d127a1e1d4412586010cd7c72a GIT binary patch literal 3283 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 TNC5Ev`T|zwHrFf7+@AjjNq;PE literal 0 HcmV?d00001 diff --git a/doc/images/mathparser/MTFMstfrac.png b/doc/images/mathparser/MTFMstfrac.png new file mode 100644 index 0000000000000000000000000000000000000000..a27d81fd5357f0e19adaf0d1e3216d8993bcff53 GIT binary patch literal 2957 zcmb7GXHXN`5)RTrqNo_@9RvaC5PAt0X%ZlWP=W~3454@7hGLYWNC%|~N(h81B?#mq zAOg}A>7aBFkq*)%zBu#dy73H3=RVTYLdaf?lRJR7C$4qKmdTX;}7V%eM?B$a#=6+p=nEhdh%%ETU}HtLZ#>xxT;lJ+O@Gfcj$ddbdZeH;qtFpEBxdhvL1+NpfOW;x9>V|sg#NbeUc_uiZ&3Xqr4DKj%zRCXX$O!*c3VFK_@#oIYk34A!}n0q%@`&HCUjd<1^FPlP*5n9DEC& zAFV&JhbcBzFn!tibxFeYSTGK9vspTy#9lwlmdvk}qxCm5kyj(c6rQikJ~U>aI1NGn z82DUbJ{~Kq%NQ!}h=^m}vgI_B=#$pQ8|gID0=mtlxh8MwisCdei*RyE08NB;4`pyHjLW#}d62o_qd;*#e0caw>M?zUk z*xm}kIDLXOWIG*v2B;N+DU>yV49zn3Cn$!F~;5rsg@jT(G%{K)?a# z8vW5n$OdyDG^EwD?I7utxBY>wpBP$xIEk~!h`lZ58$Vbjt-OuAB4P(tEhk?fNK`6y zP(rt!$vE_qH9|M7kcM|vU8A#Zj3{xd6aQzF4L$zrhh9Bg3laAM;mKo!M0>G-b~*t8$cb zA{X$6hs<`5atzw{#8Y^|=yJ+mEntK34-)9ltiN zlxU`VsBpdAw4Lp}F!Z}*Mkt8?th&kgK%-c1dT6viw1B0OczmYnic zRBM>v%*4H0<{ZUnXQvT=Fh2o-()f;s5+~~JU6hwa*MB=$AE)t5C*jhdfhiNUR!Tpn zTpWauPHsHXFE~J;cupnNpiQ{r02*05V!2Y~Kp_%q5w;+5d(snyk3RcvE@`Et&j=|>b1DN=T~ckBp6=1tmsuL=?-Li zM_Zkn5oN}58&n>bTSIHxCQ5rmjLFnDF&Pxai6w3JSlnkK{82M@v@BUbr%Zy5U$G~F zdDuJWlTUXYMl%NRJavqxaHW^=)0(y4sek1~5rYr*RhU}*BpCaQg(qi3R9!9K@CDB3^u2nG)xMp}$^y>RJYva+(I zR@t~K;6A4CxQ9v;g7U&eTcO7b=^n8>^EajfSm=fPd%fFP+Qx$*I%omf|0x*Vb;4jU z$GgijnCS*@tVvA8!?-K2jq1??+2{0Sds5ty+b}f+f1^BS$omDLq1*FGj6oC zZQQN|OiUqJ3;*?Ey>2`Jq@eyvA2;s_gh5 zo^)jL=wD}@NpP8Ew)?#;PL5*jcD#284(ri2OmU?b2$coBN&n||y(O-IFq|<|-KsII z9Qo_0I&ynj=WH~zP_-aq0rzcB5Ury0?t$-6Bl6S2l(B@db|i>~od{r->ay)ZhRcqz zIn3d|Qh@vLc(K)ID97g1Y`>`BOw+G0-rVW@lf8Mn;(VvbR6Ko2o~m<#r+D%E69x$y zI*%{0eU7X94E#{D=O2TFfkcRIMRHKzD!8bWP1UdM`G+~^m`u^1^xzNFvVjdlHt7;w z&5HU+t9p7gm$4U!IK}#Ldb-cZv_QM%EJ9J1_@g^5=y74-)JQ}6xxYWmEmMe-45M8{ zr!wgr8j+jjLK9)?!QV4zRc*M$DhcKc{}dl>5xIuVK>xVw+r&0wTnJeicv6GK*Vd?3 z=T49Trtg_F7JGHYW<}^XCGjEBw2fM_f8IlpQAQLhd`R+Wpz^US<)XrAqv%bxM(K3a zIkn?CWbc%cu33soiNf19KD&d0BZ%`EIcc=Is#Uj}c2Rt+BO{WZDuo0W2p4>;U9<4X z-%wH)XhQX0BO!x(@ZksTyXAE>kR@(5ap>nISDx zJ}GV8*C_=BLWo9IDn*kTfcMAUt?qBFY}mu4=YRLTxPH9hCR7e_PCX(I1Bg??-?p~4 zHa9mnHb%o)xR4TASgPx#1ZP1_K>z@;j|==^1poj532;bRa{vGi!vFvd!vV){sAK>D01|XXSaefwW^{L9 za%BKVa%E+1b7*gLUR4MM000O)NklFcIG>8=YHYQL{U7b5YX$%>S!_=O;$I!LQzV|1hhVyY`o_D#_D8!oAdt2 zo*Poz1S1@+LgyLV>uJq)qI*g!(~L}JOTa}|zs{9aNaJi^(`|<2o~;%$uqc!ZDC`Zl z=&eZ;XvnDH^+rxlR`X(S)(%=$~u8+ojrt|&!}JlB^!FWnJ}9skNHV% zew()%70uP$8kqY0Zk9chxv|Wei?D&_#U|yX0U%izlbK>Im{lZuSI-X8p(bsmQ_*4K z3nEJgPx`iRCp8Wj;QOUM0wG_%y~L~~b2Qb>#=31RdxIs14bxn%1dP*uWD^(Z)`#M) z^{|>3drJoFjye@&5lGy=yoF@CXev^vnaXScsqu0ND7*QTWR9jOxs+Exk*o(f>FFva z^H?^aMW|Zp?*Z;zd67(lAEXt9+q{oO)7BfRR09zQk^k zx0866#RVr55X~Lkvz&2j_Kg`7W0{$H3)wTsEXAaA&9p<=L<+?qB}*hV=rCP2N@kI) zTL6ji)C|e2W~nb+mc~fN#*EzbP`nqAn}MMUC{kq1n>QhR6~#JiSU_geXzDTzfI-|u zOe|>xQj~V6fD|th0sV9HCenZR@0TXBvns8mHddvT24i!1bVT)rOh8qM?5s*Fsf|@> zrNP+zd;2!k8!`cXdG)F^k)2g(CAG0Ctuz3ei-UtiK(}sDy&)42l@+Cwujl8L0>U*U zDl1AUE&(Y@EiM6}ws=8Na*W3~23;H;a&d~DffO%PKuR;dd^vsm`0Uv;E>2MaDUEQQ zfmA?BEh-?z3l)&!g$ih4xO3;uDCOnLmt55eZoev^#o)z@7au=H6$tzhPQ9u-nemNe}Dhs!-tp=Wcb2@fEC5~xzHh1eq90@ zBoNK>=g*PBzg=$SP;6~&(KDrEs{FbHgxcbTMaM)PWO~`kKJ4x7A%b$DLtK8B?Xxfn zJa~RVJ-uw@*2q=tQbz6kwigf{mU!WZU2c|&FT??KgBjsMd{oUIUJapWkZ0Q;Zn1;{zgUM-$}Lkb99X*7^9oy*K& z-iJ^EBE?{k*k>4Fkg)}1PP12wr{9nQniHV}q|5`CfN%|o$~~e2iW!%HB0&WdGcEz4 zws>LQkX)L;4Z0=r;Su!qG5+Q9T=D!YY|pq-r^9;}nASFdt|*}-C<2QJJ= z2gCEB;qXd%@ZbUWQotR7u3x`SJ+$V^l`GsA@cb-nJRYAm;PdCt++cQm1k}Osd}uhl zQZ6qqxtAF^KR@R#+H!Vw#(n9_c*PSHkm7|3Nb$lYpg;aTb|kX1DyNo}l3E48)>CZJ#c+^6;a;g{c0EVZ$c+E|rVGBz}^;OFgKX@F#G9I3UM^TZmyal$Jzb#Iy|}r)DAeK@0Y{|DF(5JihJ>W;}+D$Z(QnrdRqzzwZ#jy zz!}ztb`mIVroN!@a3NNq*T(Pee^_{Oa)KdYO}T6l_IF{lfuJ7RL&yWV)H^gV%6Ivl z(V4)g9I~eGd~qReS_+6Zka&6ka;f9 z&mLmi;xQ9*{H`LTfaqYs1^ozOb}(IX#;jsrAR;(M5>h~TIv6+fyy*D#!lHv2i!grE z|7_QVfJmwcJOtM&&FCwB<2XgW++wY|8u$#Pw5G@SO^0{K!5rf`IXU4%9u-h5^ccV0 z?_QcSka@gHTmr&1Bq}Qd2I44xkEa1H0VzuYMHhs(Rd#w&XxA=H*q3cQ0LMAQjNy@qhPH1+>)ozk8_yT59~? zy;K1yUZ{W+FX{y}{_x?`)>c(IefkuZYEzYlZ*%uPx#1ZP1_K>z@;j|==^1poj532;bRa{vGi!vFvd!vV){sAK>D01|XXSaefwW^{L9 za%BKVa%E+1b7*gLUR4MM000brNklaCW@`bj)2mAQG{wlY|rpAKh=YnhjHgr zzjq3b2@A8aC0+wezZhKD>C_$Lk6tA9S!2v2YHr}1^gWJ~#^KS{K4LkvAmV5moMFl_ z+N|9fJqIJ1Xp|e667*WsmIs6-KG7gpnsy@028?^{&3-n$9$X;S!3f(8C6!?146UJo z5%c1TIEn)ui1ieW-C)IgS2p`*FJBnk8glS%696rxD4%ix!#Y==KG( z>*RGL>q7^mlw8CCrw-a7~GTuW6#8x?uE0@ z*&Rum@X9XTqPY>*vyrp6If5d8mu=!L5c{a33F!`TvLK3N{%?Y8m;r!giJ zae9WtVZ>cNyhXYGXt%>G(?63>}8}wg11qt zYj#z*4obv!m*TnMwRD5m-WnXdMY;ZHH+{B~)z1w^!pJs_3lp0aFm9J!4K-wM2T9ga zVag|GG@>W?V9B{>VyiiVB4+b;O6OkZ)NWVhWTWuxm5&Gq_xjsfNG8#42mvGmI56f7 zj?@sfZfEOc;^PGSA0=!d86#rOt3im4cY_D342suiBa>~2#|{Y-EUoyP9(dXT16&(> zc4A@@2XD18-q8Tby#pB~7Q1)W;Q#soQiJYZfOSRs%qF{W^K!O)z z(jBW&TL!GH9T9hyXn@kwxd*_~HDZdV+>u~iRMA#;!L&$9#Im+DX{s>QO)xugMEneG z<_T3hf%m1mJF%jKh>BPVof;!lq&|+(N!9u|BqILTjT=Lf`Zz`>sgGlH zQnfw~u89Br@yFgoAIIn<^>K_&QXj|Yq;Y)SudTiN{B!(EXX1+3WE7>7y!+w{s1*O2 ze2j`%2?-Uk5e~dBtP7*|r(D&q1q zD&noJt(BFPhYugl%*>#-xG)6+mY0`V1UF+UL9t;CBFGNX;%GM~;?>nv^mB1>5r?O^ zvk@B`8>YD5M+c0x*SmJ@nz5Fkz_11pWH)JXv>V-tg}J#oMura1f(u0X>eVY;VC8jT zlM5oq?$F|Bj}Y;H=jV}3raBN1BSz1WMW6^5PZpL|Maf|eBFOI0;%M)D|NT$P%lOyi zV`?AJ&CN|l3=k;Rnf(x{iju<`M3CK~YondS@xQOXMlzX7L6nRb3l4{OW380(`UoP( zj?m(0xAxfyIRhbLV=4p=OsuB>7(uzq0j8Rkd5W(^|9Ch6vAwYsZ6R>j=!`)08PK zLyM!`sE85b%*+hV?)qOb8~a(2^_HOOj&8hAJ!m(By=X({mB%>Oj=r!7Dv1G&rUEPg0PHr z03Rg+dSwc#VEkdF8|iG2ME*7lva?&Jv?N^{?IeyzFE@syaeU+vcKuHe{`$`~rxXcx zlwy2ufA$Zj$WG(5<@j9q!$)jdEJ%(I(~bLorzeBV`Y^~}{pPn4WY#B}#_^H4ckFhu z>-qCnD+mMrh*=zv=#y8<1gK+gDHH2)j85|UIHT?LVUp3tri*ieQ;KAd_KQNuZ=%hXG0}1{5cfa=vsrDCkH*em=s=9jhs>v%# zAs`_L334)di`qqe_wHS^eg6D;lUI~NoI7_8Lb`YFp2=I(E@He2M%%}aAK%^GH6}%w z5Qyj4v11UD_f3`BMZB}KbL7YoH2?VVV`Ea333>GB5hQf<=+O@!J{Xfl?IH&E@83rR zhYufq@#2LsDazP9fBqcefrKC=V@lJ6i194AaNz=i*uQ`OrAwEdJbALdzW$#n=Iz_J zBM(<_fSb8tDuGBK6$l2hfp{)nyqGs=O^6uaP;veG^?m#HAsPi7Jb3Wr$&E6!dyR)Rqa+nBI5dfcS0eM?CH~|AzyIj%o$a10b2Xr z2}R(Wpg`YBFGiy;>=ZAngKzo1eEHItlu1w#x6k(W_Ag^_VNA*-sEC!|Q4uS_qayaO zxw%>GcaW4?Q4uFBE-uQKg|3zR8O$MId7yr@W%5dCRKza)7Mk-F+zN@;NQB8NrBM;P zP+|5jArxk7Yb*O9Zhmt%``-j9g&85@Y5VMid|%w;%P}`Mr^ki{(9ce!;FqazGB)`V zuqqXCTO=Z$w$Dyr@2o_5eD$UxZU+7AL<%ae8#|YTn%3bXtK0o45RG6P5vg z?g`)kEk8yEyS#;hCFlK-GS)*MTx8GpXae`59smc_AM_brU)UvJYB}+eg&aB4kRXoB zw2uj^%4$~>W*0$2@*7jo925p0ILLZH4A3k71fW0Kp=RjMSgoJ3q%@7y`fplL ztue(vhz1dxOpM$v_reG8ny_h;2@n-=0;U#o32`ussl^s$OJpKq<+w@(BGzn?*Up6m zoVTu}9$8~Nh&xM8-fxk`$t-SXmelvYcmt@24WbD?XOV@NoSB{o)|OQ&$SW#o=N_Mp znQnkt9%k^by*>-C)h?hSHt?j#nTC$b?@X+%Nf9$U1nOIQ3UF_kh1wBR#0I{E!ui4b zP%c0$5|8pgUQro4j=apWXgKnE5#R`3zO(J3A~wjI1H^ghQvlY}yokr#Ss`4z%UHdp zAV5^a5%S^*+c0-xQ1Y0_N}3n(MB6Iv;Tk&`C$;3}#7eTt z19?Ry?abzdjWtP6#{vE2OFdvrp`o9hh`_ws(=SIxc{JN^(2faf$SM!y6_vE}Ekb}b zNsBRt*a2KENvI|0XsFOQ1!RE(J5e~K; zs^S4AYp1_ckN5*z@UI>O*HT2_jA~&=cmN%T1+kgp08tSu!J{Hpf@drdzxm`7ruW}{ z2jfpmOJd0;^--U^RFe-?nk(Wr4<68iY5SXRV0`=Or?$~a>Z3k+saBu&>+3KIiHLW% zx8HyJt)$&IZ(!W{;RoC3B=u3Byi}jh&W}IBVv~qiQ36FptOSpWSP7hd|Np_RCE*N4 RV&?z=002ovPDHLkV1iJAKw$s? literal 0 HcmV?d00001 diff --git a/doc/images/mathparser/MTFMunderset.png b/doc/images/mathparser/MTFMunderset.png new file mode 100644 index 0000000000000000000000000000000000000000..720236cc3bf997eec6902e0d1993406b34977e7d GIT binary patch literal 5381 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"frac test", "$\\frac{a}{b}+\\frac{g}{a}-\\frac{a^2}{b^2}\\cdot\\frac{a^2}{b^{\\frac{1}{2}}}$"); ui->cmbTestset->addItem("tfrac test", "$\\tfrac{a}{b}+\\tfrac{g}{a}-\\tfrac{a^2}{b^2}\\cdot\\tfrac{a^2}{b^{\\tfrac{1}{2}}}$"); ui->cmbTestset->addItem("dfrac test", "$\\dfrac{a}{b}+\\dfrac{g}{a}-\\dfrac{a^2}{b^2}\\cdot\\dfrac{a^2}{b^{\\dfrac{1}{2}}}$"); + ui->cmbTestset->addItem("sfrac test", "$\\sfrac{a}{b}+\\sfrac{g}{a}-\\sfrac{a^2}{b^2}\\cdot\\sfrac{a^2}{b^{\\sfrac{1}{2}}}$"); + ui->cmbTestset->addItem("stfrac test", "$\\stfrac{a}{b}+\\stfrac{g}{a}-\\stfrac{a^2}{b^2}\\cdot\\stfrac{a^2}{b^{\\stfrac{1}{2}}}$"); + ui->cmbTestset->addItem("number fractions test", "frac: \\frac{1}{2}, \\frac{3}{4},\\ \\ \\ tfrac: \\tfrac{1}{2}, \\tfrac{3}{4},\\ \\ \\ sfrac: \\sfrac{1}{2}, \\sfrac{3}{4},\\ \\ \\ stfrac: \\stfrac{1}{2}, \\stfrac{3}{4},\\ \\ \\ "); ui->cmbTestset->addItem("stackrel test", "$\\stackrel{a}{b}+\\stackrel{g}{a}-\\stackrel{a^2}{b^2}\\cdot\\stackrel{a^2}{b^{\\stackrel{1}{2}}}$"); ui->cmbTestset->addItem("brace0 test", "\\langle\\langle -- $\\langle\\langle$"); ui->cmbTestset->addItem("brace1 test", "\\langle\\langle r^{123} -- $\\langle\\langle r^{123}$"); diff --git a/lib/jkqtmathtext/jkqtmathtext.cpp b/lib/jkqtmathtext/jkqtmathtext.cpp index 8d5033ae64..08caf0ff02 100644 --- a/lib/jkqtmathtext/jkqtmathtext.cpp +++ b/lib/jkqtmathtext/jkqtmathtext.cpp @@ -742,10 +742,10 @@ void JKQTMathText::MTfracNode::getSizeInternal(QPainter& painter, JKQTMathText:: ev2.fontSize=ev2.fontSize*parent->getUnderbraceFactor(); } else if (mode==MTFMunderset || mode==MTFMoverset) { ev2.fontSize=ev2.fontSize*parent->getUndersetFactor(); - } else if (mode==MTFMfrac) { + } else if (mode==MTFMfrac || mode==MTFMsfrac) { ev1.fontSize=ev1.fontSize*parent->getFracFactor(); ev2.fontSize=ev2.fontSize*parent->getFracFactor(); - } else if (mode==MTFMtfrac) { + } else if (mode==MTFMtfrac || mode==MTFMstfrac) { ev1.fontSize=ev1.fontSize*parent->getFracFactor()*0.7; ev2.fontSize=ev2.fontSize*parent->getFracFactor()*0.7; } @@ -770,6 +770,11 @@ void JKQTMathText::MTfracNode::getSizeInternal(QPainter& painter, JKQTMathText:: //std::cout<<"=> baselineHeight="<addNode(new MTfracNode(this, n1, n2, MTFMsfrac)); + else error_list.append(tr("error @ ch. %1: expected two arguments in '{' braces after '%2' command").arg(currentTokenID).arg(name)); + } else if (name=="stfrac" || name=="nicefrac" || name=="slanttextfrac" || name=="xtfrac") { + MTnode* n1=parseLatexString(true); + MTnode* n2=nullptr; + if (getToken()==MTTopenbrace) n2=parseLatexString(true); + if (n1 && n2) nl->addNode(new MTfracNode(this, n1, n2, MTFMstfrac)); + else error_list.append(tr("error @ ch. %1: expected two arguments in '{' braces after '%2' command").arg(currentTokenID).arg(name)); } else if (name=="tfrac") { MTnode* n1=parseLatexString(true); MTnode* n2=nullptr; @@ -4257,6 +4281,10 @@ QString JKQTMathText::fracModeToString(JKQTMathText::MTfracMode mode) return "frac"; case MTFMdfrac: return "dfrac"; + case MTFMsfrac: + return "sfrac"; + case MTFMstfrac: + return "stfrac"; case MTFMtfrac: return "tfrac"; case MTFMunderbrace: diff --git a/lib/jkqtmathtext/jkqtmathtext.h b/lib/jkqtmathtext/jkqtmathtext.h index e249647c32..9224e394c0 100644 --- a/lib/jkqtmathtext/jkqtmathtext.h +++ b/lib/jkqtmathtext/jkqtmathtext.h @@ -167,6 +167,8 @@ JKQTP_LIB_EXPORT void initJKQTMathTextResources(); \subsection JKQTMathTextSuppoertedLaTeXMatrix Matrix/Array Type Instructions Several Matrix/Array-typed LaTeX instructions are supported: - $\frac{...}{...}$, $\tfrac{...}{...}$ (70% smaller font), $\dfrac{...}{...}$ \image html jkqtmathtext_brace_frac.png + - $\sfrac{...}{...}$ \image html mathparser/MTFMsfrac.png + - $\stfrac{...}{...}$ (70% smaller font) \image html mathparser/MTFMstfrac.png - $\stackrel{...}{...}$ $\binom{...}{...}$ \image html jkqtmathtext_brace_stackrel.png - $\begin{cases} ... & ... \\ ... & ... \end{cases}$ \image html jkqtmathtext_brace_begincases.png - $\begin{array} a & b & ...\\ c & d & ...\end{array}$ $\begin{matrix} a & b & ...\\ c & d & ...\end{matrix}$ \image html jkqtmathtext_array.png @@ -1082,14 +1084,16 @@ class JKQTP_LIB_EXPORT JKQTMathText : public QObject { }; enum MTfracMode { - MTFMfrac, - MTFMdfrac, - MTFMtfrac, - MTFMunderbrace, - MTFMoverbrace, - MTFMstackrel, - MTFMunderset, - MTFMoverset + MTFMfrac, /*!< \brief normal fraction \image html mathparser/MTFMfrac.png */ + MTFMdfrac, /*!< \brief normal fraction, without scaling of under/over text \image html mathparser/MTFMdfrac.png */ + MTFMtfrac, /*!< \brief text fraction (smaller than MTFMfrac) \image html mathparser/MTFMtfrac.png */ + MTFMsfrac, /*!< \brief slanted fraction \image html mathparser/MTFMsfrac.png */ + MTFMstfrac, /*!< \brief slanted text fraction \image html mathparser/MTFMstfrac.png */ + MTFMunderbrace, /*!< \brief curly underbrace \image html mathparser/MTFMunderbrace.png */ + MTFMoverbrace, /*!< \brief curly overbrace \image html mathparser/MTFMoverbrace.png */ + MTFMstackrel, /*!< \brief binom/fraction without line \image html mathparser/MTFMstackrel.png */ + MTFMunderset, /*!< \brief underset text \image html mathparser/MTFMunderset.png */ + MTFMoverset /*!< \brief overset text \image html mathparser/MTFMoverset.png */ }; static QString fracModeToString(MTfracMode mode); @@ -1165,17 +1169,17 @@ class JKQTP_LIB_EXPORT JKQTMathText : public QObject { enum MTdecoration { - MTDvec, - MTDhat, - MTDdot, - MTDddot, - MTDbar, - MTDarrow, - MTDoverline, - MTDdoubleoverline, - MTDunderline, - MTDdoubleunderline, - MTDtilde + MTDvec, /*!< \brief vector arrow over block \image html mathparser/MTDvec.png */ + MTDhat, /*!< \brief hat over block \image html mathparser/MTDhat.png */ + MTDdot, /*!< \brief single dot over block \image html mathparser/MTDvec.png */ + MTDddot, /*!< \brief double dot over block \image html mathparser/MTDddot.png */ + MTDbar, /*!< \brief bar over block \image html mathparser/MTDbar.png */ + MTDarrow, /*!< \brief arrow over block \image html mathparser/MTDarrow.png */ + MTDoverline, /*!< \brief overline over block \image html mathparser/MTDoverline.png */ + MTDdoubleoverline, /*!< \brief double overline over block \image html mathparser/MTDdoubleoverline.png */ + MTDunderline, /*!< \brief underline under block \image html mathparser/MTDunderline.png */ + MTDdoubleunderline, /*!< \brief double underline under block \image html mathparser/MTDdoubleunderline.png */ + MTDtilde /*!< \brief tilde over block \image html mathparser/MTDtilde.png */ }; static QString decorationToString(MTdecoration mode);