From 6fa5dd65ed5fbc23573f0e9308dfd4da3d1c9f20 Mon Sep 17 00:00:00 2001 From: jkriege2 Date: Tue, 16 Aug 2022 23:05:04 +0200 Subject: [PATCH] JKQTMathText: Code Cleanup: using JKQTMathTextNodeSize for all size-calculation functions and got rid of all functions that take the output parameters with call-by-reference JKQTMathText: JKQTMathTextBraceNode now properly supports different opening and closing braces e.g. |...> for bra-vetors --- doc/dox/whatsnew.dox | 1 + .../jkqtmathtext/jkqtmathtext_DejaVuSans.png | Bin 9100 -> 9106 bytes .../jkqtmathtext/jkqtmathtext_DejaVuSerif.png | Bin 9095 -> 9243 bytes .../jkqtmathtext/jkqtmathtext_OldEnglish.png | Bin 8617 -> 8613 bytes .../jkqtmathtext/jkqtmathtext_arial.png | Bin 7310 -> 7478 bytes .../jkqtmathtext/jkqtmathtext_array.png | Bin 5763 -> 6035 bytes .../jkqtmathtext/jkqtmathtext_asana.png | Bin 9674 -> 9334 bytes .../jkqtmathtext/jkqtmathtext_bbmatrix.png | Bin 1825 -> 1891 bytes .../jkqtmathtext/jkqtmathtext_bmatrix.png | Bin 1580 -> 1549 bytes .../jkqtmathtext/jkqtmathtext_brace_bbig.png | Bin 1934 -> 1805 bytes .../jkqtmathtext/jkqtmathtext_brace_bbigg.png | Bin 3130 -> 2583 bytes .../jkqtmathtext_brace_begincases.png | Bin 6431 -> 6356 bytes .../jkqtmathtext/jkqtmathtext_brace_big.png | Bin 1897 -> 1905 bytes .../jkqtmathtext_brace_bigfamily.png | Bin 3948 -> 3567 bytes .../jkqtmathtext/jkqtmathtext_brace_bigg.png | Bin 2723 -> 2414 bytes .../jkqtmathtext_brace_stackrel.png | Bin 1747 -> 1802 bytes .../jkqtmathtext/jkqtmathtext_comicsans.png | Bin 8157 -> 8166 bytes .../jkqtmathtext_comicsans_textonly.png | Bin 8342 -> 8336 bytes .../jkqtmathtext_computermodern.png | Bin 9945 -> 10023 bytes .../jkqtmathtext/jkqtmathtext_couriernew.png | Bin 7497 -> 7284 bytes ...mathtext_doc_subsuper_italiccorrection.png | Bin 5952 -> 8193 bytes ...xt_doc_subsuper_italiccorrection_boxes.png | Bin 13438 -> 16967 bytes ...kqtmathtext_doc_subsupershift_integral.png | Bin 7364 -> 12579 bytes ...htext_doc_subsupershift_integral_boxes.png | Bin 17879 -> 26365 bytes doc/images/jkqtmathtext/jkqtmathtext_fira.png | Bin 8929 -> 8963 bytes .../jkqtmathtext/jkqtmathtext_matrix.png | Bin 3900 -> 3431 bytes .../jkqtmathtext/jkqtmathtext_mssegoeui.png | Bin 8993 -> 8913 bytes .../jkqtmathtext/jkqtmathtext_pmatrix.png | Bin 2148 -> 2164 bytes .../jkqtmathtext_timesnewroman.png | Bin 7370 -> 7533 bytes .../jkqtmathtext/jkqtmathtext_vmatrix.png | Bin 1292 -> 1347 bytes .../jkqtmathtext/jkqtmathtext_vvmatrix.png | Bin 1542 -> 1547 bytes doc/images/jkqtmathtext/jkqtmathtext_xits.png | Bin 9698 -> 9485 bytes .../jkqtmathtext/jkqtmathtext_xits_all.png | Bin 9698 -> 9485 bytes doc/images/jkqtmathtext/schreq_mathmode.png | Bin 7994 -> 7846 bytes doc/images/jkqtmathtext/schreq_normalmode.png | Bin 7642 -> 7648 bytes doc/jkqtmathtext_docimages_math.jkmt | 8 +- examples/jkqtmathtext_test/mathtest.pdf | Bin 332678 -> 332932 bytes examples/jkqtmathtext_test/mathtest.tex | 1 + lib/jkqtmathtext/jkqtmathtexttools.cpp | 2 +- lib/jkqtmathtext/jkqtmathtexttools.h | 2 +- .../nodes/jkqtmathtextbracenode.cpp | 224 +++++++----- .../nodes/jkqtmathtextbracenode.h | 43 ++- .../nodes/jkqtmathtextdecoratednode.cpp | 52 +-- .../nodes/jkqtmathtextdecoratednode.h | 6 +- .../nodes/jkqtmathtextfracnode.cpp | 178 +++++----- lib/jkqtmathtext/nodes/jkqtmathtextfracnode.h | 6 +- .../nodes/jkqtmathtextinstructionnode.cpp | 48 +-- .../nodes/jkqtmathtextinstructionnode.h | 18 +- .../nodes/jkqtmathtextlistnode.cpp | 332 +++++++++--------- lib/jkqtmathtext/nodes/jkqtmathtextlistnode.h | 16 +- .../nodes/jkqtmathtextmatrixnode.cpp | 14 +- .../nodes/jkqtmathtextmatrixnode.h | 6 +- lib/jkqtmathtext/nodes/jkqtmathtextnode.cpp | 56 ++- lib/jkqtmathtext/nodes/jkqtmathtextnode.h | 43 +-- .../nodes/jkqtmathtextsqrtnode.cpp | 49 +-- lib/jkqtmathtext/nodes/jkqtmathtextsqrtnode.h | 6 +- .../nodes/jkqtmathtextsubsupernode.cpp | 84 ++--- .../nodes/jkqtmathtextsubsupernode.h | 32 +- .../nodes/jkqtmathtextsymbolnode.cpp | 132 ++++--- .../nodes/jkqtmathtextsymbolnode.h | 10 +- .../nodes/jkqtmathtexttextnode.cpp | 132 ++++--- lib/jkqtmathtext/nodes/jkqtmathtexttextnode.h | 29 +- .../nodes/jkqtmathtextwhitespacenode.cpp | 68 ++-- .../nodes/jkqtmathtextwhitespacenode.h | 18 +- 64 files changed, 861 insertions(+), 755 deletions(-) diff --git a/doc/dox/whatsnew.dox b/doc/dox/whatsnew.dox index 8fe3535374..58601921d8 100644 --- a/doc/dox/whatsnew.dox +++ b/doc/dox/whatsnew.dox @@ -58,6 +58,7 @@ Changes, compared to \ref page_whatsnew_V4_0_0 "v4.0.0" include:
  • IMPROVED/REWORKED rendering of blackboard font: now several different rendering modes can be selected using JKQTMathText::setFontBlackboradMode()
  • BREAKING/REWORKED: The \\verb!...!-command now works the same as in LaTeX
  • BREAKING/CLEANUP: cleanup: Removed Parameter prevNodeSize from JKQTMathTextNode::draw() and JKQTMathTextNode::getSize()/JKQTMathTextNode::getSizeInternal(), since it is only really necessary for JKQTMathTextSubscriptNode and JKQTMathTextSuperscriptNode
  • +
  • BREAKING/CLEANUP: using JKQTMathTextNodeSize for all size-calculation functions and got rid of all functions that take the output parameters with call-by-reference, additional information can be outut by local size-classes that derive from JKQTMathTextNodeSize, see e.g. JKQTMathTextSymbolNode::NodeSize and JKQTMathTextSymbolNode::getSymbolSize()
  • NEW: JKQTMathTextVerticalListNode allows to typeset a vertical list of lines
  • NEW: JKQTMathText::parse() by default allows linebreaks in the LaTeX string to be parsed. This can be switched off by a parameter
  • NEW: added functions to set the font-size in pixels (as alternative to the existing functions that set them in points), implements request #76 from user:igormironchik
  • diff --git a/doc/images/jkqtmathtext/jkqtmathtext_DejaVuSans.png b/doc/images/jkqtmathtext/jkqtmathtext_DejaVuSans.png index e662bcc8061727642406b7957c269c904ce50d11..6c5b0930391e06515a0e8497b3ad753147f61b31 100644 GIT binary patch literal 9106 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 literal 9095 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 NsHzqSV#yfGVX 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 Y!WVIT7%%i1JbM9Alv9J3$UY1DA2N!PL;wH) diff --git a/doc/images/jkqtmathtext/jkqtmathtext_arial.png b/doc/images/jkqtmathtext/jkqtmathtext_arial.png index fe6ddf5b82c972bcbc48b1cd2a1283aedf24cb87..257fda56471eff366a1424753bbca9fcd529ab3f 100644 GIT binary patch literal 7478 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ࡒrw^Hh;X?0n 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 literal 7310 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 CusgZ{ diff --git a/doc/images/jkqtmathtext/jkqtmathtext_array.png b/doc/images/jkqtmathtext/jkqtmathtext_array.png index c14fdf7e55666ad64c42204c65886512f2a27919..7c7c96911d3348c6a4fd47c7c3209ea187308342 100644 GIT binary patch literal 6035 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 diff --git a/doc/images/jkqtmathtext/jkqtmathtext_bbmatrix.png b/doc/images/jkqtmathtext/jkqtmathtext_bbmatrix.png index 2d462c2f7fcc62f655ba42dcffd59cc3a157489e..cedcab7cb6ed000004f657e7dc1db84cb70f722c 100644 GIT binary patch literal 1891 zcmV-p2b}ncP)S?<#LEd zqZl6_S6$$4Wqf=b(P$L8Tn?R`omgI8R+ZkSW*l|#;zbY#bVrP>S7!fiA1otxQL@ikD|4;wc6D& z1k($Z$z<^I7MwOybO$GXPM~fGsU85Cj1W3kz6TS*bXGX7+&1C+pj{Z~4wJ zHa3>Oj)`ez3>E70=g)}8Y+f7|CQ39UUEr$K!Cj-AJd?n!U7g-rmB(0@CR; z0HC+Gx8ibY1;gJ_hYufy$K%1rj~_uqxOVNDE`!r@gIspr>-FN;v13|pqb4v+sBkz8 zhr@wew{GFjpFe1AZPm?OmCHwYet3Ae=I8#n;GJtyGuIc1L4he#w+;T;r~b@uF8 z#N%2$gvFZR>h)NN-Sm}yl$WySR>b$@GXYXpF1W@fnS!Y$Oq z!~_9QwJK?`HQ8*I0MNw51a}&4(>FOe38&MEJ$v@(_&o1U>~=exPA4WOC;1ccs5vz? zMRvQLE?>S}aWAqc`jSydckkZC*RNk8NfJ(;Jc;}F@1v=yNsmso z>seo4$Bi2|@afYh_{bXlbDl?zZK5>@3r#KWa@Mx7Rl~I7m*X zv*Lf3m`+9D#udlBUiA2KM7@z~WTn>pu0)2gb+-bOlVvBHW*1>Fuq6nYQ zr)fo5FEW`70H|8nBGfJ5ekJMNfHD> z0ATI~#JUy=*qkJ;hXusC7m95WsuiCbNidD}L z<_BS(&)v9a;L08C}ji`mT{ zU~pXD(9jTMSw=J(EjYe!-#+yA_Cl6ryng+=%!;w%cNT$F4*Z51^{DE5BPx?5u_l#Ynk>)rBvJ#HQ_M5tIS24H)SE}2Zi!Wf4y!MHPk(qWf^zw+$lIFiXuE752mN5HG5+$z*C9dW{+)jP%e?MU6fmO1Qu+n z`z}Y`m)YFh908zTzkZdymc7hT6d(zmf+Upzp3JLbUS{#HRA_NIiUU1aUdr;7`77_c z)P2s+&l3Qeo15dVi(#MGDQ-BuJ+Q5W357x=2!bYYlo%B$TgfMOtdCYz0Yg7pMMSi; zv_$Rg?KCnnLfLFqO;QWmv`Ql*Bh=pBPD@Kms?w@*CYqa@F*`ep#>Pf;cXy+|zh7-< z+O_oe_v85SiPpB#B$UO@QP(TH^@JsqNw9=6 d36@YM;V&gP_`qz4Fqr@V002ovPDHLkV1h8no+1DM delta 1824 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 M07*qoM6N<$f>N*dmH+?% delta 1541 zcmV+g2KxDp46F>0Ie*?sL_t(|ob8-3Y|~m4hCe?=swEI*b0><_P6oli!kSb{vLG=a zP$fjWG!qhm6;K)J04b`(&`K3EVhT%QDX_9K#4IhsQHOd!YAS{pD&03ATTUF4KKte+ zHvXgx@vV<<`rGH8<8y392qDOrD*l=D1TunTqD&!~C{su#%6}A+3mf?H;|C`vCxPv% zs-mjuSSOVxdc7XKUN5jcm&*6|5zv#LiY*1 zQWQl&(=^_^dDFLjad9!i`SSO2_wHS;U%%eBZFO}OMNvZc2^A%m%TX?uDVNLgX80Gf zxVRWNk;~;Whku8Mq5Gs_p|4ab?Ck7JdK%J5q$tP7$6UO45k*l@6oq=dPN`Iy^t7ar zNKww6JIA+g-&k8)17LZ1nF|*#On6rENTew6`)V-^1ArShZcKPKa!ITxpFVxUvMh96 z=i0Svlb()L5-ZBPckciw7K_Zz&Q5qXav7^Aj^j`$6o0%0Sy2=oK71J4?x5>3O_RB~ zIqw)rU-ZW&N~KakRaKrmd4dpvUav`<*%DHI9-%*@PqN!0%Sek}X0>oQG~rKKf=5C|dYcDu~a&jaxJ^JhAp zPORfh3V-RMIF7^n_wRxJsL1bf78VvF+xOdPwOU?S48KF=2M-=ZwmmI`-e!r)%*;%{ zJvolUe(0y<2c;Bc@xXBXti2>u0>X&_a{4!@NvaDist(2?R23@+vDgk|v6~z<&S!oo=`5P1H^7 zG=ELw*RNlZ-HPj)2668iY;0^`S(X$*48!2jqeno0PUN0k8yg#af4{l8iEY~$h7mh4 z2EuFfrBX?(tgM{67Ts>Qg{EnJb?9QTD4NZt_g&X@addQaYMX=jZTUZ~Rx7g2VZ40# zGBDp>uP5^Pya2@Z_V&MdSnNujDDc~D?d|OW$t-rIQk4DueN59t)3n67E=Z{;&1MtZwiD^P;D3J* z#W0M%4#{CfqNoh(z^vEnyn6KtNT%z8F^b|wK`&ms@S5e??KYaGv9z=lTNuMIP*s)X z<>fy6l}ZK6vJ&gMU`(PIhQaLYEW5kAUTYD+!NGyoUK*!MvR126DwP7wcnb>)=(-Lh zGwSjPtA730%A<>0fvi@mfw6A4D}Uza=ZB7+7PrdxC;N<{8Yz=el}D*9Mvmif|Neb| zq22Xv4iOd8G`V;09=fjc?Af!xcv`wArMfS-qhwrdxy}%mSXf(Kd`EvM9VSX)p37Z_Eyo4>(ePypJltYx)6^4qE rF*#CMc}zN)C{su#$`q1`GKKsL1cPwY@dhKn00000NkvXXu0mjf*TMo? diff --git a/doc/images/jkqtmathtext/jkqtmathtext_brace_bbig.png b/doc/images/jkqtmathtext/jkqtmathtext_brace_bbig.png index e0e35cecfb768d55ae44d6989bbf097dc494e521..038092fbf9955f35a7ac8102293e2c7189381a12 100644 GIT binary patch delta 1804 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 diff --git a/doc/images/jkqtmathtext/jkqtmathtext_brace_bbigg.png b/doc/images/jkqtmathtext/jkqtmathtext_brace_bbigg.png index a4a82b5e74db54b2c3defd83e400dad70052b951..b15380cdb9fcdd1f677b4e0f9c0e5e676e0e7f1d 100644 GIT binary patch literal 2583 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 R@QDXV<)x-Vg`7pme*v^Lp;!O_ diff --git a/doc/images/jkqtmathtext/jkqtmathtext_brace_big.png b/doc/images/jkqtmathtext/jkqtmathtext_brace_big.png index 95c7a55ba7131279ec914c9a5fb819f544fa1f4e..12d978f1cf4846a18ebae5421719a587d349b72b 100644 GIT binary patch delta 1904 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 literal 3948 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 literal 2723 zcmXYz2|Sc*7rWT zWX1YVmHr81*S3mJ9Yf>GboM-n2a;9hYUex_rk<;2@4NRfPxkVf?p|E?wafaa(7iO1 zSr#_&s1iOt-r3dF^_6LBYwNvtE18;x3dw9`@PR6cKYbc??wpm9WM9Z)UIg{sO5W2@ zI|AY0((>}um(*-330a|MXxLMv?P~vrtTNgD;{E$(M=OSI51c!uGRoy@9yuZ>l*318 zvob%`-9J04WtqCBW=WhCNkmp)n^RWbt8Z^_GmF+S!NDqZO-)f$@PD@d56#(ERmUTU z#3H}q30i{>tLVC+54_~XGoy#m!z#q>uaR@@+q173t`VOj!^KZOiS&)Wpo`@U2 zcS?YC#Lvg)(#A#-GoY=>G*@{(d`ue}$!`rP6RND@3Yn@VQc7+`!h>(W2sFIyojL zCgCH8Z>}Ab7X|Lt)txGEb#ZwLx=DfP2gY@t1D?B+>=cu-K|LcQaYw=jeIujXzas42 z-KB6!%V(=E6W4tM0>r>`DO)99RzEWT&-)I9D4BnAbrRv|E`z(`q`8r99brb_Pb3v! zb#mNldvb)O97bjc1O5FXSRDlDjn{8l_?DiOoE#Prk;~qffldn6^Fs?s$PXTYRo`m2*K*nVXU?2C*)ZnYLDU8-=v~L$^)zT{ZB67($53B< z%ASY|UJH_QWN~}qEW%S$OB*D8elKidYTEpfeUR!_o6|Rga&{K>QEsYvRkLeM=g&GP z_k4_2VjRL>nl7|qY`1! zvM7^KxGDsvogQTUcUBzO>zfH`4mVM`rRtUYm-k{4LP7wrC zIy*a2U1ucr5NbBQfA3!YX5Z*dvb62I{XpKs&yRBE-NTF0{B7^9GMPr;+LfmJ^7k+p zjC=l#YPlZ=t{eW=)t*aIzn1F9Vp2PU!4gAhZZd?Lq?8l^$Xr39WL;NFixbm2-Ah4a zDj@{7UpXMTXbp)U5-B9s2CPUZIP;6{$Y`=oS*I01Gxjum! zQ?fKai>tWyq-W;K7Cb*cU#v5kl=Up^>0sHB9RI6de?)}p;B9O(cXRt@U|SYr%ipr4 zyOUVYM?GvZcdt+=FbC%!n?)J<)z#I~ii$5Zrh3Af?HaxRWU-{2{!IK^(JoUYJL^rY zyE|K7Nl~$fo$@)#2)t6^%a_=$oX)_5n?WD#8nux~1q1@IfB$}wM?=t``tctgfAM;$ zday){i&@p2f&VS2fn-?}@b1;00|&Uin<$Z+%f$~)&-Vj4%gffdrF1ED=U;BN*v zKCIxqmwHg12C{s1&^5&)ge@DZvr9BqTx@Iu>m@6)?ukd;&zYkT&oZOX$KZM|p-tG! zJ)MyMY`U%d#U~A7NBKXzuF6HEU?i2htUW(msSBZ9TwFL`hbwJC6QBkcDYE_Vv#<_y zSn9KKwuyiy0$()i~tfC-ToyhIeg2yXXRbn$k-Se2oMN*-~3R8*!a#u zJ?CUp@aAWpFhrx#1RwuVW{eMh%FJNa*JooG-2g@-@84fJQD!kU-W)#u=ZSbUSfp5&`#n3|eG{O~+*EobkiiR%jl@!C)FoQea zrj#s6?YtroiEyC#e8W~27I^?F05qd}hZMag32mSA_u*IgF6=bNj2Y-i=-{;Ausa^7 zIq_Xso%JB!OtI=cs4V}+JfKAfgc*gN{F8pea^{r`*Ak)Dd^>~dX2YQ!owFD$Hn(Sr zv$ke(<3NB#xIDnJl&Z~IJ--~D`;0`EY;)d>{hP@LiAzd;Eh?2;IF7!lD%DOeqSIlJ zSd+G3Ho=Io{UxhRUtV4wl7789o{%?pe0>IWhhbvBPHCZ;grVAKqobZ^#_P=c3^c>z zPE8H*&BrLPuQ*^%oJGK^ly6g#>Vg1@b#--tDM(V#*-AQ{GBtIo$i?)sOG|^G2NN%GPUd(ObK~HI!`iyK!XqOi|I+l$=;D@^ zmVsy6Z^Bhor7GNni~s5c)E{ww506a8>hwpLMMOuFxYGnoV4%`Q`Y+p41Hg71 z{q7wc_IF&|#>E9Dh~gCMy7yiyBdOSCh@+%W zdU$A1gV8kr$TeRV7Z+bGCgJ1ae!I=nadEl9Ea&ue~J_lfr|Bj5|_)BOE@!*H7Tne!Jq%(>8od8@Y~~ZgIbR*tgbr6#~V|r)Y5R? zlM9NkSMgCefak>Zxf64|#~2Kzdv%g67Z?k6>;{pzYzqu#sxV@yBV0WJDeNA7w^j1Z^C4b$#~3O|``-rSLolEbREMuy18T VDxdOmJrH$5E{<*vP4=PL{{=wG2txn> diff --git a/doc/images/jkqtmathtext/jkqtmathtext_brace_stackrel.png b/doc/images/jkqtmathtext/jkqtmathtext_brace_stackrel.png index 732e3073bdf9e6192e840ebc8e2ea4f3b362e67f..9bc81228686859e8c873b56a61ce46b191ed283d 100644 GIT binary patch delta 1765 zcmV6wNSqbwy9WAtY6TD+C+&lnu>)H7tLrTld(PTqD1q7< z@uMIcilX4tr%%h$WtQAzGKrR!7Koy#DH{rf;BYuFH8r*58pm;HZEeNJj~@-kz%049 zZ{Nm-4I5BbSC>;pk|a1B4m374B9TaBl_@VT$AJR}aP{g{!!a;R?v*Q7(A(Ra^_ncp z@OV6EXlQ`T<$uz&)!W;PYuBzJnM@iBf*3?N93}wt?%g|0*Uq??*Pf_h2 zI&=tQV`F&#{=IG;=Exl%AIGK&ecz>QZ#XiSzXlQ6aG#b^FcbOq~c6JugXcYDJ_24+pG(YwA^#B%{Jz8Lf+)yY4 zB1+x7Sy1i2dGkh7mKkyNdU|z zm*Y58RaJqAv|oN2eJs?@Jpk(J>RQf|WeRF)Y6t**{rc5(UmG`WBmguuHI-M+aJ5iZ zSC@M4r04z9?}9pVD=RBa_oY4^T9uMva(^#fx`c-h9|BlN4J)M-TZu44t~zZXwNw6lKw`mEcT79){JU~X;>)z#HlwMv7&T&yo%9;!>) zcsx#mAQ)OQ{toC}{-&3b*^cy;XEvC&{9Va7dGaIypn-vboHB_-f;u}pmk^jfV6@WQ z#KZ&vpxwK7YsSP(%hBz213=!+)_) z;VA0c=5up?(^r*5sSrg=44=D zM~^6qDL-0Zid?VP3jlcX&U+ajg5`e*4Ac7 zClCneTE-tgew-{83rUis%YQC&bLS2Lpl~>>I~L|fuEk=(;lqb<>(;HDGO{eg>wop4r>7_D1SZQe z&YwS@aqi~LoA7u%x@zSVbpIRvBB-BAy?y&O>vf;cm$!@8-`}6n+*$6YQcRLdMC9>! z=-jz;OU~!pX`>#CD~I9XVXCdIC0UjY#lT!zP;u()^;8a1rT5wZIlH`CM8u-R+{ z?ZQzM1z)~=fy3c2tjjdHe;Ul@+?9Y5xhA4Su8Am-Ya;#wonR!^l@Sxd00000NkvXX Hu0mjf>PBa~ delta 1710 zcmV;f22uHn4$}>gIe&#oL_t(|ob6mqXcJKo{bUJ7f<4;H>1{*9t1Vuq4bbK#VP>>d$G-GYb~S@WJS>=D%qyp@ldv= zHk;i|vQ}U7!Cvy_&CL6DnD=IOHyjZWsxSpLTkQbLsFG_Us(<8~h$^`zf@yM-$s~UM z{8^Tc)zwujE-scdmsxVZfBz1z*Nb#Ittl%A0@~Z#v9z?bX{@HE27P^fn4O(9>;tpp zK6vl|hYlTr!{JbsNvG3jZ*Rwe0|$`JW(&%29EYKyA>6uk%dihjl1oImdGjXDo;_P| zT#_XC{eHMyE`NAD9!-70U=a83-$y2sG3*F)h{a-5TU$$?K7G=ZjmP7}^E~l9Pl-gL zpo}cb0h!r?H;KtanKxnI6~!Q;n|F*rC_ zQN4qMgP5J2MJyK6J%>4R$H&L9yu6I#$B$Q3Z%H?!?3dnwpw)6$YiiVzHp7rw7lTJyWgd^1%$b z%gf6U1b+c8mkTvD<}J(Zb|aU|;qBYEnzGE0`|jO4tgNhH@7}$p+HtvD0Dzg98BJMc z$W<2G+1Y8T9Yz0}H*Yj$nIqTi$W_QSJ#ypmcsbK6ic%vt8jV5}MTnxP>-^f$(E&hT z@j>nWA!rT8@fC`R%!EHcNedeVPuL4W8!-0Db-X)pT3Cckd3ssA$;rueVn;_u4b3g(nw*?0s^4O<5CF>Maz>U^61-k70U$vTipm+vxg8xH>j(5m zB!7ZHAb@k{&LI>E8BtSlNRk9el3=x3QCC-Iy1mB6MgY)$K4y#E5&JhFiXs6Z zyWRd*?43Aqf&fr78Z9bk__Q!EFaVzC0sP)Mw;HKb3c&A(G8>8=#jY9*kt<0OE?&F{ zQ4|3HV`F0_y0<-`n_NkfHs#ofi3!cSr++{Y1UMWHa2!|C_4MgeRo%_a%>dTkRrniF z>?n5Cpo`o;iB+CY34(y>>FF|EEg#Av4L|xW5qinh+|ZN)B7gJBFDkbBe5>HUJBp># zX>@gU;p)|^8;)BRi)H;8m66n7CU)-J2|!n&rs?5~X6zc2iH&v82n+>C*qX4uw=?@=1006qWx-@-aj@)8x!?Ce3T)A?k z;MkEPN8ofi0sJPg5R{vz*eeF+$bVIfTuG8}>Cz?m{r-aE`I~exDEhZmz<}!b{QNwCZ5Fu=4Gr*kJeZ%Khb+s6=Sz}=#l=N*cXy+$txZ*K zZf*|s_4U}lf4`Bvf-UuyzBcr>Al3*ncrttyWE) zOp$x))F}YK^XJbE&66YvH*Va(@bIu|P6mM2uU{jZ&92+g0#oGrd_FWcHyb8*YHA9i zDB{|+YenT0y{Au~)~8tiG5!BQFc_rP)>e{bS(kh~9w(>Msrt%(J_3ONx!rEvzA#7b zy?gfv04*#mXv(HiDeCO()PGgFudJ+)&1R#^moMw~g*kFRfBsAj4GnbX&Yhxi*=&{q zfq?Fw$g5Yc2mrl!@j|yROyyhv*tKgHhK7a^i9}Rol>YRYGiM5JV3H)^`t|D@ev3pR zIC$_Nd_JFkXLR3&{|H*2N`*q9qJ8L*k&z9}ol-xQVv<~0mZ`hDn}2TKzP)Lz*qb&e z&|)Q8O9_pQjg(HO4f(-bS^(C*8@q7f0vXIK+mv~@r_A|0eDAOg}wiqeDh4xvbBO7Fc_r5EX4s?tFSO7BfTL<|r@$IwHO zCSZV2zR~yo`u^VgJTsZeBy-N$=j^lh+H1w>XepDCFp_{kATm`I1w9Z5w+Oh`BO(Ak zsc?GKfeW#_im?|6bf@_5i9?9mI{|_2=cp=x_5Jhr3fy9u?O29;7BXEkPPE$Sy+qk& z%8^sjI%*2~k)D37XyS<=U4bwX#Y*E+#wC8W2p#=kg#1_6w&jGx5Vnly#!MR0s+M|H zbvBj83=(nvhq~I-on}(5j3v#c#ddT@2+s==_KY>fZ56-W~ zo+hoyQQ(399(v2o=HmbJWmY2g@DWisD{z!X6BYftA(D6eUp@@}Fhd6P6q|rV8kqKk zE@5(<#S%IWx+Tl#h)v?iWiKg=VCG~}uED{~3oUNi?-j$xi>ymK%UOvA`rq6lbiX)p zKw0sP_V4UCs_|1bQ^C3~c*@Jmag!yzHg9jD(GdGo))OvEUwS<7U7?**3E|wgSjm9j z*08+w5!NOHib!vYh7MMu=fgj{f{uPQz#VV0#%v+3nw|PQv{HX&tz2#l`RHCPi1B2q zB}2>XQsx;6EzZ9g9sXHx3%b4{wK$WHuceHBilL|1V+ zOZZ@lz}}#Pu9&DOd~0C_=4YN?&ZGps$s5Ck$0yYeYH9^DW&G%{KciQe7at(@7t%fvLWwPnw~M*v!A zek>!CG&g5lvKBOF2#$>~tclv*c6ghdyjFB`X$Q-Dq8~eFMuEo$zQ&?%R@=~p1EhkT zuV>7I$i!V2-EVvsTv}Gvl4X?yvJ<@bPEUP;j}k1teEUY?*aZE6yOhamH0~^>3!8cT z>{%Qsy+CBU#XA?;$fx#A(6a^9b+m0mTwENn2qT$>wl=2S`1u=q8NhI=^$2pAUh=TB z=fE$Etsb|EF4wsp%gQF(6$TJU`u+leg0FTh$U~OY%EBimbd7Q(gU{R-HQh>dxR=k4 z)<9xS#iXR9L+J9QzZRvYQszqs(Pi1-fbOtJa4?SNP>fZu63K_Z$cmDG|9Zi#hXwfe zY>V6d{noWRv(1S&R|jDru@E-R6~-^YGWVgk=EycY8Pe0!a|#L+yUd42(z!zLN6ecI zC{|gE;A=~MD4*e@m4TQ~jg3>gwq#Nt&S~(#Dme{y@YS+x^ZxhGW88;X{6MWXLjwD>fTWy7;=Mw8KB;S6YJ3ukn6 z6eK3f8-&>xl|XBUT~Heu8tU+520FHfo=hk&smW+dpJx2Y33aGp{Q?HO16YkaAi&Ks za!?%#|9s<~+{jnI{lz$7uEalQ8Qszof#*|N0!gkhB}qOd@XzY(Q(_+-5iA=!OE3(tnQL=D9&4CME`Q zCUFG;^RWE%4)bu|{5&HkC#S>@-t5u+$2;1ZTZMSl(bJ##zK@OJwA$DnWCN`+e}uu- z>N@uOt&*iTuNSVbus9&MuG6fuP^JIoDPtvdzqfqZxJo~8_QT88=;jIgR(b0xeOy-3 zPeQ?mZ^?qaUeq9k9zT9#+wjOCn_XC^pKDJp`u!AbW;Hd63p^XBQz}`X+pa<@)n+>- zLIz0#yeZ~>=v|ORb?2|eHtH;!_jAtep&#YLz?^HXdUz91sqec+HOT(U%T8YZ-)vK9*?NAr2RM}9kspP$Q#WpXlW|xKOk}P5{O~Rm9x(D<4 z=GSJIUvmu=72k@jhLhORN0z^)KKNvg`Mog;#HsV(dp(yMf(zGKqZ=2i9VaDvRbM#0 zsT|uTT-Q75qO|M!)@(T}ZEZQlG#~EOzZrY;_-o3hm9z852S=WtUM!}`-#veOdaUJ{ z!{(y2n5Xof<=*ynnP7GSN1`pE0+`~MgPB1BtTn?fe{PQzb!e*uN|W4bZYmzQW+LQv=R#qOt{>0+iC zB#8q(E3Svo-K!zIM-G>bKTZRemfZba+)IRng~Oq>o7Z9D8%iBiGP|ek72_juqkmeN`US}vzpQUr>&s#f^W&EbZ!@@K=zWF zQM1c1=WO*~@7t~@A^=^U!^4LD<}GxA->M1ff-V%(fm$g^mhntZpuQmR!3&}0JZv&A zAiNxkWSp(|+})jI`HAQy!36*O( zoal+FniBbXxhdY`F@smYB>!RydqORQ)FjG{#5s7ZUu(Fe*|)lC$?l}uX6hT2Tv~no z_U+qcLfJDM(6a2!Ik{GmOdQ~uB96{5k}}3r*_lC z9^pK1_XQHxPU=~u?`a{1Ij`sA{p=Ry3PL)HK21VkCSd(9DND;37#R9wuaA=7T$>Z( z2%~+TxRnx<*Xis+y&ConXZgHbJ_zXWk(fhW>&zh7EK&i9l^7@FDn-f_ccz+aud$xf z^hAmBQKDP$Ex-&Q*bb&^%fzW?3#`o96%FpSpzg3inmaxw!QL&!d=7G;HLoBG9#F4eEjKdjWkfBPmNBz~mC@n0JJifH_7@w1 zVROh{>QZTq{tYW@Ydkx6p-)7chX-!f)&*4U+vK0oCd?XABZQ`N916@Q_F%&9l~SDn?7|HcdG7p7NR)j zO+!%aV%1k;h>w*%&F3K+AGiZR=Hu8YMZB7j4P=jq)>{1JFRrhat1a$|S9EEmrUHJg zMgVNf%*<363*tPa5z@td&B+D$!_%b=YZ?2#Tc1fvG=G3so>_jhVE>dZ5#)50;rG$IRv00Bk+{27>m@kLW_s!5#h!- zGt)Y3Tb$m@Sjanzk&7M3_DMFzcV72e)EXXl{y172mWDU*jT##pPyB2!tT``Suos!% zZ)j{>H$QIaxpLV$)<_l)5a{XFEz%V~Q_G`hJ+eAt5x8p9+Zy03%G(vyxll9ImKVuEFofil4Ya$A>= zu4z&fu2?ppooP~Q7y>_4dp_YTb_Afe`@Ne_OgnsQYmTxl6O?7b_miBW4WiX9A!~@1MD4$UyRnqnaXo2(M0`EFTQMTRR)={yz=ZN zNCeBt-U*l!h4@<@2@%J;EDW8TGjMW>a6dnSn>KJHL)h zVcrQ^1+!K=#f=25$`?z7xqG4eA_%QcT@0cqJOgw!(Wil3E{Hv})ox4Nl*g~x$9@9n z?KJ0wAvBPX#PGw5f)wX*N=&)Sx>vngw;7S7XUxMj3RUIDHAXN?OUr)lCZpMYnq--a z$_}j~Z`F3Pm?A8>pE2dI^ z8nFCEAkK}MIM&ByDsiCR=B}VcH*+iH;pn5vq-VWY6CGXbH@8XQ^Xqihw*-5G^cE+V zg|0t4%Id0Ps7by3MdHVK-RR+1Xk$#5MKV+S=Mz+Xj}Kdow|k;5@%ci3tMH zA0%J}f$V`eYOck$=nvJ;kdCxSN90u)B4AM@57(eJx1hj>mZ`&c&vDe6f>ZaI3uii! z+*+P4Qmr!m!Q~4RlY!IS87r3}dMhg{7JSdMPSp*bXN?SO8bxq#ex2c;5N+uwCUMus zTC@bi5PAA(l#0R`$64_v8KmUsg9K7Ju6|1K&4j@E<@s@4N*{!AD?g~Mc$D6hD&_LS z?JFM9+hk>0XNedimK^t6duyMxd@+cgfSEFfnJ-ChLJzV;=&pJZ+OmoFZ_bA2dzQj(u0qTTwhqE>B=_5Q>ypCAA$vd8nWi4G zzFuZcekx?3!l7Fh%W70`jE1)mx2yg{&?XGo06vL?|aW5(*1!8qLZwWi;dOO{1;E&O0))ixJw>NRMB;^g(3)9UI z7k5f^c#%Dj`Qup4j?(C%fat?)fu`uVkpYqUsRULF16TRgL&fJaMyi`z3Gq9hmod8) zDkrrB@SczFUbH#IZ3j)B^HoFP9FQ5E+fh55w-y5nxsPifISLrPgv=(b6>`?`>FQY@ z1*qEX-FBkg!4GDx5eRVDpsZlWQFyPT^3X59evAtrmQ#K06Y88_nV^+2{!No>Kq&4;-f4e`!54h}`VfPw!@o!B+uH>&G zj3bC1z@w;S+S)GTxC(oJ{rY%t>-S4~!7)v}O)(fb{3L=SF>OY<@9Nr{biWExp(BuO zMLl~qOjjlx|AV=jAY_|JxMO@-+W+unOiD`hqfFnVK}*WN3)}=9?C+Paye6iqQ|(=9 zu+z>n?04excp|E7wirG{;73Tz*rIx2eB`^^jSuS#2Qz64o=H7VEski8`)=DX`^icf z;FP`=`2C#Q?O;@>(6NT|J26(NcJI6h|W8Y4U|9vU0G}1rZ`r?LKhz zVQNZ)W`szNiC?oDwhn?Zl@3}?hz`eS2{BQbg@=TbZoX>l-szZ3Y*H&*?G~IYKMpnQ z!7;}gBSASFpACmlw78 zjaifLw5AnY|6tUTs~$L#^o^@-4sc{w6bU?nIj}ny>WFev)(76!j%Lb`Gf~zF_kr0x zc?RDNhAFIbss{U9QD?|qZB3NSV{g_uHER$MMaT&2DXVD7u+4J1zFPyHE5)4qS8QDdHa(xFYgYj`MrQWzALrw zRd6|s=o~oEp~@#@+$FbzwR3)QZ-08%3_o-77_l7G#Z@3S|CtY+9ClfP?!Zhoi!mlP zyK$=wY+k!AV!ZE|J zcwf-7h0ZpOaWsx;@DkxQpQG6=&UY5KLn0lja&&%;8QJD&%yp6VcSE6W1gu#|#stp>}klI_9i4#Ir<_ZA10 zjk2B!_zz{Y?*6PG#t%56s)!(h&ABf4{-SLoYFhWC!O&33v!)ci zf!4OCd%xG&I{XCCWraTbh{#}FM76QD?s#?2Q-jl;?EYI3B(S-3JDg3#V7&d2KYiQ+`48=-23P6Fzxih}xsm!Ye*H9P%WA!igHZIevf{8lPY^6mO zTas+tJK@#l%K>jNse)<^Yd&=u8RQiyjXO*pk_75D4mLVW;$ury0r0^K>s%!%_MoHC zQP=T<;3-7H*`j~f?tIJj=zFp~>0uHV%E$2NB+Ijn`NigA&$`aLD-2{)oxQ5hy=aLG zulP#Isq`ZsJnBnf-y}3UZQuvi;<{Av2KqLNGDxLOBOMuOiWI3{>L&s2X3xpbNM#IpsGG9f*2ssz5Bv9 zx-%~JTe#c16Uw#+uxwA=mtXVt9(k4EF{cpd8yWDrw&qGF;cHT~KLj@9mpJNrzEQ;G zj~XFcfcaF@UB{~SfXVvR7=b>RdnRo?_QIn~ZZ{~&#gb2&dt$QDg+X;z-&2@kY>fS} zdo2q|TmTB*MpQIm;`FpK1-qMF*3QvI_g7N$Js)OK92}-6X87|z;uyEF-eb=OC}fdo5LPO%*0ogc zdmZjZvw>0?7;&=HZz6!RoyW6a(YJ)dHBgRCLgM1+cbowFG+?4>%T!My*@nPo7QUmi zY=E40r?*zcmt|2|e{7|O*Nn&czcKe$wjJ503MWz-HkB;?s@P256Z@Too89U=EqE?1 zuDf%ofwY4m9dil`eXmNoT7%C$*X<}Gg$}(H5|wTxt-bW|p)J!R1|3eDxCJEL)a~TC zz50)#P63pV^YioOMSo64N&$s?QvTx*Nk+TJx9$bp0a;+@XH54hEWYq*+yB5f5Ty(# znQ+H-3*cmp$Dj1fUMH|STHce6}SWfl%QA9bmFY0WY!Y!&wMD7hoOVFHJUzTstwXg z37WQ!muHrdXzI5Os#{@uZ;`)rbR01Fn&2%$Xf2(2=(!E(!tJ4b`fx4v zRR+q7;y=NJBy#LZtxxGM#7|%pKdp*Xz4d$;f!o>II_m)&8Bs0SUH5#(EFIXmhte>+ zjrX1&FN8M~l^YnEzb|NlL-|kHiHrnlkH4Cai*?Jp6ba2ll3Ywzq?HCc6rat- z+x6iqjUA~XyE47hw`4f~`4Oviv)CKQYC;EV71k-@w~PAr9}eUzFWb5vQ|c7I_RWkc_eXv{epykPto|_fNDW7M7IU&C`p0 zeq9i(8+6!5D4jfm3`c{hLa&Q?+GBmINOP0um>QQd@qmgfU{ zYWE|5+XsS2aKB~;W>|w?7hr&|vuxVR6+Y;2_j=^(%q)=*x5}O^-?E^O z$P;%fpJimbU2X-9CH%XB+uwO6T;!Pwpb6C7!3{dxXNF?JUHgVB ztAh!y1#V!9PRhTkYdEMF5j>l?3|O+PI7BJk@OKh-c6jP6diH}ffZ+i8T7h0dWbGF~ zNr?r@cY=H3fMf|k+lp~^@Rs(!-TF_be*S&`|45Mj=XL+T$bEUAQIx=&jYsVxAl!pg M6}1%V&Bp0HwdGF|&9J_dTk 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 A?f?J) diff --git a/doc/images/jkqtmathtext/jkqtmathtext_comicsans_textonly.png b/doc/images/jkqtmathtext/jkqtmathtext_comicsans_textonly.png index 0f4b1f29332213e6425f01e88eb78516c5f9c824..2b5c24a2c1b368ccced252398b84853ad967a8d2 100644 GIT binary patch literal 8336 zcma)CbyQSczouK7AtXeQ?vj)cC8Q*Wc1CI_1*A(PBm_aEhwcy<>5^`c7-~qRYv?ZT z@qNE_@BQ;zYi8CtXU^Vd$FH8}IT1QqD))#Oh%hiP?y0FN>tbMF)d0t81bDzN+ndF| ze-OS^HFm?mAkF&w#l&AipI~4-z)(|G)c1m;)8B;aPha-7-VZ=06IJ0^e$qi2*Vv@- zmL+nqeiQ6M3^mU2!1_Ta-MXfps!kFq#(ZG~N`pTl#89YLm5?bq0>u}@QO^~t>V^bp z?3GO>Vp|#`5{Gz}b@G~?TJBcIUi%_sr`<;2*KgK;ww_+Lwe8I}oM-s%T^_?XWCNu& zkYepZB%OahPD5~a&NK4^w6K3vc1uLCspTR7|ar^Hz+jp z{kQ4T6)3~+s6TQf`u^io^XkSp_59JXv7ne3(lX;JJU2JDVSz7S93>nQs&aF&_4M?H z1$1A$-J6%PPFtvTGOdd05pu%+J4`-ai-1dOvj*4hv#q^7XAi`-l0;fJQd|BWQVdaF zPoRlB7!n<+hQBJ^kzQY4f0fFif$SO`CHL5!Y5&0gesOUz@@#f)E-Hc7NTSJ(1nE(E ziPmkcY^xG(V(EPm>ABhE!2|F4nI33p@x>0$&G*%KmSJbGFSQ6Sr3Bdn>;Jj9zm1OLdE}X z27lk`Dmw@SV*D(~$M@>b-EHmuRJr+_&Kv}l*VcandG)I8ED%_{tJ9tP1{z^7`gi7a zr}PrtgtQ=g`Y?zIhWGdD&D_tUDAd-)buUYxnfFbpkd&Bk^7fF@Q3yoopTec$fX=*_Qu;kQKB|cE+!9itd;^ovg zQ?Qv?mv+EW{6GDNT8TvT_p9yvu@j5besYNeJmMo6i?fvJg-1xJNf;y<^!sPJ4A4Xw z=;91L2dvm%3%I=Ww%o{+^96k*Wh!ywP9GDy*W|e$2BEv?mB0Ia(FAn4J6AViKs78x zhCOCSE!cV^64{-j`OCT_`2V`)0!0CznR*wtfaA0!@EBI}s5_IKoSdd-v(Me-1|}cj z3=c_X+s%#NpyYR9jjAm)`WY|`d=|ga-JJjUf*8GP{Wcnni;;(fB^PX&Du|O{_kL!1 zL#TL&vdw%Z%lxr?hlYb7UzadN1CNc3O_PVIvzqz7gyZ`HSiJ|DA??8g!9Sj)83L`3 zJgaW zyJN{l88OkaTdYq6Or&qkHSw|MlT4LtoyyyCU~nq(R}>aLTaWx!?k`pT2;4~be0zO{ z{&$xhC88D=EgT-(xVTV!mOUaUC@f4fueMgSQ{pFtx!%+Wb?VPIx)X;%z=3t5VnK%k zyO?;+t|B}x27FmE=-L_`p>$EywQvNA+JOd7=W%5vvPP~Y6!>$yDMK)miHHI()BWMz2ceMTeuUt!?)7Z>Z^ES<@D zyfj;~&+@KIl=@KH)==>{=J3$P;Wy7-S*)fLcoe*6^?emzS0qmAWs^?4&Wlv61R>s) zRl@rrHrCm!?Pkmhsuv{4kSu+k-@}iWa4;koY?XrWI4dysDgtjyYjArk>Z9|4oy+`l z!}&h{{NQS*VlHOPS*w(tmwb?y(+9kV>d>dp-mD7za~COOt<{taSawAt2{oSjw7Y`^ zCAz|ZCACmFNHTN8SDKcTjO=61SM_{del~?dUGAmhS|c0z*80;GRd(I%`I1l|SQ=S) zIEwb-0R(iX3ep%2DF$IZy4HNs&nr;6oA0Slv*Hw(%FKnVFtu zp&y0mqOf6qcgprB98-te>dRRkut`&&B)^TrDzV-Vr#+tbCyq0|8!dltv^(lFR|^4* z4}+)XjfQ{2yR9$zj9$M(X&rAfhRUG`@Zj!Z_~E;?e#u?J#>v=tD~w9VNP|?{aebul z_k5BUX2{>gpq0p=t3wRziSwBW5Uhcu=d@rsM>GD(A=U6V$#Wa25=2hIOTy;CP#~gOiNJ36 z6B3h$#QV4_4VB$!>O5G9%kjyWm9upe_&{zn0x$9@eSCZlwo5C*BtXg!Dd6&f%+uxO z4kbN_lp&InigYQr_N-;p(_#hnr%#RF%6aT2*O+c3b^&ISTTwxl_V^9y5%n5zeIJT^Y*ufRXomXi#(sZ8Da5F5HTb~#`0*~4~1yzAeJ z3X*dc+It3XV``3;Z1PtR58QeY9(l?8oY>i&vJ#aC;Kq9{diPS=%nxCHW|G0{6xuG( z1cE7$lsXO$-VRFROn*U*5RUPwSm1=VkW=Ftc?d05QnN=eroF1(qg1*Q}9ZpYB>Sefwb|J3s$ekWup zoW<(Qd$ljF?fkv*BVuA=8(HSZm|g+nTh%M>9GslyBf}fV1HJ`F*tDBl104NCR8-W4 z4rU;9A$MoULPKK4VC|L9V2NG zma`tI&L<{UcfciK0EP%x7k~BIUoe<&>EHsQdQ7fh_a~X zf=e!pY~?cW-A+Z6xYQF$VE7I|MQN}DG$N$4T5XS9NI zX-UI}0d03l2??89&5h~Vo;7d2p&w`o8=cEFPrj+Bxod)>pYU0>gpvIY?mj=~)B@uw z&2MzS6>j=!If3f2)(Mt4Xx$8?(nRxEzjOpb7~^NH{IbXAWak(qN^jhQa}jEMX0J%B z7jv?qO4&Jnu3&Out_HBgRo`#162)fDP+d14k4_;WNlCl(QlggUBM+BP8JBP8v(6d9 zIx$fN#pQxi4zXQ~P--#*QxBfH%|}G~Q=jLKrKPZAnP^|VIfu&N?6QL4&F{LG!dU~l z_FHCK!@+nB_oPm7L^-M1V(5%-_x$OVWXi=$Q}_Fs!8T{5cw_ytyFd6-KQ6WgF4?na72reRD8DEB z7mLat4dr#p%n*!#ziZ2#Qft8_e{)lnnKyxe=QNh%i_{VEYnE#WBvlbU0pg~_OvLm4 zeyi`$2YE?*Gy)GZM@(BO(9KrLL9Bpv^61kTy>!GVY5&z0ggsRiq4ZU?3(f8dx_5Xz-!n54IJOXO|p#A+4#domy1_KhgQq_*n88_R7)Fq6<>eSQkkF55U< zHU!&s%^KBf@gcroPD=NQ|LY<{% z`@5rPot*lL1&hdoTaa1#9~R%Vh`tuqpbPK7=5{>WMd>9KNdn0;@a{O1;&U&A4zIDP zN%-+&+vv~0jAcCcszW+}`Vpw;N1pLTKT?Dz0C9{Ws{0ik-eTY%|C96cm5xy2A2{Br z#3tM_cH$|wCULncpP@j-0pN-7-W34ye3$xsdz92#eIxMv`E$O|7*pT;207Ibya53) zAIRnE1SWerq33mtuJb=7HW7>TA0%_9vJV=7_dr)@RzwUP`1WXIO+xh?rA>n34jxKi zNIl_yMVr+i&1c8+{xbWcq#LMpXPb7`pG3lFr)i5N7 z!vP;PQOv#qO-49QiajHRau9e;b=8(eK*?RxolROe0+zW}CIg*2un(>w4aj*QFD-5I z(l%f&ilvCDuWy96RnJ9nt@i1|X@k~KP|1nja+618~WKyB zG*wH(G&ol1T(VPjq)!QK*@&2U6iq=|-K5+4BTyBZL5=C0O`?a+rqmXruMFh=;RDHn46$po+FNzMrSD0`7e>rh@Q5 z&)U#FCDd$w>^$F=B5M2g@@OqAC2~}YGn!1Xx83By+Ru}dcY|Gz%0o>=u4#yHZ_Zo) zIH^jtp4C+R-m(1CSg~ZE8dhA)?Xaj(h`hIe=?g$m0N0IGTJZ&inhcEW)Is69I1%=o zqJog*>IC#+zrL4saJFp{t~gCjL&#iH(X-flRK{EdLmWsXQZ-*!h$MHL)bw+|f<5Aj3u{FBsrKP1xrow%o&bk=1yj#9L*CLeK)-2Zl{#DEBgULRw5x^u^ zTwPp90!z3y`~Df{qr#tt70-XMOJ2}$Dc_p`h!Wlmz3NhZ&DF+o)6!faa`BSMvT%b_ zKAD~316P5pcaaMV3pA#5(VM@jhn1Ab*Fa>_#a{G%=clLHV7}$$?x?AAEhjZIbX52{ zRh{#~(WHbb_IBaIRf~;Im#fSv?$~8?);W6aBg@^v$66EFv#i zrJll%jw7VL^uPT9=7R#&GfirNi41Ro=47!IrrpleH*jl!98oCNJ98C|c*KCx2u2%E z1((-oA|@)QSj>i96{~F^ffrF(sRJn?2kE~lHL56otB=J@BB@xNb=0I=BR-pgk+=<*j$KCNw1?U*fRI4L)4NI)|5PR`|_3hyPYz-Js4COwpJ%4Ec%` zOUJ@e@m8H2ch)|HgwvMMn2IZGB6d(|RjEOyidtPu&fSrwj0hR#{&dBg^57zfnu3QF zK_3G}C!j{SsxW@e&?gyc#@Q$CfJ%)_kr+%v+BWX(Ict&+m+uenk*cveQo5x3XprhlSl z#e^L{(MDJLex=oOwk8zGdbvp@sLWr!)EHN%Y4v-QY|L(=uEjPMlZ^`~^eWIAbrR-I z16E-$yauy!?%KS@@{g(NsUdot+0UlkNk~Zzlk+0{&1pOh!)mV_P^1;0u_1-86!SyG zs%PL9A8~-~jmpSi28_D;=7TBCTnng++*#}V1v{mr_fg*Ky!%qmDyj1N$@s#rwUAkD z{DV5N`uQchDkaBT0Ri80`lhq^SSPK#URtLg#jkY~2e>xC-8H2|BY2*%C>pE6zo*ov z^U7nJck+stAdh7xgY<4chUyvH57VullsAj?)?2f?4N$IpEk<{e$-napv`CpPA}ijW z-@a+*Ik zIdeB)vX+y9xB0uSkG0^*K8@Y9Y$8Zt;yFJfVV!5hJxOka`lTMFz?V!oFKT!VX zkiu7qk@~inrzOON9-ALik*gx;XrpaI4oOJ9uGI(RfYP@lAxbf(RaYetDa?%M>1J`E zj;Y{$$ZSJHLu0{|*G=xla&Hc@-c!*J%ZPOr8KGp7*xlP^a+!KI^S)1ROk4r~P-=A=PYrqPCn+t#U{0mAhJ zsm)8-6K+hq1EVs(2gE0B`P*v#o!I0=alU~y5g?{p-w(XGAQw7i184#u7{wS1mv#%0 zG>1dhF_tZZ#kNtOCzMSkMocW_IXRcI9XM(p;5h+Z0AO1R3l8(SVXi4X zS&_759lTHJS2EW!t`dr4tVFixo;IZ~AL&XqJvihj%?3!dH-Xppe`d;CChdsc^;wAk zA>py}VzaT^*AJngp(T2Gg0x)9xu&v~!Y^z@QXIE%6+}|HY%~4CqG$!D%(Oa%l#CB5 z3lb5bny=|N{BAfx4~Zt0OI}s*FwfT(>`d{iSs3D|{z;dM@rTHSq|~n@&0RIlwn9@?rO%UHS~^H+wsI(Wwzm)!6ofhS^C#5C z2JasL@Y>1>$6>0hSW@E2lbGV-Vx55(2%g)Xv^?9Jo8uAx+ge~LPPUNlpZ$l0PT3RG zA;A3r6;l9%0-C|4-=h15SbRS?>X{}|NM4={Ddw`jC};8OG9+}?T1$+fo7U1Vd#G_- zU5k4V7xBXz(RL9u4lX$w#wMGkMy1Fd4~ZtW&7x4Ss{V91{GF_!Q`j>phtzW)LRXyDSN$cT6I-)qO9akpmw zQ2;nZfY|`FVUx5Mw0r!(jM;663&{7ZDxyf#WD-fy*hJ{k7i8$*z`=Zm6b>lfJCQWz3DS=zP`WUf z5Vh5fQR`JgA-ZNRG0)ED*Sj(XBz9dy3Y?YuT{@N3h$$aPSXz3U?yWqK+}68#gwXFx zED>9Zl7QI*+EF_IXRk>`_G%xgt>Z${m}Av~d5~GtpppxjRJhb@*5k?t&)ed%RXI!U z+6wT0xBXQlHL%t4b-@j;`MC-*06|b?;4Uin;22BFRf)da+~+JKb86H*g09)>$T7VJD;``E{A{RB)q@ciHJzfrxo?g z_I5?nT|@bGT%PEyi;MadVfj%|2~P(mYED}72m7c+{aeg52`43y6dVj*ajs52Pf|w7 z_rMTVCW`e8IVyor1Qgg&<}bpxCWG)(`evqNCI3-fC+G(RR&i0Sy3`oby+R~qCN)F= z`y12SwTVgnP(xOb0MNPmt#ngJlR{t#qEY2Ls_c}tT=;njP%4~tND!RGbAK_~OEv~j zPv3cXM&dOHe$m{C}W&udiP1)%LQ6pFA@C{~rd(sm?+h>FO3T3AvNOtJR< zCpRccwGauvo5HVXJ|cQ@waI4I;!}fq21%~{@YF|`q{@*iX|Ues)IL-QpmU>DSp2Ki z@`;|aQ@T)_EX0Ir0s&%om+$K8s?vUvXUErAXwrSbrVaov-&TtC2NJZG*3aYa9vTkXhO(K(MZI+}zyM2?$&ppm9Wf&u`C%(7m|>ltSo8 zh8)e3{N2S$q8vx3(A{4}GugTmc%J@K6C&w2iP&a-oO&po^M?sNCf*ZcKatd5on5dj?m2m~T}p{l3{0%5^{;}`h2z@E*0 z`S!%UH>#$dAP{lE?fVYi%I+};!~%MuC}-gJc{kTR#$fKeuXEvQ>jy#W9mhWEoT{13 z1YbE`O?FoXH~eSPrTB_>nInecs4<3-Voo-lU3 zn7lYEk=Ucaxdggr+Z}K4-{qF^GY}v;sSg+P0{?st+#g;%Z@LV6`5ZIa?zx9p&pZ0; znYVuFHQ(qOVNDZtyGdqNH?)8Vy9I7HeSVi|q5qBX+L)aolJD_bpfx>1}Yh7ci~ znmiVG!FSssdXGy#TUuIXe*Wy@ zoq`PSyxw(3`V0wZc;7zeaM9|L?@I4Xxv^z_G*bX{rq>C-%zz+C_C~^G;d^@^<|PfT znEUdgPn4@zPVeF(gUdpc>jDiUWAFI*1Nuf#$Uy|NLBm{zRS06H*CsRZ{SpaHl&OIW zvf*Bin5&bwAe~m3!8hP^?8JmF=s7#t*NI{k()ixw0o%`=P1zoZ5207TnN>^lMpuZL zWj?rw#UHJYu~EgtYrHB;fmcyGxYegpsl+;SG|JeCHp&{AticgsQwx;_^HA0L?t|x6 z0s;eTgU%0?sYm2|9*-krcNP&-Cx2Dh!$qBEManY?r^HOsZ*75C&WVkUHKKN&=(=^4 z27U5~y(RY2<$h;UULMmfhB;v4Aqou`+oz*Q?Tma^j_LZOs{Qdct>O~RQKlU4BaR|(T=;J zSN7gkD7Ln?mMSgL8kw}W=avcCZ0-Jf_AiMv?mr|lp2$DlEX~LLnfQr`hDN7qHMx*W zStn!2&Z0A<{V^(o@&VURR6Kvjo3thizE^<7GBY#ZED~p%-ulHB=l#2PcRr~-0%5L4 zvXGlx#f=8s)+bvtuDPO|T+>i*Y|3r{b?hmT6txnDP_u4N`R?`X?C>b7 zs92jCDZMlVLKoA4krFK@G`d7I`*sUk zTj@8w=s=%CS`4@gJ3E=F`7FA|$CJxHhu$3Jo9|%{3yc&Qa6beBm@c8k#|TKpot;UO z^cmPHFTs|WQ!izoe4)FiE&j$3E z6jEl6v-|$NG_Bp$hd1?&hT_IZ!I5v5NMyY@|-WTU%dwJZ(2UDbzBUN%@$9pwJ6EGMbKkRehvG zn`IjmwJHD7lxj5h86Jq?-oSgTbEyj=@boV%9^NUJL6nfp<&H3@3y(P{tUH>dHF09p zpq2f}gP|v!0VX^1-`3b^S6}Zhw^PPbtlH{cG029r{Sitg{A6c(c7y3m0_xH=qyM^r zNDK*+)W)+rY9)Gwwrzv<^{%g2bn|I!4?~XrjEsjj8KmmV!|C-&VimDKHU3BT!y_XI z7uu!hJWnYm6>V*jM)#FH=T^J=c^wXA8}q8@>;yB!yKIQ5;C)$-wHQyS4}{`tp0gS< zXFstm+Wbhv7Wygh=!WVJ`ebivVcUAY(;w!l{0zyhOJvjMpPs$qcrhl8u}~@?n_}pP z6M*tUZ~W)DM@MqRtxc(lCL9)MaEkKwx=CbrB&lK*xo;XXlT&R$Z-U|saY2;^Q-XSp z_|BratbaCrz3kXlMt=RW1{R$_i4}!^C_o?(ItHRZQ0i+-&m2m81TtHEC5Rk!fOM{Y zoD`oL;kwWmIhl9OQHqU??fo~3z|7!-A}i2~yy`MZr>Oc>`aE z|3*tJ`~6PPK?+@iLqkI?pIwU5!dGX>L2DjQQA3|KIC2NK3_2gbeZrff+AQ==N1^(4 z&F1cIrGP~lxzjNfYkkAP(F#>l?6Z^LU4#CU?*bp}PTuN2CVu@x;929){iOBdc6>sr0F%GB=K{Cv+`zemue*5hh0Vyeq zqn=WZ;&dZo=!1BF5CvX_1tH^bWERWDewa?BdsOxyv0!wO&(VZe73vjhX|jz zZipuZSGyMy*LEJpqa}QHXb2+ZXPyN}s+Ew{&GUo}HWR*`u{!ppx^8@7tSu3;TeMaCr zhqi`Pb^P-Y*e8en6(jh4I7Kbb{p$8py5)fF%JD4)5sL^qj-n^IbM=KYEdoPN$YK@W z9B=4;mh^_XV(Tg8qX84$1`QUyBkLD}sJyJKd#=8~U8n+)w>ZW-`aOP3)%PC5*CX&q z#9RdT4}NuL=H^xoI8+TlEdeAjbU?$*Y%Ix$C+cJ9@lwuR*}G~>sc=7*AHhSnCn{W6 zAaHRv>%5!+V_a#5DjV9Md{;$qma_k~IyHHpO|>9Lt4i}EXn;h$g84kia%o}*f!yU2 zd{b-`%4?ad^q`5X8bpNl*OA`Xla09u<5pGTE52e3$RLOeSHF0{hnKr<7!7-g-FZox zG~`_ZvqFm_y~pp9^JB2)ec?ch8A|8nC1FWWWE~CT!lV57^-(!1kC-B}YOaks&`M@2 z&EFpU{Ho(CGVlgxF)CK#-p2%5G{aK;L-Bi^X%>ufl#KmRI_C|IWLw370RhQl>((^5 zR8&;*o?m~|+1&>+RVfHtTKqg~CeEQ5*Rqm&42`6uV`lcJ;57O$SDGkGE{dJ6U%z(Q5$NS9vg*ENx`yn%qKRs+srebyX~KgH4h|Lr zT>}0Y?TolG(&<@&{>j=nD5pm-;_^lZ<*)8T2e}$Wt9^dWrH404BN)8$_Cm^osn;4S zo~?*z?)uL(q-JH&(uV~DeYtDB0sAns6-8y7Z;z#Ad~>I8DnB#@PbnZ zaIU>ZssWuD?%KlCb6U~5GBGicy|p@BrY}~&l-C=g(!p=Z%-W&vkzd)u*@@AbV=kH6 zj1yGw{X4y4uwWJa4wg$5ue2bd8E9=?xSIQ=5xh;qCXeBj$ro6F8k>3tmmBAh6&_t9 z8{Awp*vTk=r&dYpnIG3N8&11SlgZ)fbjnG^=(2QX%8gB3QyD_eKwh1tmry2EQRT?1 zt~NsY3F!5Jb_m(oazwgHM}`@pr{yciI{$J+)vJ?lWBpa9kMJjP4ZZ1l3ev`k>+l5W zys`C?FNw{>5U&oot$6pt{j`L#rt|p!=IsR^7n3KL)g~GQe=(tkcL*nNKuM>#>FlQC z#aI-xAvBE`1EnQRY#SZwbE5!vQmG+s|uL3-g&szXV|Xx)@d0fCGiHEx-tmE zIEF$2NN4ZL>Qh=xWC2fZXi4)D8^nPyJB=-4=;?fb!KWd+orR_`)5KC&d_+*)=L{}t z*7O9Ksi`R~tXQ*Jo}m|IDtb;Wfnxyjp{Mt}ss0GoAAp}NMf1=XN8~xvn7iB9LV|*8 z!4Vwp$%ayEVo;~Po_E-I7G=+SFVK=CP5J&1%m*D_Q|H z$d`|FghdE?MR&uf9ZFp{gQzQAqV6uBReA3$wNlsD*8_;V>aNZS3#QN-Hz&SI&SnMX zDgD6py_e+f`J$KJ7fG_%yFlvc6YI^;(9)v4Hw!S^zmsIExch}0L=dcBqB-czio$BS zj`LL6x!sZ_)v5^~a%LJ6(4oPHbcCB;$P=6Lo^MJj&cL7`DvF}h@p9Z%#JjQJGu93H zH#^X7^d7{A0}(q4Dk7JnzJ^Y2di}hk5+rjN3?RV1byZ^J2k`fXhoUE33^5q_C{jzS z<0E1^9X4Do0K*!aK0e`MoO?PwHYnMxe?ZAWueOuxyL|D>zFAtZtmV5`Sq(@pLU3c$E4`#)p4n;_lIu) zO74p}WpSk-aWz7yiwpqfj4}QE#`sLesX<2Z|QCza5*PH6TDc*r5VvzL0FV)WX zxlq`0Ur?G?P!Y=Vx)?1id8KO?r^H}*zxEB8!(;7L(sp^8U@xA(`05@G``M!qhX1hFeXsQg(c zSRf3C6sqiW@^W}&FlQM3TkkL-)Ib!?PdEAy*P7)t<%witCAPU#C;cAhH03s{8DUCJ z1F&+Xh4JpkQ!`2_+O;VsQvW}p{dejQVYv+KwBJ3adD%tuh}ExLxAq~WrM1p;d~>Vv zQcQg%>KQOI>FP&_6bWJ`i8m}Ya!-nc%-Zyx;GItk(?V+ZkH%#Cl0uHzjPsSQT{*b| zW1juE9qujXtuVU_(Z*o^Uij~IUs*WMY)tug_s(mdmk~ygZ1k_cu#N!y7~v>0HrwmE zLIZWlTp!w>ij}dH-gc%CZN-uHN3>h(v!&bq#Omc~gU!=2~e>@7aEKzNimDwFKq^x6ng5a6IjU$f2EzQW_+;Gj~f zBYOJ~3fy3Wmq_*7;P)l~v<~wBUX?yZ1^s-7hgDj%x3~Ab^X7!#qA>NdwX0w5+)aDNGWmdsY5a8t5;l%&YZ1;vA+x3o;>3FUUqQ;4AfJl+TtC_ppNqq z_m)+jtMNx`4k8{>-_MWM>GLYexr>cHm$hANl>=ZRetqbPB+Ir@_S#n-9TTsfhJpjJ_*SH$&x}ApfQSgdIHo04EJd2Toa_DDL zuTfEZWyFSmTMoH&ZM(VHZuUdlXzrIgMH*XFKqJjKyNlGbrF|CRwQ|OQh8qIPTc)zj+rnxan)bi6B+{qnbXJT#{=bqzix`wHFUf zFBA<|Y|L5a6IjNeRM6!sb`w~Na!P(A4BQ*QGEawab8@7IwdhI*&g_$e$BcdRTlP2B z{MQ0ue?qR8pXS;ZnWQ_dSxD+m#yd(Sd_1mm-N)23wXwI`I?Z^er<7E*aZ$yews>!I zUz9m*WerxsnhNUPw$QloF$zqi_}B}cw9$v7F@)nz=J;h%XFtj!P+?sTPx zC=d26C#GPF#SO>uvF!_dTfz-YPWGBb6!DK6)SsL}L9F3iJ=pPLViP0C|4Qw0gJ z7aCplmrMOZ+1S{sW(55qe0YWZ^pj-NIL(Lo2 zuIu%ipAjUIE1Wn4wO0xF7O)db7O(vx8iB`+j)KiEYt;h;a}zeIm!S=HA@5NEEFHe! zcTdypex;}|y~T-)4M~-|7Il;|#vy8A)fpaYe~z+&hyJ}u?DwOAY~RVwf^+|sjYYQkNR(~(%o{u4DLy`_{)l@`pTvAl; zhF(nNV{PwF))SkF*X_i+FyMX_AS_u8BQO=?*KqQuzQUSrLwZ#{PNjuV_6wzqgde}@ z4*#IP)U3E? f~wNx!3M@ebkR)B8HlIgmO(;0{61n=S0U0U%_bw?4=n;j09Ka7dD z7EOM;l|~f+d~}B54>he#ei7WRmSKV;odhF7cR9BZwAB&fSlXmplD3UvkX0-_B|d06 zo0b8mrWga$(r}l`?JbpI4OVx%@u#pyzMZ=y)t=twyK;>QUZzb3-Ua1JJy34hL2LWH9Mn0j$sEHD+Z_Mz&hRHDn<4-Z!1 zSE)*gbUQ=XÀkpN9?7bwF~A(s3Y?4?Xvqostz#ETY|*x>h7vPUrYmT3Fe`BQcS zi=CmJlPFzw2O}|gQ8AHiY0OZYsdi}j;3v)`ZJW!9gp?5PLZ@gs=rc{esrj=KH#?ZZ zI?1R=o{zZG_0`=BkHD0KZl|fY0TZgljk;&F@cfVq$L^444%rIhKQTka~}5qwwE)0{*k7FJUA18VurOCEf##ish4d5Q+P1Z8AoJRyv8Rq0j-qa6)o z(ckIao2wRJX>C4*+0Sd00s5M5mMOa0W%*$5o(e!C zPHD^TZiV&`#%df1YLfGJUI|4-M=KD?@MaA8{mFXG9R$$E6wQ_+fq5hLZvjpfH=`ne zu)8a8zdaflkt31RAPn|_nA@U>rxXr7T%AI#NKQmQ*~PC6{$7|Cni z*ub95hYxYI@$eu6x*M?)PLTy4K-pXO#!-6X;5V@Y?qT54o6*J{;a8v~|J<8*kyb`D zB?5PP&?3^ki$Cx)_zK;ZnUmve@}~mei#q>a?>E2sC9hC5cDGwZGw5QoG&4IJc4=y! z9;u$e2UoHmG?F7X>BK~Tyf>4oQA|q{^$s9e28pMxuB5=B*C#Fe8OBZ-5_K+g-2%UU zbGj>^RSqU=9j&dg0|Y(Hu>2F}pY8D+qv=B!=M{KC&29U)7ab<|{ z&huN1eT0#+v-A#7@kTBk2Tz7k!v_`&$;HWH4R{U9YyeH5kmkT;n$PA+B$7P#?%pDz zeoZo4SzdAgHl0LR9R7aEyIiP5?_RlawGVD@M~BP~5`O=G31uJ!NE4KE8`jE=Dq#|0 zGBQla0+SIcm|xOdwH3+n5?}@4*P}Jcf>RU8m;W*5&A$6g9fxVvetZ1@H{Mnc@cZXM z%VBdItXT%QKGQdGHoHMm;I&L6rhx6KQh07Qa? z3?fTIIj~~ZR>b4<8G!|90h_S=65DMe=b_v!Y%kRY6CHDx8OiDEzKHvM=cJJ zy~r83aU-!VFez8FMMhs9F07UnNLVAz$JYYtW zR0+yY^t>+R-qDkjllP-MYFz1onNY(2@JnfahhsL-$+RFcQzF(2Vn9^q%H>vZYFCgj zNQ6;a1x<)%#%Hn9Ldb799tenvGmCo=RhO!q9?|3+@!#SAV_7#}@mrxZ;;^aQf}(9Q zaJGKSbLWTPEe{&2_-+1zVoEF&-AiqT;QYv6bVwPm1V|r%oVGfc_GGYf+D{6c5+IT@ zV&milgLw#RJbCELTAy1gPn?zmcw^gQhuQt>CfYRKs$myM7_-Pkw4B!qa+5HzmvThVEKPa z=M=kM8O7mwn~@fO&d4etf{cc}{*PfVki>)s7~lRRoO8m{(^IDeGXjDklm{?u)6Nst z|0s<8Qi0OgFPXcWrmrxE_fJgKWJy!Ac5%@t`>mD_h@Pzt<`K=*P{1yF&{@~e!yLoM z49T69ZU>JdPA5y$0Z}E)F&nf;zat618)d4I3Aq&-ZwFtiHb59!=?FFfriEfl^_Z`A z&+Y65Ap|Z!3@ddF4}T!)>IgV-Dv#Iuy0HNz>cYIrhOA>e5uZ;@By&%ts%M2tryS>2 zk{F&AwcB%~))xQc&n!dBOBvKt^h>qorKEgij;qG|1PB2}=_{snnnYk`%5I@?>1Asc z;NM>stv*ECbJcx-wp!~r1u>#7wFmTtKY#wzxGlB75+gN%AOkvjjZH6shNfm=X(?X1 z-9w;^+S-2k7Rd^PC@>RHa^rbv73u&b;ipE_9f{xz5oKlNu5RIO13Um35!OS`0R7Gs z-E^`&$3_<0P#`ix9;?`(Ts~J@vkBBTK+6J>41J5RLNkb_T*S5y7l09G6d+;ukn)TG zbx6itL-#E>u9p>fCe%d^j7XU9H%T?1Z`X4bq?u6y%X;c z9mPX1i1O%-qpk(wi^sgNV&IVtP3YcodpsaWqH0x`gBu3^skXOyd#j>Dep|ob|38Pt z>HkUVn|}Y~!ha$=)4${cuFXt50N=p}{vaTA`(J>6W#@mt;s0^l|8?nksCz=>DpTI` RJHYpVUMOiPR>{8%{~wJGR+|6- diff --git a/doc/images/jkqtmathtext/jkqtmathtext_computermodern.png b/doc/images/jkqtmathtext/jkqtmathtext_computermodern.png index 2d3563f0655853cf8f3f24f065599117db7f888c..6d9bd496df5550633b3a613b16fbbe95befb1a41 100644 GIT binary patch literal 10023 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 literal 9945 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 literal 7497 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 R0=-cz8A(Nn!q)~L{s$;c1d;#% diff --git a/doc/images/jkqtmathtext/jkqtmathtext_doc_subsuper_italiccorrection.png b/doc/images/jkqtmathtext/jkqtmathtext_doc_subsuper_italiccorrection.png index 4d37d255d8670f05b8265dcdfcbb87dd99aa9a58..5ea543f2d68c4d26e33557205f714fef10c6374f 100644 GIT binary patch literal 8193 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 P^g;LajlgBM9A5k%UQuxM literal 5952 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 Odh$q1rBc~4{J#K!rglvL diff --git a/doc/images/jkqtmathtext/jkqtmathtext_doc_subsuper_italiccorrection_boxes.png b/doc/images/jkqtmathtext/jkqtmathtext_doc_subsuper_italiccorrection_boxes.png index fd1815a12d755ab84db004b581513759a8d47c2e..9a71108ce27a240770fa32bd8e21c7d95d6619fd 100644 GIT binary patch literal 16967 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 literal 13438 zcmbtb1y@_ax`md~;!vbG#T`nq;ts{#-QC?w@gl(~ZbgbqA-KC1ch?YtLkRlPd*6D0 z;GMOSlXF%w8Tn>r@BQr)t)e7@fl7>ufPjD@`&Cj60Rd4G{@L~&GW=byChcng8#F_;wR=jezhGK~_>s!zUY(v7y7~v6;k0MW>YQdelB&j!YG#qzZxtWSsIYN@a3^!AszHGH3es$kp{&z1a=>m8T>U;-bMW zF0DPbG%!2q>$)d%vL4BZu z7_SF|O_t{J{RA&w4qxARX|7o}#j{HgzRG!bbFhfLv0t?M{5(r#*~crYM&PdbP(j%dO~932zmK2Tg-44dG!U#Rq&Z!qnP@M4~w z*>$tBDv^QN+S-oi2&9*nGmTqu3i(~T4A9ckt7~fR^XBnpWMuRY45(^o>?L;=C$9=P z%KKScS+%aH*fD$Swm(p@vBek5r;nytH|ojC%GzqO|6aqPmR8Z!lu}ZPuW*14>HcFVN0OibMNsX_m#K=&ROH_#$^wD~?w|I^|;%wF$Jc!R{SNf4NIT0@s{ zW_C8b#{@eyHMP3=`r0EgGxIo6SV+haL3o=WMkTKxOVT4CO;1}i#rW@HKV=FCcbDEhh zRi@Bh*VNRc;^0ti5@f7t%l7s46|Y%ryY@<#;kTO11|_|A0nzNIUbdtIgP#1bgnse3 zVL=yG4G9Hnh1kOvJMM@ zo12>f0D!Q)z5T1CqzTOShZY`x@BwvwS^#;p!w#~JZu}JJaIc=9&UjLH&s>-78r4)( zx^sp61<9{G_}6^{r^*(=p!GJOjE;}b7f!2j1eeC5We2N`cHjDB;beMcWKuwWn-|1w zgfUgX{XhXezKBEPPF`L-2oKP+A&bu~LGr(fi+$%3Q&XipJh-6i-gz?op*`K%eC~h2 zH{^iQk&%(=J7r-QlFRkt@;C$Zcz$dbs8qV!a+v%29F&#zi4Yw=YwK@|04thZ-^KOM z?Xi>nZu?C>{hI)>vDZEyyv{nHMk)n;1BC=N zkqam%<-woXInuhl-%weHQ`_oH}X1XNG~q^ z@bK^!U`k{v-jez2(aL<{`EgKu7ripy^TJ$jXXwQC1EzTR)oJ~Sg8Q2XOuqwHthXNB zcVK54Uf%RS&#y)Fpb(bS={!+t5$BVaNk7xWXa$lbfTT@}sEY$b}_ zFCcTX{NE^;cnLtZ4=!ul#Q@ox1bFP03Qpd-6#wSpjch4aRy-bB+Y}l)Su}Dr?1oPj z*#lfoLtlB+%et@0*hY|D^%}|ItE-6!=}+VlN~V{fV&UovC`(rpGBL^iDn=9*3MB)> z@Wrl8odi&8MZH{G(e z(1Pvd+j4`oITJfQha)=YECuyd&5OsR_|w#MXOQt!IwHKvIAbha?ljCy3P3Ik_|oTA4e1C`&cOR6~+vFYV& za<}&c$NIveqThC%RT7+Glh+MaFY&)Y01k$ID^&R(Bcr2cuowNo_{PnIzpNXy*0QoF znuvN-{3GeRs?G%sXI#Wl(IK@iuxm96`9KhPwbz5&KwCiLZg0`qd-*f_YR{tuJ%9c& z93GO}By;S81@_aIwxTfRZKG{*)-JZDcCkMT5{IACLw<7G6Es*&P*GEdO2rT)HXf0o zOVqe`Oi{7)U+{iH*x~2>fVW5_?h*eY5h~cXe$^b=7UtFOJqw1-CM(z9b>)pPskAu| z!RGM^0iDbZ(DE5> z>&Y02?57jP!Dnt^TR--+z_e-*GX%s`T7cOmCt6$0xAqk5o#H~fmXj}vbcw8b+v(a> z754NN>+(?KWtlo)yEh!Z@qKXF*ftQoJ=??*ec2OcEn#ldPI{W)odAp({hTVsG; zRO(ivM4?s57#WfOeavNNWyR<)0!-U@C~Ek?$KCfHRJ!^YbOkESyZxC0Ux!HfJ)-*i zB^TS|bChJ%)ZWu2|AxK#s9pmN8w>yS>lae;$gcp+UoOjArr3*QhC{e)FQCil7RsEthr_ZQ~mp9|iyoCIc%iL_wo#YKl z+T)+Fn}w(Ls|zYWC>R1=-H#*Tz5l|1MZyycuY|4;4fRgEMgD5&yq)FE@jM|qa(aPl z-lx&w;q$~X8!op82=MA2Tmx*$JwCRhpr%)(lai6a#lhL;sK`xC-QUG?88%o}vb?cAaPzDM#G`%Nu7p)~}kz1Z4- z=9NBWnMvK%b%5ffRC2&Qol^GECFA(S1ipaxDV{jjL$mKgmh7|becQF!?slBn%jA^g zbjaC2ec)JsL=j0Cws>~A5UtVXWh+B96Tyq~vaysxIw8k>$aLYBLI}V(aSx6DFbrY{ zY}?GGI&hB8Gd$Brc1O8+x51*CDIq3DyfFt{lSN0(~b^e`q zM{W2!@k8{{8(k-7t~=Kd5m8cp)A#iD$3pQE^vcn9VMyAo)8@|j@H+#>M!uT=zH!3u zq7zH*Um>#*ClLIeqpnVv{;=WdnPvk95-H4YRd9H=4Zm~UGk&y{;2W~Cb0Eh1C26+uyIM4pKlgc9qpJ~{Pt#E_EWVj< z>obA-{M;grkw?loNklI2Gd@3ZuanH)VY0`QN#2)57I(cGuFlD)Oy$$3u>H~vn#NTm zBN!!aug03k?0F26i?ck{*%^$t3-n@t=_nKZSF+GfMb$>QcaMbb?^AQ`tY>LU!<3_g zKyy;TdX2R{Na^%zYkXa_A$xh{V5T|}zqMMV;e19|*v}Zfm;Kmf(ys{(j>tpOpN<8a z;^6EfNn7cwA z9)Rf&#bWq)c-0DmRvEk^?HQ~7>y!6u+~~2NYR`ZVNAK4Lj5p9m&+oR^=3m$pN)>G! zh;zwcEQaElmLttkMUt(Fo+*^ z{yaY?Ia_C5<{2c|!A|W!hr3Xv&wg(uaj>FS{W9VF(`SrThsW{N)`hk)EqoJuGbKDm zP3ALj8ZjtMCwPUfSG6$D;~a2_!j$?01YIAppDoRECo60s2zy*aMn$!bu}@nj0|Pe; zLDR2O7hXyN($NY#$z5@76SSHi|I*OH>0>*bF+Bn(Gc#?LI?2|D6NOzb3D`ejD*~O$ zUa{pq{P_O;dvEc#10R_f7#P0%e=ZZB(w2>kl=_rKo|IWm z|1s{rxdBKR4;vgwI!Czho%KocD&Oq{8eMJ{^W)`GBWoe0@%I0L}Cp zf$7`=-u0mUbP)M$=M&$FczzrJ>c42unbB>=XWt_59t=ITgcEPJRhbX(r{}_MGwt7z zenQaK#J4^Mt44;0tSjwqbVNl&#L&g`E}K_ZSq`%Y%Xalkb_VRm#pnTS_znS)>EFx8zINF$;KEe>% zZy-Pg-)CQ{-adA@^*9-T89PfD;%mWPDRtbYOkxj-2m?Gmyvewi@jPW!TSlqkVu$jw zkCt;~G3s^LTqjH0pQ3_nU?kP&)c^KJ3_8}QH)3hpHEC(>(@&Ie35L2q{5 z9iEtw!hiprpJ_Ce&Ufh(okC`Rxn{-Br^hRDS4T0=V?3rDOwHOyuk!M4(YeILQR0Lu zY;-|rq)0+m+TeI;9vu_MMd5sva3Hb1ZiYj)T+ziU5H`#{a=cpOOus;o%y{REx%x!Q6^@%u6@NO$KT`#twZ~~cwlM^>p zZXg1K1Ys!0v@7Td-YIWLwUJWg!sUuD`7+jaHJI>SU0v$|W>u#D(HzX-xT*d^t0FZe z1rN|VGc&Vdh{Xk7CCHfgkIZ1>?gwuIyl#{5G6gUFfckJXLVhte7F{>6eO0SE`}Qam zt`@Y`XZ=?!I8I&RaKWRRf9^}dT>N97eYfWZsAo^YB9=bf(e+c`kPKn9C4-6n-4JNtnV?+u*j=;&82WZ=ab z=vO$DF+hx(o6~41l=Sm!h4aLUMK_x&AXMWtioam8r80_J0M5>7w}dcEN&0u;oqqv1htAQ=g%h z_xi8h81~L{n@#xNrH`Mswt~+#oIoHDIfPBS#@j&uI;pqg;p>bhKRR+~S!Lz5gG_1e zhHH}1sil^tX0+{WNy{~fa6ofptXiO2Zbax?sX(tLZ1Jd_9kYu`firlWYxS$lp!Jq! zli7ULJW7g+_TQXe=uU#j+u z&#dLMm%Ks)U;9e|`ZFz6elP*R`cSEe|4w!3+Rtk?_uG?Yvx}Vpwx^*ulEb9wj?Qqj z52&UY?NgQ>k8ZzH=RQWE&b1oGx| zHhkAeE+Ab`RhpqX#_H6Au|&H?F>MB?u4*v1R-l!`nzG05Kw4NwTq)kE6T&`n1NLQv z3{y>q-$*L^{Q8XSu5-S;>xP>Ti7+1wuE;GFiv4j|-YMt;Iy?`$=(GQI`(Vm8g1{X|LEwI^-fa4bz z7jU^`bZpF$LNiu+*Y`I)Gjq(*kxgEP)Bgz?zcxJ7EA|86GRNM*!Ds79Qh-a2(hyvf zj5eyVzT6ujzsXdf1AKzE(tj~bd4^2|xAyMt?xMH_A;RnV8NLJ1jzxNuOc*MhX8RxqyInWnH)igs^vb*w$OzlxPp9GehoE zLT|e-_s8@DJ$SPw#DhB|Fu~I)#{eJ3&=CtNPEPfvSR*6h z2sMF}l$1ZVJJ9dMlA%4Kwzj_k6|r-F4_`MdE5P-|DU^>K_6sa>^75dKM&>2RGZv*z zof|DYV7a&UJQ9)fHQ4XGzK2;@z=O_R>rCM(F)t5J+fo99kDi~UKT|PlRoXNd9g4$M zD7xekXXEBPhYIZ);lumMw=+5^dzV&AwWc(5bbbaVk9Cf#Jg8`BmSZy@kAGTbQS6nj zw|}i(Ri#nK$}U-*2hy82EeCICsAr5iCJAf}9!M(qb0#er+}+&RqO9d(;+I#pT)ud{ zKeo#sSs-;ik-U1rw}QERBiC-}o#38FZ-r=~0@7XJ>_wm#T$StFD$V<1Y&1_wpQ>(n zcxPYj+JDphBPr=UOJifMWy?Icuq;L9aMEgI(HM3Fiz(o(y#!hFC0Qe7VaO?96C+OJ zVDgpQXW>SMi+do^icq-Bp{eMdemzVTHmZ`?EJmYCj;0nlrR=E=&$OFrx>grXLsm8{ zKEGs=^MdqPeCD`Hw6*BG_lt4UQ_ejYo^o7_xn%m{x{^q~rNB+&Gh)l+JgIFO!5M%4 zB;eIpmd?iied7XU@71882sfB^dI?FY7+Z^Z6|;QQuXZ``9!u0wTj03z=KisM&3A^2 zOSH(kO`nALOZ`iJfFFIUk{Aswt*VaBQ3A}#I=~}L`CicZY5hX(OdY7;_m4qCC8t`8 z*4emj77hY7E}MZJ+OUOVJ5*FuIM;T7UD{8v$F+~y+T|I2E2^Tk0}Ji`y7sab$+R~- zRD$a(bjc`z>1^??AN2OsgWSZihLjK0ttD|)4A%{Ef!Riod}#^!KR%HR4vN^M@5DlK zH=p0U<)J_%hMjMTYP$?l6$EvvMaPORWrzR^W8c6W6Vz9gI(}Vh##5_M*Q94ZPChd-G8T-gE!G>UZN6QNXPf~d)~ zuZ14s@NyXG#hCgkvf+DIZ(kqCkx=yX;B56*`tBr4z3$*&?9J;$CvUtQ@$TiC*VSzV zX+cL{rXAuWJ;2A>?0wv!fe+dhAxk#ez8jE_{BOi`(U3V<@H~t@XvtbtER?Q$hRw7Y z8@qL_9{CAg6BRj`&$vvOZ1T82qd&xP(nf*K zt}**_%T?${i&!oSX~P|PE-%@vf`Zv_WYGQcfDXdh3TSun8hTn!63Kx>uGtdB*CyZG zIl`KbJlTd7k9-#0_l9vqpNnBFD$c;B+^@(Wp_*wMi^Xa~;eV*@`}bGZet{LjRWm3M z=b3kcIU7^f>yVznlY0_egef=&8yFaXEPx#nv;JPtv9n`seP71Y4fSc>rfJ|69BV&r z9KZ9UdpnBxr_BU300|#_lCsy*N&{S-b+!kt2^<=6{Wfhktj#7H^7iT1)??Cb38ozb zH~n3zi2k`mh!v^j9eCObX3O|2@Jl{R+=9Z0|9qeFXo_;#z$y(a2;2pGYYTm z!F$0DM4DeHZ(4}7oY$0(;DGy{5HLQj@Z-l118}r`Y`kO1MxjS}_j?l`~H8 zr5&2#$+yeAjMrgw2HlNyA6&&c{5pW+Is}&JFAroM&~7`3slg0nRC`XPDr}P+yN5Lk zfUAwWjP~~TqqqAaV@5~iuu7+Iz>5!eDsc2?`Z=Rt~e0-Zy!JVNSkS$2$ z-R1Z6fp*AMKjQ3^*~4?HnKFpnbvKN}aW+SD<2bx2>e2$tHeGlzJO2bn&hnO!{0N_l!_ z+}%AaNigUax{S`GYWB9x#-^6~7G8wo66mkv{y}J=Y@4RNM zaKH=A6$_R4Mbcv=f8Lz6gViJavo!z)hSX>6x-9n>fu>HiQR^bl+N2|^4CQte18Csq zkH^O>W||x6W_^hUs+#(&JWj?eqZ5{9(BFa=*-GG< zVlNNfT`>MNx&Wzim#?pWJ_hrYKG~j4kq7?avCdI`PP0g!?Q84WTfx9q7Uq^{s$M!G zH1)vT`v;s|4*GWfW=IsaKF8{`(v3+NfqV|v!*_0iVWXeBO|UKTttE>lPWeleuDG%J zzze>=Y{yiCO4Mk43@bN$y-j0$SJZ&n}R4 z&9!#drR)yJSf%ttLbU_~%cANSJ|-~IN)6wg3y_N zMef=NVs0|L0ttVLej_7dwI1!+&buu%M+sRS+Ec@o`QXPxY6*&NL_gt6n7yH2^6Ba8j5JW#m{Gq=)EvyQU3jfAPP6dut6zY|O69rYv*E z-b`^i5S>u9TKn=E|MHX%6_u4p5+Gw0Jv%0{wJZVt;!*M~H&KXa-W(6q$_r+CF3lAih~ z*X(>p;@sYIy52^_XGaq`hLz04A6;QybMW;PN5e_jHeFAN_VE%8sL$f)Z;|$nGU4#_ zp6tj&*i|ADGj+^OHxkQ|;VD}<;_ZBHo}H}*v9uS3?0Dd%cUO8Sym0o=w^$|h^+{O~ z>-~yrd&irTydIsEdm6p$Q!c^78HD!j|!PR8E5cjWYO&SwjQCghC+g-v4ZXoK#^c zh4F8XSAhn)nSR}>?Na@lbqwBYPn@{7SXAEXh+JbJDTCH%M z6c^j%*f%dL25~e11nuuXtV;pz|fugJ#q8!e~?O8;x$Kp9ejs~j1{red>{yn4XIRkg+*3qJFera z%btA8x9XxPLCqBR*jMLJHlY_8brLq}uSUBvb^M-;a&7%%t|MQFo(6sVLxg@+yyy1l zsLK2TPh^&WSi&Ul)ADd|armOPzyi=i*`06H7jyfzBUM3J-h9&k>_X9r4Y(f2i%?o# zepmfF+SYr6(m0-E2$OuT`?q@a=5I#EO2d|<72b_+z2aY$ZYz1~aS@JZ)HZL0l>H2k zU2yOtCaAiS7GEa4eY6qEOXxI)01|%|GlTibhFLPI^S{Z3^M6j-HXlm*`SS=h7kb*J zA+W2*f558y9dvE0-8q6K_>KSbdqvIEUGb9+R?z@KB;TsyrI7PaQ9P#R?iW@YHEZ1w zh0ed7%eyq(3=`i~5lmNQy&%oc#|ywcSVXU0zXr_?T?kKaCb^$}eRyteI&tYEz@Y?N zvlO_sRh)cnMlV!cf+vPZ=6Dy}A@hqxn)bT2=7{qc^XY1x%&4h)XkJ^_wqNwtNL_dE zPDJ1y59}FG(nzTb3{K^t&Ckw`4NbK2Y1qWXqaDxK|F2cGabi zb&=*DTb+Z{_t*NFOVB*j;Np3(Q_DWVVqraNl?f|rNoHoIoQ}><>n1aT zNdu0duB@-=l~Pb7fZ)8_d6vTdljXQT<) z&Kt5Pc`1s}%QS_Z9*hKDhpNDH?5=?8!1`~uH_4(+sw_5;w*7T z4qi%Hb86~_GDV6i3m@;g=&f3tP@k?gjSC;RdGGh0guR6xf+lyTbkP{T1PtTn8vADs zbp}M_|H$(xai+dlj^s1am&j=#+x0&Es8d{`wHZFzD$Sy8^6;aC?xgPGIz8H*sQ*_P z&G8tRh(IKEWwwn7FGr!SIK?Qj?i!HzBK$|fv_Z9I+GReWr#inP0{vj=Znfnqeig>U zn~sS5I;(S2K~fS4Za13{f$TuLfnd)+X-d! zi0kiHKMlN{+!nrha~3OY}IIb?$qeI=nd zCkz`sA+vA)t{~BmOI5PpMd^tF)v^476&!JZO;hLka|mo}{^7%Fo2IT4ON zoOQ^&%ylBYMZTCj2bFQ@@kdIUKe^F!qvV4~!?lVcCbH^+ph9t`+wU4zG@JCQ#H(7b z{fw)JQa5<)Qq4JaK)m0iiwoT?kT|W!5l96NC-Tzw6Kl?G5Fg^CbF(<#R_TRH>pdP4 z6XJPs<07v`D^?W9>|paa-{Gy7vrpU2*%VRX;L@802C^xJ@HeBcY<(y5g3)#xct;f= z7ATN>j=OmSW?Tlw9U)*q={J=PN}Js|hsY3YKeWTme!@@J>KlPj!wugXvPNH7%9|`ii}}qPzLVfv)mD-9oIRHzb536vHny~a}#vA+xND&YZEC6i3&t6d1mMxD)z5?3|0fapvXuZ+YGU}!HHk& z7@=9Ur5ccn$6?B}T_`-)Q_R2~G|qYq$0a-da#063;sdNfdmfG)Q53yh*D z9(~zjb}`FFq_Rx7GdF{H@YN0ZR+-}j>z^5|Xdh8MH9K}|f2*u&*nl%tQq%gT zcjF}r`f#y-M}`h~aPUWntXn3cj zcRs(y=$))DGQK#SI=c!Bs-Mz9kDV#1=P~3GV*ijb@3ay!uOYehlpN4I5x6_@^U)hY z0e|1Z+FIbYtYhN>zk9PfIBNabE_yzFVj&J=t^uiN4L;WsWl_C*X%{k{;f z$ZN%54CX~PtG`?Nx|dt@{Sp253;LE+pPF|e%)bI!z2m=T^>#houCl#+;)`6CeWJh6 z>P0tF3Wz0v2<7+Bk?NYcky=`BX*8e#T35bHSFBYr5ASx?33Mkb3rA1eIJn|^bK8{| z^2QBt066HM#mtz)&U8+?8N8z$Ey7)CBkj8=VJ=v7*RGYy3`7#3ob8a;Z{gV@%c)!; zJbe5XBRAfYb@_qmr@ez3dNurB&j&RhCtW6I#izeTn5xEDO!!Q@Mnh*S{9L9vM?TJO zcnC)9ci$r9aG`m`V&W>_9Wqsmq&eVXbGq@)R!^vqfy>%-`8Oy{8;?4U)9BrmiGBakbCE~9zWmL2vzpOj4k@hAKx0AjX30xKL z41C~G&fns@qVL#4UTQa|oys;4HxEE+E6Rs1>ic@!3co_ey8Xf>D{JEq^?K5hlKyLP zyrg{+KYXg*7VSg({T0NPD)~L(Q{MEW?QWipjm<|9kxgp2NN@glcTv3w*C{Uaoh-h- zYdiKn_u41ksZI9R{tRI6j9f{jD1hytd1x`;O1ynKID5x{T!){l|3Ydg;JKe=Y>7)m zGFBqPGp(}HjlsL#U2i#NFo^w8SUC6Np&aFm`PJ`M^#HBL@Rzk04nry@lc5h?`?Dg# z!&yzfNa)0St~PM1=VKLU=8eXvS0-7Uzi?+H3^;Lk5z=L0Vh}u<%V-XFLczVUqn+^? z{GLqk%of}Q>K7}6!U(8J&nar8JAfRC>o|~NJ<`Ppk5FfP$inj8jHBbk^(@M3d?WB~ zl-eC_ZuNLsqdj^#*{Y%B);<=0{?S;0Msr^i;qf_KYkbMcqu*mK`n%ZtbU#K;IG zKYv7dKq}<_8 zQ?sTTd+F&uwB50O=BhcadE|HeMMYI{vTd~ma&Qo122W?g{Q!)~6ebIBE8@2II!AOu z0(Q`yR~z$5ad5}@p>fdm{d$VU;YxKNUx1AOtwivIt3Qqq)&1r2Bw*QnRY-Dqjw?c1 zwPh@djxP7K%yy#|Xr52lPw;L53AYfXpt?Lh$nZhciNSJylKX@kVtUnc276GfX_*mz z?)M-MHfvQTGR6;*RU8R=hW&L7azM3sO6O4cS+?`{*-_Ac^;2)-#8|erjJN3}Mc;H5 zDL^W7Cb>*5MK(3Q|A@Q@wtCQoLqVvldd{IX8{8v-B|JVP5-jPh`3icIL6vnjeLWP= zYxKOz-2MpEHt5=%^begZq2tf1eXnH{%}+<%P#i(m7)SUg>;O{4!Svp#>$Phup5fOa z{Vq|CsH#u<$BZmGz;E1LdU18ra^fDmxsUfiL6J*eKibCHCQ6fX4%hP9FmBqs1|`kz zJ4#!@dlwd4taO(t+(izPU+wlt932R?Y2-z9h1UTUzg&ot@iHV0R7j@+FG<+}zG?3p zGbB7=m0xc8taF9jl`KVwb0%f3N;xh|UwhO`oK^T;c}!ldaoCWqa|vzh2rCM;&eHxS z@qF-lzl3PK_%GziNiGTFZlwp?(|fB7kuTL?tAhSl4GJxK&vLA)iyA|J*h@KReNlPi za|R0gjIUO_opJDMV~r;}Q%@tG-4eM}?u^aBb5-cZpR*%{gOkFP3>mAL&9CMr4h@`M zj)D|G*}ZS6FQbN6NAj2`c6#i|cNVo@h-0O@TRcVIN^?Xxn%w^dDNtM@opn9wA1FTI zxK#d}elH)SH+X&5G}THxyNBBFWdd&$_t!cPUD5rAW6x zqR#VJ3pHqM82EPae3-f>7wF~>eot7-o88__N1k~}p%JakM|HawGJ>?rUp&Bmod%Nlb)hiUTFGwQ# zM+^qr9%pl@#?qU9Mq@0fz-i{Mkp;hF4&&n|73WUwn=v7Ng@pZH*gI=Cm8`!`Yz|Ii9C9>&#bx;*7Hg=S?}Hy}d|x652qh7eNyJgspM^Z!vT9eG z$e)33eFfDlopz+Ls@38JsB356qZDFMAfmFOO8#&u5f& z0(W%QWU$k_?{Ly1+r^f14W40dWI%lhwJ9vDby^mOL{c>6E@5$dp`~g*)ZKm=&;8M- z;f4C~tQ*LMPTC)*%@ufKLZj4UT7KIF|;Mg@$VO?O3xztgR(G_ U5#a>*14Rh3Qc9B5;wIn!2T>^$$^ZZW diff --git a/doc/images/jkqtmathtext/jkqtmathtext_doc_subsupershift_integral.png b/doc/images/jkqtmathtext/jkqtmathtext_doc_subsupershift_integral.png index 8ef29982542253ea5f9349b2a4065c88369c40b4..0dee9aac6f7200586b4ae18d016242a351809614 100644 GIT binary patch literal 12579 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 D{r7m7 literal 7364 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 diff --git a/doc/images/jkqtmathtext/jkqtmathtext_doc_subsupershift_integral_boxes.png b/doc/images/jkqtmathtext/jkqtmathtext_doc_subsupershift_integral_boxes.png index 1ae786695fdd567bfe8520dd3bdd7b3fed6e2a37..c42099d8c0d29c04d2ddd24b0f703caa8862a985 100644 GIT binary patch literal 26365 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

    e#8+*swtC*7Mwbe1H#sW#OKAlZIw%ZPO?f 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 literal 17879 zcma&OWmFtZ7c~k&0t9ymPH=aJ;KAM93GObz2?R)RcY?d?Ai-sDcMS~g&h0$!y}#~S z-}-v3VP=?~?y6H&=j^l3uKBL4D2;+dhy(=%g(CAsLKO-Mx&n9|jsOq*4T|jg0z4r) zebI4+fMFu4!A*$|`d6MPnrLM8u9XP{&7zRrn`tuvQ>`#jP-0KQO zWZK0KZMJY9t9mX=+aX77M`bOrxVE3?qpD0LC4P>{8Iyt=A zwKh0iOag*5Tqy#qkTxr@&sIEq`F=NaLxHrowstwv&CYV;*y~x~gU72M=qr(QZ0_+Y zfrWmidB@Fyk;>f>90~lmx=K%20*zU%w)WGKmD|~JW4}d8=}r*nEz41>!g{95BU3nL zXOeujK&ny3A84?B=vwSe^G3QujdCf1j9kdj5N=ApG3(D?zk;T$VLw+dU`sJMYFs3|LdGpweO%4W7n5xkxhuP_1$ zPnrUw1WRy`*%Mz3v%yx@ZQ!seH*Bw;j4@N6^ziQBjf1ZC16R zzWYK@Ge z(|0>y;|D`Qe-_K96c)$29+x>PjqF4=|MQ;roygxIrpy*K&y7=8+o!fff-%WfPenh9 zil4KcyTYd|5(OQJ3X$v3#X4ReA%^TS1l$|kUIX4oLmCS}zaevbN`u)aca<~s2HF10 zsXZ?JM#3HyCC`_mJ{Q1ZI?04bPTrvF+3t&A%NXC?+iNWzgvu`{n1bAl`$X9ybQ&s2 zNrgW(YnJadE*Odz&zNu$rd_T3D$oyZxaIbnZgmI2*sU~;+Y-u^&o%w^WzJHRK3nhX z>;9-r_}W$Mxgn84U*y4{o($MYzmtZ@Cm^IOBtf zEc_U$J4d{7?n_N#*UOXlO!s#YF zT8~O9JYFkndtOZ=>95Kb*3g)V^(xk1)Ks9k+ucCW!)#frJk(E`m6R3|J1>W2TF%F? z^m$I%TD2+@USL<`T_-+$RL8h2)c3L?VAX(}nucZcE*~?J(zST#gAW&fJ-qf;waDL|T&l_SLpTQlj8UrpUZ>g21h2@AbM4(kh^z%0R(mQI zP(d;g(dHfAc9&BoaZZ<{HqO(L4rZV}FTkE>(F?pQQU5bIh{aJTV)sDcr1+#F(5Zz6 zzJwOzoB;jWTKC`m6)+GDcD_r9W3!$lyTe)?Bn=#60X=VLc9kd9x3r|zl_;C~L4KCq zZ89Gi#Sr>XEkLw9eNti@$=A22u}U;uGdnkFm8zkH_gU;#yvfCjlvrUte~DZ^t%+E&YSZ23m(k z(+?d|aE~>otm6B0dFtjocQ&&D)r=|&wFuDwq?aX;xlicW;SC!lcfM)0ro09 z(+u6BxVXeL2)MTT}e;jwj zoc&_2i-myQ1z{n!BVN>CMyD;1u3eG0xTMUc%*%IX4(s zy-cJ0h$)wt%@nq@v^4(Yrw`IntE*N0iU|OlI=t8b2k9U_S+2$6nFYkya+;JLW8>aX z#E!?Ka)qkmj*gCO3>R_dkQpl)m&xY#cWag82$sXw zM*-n~zy&rX@TtME_`7s~mjn<&w^813^|&i=RI>6V4n(s$pErwev3#p`oGbgCE5D`- zde`|XXaodwEjD~jK+kuGi97T82rN40;Wmj+3STgR*w}kMO5yBwCZ(dGMrHVVXh9x| z?)`N2XSugg41ru&{~j%G#vP+sv0cNjwf?n@XhD~(RI<0r-M8waOC^d+|1kQKNy4XydF8#YR|bR|LrYt14tw|K@%_LD!Y4adFB0%kZI+bT;QFBk|~B z0}Gxek8wNh=!yzPPk!&Mnjd3)iZGBGY%v6ArzrtEwv+U)C37~%)E{Y3_A1^^tx$9L zdk4@Uf=51?3(*UBe)6H<<~n)?h8Dxbrw%yYyvK z3eBtAY%4UgyC9ZLFV9#|bYK0`Zk9Zc*PFu9;)I7lA}`4gEW&;M;EpfAxkz^>Ti^An zp*Lft-+GUWkFs&~y(#naA#1ev^OQ-iqi~MDfV)8Ui1~epSUU80vUtz>ttK~E!$2EC zVP+B0t6OLw-e?Agwo1cSzCiCp($~A7jZ1xddLidkh8)M7hvXeSM-557J0<+V+CE9a z^SBgk-n)%c_Lm!w`U{KyJzNNjb3lpns1m~iSyZ#2c130*|bj*3c~$ByjzsA;Ylhzbm5&1Me|Rt=a&Sf1^TA{@5_ z*Q9?DN6`ubW%2e;-+rQb`uDzH@ZY??9CYY+RmEToas&2?Y z{WunmZ|3d{lRb1xd!1`Z;tI2EbsfsGr!W353tQRpX!{Z+Z#tYvg`I?Raa-(Ivv*$2 z*x^Ag-iC}AX{-jXkS8aB2XupDCAukLi6J2X@dXNDA=LG(#+T2)Km7(&RrE)_*8p!- z($3oMvw6}l;P~p_fs5)HcR1mz1(NojdoN+&50iPp3~Lql4ld=BQSZ4!p9=jE3tsf3 zgp=eM1AZVUru{NiuBuET;LU){ql&C`CTtq@Hi3rxlLUR+cr6e50WCv;<=J}M8r^d0 znaDGG!PMX9x0k!tc9aD+I04&*s-oOnsBhI9fjLvdH^ht+*iWTuk?HBU3;=4RzW>Fk zT^0&URIJz-U5slXk9?eFpEzaI0nbixYNRv1Kk z+&d}DEpq^A2;jZu^PpLJy2lFsOKOKWvHt(*?N5~C{|2J{^Zy|S{=YkEm2px<=ezye zt4Hla<-d!L@rCvU6_m-c%Pt!e3q?^dFKmUd)*7>FxYI$LLa*iDd{!NJCZ`MF+< zX500Woci~#<*+CB>fNGQXhg)-5tfp2y;a=qUFt+3cp`Mk5u~uS)i>sI+NxPyUNk%k zwz?0)vpIL z-4b_vd`!KEB^IeuZ`pdqWYne4J|0UfAYo%uMoUYJZdtGMgH*&2ib6=pATc?ayS0j= zM@?93<=Dcax6UFOT?`>%_>-ac9**bZ@7tv`C+-)bFC!x(|Gutwy8qW6fC^&8GhB=7 zb#?5&l9Ts^1Ai-K(L?3^mqm(3H;N+}W&OSJArHOtJ|AJIjs#8vLRvDDUTEj-oAKxQ zn2L_*XEh(|X*W0o8{gK>@?>+NS<8MCwM*FHkPbiLVT!u>E)tW@l{ z(N$Pjm^)|la8zCmB&1XV0vV~Psma#CMwb8JSa7LYvFw1fq~yi@PF!;tGV`^Me@GoH z!_?Fi5x?6%J8%g&0yIMcwF1!ef2e1eGY%LC!kF+6EFI|IT3rv=1D?GcTK8}P>S03m zcEIUySAH26+0AWD@b!L2qIru^!S(OowqN=EtILhLOr5@W4j#fOs>$;KvTG?XPj_al z_@Ay?m{;LLf<8KS)INxfHqgPqBl8yc0nm&{$Vc4;Jx!ka^768yw?UVQL9>F4hGsB} znu8;uuC9)w3`9u=q4xUat|mQM-AB*NJYdcF7{ik$FQ3XvZk(lSXgD#J#sQ<+{Nw7G zHDf$r2e6Blkv~^|MsAMHi0>gfb|aV_&pv;T)NhmacCYXasPd~YAa&g z=&&C@kgIt&ZoRfMgxT1B_4f8!j=DD8-#P=}5}+h(&W9I_NbgNq@xRE+Uq^Y)rRYFn zY*_IlV`ALzdVq@qM2^#4mQ{zNP}OBdnQLhicT(1S)SrpT)M?FmR}%m#9peE1Oi1Ya zA0Jb`5Ev7~qQiqi30Tm5M`{GCZ$ZxKXtwl5P#u_K;gq%4J z+XxLG%&Vkt=+ouSMYX=C^7oKx=TK-T9?a9Ju4ll`JttQ~=f8h=@fR|@vn0~x(ze?Q zscJvE$pdxSm7#(|feAHt#hA`ztJ(Ree;}%>n~u-#R?_YOZt}Seu>#56{IW`W6)Yi) zzDt@>qfzze0O*LN1*lEa;CSAR- z;L3Bh0TTHv6bG6I_&YYM2_hMtD$uJ>Gh+siqsQCZIL`*F*ZHQ8A=miLH^Bs90W7~Y zrGkQj;qh^}%#(-f86`af5`fwZf_cB#WS_C1UI;KKW#v`zV+q;WryfP_zkp;`v3O^9 zIKh7ZGl%c3-S*B7WSHIb4+4;RK>x$^%AUe9!>H~Do_e`6heug)sylM?F<3f0OmbxI zGr2vgxrJJ$n1}vPtq1G};~DR9G?Z2PQFO4f-r7rQ=Uyu>P^(McMbABe)=r5Hbx_2- zwDk45w1hX#k#fc{PCTm5|HmFs z#L|NcsUNYa5y*Udx(!NXY}|{(=S`i}rL<(l&&@CMzPyK+iEK^Day?!U0NEeVe8_$c zL)j1!Upju$@2)B$RI4Y!zVfk&tIr5l`dBN`OWOubA`e24iV~Oh8=r}(_Sn=^{AS9y zt>%r~{1JcQ!@;;}+XSnJ?1N@UUm;~)SarP)_albp^3JX;4H82G68noXuo;mA!`$DS zNB%YWoYUCRu`##xA+93Q4ApALa}r^O>f>$2%+@&)PZIvHUR#6n+HCd)M60T7CI+(K z5M&$KyHj^?NJR^wZgHcOEP$7Te5+o6`8IpH27NF(_~*(;x#bKhwQ`~_4D!y_)hi;S z(zu*U9d(P?p=q8+yUGdd*R^GtlQ2Tw(QB|C)>^+$7MtTiGC?=lwlS#0akH-nz1TYQ zwWXwXfn~$)#z9Z-CJkahxnM&S=1OHG}AjldVElPu;9n(uT5ct&jd^!gw{W!Pad4n;njhiT4|>=7%)V-FB5% zn(l|g&3@pkmF7-ido6974zR6J>j~xwr(Tx-Zm%jOQ^Wx;tKM3)D6}Q$l|QNkq1YjP zCQhMr!3cDJ+iCSs#V-^AT9Uo!5l<~I&uaUHU(YPWWY9KSnsEY}8z!Ryfw?4tays8x ztj#8o+O?GyiH7WT!z0#8+#OHk^@`nxw7PiWLLi2=ibR#01HwU`K4C4fK7bpB;BeJHdt55+WZ zb;0KDk8?QlUbW7vsgzq-NNA0C-rW27#u;X7xsbU+yMEdB;*PW`OMbtSM+PEW)L)hA*h`$PXg zf%}X;N@k$I2ekj!IDdlTM9U=SW27HMe}BXq*Nxa~SC|5p)kn8hRCvFQm3vin_1#9N znxc(bxH>RUCRkA?**MVz!sLXP%xAr=2NE?TzzFM|zMa#}(&lThEOid)v4uT#hyu1~ zZ)3jFpo0P&(u?bjoZBey__({LLrwN4fFuRzP?iH2BcOm0C;Uj8CE)1+qO~9Ee%M}? zo7}IdZL+rSej2-JD499znAa7&8sn&>h#NL9Yi{29LBO%<8PnqvaD6m4YCmZd@L(~_ z3B~#K}Sb-s*oNdRp49QxL-3_^RtuY&L!Y1C^S60 zuF9Ht^Lq38*sA*Q5cf0C`i|xkAsrrt!b*2FG$WBai>H+Dq#NE+kw-QcGZRXG{^3V` zvCI~y>#&>WgN$}3WJJ(wIPN8PA~>x2><#$%4^@gjg{+)h=SVVtA?{`CwmvXLN3XoD z4vWLkC&K#F-ncZL)$bF~#W>5setVvChq}tCNlAMSPiP{~n})7?)k^x1O24O#IW*M| zo&KXgk3zzo=IAtHL1DqFwrkIoTh_-NHYM`lruJnuO-*WGwm|&Lq>j!FK-+X?;vcx6 zFD7pm+IL8O57}yscisV*Q}51?Wn@J5PaVprgj=z7b)Ej6QnujI+VAIQzuK=e)YV?4 zO|n^7bq?lh4RULo?prl$CV15^m+AN3_Eqhk{mqw#I6 ztLp8(?YsVGoDY9010L;W_BZ~V3Pp6po`H<0F)=Y$4;?@|%(cE?a_60x=17%-fyjTK zRJE7}Yh}ZI5dL|bbGL3ptMeK%LyD^;bmLZV*UL2?ia@w)4b`}2Do^c~{ZQo4?RO(dSd{YK4) zDjiFB!gG4Na&{>o{PqA2^p26HYZV;KD7K4B>w1Ln|NX&yTk8 zzzWlbY#j2HIE2BM|EZ!PRi;!6R#!a@DmOAp>f_1v=Hu09przZqH8o1+pV+94zq&Y* zF-s%){u}3?9}S?B8+P)3{Gj+mkNMLb%Z`?^0AVUz`QflwV%0;h)2q?3yChMCQTqa} zZQ8WKd5fr7Z^?MMr!vHminGHt17U6bZ|TwSk$Cy{d5HoPw1bwlf$*rTRep(64uZc` z$FW;2L7ZlU%Pp*BQ$Mvb!8jpRi1cx^btMo%ju zkR!_x4rrwC88uWIw9hk~4E>_qbIM)VG-MQM$=nEhSzEKp>g9*a%5?EsiD1!h`N>e# z5lmbp5UCg~RjH1pf+-reNFqvQC5^(fGN%4X)2Zc|6%K^MS~5!3><}z75sO*n!i%r1 zJlR0Q2$jX3{EMwL_1Ka^jH25t&)wU*RXrJ%G#fu{s1n9;?Y#&izvZK9l%)UeEDg=J#F~JB`d@e=Kd)_pB4()_JnEe=GcF zo=Szl2%vuNdTPqRD8YID)r}6QxNnvO8bPEgXM)-eQ!vBCg7}##b=Zf7zS-57oAV<# z#bb_@Yx1GUWBsEWUKZIBO-w>x?kUT_!md&hk}5ALAmg|nf4TxiY;u$?Ikop|%@E3Q z#=k+2+Xu_Pm;T3|5W}?-1KdR3_&vPt_JenK}<9&MP`4DfoBBHAEU3sh~F!Nf&ka7F# z3>At_o1d@TKOiOnYl21H@bmh{`GkrVAgl6ADng&mBJ>=b2^qe%pM~?eDvxJH+m9r6 zBYEKtnKk=Q-NHj==|WXytWP|R341eBA}kkK)h{jrWqbi+A8ijji~K}P{_*>t)Zs&}hDWaCTBfFQ7Yc^J(rn%?o1qDZ%CP3L%6Xav zKcZ~~^E9IYZpM8f9Pb?E7)LG~-|K+9efSdN+4Pw3>O$p!Z zy#PA_O{`k+WGqQco9|scbNO}%8iI%mtfVFNGsK9NBp`Jt9 zw!fZx@EI};7M`8${zd6NBRxE8hjIpxdLF}#armd0H5jj=|$DH3>#anyIW9}4rpvIO8YCg*DB{5Ayy_UUtqLa zu`>N!Xmj2wI~n@31B+!#A3QEYD&!OwhxQ$9n!M|S^IP0*1$b-V)Qs-?$;jqiK)y|n zoP@bKFIKAj&y)y!9#jkr3~duIoQ;igXeheJNn@pM%tQN`G8+E3$9}v#E2YKy_l&sM zIyw@>{1W{S2Rpp}Z5kH5AA=_re8HtcZc2v}XUQ9UxYb*^JD;R0X}+j?T8y4nViPmk zT+<3041dqIufLJ=_U7ZTny^b~3nu78gn83`KvRT>)%KSz-Mr`@7g;FlBX4b?6W~~5 zSfuxiLJaq>GK3HECtwcaXW#c58IqY^u#en1cv5>E5VK~~Za7PS-V@ZboXGq>Y>w1` zZy)6{PI!1U1)1d2hDU&Lc@zbFF9fLk4>>Ad5p>V>z`3}ukyA6q)&WQ4wGB=)G zxHZ+|C^fvUAOT{m7V*K#+Q#K^i`7yc1s;1fx%)~$7kIf_BO2F?ln*na=Dn_b8ujIr zBk3>a0C)yQ2HI%;*uJvO%|enNd|oI9kH{X>N7&$XPm$mHIHF$K_%H7m>f||;1KxxR zi~GXx=HX)Tp-W3knjQKB9`=H;sxX3kjS-{a>=bFf|6ryZQVSehGg?&~s6k$5_6kXQ z(zb*ioYik+!{uantodHd@s&%Lk*!=0*uOX&K3m7r^FvPk7?<~9Dov1H1! z_{TpihZcS%rOwRn?n3fEwFn8r1X$p4e@r$C5Iwx8yU58Zu6f+W#jTzw2=r3wk_p6c zS0Uiy++2Hy&`unts}OmR6(V22J2FypwieCXSBmj;VOqhqwaCCp3ze}paCT+57qam- zNC`s{oKK;ya+zrCnH`0q6QNd z#%la+CVC-E^TR>b`@vW^#TIIGr;xC|El&2naBn!H0aj+S^bI>8I|1rt*JL+Gy6&i7BU4wc+nXCjB+1_N z$8WqW#hh-B3fRW|V}pGQU6P2YNb&9A$KgV{vGvAp2O>`lVu+OdC|gO_hl{90)*i%2 zjf5H;9eC% zGh;ODNWEyx(MkSlpwII`ssNw|#iZg$#-}u-hy6qnB%(viddFIzwJvvuXjJGEd1d9C zXVu^9+7Xb3&PBNoqH+dwDR7x>c8=kDv2aJAG+vIe;56k^U~g^FVqs3S{BR{U;of0Q zQ*O9y6EC8GEgMsI!5&0=nEk_V)x=q3nJC~XW{Md#xq0)LDENU3qt@x#e62kf-XoQ_ z;C$q$ttCCZ?VdW(tX4No*q{I6;zCg11ezr9mCp?kajfMbZhB9Y^)CkK3~gj?%64hD*utkVImz-gM`~{0C{* z`p20!7@qGB+peeU@vg(_vUHC%uWzou`Odbc7?bVsc_RUHV>ayY6F{Bg#{>*~ z<Wdg+_Q6BL)XpYkH}}{>4ns?rQAaG3y-6UfWm9S#RWE zxYUYwULw`q7b76my9>1Abc=;qz|!pL;z$5-^%hVR_O0lXWL!b#*;-8}xC165J^7?D7g8PY9B#jiABB|w?l6QCT|gU0(xMNRCIQzT zBnZDeLkn){W~fCQR!bvH6`IXg=(rOkA)UR2sIV}v!A1*4wOxG@66)-CtF87C5y7dn zn2L%1i@T6?FLSrmviq(9EPPY})`Y3J7q{E$z0Se@7I+4vU#E zEMaJveRXPh3yX{Z=o;SHIO5w7Wbh|%1iocKD5@z-^?O=Mdah#**7M$UJYGzV{tpl%lbv5NLGg0&|D#(! zyST8kWizKi?`EE3+EG+}ga-t3j&Vu~`Z)nYPf8~TN$%Cg7@C?SI-??*uOaVQ0$9II zk7Oe1Rwh?>Jw^dVBTqnMF{52;Dw%M(;eWSQ_~5*aAVm`Re3AQtt0{L#!N&P(yP*GC z{Z67>eY!|h(ljZV4lPS*c=;x=!XWNqE^wx3Swi2P?-yIo66vN%&27%Q()z1lHvR*w z%$n-MXyo9Mj`?ZO`el3iG znKwf|WDC}4*K#&o?M^PAvVm!bDQ}$@?bU_h7MR;l53kp$^n1ABf%@B4tV*A>t_ord z6X%_2nofye7#Y=J6-f~Rdo^f`IARgK(~HR}lX5$s^V~4wBs`oe&XIUyXmQ`t8-1hi5^V>$CMZ z`f`Z@z3$$^sBZZ1*(;0-r)Vu`WXl<_f*oqm(&=ZcO>R!lV<8@n2>++sdXF1fD9z`V zAD;W*gL#2do0@FBGZ*H2&n!y%c9<<^#S&s($N1pS#Xb2SlN55HK|4ow?$E4qIirpn zV;1Kn!@TiopCCxi2*x~% zR(d&eRlR}E>!re%|33Bm8YdA}G9_vK9o6Y$y2x$AZr4Lwito+X!CMbX0`+_brbA@9 zGD_JwdSc^^wwO9?qYbBM?u_wNOs9T`PAOSak~_x78B+I>fivw2RR)!>Trq}mdN}35 zBXtS!DyQZ5-OMmDKfaisvbfTTc*lD-fuh$;tjuMdj!DQtAS6bVPEb6b=Y@MUH(`vq zg$36kag_Wh1*F$1pRwMPS`A*YM^|+~qm#zP|M5ojVoM01lehb$q5tBT3y6DSv-A|n zrI>OO$~f)^gs`8G8r|81^mNyQg+KBJ>HahZ7~O6Cc}cYr9wl6WL6f?FaEtkZ94Z*E z&4`Oi#7kBULLw9J&C`bMQgf9T9e2|Ot*s5AWkYz zzAtE_9ScU@zi;FN^RbHx>~j#nVJxV&Vg<@sC7~O)yl8lhAO%SC&%3odcSyDV;iu_x zMpW#G*l#8xsq~p!fHw9HaYgH|pngjL4|65}4K~=+I z-oX3_6CX$LVRT=*cGiaTp7)od?X|m?-*?Dbnk&lK1f7EiU1A50eF3vatl0TDAH9=d z`yEciw!W2|KVmeR2%z#cuX=(&@vC0eQG;z`5Ftfx7JuD>522(q6jJ1!&hg2U9)&cKapo3H}ah)abr*CFm=Uiaucp^ zcC4KO&)<+JdOHTK{E*evp~=*du%o&`@R!m*@fpb&8v-P>ORiq#(Bz=v?zB|DLW?y{ z)S0J;^%;gx3SzqnuctJEQkb97cfRkqpH&Oa%q?a@yrH&DYZ-`2_y_0h-E1m@SSzn! z053kVal70}zw?aG80Vz2?rcc=J~(_Jo8{kjf~T{00Ojm``*6@XbN?~HBoARj=*j$( zb87j~zh;jP51Xt3e0wu{4M@)vVDx5HVa=_W>do0@;=_!7&RviCju zfg@j!J4}_?S`gPUi*DcMCx#Rc5O&P;6O3im3(Sp=zcOn4?J<@0;Ka;m&i>Gp2Jd{p z1hGln&nb>Rh8WNbj6Lc{NYs3-zaGgj7Y1@1@z8piSQD{+M3o;_$|ux<=m9>iEn23q zzOY3!5(#a_P-IdPA{He9^e(frAik+%dCwU zKbm9Ed;_z+$C|cLN4Axwa9?*Kv^gr+{H(N7|Mhk6PlTuGeJ%z9d1|`}v&YuUFCOm~ z4G5c0k2Pu%vFYW|FtWheI}*c7){T>!^;1ckmn3oCdoase5A(79>VcSBpA`GcY#<#U zOLlaGk<`ef3S*Su(D%H~saWD@%Skd$@$g(?0bF-o!dTP>hfnxF34I^Yu0Ms+aPr>j z3*Ii8{Sz@}Whnq#1I!82ILtJ*=ue-w6(6Z?_m*oHlnvCz`&;pz6as&@wLmi3dH+f9 z^b4(qx~DqKACt#BIjsj{C4n6qS8{_~K^yetY|CTDFIIhlUgSG)18$v(tnRdZ@!`ML z`Lbr_ij{MX_2Zn8XHm?>FW^11jSU0$@;iMH_Z=pvxH*%<7MMS&Vo7O^cW zy^9ib18+vRjPNJDp>}+KNSCT(<|CWf9ce>}B@#aN7dh{I`>0drDU;D8BSpAT>uIv^ z!FF(624n`7R8&L-g!JOo3keAcGrRoJQBlkN!SkPe5rvyC`LYSGusyQ_8R#3+d1$(Z zbN`46HXpV6dY`+r;y4j$4KuU zIC&4vOH6?HSzj_tOQ^^sPlCUp&|zHzZ?Us_mpY0#tJ*U#CLl4}Q{jvvUW`ti_ly2aMubchM6MYvI{vToRq{Tw{M&-Y?8lTLpR~Cn*<2 zTQwhQC0Y(o=dfoNj-WGtX-~{Stu$Tz7LA`7 zkKBE+H_ArBynQ*!Vzn#z0zq;+`S3ULrc8Qv)>uI0n}^fd>7_=F-#h);Wd%D={dowx zroDE5??>D^pF4q1{r%4LjG4`-FGCqALTJ1Pqn;H;F@VUUO)g?msQ*D#vywo zp<*O5al$``GO z&Jv;w86P9Iw1HoQz7zqp5Rd28%|#9kb=I4+i8}$u&IjGK`zwxH!9E}rkj|$N%koZ? zwbPK|Tx-vZjCwAQN(kJP z#_Z+KgOAmVy}DViZmBzy5Np&G6BnDD-=Cw!E=d}pCZ!L1Cy5@IQ!KP8a2qumwWQwh zUHHPEYB1Z0x80cxX}D2XiW<#~KNmzy zB4VclJQ%0~G)RMi$C!oL!9ed%@d+Z7}Uwm3r>S0OOJ+URqtud)z*>H zz0V-#KmXN?+A&9b=J@tGMz!yy@ASa@MrQu`7E2)RWM4$*ja(mVBAwWF(Z}m!!lV3l zM~iWm_FwJUkG|wve(p0`$AV3AF2_Q^R>a+d0|C5Z#jNFuHhu4v(d>kvbvY-~WeLN! zXR735-H~Djk%Gdy(7izY_3bt<&&zfMa_tUxM1ciA@!w2I(N!%AS@X`X4?p9BeIWC= z_C|6uza35hUv1UE9}}hUF|u=)A1eOIKw3l6lVV!RyC`YFs8RSA`L7PX3k5}@9Hs02 z6wGbcUtg_XG+L-LE7o=NA7@n5Gs;XLaX+9QGrt_1)mI&)x4%kDcItmyLMA7t1wtx3 zs)TC~9McACn$H&?C3~qZE@SVvJqEJ<*1Mw7(NTdN1GL}=YL3OBqogolKZGKqK*i_6 z!_)KRS;-RqL}?c9#OWAWQ%`@`xw-hSI8;e6}`Kg0USg&{(-QID>_t8TP_9f_i? zuOpHG1@72+quK61@(w{`)+lgCH*jtdB}BGJYOa}dBoaYBiQN3PlVxLUE#~)u@*%QV zF5j8pv83eU2c(~d50o>yoSe6St|RbqCTF4zb%V>dXAF==w%)D#hL{d|fSnh0+Yo9I zdHwL=Q7)H>#Y00sgR`BsL)Fc2!q9+~R;ylPmmAHU_`IsMbG*r*{Vdd$Nj~&s15)UeZ`<(PFp|sDm zmev2!?QRen9DaX)pW8Kz?4hfHXT#+N+2`rpzW$1xlw@V#Xp6xKZ#!3}0ZfmCtgP{H zl#i)AjwFCG^kBB^(RcvZ=bOpr`b9~JhKVT#*lWu3b$wM4ImG}&Jm3T~dmSsC8|V5w z@wDT45XOq3X-p?qx%4x_h*pL1^iEv8%V;t#9S;8wP7kSUV{e- z@$8uM|XtWCS#ii$F!EqB!*T>S8x>OppJuOSQ)T)r(PMWj29 zQ%KRIwQ})qOcjm(b*gm%%EgSQFO0D1+}Q$-V8dW$brlufvU2a8?=)V0J6NkIH*ZaK z2G70=fqX`PE>|C`0gIb+2L|92I6?-|Mq%lMp5+ne37J*w#fXv|ncpeC=b;wm@kpxN zY3V%JC3$VzuGUA#jcK!DOYv*Rs|{fCh;aQ#>n?+Vji=^%HI5*n=LQD@&7)0=ed#8e zJ7uGi<4JNvtq3|5>P!LIXAPEXb&gEs=d@I=(7ra^T5t~2RcvGqba*3?_%|e3B!9&s zlA_d*OU^|=BzGIeR3{Di`y(=T;Q9G#v7i94b@LsdNQcu@CIBU-%e6jbw0qwjdD8JU zq@Ut#gxHUdN3NzIq_vSU;-<2}T>DhKJYsZ=hQrv^5EUy4cwP#_%$Al`dhkpWO~A2; z+Hn&}$C=u0Q$Wy~yLz||UV><&)BFkHXku|)^e&SaSMNonG;X%%Yn|NG`Ya-++0`|0 zXCqL#QYV~`@rPzQp!*C}gQ>Z2>@BEv_j5WZpCcT@>-~wRuMG+c&iUW(0$`5Um{c;EMv$3z zL)i&`lkrDY|YdVG)%qd|%wV{F5kYHYuF z>UW?q-|P;b8ET+MsweoZ6hWs(#xzdgb=G5Y9Q#X9A2McFx2jDkhLg z!^I!?wxS|uuMK#4HZoZyK*TxlgQjY?Z4w!Cw$X@oy#X%KCO_CqM(i_6@;ihqR%oaY zXc8}yWX7P$R78~h@};&$jZ+DJ`lANU*{TmJSS>bMD5GdhR;M_w4^@`}QZzC9GbcIm z)8%M=gN9R4@guPBl6s)v;5J*o3Gx$O`(Qsj&{8X*W;z`pk&}lSxGI!m`>zc52>!Z* zy@MEi0@3F*%yM!cuYJpx!``W%2&mN3!@T#@=CvZU9Q)=D=>T0bVrA;Do!MyORBUJW z-?3W$#W!3$f9D%_wzp=xj?!SwUioc%Q}pduQITk;gEahO|J_a-^a7jnmISpS=P$=- zkOg>3sKayIHwd?K3HF-mr_M|W$r>5Q%tI*7N4XQ=DH-3qR@ZcHU%_hK_Itq4~g76Ogn~G&c8}yIh;9B zW;o`btZMF)``wUEu&ry;6}q!)=5eZb781@bFO=v?7)ml8O5lSQH>{*Y1fFt3hK&VTU@h4F39;%3=1-bW zROfi+Pnu6mSPbjT^O-*%mM(2;iDYDC{PBC)UXJQ&ZyKW_AkO0@vo-``<8VZT2SzxV z4o92Ls@WViRv+EK4MRq;((oZCW3+s~`7dUe%%Ndr`lYWs(wtwGnISQ+VNTq|W z%a%1-r*JreV!f7(OnaijR>6IX?<3aipkEIq4<>}+Shg6|M2s7UBT_b4 zGHpYf8Z5O^O>}H$9O1Dfg{4p!dVtPlQIu7kLakEJDKfH&C501_&s2&Dig_1FY6Si!0MXXmh`X ztNUHe{LSzBVYN28K>XL^zY(HT zFfj2v3Qruws%H1uqm(PGGB zw|&v(2J4DmS73M8nexRHF6w;|@9cYr2QPY%D|*QbPGw|T6JV|icIay&K zTy4g5XeZTC0^tDb;UeC>d>CCv|A7(Vwc9YAJcYs`AVl40nO@lKgj{sdS+qo^qatar zgw2NS@L_1BkL+cJ4JLC;F5ea`O&j&ck(m_gr){sG?@;7Dn1_V$dUEJB@LF0jEoGx;@yj>v{iERfSUs?ij0hGuw-Op zWMtY0@&Y9p85tRwc7bfLWMpJyWZDI?!IF`Yk&$T^{6AfQ96Qxu3BUjV002ovPDHLk FV1g@A_Ba3l diff --git a/doc/images/jkqtmathtext/jkqtmathtext_fira.png b/doc/images/jkqtmathtext/jkqtmathtext_fira.png index 1bd68866a6dbc209a115adb27bc8d32ceb5df7e1..2df898040232aaccd44559d20d06b417de1e9ce3 100644 GIT binary patch literal 8963 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 G`hNh>X>wKo literal 8929 zcmcI~bzD<#`1Vjl0g(nJM3iQLC@Ccf%0@_xE-C5JT`C~L=#g1 z*$sHZwUO4a2Z5fX-Mz3LF76(KKrcWLNpYA<(r&WOFWAPj-dpOdSH2|@cqZwIMUus< zkBBvK&AGaCo>u;t`oSAV#+4xyl_x;$s~M=!7yQFft*ZGc@$7pNwm{8xhlf*Ea9JwI zi)^799e#(gW*fYYcl>){h;hW4h^YO#=O{Ait%=jk?U(mwLxM*s_6wmKuBoNZdu?fm zBp%WG0teh-dky|?|L0Q-6)fw2zout+`Tz8ky#fxR_uY(3P3@)oxBqar9I5M0Fjr%R zw)E+H+pYKSkn;K{^>*U9klQhfYSGdm+&9&ylmCc^I;?)GPLnTeVa-Sjc(L2qg@}oPjh?npi^mA!{@g_{FPNuR!0lIsGG< zKWC^G>RVcZSEja}(bD>@2*~ZSQy|K~_$DJs{bk0$^GG`>gunC+;|qhk#d7KdItKsy z_b*1EtSTSIwuwd~tQ5B~7?UKTEw?C{?afWoDLHyy@Q43yMm;n+2u)`?ds~nHm|1o`Sa)R@o`d(->@@OKOZSc^vsL~jEy`fG*pbV z+|xH~L_#W%NMiOqt2k&Mp?7_cnjbD%tlD|HJ9qFG!G)8uXv$-Ad2BXa6MS=ZmW$G+ zTr0`dejJ_lO!b1Aj?TICgLJLI9N%+Mk6!@+xFAH#^kku0^@wyF&3ssAumHC>`Y!V>!Wrn>^KyAN&E2JR| zvX$CXZ?8>g1Z+TD&Bsd22@q+m)gxDd5Fh)E5iIrjN9uSpZ*b{R1mvs|j{^Fqr=Ko( zp6Q(3Mn*=)rKCJ5CQ@M|rxA7`>NfaO{n%KXGqy8X$a$U*nC?vD0^L$WAjPJu%#@K# zy)U}DHaGJulG$Pht7M5KW`EobT~d-UE({7QSMOR{`l1{Zr5BtB&HmBe-d>_4&8c0t zq?zL|bH07@PS^89MfmpmsLpN;nw$7Z`Xw+%jiqgLCy)am1axA5|FwCwCW2&g3rGy|@Wl_Kq`Y*%_>>^b#Xg3PM}?ds>Vx{i;Jm-d%C zY0HoEX5WqR5~~LV&o;Tf)pc2Z0BQr$083czSNfZje!kX!m+1W3*s!{w;9#@jE?}je zFW&xpnC6=4LnM*${w_WSFO^gM<({UGg`h=~?T&<;cAn+BLgpZ3f#%?d{@caaMD6_8U*YgZIkvSjMbE!75Qwys4x7^~>vaf*#ig zy>NqQ&ElUA37;E{eU#`M%PAyhjeaI`v6t(2n0l%z%teN0byIUZc$!0UD)dph(ZPI2 z7(L(WO$RD78)vc-VRUS2ZEdw6V_gd|)rjHCOtYGst~B|K!|}>1kGt7wu10eHH&rlB z2(8dmI4=w0q~woj-N2s~&nwN4!7etL0EzT(ycSaoF}z2!)fPY{Fr;$%o6&>*cXLHL zBdy#YeR+8qlZ|hs#;%lX;Nd}2tw|6K?M_aDwL=_*w{$d462FNKzoy?!`)l*f;gZXY zV#0DR#6y@pOUQr-l?4(-Ckfczn=~h1yxDUmW&M#fxVC>d$aP=c;Y8LxWM2z2@zZ#$ z+m<>Qrv;cfg~e(xK62S4Am@-F>CIsGL;EeB27E1oWLS8t-Ndd1 zrXZzcny|jt#^rr6C|QcKl14vrZk}Zx+AD$X;%AL}LtZO|p_!x#T3hL2jGv+68&t4@ ze#ov88-=R`@VmLWX*Q8$yxe%FGvGch%+gy`(hU7p17=smKN7+;`OpeEr77hv@wZ;c z86Zy#G%-z{axDlaBwjvCLd9YBvKtzix?0Y1^MMwaRM5Ax1$QoDV=8rzz3t?zVg)Y8 zrWv{$Q8O()Bdv@fW;^&qKVd7dsJMA~AI#N|CXH1<| z(1EpdRSq5$bU(FB8f+Byx}JXa^r;OmZ znnTh(d&Vt_teRqMwZ-r|U!4&4y3T$&yznrvQprN~#^7(?L_@Q4yxkRVMkdZ8+N>82 z6FCY`Nh zt1}!iy{6VrU^&+l>UI2Tm)lxc2PlZeTD2gssC}uij+}z=T)oLTp6xT`PO{FRM^LivT?Qa196f(f#Pd67(EmR>xbmzDat=R!JL%wLI zKAfCY5OP-~I3inQBP|l5vT?OMI~rgvC|o%vi4*F9rtKTKQi!t2I=)51B~(TrtHu-ma)-e{M$i;nRhd z%tkt6CVo_51Hba^)FjE9YBgP%ZtBMb1ZJbS=$E7>-~y*Sv|FlHqy5-QKHJu7J5gE$upOIj_d%DA@Z$U=+G~%H z=DhO_j`(8d?S%7-$9Q}|AqNuACu*6n8U5b!F#iOd75ZGH1Hh+5-|I9{12#N1@3#dK#tmlx9Ca%yak|wU47cqe z`LGUPO;b1iy>aKS5qy$kn+_I%bknlZKQJZ#0y~V&Q^gZ&??udqjRotl%DQcIR9he$ z7Vbf(Ka*H%=O%hJmodz3!E;nG;Bo+W16)13Y>g{{5}} z6F;~%@5IP){z)9Zx3$n(8+sm$l6PNp>0h%`uZ7b-7jcW)JUXs)W6KsQm>jo$9^sPO zD$f}e80yS9TVafkgM*_`IC+mltU!#JTZ~=m;QU~vztl?c20!yW(mniNyDnWNL-q4j}Wf-W18V%x4D*~ z!knYy7u5qMWnMRKnV3R1wTkA$XRa7SBO?Yoy0@rCOG5?OUuQGYdL}yV9hcSUl)mio+31j?}F9B ztCyzN`^~Qm>5F6wk{^z=qt+3}=xZ-4f;qaTK-k20YRRw+Q_Y|sWKuJyS>*Yz&obQk zcG;A~N7**x`@D9UuU$t8l%UNHjW4CfKAc3?eaDCg!n7HYS<)B7{kD;WUGc9R?Nz3; z@D#C6^WyfDtDV1mNn>1=s%5g^4*&TLE$|0Plsr$&7uKRh;t|g$mT9?~Th2|S60S5V z63n-`pg3>DuejI<&=kvzj5O!S7!T9A8s)-C61A+Cji>#v__pzKwTN=Xr~tQR}DoA3iblEOOqPpZUv2N^bq0=66z)I0@|A@6{H1 z&sxW`JHG27O1PA7rtY75>y!_B)1VlqH2zV%0k(PVF1K#vnvze5U9Zd#Z1)fp;mW6* zg$UTwfQYRFB%7<{T*94J*$t)=+l9fPw)Z~9P&S-b@hAmc)t_`bb_PU>>J6)~RX6k3 z&2pV~b8&dZJ@w0jyVx}ss21LF`p8Dt>62!yeS0(leTpl|wau{>0#rSKqC6%fG&DCK zko)%KrR>1D{0n39$&m7L?xw4~MxZZC_5N3Ht(_Ri!P9-{j8{Fi9nsg-Z7s^p*l5N> zCE$6<18UaNi|T^Buap(w=l2I1%S>&~#$5o$j~(Mtb+)fSPj#NJ*~`4q%HUT8Rv8FN)BH#=H?AMY$rsI1e+0tg+SPn-DY>T`ZttpA7(qrN{}qk&kJF{pCkOhs~`S@?{g-ZnHq~L=1=CQ^PS4k zdCLWHXjB($P$4)ri?4iTphrJIC#)7|9Bwa0y_W=@0R1=8L6&lw?xTwgexw~yj+_hx zL^vz=hE-PI>D3P>qU#Y}`Ue*Izk2(VNXe$HD-MljxX2q&3q1H!evqezv+qqG#_KxN z=T0)A0%S3XMg`WqIZZ#l_bcg^BFin1oQpxF}Kx-YLTB7|?KF9+}OWCm$7o+8~0_V~o=^i$BU|@A|`vnk(XD)n8&h#DK?K1+WfQUzoLf-JBp5 z3nwMm74`YeJHMjw6RWv6R2gi;|NK!53JKwh4^v4wUyJ!znWz|<=Jrol7C%zE%>U=l zcjM~9 zxI7gDqKdlp-fw?+$J%~!;C<55qw~6&TdcW82|Z-N^ZQ{Tey;=L1Wi{>2fv3j9J2zv zWkdI9n19jXfv65s5rAo4{AMyiv;As~qlz4g$&zlwn>|JSgI~UWWs0QY2_$D%T?+NS zHXK}xmeDCz{gAHE2DBX90s?u%eau(xRC^{BVjrs|9q|Vm3Q}}nj0MV3P{zCZ>T)uv zR<7TPbH}h0Sn8(M8Nyc@0lfnlwKHa+yFjH-^UWc|mFE557;fVWScM^(3@n%1uaiN_ z5)t);@hLkNBQ(V&;&H|EU-QvnLTTb#974lD8(wo7SF65h_cE`{F&E#Eq=H6KRZZh9 z8zffLuZk_d0vG5WOUjD)T(YVKgL#hD?CK%(!($@szp`~j+hi23>q_(hw$>NZ^kQ}P zo{_aipik8l)>q217e+ecuT$#+f3n$?Y?qNEq(IWfq#xW4H`mFH{URAXnV6YL)pDW- z^Ij4-FTIYjxxiIg9izezP|s@0LlI40=(%k%B4yccV|evvjouW?RIcyrSRzgT7J!z4 zl-C&yk*vL9#4w_D{FL&2D@{flu*OzaR;F9My_X~k4C*ZBoSaQN!co2w4pr7I#NwzZ$j_d$(C451=>(sJt_N!fRV@H4O`sm8b5;fUlBp4J}@GQDY zCN&Gjw%p-|FW14qj=fjx1pVPos?EBe0jRuu+IIA^K@s%2Vht`3(Z1`@z7^rqnFQU6~W=q zCwPeM#kpGRUi(oI|NMMb?PfRLsrdr?IhA*k^A>K3F->nxM$&XkYduA{0yML(rC+%; z>vUB0GbrQ`e~93_@X&3%i(;@rkfLIv&^K?{7|BcJ#EPMB`{&ZfyI{gVPDu*wLnd_y5&W$q> zkw)o>3PM|lGoR(iV zs@5zvT%cu}vjRFCKn1ip-O+gb`0)}DhkSK$qm+A&p<|7VArIJs);_Z;)>y5q4=2Kv zh_b7G(zDce1Bf<(Qixj& zN-Sg~0gP%D3jla<^YbH5PZ+|<^6lz_9MMzyfMBDkpZCY~i;YbgYoB5>%-V{|S|=Bb zT?A;S2uiMw3b0|~MDu0^Uj9T-gMDY6MAr9Nm7s0qB7;KU@oTK+rVgJ+c!?F1ZZZkf z;}cIAyed`)mK?{7^908Ac2BO8Gt}LO*D;PvpuWuY;9t%V&k8RRP4PMMfgZebiwhavh9k}ZUNpVOP zFR>SXz4DY*@$ngn-FTp)bt?2cTgg6(PfGA?XQmQP-K3IoGfN4ZoWaxyf4z)jlOHUY z&`zUjnr2@5ssOaZD4SUSFyz^Cw%()!3hGtL!%Sot0kAH@S|Bl(;|1 z*~qjR+SC04k`n3mZX}-~U^vpfWeSd^r+}>KV?|?X`)Nk$b z1pNfG0aToHuU6FJDYeC+20EqE14n=TE3YWf{O_D5?3a*=qd(3&W+#SWa+BTn-6;;^ z;3egkwHv7uy@aqb>u%Zot&#BJ&F!RgW*zj=Tvu6d1s#a$M zrn@2hyzrGinFjRcY-Y&TdS%+#24j$=!R3uWMKa|~>grkMf*bG<@$3pCKzM%l`nKYDDmrPxgWoQ=r^M(qhQ zvZir4P8@}gN;YG7u#aA>PD?Ar<7Z0uw~(kRyw*?9TWiw4BoM5{Y4*uO8^fB;huZ%K6D$DTMRUTjYTh3NoD2a92pR%WJb?@s?6I8GB)2=93VA5NSQxN_oZkRPs8CR z5_=sUX7YVuLH8Q1ciZvV>yQ*yI7vbO7r@Yxr74bhX-0^#khwn~MN+?g8*T%*6e8}Y zpx-7lma&7eT$!51HAXo)=6MrGp>$$!=xZX?3t2WnNvbT4)dXy94Q~#P2YVV4#ws`z zgJcdLL{uQNc#ZNJdK5;M#IJBkdI%t%V>~EM{>|A~0@TthrQ~$hJzXSgX=)R4xSjfz zVlul&h|=hf^P~u8Zaot|QnVMs^)p}VFL}hr2G$2BH)-!r;oGfdbyD%#4Gy-USt1in z3v!+VGMe@sb}^ZG(i|VI-%Nm+TPNhplbFB3zt*!TDJj&u9At14%K{x&2&%4}T^vs< zp>IfK(65M$wHM;`d>bY!sp<>4)Q8GW?A6I2c*x9kJd$>(2O;evB-W=baHg%e{;J3s zqdQ+kTCIYNEdO=BNpnZSHC%y$rCw_xL))Gw_ zBpKy&S6!?pT9eSVnrTOZtpt$1{@hBwL?k|C+~lOBq;UOpgYsX1U6o_-v!JfRSR+rh zP|nX#W!|vS_Tz=e^YQWVp1&))0FHSeU<3C87G5S7>{oz^WFo{Vn0MDLzJ7<+Fd*#r z=Icpgj2}?sea^@;%XK;ErX&qrgsvnQnRV7P3IDG-!X~{4U`Wo;$IR~lb;0_^_eBfO zreSI2HThB};8`tr-+F=`4S}3Df71hy4l*6y)5wR}>@SIf5Hn+02I`!#I*d>@U*9aL zX5HQdUJK1PX#@lW%Yfyv_tB5a{~fHR#h4QN^CJi?+uZ|(L$m*WRdB~Np9Mijc6N#i zf9=fGmaf(5H5i*6j3rY))cDuNbzj@sn(OdF7_?Ma+G1Df3z(NXv(@;3Y7QheL<4Z3 zrt9rRoZEi0l zddfs83goH%vqH7o7R??zs9tTZG7k3uNYeIX;X!Td&G5}FrJjd=QxD)1XrHwJ3#?J- zR+kaaMYFS)_yK}e?!Z7I!Uzr@LFN4>{~b-CPP!ZPR^n0mo$W*)2A2e=6ySWdV9naq z&VN>f&K7^}dA)XYLE*Rl+51vC54~z9*mQk32>O=!Db&E+99k$z96_$A{n2U;enE}8 zd_=$dpRsw*l!xl+^XEMi6EGG=JX0t1k#dy76kB}X%Yw%6Yn{^WA?j8hAt8$^4rAJZjtX)8{eTGr;&r$=U#chmg$0}W#VZLO#)oW}W8^wwxp zM6)`$qoSw{o%h(|)BI5c2z1Z?ZZ80yau6=P2H=2Ta`fdrwt4XRaK3KuV`NB!?BLqsOKQ7_LugXe7P8TeT)& z8e@;PC}2I($q{0Lf@ZLP_VqOI`MTw=IZ+#BEL`*q;Qwm_KyS1ASsCEp6(v?0?dO=r za_blx8p7uz)xJbQqhz7QV6~rAt)9UbSOF3UAfDh? zZtm{3SEp9$F>6yHN}Mv#J6@k2#gZoIp2{{NbGHHFE=(0WKnmZ9!K}U(bA0O?8;SpP zS;({*3)I2ph>ZfCanL--3vl#THT+8ebG$^d{uIj;g46+1*dDI-gA=4uhyhal!va~t zdsD1hhy~KQ0xk^#sT!d`5|92IG-EtRnPdL%lP>hA$0(Ju4uHl)Pk##Froc1JeA1X#fBK diff --git a/doc/images/jkqtmathtext/jkqtmathtext_matrix.png b/doc/images/jkqtmathtext/jkqtmathtext_matrix.png index b9ed13924c7aeb8476ec0342e0c6f5cbd5b8a4fb..cec94125f406676cdf0012642cf648315ad8354e 100644 GIT binary patch delta 3408 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 b&bcXe(e@nC>wC}x5OA1WgBw*FxW@et=@+Op diff --git a/doc/images/jkqtmathtext/jkqtmathtext_mssegoeui.png b/doc/images/jkqtmathtext/jkqtmathtext_mssegoeui.png index f3038d78828af401b4792cbb61267b588ed2210e..bbbcda5b89c6fbcdba2ca762ed810b31df1fd72e 100644 GIT binary patch literal 8913 zcmbt)WmJ?~`0vmlqLc#?(x6C5Gjz$&C0&AaH%JPSa_9p{cS}pBgfvKZOLq(%cXR&t z%l&lMU3V>FfOj_U`|Kxvu|t&EaUML31eyh3<9BqNK1%*a8KD!wF%Lkc-j3h(#Jx~t)ucCE#V(7%bkTCsJ{*7 zmT47la>%#9aa{9Lx&sBf_JgMn z@#oA+yJX~C6|h)1FDIznRVXS}(O*RlQ8e6dI>77A|RL;p9U z3eBgDxB*e?vIYhea$`(4K1(g$yzWOIG3luL{eoY4VA{1@na*6y)!KDil{G{E=Y802 z=9pBOj%(pO$aOWU*_Eb)No?O#-A=9q4(c~w{dMHKX>^8#M@L8F%Bsm^Dz#0P=*Z4e zM#Cu+<$^SeexHOH+#-8k957$m+S{|`jDlw^L<7$srBuHXM9Rj-_C-FKJ5cZ6prf-f z#kKVWgWns2$w-hHYiLJD2jmaC*kBlIO9(l?>vCr(0R%F}xqrf9L0$YEBjZSy%cj*{7@@eT7(9Mhn+Iv+UPuE@MUcSgIZg1 zp{u{KQ8Mo_u}B~HTm>mm3@KkB6&Z4Sf6>}qH7pb+mZ>ztHI%~lb#YPuhjw)lo+K(n zx5euvzw4ezh2~G;O6=G{(|254>!0uU_L$Vm^cViH2}*VAjV`w3=usf$ zOvNU0yjWC&!H*e*N*mj|e1CJ;y*-wXq+{GI@eVB8GWPl{{#) z_B(vK(gb@bl|MM{t;VXA!3~MeRlk7|2+s>WGk165P>HP0vb;p=xf&eEPkK9}qRFKt z#c&=AY;No6FXo(2`YY}4Z?DS3#4)ju9;33_Vds0Jlfv)zY*^s*sn1z9#mbnXa90wS z72|AkNcS4?t5?6z&YTOPJ3Kr+@j@kZ?>@!!(q3O*+b_2v>FmnGi^oPr{N`*MaUk|9 z?SWCUU}2R178Yku?Cc67Iv!V5Tv_c3gOo}lqm-^E)*~i$s__zN8OM5K863cU=j{*F zNq!|EB^9@`V}8v+GiE^vqJd16Gs`>G9Vycxt?PZm)bxG|=d2F2r-%4O=3E2k+;ff(UuC$|l&kKdq z`jgt$A+4>g!D;bbJ9B$`r6E(Pv8Pu8l{40=sk`!HonSMNbO{>9LzH4;W8JUT6J()* zAVs<(DY_%b`Cku2#pfu!ULKL6sJ_`hJNvniZ)RrpPFOf{%D`9fuL{0cd%%BL^Y>)E zznlp>H8s`!dON@W*3fl-c6}#>EV5g6!1(VP5v*PXlt-HTDwbw^pe9q$%*+hFsEmBZ z_S4=JnOxoet@x1GDASYGFjgZ|Q}k#!YQ1i0r}Y@y)25TYx91O5Q>8fBApucQnY}MT zjvBkVLLpK8>ro2%)%R@R>e?kAevp0k+oQR8afb_TOVva^FvB;|@MRFK@`uB%t+r4C zh9or!F-Ge2;kB#HbPNa?uYH>fk;BK2kgs3Anqcu@QT1aSfKCgCbaG{`HT<=&wBY-c5Z1567b4gxSGX?sIod zpAdyR`sC*i5m0~?MqN)dx+h&lG<>cWUt)zuS>id-C!upewK$Rf(02_OvxBfTH#f@@ zLC3$KJr}+$Kj)n>iFs`k@F7fs%*j)+zloEJD-d*GgkVmq2i9^H9P`sWo|vUnmg8h) zM4@zsLy)3%j?JZtC}%;Q#cG-FomEe+1rv3XL*@c+=QdfL`VwIbX)se#XUaf0huIJW zQ%X|_jiu~U1ch(}oOZOPFG~i^oy*H5clbxz?zzILsuJ3pVv_Slk}+Y{%&h1F{&;*; zaiz^%gS#CK_mx1RqL#>i-mpqUQ%ZmO+J3I5T^Cs7b~CP%xi|G&-)3tHGJ~JikXnfQ?(WWpbY!oz@c z-nb_sxY_f9I-%dt!=s^yO!CvGPv28gB)F4picSi$vpalP%zR-!x4idP!@kH6q5I2E zUiVj3L`LgJTj&?hqJ7S9zTUcV&R z6rfoaC=*5AY|R~3Sonq(KQsxy^kA`>6lCe;!l92wrRu2p@87@o0;wS>0-y1p3midO zE}9Qlz)a}SXgPV|bv7cE)~6`kgsRDv;>2axJ=4-3Yw&PAMf~#RudOX}Jy**nR0FdE zb_O4BTutpexMOYT?J`0D)L04p*q}m$MyD~z(43$vJUqO5aJ7$*3PqO^UrgrM^9|B3 zeYtRniSONO$N2l7xRWIT9AN4%y2>Ty_V)Jni+oX%mmpqGRBgWXb#IGYz#TUlo?{wr zAti;8=5->i8NW{QBWvXLX6fNK%5#A)HwTT+!ANWW^9L8Q+_-ed(sDgfHtD>-vSKJf z9nC)ID3spa;Ihlc!2!0T-1p)BTiM{bUJIBGCAN7F)q8F32+@xgh-_a%TCVe96qDntP_zmjb7q)mI*yn+pSN@#^Zc;(n1ulB@fU zc8i7Uc%~Fdy7y30sux z)?c7jo4Y>3Bh919AQ5u+eJoD-fc37sq-=M#Xd>nLuHQ7=)8bQ?C~RQMFh=!vp?7RR zKndl*I0;iuZ7mUK;U>MZsUd}?)%+?&L5s{<*;8V4a9>=4_dKV0v*)? zn}Z9M`0Ii$&UZ|=a^YVOkazIgcdnza6(++O3N=1QqQoJxGmx6%RHj*4YY0RTf%e_37W2o3{9Lf5URs5sXx zub^OA_BP!awy*PiNRbx*P0QJ+tm~DUshL?ANK13#_s4y4Z_h8n!opm&mOOS#Djkcb zhSnWT)}wcK`kXJ145w~jyG&bx6PvsqXXd@fLuREpKN>d2R;KcuO^z)+JJ`P6TpYUX z8#tzw9v1I!?eXh-zdv|uquT5AIj;8*Hgp3U4wInnYJIpnoV9XCtYz5DEG-$35fdK? zMlj(RlYO|p$8Gxk{q$Ab5CgcQIsmVXD%`!(M)kxu&XM@1+I@*(1Q#FiZm4b8bz(Y}%*<6>rLmr>1FtMvnV zC}H&Qro*t{1!Y1%l8BZu3eP?^Bt_5@%I|gn3bQ;?PgnQnAY)TX@}lRVAb=UVEN1C% zlVA>VF=i_LS^7&BVbA`BO~FuTn3$L{s;UT<9_}x^cO|;h1U>uum=SCAYMZB@1umDr zmNWHFcEZxvLmATkz~Z~t9CWVL=Ol-!nXq+gZCxhXZ!cOOx;TafR7ZsxYEVn1Z&jeR z9!uqh;>#W?H~&_VgT2(-FZJ7XO%eG#H#{_CuUBBD(oM@H^y0gj}~vTGPiWkZQF9S5px~K2d*RIbLXf_;C0#X}TUv@VOZTp!jfuXteKF{y$<%djL$9Z&H(h1+9P-h~sQq4FFY;3IZwzJt zK)r>2F@P4W9=q!;D*GTIr8LGd?r1u^4K@(QKYh39sfkc?;OKrj8rk{4ma2fEZRbw4 zRyZ=kRm{%kWc%=~q$c6xY4Xx-p7F}|-d|WFEL1=1ei9&C;oFtxV5*ff$?D7;Hl0T7 z=48BYk*38r+2kMO9{=@3m&YWe%gE$wd2ul|h4&d=)<{7O%Wco*smZ!JnzUI9UbXFT znxKxOKIq_!J~uWubgL431CqEZbCQA@n*weJ^L+EZ4|jgGZOt(RGL7i_Mk8}+F-Yp@)Xi6TsCj#CHK*HRaCt5 z^x`F=$2ZS@F+klj+WGb*jwz-H2Nf5!HSn8(gn*WuXClKli=Y969kJsH4Fi`{2FdAD zj&3X3RRa5~6B95CEB|`4D)gRs7HqR< zeq3m9!SR*)d}UZ@8V2KFYW2xs#GN1urY3B?JD)4P8!Mv-eWTmF@rROcbVqbTh%?JX zU7Yhd4o=+k4ptFFxzH)Ew5s@u$2m+Sm9xN7qlxnv?4faaUscFpHp^LIQGEe=>ZC~4 zO~Fw4P6mM9vqNuL@ffnG{w%0Y1T_TuqcQf^X9mT`Icj{po^No))$y!u`QWLsK+8B= z<-x(mmXW%gYqN`p(b(;ll`Rn}E){gXlYz#SG_g_15-hkEuIsHyqy#Pe%coD`fmQKj zYxDicjt8^5+Wsz}3>5B}TY*k)(}$|t{)!7T-_z5lSPCHCAM#Br2K3<#OE{&K?@bCM4WlZ`60jaeM$_K#-$lutihp(P#fNHx0di*b^40WSECpMUo) zA;vE|vjVj%l@cOiQqrmp&dA8fj!Gtp?2(v~-;~F*F5{Jwxx1*M*?7JFyb1j)w^yf{ zRi^UGW`(pr3kViyx1n(zim`uPSnTzZ<7INAWO4=i*XeoHXY;6arQc6~U<`DI={aDE zBI@ZR3WzLkLVtG@@0(OCz8?2d2&aU9VEH9Gx9{S^?A@de0C$b;!nef4M3L@YIo=O) zW1X${h%%2C6{eG=dSQSQ-#iQpKalx?xg^dM&A)U#S^H;ZX8T%)J9*-qqLz=roRE9L zi{2C;fho^y`ZC_c(A>P>Z)zR~hw`AC74uh^h7jmb=UjIiGB1aTSai*=+cgQ_f6yjv657J5ILNUn>%Qs(QOWAebO)~H9d3ETznLB^=k&c zdMOsUA>CWuOxTAE%+fMhZ#Negs#Jwf?(Wm-Tl^z${wY@8XsEE7Vi9<_ zJw1PB(Cj!cZY572FT|jjW?jG~wSY>J;p`t}Gq3)K@`G&E-o3V;$1{J*kTHIHz1_G$ z(~+^UwPI-vtgO#=XdiCOGj0R7a(e+P47X_$)z<$3G2+rIyZlfj+mfu_42Gsz0v! zW^MfMx3a*ccEz9VwqmBar*gSAgtXEbLs`p_zPFz`+{}TxrE&70VztDkw5u>s>i>_h z%TpeYlGlxfV61jdPiyurA-=zT+%F;`6djy#Rd*Nk2R?v2GOANFgz*EF>Grp~_1qQ$ z3kwSyXxS%}HT=-)^zqsdB}`YPY5`;;@Edtb{S6bJ;n6)z7Nd@$-5#UcVG zs`EfFf_=9C+Y=o>M0m)P(8E75$g|#Zb719u=xWBu#$(mmsXN6FHW z=iR%JBNsy^Xa`NCfPZu}o-uo3OzWo*GC4k!Nov4yuN=ZqHyHP@urOXQW z8Sn??5NmjiIvE1ji5aE^ww#s=c`9$F8q~;5QhUBg=c>3&xoe2!`Vo$QM2kCnW8qnr zqY?w@!(qh`S#DU)>R`o6CW^yMwLBxxYmKs!F({#}L!l~Z52o-jpF5laLD{-%iur*q z>H>EY|GBstNvRyw^qbv&;f;Zr|9npd#IlWSL6`blwYn>}?Iyqjt2{Qu=n-UmMy#66 zDi*wWvHb7$t!4;kpQPX`bu%z_R6iH zy3nK4Kse?jO5uk-u4#?j5DO#j~kegG*`Q^|C)jd51k zE;Lm3IrI~az8>##5_rYx3GI!50f_-lt1`MW5n^aNcLCH;z~@Z(slp{n=E6yN;^jhs zv;Zmt6{5kQov8H1Y6xNbl|NB#a*&KMeK@#AK;Ko4*naybW>6!5q4^6zo*J-(6ama>^!Sco)$lmAty-*pV>sFcrY6;?=+jiL{SHKBi&X^S2Rost%L2T?`;|6 zi`6>koUh1W_KH{h(2#sp;^!~)Zm1)TLXgVrrZ3pZ1vwmqF+^bJ0sNtNZ%_OC;2?U`p!zp z`L0L)wR+@5r3jM$Fafnay8Om|Fh{MSn_I2xB6OuPORv%B1;GD=*(2t7A~R+l9 zfTvZS0xI154)7C%XYDR6KGxLX*tYY;@M=>Ysmgl<&Bb_}ud8bfkb=Jj84{KOmD;zp zu1=GTjO^@(I3EvwD4|n*%DG$Z=AQ)(6Gz9(*{KpoRLi90 z-M3Q-`yy^Wn*Bg)`Pxbjda4rtB*isAd~0IQ+S~nYVAD^K6i|D7X*1|FDF?U{pH#I{1*1v(lRm@^wrj z@k8);86HL%BWC+F%x7pxCSOQ;Wvq3vs5}6hViOb$e-wPtL^L#rgs!(}_@~9*GVQqh zdhIMKWGP9e#;RMVbYaEH)A_P#@^vhJVuh9;UQ!n*Lzy%wa$ne{lgkLywKV>Hb(zGN z?zgZ}FhXlzyl6>b@E7$n#adn$h?Aq=|A-UEJ5NxV@{*YNkHV#8!I`?|xJGeTDKymd z#krBgn+$Z5mn0-bmKD?^+&CR=_jfnD20c)5a$nmOYdU|`w*lO?A8sPT!!tFRSb8Nb zh~d1a>UtCoX_)9}Npt}^J>nzt4U%az0pmoW_^+dN0AI6hMyT6xN^Kra1Q?XO57T4L zx;r>L+%zguaCUK78O@bdV^uPFw=plT+viRf0CgH+6Vqt?bxw!)a@Rxggi{s*RL0d# zESoxUp0Sr=aF+rs)Cs*OW(7k)(F&#^8u!w%ZB5S8A|kaFW_IO*Q}c{*iX-GH`!Onn z?5~5Qdu(4Q(}#?T;5aSq2>{(|L)_0a^nXB!Zk3>FtTta|?$UslSdJj>jmv+^w8za2 zP_x2_Sb+?Bv&XSFUr!J!(f%sf@}TH(tnwBAy?C?;j^w{V30aw4a{;$E=lqsz+koZd z^{$(pbi4b*w32BNHG7AjZ7?Fh!8k^w3K-kv!RD6y?dRts1SXxW67rL zonkuViX=*xxf&aw1JP}Kj9H(lWE$>D)JgQWtf0dyXCbKZV0K|BEGv7C@rj=eg0@DVSQoRWA1MU?#|3m{`3LL zQ8+b#uRos^#PM=yWObpJO7%OOmh^6(x*z?*Fw}wq{0(&5)E5G&3bj8vn6$JDWKgz) z{ddT4{xvhS%l!fY@e}g{-ig=$_(tz(@kLn@oL;EYPQ|h$_+bh}!#fx6?C)FZ>WHTk z>s6S!?QKLa|HdjJLsSa?-PcfhO?b4G9SKzEI80VRut1x)t)G8tyd48bPPU_~i;E!` zMx~p5#Jh)w`C7D8{ZAi_rYzB{D0z8#D$w=sq&|@P=&_*Sxx4O7uXuz56}rC?dFEy+ zt7{QR9$K$bM@E$Sh5elH3Sk<>6fo^rk8Je$qrM8qje(btwvOk*x+izQ>HBgbq=>0? z{b)Yo5&>G2>b3|Jn&9nii(v?!r3j?+Qfo=S!qyFgz%jL6 z{pa`*KJ93mpHJa#NVrZ+PVNAbI-n*$sZtyNGsWl#!z8ByzZ>(hLc{!GG}Mc`;%O5h z)=QLTog8BAzuBI8-5z(lPCHNm9Mc_jTN*)ujzMYsxdK2aXa@@_mGRX{xSbcu!oq_4 zW~y5|i_F}|BzoX=|3KtASXKZ#5g7Vum7R$@)sRPa+Yh5MR8)M0d2Op9Q1|}ww|>M1#~!o^9<4gDT+lc2EaJUe?Usbd1l-vI@T1q;#GeZW z@GN;%?cIR6?eyq}&OX*!loAjN9B@WFy2;(9BU%E+lb;J+wz)`c{GX>Cupe{lzw;P# m?XS)L|4v){-wtN1Kg_(d9CsPkmI7x~AkvZw5~X4v{r?y9_)8xE literal 8993 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 b!Al&xMDZFtrrN8X7l_6~Z55c(lc@gzL7{mS diff --git a/doc/images/jkqtmathtext/jkqtmathtext_pmatrix.png b/doc/images/jkqtmathtext/jkqtmathtext_pmatrix.png index ad752bd583bdfd4228c0c747e4f9800ff9a42acb..b045b1e703f243daa55fe3afb6c3727b173a0410 100644 GIT binary patch delta 2130 zcmV-Y2(9cX0ssG+I4g9Rq22~uKpA)qTBCLLoDV+mlIG}<=OFec^v7Ub5U zKh0~t^XJdgnsB%B?AbG1zkWTfzB*ACJQ9hZrltmdzaJ)( zDXmF&BTGw5sIRZb($W(2dc9Cz;gvKnFaWF7su@U-nwlCkG&Epva8S6fu#wzuHyjR! z@I*U7Z*MPLE`L|P#n={y!vVM3E#8p?n4X>{05mr@C(h1b~c2BLxD1 ze2cX$e!rgp(9Fz?P(PuS!ojt*hra!E8A#n{*w0Ds{8`SW>}MxBn14h#$oU~O%U zyAQXKrlzJ43Wdn9ZaNxj!#2oGI?HSLJZ43qjjvhS0zh7`mxzc~S6Aum*|QtIOBavFLjcHPvC!qqmlIx|^3&GVmeCx!;Of<@R9ad} z;c%F%J=aR|dcBCp<7jGX61r=gPA6P07yA18(0|g>0sts0D@%BX^YimU<0ZqkI!Thy z+S&>t0udn+iJ-Q&7633iJBx*dg^cFOHcd@Uh{xmbdc9ojxs3Go?OOoA>C>mV1(9VL zuV23gu+i&MZc%2lnR~osl;e24-h>+tth?qnZrn(F>|Ar^%ozax^s2`Hcp82F{29Qy zpMTFwSy>t0y?eLeJ6V=->(;HTcw@!p)hS^+3Dc_@sw;_z;Pd%lGMTV<@7}b8ayp&R z>2%n$XHVh}GgEI&&8z$JCo+ zI1394iT{effByo=EbvqdV3ogjb#M%Y&4oQ+!GYYCJ$>;L{;Qy1CWf`5F zod^U1c=+()hOH=DfoH05WLd_YJ9hwJ)BJ@5(LJ!7ED}_q!oj z*|jIjwiR#QydePOa5z-uP&HCZOMeRipz-l>)xn5plTp~kC@4HSXo)gxiGtlKY#uJ09UZB87WUNeKP%~g4;;U@*3HJ=`*WFD(02MYAgz= zx>Z|ASocZ~9XgcAV@Z-!P=zU3T}k`*?*{<<`t>VAv38c^>efO_{xN+r{iZ_INEV9) z0Py|$_YB3_d1P6}w{PD76n|dwkLi=?Hx;TzI(Fbq5XAzP^hW%_`9 zUcP*pI2MzfQYZwftE;K1s*2Xu)>PYaRj@WSH4y-c#bUz3urox;1b>+_=aj7~R;3}7 z;}_zYrInQx0zl2p&0Oudp50lkRsg`<+?>#o9vd5jUa!Z~r%yN3J})jVA{Yz;$n3w) z>2#vKy?s-0q}gmvY$Jud)iJ%Q!ehyyp&Nj543Q9FT za*(af2L1j01b|+=cz?mwJ|_kHxu`c#!ft@=($pep?0k@ug8izhD%fl`OioU6txi_4 zldI#A4<0-~Fc{pnG_26iEKN>M!fv;7%f_8gYHx4H*RNj@3WZX(Qx@uTxtD^dm4+4i z@yt*t1i#-e6t{63>D;+<0M@HRQz6T8BAU+R)Wmi$r^9G8Zhu)-Tj+)SA3uHs@K2vS za2u(yu@MG?0TUAwDcdbBE@E|c6~OkM8}rK2L9ODm(6_pYi3u1C2Anu?g1Zm5kxEKR zaOKJsjEszM4}Sah?F|RGSju2wVL|LT;uZvh!A(y=a0cx0a-YTne7Tz_OgxH*;yeugp5SAUMzX<-o2D< zwo+OqF%i%B?A&ZN&&X!Gg7xm*yIjSP$p{#k;acoT}#3S0@8RXA+YYH#p7|5mzN7q zxLb+EVkj*wMOj&yaNo3yq_MMTWyVE-W~3rOGg1+t8L0^P4*_aZPQnU6j{pDw07*qo IM6N<$f^A6^*Z=?k delta 2114 zcmV-I2)+085abY$Ie!*OL_t(|ob8;=PZM7k$G?3jFIoZ`m12fi6ET{qxNv7g1qxc< z6BObf0BiPYqH&`xL}TJYK>q;U2pV1jx{w4mEJ~m*6hj*{sV$Kfv zR~H%^8-+XC3V&K#ThYRnU0oHcNCNcs_EKJ69)&_7k!oop91fGi z;UEA6fb4cV`Fy@i4=W+TV36|i@~E$`PpF>IO6ut7Ky7U;cJ10FHWSiBNl6K&r>D`< z(gFaudGjXr?c0~(Q6*;g?%k-VsS#f7+#-d;VRUzQgp;xR8vzEyTJpXwzf7yZK+W^4nspjG&wm*cDp^+M?*tH(tV@@ zm&-+xB+=^XDpz?fkvtv`0ib*L?g< z!?rrF*NeKkI?&prLpU6U!{Gn`csw5X{r;r-Nj1!l%&xldDCu&!2msB`&vVa~L@OqK zi!zE{JC7ef&f3^%etw<+aNjFdNB27+C#u^ociR1VCWA}=sr6mB#1)h2Vtorxs*RLDy zC!H{RGW%+wyWLGpOaK5595}!|fJh{Qs(-2~*lae;&CSJTdaAZ4y>`^UH#IdG?kAlv zdrnMD;LMpbnq_rG5?x8MEaTd>Yw-De7#bSduoa~$@YHHYmSsG6@Bjet?Af!d4RA$P zlCF1GU0qE8Xl!hZ%M)QNN$oj!e9x2hYlSg0NidYy8!0;#{Uaox7(?&ua9orxWUz4JS>2XHxhICQ|WT6 z`(lPyUr)Rk?Am!I$@KIz0ieT&59^LYSETatasoiJv$ML55z$|wu!~V&aQrG0MctPA zld9Fj*lbr&$A9Y8r5+d0^@Tzq0)Iez_wLmlhi;C8&1S=&KYt+0G71U`^!HB_E@W9o zQBe_WHX9Ze7BtIhinP4EjDms!uh$E^-JVrj9k6cC zl!$cn=urU4r(b1){{DUh0)edC>VS27GW%+=Wh-f5U;q}2Wy2>vo5(24dsDaF-QA6+ zPoDzFzO4=rTS;7bcYF5ip^AzMo}z!jPEyqeWT`r(C0akjQJ?Lo+kel-ygMQyNs_3n ztcGZsybJUf8%Jjr6Q;QaaX7#SIXq9~eW zWm!f~PY(dV>2z`pLIkhZi|+1j0Q%Xh+4y*-q9_;{8G+mFhQ(sxs>6Ng=XSfXu&{vf z@o~*^vMk5`oe;@-{Z;eP=1GCp%*tFv0IsH>~vuEQ--X=y30T)Bex@85Gbe&^1e z4G(a!pwsX7$DXb*N+1yUE5J_2R>vMXP#<%&wzh5>jC;Lal$V!lPQZ8X-r?%it6~#K z#4F)_*@ilkGk^Y*tV^s8RGIg-*)zFFL5!5@3|6Br+Yk~-Q514G9Msj-rCBar4>D`D z&z_r2W$>En4A#!hPI5RLw6d}yG!EgnbltyyAETqALff9n8W%2Hz{!&*ar^ddp?c=4 z)V7E%eU+LdNpQJbu~^82kDi_$)YsPw3j`QgNx<6cJv)gA+qP{J?(knF8jZ&CEkrRS slF8O$rWxk|rbsz}DN+t#ij)KVAM;md+H9)^wg3PC07*qoM6N<$f}{u&!~g&Q diff --git a/doc/images/jkqtmathtext/jkqtmathtext_timesnewroman.png b/doc/images/jkqtmathtext/jkqtmathtext_timesnewroman.png index 98ed2f0ae80f7010a54b3a270589dc190bff4ac7..b451351b9c5cb82adcc81cc5afccfefecfb5a032 100644 GIT binary patch literal 7533 zcmb`Mg;!MF`}PMBd_+QEKtM`Bq)WPEhEkfL8wP0PFu zew*i6-}f(g*P1x%taJ9+d!Kt>`@TLmN>y174~GH=0)gNu$ivhjkUMJNSpFYu@H;A; z`5FA(e=V>376QS~y!~R_o7*~sK&WUGU{acHpSIGB?Vw{voy`u4qw2YQ&@6aio4OrN zudEJ>bS{d*VhD}-!IuPfBvYvFsvS6QIreZ+GDm%H0CuO8H8;}Y@#iA-99nH_sV@_1 z5ie+PLgg8TJqj>o4LiS#vqbL}5v4Q!zN9`)GqpVK+w9%UmILqh{TmdK{-U+T5QiXs1lD?SG`)Wn5LZ#GemJY9@cc{#>!H~!vstOSdJaOi{A z_1TI}rIp&?(d?{Icw{6tEn%A`zIdNGne5NM?O}UYJH9mFLBlt*o;!`1?fdX7)t2sf z*1_T7z`Q)hA7*n@jD+ZE1?bR`K`*x^5|}d z6#h|_De(B%WoRx|MV!1+M_3E%hcdT1g5=_4r_=a)|IwAz+K`GwJNO#%!4=h@Y{pH~ zYW%th+#(_ml!h{`DTq*aW4ab)^5yyX_(-a9s;jFr+s!CHA}5AxzSY+UkQO?af_Y5} zW=K<(8REso#f3or?g{GY>4k3BdmOR&9OlrNwuh2HAPO7(WE zvYXAc-i85QSW!`}_XR(L!gmc7v7nL?4sF)uvNG<&!^72jjrf=)&;hrbtCO&}YB$kH z@CdKtiC3rd0R(|_8Oh15TT?aB%K5B}#BH^?s!a2TYePxt=^X2i)|@H8I|RqeGfWRC z|Go$FxU@b}{By|(@?M_7AB95EVRa~GsY-Grw$;5|VPSc}1pU6_b0RX;-}Z;g$Ybqk zZ*T8E$X?3|L7z)EIEhH`n-_wVqpmOE@-cx_A};fzU-YMC@phGOhj7n*DtfD9cbAJ- ziM3D?qh)WQ^9^_-Sy!4>sCF~y)Ms$D*Gt_b;vA;yDPUGiEiD@12FO2Hcmp zBTz*}tLy7T9xI5Rgs;*6#fpFAuj`ZM8!0uYv$L}ah>nj)a&~t1^SyMo9>yIJ9A?#D zGt^FaH54nBJmhHI3T*8X11VeEVjl_SKze$5zs+#&@aUI}0n5vliwEx0jh@<$&HWNL zq9CNiFL!0|RZRVE7dAzV9eSqW~GlRc1B*5x-<7h;_J)PH&-b|MdKB(qL?r5KydN!*0LUw)kRP6$ z(8nv9+Sqh|9?l=K24@SpU8q!SF1+665B`9j_IU^X{{bh{up^ zR`!-FgmYCJHZDFs9SG)l#R(6N!lKY9iEFa0t*w7T+D=y_ZgdgJWF2@#MSmj%W+9Nz z>daH-NCe`|&a9ZYOSNiEr@O_p){dGwb7KG#n>cym{-|i1eO9@uRlw+|)^xqAiU5=o ziUY*J!p_KkHSN83i^{wYWkDy6@28nI%+IP!w4`C~DH@kv`7s|W0u9$`b1-T%&YUbQ zu|u=tHlJ&k8U-;Zyvv8371F@fSQ3uAYKV|ZtJY{q(1+E5C&qVvzfDa|bXJie36nfizwc0P`- z^6*mcEn6}gnv-Gv?|-;T4C?$}Wq9*{lq?u-g2I_`hAE;tl?eB)Dm{g-jlMY-=J-4R z`Hs~I_mB1{)li7x5*7~SvmK3-$gmdwX<0!5VW*CIP>MOgpzwQpwsB)+5A0Zz!^3f; zC|IRDL-vxB&|H5RkAy@iJVz}y91|1s+jLu7TY9?OTvb9)p0yrb^Z>+)n3y=8NP;VT zDM2yUpERE%IU{3CIZgQKC7N(bnvHZwIbD>zk_^tq#%7h4miGNx@oLakg5w^=$)}D6 zphlnziF}OML1hhT9p)4jGnEHGk!%|q8_#cen{;{xPG4@+%6NDGa^vOVqNU7fjFD$x z*{9?jkB>lbG;hsX%LU-f-zou2-*TM<&o zeix5Q0*KWkBR8pL2VVYC0f9|=xk!_p*+xIgAfWr@T2oo7@^gN#C)YC1XcK$f9abs> ztP-KZM5rVeKPbHQ>|iCVB#bs^Ek`cOBSzr|*g3ew#0-b1n9DONJbDR1a03-QzeHFM zVSun&{7FbD__}52gd$5>ChOs>#|C@DL7zy|#fMiFqf&HS;j7s_S=qRhyB zi3F_F(FkvPc9#7!(dsHy+f8M@*3*XX4Anazok$4_&?iu(*sOQHpn6C7t zxm_KNc}F~Ivd=~XRkWL|?1HLBx(n*mI2bC_N6AG4A-12YzHh&f)Gb5&4Uzn8D!O0% z0@u*cP^aF-UWpXWTef`Q4jM+#JnCwCp4gN8SA&m-?rA7v)t^76#<3}U23Sg&9UC1d zlQW!udy}7ot!cd8we(fpCT%YLDx7$tFvieJIz9fKIvo_wy|u{_>Tksx8X1Y- z-)~nbJX7z=2{!s>pY@~5{)m~O@8A88_j@>}(&s4bKbpMlQ(h@NOx`n~=3l9CCh+cL zDn1IIJta4ol+kUbSBP-|f~W7kx%nLZs$JHTK2DH;w9Byjx@F6CwMml&$>Ml!KVhe( zvod;KS*-C4ePpYhr+kvH&TMaDBAKYBY0OZ6^n9>B{MCtzy^&^hHV+4~nBF7NP-J(? zr(sfQI7cZi*89Vw)K50^`HrLhFgmq_h@@CN3h(6+{&p*3q+N5zetEG<&5>Q23`4wK`AJ^Jw`boSxIvO{mP^UDz0`|51F@yX-gyg?gtY#lb~u z?K~}V*gI49P8gl(xsojTs?ca(tYU7cPuq_lfdjPz=U(;rJ9oPnSoGDrRa3cV9WM<> zcLc@4#4GUmH5p}t0!xILV_bq`l#dkWszy`a(X!@WkzIV4@~fhbXX+4HVo`G;&d#&W zgNHqWDaO6){rY^|bv;COn(VSZc{r`Z%+|N25AJXS^H%3Aov`O0aIB0ZjMw6yCbCHT zE#|UAT4kOeB+cyQzA~XStIV0dqvP9A|VOic^hWf853SMma)EW9sR(Xr)pgaVbv{B^;aebB*P0y^0UDJPh zB0d+mP1slJ(^{t-^wm`PqRuO)6q<y2Yj3lU+Nec`Jmw*85#L)y#c6pHPRMAr?}-bQT3oyF>c0_J< z8NGI>-J^P!;CcKsMj4%rqe~b~&3KStW)tnYZ3pV>u!ZgB+uZ4~h_LRkN1Qf;R+Wq6 z$eM>=u$2|#_MEeun~iU#9R>|w_@gxzrn&j~mu*Cyh09)NqdzP`S8Yv9TAaOm64>D! zp-@T{izKU~1Xei6#^|Cy!IhSm96d2hX1(=^X8;VRaRNchB3V-dW3ip+floNw?pp+ zZE6GS{q>7PNQqL&=`N77LY=GVOA*&?7%v6iQ5Cy>b!K6qf=XmDLQwN(Yrwt1i3yaK zc+~Z^k3q9fIT1POsKQd2T*Ftd=VsBRqffkVd}p6N(6FH7G6t!BlVv z*WY)MPg!C_qMS6y7ovf-O2;rT5Z!Mq4+v(=2I-5bUyQospsC-zh{0`uG)N1}kt~%lX7bi#>qyn8_3jt{e3Um)rTMDfwH;4#mx!7qocAD?D;Nd%Y zpR-s6#f*sQ(7Iz@`>_6ae0Dant4m?#s&-bLLo@7F2K+3;6B)Xo0n1Uom-MsVCo?UJ z-1`R^HNaO zZ|`2v)Q6*T8|PPCf798G6d`Ioj*7%jD8y#a)M(D;OP=eCxf>6UD19UEBZTPDFtDcq z1sb9Egm`%VPJ~5~ZaGZ(t)vz7Byvu5bkas}5~0ADK>n{TPCScHC)3p^Tbvz8lJ>+e664*NP)NA!*BnQsmF_NyedE;UZQwEns&jwv5S?xu>8RT>vG)p;v4xE(Y$EozkY z6aD_QAi5HnW7+I}VCn4Qaz`?g&<3g7@$=`0jYuiAIKPYLk)o?-u?k*?gK|iM51?P{ z>OKvNVw+oAa9)a$h@J?!_E8s8-b!W0Sh#!Q@y;Bl*F7OR9g*-d&N8#eQ82N_&u0D>s!9r>$)QqYe~H}yE8)Om zpZ?-465C~Rw!f5=mIgOArWr-+1^{n=<&)C<>6}ZccBy;yk>09qnjPBxFgQ5)&dyF% zfdwtG_d%Pbo)2B0Po2BWvzLw3lVyAKE6Bwh%}x0o zC|eIlo1*HL@VjnHGrMMUbMtC*VhJe6JDt@uU)k#; zTT7zD;)wF`pTzVe9mAoHUFWXA1Z7<+N9Pv~3Ngd9o@Nd^Ry|l;Th^7`G#fg#{*e7@ zVkG3q$o8Y?;CshJigpLC@&{IHj7EujCsS2e64oC!yQgd~tcNQ(>6VU7!=EF!Hl(m$ zeyEH}~2R*bM;8ZImF6^S5rFvC(y))c{xHLOGH*C=}e(n3X_Y>o7CzRE~dY93<4ZiNfQ_G%18<(J(zr z$wP2z>kN!q@EoBRV|6g&d*T^S=bYcZdZPI3xe)h%D`$di4 zgOFQ+9~BcMcT_#=DmNgUqAlN102_|L*HWxzAx24_Hww15zl&Y5c^G2AzIb@(xt{M*%;g(sBHFWL zLI#G0%u~GN>mE~59`dz-P6M;m>Ks8yPv-k$;SE4`nWd$roBTlM1L0w$2=@1H*q`jI zudS_R3(==3o7>pn3=IuQm#$?NTBIdB_Rav$e?M&vrw+PXw+;kuSe-YxkOi#4rSACe z7=2`PIirAN@$YwbN!l22k zu88nE4GG|s_%!0^5P{c#?g2>keRFeDrVMi_=s)_ExB3n6pKtG2o$3rS)dsIdt^Xsj zWp5Tb%A?qHQ8o~(ceXWm==7uI5PsQEcHTkN-as*S!KayD;OJ zxQqDB<-vz`v(w!+g2B;I?0Km<8*A&q0DJ;`eDQq@FI|As^PT`~wbGv<;69>5YzD$; zq*&Yh>ih_xM?q3j(t(MI!e^0N8yjue@G$2nh8DwbxWf3W+uI!b6ql_8KJRO0JsuPl zrD&~HK4E41o1CfVKKJc8E$2HAxjzk&$)Dgq6 z83uWFD2`6Ej~M9S$DXA?qX6I2Hk!i)>B%qIY1~e~^5Vq|pXrN(Eu)R*dcfiyeD=NF zMyKYT|M50EjavKJ26BLF0kCX@Oky*%xvHes8hK45oJb2 zMLm$npLd7s-li4Wnc>7OOFfBuplYx-_hhL^bAJ#dc;-${>SX<0KZl1k2g_)&?r&~y zcg)Yz28V=%xeUtxF-x+MdJwE$U-BP`V|*Ig#Hyg4Y2<6Z7Yc&YW z-YAzW`6l#B9up2A2ZcAgYUyORlV0el$gB!fb}c`n1Ms7gRkC{?3wLkJ3PY|6Ym)#p zfKA$<&NgWT&_(|P=vU|@4V-SS;+2Zp<7(<9Dsit`j)V0Pihl>752A*RR7O0* zwIRwb+$yuigDSp!39Q1^ogD$JnMxx35I~|aB$IGt5|E#VtUrmk;9~th0X$T+?hd|OlCZ#-4AadEBz7JP>*+&R2qln1P$&n%B4-_?esvyl6 z+d5fgD-u9IJ7#4`F8hmJne7Fvw@eQZNQ?nSM#jSp6ihk{MyJP-NId&M@-f() zBp#EI0rXg?srZ6{D6gLy3rJSU(eW`hdj~yUmDG7fwJ|HWsaYUiaYXg^d7i@1ct(P0 zl9^ViQN*iscWjBXE|o*uEY*Kh#Lq0=t78#hO)(Hi&NmU(^I4KmMZ8p2CJlO?N#E@y z&WZbOmn+L!Z?JDBl1gN^_j$jGvokMkAz2>Je?=^0Pr@Hiz~VNX`f7>^$T#Un*h~8T zvy}|kY=45!bT|LG%TvpF$Mi%CHh?6aW7Mdy1wB literal 7370 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 diff --git a/doc/images/jkqtmathtext/jkqtmathtext_vmatrix.png b/doc/images/jkqtmathtext/jkqtmathtext_vmatrix.png index 28519adc4a6937aaa3fdd863101314e38cd57472..f25d555ce7475d28e0464b2b5b61fc7389fb1048 100644 GIT binary patch delta 1307 zcmV+$1?2jS3d0JJIe+y@L_t(|ob8)2OY>Y5$NzbG#Ib@yQYfucr7bAvAh_w!f>3bq z8;DMd?d;+wXx#+GZ{Q}V4Jzm)4sMAEDnv?Kw=`2Sop+Gyo5r^BZLYnhPkxXk2{-5d zlbn0*J?Bb9M2HwV|A;o=ZzU355RveLh=dn}ukfa6A{u|c4}THCG)>?8e1*?sGHA70 zT#Wh~Xti3%WHP?@MXp8=k??{DrSQ70V{vg2?RHzVDFYK4;j7guBuRoKNyz1LSXfv< zEEW@O*1&{D_;R@nP17LDGGtjsxm*@)QXoPjJOI>cHN3ySV|I2H$z)QrIe`d`@Q&l) z^z;+}u(q})*ngVfghu$6mlx=|4q28_C=^7S6BzEotE&1r2uhL!MN#nf_7=EZubbK2 z-0XPH_4PFe>xT&WpePD88V$eONYgZuWtsB%{O7q^twsPk&JBWX+qAT_L;$Eh*e{n47s7;N#1G zdU^s8frwD4R6g%xV?Y?-BK+Om9SpmH(UtdQml?r6P z2>$SBB%jZJS;4%yxxvA~0f1mp$f!j#3@*YmEX%^o%nS^}Kq{4jZQFsP5Wi@qUa!Np zZ2&;ASbrS&Im3pVkDr>FLOPws?d>gy2s=AFTqZkylO}dOo6TZ=em+PyhDu=JtJNxE zu^4uDchPFKkW41Ixd*>?+}BH`Qn=P`{KB4o;bgCHk%gABER$gv-w49GbhW&rT3BqRDSW8_X6@XAK9HE{3RxH~7n zD=`v;p;nTyul(ZT0z`!6<>k-w&(F^Q5U85WvMfwbPh)Is>`OtDI|&{ZHv@30tJ&V( zhOXw2Y${e&rp!%1C%J6d%uuRVODWe-8`fvj!6W@$nHr?}){+ETq%vfp%*+j)T|N*PhqIzBPwS zIH~J8_V)HV&Z(-3bUKa8%geyg27lX>;D)!GVTHHuC1qXLp(sk%7t6K+4ZH=&ZxHA= zxVkHBlqNpMJ+6f@*Y99;e@V|jOeQnyd#WmLbH8Py!Jdrm1HA8R7v*BiG&w~ zud6Xl6R}tfk|YhwrcgsfXt&##n3(8$pRe!{KSShd1Q7`@h)8%rM8XT=Ule0(fZhlb R^f>?k002ovPDHLkV1lX+f9wDN delta 1251 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 diff --git a/doc/images/jkqtmathtext/jkqtmathtext_xits.png b/doc/images/jkqtmathtext/jkqtmathtext_xits.png index 6c3183beedd49eb2c65342a44ce368c6f91b4ec5..5442443ab62c244497bbf003cf310a0cb069a547 100644 GIT binary patch literal 9485 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 Dl0zOD diff --git a/doc/images/jkqtmathtext/jkqtmathtext_xits_all.png b/doc/images/jkqtmathtext/jkqtmathtext_xits_all.png index 6c3183beedd49eb2c65342a44ce368c6f91b4ec5..5442443ab62c244497bbf003cf310a0cb069a547 100644 GIT binary patch literal 9485 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 Dl0zOD diff --git a/doc/images/jkqtmathtext/schreq_mathmode.png b/doc/images/jkqtmathtext/schreq_mathmode.png index 7f4ca81d537dd37dd70f5e4d7a548e0677b12efa..b30eccbdb60c11b9344441d3b1c589a745fa2f06 100644 GIT binary patch literal 7846 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 n13n$T|M6~z{vYS~P5KaWr{pWvNO@<4^wwG;zkI diff --git a/doc/images/jkqtmathtext/schreq_normalmode.png b/doc/images/jkqtmathtext/schreq_normalmode.png index 384b34b0c1acec69c92360d851e187d36b1644e4..38dbf7359bef992e8fed49d67e6753494c1aec16 100644 GIT binary patch literal 7648 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�)EdD;*R0e(u$+CrUg=xSA}Jo%!)4{AZ<6NzwM4ue%ExQ+0GUIa*dkX*?FyjZ( zAMk4%U^7ML=_;!+3oLY=ZST&v&WoMcj&_I3h)74av8j((H$7Wb?F%4Z;=|M+U&X-m z4Rhu$eQfNs!UcH;WYtK4mf3(T>oVoJSR@Fv&QQbExC2P(_0?t1s!O669N4VkS2g-H zt}iD1@lUdK2T~+*Nmk-4Hsz@t&UNlm6M6a@3Y`t0^@&|y9O7{{{o=&tw#i?pLJO?;Xnfg=sGCRa3*>DI)UOWv?$28z;X<-#L4RAOD zEc2z}+;pkPzn4Oyj0I&`soSv((-zq9(Wx+ht-JWTx$iC~R5@KJ=p(^n=nAbGY8S{G z{-sbyGEH2K0fjIm(hJnmH0uOWzzT&tcWJu1x~P`=3y~3CVn%8VL2nVPFJijl)5K-i z6C{D8suFmnF(1N1*%kG#j0mHtlB&N`T5(kjv`wHv&cN^*d~^XU3- z*?P8F)UfiDU#T5fR1TW|oh`y!(cPrA7MxPxVvWPJU#UU9z|l?VZD5dz$jvS-B_QWA zIx?8-Q&xMIjV%F?bY02t%!~ngJn8{2sS=jzpDHXgRlrH(ys*cM+%j9joS>Si>d&^! zX#-0kmHdPHE8D@0u#Cq>`SV zo}GKWZZJ8s@Ht$YKRY!wP&YTXWUOrea!r_ia}0Vcf?1bcdX&Nw>M*5Q$)`Kyw9c5o zP)RDxC~b3)-<0C*VMIYgV~=r~WHVjE19IHbA2^(Z?+^?F z0sBDo4>~x2k>cFB*#9WeF)~8>W04#Gk%;-)t>GFOA(>HS!I5@w)yQ|JT3SGeZ-6;L zepFNFg<1;u7i7$@F@#pBvR(N`gbijd=-9aD-ZpYN*BUtgyY;J%@8$?w-w{t?2s(~C zG8g3*{9I2uu-Cl8epA2TS;@aDZMik#drDU>l3heZgj-C^evlt%)lHYj(=D<-Yt;XW zvczB`0oFJGh^k&jc3VMG)krGep<2;9T*J-5!6CEAkX4@TCoX6^U)0$^0swJaih;;= zSf1y*-oG;fJ%)78-I;^u^$96iUy%_lE#kmjAaWjB%$6G8Yp(b_ALQPR5}K*KiT#ZiOS4)=L}{<}Iw0i`fn>jtalL)V-JcUSDD_{w z8h78GZ+#3{vX)(;)`Qt+xBr#kF)^%#_ApBcdwQF9peo}tE&WqCipy|(hYfJ~d=VuO zmI%b%BrfAFfTsF4G(j?i;!%73GDTWiT4JNo=rEZ)bq9JqNOj!tqr>FugK0>p2^o|r z)8k-CdS2904fT?&mmWzeC7DAw=YL`dz{E>6QrEM7{8eQh#XKSZGk%B;4*5MLbT%sv zjgbtVAnoF2DA<>{Q?HP4FI7*la=-AX z$*A7t4glD(a$lb1^mSs3f{_hBkO<0P%QERgFv(3qo77OxId6o;@kT>brPa_sF|ES$ z4eou4V{OWREd;e8x|1)la9 zi#!RW74ssTKc73%vqkSr*WUU}zyMJkU`#19XC{^Ac{%{*4y4kH>edB?VF^hd9R`fG zot-Hz|2jJd+&(DimZFMEQbH3vaJWhDNC+K&+`nDir?mO4}iKqrX7F& z#fB=bmx(v!lLeK7z5OS|aB@MM91~%O&b443&w>!yawPJjM;$vvs*Xopbt%R zpDoS!k0eYLE7#GpewgUsmafC`X7m&#-f4!is@`@IuQ2PzH#^y#4M;1uj;+Q*Ko{nKo41I{PA z{ofTCD6{;JDKq_#C&~0XZl`2jZd?7GzrLKW7y<*I0cD~}y0?fh6EYs-z{_ggSc`QG zB1?vq)V5q&F{a*gkCtEQ>A7ET9JAMEA;PaL%!KN}O|*f@CHF#{-~S(7-mG*p%*2NL f??;e#*H}sJOt!`l-%~KGg}jzlmMW2a`~Lp`QYb6s diff --git a/doc/jkqtmathtext_docimages_math.jkmt b/doc/jkqtmathtext_docimages_math.jkmt index 764a0f7486..a957451e5d 100644 --- a/doc/jkqtmathtext_docimages_math.jkmt +++ b/doc/jkqtmathtext_docimages_math.jkmt @@ -38,7 +38,7 @@ jkqtmathtext_limits.png no specifier: $\sum_{i=0}^\infty k_i^2\ \ \lim_{x\rightarrow0}f(x)\ \ \nabla_{x}f(x)$ \ \ \ \ \ {\backslash}limits: $\sum\limits_{i=0}^\infty k_i^2\ \ \lim\limits_{x\rightarrow0}f(x)\ \ \nabla\limits_{x}f(x)$ \ \ \ \ \ {\backslash}nolimits: $\sum\nolimits_{i=0}^\infty k_i^2\ \ \lim\nolimits_{x\rightarrow0}f(x)\ \ \nabla\nolimits_{x}f(x)$ --- jkqtmathtext_doc_subsupershift_integral.png ---fontsoze=30 +--fontsize=30 sub-/superscript:\\ \begin{tabular}{c:c|c:c} shifted & subs. shifted & unshifted & unshifted\\\hdashline @@ -46,7 +46,7 @@ $\int\limits_{\textcolor{blue}{\leftarrow}}^{\textcolor{blue}{\rightarrow}}$ & $ \end{tabular} --- jkqtmathtext_doc_subsupershift_integral_boxes.png ---drawboxes --fontsoze=30 +--drawboxes --fontsize=30 sub-/superscript:\\ \begin{tabular}{c:c|c:c} shifted & subs. shifted & unshifted & unshifted\\\hdashline @@ -54,7 +54,7 @@ $\int\limits_{\textcolor{blue}{\leftarrow}}^{\textcolor{blue}{\rightarrow}}$ & $ \end{tabular} --- jkqtmathtext_doc_subsuper_italiccorrection.png ---fontsoze=30 +--fontsize=30 sub-/superscript:\\ \begin{tabular}{c|c} italic-correction & no correction\\\hdashline @@ -62,7 +62,7 @@ $x_\textcolor{blue}{\leftarrow}^\textcolor{red}{0}$ & $\mathrm{M}_\textcolor{red \end{tabular} --- jkqtmathtext_doc_subsuper_italiccorrection_boxes.png ---drawboxes --fontsoze=30 +--drawboxes --fontsize=30 sub-/superscript:\\ \begin{tabular}{c|c} italic-correction & no correction\\\hdashline diff --git a/examples/jkqtmathtext_test/mathtest.pdf b/examples/jkqtmathtext_test/mathtest.pdf index a0a35300c31d531cadcc968dffa51bb1b7e7fd38..44876c9af44f7a7275473f88d084d9ce56e6f2eb 100644 GIT binary patch delta 9651 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 delta 9410 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 object from the settings in this object */ - QFont getFont(JKQTMathText* parent) const; + QFont getFont(const JKQTMathText *parent) const; /** \brief return a copy of this object with the font exchanged for \a font */ JKQTMathTextEnvironment exchangedFontFor(JKQTMathTextEnvironmentFont font) const; /** \brief return a copy of this object with the font exchanged for the matching roman font */ diff --git a/lib/jkqtmathtext/nodes/jkqtmathtextbracenode.cpp b/lib/jkqtmathtext/nodes/jkqtmathtextbracenode.cpp index d6219b74c4..644e070ae8 100644 --- a/lib/jkqtmathtext/nodes/jkqtmathtextbracenode.cpp +++ b/lib/jkqtmathtext/nodes/jkqtmathtextbracenode.cpp @@ -47,25 +47,21 @@ JKQTMathTextBraceNode::JKQTMathTextBraceNode(JKQTMathText* _parent, JKQTMathText JKQTMathTextBraceNode::~JKQTMathTextBraceNode() { } -void JKQTMathTextBraceNode::getSizeInternal(QPainter& painter, JKQTMathTextEnvironment currentEv, double& width, double& baselineHeight, double& overallHeight, double& strikeoutPos) { - double braceWidth=0, braceHeight=0; - getSizeInternalAndBrace(painter, currentEv, width, baselineHeight, overallHeight, strikeoutPos, braceWidth, braceHeight); +JKQTMathTextNodeSize JKQTMathTextBraceNode::getSizeInternal(QPainter& painter, JKQTMathTextEnvironment currentEv) const { + return getSizeInternalAndBrace(painter, currentEv); } -void JKQTMathTextBraceNode::getSizeInternalAndBrace(QPainter &painter, JKQTMathTextEnvironment currentEv, double &width, double &baselineHeight, double &overallHeight, double &strikeoutPos, double &bracewidth, double &braceheight) +JKQTMathTextBraceNode::NodeSize JKQTMathTextBraceNode::getSizeInternalAndBrace(QPainter &painter, JKQTMathTextEnvironment currentEv) const { - width=0; - baselineHeight=0; - overallHeight=0; - strikeoutPos=0; - getChild()->getSize(painter, currentEv, width, baselineHeight, overallHeight, strikeoutPos); + NodeSize s; + const NodeSize childSize=getChild()->getSize(painter, currentEv); const QFontMetricsF fm(currentEv.getFont(parentMathText), painter.device()); const double minChildHeight=fm.tightBoundingRect("l").height(); double cAscentAboveStrike=0; double cDescentBelowStrike=0; - cAscentAboveStrike=qMax(minChildHeight-strikeoutPos, baselineHeight-strikeoutPos); - cDescentBelowStrike=qMax(strikeoutPos, overallHeight-baselineHeight+strikeoutPos); + cAscentAboveStrike=qMax(minChildHeight-childSize.strikeoutPos, childSize.baselineHeight-childSize.strikeoutPos); + cDescentBelowStrike=qMax(childSize.strikeoutPos, childSize.getDescent()+childSize.strikeoutPos); //qDebug()<<"getSizeInternalAndBrace(): showOpeningBrace="<0) painter.drawLine(l); painter.setPen(p); } else if (openbrace==MTBTDoubleLine) { - const double y1=y+(nodeOverallHeight-nodeBaselineHeight); - const double y2=y-nodeBaselineHeight; + const double y1=y+(nodesize.overallHeight-nodesize.baselineHeight); + const double y2=y-nodesize.baselineHeight; QPen plocal=p; plocal.setWidthF(plocal.widthF()*absnorm_linewidth_factor); painter.setPen(plocal); @@ -234,7 +226,7 @@ double JKQTMathTextBraceNode::draw(QPainter& painter, double x, double y, JKQTMa showOpeningBrace=false; } if (showOpeningBrace) { - xnew=xnew+bracewidth; + xnew=xnew+nodesize.openBraceWidth; } } @@ -244,14 +236,14 @@ double JKQTMathTextBraceNode::draw(QPainter& painter, double x, double y, JKQTMa { bool showClosingBrace=true; - const double xbrace1=qMax(xnew+bracewidth-paren_fraction*bracewidth, xnew+lw/2.0); - const double xbrace2=xnew+bracewidth-lw; - const double xbraceC=xnew+bracewidth/2.0; + const double xbrace1=qMax(xnew+nodesize.closeBraceWidth-paren_fraction*nodesize.closeBraceWidth, xnew+lw/2.0); + const double xbrace2=xnew+nodesize.closeBraceWidth-lw; + const double xbraceC=xnew+nodesize.closeBraceWidth/2.0; painter.setPen(p); if (closebrace==MTBTParenthesis) { QPainterPath path; - const double y1=y+(nodeOverallHeight-nodeBaselineHeight); - const double y2=y-nodeBaselineHeight; + const double y1=y+(nodesize.overallHeight-nodesize.baselineHeight); + const double y2=y-nodesize.baselineHeight; const QPointF pb1(xbrace1-paren_topwidth/2.0, y1); const QPointF pbc1(xbrace2-paren_centerwidth/2.0, (y1+y2)/2.0+fabs(y1-y2)/6.0); const QPointF ptc1(xbrace2-paren_centerwidth/2.0, (y1+y2)/2.0-fabs(y1-y2)/6.0); @@ -273,8 +265,8 @@ double JKQTMathTextBraceNode::draw(QPainter& painter, double x, double y, JKQTMa painter.drawLine(pt2,ptc2);*/ } else if (closebrace==MTBTAngleBracket) { QPainterPath path; - const double y1=y+(nodeOverallHeight-nodeBaselineHeight); - const double y2=y-nodeBaselineHeight; + const double y1=y+(nodesize.overallHeight-nodesize.baselineHeight); + const double y2=y-nodesize.baselineHeight; const double yc=(y1+y2)/2.0; const QPointF pb1(xbrace1-paren_topwidth/2.0, y1); const QPointF pc1(xbrace2-angle_centerwidth/2.0, yc); @@ -292,8 +284,8 @@ double JKQTMathTextBraceNode::draw(QPainter& painter, double x, double y, JKQTMa painter.fillPath(path, QBrush(currentEv.color, Qt::SolidPattern)); } else if (closebrace==MTBTSquareBracket) { QPainterPath path; - const double y1=y+(nodeOverallHeight-nodeBaselineHeight)-lw/2.0; - const double y2=y-nodeBaselineHeight+lw/2.0; + const double y1=y+(nodesize.overallHeight-nodesize.baselineHeight)-lw/2.0; + const double y2=y-nodesize.baselineHeight+lw/2.0; path.moveTo(xbrace1, y1); path.lineTo(xbrace2, y1); path.lineTo(xbrace2, y2); @@ -302,7 +294,7 @@ double JKQTMathTextBraceNode::draw(QPainter& painter, double x, double y, JKQTMa } else if (closebrace==MTBTBottomCorner) { QPainterPath path; const double dx=fabs(xbrace1-xbrace2); - const double y1=y+(nodeOverallHeight-nodeBaselineHeight)-lw/2.0; + const double y1=y+(nodesize.overallHeight-nodesize.baselineHeight)-lw/2.0; path.moveTo(xbrace1, y1); path.lineTo(xbrace2, y1); path.lineTo(xbrace2, y1-dx); @@ -310,38 +302,38 @@ double JKQTMathTextBraceNode::draw(QPainter& painter, double x, double y, JKQTMa } else if (closebrace==MTBTTopCorner) { QPainterPath path; const double dx=fabs(xbrace1-xbrace2); - const double y1=y-nodeBaselineHeight+lw/2.0; + const double y1=y-nodesize.baselineHeight+lw/2.0; path.moveTo(xbrace1, y1); path.lineTo(xbrace2, y1); path.lineTo(xbrace2, y1+dx); painter.drawPath(path); } else if (closebrace==MTBTCurlyBracket) { - const QPainterPath path=JKQTMathTextMakeHBracePath(0,0,nodeOverallHeight, bracewidth*paren_fraction, p.widthF()); + const QPainterPath path=JKQTMathTextMakeHBracePath(0,0,nodesize.overallHeight, nodesize.closeBraceWidth*paren_fraction, p.widthF()); painter.save(); auto __finalpaint=JKQTPFinally([&painter]() {painter.restore();}); - painter.translate(xbraceC, y-nodeBaselineHeight+nodeOverallHeight/2.0); + painter.translate(xbraceC, y-nodesize.baselineHeight+nodesize.overallHeight/2.0); painter.rotate(270); QPen plocal=p; plocal.setWidthF(0.0001); painter.fillPath(path, QBrush(currentEv.color)); } else if (closebrace==MTBTFloorBracket) { QPainterPath path; - const double y1=y+(nodeOverallHeight-nodeBaselineHeight)-lw/2.0; - const double y2=y-nodeBaselineHeight; + const double y1=y+(nodesize.overallHeight-nodesize.baselineHeight)-lw/2.0; + const double y2=y-nodesize.baselineHeight; path.moveTo(xbrace1, y1); path.lineTo(xbrace2, y1); path.lineTo(xbrace2, y2); painter.drawPath(path); } else if (closebrace==MTBTCeilBracket) { QPainterPath path; - const double y1=y+(nodeOverallHeight-nodeBaselineHeight); - const double y2=y-nodeBaselineHeight+lw/2.0; + const double y1=y+(nodesize.overallHeight-nodesize.baselineHeight); + const double y2=y-nodesize.baselineHeight+lw/2.0; path.moveTo(xbrace2, y1); path.lineTo(xbrace2, y2); path.lineTo(xbrace1, y2); painter.drawPath(path); } else if (closebrace==MTBTSingleLine) { - const double y1=y+(nodeOverallHeight-nodeBaselineHeight); - const double y2=y-nodeBaselineHeight; + const double y1=y+(nodesize.overallHeight-nodesize.baselineHeight); + const double y2=y-nodesize.baselineHeight; const QLineF l(xbraceC, y1, xbraceC, y2); QPen plocal=p; plocal.setWidthF(plocal.widthF()*absnorm_linewidth_factor); @@ -349,8 +341,8 @@ double JKQTMathTextBraceNode::draw(QPainter& painter, double x, double y, JKQTMa if (l.length()>0) painter.drawLine(l); painter.setPen(p); } else if (closebrace==MTBTDoubleLine) { - const double y1=y+(nodeOverallHeight-nodeBaselineHeight); - const double y2=y-nodeBaselineHeight; + const double y1=y+(nodesize.overallHeight-nodesize.baselineHeight); + const double y2=y-nodesize.baselineHeight; const QLineF l(xbraceC-lw, y1, xbraceC-lw, y2); QPen plocal=p; plocal.setWidthF(plocal.widthF()*absnorm_linewidth_factor); @@ -364,7 +356,7 @@ double JKQTMathTextBraceNode::draw(QPainter& painter, double x, double y, JKQTMa } painter.setPen(pold); if (showClosingBrace) { - xnew=xnew+bracewidth; + xnew=xnew+nodesize.closeBraceWidth; } } @@ -372,7 +364,7 @@ double JKQTMathTextBraceNode::draw(QPainter& painter, double x, double y, JKQTMa return xnew; } -bool JKQTMathTextBraceNode::toHtml(QString &html, JKQTMathTextEnvironment currentEv, JKQTMathTextEnvironment defaultEv) { +bool JKQTMathTextBraceNode::toHtml(QString &html, JKQTMathTextEnvironment currentEv, JKQTMathTextEnvironment defaultEv) const { QString ob; QString cb; if (openbrace==MTBTAngleBracket) ob="⟨"; @@ -419,19 +411,85 @@ JKQTMathTextBraceType JKQTMathTextBraceNode::getClosebrace() const { return this->closebrace; } -void JKQTMathTextBraceNode::getBraceSize(QPainter &painter, JKQTMathTextEnvironment ev, double /*baselineHeight*/, double overallHeight, double &bracewidth, double &braceheight) const -{ - const QFontMetricsF fm(ev.getFont(parentMathText), painter.device()); - const double lw=fm.lineWidth(); - const double dblline_distance=2.0*lw; - braceheight=overallHeight*parentMathText->getBraceFactor(); - bracewidth=lw*5.0; - if (openbrace==MTBTCurlyBracket || closebrace==MTBTCurlyBracket) bracewidth=lw*6.5; - if (openbrace==MTBTParenthesis || closebrace==MTBTParenthesis) bracewidth=lw*6.0; - if (openbrace==MTBTDoubleLine || closebrace==MTBTDoubleLine) bracewidth=dblline_distance+3.0*lw; - if (openbrace==MTBTSingleLine || closebrace==MTBTSingleLine) bracewidth=3.0*lw; - const double overSizeFactor=braceheight/fm.height(); - if (overSizeFactor>1.2) bracewidth=bracewidth*sqrt(overSizeFactor); + +JKQTMathTextBraceNode::NodeSize::NodeSize(): + JKQTMathTextNodeSize(), + openBraceWidth(0.0), + openBraceHeight(0.0), + closeBraceWidth(0.0), + closeBraceHeight(0.0) +{ + } +JKQTMathTextBraceNode::NodeSize::NodeSize(const JKQTMathTextNodeSize &other): + JKQTMathTextNodeSize(other), + openBraceWidth(0.0), + openBraceHeight(0.0), + closeBraceWidth(0.0), + closeBraceHeight(0.0) +{ + +} + +JKQTMathTextBraceNode::NodeSize &JKQTMathTextBraceNode::NodeSize::operator=(const JKQTMathTextNodeSize &other) +{ + JKQTMathTextNodeSize::operator=(other); + openBraceWidth=0.0; + openBraceHeight=0.0; + closeBraceWidth=0.0; + closeBraceHeight=0.0; + return *this; +} + +JKQTMathTextBraceNode::NodeSize &JKQTMathTextBraceNode::NodeSize::operator=(const NodeSize &other) +{ + JKQTMathTextNodeSize::operator=(dynamic_cast(other)); + openBraceWidth=other.openBraceWidth; + openBraceHeight=other.openBraceHeight; + closeBraceWidth=other.closeBraceWidth; + closeBraceHeight=other.closeBraceHeight; + return *this; +} + +JKQTMathTextBraceNode::NodeSize::NodeSize(const NodeSize &other): + JKQTMathTextNodeSize(dynamic_cast(other)), + openBraceWidth(other.openBraceWidth), + openBraceHeight(other.openBraceHeight), + closeBraceWidth(other.closeBraceWidth), + closeBraceHeight(other.closeBraceHeight) +{ + +} + + +void JKQTMathTextBraceNode::calcBraceSizes(NodeSize& out, QPainter &painter, const JKQTMathTextEnvironment &ev, const JKQTMathTextNodeSize &childSize) const +{ + const QFontMetricsF fm(ev.getFont(parentMathText), painter.device()); + const QSizeF openBraceS=calcBraceSize(fm, openbrace, childSize); + const QSizeF closeBraceS=calcBraceSize(fm, closebrace, childSize); + out.openBraceWidth=openBraceS.width(); + out.openBraceHeight=openBraceS.width(); + out.closeBraceWidth=closeBraceS.width(); + out.closeBraceHeight=closeBraceS.width(); +} + +QSizeF JKQTMathTextBraceNode::calcBraceSize(const QFontMetricsF &fm, JKQTMathTextBraceType bracetype, const JKQTMathTextNodeSize &childSize) const +{ + double braceWidth=0.0; + double braceHeight=0.0; + const double lw=fm.lineWidth(); + const double dblline_distance=2.0*lw; + braceHeight=childSize.overallHeight*parentMathText->getBraceFactor(); + braceWidth=lw*5.0; + if (bracetype==MTBTCurlyBracket) braceWidth=lw*6.5; + if (bracetype==MTBTParenthesis) braceWidth=lw*6.0; + if (bracetype==MTBTDoubleLine) braceWidth=dblline_distance+3.0*lw; + if (bracetype==MTBTSingleLine) braceWidth=3.0*lw; + + const double overSizeFactor=braceHeight/fm.height(); + if (overSizeFactor>1.2) braceWidth=braceWidth*sqrt(overSizeFactor); + + return QSizeF(braceWidth, braceHeight); +} diff --git a/lib/jkqtmathtext/nodes/jkqtmathtextbracenode.h b/lib/jkqtmathtext/nodes/jkqtmathtextbracenode.h index aba8346fc4..17d4126981 100644 --- a/lib/jkqtmathtext/nodes/jkqtmathtextbracenode.h +++ b/lib/jkqtmathtext/nodes/jkqtmathtextbracenode.h @@ -48,9 +48,9 @@ class JKQTMATHTEXT_LIB_EXPORT JKQTMathTextBraceNode: public JKQTMathTextSingleCh JKQTMathTextBraceNode(JKQTMathText* parent, JKQTMathTextBraceType openbrace, JKQTMathTextBraceType closebrace, JKQTMathTextNode* child); virtual ~JKQTMathTextBraceNode() override; /** \copydoc JKQTMathTextNode::draw() */ - virtual double draw(QPainter& painter, double x, double y, JKQTMathTextEnvironment currentEv) override; + virtual double draw(QPainter& painter, double x, double y, JKQTMathTextEnvironment currentEv) const override; /** \copydoc JKQTMathTextNode::toHtml() */ - virtual bool toHtml(QString& html, JKQTMathTextEnvironment currentEv, JKQTMathTextEnvironment defaultEv) override; + virtual bool toHtml(QString& html, JKQTMathTextEnvironment currentEv, JKQTMathTextEnvironment defaultEv) const override; /** \copydoc JKQTMathTextNode::getTypeName() */ virtual QString getTypeName() const override; /** \copydoc openbrace */ @@ -58,19 +58,50 @@ class JKQTMATHTEXT_LIB_EXPORT JKQTMathTextBraceNode: public JKQTMathTextSingleCh /** \copydoc closebrace */ JKQTMathTextBraceType getClosebrace() const; protected: + /** \brief defines the size of the node (JKQTMathTextNodeSize) and additional information */ + struct NodeSize: public JKQTMathTextNodeSize { + NodeSize(); + NodeSize(const NodeSize& other); + NodeSize(const JKQTMathTextNodeSize& other); + NodeSize& operator=(const NodeSize& other); + NodeSize& operator=(const JKQTMathTextNodeSize& other); + /** \brief width of the opening brace */ + double openBraceWidth; + /** \brief height of the opening brace */ + double openBraceHeight; + /** \brief width of the closing brace */ + double closeBraceWidth; + /** \brief height of the closing brace */ + double closeBraceHeight; + }; /** \copydoc JKQTMathTextNode::getSizeInternal() * * \note This function internally calls getSizeInternalAndBrace() and returns part of its results. */ - virtual void getSizeInternal(QPainter& painter, JKQTMathTextEnvironment currentEv, double& width, double& baselineHeight, double& overallHeight, double& strikeoutPos) override; + virtual JKQTMathTextNodeSize getSizeInternal(QPainter& painter, JKQTMathTextEnvironment currentEv) const override; /** calculates the size of this node (also returned by getSizeInternal() ) and of the brace */ - void getSizeInternalAndBrace(QPainter& painter, JKQTMathTextEnvironment currentEv, double& width, double& baselineHeight, double& overallHeight, double& strikeoutPos, double& bracewidth, double&braceheight); + NodeSize getSizeInternalAndBrace(QPainter& painter, JKQTMathTextEnvironment currentEv) const; /**\brief opening brace */ JKQTMathTextBraceType openbrace; /**\brief closing brace */ JKQTMathTextBraceType closebrace; - /** \brief calculate the width of the brace */ - void getBraceSize(QPainter& painter, JKQTMathTextEnvironment currentEv, double baselineHeight, double overallHeight, double& bracewidth, double& braceheight) const; + /** \brief calculate the width of the braces, fills NodeSize::openbracewidth/NodeSize::closebracewidth and NodeSize::braceheight/NodeSize::closeheight in \a out, based on \a childSize + * + * \param[out] out this function fills NodeSize::openbracewidth/NodeSize::closebracewidth and NodeSize::braceheight/NodeSize::closeheight in \a out + * \param painter a QPainter used for size-calculation/drawing + * \param currentEv font environment + * \param childSize size of the child node surrounded by the node + */ + void calcBraceSizes(NodeSize& out, QPainter& painter, const JKQTMathTextEnvironment& currentEv, const JKQTMathTextNodeSize &childSize) const; + /** \brief calculate the width and height of a brace, based on \a childSize + * + * \param fm QFontMetricsF object describing the font of the current environment + * \param bracetype brace type + * \param childSize size of the child node surrounded by the node + * + * \return width and hieght of the brace + */ + QSizeF calcBraceSize(const QFontMetricsF& fm, JKQTMathTextBraceType bracetype, const JKQTMathTextNodeSize &childSize) const; }; #endif // JKQTMATHTEXTBRACENODE_H diff --git a/lib/jkqtmathtext/nodes/jkqtmathtextdecoratednode.cpp b/lib/jkqtmathtext/nodes/jkqtmathtextdecoratednode.cpp index 0f412dd4d1..f6ce642154 100644 --- a/lib/jkqtmathtext/nodes/jkqtmathtextdecoratednode.cpp +++ b/lib/jkqtmathtext/nodes/jkqtmathtextdecoratednode.cpp @@ -129,28 +129,28 @@ JKQTMathTextDecoratedNode::JKQTMathTextDecoratedNode(JKQTMathText* _parent, Deco JKQTMathTextDecoratedNode::~JKQTMathTextDecoratedNode() { } -void JKQTMathTextDecoratedNode::getSizeInternal(QPainter& painter, JKQTMathTextEnvironment currentEv, double& width, double& baselineHeight, double& overallHeight, double& strikeoutPos) { +JKQTMathTextNodeSize JKQTMathTextDecoratedNode::getSizeInternal(QPainter& painter, JKQTMathTextEnvironment currentEv) const { + JKQTMathTextNodeSize s; JKQTMathTextEnvironment ev=currentEv; - double cwidth=0, cbaselineHeight=0, coverallHeight=0, cstrikeoutPos=0; - getChild()->getSize(painter, ev, cwidth, cbaselineHeight, coverallHeight, cstrikeoutPos); - const double cDescent=coverallHeight-cbaselineHeight; + JKQTMathTextNodeSize cs=getChild()->getSize(painter, ev); + const double cDescent=cs.getDescent(); const QFont font=ev.getFont(parentMathText); const QFontMetricsF fm(font, painter.device()); const double decoSeparation=parentMathText->getDecorationSeparationFactor()*fm.ascent(); const double deco_height=parentMathText->getDecorationHeightFactor()*fm.ascent(); - const double deco_ypos=cbaselineHeight+decoSeparation; + const double deco_ypos=cs.baselineHeight+decoSeparation; const double decoAboveAscent_ypos=fm.ascent()+decoSeparation; const double decobelow_ypos=cDescent+decoSeparation; - const double italic_xcorrection=getNonItalicXCorretion(painter, cwidth, ev, getChild()); + const double italic_xcorrection=getNonItalicXCorretion(painter, cs.width, ev, getChild()); const double deco_miniwidth=((decoration==MTDtilde||decoration==MTDbreve)?fm.boundingRect("~").width():fm.boundingRect("^").width())-italic_xcorrection; const double linewidth=qMax(parentMathText->ABS_MIN_LINEWIDTH, fm.lineWidth()); - double descent=coverallHeight-cbaselineHeight; - double ascent=cbaselineHeight; + double descent=cs.getDescent(); + double ascent=cs.baselineHeight; if (decoration==MTDbar) { - ascent=std::max(baselineHeight+decoSeparation, decoAboveAscent_ypos)+linewidth/2.0; + ascent=std::max(cs.baselineHeight+decoSeparation, decoAboveAscent_ypos)+linewidth/2.0; } else if (decoration==MTDunderline || decoration==MTDunderlineDashed || decoration==MTDunderlineDotted) { descent=std::max(decobelow_ypos, cDescent)+linewidth/2.0; } else if (decoration==MTDdoubleunderline) { @@ -160,10 +160,11 @@ void JKQTMathTextDecoratedNode::getSizeInternal(QPainter& painter, JKQTMathTextE } else { ascent=deco_ypos+deco_height; } - overallHeight=ascent+descent; - baselineHeight=ascent; - strikeoutPos=cstrikeoutPos; - width=std::max(deco_miniwidth,cwidth); + s.overallHeight=ascent+descent; + s.baselineHeight=ascent; + s.strikeoutPos=cs.strikeoutPos; + s.width=std::max(deco_miniwidth,cs.width); + return s; } QHash JKQTMathTextDecoratedNode::instructions; @@ -224,12 +225,11 @@ void JKQTMathTextDecoratedNode::fillInstructions() } -double JKQTMathTextDecoratedNode::draw(QPainter& painter, double x, double y, JKQTMathTextEnvironment currentEv) { +double JKQTMathTextDecoratedNode::draw(QPainter& painter, double x, double y, JKQTMathTextEnvironment currentEv) const { doDrawBoxes(painter, x, y, currentEv); JKQTMathTextEnvironment ev=currentEv; - double cwidth=0, cbaselineHeight=0, coverallHeight=0, cstrikeoutPos=0; - getChild()->getSize(painter, ev, cwidth, cbaselineHeight, coverallHeight, cstrikeoutPos); - const double cDescent=coverallHeight-cbaselineHeight; + auto cs=getChild()->getSize(painter, ev); + const double cDescent=cs.overallHeight-cs.baselineHeight; const QFont font=ev.getFont(parentMathText); const QFontMetricsF fm(font, painter.device()); const double width_X=fm.boundingRect("X").width(); @@ -240,24 +240,24 @@ double JKQTMathTextDecoratedNode::draw(QPainter& painter, double x, double y, JK const double linewidthArrow=linewidth*0.65; const double deco_height=parentMathText->getDecorationHeightFactor()*fm.ascent(); const double decoAboveAscent_ypos=y-fm.ascent()-decoSeparation; - const double strike_ypos=y-cbaselineHeight/2.0; + const double strike_ypos=y-cs.baselineHeight/2.0; const double decobelow_ypos=y+cDescent+decoSeparation; - const double italic_xcorrection=getNonItalicXCorretion(painter, cwidth, ev, getChild()); + const double italic_xcorrection=getNonItalicXCorretion(painter, cs.width, ev, getChild()); const double deco_xoffset=parentMathText->getDecorationWidthReductionXFactor()*width_X/2.0; - const double deco_width=std::max(width_x*0.5,cwidth-2.0*deco_xoffset-italic_xcorrection); + const double deco_width=std::max(width_x*0.5,cs.width-2.0*deco_xoffset-italic_xcorrection); const double deco_vecwidth=width_x*0.18; const double deco_vecheight=deco_height*0.25; const double deco_accentwidth=deco_height/4.0; const double deco_miniwidth=((decoration==MTDtilde||decoration==MTDbreve)?fm.boundingRect("j").width():fm.boundingRect("^").width())-italic_xcorrection; - const double decotop_xcenter=x+italic_xcorrection+(cwidth-italic_xcorrection)/2.0; + const double decotop_xcenter=x+italic_xcorrection+(cs.width-italic_xcorrection)/2.0; const double decotop_xstart=decotop_xcenter-deco_width/2.0+linewidth/2.0; const double decotop_xend=decotop_xcenter+deco_width/2.0-linewidth/2.0; const double decobot_xstart=x+linewidth/2.0; - const double decobot_xend=x+cwidth-italic_xcorrection-linewidth/2.0; + const double decobot_xend=x+cs.width-italic_xcorrection-linewidth/2.0; //const double decobot_xcenter=(decobot_xstart+decobot_xend)/2.0; - const double deco_ytopbot=y-cbaselineHeight-decoSeparation-linewidth/2.0; - const double deco_ytoptop=y-cbaselineHeight-decoSeparation-deco_height+linewidth/2.0; - const double deco_ytopcenter=y-cbaselineHeight-decoSeparation-deco_height/2.0; + const double deco_ytopbot=y-cs.baselineHeight-decoSeparation-linewidth/2.0; + const double deco_ytoptop=y-cs.baselineHeight-decoSeparation-deco_height+linewidth/2.0; + const double deco_ytopcenter=y-cs.baselineHeight-decoSeparation-deco_height/2.0; @@ -529,7 +529,7 @@ double JKQTMathTextDecoratedNode::draw(QPainter& painter, double x, double y, JK return xnew; } -bool JKQTMathTextDecoratedNode::toHtml(QString &/*html*/, JKQTMathTextEnvironment /*currentEv*/, JKQTMathTextEnvironment /*defaultEv*/) { +bool JKQTMathTextDecoratedNode::toHtml(QString &/*html*/, JKQTMathTextEnvironment /*currentEv*/, JKQTMathTextEnvironment /*defaultEv*/) const { //QString f; //JKQTMathTextEnvironment ev=currentEv; diff --git a/lib/jkqtmathtext/nodes/jkqtmathtextdecoratednode.h b/lib/jkqtmathtext/nodes/jkqtmathtextdecoratednode.h index 2242c2fdd4..cf6ea52086 100644 --- a/lib/jkqtmathtext/nodes/jkqtmathtextdecoratednode.h +++ b/lib/jkqtmathtext/nodes/jkqtmathtextdecoratednode.h @@ -91,16 +91,16 @@ class JKQTMATHTEXT_LIB_EXPORT JKQTMathTextDecoratedNode: public JKQTMathTextSing JKQTMathTextDecoratedNode(JKQTMathText* parent, DecorationType decoration, JKQTMathTextNode* child); virtual ~JKQTMathTextDecoratedNode() override; /** \copydoc JKQTMathTextNode::draw() */ - virtual double draw(QPainter& painter, double x, double y, JKQTMathTextEnvironment currentEv) override; + virtual double draw(QPainter& painter, double x, double y, JKQTMathTextEnvironment currentEv) const override; /** \copydoc JKQTMathTextNode::toHtml() */ - virtual bool toHtml(QString& html, JKQTMathTextEnvironment currentEv, JKQTMathTextEnvironment defaultEv) override; + virtual bool toHtml(QString& html, JKQTMathTextEnvironment currentEv, JKQTMathTextEnvironment defaultEv) const override; /** \copydoc JKQTMathTextNode::getTypeName() */ virtual QString getTypeName() const override ; /** \copydoc decoration */ DecorationType getDecoration() const; protected: /** \copydoc JKQTMathTextNode::getSizeInternal() */ - virtual void getSizeInternal(QPainter& painter, JKQTMathTextEnvironment currentEv, double& width, double& baselineHeight, double& overallHeight, double& strikeoutPos) override; + virtual JKQTMathTextNodeSize getSizeInternal(QPainter& painter, JKQTMathTextEnvironment currentEv) const override; /** \brief type of decoration that is added to the child node */ DecorationType decoration; /** \brief lists all supported instructions */ diff --git a/lib/jkqtmathtext/nodes/jkqtmathtextfracnode.cpp b/lib/jkqtmathtext/nodes/jkqtmathtextfracnode.cpp index 442b7a06af..be45c3e203 100644 --- a/lib/jkqtmathtext/nodes/jkqtmathtextfracnode.cpp +++ b/lib/jkqtmathtext/nodes/jkqtmathtextfracnode.cpp @@ -123,7 +123,7 @@ QString JKQTMathTextFracNode::getTypeName() const return "MTfracNode"; } -void JKQTMathTextFracNode::getSizeInternal(QPainter& painter, JKQTMathTextEnvironment currentEv, double& width, double& baselineHeight, double& overallHeight, double& strikeoutPos) { +JKQTMathTextNodeSize JKQTMathTextFracNode::getSizeInternal(QPainter& painter, JKQTMathTextEnvironment currentEv) const { const QFont f=currentEv.getFont(parentMathText); const QFontMetricsF fm(f, painter.device()); JKQTMathTextEnvironment ev1=currentEv; @@ -156,69 +156,68 @@ void JKQTMathTextFracNode::getSizeInternal(QPainter& painter, JKQTMathTextEnviro const QRectF AeTBR2=fmev2.tightBoundingRect("A"); const double asc2=AeTBR2.height(); - double width1=0, baselineHeight1=0, overallHeight1=0, strikeoutPos1=0; - double width2=0, baselineHeight2=0, overallHeight2=0, strikeoutPos2=0; - child1->getSize(painter, ev1, width1, baselineHeight1, overallHeight1, strikeoutPos1); - child2->getSize(painter, ev2, width2, baselineHeight2, overallHeight2, strikeoutPos2); - if (asc1>baselineHeight1) { - const double oldDescent=overallHeight1-baselineHeight1; - baselineHeight1=asc1; - overallHeight1=baselineHeight1+oldDescent; + JKQTMathTextNodeSize size1=child1->getSize(painter, ev1); + JKQTMathTextNodeSize size2=child2->getSize(painter, ev2); + if (asc1>size1.baselineHeight) { + const double oldDescent=size1.overallHeight-size1.baselineHeight; + size1.baselineHeight=asc1; + size1.overallHeight=size1.baselineHeight+oldDescent; } - if (asc2>baselineHeight2) { - const double oldDescent=overallHeight2-baselineHeight2; - baselineHeight2=asc2; - overallHeight2=baselineHeight2+oldDescent; + if (asc2>size2.baselineHeight) { + const double oldDescent=size2.overallHeight-size2.baselineHeight; + size2.baselineHeight=asc2; + size2.overallHeight=size2.baselineHeight+oldDescent; } - const double descent1=overallHeight1-baselineHeight1; + const double descent1=size1.overallHeight-size1.baselineHeight; - - overallHeight=0; - baselineHeight=0; - width=0; + JKQTMathTextNodeSize size; + size.overallHeight=0; + size.baselineHeight=0; + size.width=0; if (mode==JKQTMathTextFracNode::MTFMfrac || mode==JKQTMathTextFracNode::MTFMdfrac || mode==JKQTMathTextFracNode::MTFMtfrac || mode==JKQTMathTextFracNode::MTFMstackrel) { const double top_ascent=line_ascent+xheight*parentMathText->getFracShiftFactor(); const double bot_ascent=line_ascent-xheight*parentMathText->getFracShiftFactor(); - const double newascent=overallHeight1+top_ascent; - const double newdescent=overallHeight2-bot_ascent; - width=qMax(width1, width2); - if (mode!=JKQTMathTextFracNode::MTFMstackrel) width+=xwidth/2.0; - strikeoutPos=line_ascent; + const double newascent=size1.overallHeight+top_ascent; + const double newdescent=size2.overallHeight-bot_ascent; + size.width=qMax(size1.width, size2.width); + if (mode!=JKQTMathTextFracNode::MTFMstackrel) size.width+=xwidth/2.0; + size.strikeoutPos=line_ascent; - overallHeight=newascent+newdescent; - baselineHeight=newascent; + size.overallHeight=newascent+newdescent; + size.baselineHeight=newascent; } else if (mode==JKQTMathTextFracNode::MTFMstfrac || mode==JKQTMathTextFracNode::MTFMsfrac) { const double top_ascent=line_ascent; - const double newascent=overallHeight1+top_ascent; - const double newdescent=qMax(overallHeight2-baselineHeight2, qheight-xheight); - width=width1+width2+xwidth*0.666; - strikeoutPos=line_ascent; + const double newascent=size1.overallHeight+top_ascent; + const double newdescent=qMax(size2.overallHeight-size2.baselineHeight, qheight-xheight); + size.width=size1.width+size2.width+xwidth*0.666; + size.strikeoutPos=line_ascent; - overallHeight=newascent+newdescent; - baselineHeight=newascent; + size.overallHeight=newascent+newdescent; + size.baselineHeight=newascent; } else if (mode==JKQTMathTextFracNode::MTFMunderbrace || mode==JKQTMathTextFracNode::MTFMunderbracket) { - const double newdescent=descent1+overallHeight2+braceheight+2.0*braceseparation; - overallHeight=newdescent+baselineHeight1; - baselineHeight=baselineHeight1; - width=qMax(width1, width2)+xwidth; - strikeoutPos=line_ascent; + const double newdescent=descent1+size2.overallHeight+braceheight+2.0*braceseparation; + size.overallHeight=newdescent+size1.baselineHeight; + size.baselineHeight=size1.baselineHeight; + size.width=qMax(size1.width, size2.width)+xwidth; + size.strikeoutPos=line_ascent; } else if (mode==JKQTMathTextFracNode::MTFMoverbrace || mode==JKQTMathTextFracNode::MTFMoverbracket) { - overallHeight=overallHeight1+overallHeight2+braceheight+2.0*braceseparation; - baselineHeight=baselineHeight1+overallHeight2+braceheight+2.0*braceseparation; - width=qMax(width1, width2)+xwidth; - strikeoutPos=line_ascent; + size.overallHeight=size1.overallHeight+size2.overallHeight+braceheight+2.0*braceseparation; + size.baselineHeight=size1.baselineHeight+size2.overallHeight+braceheight+2.0*braceseparation; + size.width=qMax(size1.width, size2.width)+xwidth; + size.strikeoutPos=line_ascent; } else if (mode==JKQTMathTextFracNode::MTFMunderset) { - overallHeight=overallHeight1+overallHeight2+xheight/6.0; - baselineHeight=baselineHeight1; - width=qMax(width1, width2)+xwidth; - strikeoutPos=line_ascent; + size.overallHeight=size1.overallHeight+size2.overallHeight+xheight/6.0; + size.baselineHeight=size1.baselineHeight; + size.width=qMax(size1.width, size2.width)+xwidth; + size.strikeoutPos=line_ascent; } else if (mode==JKQTMathTextFracNode::MTFMoverset) { - overallHeight=overallHeight1+overallHeight2+xheight/6.0; - baselineHeight=baselineHeight1+overallHeight2+xheight/6.0; - width=qMax(width1, width2)+xwidth; - strikeoutPos=line_ascent; + size.overallHeight=size1.overallHeight+size1.overallHeight+xheight/6.0; + size.baselineHeight=size1.baselineHeight+size2.overallHeight+xheight/6.0; + size.width=qMax(size1.width, size2.width)+xwidth; + size.strikeoutPos=line_ascent; } + return size; } int JKQTMathTextFracNode::getNestingLevel(bool /*sameType*/) const @@ -240,7 +239,7 @@ double JKQTMathTextFracNode::getFracScalingFactor() const return parentMathText->getFracFactor(); } -double JKQTMathTextFracNode::draw(QPainter& painter, double x, double y, JKQTMathTextEnvironment currentEv) { +double JKQTMathTextFracNode::draw(QPainter& painter, double x, double y, JKQTMathTextEnvironment currentEv) const { doDrawBoxes(painter, x, y, currentEv); const QFont f=currentEv.getFont(parentMathText); const QFontMetricsF fm(f, painter.device()); @@ -276,31 +275,29 @@ double JKQTMathTextFracNode::draw(QPainter& painter, double x, double y, JKQTMat const QRectF AeTBR2=fmev2.tightBoundingRect("A"); const double asc2=AeTBR2.height(); - double width1=0, baselineHeight1=0, overallHeight1=0;//, strikeoutPos1=0; - double width2=0, baselineHeight2=0, overallHeight2=0, strikeoutPos=0; - child1->getSize(painter, ev1, width1, baselineHeight1, overallHeight1, strikeoutPos); - child2->getSize(painter, ev2, width2, baselineHeight2, overallHeight2, strikeoutPos); - if (asc1>baselineHeight1) { - const double oldDescent=overallHeight1-baselineHeight1; - baselineHeight1=asc1; - overallHeight1=baselineHeight1+oldDescent; + JKQTMathTextNodeSize size1=child1->getSize(painter, ev1); + JKQTMathTextNodeSize size2=child2->getSize(painter, ev2); + if (asc1>size1.baselineHeight) { + const double oldDescent=size1.overallHeight-size1.baselineHeight; + size1.baselineHeight=asc1; + size1.overallHeight=size1.baselineHeight+oldDescent; } - if (asc2>baselineHeight2) { - const double oldDescent=overallHeight2-baselineHeight2; - baselineHeight2=asc2; - overallHeight2=baselineHeight2+oldDescent; + if (asc2>size2.baselineHeight) { + const double oldDescent=size2.overallHeight-size2.baselineHeight; + size2.baselineHeight=asc2; + size2.overallHeight=size2.baselineHeight+oldDescent; } - const double ascent1=baselineHeight1; - const double descent1=overallHeight1-baselineHeight1; - const double ascent2=baselineHeight2; - const double descent2=overallHeight2-baselineHeight2; + const double ascent1=size1.baselineHeight; + const double descent1=size1.overallHeight-size1.baselineHeight; + const double ascent2=size2.baselineHeight; + const double descent2=size2.overallHeight-size2.baselineHeight; const double yline=y-xheight*0.5; - //double overallHeight=overallHeight1+overallHeight2+xh; - //double baselineHeight=3.0*xh/2.0+overallHeight1; - const double maxWidth=qMax(width1, width2); + //double overallHeight=size1.overallHeight+size2.overallHeight+xh; + //double baselineHeight=3.0*xh/2.0+size1.overallHeight; + const double maxWidth=qMax(size1.width, size2.width); double deltaWidth=0; QPen p=painter.pen(); @@ -313,32 +310,32 @@ double JKQTMathTextFracNode::draw(QPainter& painter, double x, double y, JKQTMat deltaWidth=xwidth/2.0; const QLineF l(x+p.widthF()*2.0, yline, x+maxWidth+deltaWidth-p.widthF()*2.0, yline); if (l.length()>0) painter.drawLine(l); - child1->draw(painter, x+deltaWidth/2.0+(maxWidth-width1)/2.0, yline-xheight*(parentMathText->getFracShiftFactor())-descent1, ev1); - child2->draw(painter, x+deltaWidth/2.0+(maxWidth-width2)/2.0, yline+xheight*(parentMathText->getFracShiftFactor())+ascent2, ev2); + child1->draw(painter, x+deltaWidth/2.0+(maxWidth-size1.width)/2.0, yline-xheight*(parentMathText->getFracShiftFactor())-descent1, ev1); + child2->draw(painter, x+deltaWidth/2.0+(maxWidth-size2.width)/2.0, yline+xheight*(parentMathText->getFracShiftFactor())+ascent2, ev2); } else if (mode==JKQTMathTextFracNode::MTFMstackrel) { - child1->draw(painter, x+(maxWidth-width1)/2.0, yline-xheight*(parentMathText->getFracShiftFactor())-descent1, ev1); - child2->draw(painter, x+(maxWidth-width2)/2.0, yline+xheight*(parentMathText->getFracShiftFactor())+ascent2, ev2); + child1->draw(painter, x+(maxWidth-size1.width)/2.0, yline-xheight*(parentMathText->getFracShiftFactor())-descent1, ev1); + child2->draw(painter, x+(maxWidth-size2.width)/2.0, yline+xheight*(parentMathText->getFracShiftFactor())+ascent2, ev2); } else if (mode==JKQTMathTextFracNode::MTFMstfrac || mode==JKQTMathTextFracNode::MTFMsfrac) { deltaWidth=xwidth*0.666; child1->draw(painter, x, yline, ev1); - child2->draw(painter, x+width1+deltaWidth, y, ev2); - const QLineF l(x+width1+deltaWidth, y-Mheight, x+width1, y+(qheight-xheight)); + child2->draw(painter, x+size1.width+deltaWidth, y, ev2); + const QLineF l(x+size1.width+deltaWidth, y-Mheight, x+size1.width, y+(qheight-xheight)); if (l.length()>0) painter.drawLine(l); } else if (mode==JKQTMathTextFracNode::MTFMunderset) { - child1->draw(painter, x+xwidth/2.0+(maxWidth-width1)/2.0, y, ev1); - child2->draw(painter, x+xwidth/2.0+(maxWidth-width2)/2.0, y+descent1+xheight/6.0+ascent2, ev2); + child1->draw(painter, x+xwidth/2.0+(maxWidth-size1.width)/2.0, y, ev1); + child2->draw(painter, x+xwidth/2.0+(maxWidth-size2.width)/2.0, y+descent1+xheight/6.0+ascent2, ev2); deltaWidth=xwidth; } else if (mode==JKQTMathTextFracNode::MTFMunderbrace) { const double ybrace=y+descent1+braceseparation+braceheight/2.0; const double ybot=y+descent1+2.0*braceseparation+braceheight+ascent2; { - const QPainterPath path=JKQTMathTextMakeHBracePath(x+xwidth/2.0+(width1)/2.0, ybrace, maxWidth, braceheight, p.width()); + const QPainterPath path=JKQTMathTextMakeHBracePath(x+xwidth/2.0+(size1.width)/2.0, ybrace, maxWidth, braceheight, p.width()); QPen plocal=p; plocal.setWidthF(0.0001); painter.fillPath(path, QBrush(ev1.color)); } - child1->draw(painter, x+xwidth/2.0+(maxWidth-width1)/2.0, y, ev1); - child2->draw(painter, x+xwidth/2.0+(maxWidth-width2)/2.0, ybot, ev2); + child1->draw(painter, x+xwidth/2.0+(maxWidth-size1.width)/2.0, y, ev1); + child2->draw(painter, x+xwidth/2.0+(maxWidth-size2.width)/2.0, ybot, ev2); deltaWidth=xwidth; } else if (mode==JKQTMathTextFracNode::MTFMunderbracket) { const double ybrace=y+descent1+braceseparation+braceheight/2.0; @@ -355,19 +352,19 @@ double JKQTMathTextFracNode::draw(QPainter& painter, double x, double y, JKQTMat path.lineTo(x2, y1); painter.drawPath(path); } - child1->draw(painter, x+xwidth/2.0+(maxWidth-width1)/2.0, y, ev1); - child2->draw(painter, x+xwidth/2.0+(maxWidth-width2)/2.0, ybot, ev2); + child1->draw(painter, x+xwidth/2.0+(maxWidth-size1.width)/2.0, y, ev1); + child2->draw(painter, x+xwidth/2.0+(maxWidth-size2.width)/2.0, ybot, ev2); deltaWidth=xwidth; } else if (mode==JKQTMathTextFracNode::MTFMoverset) { - child1->draw(painter, x+xwidth/2.0+(maxWidth-width1)/2.0, y, ev1); - child2->draw(painter, x+xwidth/2.0+(maxWidth-width2)/2.0, y-ascent1-xheight/6.0-descent2, ev2); + child1->draw(painter, x+xwidth/2.0+(maxWidth-size1.width)/2.0, y, ev1); + child2->draw(painter, x+xwidth/2.0+(maxWidth-size2.width)/2.0, y-ascent1-xheight/6.0-descent2, ev2); deltaWidth=xwidth; } else if (mode==JKQTMathTextFracNode::MTFMoverbrace) { const double ybrace=y-ascent1-braceheight/2.0-braceseparation; const double ytop=y-ascent1-2.0*braceseparation-braceheight-descent2; { painter.save(); auto __finalpaintinner=JKQTPFinally([&painter]() {painter.restore();}); - painter.translate(x+xwidth/2.0+(width1)/2.0, ybrace); + painter.translate(x+xwidth/2.0+(size1.width)/2.0, ybrace); painter.rotate(180); const QPainterPath path=JKQTMathTextMakeHBracePath(0,0, maxWidth, braceheight, p.widthF()); QPen plocal=p; @@ -375,8 +372,8 @@ double JKQTMathTextFracNode::draw(QPainter& painter, double x, double y, JKQTMat painter.fillPath(path, QBrush(ev1.color)); } - child1->draw(painter, x+xwidth/2.0+(maxWidth-width1)/2.0, y, ev1); - child2->draw(painter, x+xwidth/2.0+(maxWidth-width2)/2.0, ytop, ev2); + child1->draw(painter, x+xwidth/2.0+(maxWidth-size1.width)/2.0, y, ev1); + child2->draw(painter, x+xwidth/2.0+(maxWidth-size2.width)/2.0, ytop, ev2); deltaWidth=xwidth; } else if (mode==JKQTMathTextFracNode::MTFMoverbracket) { const double ybrace=y-ascent1-braceheight/2.0-braceseparation; @@ -393,22 +390,21 @@ double JKQTMathTextFracNode::draw(QPainter& painter, double x, double y, JKQTMat path.lineTo(x2, y1); painter.drawPath(path); } - child1->draw(painter, x+xwidth/2.0+(maxWidth-width1)/2.0, y, ev1); - child2->draw(painter, x+xwidth/2.0+(maxWidth-width2)/2.0, ytop, ev2); + child1->draw(painter, x+xwidth/2.0+(maxWidth-size1.width)/2.0, y, ev1); + child2->draw(painter, x+xwidth/2.0+(maxWidth-size2.width)/2.0, ytop, ev2); deltaWidth=xwidth; } - if (mode==JKQTMathTextFracNode::MTFMstfrac || mode==JKQTMathTextFracNode::MTFMsfrac) return x+width1+width2+deltaWidth; + if (mode==JKQTMathTextFracNode::MTFMstfrac || mode==JKQTMathTextFracNode::MTFMsfrac) return x+size1.width+size2.width+deltaWidth; else return x+maxWidth+deltaWidth; } -bool JKQTMathTextFracNode::toHtml(QString &/*html*/, JKQTMathTextEnvironment /*currentEv*/, JKQTMathTextEnvironment /*defaultEv*/) { +bool JKQTMathTextFracNode::toHtml(QString &/*html*/, JKQTMathTextEnvironment /*currentEv*/, JKQTMathTextEnvironment /*defaultEv*/) const { bool ok=false; - return ok; } diff --git a/lib/jkqtmathtext/nodes/jkqtmathtextfracnode.h b/lib/jkqtmathtext/nodes/jkqtmathtextfracnode.h index d1708eb489..aff8c56c47 100644 --- a/lib/jkqtmathtext/nodes/jkqtmathtextfracnode.h +++ b/lib/jkqtmathtext/nodes/jkqtmathtextfracnode.h @@ -83,9 +83,9 @@ class JKQTMATHTEXT_LIB_EXPORT JKQTMathTextFracNode: public JKQTMathTextDualChild /** \copydoc JKQTMathTextNode::getTypeName() */ virtual QString getTypeName() const override; /** \copydoc JKQTMathTextNode::draw() */ - virtual double draw(QPainter& painter, double x, double y, JKQTMathTextEnvironment currentEv) override; + virtual double draw(QPainter& painter, double x, double y, JKQTMathTextEnvironment currentEv) const override; /** \copydoc JKQTMathTextNode::toHtml() */ - virtual bool toHtml(QString& html, JKQTMathTextEnvironment currentEv, JKQTMathTextEnvironment defaultEv) override; + virtual bool toHtml(QString& html, JKQTMathTextEnvironment currentEv, JKQTMathTextEnvironment defaultEv) const override; /** \copydoc mode */ JKQTMathTextFracNode::FracType getMode() const; protected: @@ -94,7 +94,7 @@ class JKQTMATHTEXT_LIB_EXPORT JKQTMathTextFracNode: public JKQTMathTextDualChild /** \brief fills instructions */ static void fillInstructions(); /** \copydoc JKQTMathTextNode::getSizeInternal() */ - virtual void getSizeInternal(QPainter& painter, JKQTMathTextEnvironment currentEv, double& width, double& baselineHeight, double& overallHeight, double& strikeoutPos) override; + virtual JKQTMathTextNodeSize getSizeInternal(QPainter& painter, JKQTMathTextEnvironment currentEv) const override; /** \brief actual display type of fraction object */ JKQTMathTextFracNode::FracType mode; /** \brief returns the nesting level of the node (of same type of \a sameType \c ==true) */ diff --git a/lib/jkqtmathtext/nodes/jkqtmathtextinstructionnode.cpp b/lib/jkqtmathtext/nodes/jkqtmathtextinstructionnode.cpp index 45ed2eb81d..1503241810 100644 --- a/lib/jkqtmathtext/nodes/jkqtmathtextinstructionnode.cpp +++ b/lib/jkqtmathtext/nodes/jkqtmathtextinstructionnode.cpp @@ -78,7 +78,7 @@ QString JKQTMathTextSimpleInstructionNode::getTypeName() const return QLatin1String("JKQTMathTextSimpleInstructionNode(")+instructionName+")"; } -double JKQTMathTextSimpleInstructionNode::draw(QPainter &painter, double x, double y, JKQTMathTextEnvironment currentEv) +double JKQTMathTextSimpleInstructionNode::draw(QPainter &painter, double x, double y, JKQTMathTextEnvironment currentEv) const { doDrawBoxes(painter, x, y, currentEv); fillInstructions(); @@ -93,7 +93,7 @@ double JKQTMathTextSimpleInstructionNode::draw(QPainter &painter, double x, doub return x+bb.width(); } -bool JKQTMathTextSimpleInstructionNode::toHtml(QString &html, JKQTMathTextEnvironment currentEv, JKQTMathTextEnvironment defaultEv) +bool JKQTMathTextSimpleInstructionNode::toHtml(QString &html, JKQTMathTextEnvironment currentEv, JKQTMathTextEnvironment defaultEv) const { fillInstructions(); const QString txt=executeInstruction(); @@ -124,7 +124,7 @@ size_t JKQTMathTextSimpleInstructionNode::countParametersOfInstruction(const QSt return 0; } -void JKQTMathTextSimpleInstructionNode::getSizeInternal(QPainter &painter, JKQTMathTextEnvironment currentEv, double &width, double &baselineHeight, double &overallHeight, double &strikeoutPos) +JKQTMathTextNodeSize JKQTMathTextSimpleInstructionNode::getSizeInternal(QPainter &painter, JKQTMathTextEnvironment currentEv) const { fillInstructions(); QFont f=currentEv.getFont(parentMathText); @@ -132,10 +132,12 @@ void JKQTMathTextSimpleInstructionNode::getSizeInternal(QPainter &painter, JKQTM const QFontMetricsF fm(f); const QString txt=executeInstruction(); const QRectF bb=fm.boundingRect(txt); - width=bb.width(); - baselineHeight=-bb.y(); - overallHeight=bb.height(); - strikeoutPos=fm.strikeOutPos(); + JKQTMathTextNodeSize s; + s.width=bb.width(); + s.baselineHeight=-bb.y(); + s.overallHeight=bb.height(); + s.strikeoutPos=fm.strikeOutPos(); + return s; } QHash JKQTMathTextSimpleInstructionNode::instructions; @@ -215,16 +217,16 @@ QString JKQTMathTextModifiedTextPropsInstructionNode::getTypeName() const return QLatin1String("JKQTMathTextModifiedTextPropsInstructionNode(")+instructionName+")"; } -void JKQTMathTextModifiedTextPropsInstructionNode::getSizeInternal(QPainter& painter, JKQTMathTextEnvironment currentEv, double& width, double& baselineHeight, double& overallHeight, double& strikeoutPos) { +JKQTMathTextNodeSize JKQTMathTextModifiedTextPropsInstructionNode::getSizeInternal(QPainter& painter, JKQTMathTextEnvironment currentEv) const { fillInstructions(); JKQTMathTextEnvironment ev=currentEv; executeInstruction(ev); - getChild()->getSize(painter, ev, width, baselineHeight, overallHeight, strikeoutPos); + return getChild()->getSize(painter, ev); } -double JKQTMathTextModifiedTextPropsInstructionNode::draw(QPainter& painter, double x, double y, JKQTMathTextEnvironment currentEv) { +double JKQTMathTextModifiedTextPropsInstructionNode::draw(QPainter& painter, double x, double y, JKQTMathTextEnvironment currentEv) const { fillInstructions(); doDrawBoxes(painter, x, y, currentEv); JKQTMathTextEnvironment ev=currentEv; @@ -234,7 +236,7 @@ double JKQTMathTextModifiedTextPropsInstructionNode::draw(QPainter& painter, dou return getChild()->draw(painter, x, y, ev); } -bool JKQTMathTextModifiedTextPropsInstructionNode::toHtml(QString &html, JKQTMathTextEnvironment currentEv, JKQTMathTextEnvironment defaultEv) { +bool JKQTMathTextModifiedTextPropsInstructionNode::toHtml(QString &html, JKQTMathTextEnvironment currentEv, JKQTMathTextEnvironment defaultEv) const { JKQTMathTextEnvironment ev=currentEv; fillInstructions(); executeInstruction(ev); @@ -665,7 +667,7 @@ QString JKQTMathTextBoxInstructionNode::getTypeName() const return QLatin1String("JKQTMathTextBoxInstructionNode(")+instructionName+")"; } -void JKQTMathTextBoxInstructionNode::getSizeInternal(QPainter& painter, JKQTMathTextEnvironment currentEv, double& width, double& baselineHeight, double& overallHeight, double& strikeoutPos) { +JKQTMathTextNodeSize JKQTMathTextBoxInstructionNode::getSizeInternal(QPainter& painter, JKQTMathTextEnvironment currentEv) const { JKQTMathTextEnvironment ev=currentEv; const auto& inst=instructions.value(getInstructionName()); @@ -676,13 +678,16 @@ void JKQTMathTextBoxInstructionNode::getSizeInternal(QPainter& painter, JKQTMath const double lw=p.widthF(); const double padding=inst.paddingFactor*fmNonItalic.tightBoundingRect("x").width(); - getChild()->getSize(painter, ev, width, baselineHeight, overallHeight, strikeoutPos); - width=width+2.0*(padding+lw/2.0); - baselineHeight=baselineHeight+padding+lw/2.0; - overallHeight=overallHeight+2.0*(padding+lw/2.0); + const JKQTMathTextNodeSize cs=getChild()->getSize(painter, ev); + JKQTMathTextNodeSize s; + s.width=cs.width+2.0*(padding+lw/2.0); + s.baselineHeight=cs.baselineHeight+padding+lw/2.0; + s.overallHeight=cs.overallHeight+2.0*(padding+lw/2.0); + s.strikeoutPos=cs.strikeoutPos; + return s; } -double JKQTMathTextBoxInstructionNode::draw(QPainter& painter, double x, double y, JKQTMathTextEnvironment currentEv) { +double JKQTMathTextBoxInstructionNode::draw(QPainter& painter, double x, double y, JKQTMathTextEnvironment currentEv) const { doDrawBoxes(painter, x, y, currentEv); JKQTMathTextEnvironment ev=currentEv; @@ -694,21 +699,20 @@ double JKQTMathTextBoxInstructionNode::draw(QPainter& painter, double x, double const double lw=p.widthF(); const double padding=inst.paddingFactor*fmNonItalic.tightBoundingRect("x").width(); const double rr=inst.roundingFactor*fmNonItalic.tightBoundingRect("x").width(); - double width=0, baselineHeight=0, overallHeight=0, strikeoutPos=0; - getChild()->getSize(painter, ev, width, baselineHeight, overallHeight, strikeoutPos); + const JKQTMathTextNodeSize cs=getChild()->getSize(painter, ev); { painter.save(); auto __finalpaint=JKQTPFinally([&painter]() {painter.restore();}); painter.setBrush(b); painter.setPen(p); - const QRectF rect(x+lw/2.0, y-baselineHeight-padding-lw/2.0, width+2.0*padding, overallHeight+2.0*padding); + const QRectF rect(x+lw/2.0, y-cs.baselineHeight-padding-lw/2.0, cs.width+2.0*padding, cs.overallHeight+2.0*padding); if (rr>0) painter.drawRoundedRect(rect, rr, rr, Qt::AbsoluteSize); else painter.drawRect(rect); if (inst.doubleLine) { painter.setBrush(Qt::NoBrush); QPen p2=p; p2.setWidthF(p.widthF()*0.6); - const QRectF recti(x+lw*2.5, y-baselineHeight-lw/2.0-padding+2.0*lw, width+2.0*padding-4.0*lw, overallHeight+2.0*padding-4.0*lw); + const QRectF recti(x+lw*2.5, y-cs.baselineHeight-lw/2.0-padding+2.0*lw, cs.width+2.0*padding-4.0*lw, cs.overallHeight+2.0*padding-4.0*lw); if (rr>0) painter.drawRoundedRect(recti, rr, rr, Qt::AbsoluteSize); else painter.drawRect(recti); } @@ -719,7 +723,7 @@ double JKQTMathTextBoxInstructionNode::draw(QPainter& painter, double x, double return xnew+padding+lw/2.0; } -bool JKQTMathTextBoxInstructionNode::toHtml(QString &html, JKQTMathTextEnvironment currentEv, JKQTMathTextEnvironment defaultEv) { +bool JKQTMathTextBoxInstructionNode::toHtml(QString &html, JKQTMathTextEnvironment currentEv, JKQTMathTextEnvironment defaultEv) const { JKQTMathTextEnvironment ev=currentEv; fillInstructions(); const auto& inst=instructions.value(getInstructionName()); diff --git a/lib/jkqtmathtext/nodes/jkqtmathtextinstructionnode.h b/lib/jkqtmathtext/nodes/jkqtmathtextinstructionnode.h index 664f69dae0..ae29543a47 100644 --- a/lib/jkqtmathtext/nodes/jkqtmathtextinstructionnode.h +++ b/lib/jkqtmathtext/nodes/jkqtmathtextinstructionnode.h @@ -70,9 +70,9 @@ class JKQTMATHTEXT_LIB_EXPORT JKQTMathTextSimpleInstructionNode: public JKQTMath /** \copydoc JKQTMathTextNode::getTypeName() */ virtual QString getTypeName() const override; /** \copydoc JKQTMathTextNode::draw() */ - virtual double draw(QPainter& painter, double x, double y, JKQTMathTextEnvironment currentEv) override; + virtual double draw(QPainter& painter, double x, double y, JKQTMathTextEnvironment currentEv) const override; /** \copydoc JKQTMathTextNode::toHtml() */ - virtual bool toHtml(QString& html, JKQTMathTextEnvironment currentEv, JKQTMathTextEnvironment defaultEv) override; + virtual bool toHtml(QString& html, JKQTMathTextEnvironment currentEv, JKQTMathTextEnvironment defaultEv) const override; /** \copydoc instructionName */ const QString& getInstructionName() const; /** \copydoc parameters */ @@ -89,7 +89,7 @@ class JKQTMATHTEXT_LIB_EXPORT JKQTMathTextSimpleInstructionNode: public JKQTMath protected: /** \copydoc JKQTMathTextNode::getSizeInternal() */ - virtual void getSizeInternal(QPainter& painter, JKQTMathTextEnvironment currentEv, double& width, double& baselineHeight, double& overallHeight, double& strikeoutPos) override; + virtual JKQTMathTextNodeSize getSizeInternal(QPainter& painter, JKQTMathTextEnvironment currentEv) const override; /** \brief defines the implementation of an instruction represented by JKQTMathTextModifiedTextPropsInstructionNode */ struct InstructionProperties { /** \brief this functor implements the instruction */ @@ -131,9 +131,9 @@ class JKQTMATHTEXT_LIB_EXPORT JKQTMathTextModifiedTextPropsInstructionNode: publ /** \copydoc JKQTMathTextNode::getTypeName() */ virtual QString getTypeName() const override; /** \copydoc JKQTMathTextNode::draw() */ - virtual double draw(QPainter& painter, double x, double y, JKQTMathTextEnvironment currentEv) override; + virtual double draw(QPainter& painter, double x, double y, JKQTMathTextEnvironment currentEv) const override; /** \copydoc JKQTMathTextNode::toHtml() */ - virtual bool toHtml(QString& html, JKQTMathTextEnvironment currentEv, JKQTMathTextEnvironment defaultEv) override; + virtual bool toHtml(QString& html, JKQTMathTextEnvironment currentEv, JKQTMathTextEnvironment defaultEv) const override; /** \brief returns true, if the given \a instructionName can be represented by this node * \see instructions @@ -150,7 +150,7 @@ class JKQTMATHTEXT_LIB_EXPORT JKQTMathTextModifiedTextPropsInstructionNode: publ protected: /** \copydoc JKQTMathTextNode::getSizeInternal() */ - virtual void getSizeInternal(QPainter& painter, JKQTMathTextEnvironment currentEv, double& width, double& baselineHeight, double& overallHeight, double& strikeoutPos) override; + virtual JKQTMathTextNodeSize getSizeInternal(QPainter& painter, JKQTMathTextEnvironment currentEv) const override; /** \brief defines the implementation of an instruction represented by JKQTMathTextModifiedTextPropsInstructionNode */ struct InstructionProperties { /** \brief this functor implements the instruction */ @@ -188,9 +188,9 @@ class JKQTMATHTEXT_LIB_EXPORT JKQTMathTextBoxInstructionNode: public JKQTMathTex /** \copydoc JKQTMathTextNode::getTypeName() */ virtual QString getTypeName() const override; /** \copydoc JKQTMathTextNode::draw() */ - virtual double draw(QPainter& painter, double x, double y, JKQTMathTextEnvironment currentEv) override; + virtual double draw(QPainter& painter, double x, double y, JKQTMathTextEnvironment currentEv) const override; /** \copydoc JKQTMathTextNode::toHtml() */ - virtual bool toHtml(QString& html, JKQTMathTextEnvironment currentEv, JKQTMathTextEnvironment defaultEv) override; + virtual bool toHtml(QString& html, JKQTMathTextEnvironment currentEv, JKQTMathTextEnvironment defaultEv) const override; /** \brief returns true, if the given \a instructionName can be represented by this node * \see instructions @@ -210,7 +210,7 @@ class JKQTMATHTEXT_LIB_EXPORT JKQTMathTextBoxInstructionNode: public JKQTMathTex static void modifyInMathEnvironment(const QString& instructionName, bool& insideMath, const QStringList ¶ms=QStringList()); protected: /** \copydoc JKQTMathTextNode::getSizeInternal() */ - virtual void getSizeInternal(QPainter& painter, JKQTMathTextEnvironment currentEv, double& width, double& baselineHeight, double& overallHeight, double& strikeoutPos) override; + virtual JKQTMathTextNodeSize getSizeInternal(QPainter& painter, JKQTMathTextEnvironment currentEv) const override; /** \brief set all properties in \a ev, as appropriate for the represented instruction */ bool setupMTenvironment(JKQTMathTextEnvironment &ev) const; diff --git a/lib/jkqtmathtext/nodes/jkqtmathtextlistnode.cpp b/lib/jkqtmathtext/nodes/jkqtmathtextlistnode.cpp index 76acf7dea7..0eca47d8c1 100644 --- a/lib/jkqtmathtext/nodes/jkqtmathtextlistnode.cpp +++ b/lib/jkqtmathtext/nodes/jkqtmathtextlistnode.cpp @@ -52,11 +52,8 @@ QString JKQTMathTextHorizontalListNode::getTypeName() const return "MTHorizontalListNode"; } -void JKQTMathTextHorizontalListNode::getSizeInternal(QPainter& painter, JKQTMathTextEnvironment currentEv, double& width, double& baselineHeight, double& overallHeight, double& strikeoutPos) { - width=0; - overallHeight=0; - baselineHeight=0; - strikeoutPos=0; +JKQTMathTextNodeSize JKQTMathTextHorizontalListNode::getSizeInternal(QPainter& painter, JKQTMathTextEnvironment currentEv) const { + JKQTMathTextNodeSize outSize; const QFontMetricsF fm(currentEv.getFont(parentMathText)); const double subsupershift=fm.xHeight()*parentMathText->getOperatorsubsuperDistanceFactor(); const double subsuperextrawidth=fm.boundingRect('x').width()*parentMathText->getOperatorsubsuperExtraSpaceFactor(); @@ -95,32 +92,31 @@ void JKQTMathTextHorizontalListNode::getSizeInternal(QPainter& painter, JKQTMath if (i+1(nodes[i+1]); if (nodeISucc_SubScript) { // is this subscript? - double w1=0, w2=0, oh=0, bh=0, sp=0; - nodeI_SuperScript->getSizeWithSpecialPlacement(painter, currentEv, w1, bh, oh, sp, prevNodeSizePtrForSuperscript); + const JKQTMathTextNodeSize ns=nodeI_SuperScript->getSizeWithSpecialPlacement(painter, currentEv, prevNodeSizePtrForSuperscript); - if (bh>baselineHeight) { - overallHeight=overallHeight+bh-baselineHeight; - baselineHeight=bh; - strikeoutPos=sp; + if (ns.baselineHeight>outSize.baselineHeight) { + outSize.overallHeight=outSize.overallHeight+ns.baselineHeight-outSize.baselineHeight; + outSize.baselineHeight=ns.baselineHeight; + outSize.strikeoutPos=ns.strikeoutPos; } - if (baselineHeight+oh-bh>overallHeight) { - overallHeight=baselineHeight+oh-bh; - strikeoutPos=sp; + if (outSize.baselineHeight+ns.getDescent()>outSize.overallHeight) { + outSize.overallHeight=outSize.baselineHeight+ns.getDescent(); + outSize.strikeoutPos=ns.strikeoutPos; } i++; - nodeISucc_SubScript->getSizeWithSpecialPlacement(painter, currentEv, w2, bh, oh, sp, prevNodeSizePtrForSubscript); + const JKQTMathTextNodeSize ns2=nodeISucc_SubScript->getSizeWithSpecialPlacement(painter, currentEv, prevNodeSizePtrForSubscript); //qDebug()<<"super_sub: sub: "<getTypeName()<<" w2="<(nodes[i+1]); if (nodeISucc_SuperScript) { // is this subscript? - double w1=0, w2=0, oh=0, bh=0, sp=0; - nodeI_SubScript->getSizeWithSpecialPlacement(painter, currentEv, w1, bh, oh, sp, prevNodeSizePtrForSubscript); - if (bh>baselineHeight) { - overallHeight=overallHeight+bh-baselineHeight; - baselineHeight=bh; - strikeoutPos=sp; + const JKQTMathTextNodeSize ns=nodeI_SubScript->getSizeWithSpecialPlacement(painter, currentEv, prevNodeSizePtrForSubscript); + if (ns.baselineHeight>outSize.baselineHeight) { + outSize.overallHeight=outSize.overallHeight+ns.baselineHeight-outSize.baselineHeight; + outSize.baselineHeight=ns.baselineHeight; + outSize.strikeoutPos=ns.strikeoutPos; } - if (baselineHeight+oh-bh>overallHeight) { - overallHeight=baselineHeight+oh-bh; - strikeoutPos=sp; + if (outSize.baselineHeight+ns.overallHeight-ns.baselineHeight>outSize.overallHeight) { + outSize.overallHeight=outSize.baselineHeight+ns.overallHeight-ns.baselineHeight; + outSize.strikeoutPos=ns.strikeoutPos; } i++; - nodeISucc_SuperScript->getSizeWithSpecialPlacement(painter, currentEv, w2, bh, oh, sp, prevNodeSizePtrForSuperscript); - if (bh>baselineHeight) { - overallHeight=overallHeight+bh-baselineHeight; - baselineHeight=bh; - strikeoutPos=sp; + const JKQTMathTextNodeSize ns2=nodeISucc_SuperScript->getSizeWithSpecialPlacement(painter, currentEv, prevNodeSizePtrForSuperscript); + if (ns2.baselineHeight>outSize.baselineHeight) { + outSize.overallHeight=outSize.overallHeight+ns2.baselineHeight-outSize.baselineHeight; + outSize.baselineHeight=ns2.baselineHeight; + outSize.strikeoutPos=ns2.strikeoutPos; } - if (baselineHeight+oh-bh>overallHeight) { - overallHeight=baselineHeight+oh-bh; - strikeoutPos=sp; + if (outSize.baselineHeight+ns2.overallHeight-ns2.baselineHeight>outSize.overallHeight) { + outSize.overallHeight=outSize.baselineHeight+ns2.overallHeight-ns2.baselineHeight; + outSize.strikeoutPos=ns2.strikeoutPos; } - xnew+=qMax(w1+prevNodeSize.subBesidesXCorrection, w2+spaceWidth); + xnew+=qMax(ns.width+prevNodeSize.subBesidesXCorrection, ns2.width+spaceWidth); doDraw=false; @@ -162,18 +157,17 @@ void JKQTMathTextHorizontalListNode::getSizeInternal(QPainter& painter, JKQTMath //qDebug()<<"### subsupop: sub+super1 overallHeight="<getTypeName()<<" w1="<getTypeName()<<" ns.width="<getTypeName()<<" w2="<getTypeName()<<" w3="<drawWithSpecialPlacement(painter, xnew, ynew, currentEv, prevNodeSizePtrForSuperscript); + const double xnewidth=nodeI_SuperScript->drawWithSpecialPlacement(painter, xnew, ynew, currentEv, prevNodeSizePtrForSuperscript); i++; //painter.setPen(QPen("magenta")); //painter.drawEllipse(xnew-4,ynew-4,8,8); - double xnew2=nodeISucc_SubScript->drawWithSpecialPlacement(painter, xnew-prevNodeSize.subSuperXCorrection, ynew, currentEv, prevNodeSizePtrForSubscript); + const double xnew2=nodeISucc_SubScript->drawWithSpecialPlacement(painter, xnew-prevNodeSize.subSuperXCorrection, ynew, currentEv, prevNodeSizePtrForSubscript); //i++; - xnew=qMax(xnew1, xnew2); + xnew=qMax(xnewidth, xnew2); doDraw=false; } } @@ -389,13 +373,13 @@ double JKQTMathTextHorizontalListNode::draw(QPainter& painter, double x, double if (nodeISucc_SuperScript) { // is this subscript? //painter.setPen(QPen("red")); //painter.drawEllipse(xnew-4,ynew+shift-(ccOverallHeight-ccBaselineHeight)-4,8,8); - double xnew1=nodeI_SubScript->drawWithSpecialPlacement(painter, xnew-prevNodeSize.subSuperXCorrection, ynew, currentEv, prevNodeSizePtrForSubscript); + double xnewidth=nodeI_SubScript->drawWithSpecialPlacement(painter, xnew-prevNodeSize.subSuperXCorrection, ynew, currentEv, prevNodeSizePtrForSubscript); i++; //painter.setPen(QPen("magenta")); //painter.drawEllipse(xnew-4,ynew-4,8,8); double xnew2=nodeISucc_SuperScript->drawWithSpecialPlacement(painter, xnew, ynew, currentEv, prevNodeSizePtrForSuperscript); //i++; - xnew=qMax(xnew1, xnew2); + xnew=qMax(xnewidth, xnew2); doDraw=false; } } else { @@ -423,9 +407,6 @@ double JKQTMathTextHorizontalListNode::draw(QPainter& painter, double x, double if (!supn) supn=supn2; JKQTMathTextEnvironment ev=currentEv; ev.fontSize=ev.fontSize*parentMathText->getOperatorsubsuperSizeFactor(); - double wsub=0, wsup=0; - double ohsub=0, ohsup=0; - double bhsub=0, bhsup=0, spsub, spsup, sp; JKQTMathTextSymbolNode::NodeSize nodeSize; JKQTMathTextSymbolNode* symbN=dynamic_cast(nodes[i]); if (symbN) { @@ -435,29 +416,26 @@ double JKQTMathTextHorizontalListNode::draw(QPainter& painter, double x, double } - subn->getChild()->getSize(painter, ev, wsub, bhsub, ohsub, spsub); - supn->getChild()->getSize(painter, ev, wsup, bhsup, ohsup, spsup); + const JKQTMathTextNodeSize sub=subn->getChild()->getSize(painter, ev); + const JKQTMathTextNodeSize sup=supn->getChild()->getSize(painter, ev); const double descent1=nodeSize.getDescent(); //double d2=oh2-bh2; - const double descent3=ohsup-bhsup; + const double descent3=sup.getDescent(); - const double neww=qMax(qMax(nodeSize.width, wsub), wsup)+subsuperextrawidth; - //double xnew1= + const double neww=qMax(qMax(nodeSize.width, sub.width), sup.width)+subsuperextrawidth; + //double xnewidth= const double xn1=nodes[i]->draw(painter, xnew+(neww-nodeSize.width)/2.0, ynew, currentEv); i++; //double xnew2= - const double xnsub=subn->getChild()->draw(painter, xnew+(neww-wsub)/2.0-nodeSize.subSuperXCorrection, ynew+bhsub+descent1+subsupershift, ev); + const double xnsub=subn->getChild()->draw(painter, xnew+(neww-sub.width)/2.0-nodeSize.subSuperXCorrection, ynew+sub.baselineHeight+descent1+subsupershift, ev); i++; //double xnew3= - const double xnsup=supn->getChild()->draw(painter, xnew+(neww-wsup)/2.0+nodeSize.subSuperXCorrection, ynew-nodeSize.baselineHeight-descent3-subsupershift, ev); + const double xnsup=supn->getChild()->draw(painter, xnew+(neww-sup.width)/2.0+nodeSize.subSuperXCorrection, ynew-nodeSize.baselineHeight-descent3-subsupershift, ev); doDraw=false; xnew=qMax(qMax(xn1, xnsub), xnsup)+subsuperextrawidth/2.0; } else if (subn) { // is this subscript and no following superscript? JKQTMathTextEnvironment ev=currentEv; ev.fontSize=ev.fontSize*parentMathText->getOperatorsubsuperSizeFactor(); - double wsub=0; - double ohsub=0; - double bhsub=0, sp=0, spsub=0; JKQTMathTextSymbolNode::NodeSize nodeSize; JKQTMathTextSymbolNode* symbN=dynamic_cast(nodes[i]); if (symbN) { @@ -465,25 +443,22 @@ double JKQTMathTextHorizontalListNode::draw(QPainter& painter, double x, double } else { nodeSize=nodes[i]->getSize(painter, currentEv); } - subn->getChild()->getSize(painter, ev, wsub, bhsub, ohsub, spsub); + const JKQTMathTextNodeSize sub=subn->getChild()->getSize(painter, ev); const double descent1=nodeSize.getDescent(); //double d2=oh2-bh2; - const double neww=qMax(nodeSize.width, wsub)+subsuperextrawidth; - //double xnew1= + const double neww=qMax(nodeSize.width, sub.width)+subsuperextrawidth; + //double xnewidth= const double xn1=nodes[i]->draw(painter, xnew+(neww-nodeSize.width)/2.0, ynew, currentEv); i++; //double xnew2= - const double xnsub=subn->getChild()->draw(painter, xnew+(neww-wsub)/2.0-nodeSize.subSuperXCorrection, ynew+bhsub+descent1+subsupershift, ev)+subsupershift; + const double xnsub=subn->getChild()->draw(painter, xnew+(neww-sub.width)/2.0-nodeSize.subSuperXCorrection, ynew+sub.baselineHeight+descent1+subsupershift, ev)+subsupershift; doDraw=false; //xnew+=w; xnew=qMax(xnsub, xn1)+subsuperextrawidth/2.0; } else if (supn) { // is this superscript and no following subscript? JKQTMathTextEnvironment ev=currentEv; ev.fontSize=ev.fontSize*parentMathText->getOperatorsubsuperSizeFactor(); - double wsup=0; - double ohsup=0; - double bhsup=0, sp, spsup; JKQTMathTextSymbolNode::NodeSize nodeSize; JKQTMathTextSymbolNode* symbN=dynamic_cast(nodes[i]); if (symbN) { @@ -491,17 +466,17 @@ double JKQTMathTextHorizontalListNode::draw(QPainter& painter, double x, double } else { nodeSize=nodes[i]->getSize(painter, currentEv); } - supn->getChild()->getSize(painter, ev, wsup, bhsup, ohsup, spsup); - //double d1=oh1-bh1; + const JKQTMathTextNodeSize sup=supn->getChild()->getSize(painter, ev); + //double d1=ns.overallHeight-ns.baselineHeight; //double d2=oh2-bh2; - const double descent3=ohsup-bhsup; + const double descent3=sup.getDescent(); - const double neww=qMax(nodeSize.width, wsup)+subsuperextrawidth; - //double xnew1= + const double neww=qMax(nodeSize.width, sup.width)+subsuperextrawidth; + //double xnewidth= const double xn1=nodes[i]->draw(painter, xnew+(neww-nodeSize.width)/2.0, ynew, currentEv); i++; //double xnew3= - const double xnsup=supn->getChild()->draw(painter, xnew+(neww-wsup)/2.0+nodeSize.subSuperXCorrection, ynew-nodeSize.baselineHeight-descent3-subsupershift, ev); + const double xnsup=supn->getChild()->draw(painter, xnew+(neww-sup.width)/2.0+nodeSize.subSuperXCorrection, ynew-nodeSize.baselineHeight-descent3-subsupershift, ev); doDraw=false; xnew=qMax(xn1, xnsup)+subsuperextrawidth/2.0; } @@ -522,7 +497,7 @@ void JKQTMathTextHorizontalListNode::addChild(JKQTMathTextNode *n) { nodes.append(n); } -bool JKQTMathTextHorizontalListNode::toHtml(QString &html, JKQTMathTextEnvironment currentEv, JKQTMathTextEnvironment defaultEv) { +bool JKQTMathTextHorizontalListNode::toHtml(QString &html, JKQTMathTextEnvironment currentEv, JKQTMathTextEnvironment defaultEv) const { bool ok=true; for (int i=0; i ysFromFirstLine; // y-position of each line, where the first line is always at y=0 (i.e. ysFromFirstLine[0]==0) double y=0; for (int i=0; igetSize(painter, currentEv, locWidth, locBaselineHeight, locOverallHeight, locStrikeoutPos); + const JKQTMathTextNodeSize loc=nodes[i]->getSize(painter, currentEv); if (i==0) { - heightSum=locBaselineHeight; + heightSum=loc.baselineHeight; } else if (i>0) { double deltaLine=0; if (spacingMode==MTSMMinimalSpacing) { - deltaLine=descents.last()+lineLeading+locBaselineHeight; + deltaLine=descents.last()+lineLeading+loc.baselineHeight; } else if (spacingMode==MTSMDefaultSpacing) { - deltaLine=qMax(linespacing, descents.last()+lineLeading+locBaselineHeight); + deltaLine=qMax(linespacing, descents.last()+lineLeading+loc.baselineHeight); } heightSum=heightSum+deltaLine; y=y+deltaLine; } - widths<"; @@ -817,3 +787,33 @@ void JKQTMathTextVerticalListNode::setSpacingMode(JKQTMathTextLineSpacingMode va JKQTMathTextVerticalListNode::LayoutInfo::LayoutInfo(): JKQTMathTextNodeSize(), X() {} + + + +JKQTMathTextVerticalListNode::LayoutInfo::LayoutInfo(const JKQTMathTextNodeSize &other): + JKQTMathTextNodeSize(other), + X() +{ + +} + +JKQTMathTextVerticalListNode::LayoutInfo &JKQTMathTextVerticalListNode::LayoutInfo::operator=(const JKQTMathTextNodeSize &other) +{ + JKQTMathTextNodeSize::operator=(other); + X.clear(); + return *this; +} + +JKQTMathTextVerticalListNode::LayoutInfo &JKQTMathTextVerticalListNode::LayoutInfo::operator=(const LayoutInfo &other) +{ + JKQTMathTextNodeSize::operator=(dynamic_cast(other)); + X=other.X; + return *this; +} + +JKQTMathTextVerticalListNode::LayoutInfo::LayoutInfo(const LayoutInfo &other): + JKQTMathTextNodeSize(dynamic_cast(other)), + X(other.X) +{ + +} diff --git a/lib/jkqtmathtext/nodes/jkqtmathtextlistnode.h b/lib/jkqtmathtext/nodes/jkqtmathtextlistnode.h index cd8df0aabb..bc6af49d23 100644 --- a/lib/jkqtmathtext/nodes/jkqtmathtextlistnode.h +++ b/lib/jkqtmathtext/nodes/jkqtmathtextlistnode.h @@ -49,9 +49,9 @@ class JKQTMATHTEXT_LIB_EXPORT JKQTMathTextHorizontalListNode: public JKQTMathTex /** \copydoc JKQTMathTextNode::getTypeName() */ virtual QString getTypeName() const override; /** \copydoc JKQTMathTextNode::draw() */ - virtual double draw(QPainter& painter, double x, double y, JKQTMathTextEnvironment currentEv) override; + virtual double draw(QPainter& painter, double x, double y, JKQTMathTextEnvironment currentEv) const override; /** \copydoc JKQTMathTextNode::toHtml() */ - virtual bool toHtml(QString& html, JKQTMathTextEnvironment currentEv, JKQTMathTextEnvironment defaultEv) override; + virtual bool toHtml(QString& html, JKQTMathTextEnvironment currentEv, JKQTMathTextEnvironment defaultEv) const override; /** \brief add a child node */ void addChild(JKQTMathTextNode* n); /** \copydoc JKQTMathTextMultiChildNode::getChildren() */ @@ -70,7 +70,7 @@ class JKQTMATHTEXT_LIB_EXPORT JKQTMathTextHorizontalListNode: public JKQTMathTex virtual JKQTMathTextNode* replaceChild(int i, JKQTMathTextNode* newChild) override; protected: /** \copydoc JKQTMathTextNode::getSizeInternal() */ - virtual void getSizeInternal(QPainter& painter, JKQTMathTextEnvironment currentEv, double& width, double& baselineHeight, double& overallHeight, double& strikeoutPos) override; + virtual JKQTMathTextNodeSize getSizeInternal(QPainter& painter, JKQTMathTextEnvironment currentEv) const override; QList nodes; private: /** \brief internal implementation of clearChildren() that is non-virtual, so can be used in the destructor */ @@ -101,9 +101,9 @@ class JKQTMATHTEXT_LIB_EXPORT JKQTMathTextVerticalListNode: public JKQTMathTextM /** \copydoc JKQTMathTextNode::getTypeName() */ virtual QString getTypeName() const override; /** \copydoc JKQTMathTextNode::draw() */ - virtual double draw(QPainter& painter, double x, double y, JKQTMathTextEnvironment currentEv) override; + virtual double draw(QPainter& painter, double x, double y, JKQTMathTextEnvironment currentEv) const override; /** \copydoc JKQTMathTextNode::toHtml() */ - virtual bool toHtml(QString& html, JKQTMathTextEnvironment currentEv, JKQTMathTextEnvironment defaultEv) override; + virtual bool toHtml(QString& html, JKQTMathTextEnvironment currentEv, JKQTMathTextEnvironment defaultEv) const override; /** \brief add a child node */ void addChild(JKQTMathTextNode* n); /** \copydoc JKQTMathTextMultiChildNode::getChildren() */ @@ -138,11 +138,15 @@ class JKQTMATHTEXT_LIB_EXPORT JKQTMathTextVerticalListNode: public JKQTMathTextM void setSpacingMode(JKQTMathTextLineSpacingMode value) ; protected: /** \copydoc JKQTMathTextNode::getSizeInternal() */ - virtual void getSizeInternal(QPainter& painter, JKQTMathTextEnvironment currentEv, double& width, double& baselineHeight, double& overallHeight, double& strikeoutPos) override; + virtual JKQTMathTextNodeSize getSizeInternal(QPainter& painter, JKQTMathTextEnvironment currentEv) const override; /** \brief describes the layout of the whole node */ struct LayoutInfo: public JKQTMathTextNodeSize { LayoutInfo(); + LayoutInfo(const LayoutInfo& other); + LayoutInfo(const JKQTMathTextNodeSize& other); + LayoutInfo& operator=(const LayoutInfo& other); + LayoutInfo& operator=(const JKQTMathTextNodeSize& other); /** \brief drawing position for each line */ QList X; }; diff --git a/lib/jkqtmathtext/nodes/jkqtmathtextmatrixnode.cpp b/lib/jkqtmathtext/nodes/jkqtmathtextmatrixnode.cpp index d27d88751b..d096a2d52c 100644 --- a/lib/jkqtmathtext/nodes/jkqtmathtextmatrixnode.cpp +++ b/lib/jkqtmathtext/nodes/jkqtmathtextmatrixnode.cpp @@ -98,7 +98,7 @@ QString JKQTMathTextMatrixNode::getTypeName() const } -bool JKQTMathTextMatrixNode::toHtml(QString &/*html*/, JKQTMathTextEnvironment /*currentEv*/, JKQTMathTextEnvironment /*defaultEv*/) +bool JKQTMathTextMatrixNode::toHtml(QString &/*html*/, JKQTMathTextEnvironment /*currentEv*/, JKQTMathTextEnvironment /*defaultEv*/) const { return false; } @@ -362,21 +362,17 @@ JKQTMathTextMatrixNode::LayoutInfo JKQTMathTextMatrixNode::calcLayout(QPainter & return l; } -void JKQTMathTextMatrixNode::getSizeInternal(QPainter& painter, JKQTMathTextEnvironment currentEv, double& width, double& baselineHeight, double& overallHeight, double& strikeoutPos) { - const LayoutInfo l=calcLayout(painter, currentEv); - width=l.width; - overallHeight=l.overallHeight; - baselineHeight=l.baselineHeight; - strikeoutPos=l.strikeoutPos; +JKQTMathTextNodeSize JKQTMathTextMatrixNode::getSizeInternal(QPainter& painter, JKQTMathTextEnvironment currentEv) const { + return calcLayout(painter, currentEv); } -double JKQTMathTextMatrixNode::draw(QPainter& painter, double x, double y, JKQTMathTextEnvironment currentEv) { - doDrawBoxes(painter, x, y, currentEv); +double JKQTMathTextMatrixNode::draw(QPainter& painter, double x, double y, JKQTMathTextEnvironment currentEv) const { const QFontMetricsF fm(currentEv.getFont(parentMathText), painter.device()); JKQTMathTextEnvironment ev1=currentEv; const LayoutInfo l=calcLayout(painter, currentEv); + doDrawBoxes(painter, x, y, l); const double xwidth=fm.boundingRect("x").width(); const double XSeparation=parentMathText->getMatrixXSeparationFactor()*xwidth; diff --git a/lib/jkqtmathtext/nodes/jkqtmathtextmatrixnode.h b/lib/jkqtmathtext/nodes/jkqtmathtextmatrixnode.h index 71a50d2001..db0bce7cf8 100644 --- a/lib/jkqtmathtext/nodes/jkqtmathtextmatrixnode.h +++ b/lib/jkqtmathtext/nodes/jkqtmathtextmatrixnode.h @@ -68,9 +68,9 @@ class JKQTMATHTEXT_LIB_EXPORT JKQTMathTextMatrixNode: public JKQTMathTextMultiCh /** \copydoc JKQTMathTextNode::getTypeName() */ virtual QString getTypeName() const override; /** \copydoc JKQTMathTextNode::draw() */ - virtual double draw(QPainter& painter, double x, double y, JKQTMathTextEnvironment currentEv) override; + virtual double draw(QPainter& painter, double x, double y, JKQTMathTextEnvironment currentEv) const override; /** \copydoc JKQTMathTextNode::toHtml() */ - virtual bool toHtml(QString& html, JKQTMathTextEnvironment currentEv, JKQTMathTextEnvironment defaultEv) override; + virtual bool toHtml(QString& html, JKQTMathTextEnvironment currentEv, JKQTMathTextEnvironment defaultEv) const override; /** \brief returns the child nodes */ QVector > getChildrenMatrix() const; /** \copydoc columns */ @@ -122,7 +122,7 @@ class JKQTMATHTEXT_LIB_EXPORT JKQTMathTextMatrixNode: public JKQTMathTextMultiCh */ LayoutInfo calcLayout(QPainter& painter, const JKQTMathTextEnvironment& currentEv) const; /** \copydoc JKQTMathTextNode::getSizeInternal() */ - virtual void getSizeInternal(QPainter& painter, JKQTMathTextEnvironment currentEv, double& width, double& baselineHeight, double& overallHeight, double& strikeoutPos) override; + virtual JKQTMathTextNodeSize getSizeInternal(QPainter& painter, JKQTMathTextEnvironment currentEv) const override; /** \copydoc JKQTMathTextNode::setDrawBoxes() */ virtual void setDrawBoxes(bool draw) override; /** \brief child nodes making up the matrix, vector of rows */ diff --git a/lib/jkqtmathtext/nodes/jkqtmathtextnode.cpp b/lib/jkqtmathtext/nodes/jkqtmathtextnode.cpp index 2b3289260f..d6360c1f36 100644 --- a/lib/jkqtmathtext/nodes/jkqtmathtextnode.cpp +++ b/lib/jkqtmathtext/nodes/jkqtmathtextnode.cpp @@ -50,33 +50,26 @@ JKQTMathTextNode::JKQTMathTextNode(JKQTMathText *_parent): JKQTMathTextNode::~JKQTMathTextNode() = default; -void JKQTMathTextNode::getSize(QPainter &painter, JKQTMathTextEnvironment currentEv, double &width, double &baselineHeight, double &overallHeight, double &strikeoutPos) +JKQTMathTextNodeSize JKQTMathTextNode::getSize(QPainter &painter, JKQTMathTextEnvironment currentEv) const { - double w=width, b=baselineHeight, o=overallHeight, s=strikeoutPos; - getSizeInternal(painter, currentEv, w, b, o, s); - - if (w<1e5) width=w; - if (b<1e5) baselineHeight=b; - if (o<1e5) overallHeight=o; - if (s<1e5) strikeoutPos=s; + return getSizeInternal(painter, currentEv); } -double JKQTMathTextNode::getNonItalicXCorretion(QPainter &painter, double width_potentiallyitalic, const JKQTMathTextEnvironment &ev_potentiallyitalic, JKQTMathTextNode* child) const +double JKQTMathTextNode::getNonItalicXCorretion(QPainter &painter, double width_potentiallyitalic, const JKQTMathTextEnvironment &ev_potentiallyitalic, const JKQTMathTextNode* child) { double italic_xcorrection=0.0; if (ev_potentiallyitalic.italic) { JKQTMathTextEnvironment ev_nonitalic=ev_potentiallyitalic; ev_nonitalic.italic=false; - double width_nonitalic=0, baselineHeight_nonitalic=0, overallHeight_nonitalic=0, strikeoutPos_nonitalic=0; - child->getSize(painter, ev_nonitalic, width_nonitalic, baselineHeight_nonitalic, overallHeight_nonitalic, strikeoutPos_nonitalic); - italic_xcorrection=width_potentiallyitalic-width_nonitalic; + JKQTMathTextNodeSize s_nonitalic=child->getSize(painter, ev_nonitalic); + italic_xcorrection=width_potentiallyitalic-s_nonitalic.width; } return italic_xcorrection; } -bool JKQTMathTextNode::toHtml(QString &/*html*/, JKQTMathTextEnvironment /*currentEv*/, JKQTMathTextEnvironment /*defaultEv*/) { +bool JKQTMathTextNode::toHtml(QString &/*html*/, JKQTMathTextEnvironment /*currentEv*/, JKQTMathTextEnvironment /*defaultEv*/) const { return false; } @@ -85,24 +78,23 @@ bool JKQTMathTextNode::getDrawBoxes() const { } -void JKQTMathTextNode::doDrawBoxes(QPainter& painter, double x, double y, JKQTMathTextEnvironment currentEv) { +void JKQTMathTextNode::doDrawBoxes(QPainter &painter, double x, double y, const JKQTMathTextNodeSize &size) const +{ if (drawBoxes) { painter.save(); auto __finalpaint=JKQTPFinally([&painter]() {painter.restore();}); - double w, oh, bh, sp; - getSize(painter, currentEv, w, bh, oh, sp); QPen p=painter.pen(); p.setColor("lightcoral"); p.setWidthF(0.5); painter.setPen(p); - QRectF r(x, y-bh, w, oh); + QRectF r(x, y-size.baselineHeight, size.width, size.overallHeight ); painter.drawRect(r); p.setColor("lightblue"); painter.setPen(p); - if (w>0) painter.drawLine(QLineF(x, y, x+w, y)); + if (size.width>0) painter.drawLine(QLineF(x, y, x+size.width, y)); p.setColor("pink"); p.setStyle(Qt::DashLine); painter.setPen(p); - if (w>0) painter.drawLine(QLineF(x, y-sp, x+w, y-sp)); + if (size.width>0) painter.drawLine(QLineF(x, y-size.strikeoutPos, x+size.width, y-size.strikeoutPos)); p.setColor("green"); p.setStyle(Qt::SolidLine); painter.setPen(p); @@ -113,6 +105,13 @@ void JKQTMathTextNode::doDrawBoxes(QPainter& painter, double x, double y, JKQTMa painter.drawLine(QLineF(x, y-2, x, y+2.0)); } + +} + +void JKQTMathTextNode::doDrawBoxes(QPainter& painter, double x, double y, JKQTMathTextEnvironment currentEv) const { + if (drawBoxes) { + doDrawBoxes(painter, x, y, getSize(painter, currentEv)); + } } void JKQTMathTextNode::setDrawBoxes(bool draw) @@ -151,6 +150,7 @@ void JKQTMathTextNode::setSubSuperscriptAboveBelowNode(bool __value) subSuperscriptAboveBelowNode=__value; } + JKQTMathTextSingleChildNode::JKQTMathTextSingleChildNode(JKQTMathTextNode *_child, JKQTMathText *parentMathText): JKQTMathTextNode(parentMathText), child(_child) @@ -374,13 +374,6 @@ void JKQTMathTextMultiChildNode::setDrawBoxes(bool draw) } -JKQTMathTextNodeSize JKQTMathTextNode::getSize(QPainter &painter, JKQTMathTextEnvironment currentEv) -{ - JKQTMathTextNodeSize s; - getSize(painter, currentEv, s.width, s.baselineHeight, s.overallHeight, s.strikeoutPos); - return s; -} - JKQTMathTextNoopNode::JKQTMathTextNoopNode(JKQTMathText *parent): JKQTMathTextNode(parent) { @@ -397,20 +390,17 @@ QString JKQTMathTextNoopNode::getTypeName() const return "MTNoopNode"; } -bool JKQTMathTextNoopNode::toHtml(QString &html, JKQTMathTextEnvironment currentEv, JKQTMathTextEnvironment defaultEv) +bool JKQTMathTextNoopNode::toHtml(QString &html, JKQTMathTextEnvironment currentEv, JKQTMathTextEnvironment defaultEv) const { return true; } -double JKQTMathTextNoopNode::draw(QPainter &painter, double x, double y, JKQTMathTextEnvironment currentEv) +double JKQTMathTextNoopNode::draw(QPainter &painter, double x, double y, JKQTMathTextEnvironment currentEv) const { return x; } -void JKQTMathTextNoopNode::getSizeInternal(QPainter &painter, JKQTMathTextEnvironment currentEv, double &width, double &baselineHeight, double &overallHeight, double &strikeoutPos) +JKQTMathTextNodeSize JKQTMathTextNoopNode::getSizeInternal(QPainter &painter, JKQTMathTextEnvironment currentEv) const { - width=0; - baselineHeight=0; - overallHeight=0; - strikeoutPos=0; + return JKQTMathTextNodeSize(); } diff --git a/lib/jkqtmathtext/nodes/jkqtmathtextnode.h b/lib/jkqtmathtext/nodes/jkqtmathtextnode.h index 7c869d6fdc..7ee94ba9dd 100644 --- a/lib/jkqtmathtext/nodes/jkqtmathtextnode.h +++ b/lib/jkqtmathtext/nodes/jkqtmathtextnode.h @@ -40,17 +40,6 @@ class JKQTMATHTEXT_LIB_EXPORT JKQTMathTextNode { JKQTMathTextNode(const JKQTMathTextNode&)=delete; JKQTMathTextNode& operator=(const JKQTMathTextNode&)=delete; virtual ~JKQTMathTextNode(); - /** \brief determine the size of the node, calls getSizeInternal() implementation of the actual type \see getSizeInternal() - * - * \param painter painter to use for determining the size - * \param currentEv current environment object - * \param[out] width width of the block/node - * \param[out] baselineHeight distance from the bottom of the block/node-box to the baseline - * \param[out] overallHeight overall height (bottom to top) of the node, the ascent is \c overallHeight-baselineHeight - * \param[out] strikeoutPos position of the strikeout-line - * - */ - void getSize(QPainter& painter, JKQTMathTextEnvironment currentEv, double& width, double& baselineHeight, double& overallHeight, double& strikeoutPos); /** \brief determine the size of the node, calls getSizeInternal() implementation of the actual type \see getSizeInternal() * * \param painter painter to use for determining the size @@ -59,9 +48,9 @@ class JKQTMATHTEXT_LIB_EXPORT JKQTMathTextNode { * \return all important box size parameters packed as JKQTMathTextNodeSize * */ - JKQTMathTextNodeSize getSize(QPainter& painter, JKQTMathTextEnvironment currentEv); + JKQTMathTextNodeSize getSize(QPainter& painter, JKQTMathTextEnvironment currentEv) const; /** \brief calculates the x-size-difference between the given (probably) italic (width externally calculated: \a width_potentiallyitalic, \a ev_potentiallyitalic) and the non-italic version of \a child */ - double getNonItalicXCorretion(QPainter &painter, double width_potentiallyitalic, const JKQTMathTextEnvironment &ev_potentiallyitalic, JKQTMathTextNode* child) const; + static double getNonItalicXCorretion(QPainter &painter, double width_potentiallyitalic, const JKQTMathTextEnvironment &ev_potentiallyitalic, const JKQTMathTextNode* child) ; /** \brief draw the contents at the designated position * * \param painter QPainter to use @@ -71,14 +60,14 @@ class JKQTMATHTEXT_LIB_EXPORT JKQTMathTextNode { * * \return the x position which to use for the next part of the text */ - virtual double draw(QPainter& painter, double x, double y, JKQTMathTextEnvironment currentEv)=0; + virtual double draw(QPainter& painter, double x, double y, JKQTMathTextEnvironment currentEv) const=0; /** \brief convert node to HTML and returns \c true on success * \param[out] html new HTML code is APPENDED to this string * \param currentEv JKQTMathTextEnvironment object describing the current drawing environment/settings * \param defaultEv JKQTMathTextEnvironment object describing the default drawing environment/settings when starting to interpret a node tree * \return \c true on success */ - virtual bool toHtml(QString& html, JKQTMathTextEnvironment currentEv, JKQTMathTextEnvironment defaultEv); + virtual bool toHtml(QString& html, JKQTMathTextEnvironment currentEv, JKQTMathTextEnvironment defaultEv) const; /** \brief returns the drawing of colored boxes (for DEBUGGING) around the actual output of the node is enabled */ bool getDrawBoxes() const; @@ -108,7 +97,7 @@ class JKQTMATHTEXT_LIB_EXPORT JKQTMathTextNode { * \param[out] strikeoutPos position of the strikeout-line * */ - virtual void getSizeInternal(QPainter& painter, JKQTMathTextEnvironment currentEv, double& width, double& baselineHeight, double& overallHeight, double& strikeoutPos)=0; + virtual JKQTMathTextNodeSize getSizeInternal(QPainter& painter, JKQTMathTextEnvironment currentEv) const =0; /** \brief parent JKQTMathText object (required for several drawing operations */ JKQTMathText* parentMathText; @@ -127,9 +116,21 @@ class JKQTMATHTEXT_LIB_EXPORT JKQTMathTextNode { * \param painter QPainter to use * \param x x-position, where the drawing starts [Pixel] * \param y Y-position of the baseline, where the drawing starts [Pixel] - * \param currentEv JKQTMathTextEnvironment object describing the current drawing environment/settings + * \param size size of the node, result of getSize(), see JKQTMathTextNodeSize */ - void doDrawBoxes(QPainter& painter, double x, double y, JKQTMathTextEnvironment currentEv); + void doDrawBoxes(QPainter& painter, double x, double y, const JKQTMathTextNodeSize& size) const; + /** \brief draws colored boxes (for DEBUGGING) around the actual output of the node + * + * \param painter QPainter to use + * \param x x-position, where the drawing starts [Pixel] + * \param y Y-position of the baseline, where the drawing starts [Pixel] + * \param currentEv JKQTMathTextEnvironment object describing the current drawing environment/settings + * + * \note This version of the function calls getSize() internally. There is a second variant that + * skips this call and expects the node size info as parameter. This can be used in + * draw() implementations that call getSize() themselves to speed up drawing. + */ + void doDrawBoxes(QPainter& painter, double x, double y, JKQTMathTextEnvironment currentEv) const; /** \brief returns the list of parent, parent-of-parent, ... that can be cast to type \a T */ @@ -292,12 +293,12 @@ class JKQTMATHTEXT_LIB_EXPORT JKQTMathTextNoopNode: public JKQTMathTextNode { /** \copydoc JKQTMathTextNode::getTypeName() */ virtual QString getTypeName() const override; /** \copydoc JKQTMathTextNode::toHtml() */ - virtual bool toHtml(QString& html, JKQTMathTextEnvironment currentEv, JKQTMathTextEnvironment defaultEv) override; + virtual bool toHtml(QString& html, JKQTMathTextEnvironment currentEv, JKQTMathTextEnvironment defaultEv) const override; /** \copydoc JKQTMathTextNode::draw() */ - virtual double draw(QPainter& painter, double x, double y, JKQTMathTextEnvironment currentEv) override; + virtual double draw(QPainter& painter, double x, double y, JKQTMathTextEnvironment currentEv) const override; protected: /** \copydoc JKQTMathTextNode::getSizeInternal() */ - virtual void getSizeInternal(QPainter& painter, JKQTMathTextEnvironment currentEv, double& width, double& baselineHeight, double& overallHeight, double& strikeoutPos) override; + virtual JKQTMathTextNodeSize getSizeInternal(QPainter& painter, JKQTMathTextEnvironment currentEv) const override; }; #endif // JKQTMATHTEXTNODE_H diff --git a/lib/jkqtmathtext/nodes/jkqtmathtextsqrtnode.cpp b/lib/jkqtmathtext/nodes/jkqtmathtextsqrtnode.cpp index d73512cfbd..675c955e12 100644 --- a/lib/jkqtmathtext/nodes/jkqtmathtextsqrtnode.cpp +++ b/lib/jkqtmathtext/nodes/jkqtmathtextsqrtnode.cpp @@ -50,30 +50,32 @@ JKQTMathTextSqrtNode::~JKQTMathTextSqrtNode() { childDegree=nullptr; } -void JKQTMathTextSqrtNode::getSizeInternal(QPainter& painter, JKQTMathTextEnvironment currentEv, double& width, double& baselineHeight, double& overallHeight, double& strikeoutPos) { +JKQTMathTextNodeSize JKQTMathTextSqrtNode::getSizeInternal(QPainter& painter, JKQTMathTextEnvironment currentEv) const { + JKQTMathTextNodeSize s; const QFontMetricsF fm(currentEv.getFont(parentMathText), painter.device()); JKQTMathTextEnvironment evSmall=currentEv; evSmall.fontSize=currentEv.fontSize*parentMathText->getSqrtSmallFontFactor(); evSmall.italic=false; - getChild()->getSize(painter, currentEv, width, baselineHeight, overallHeight, strikeoutPos); - const double descent=overallHeight-baselineHeight; + const JKQTMathTextNodeSize cs=getChild()->getSize(painter, currentEv); + const double descent=cs.getDescent(); const double sqrtwidth=fm.boundingRect("X").width()*parentMathText->getSqrtWidthXFactor(); - const double newAscent=qMax(baselineHeight*parentMathText->getSqrtHeightFactor(), fm.ascent()); + const double newAscent=qMax(cs.baselineHeight*parentMathText->getSqrtHeightFactor(), fm.ascent()); const double newDescent=qMax(descent*parentMathText->getSqrtHeightFactor(), fm.descent()); - overallHeight=newAscent+newDescent;; - baselineHeight=newAscent; - width=width+sqrtwidth; + s.overallHeight=newAscent+newDescent; + s.baselineHeight=newAscent; + s.width=cs.width+sqrtwidth; + s.strikeoutPos=cs.strikeoutPos; if (childDegree) { - double degwidth=0, degBH=0, degOH=0, degSP=0; - childDegree->getSize(painter, evSmall, degwidth, degBH, degOH, degSP); + const JKQTMathTextNodeSize ds=childDegree->getSize(painter, evSmall); const double smalltextIndent=0.6*sqrtwidth; - if (degwidth>smalltextIndent) width=width+(degwidth-smalltextIndent); + if (ds.width>smalltextIndent) s.width=s.width+(ds.width-smalltextIndent); } + return s; } -double JKQTMathTextSqrtNode::draw(QPainter& painter, double x, double y, JKQTMathTextEnvironment currentEv) { +double JKQTMathTextSqrtNode::draw(QPainter& painter, double x, double y, JKQTMathTextEnvironment currentEv) const { doDrawBoxes(painter, x, y, currentEv); const QFont f=currentEv.getFont(parentMathText); @@ -82,20 +84,19 @@ double JKQTMathTextSqrtNode::draw(QPainter& painter, double x, double y, JKQTMat evSmall.fontSize=currentEv.fontSize*parentMathText->getSqrtSmallFontFactor(); evSmall.italic=false; - double width=0, baselineHeight=0, overallHeight=0, strikeoutPos=0; - getChild()->getSize(painter, currentEv, width, baselineHeight, overallHeight, strikeoutPos); - const double descent=overallHeight-baselineHeight; + const JKQTMathTextNodeSize cs=getChild()->getSize(painter, currentEv); + const double descent=cs.overallHeight-cs.baselineHeight; const double sqrtwidth=fm.boundingRect("X").width()*parentMathText->getSqrtWidthXFactor(); - const double newAscent=qMax(baselineHeight*parentMathText->getSqrtHeightFactor(), fm.ascent()); + const double newAscent=qMax(cs.baselineHeight*parentMathText->getSqrtHeightFactor(), fm.ascent()); const double newDescent=qMax(descent*parentMathText->getSqrtHeightFactor(), fm.descent()); const double linewidth=fm.lineWidth(); const double tinyhookSize=sqrtwidth*0.1; const double smalltextIndent=0.6*sqrtwidth; - double degwidth=0, degBH=0, degOH=0, degSP=0; - if (childDegree) childDegree->getSize(painter, evSmall, degwidth, degBH, degOH, degSP); - const double degheight=degOH; - const double degree_overwidth=(degwidth>smalltextIndent)?(degwidth-smalltextIndent):0.0; + JKQTMathTextNodeSize ds; + if (childDegree) ds=childDegree->getSize(painter, evSmall); + const double degheight=ds.overallHeight; + const double degree_overwidth=(ds.width>smalltextIndent)?(ds.width-smalltextIndent):0.0; //painter.save(); auto __finalpaint=JKQTPFinally([&painter]() {painter.restore();}); QPen p=painter.pen(); @@ -107,8 +108,8 @@ double JKQTMathTextSqrtNode::draw(QPainter& painter, double x, double y, JKQTMat double xnew=getChild()->draw(painter, x+sqrtwidth+degree_overwidth, y, currentEv); - const bool useAltForm=overallHeight>4.0*sqrtwidth; - const double y_tinyhooktop=y-strikeoutPos; + const bool useAltForm=cs.overallHeight>4.0*sqrtwidth; + const double y_tinyhooktop=y-cs.strikeoutPos; const double y_bottom=y+newDescent-linewidth/2.0; const double y_top=y-newAscent+linewidth/2.0; const double x_start=x+degree_overwidth+linewidth/2.0; @@ -116,7 +117,7 @@ double JKQTMathTextSqrtNode::draw(QPainter& painter, double x, double y, JKQTMat const double x_hookbottom=(!useAltForm)?(x_start+0.33*sqrtwidth):(x_start+0.66*sqrtwidth); const double x_hooktop=(!useAltForm)?(x_start+sqrtwidth):x_hookbottom; const double x_smalltextend=x_start+smalltextIndent; - const double y_smalltext=y_top+degBH+(fabs(y_top-(y_tinyhooktop-linewidth))-degheight)/2.0; + const double y_smalltext=y_top+ds.baselineHeight+(fabs(y_top-(y_tinyhooktop-linewidth))-degheight)/2.0; if (sqrtwidth>0) { QPainterPath path; path.moveTo(x_start, y_tinyhooktop+tinyhookSize); @@ -131,13 +132,13 @@ double JKQTMathTextSqrtNode::draw(QPainter& painter, double x, double y, JKQTMat painter.drawPath(path); } if (childDegree) { - childDegree->draw(painter, x_smalltextend-degwidth, y_smalltext, evSmall); + childDegree->draw(painter, x_smalltextend-ds.width, y_smalltext, evSmall); } return xnew; } -bool JKQTMathTextSqrtNode::toHtml(QString &html, JKQTMathTextEnvironment currentEv, JKQTMathTextEnvironment defaultEv) { +bool JKQTMathTextSqrtNode::toHtml(QString &html, JKQTMathTextEnvironment currentEv, JKQTMathTextEnvironment defaultEv) const { bool ok=true; if (childDegree) { JKQTMathTextEnvironment evSmall=currentEv; diff --git a/lib/jkqtmathtext/nodes/jkqtmathtextsqrtnode.h b/lib/jkqtmathtext/nodes/jkqtmathtextsqrtnode.h index 1a93536836..23a253f0ee 100644 --- a/lib/jkqtmathtext/nodes/jkqtmathtextsqrtnode.h +++ b/lib/jkqtmathtext/nodes/jkqtmathtextsqrtnode.h @@ -45,9 +45,9 @@ class JKQTMATHTEXT_LIB_EXPORT JKQTMathTextSqrtNode: public JKQTMathTextMultiChil JKQTMathTextSqrtNode(JKQTMathText* parent, JKQTMathTextNode* child__, JKQTMathTextNode* childDegree__=nullptr); virtual ~JKQTMathTextSqrtNode() override; /** \copydoc JKQTMathTextNode::draw() */ - virtual double draw(QPainter& painter, double x, double y, JKQTMathTextEnvironment currentEv) override; + virtual double draw(QPainter& painter, double x, double y, JKQTMathTextEnvironment currentEv) const override; /** \copydoc JKQTMathTextNode::toHtml() */ - virtual bool toHtml(QString& html, JKQTMathTextEnvironment currentEv, JKQTMathTextEnvironment defaultEv) override; + virtual bool toHtml(QString& html, JKQTMathTextEnvironment currentEv, JKQTMathTextEnvironment defaultEv) const override; /** \copydoc JKQTMathTextNode::getTypeName() */ virtual QString getTypeName() const override ; @@ -75,7 +75,7 @@ class JKQTMATHTEXT_LIB_EXPORT JKQTMathTextSqrtNode: public JKQTMathTextMultiChil protected: /** \copydoc JKQTMathTextNode::getSizeInternal() */ - virtual void getSizeInternal(QPainter& painter, JKQTMathTextEnvironment currentEv, double& width, double& baselineHeight, double& overallHeight, double& strikeoutPos) override; + virtual JKQTMathTextNodeSize getSizeInternal(QPainter& painter, JKQTMathTextEnvironment currentEv) const override; /** \brief child node for the part under the root */ JKQTMathTextNode* child; /** \brief second child node for the degree of the root (or nullptr if nothing) */ diff --git a/lib/jkqtmathtext/nodes/jkqtmathtextsubsupernode.cpp b/lib/jkqtmathtext/nodes/jkqtmathtextsubsupernode.cpp index e4537ddddd..8faa32abe9 100644 --- a/lib/jkqtmathtext/nodes/jkqtmathtextsubsupernode.cpp +++ b/lib/jkqtmathtext/nodes/jkqtmathtextsubsupernode.cpp @@ -45,48 +45,48 @@ JKQTMathTextSuperscriptNode::JKQTMathTextSuperscriptNode(JKQTMathText* _parent, JKQTMathTextSuperscriptNode::~JKQTMathTextSuperscriptNode() { } -void JKQTMathTextSuperscriptNode::getSizeWithSpecialPlacement(QPainter& painter, JKQTMathTextEnvironment currentEv, double& width, double& baselineHeight, double& overallHeight, double& strikeoutPos, const JKQTMathTextNodeSize* prevNodeSizeForSpecialPlacement) { +JKQTMathTextNodeSize JKQTMathTextSuperscriptNode::getSizeWithSpecialPlacement(QPainter& painter, JKQTMathTextEnvironment currentEv, const JKQTMathTextNodeSize* prevNodeSizeForSpecialPlacement) const{ + JKQTMathTextNodeSize s; JKQTMathTextEnvironment ev=currentEv; ev.fontSize=ev.fontSize*parentMathText->getSubsuperSizeFactor(); const QFontMetricsF fm(currentEv.getFont(parentMathText), painter.device()); const QRectF tbr_of_letterM=JKQTMathTextGetTightBoundingRect(currentEv.getFont(parentMathText), "M", painter.device()); - double cStrikeoutPos=0, cWidth=0, cBaselineHeight=0, cOverallHeight=0; - getChild()->getSize(painter, ev, cWidth, cBaselineHeight, cOverallHeight, cStrikeoutPos); - const double childDescent=cOverallHeight-cBaselineHeight; + const JKQTMathTextNodeSize cs=getChild()->getSize(painter, ev); + const double childDescent=cs.getDescent(); double shiftToChildBottom=parentMathText->getSuperShiftFactor()*fm.xHeight(); if (prevNodeSizeForSpecialPlacement!=nullptr) { - const double modifiedShift=prevNodeSizeForSpecialPlacement->baselineHeight-childDescent-parentMathText->getSpecialSuperShiftFactor()*cBaselineHeight-childDescent; + const double modifiedShift=prevNodeSizeForSpecialPlacement->baselineHeight-childDescent-parentMathText->getSpecialSuperShiftFactor()*cs.baselineHeight-childDescent; if (modifiedShift>shiftToChildBottom) shiftToChildBottom=modifiedShift; } - baselineHeight=overallHeight=cOverallHeight+shiftToChildBottom; - width=cWidth; - if (prevNodeSizeForSpecialPlacement!=nullptr) strikeoutPos=prevNodeSizeForSpecialPlacement->strikeoutPos; - else strikeoutPos=fm.strikeOutPos(); - if (currentEv.italic && prevNodeSizeForSpecialPlacement==nullptr) width=width+double(fm.boundingRect(' ').width())*parentMathText->getItalicCorrectionFactor(); + s.baselineHeight=s.overallHeight=cs.overallHeight+shiftToChildBottom; + s.width=cs.width; + if (prevNodeSizeForSpecialPlacement!=nullptr) s.strikeoutPos=prevNodeSizeForSpecialPlacement->strikeoutPos; + else s.strikeoutPos=fm.strikeOutPos(); + if (currentEv.italic && prevNodeSizeForSpecialPlacement==nullptr) s.width=s.width+double(fm.boundingRect(' ').width())*parentMathText->getItalicCorrectionFactor(); + return s; } -void JKQTMathTextSuperscriptNode::getSizeInternal(QPainter &painter, JKQTMathTextEnvironment currentEv, double &width, double &baselineHeight, double &overallHeight, double &strikeoutPos) +JKQTMathTextNodeSize JKQTMathTextSuperscriptNode::getSizeInternal(QPainter &painter, JKQTMathTextEnvironment currentEv) const { - getSizeWithSpecialPlacement(painter, currentEv, width, baselineHeight, overallHeight, strikeoutPos, nullptr); + return getSizeWithSpecialPlacement(painter, currentEv, nullptr); } -double JKQTMathTextSuperscriptNode::drawWithSpecialPlacement(QPainter& painter, double x, double y, JKQTMathTextEnvironment currentEv, const JKQTMathTextNodeSize* prevNodeSizeForSpecialPlacement) { +double JKQTMathTextSuperscriptNode::drawWithSpecialPlacement(QPainter& painter, double x, double y, JKQTMathTextEnvironment currentEv, const JKQTMathTextNodeSize* prevNodeSizeForSpecialPlacement) const { doDrawBoxes(painter, x, y, currentEv); JKQTMathTextEnvironment ev=currentEv; ev.fontSize=ev.fontSize*parentMathText->getSubsuperSizeFactor(); - double cWidth, cBaselineHeight, cOverallHeight, cStrikeoutPos; - getChild()->getSize(painter, ev, cWidth, cBaselineHeight, cOverallHeight, cStrikeoutPos); + const JKQTMathTextNodeSize cs=getChild()->getSize(painter, ev); const QFontMetricsF fm(currentEv.getFont(parentMathText), painter.device()); - QRectF tbr_of_letterM=JKQTMathTextGetTightBoundingRect(currentEv.getFont(parentMathText), "M", painter.device()); - const double childDescent=cOverallHeight-cBaselineHeight; + //QRectF tbr_of_letterM=JKQTMathTextGetTightBoundingRect(currentEv.getFont(parentMathText), "M", painter.device()); + const double childDescent=cs.overallHeight-cs.baselineHeight; double shiftToChildBottom=parentMathText->getSuperShiftFactor()*fm.xHeight(); if (prevNodeSizeForSpecialPlacement!=nullptr) { - const double modifiedShift=prevNodeSizeForSpecialPlacement->baselineHeight-childDescent-parentMathText->getSpecialSuperShiftFactor()*cBaselineHeight-childDescent; + const double modifiedShift=prevNodeSizeForSpecialPlacement->baselineHeight-childDescent-parentMathText->getSpecialSuperShiftFactor()*cs.baselineHeight-childDescent; if (modifiedShift>shiftToChildBottom) shiftToChildBottom=modifiedShift; } @@ -96,7 +96,7 @@ double JKQTMathTextSuperscriptNode::drawWithSpecialPlacement(QPainter& painter, return getChild()->draw(painter, xx, y-(shiftToChildBottom+childDescent), ev);//+0.5*fm.boundingRect("A").width(); } -double JKQTMathTextSuperscriptNode::draw(QPainter &painter, double x, double y, JKQTMathTextEnvironment currentEv) +double JKQTMathTextSuperscriptNode::draw(QPainter &painter, double x, double y, JKQTMathTextEnvironment currentEv) const { return drawWithSpecialPlacement(painter, x, y, currentEv, nullptr); } @@ -108,7 +108,7 @@ QString JKQTMathTextSuperscriptNode::getTypeName() const } -bool JKQTMathTextSuperscriptNode::toHtml(QString &html, JKQTMathTextEnvironment currentEv, JKQTMathTextEnvironment defaultEv) +bool JKQTMathTextSuperscriptNode::toHtml(QString &html, JKQTMathTextEnvironment currentEv, JKQTMathTextEnvironment defaultEv) const { html=html+""; bool ok=getChild()->toHtml(html, currentEv, defaultEv); @@ -131,55 +131,55 @@ JKQTMathTextSubscriptNode::~JKQTMathTextSubscriptNode() { } -void JKQTMathTextSubscriptNode::getSizeWithSpecialPlacement(QPainter& painter, JKQTMathTextEnvironment currentEv, double& width, double& baselineHeight, double& overallHeight, double& strikeoutPos, const JKQTMathTextNodeSize* prevNodeSizeForSpecialPlacement) { +JKQTMathTextNodeSize JKQTMathTextSubscriptNode::getSizeWithSpecialPlacement(QPainter& painter, JKQTMathTextEnvironment currentEv, const JKQTMathTextNodeSize* prevNodeSizeForSpecialPlacement) const { + JKQTMathTextNodeSize s; JKQTMathTextEnvironment ev=currentEv; ev.fontSize=ev.fontSize*parentMathText->getSubsuperSizeFactor(); const QFontMetricsF fm(ev.getFont(parentMathText), painter.device()); //const QRectF tbr_of_letterM=JKQTMathTextGetTightBoundingRect(currentEv.getFont(parentMathText), "M", painter.device()); const double italic_xshift=qMax(0.0,-fm.rightBearing('x'));// double(fm.boundingRect('x').width())*parentMathText->getItalicCorrectionFactor(); - double cWidth=0, cBaselineHeight=0, cOverallHeight=0, cStrikeoutPos=0; - getChild()->getSize(painter, ev, cWidth, cBaselineHeight, cOverallHeight, cStrikeoutPos); - //const double childDescent=cOverallHeight-cBaselineHeight; - double shift_to_childBaseline=cBaselineHeight-parentMathText->getSubShiftFactor()*fm.xHeight(); + const JKQTMathTextNodeSize cs=getChild()->getSize(painter, ev); + //const double childDescent=cs.overallHeight-cs.baselineHeight; + double shift_to_childBaseline=cs.baselineHeight-parentMathText->getSubShiftFactor()*fm.xHeight(); if (prevNodeSizeForSpecialPlacement!=nullptr) { //qDebug()<<"oldshift="<overallHeight="<overallHeight<<", prevNodeSize->baselineHeight="<baselineHeight; const double parentDescent=prevNodeSizeForSpecialPlacement->overallHeight-prevNodeSizeForSpecialPlacement->baselineHeight; - const double newShift=parentDescent+parentMathText->getSpecialSubShiftFactor()*cBaselineHeight; + const double newShift=parentDescent+parentMathText->getSpecialSubShiftFactor()*cs.baselineHeight; if (newShift>shift_to_childBaseline) shift_to_childBaseline=newShift; //qDebug()<<"newshift="<strikeoutPos; - else strikeoutPos=fm.strikeOutPos(); - width=cWidth; - if (currentEv.italic && prevNodeSizeForSpecialPlacement==nullptr) width=width-italic_xshift; + s.baselineHeight=cs.baselineHeight-shift_to_childBaseline; + s.overallHeight=cs.overallHeight; + if (prevNodeSizeForSpecialPlacement!=nullptr) s.strikeoutPos=prevNodeSizeForSpecialPlacement->strikeoutPos; + else s.strikeoutPos=fm.strikeOutPos(); + s.width=cs.width; + if (currentEv.italic && prevNodeSizeForSpecialPlacement==nullptr) s.width=s.width-italic_xshift; + return s; } -void JKQTMathTextSubscriptNode::getSizeInternal(QPainter &painter, JKQTMathTextEnvironment currentEv, double &width, double &baselineHeight, double &overallHeight, double &strikeoutPos) +JKQTMathTextNodeSize JKQTMathTextSubscriptNode::getSizeInternal(QPainter &painter, JKQTMathTextEnvironment currentEv) const { - getSizeWithSpecialPlacement(painter, currentEv, width, baselineHeight, overallHeight, strikeoutPos, nullptr); + return getSizeWithSpecialPlacement(painter, currentEv, nullptr); } -double JKQTMathTextSubscriptNode::drawWithSpecialPlacement(QPainter& painter, double x, double y, JKQTMathTextEnvironment currentEv, const JKQTMathTextNodeSize* prevNodeSizeForSpecialPlacement) { +double JKQTMathTextSubscriptNode::drawWithSpecialPlacement(QPainter& painter, double x, double y, JKQTMathTextEnvironment currentEv, const JKQTMathTextNodeSize* prevNodeSizeForSpecialPlacement) const { doDrawBoxes(painter, x, y, currentEv); JKQTMathTextEnvironment ev=currentEv; ev.fontSize=ev.fontSize*parentMathText->getSubsuperSizeFactor(); const QFontMetricsF fm(ev.getFont(parentMathText), painter.device()); //const QRectF tbr_of_letterM=JKQTMathTextGetTightBoundingRect(currentEv.getFont(parentMathText), "M", painter.device()); - double cWidth=0, cBaselineHeight=0, cOverallHeight=0, cStrikeoutPos=0; - getChild()->getSize(painter, ev, cWidth, cBaselineHeight, cOverallHeight, cStrikeoutPos); - double shift_to_childBaseline=cBaselineHeight-parentMathText->getSubShiftFactor()*fm.xHeight(); + const JKQTMathTextNodeSize cs=getChild()->getSize(painter, ev); + double shift_to_childBaseline=cs.baselineHeight-parentMathText->getSubShiftFactor()*fm.xHeight(); const double italic_xshift=qMax(0.0,-fm.rightBearing('x'));// double(fm.boundingRect('x').width())*parentMathText->getItalicCorrectionFactor(); if (prevNodeSizeForSpecialPlacement!=nullptr) { //qDebug()<<"oldshift="<overallHeight="<overallHeight<<", prevNodeSize->baselineHeight="<baselineHeight; const double parentDescent=prevNodeSizeForSpecialPlacement->overallHeight-prevNodeSizeForSpecialPlacement->baselineHeight; - const double newShift=parentDescent+parentMathText->getSpecialSubShiftFactor()*cBaselineHeight; + const double newShift=parentDescent+parentMathText->getSpecialSubShiftFactor()*cs.baselineHeight; if (newShift>shift_to_childBaseline) shift_to_childBaseline=newShift; //qDebug()<<"newshift="<draw(painter, xx, y+shift_to_childBaseline, ev);//+0.5*fm.boundingRect("A").width(); } -double JKQTMathTextSubscriptNode::draw(QPainter &painter, double x, double y, JKQTMathTextEnvironment currentEv) +double JKQTMathTextSubscriptNode::draw(QPainter &painter, double x, double y, JKQTMathTextEnvironment currentEv) const { return drawWithSpecialPlacement(painter, x, y, currentEv, nullptr); } @@ -204,7 +204,7 @@ QString JKQTMathTextSubscriptNode::getTypeName() const return "MTsubscriptNode"; } -bool JKQTMathTextSubscriptNode::toHtml(QString &html, JKQTMathTextEnvironment currentEv, JKQTMathTextEnvironment defaultEv) { +bool JKQTMathTextSubscriptNode::toHtml(QString &html, JKQTMathTextEnvironment currentEv, JKQTMathTextEnvironment defaultEv) const { html=html+""; bool ok=getChild()->toHtml(html, currentEv, defaultEv); html=html+""; diff --git a/lib/jkqtmathtext/nodes/jkqtmathtextsubsupernode.h b/lib/jkqtmathtext/nodes/jkqtmathtextsubsupernode.h index 1602bce325..2d6a706107 100644 --- a/lib/jkqtmathtext/nodes/jkqtmathtextsubsupernode.h +++ b/lib/jkqtmathtext/nodes/jkqtmathtextsubsupernode.h @@ -51,30 +51,30 @@ public: * * \return the x position which to use for the next part of the text */ - double drawWithSpecialPlacement(QPainter& painter, double x, double y, JKQTMathTextEnvironment currentEv, const JKQTMathTextNodeSize* prevNodeSizeForSpecialPlacement); + double drawWithSpecialPlacement(QPainter& painter, double x, double y, JKQTMathTextEnvironment currentEv, const JKQTMathTextNodeSize* prevNodeSizeForSpecialPlacement) const; /** \copydoc JKQTMathTextNode::draw() */ - virtual double draw(QPainter& painter, double x, double y, JKQTMathTextEnvironment currentEv) override; + virtual double draw(QPainter& painter, double x, double y, JKQTMathTextEnvironment currentEv) const override; /** \copydoc JKQTMathTextNode::getTypeName() */ virtual QString getTypeName() const override; /** \brief returns the child node */ /** \copydoc JKQTMathTextNode::toHtml() */ - virtual bool toHtml(QString& html, JKQTMathTextEnvironment currentEv, JKQTMathTextEnvironment defaultEv) override; + virtual bool toHtml(QString& html, JKQTMathTextEnvironment currentEv, JKQTMathTextEnvironment defaultEv) const override; /** \brief like getSize(), i.e. determine the size of the node, but cares for subscript with special placement rules after large blocks (e.g. braces), when \a prevNodeSizeForSpecialPlacement is not \c nullptr * * \param painter painter to use for determining the size * \param currentEv current environment object - * \param[out] width width of the block/node - * \param[out] baselineHeight distance from the bottom of the block/node-box to the baseline - * \param[out] overallHeight overall height (bottom to top) of the node, the ascent is \c overallHeight-baselineHeight - * \param[out] strikeoutPos position of the strikeout-line * \param[in] prevNodeSizeForSpecialPlacement optional parameter, describing the size of the previous node (on the left). This may be used for layout of some nodes (e.g. sub/super to move correctly next to large parantheses ...) * */ - void getSizeWithSpecialPlacement(QPainter& painter, JKQTMathTextEnvironment currentEv, double& width, double& baselineHeight, double& overallHeight, double& strikeoutPos, const JKQTMathTextNodeSize* prevNodeSizeForSpecialPlacement); + JKQTMathTextNodeSize getSizeWithSpecialPlacement(QPainter& painter, JKQTMathTextEnvironment currentEv, const JKQTMathTextNodeSize* prevNodeSizeForSpecialPlacement) const; protected: /** \copydoc JKQTMathTextNode::getSizeInternal() */ - virtual void getSizeInternal(QPainter& painter, JKQTMathTextEnvironment currentEv, double& width, double& baselineHeight, double& overallHeight, double& strikeoutPos) override; + virtual JKQTMathTextNodeSize getSizeInternal(QPainter& painter, JKQTMathTextEnvironment currentEv) const override; }; + + + + /** \brief subclass representing an superscript node with exactly one argument in the syntax tree * \ingroup jkqtmathtext_items * @@ -96,28 +96,24 @@ public: * * \return the x position which to use for the next part of the text */ - double drawWithSpecialPlacement(QPainter& painter, double x, double y, JKQTMathTextEnvironment currentEv, const JKQTMathTextNodeSize* prevNodeSizeForSpecialPlacement); + double drawWithSpecialPlacement(QPainter& painter, double x, double y, JKQTMathTextEnvironment currentEv, const JKQTMathTextNodeSize* prevNodeSizeForSpecialPlacement) const; /** \copydoc JKQTMathTextNode::draw() */ - virtual double draw(QPainter& painter, double x, double y, JKQTMathTextEnvironment currentEv) override; + virtual double draw(QPainter& painter, double x, double y, JKQTMathTextEnvironment currentEv) const override; /** \copydoc JKQTMathTextNode::getTypeName() */ virtual QString getTypeName() const override; /** \copydoc JKQTMathTextNode::toHtml() */ - virtual bool toHtml(QString& html, JKQTMathTextEnvironment currentEv, JKQTMathTextEnvironment defaultEv) override; + virtual bool toHtml(QString& html, JKQTMathTextEnvironment currentEv, JKQTMathTextEnvironment defaultEv) const override; /** \brief like getSize(), i.e. determine the size of the node, but cares for superscript with special placement rules after large blocks (e.g. braces), when \a prevNodeSizeForSpecialPlacement is not \c nullptr * * \param painter painter to use for determining the size * \param currentEv current environment object - * \param[out] width width of the block/node - * \param[out] baselineHeight distance from the bottom of the block/node-box to the baseline - * \param[out] overallHeight overall height (bottom to top) of the node, the ascent is \c overallHeight-baselineHeight - * \param[out] strikeoutPos position of the strikeout-line * \param[in] prevNodeSizeForSpecialPlacement optional parameter, describing the size of the previous node (on the left). This may be used for layout of some nodes (e.g. sub/super to move correctly next to large parantheses ...) * */ - void getSizeWithSpecialPlacement(QPainter& painter, JKQTMathTextEnvironment currentEv, double& width, double& baselineHeight, double& overallHeight, double& strikeoutPos, const JKQTMathTextNodeSize* prevNodeSizeForSpecialPlacement) ; + JKQTMathTextNodeSize getSizeWithSpecialPlacement(QPainter& painter, JKQTMathTextEnvironment currentEv, const JKQTMathTextNodeSize* prevNodeSizeForSpecialPlacement) const; protected: /** \copydoc JKQTMathTextNode::getSizeInternal() */ - virtual void getSizeInternal(QPainter& painter, JKQTMathTextEnvironment currentEv, double& width, double& baselineHeight, double& overallHeight, double& strikeoutPos) override; + virtual JKQTMathTextNodeSize getSizeInternal(QPainter& painter, JKQTMathTextEnvironment currentEv) const override; }; #endif // JKQTMATHTEXTSUBSUPERSCRIPTNODE_H diff --git a/lib/jkqtmathtext/nodes/jkqtmathtextsymbolnode.cpp b/lib/jkqtmathtext/nodes/jkqtmathtextsymbolnode.cpp index b9b95869a3..d0b3f46189 100644 --- a/lib/jkqtmathtext/nodes/jkqtmathtextsymbolnode.cpp +++ b/lib/jkqtmathtext/nodes/jkqtmathtextsymbolnode.cpp @@ -51,63 +51,8 @@ QString JKQTMathTextSymbolNode::getTypeName() const } -void JKQTMathTextSymbolNode::getSizeInternal(QPainter& painter, JKQTMathTextEnvironment currentEv, double& width, double& baselineHeight, double& overallHeight, double& strikeoutPos) { - double dummy1, dummy2; - getSymbolSizeInternal(painter, currentEv, width, baselineHeight, overallHeight, strikeoutPos, dummy1, dummy2); -} - -void JKQTMathTextSymbolNode::getSymbolSizeInternal(QPainter &painter, JKQTMathTextEnvironment currentEv, double &width, double &baselineHeight, double &overallHeight, double &strikeoutPos, double &subSuperXCorrection, double &subBesidesXCorrection) -{ - const auto fullProps=symbols.value(symbolName, SymbolFullProps()); - const GlobalSymbolFlags globalFlags=fullProps.globalFlags; - const auto drawProps=fullProps.getDrawingData(currentEv, parentMathText); - const QFont f=drawProps.first; - const QFontMetricsF fm(f); - const JKQTMathTextSymbolNode::SymbolProps symprops=drawProps.second; - const SymbolFlags symflags=symprops.flags; - const QString sym=symprops.symbol; - const QRectF tbr=getTightBoundingRect(fm, sym, globalFlags); - const QRectF br=getBoundingRect(fm, sym, globalFlags); - const QRectF tbrNoSymbol=JKQTMathTextGetTightBoundingRect(f, "X", painter.device()); - const QRectF mintbr=JKQTMathTextGetTightBoundingRect(f, "(", painter.device()); - //const double yShift=symprops.yShiftFactor*tbr.height(); - - - if (currentEv.insideMath) { - width=qMax(br.width(), mintbr.width()); - if (has(globalFlags, SmallExtendWidthInMathmode)) { - if (!symprops.getSymbolSingleChar().isNull()) width=width*(1.0+(parentMathText->getMathoperatorWidthFactor()-1.0)/5.0); - else width=width+mintbr.width()*0.15; - } else if (has(globalFlags, ExtendWidthInMathmode)) { - if (!symprops.getSymbolSingleChar().isNull()) width=width*parentMathText->getMathoperatorWidthFactor(); - else width=width+mintbr.width()*0.5; - } - } else { - width=br.width(); - } - if (!sym.isEmpty()) { - overallHeight=tbr.height(); - baselineHeight=tbr.height()-tbr.bottom(); - } else { - overallHeight=tbrNoSymbol.height(); - baselineHeight=tbrNoSymbol.height()-tbrNoSymbol.bottom(); - width=tbrNoSymbol.width(); - } - const double oldDescent=overallHeight-baselineHeight; - - if (has(symflags, HeightIsAscent)) { - baselineHeight=fm.ascent(); - overallHeight=baselineHeight+oldDescent; - } - if (has(symflags, RotateSymbol90)) { - width=qMax(overallHeight, width); - } - strikeoutPos=fm.strikeOutPos(); - - if (has(globalFlags, IntLikeSymbolCorrection)) { - subSuperXCorrection=parentMathText->getIntSubSuperXCorrectionFactor()*tbr.width(); - subBesidesXCorrection=parentMathText->getIntSubBesidesXCorrectionXFactor()*JKQTMathTextGetTightBoundingRect(f, "X", painter.device()).width(); - } +JKQTMathTextNodeSize JKQTMathTextSymbolNode::getSizeInternal(QPainter& painter, JKQTMathTextEnvironment currentEv) const { + return getSymbolSize(painter, currentEv); } QRectF JKQTMathTextSymbolNode::getBoundingRect(const QFontMetricsF &fm, const QString &text, GlobalSymbolFlags globalFlags) @@ -193,12 +138,9 @@ void JKQTMathTextSymbolNode::drawText(QPainter &p, const QString &text, GlobalSy } -double JKQTMathTextSymbolNode::draw(QPainter& painter, double x, double y, JKQTMathTextEnvironment currentEv) { - doDrawBoxes(painter, x, y, currentEv); - double width=0; - double baselineHeight=0; - double overallHeight=0, strikeoutPos=0; - getSize(painter, currentEv, width, baselineHeight, overallHeight, strikeoutPos); +double JKQTMathTextSymbolNode::draw(QPainter& painter, double x, double y, JKQTMathTextEnvironment currentEv) const { + const NodeSize s=getSymbolSize(painter, currentEv); + doDrawBoxes(painter, x, y, s); const auto fullProps=symbols.value(symbolName, SymbolFullProps()); const GlobalSymbolFlags globalFlags=fullProps.globalFlags; @@ -215,7 +157,7 @@ double JKQTMathTextSymbolNode::draw(QPainter& painter, double x, double y, JKQTM //const QRectF br=getBoundingRect(fm, sym, globalFlags); const QRectF tbrNoSymbol=JKQTMathTextGetTightBoundingRect(f, "X", painter.device()); const double yShift=symprops.yShiftFactor*tbr.height(); - const double xShift=(width-tbr.width())/2.0; + const double xShift=(s.width-tbr.width())/2.0; const QPointF x0(x+xShift-tbr.x(), y+yShift); double italic_xcorrection=fabs(tbr.width()-tbrNonItalic.width()); if (fabs(italic_xcorrection)<1e-6) italic_xcorrection=double(fm.boundingRect(' ').width())*parentMathText->getItalicCorrectionFactor(); @@ -250,11 +192,11 @@ double JKQTMathTextSymbolNode::draw(QPainter& painter, double x, double y, JKQTM } if (has(symflags, DrawSlash)) { //qDebug()<<" -> DrawSlash"; - painter.drawText(QPointF((width-fm.boundingRect('/').width())/2.0,0),"/"); + painter.drawText(QPointF((s.width-fm.boundingRect('/').width())/2.0,0),"/"); } if (has(symflags, DrawBackSlash)) { //qDebug()<<" -> DrawBackSlash"; - painter.drawText(QPointF((width-fm.boundingRect('\\').width())/2.0,0),"\\"); + painter.drawText(QPointF((s.width-fm.boundingRect('\\').width())/2.0,0),"\\"); } /*painter.save(); painter.setPen(QPen(QColor("red"), 0.5, Qt::DotLine)); @@ -269,10 +211,10 @@ double JKQTMathTextSymbolNode::draw(QPainter& painter, double x, double y, JKQTM painter.drawRect(QRectF(x0.x(), x0.y()-tbrNoSymbol.height(), tbrNoSymbol.width(), tbrNoSymbol.height())); } - return x+width; + return x+s.width; } -bool JKQTMathTextSymbolNode::toHtml(QString &html, JKQTMathTextEnvironment currentEv, JKQTMathTextEnvironment defaultEv) { +bool JKQTMathTextSymbolNode::toHtml(QString &html, JKQTMathTextEnvironment currentEv, JKQTMathTextEnvironment defaultEv) const { bool ok=true; const auto props=symbols.value(symbolName, SymbolFullProps()); QString s=props.html.symbol; @@ -288,10 +230,60 @@ QString JKQTMathTextSymbolNode::getSymbolName() const { return this->symbolName; } -JKQTMathTextSymbolNode::NodeSize JKQTMathTextSymbolNode::getSymbolSize(QPainter &painter, JKQTMathTextEnvironment currentEv) +JKQTMathTextSymbolNode::NodeSize JKQTMathTextSymbolNode::getSymbolSize(QPainter &painter, JKQTMathTextEnvironment currentEv) const { NodeSize s; - getSymbolSizeInternal(painter, currentEv, s.width, s.baselineHeight, s.overallHeight, s.strikeoutPos, s.subSuperXCorrection, s.subBesidesXCorrection); + + const auto fullProps=symbols.value(symbolName, SymbolFullProps()); + const GlobalSymbolFlags globalFlags=fullProps.globalFlags; + const auto drawProps=fullProps.getDrawingData(currentEv, parentMathText); + const QFont f=drawProps.first; + const QFontMetricsF fm(f); + const JKQTMathTextSymbolNode::SymbolProps symprops=drawProps.second; + const SymbolFlags symflags=symprops.flags; + const QString sym=symprops.symbol; + const QRectF tbr=getTightBoundingRect(fm, sym, globalFlags); + const QRectF br=getBoundingRect(fm, sym, globalFlags); + const QRectF tbrNoSymbol=JKQTMathTextGetTightBoundingRect(f, "X", painter.device()); + const QRectF mintbr=JKQTMathTextGetTightBoundingRect(f, "(", painter.device()); + //const double yShift=symprops.yShiftFactor*tbr.height(); + + if (currentEv.insideMath) { + s.width=qMax(br.width(), mintbr.width()); + if (has(globalFlags, SmallExtendWidthInMathmode)) { + if (!symprops.getSymbolSingleChar().isNull()) s.width=s.width*(1.0+(parentMathText->getMathoperatorWidthFactor()-1.0)/5.0); + else s.width=s.width+mintbr.width()*0.15; + } else if (has(globalFlags, ExtendWidthInMathmode)) { + if (!symprops.getSymbolSingleChar().isNull()) s.width=s.width*parentMathText->getMathoperatorWidthFactor(); + else s.width=s.width+mintbr.width()*0.5; + } + } else { + s.width=br.width(); + } + if (!sym.isEmpty()) { + s.overallHeight=tbr.height(); + s.baselineHeight=tbr.height()-tbr.bottom(); + } else { + s.overallHeight=tbrNoSymbol.height(); + s.baselineHeight=tbrNoSymbol.height()-tbrNoSymbol.bottom(); + s.width=tbrNoSymbol.width(); + } + const double oldDescent=s.overallHeight-s.baselineHeight; + + if (has(symflags, HeightIsAscent)) { + s.baselineHeight=fm.ascent(); + s.overallHeight=s.baselineHeight+oldDescent; + } + if (has(symflags, RotateSymbol90)) { + s.width=qMax(s.overallHeight, s.width); + } + s.strikeoutPos=fm.strikeOutPos(); + + if (has(globalFlags, IntLikeSymbolCorrection)) { + s.subSuperXCorrection=parentMathText->getIntSubSuperXCorrectionFactor()*tbr.width(); + s.subBesidesXCorrection=parentMathText->getIntSubBesidesXCorrectionXFactor()*JKQTMathTextGetTightBoundingRect(f, "X", painter.device()).width(); + } + return s; } diff --git a/lib/jkqtmathtext/nodes/jkqtmathtextsymbolnode.h b/lib/jkqtmathtext/nodes/jkqtmathtextsymbolnode.h index 07c60ab0ad..2cd68cb5d3 100644 --- a/lib/jkqtmathtext/nodes/jkqtmathtextsymbolnode.h +++ b/lib/jkqtmathtext/nodes/jkqtmathtextsymbolnode.h @@ -62,9 +62,9 @@ class JKQTMATHTEXT_LIB_EXPORT JKQTMathTextSymbolNode: public JKQTMathTextNode { /** \copydoc JKQTMathTextNode::getTypeName() */ virtual QString getTypeName() const override; /** \copydoc JKQTMathTextNode::draw() */ - virtual double draw(QPainter& painter, double x, double y, JKQTMathTextEnvironment currentEv) override; + virtual double draw(QPainter& painter, double x, double y, JKQTMathTextEnvironment currentEv) const override; /** \copydoc JKQTMathTextNode::toHtml() */ - virtual bool toHtml(QString& html, JKQTMathTextEnvironment currentEv, JKQTMathTextEnvironment defaultEv) override; + virtual bool toHtml(QString& html, JKQTMathTextEnvironment currentEv, JKQTMathTextEnvironment defaultEv) const override; /** \copydoc symbolName */ QString getSymbolName() const; /** \brief return type for getSymbolSize(), extends JKQTMathTextNodeSize with information about x-correction for sub- and superscript */ @@ -88,7 +88,7 @@ class JKQTMATHTEXT_LIB_EXPORT JKQTMathTextSymbolNode: public JKQTMathTextNode { * * \return all important size properties, packed into a NodeSize struct */ - NodeSize getSymbolSize(QPainter& painter, JKQTMathTextEnvironment currentEv); + NodeSize getSymbolSize(QPainter& painter, JKQTMathTextEnvironment currentEv) const; /** \brief checks whether the given symbol name can be prepresented by this type of node */ static bool hasSymbol(const QString& symbolName); /** \brief return a list of all defined symbols */ @@ -101,9 +101,7 @@ class JKQTMATHTEXT_LIB_EXPORT JKQTMathTextSymbolNode: public JKQTMathTextNode { static int getSymbolLength(const QString& symbolName); protected: /** \copydoc JKQTMathTextNode::getSizeInternal() */ - virtual void getSizeInternal(QPainter& painter, JKQTMathTextEnvironment currentEv, double& width, double& baselineHeight, double& overallHeight, double& strikeoutPos) override; - /** \copydoc JKQTMathTextSymbolNode::getSymbolSize() */ - virtual void getSymbolSizeInternal(QPainter& painter, JKQTMathTextEnvironment currentEv, double& width, double& baselineHeight, double& overallHeight, double& strikeoutPos, double& subSuperXCorrection, double& subBesidesXCorrection) ; + virtual JKQTMathTextNodeSize getSizeInternal(QPainter& painter, JKQTMathTextEnvironment currentEv) const override; /** \brief this string will be sent to the drawText method with properly set fonts */ diff --git a/lib/jkqtmathtext/nodes/jkqtmathtexttextnode.cpp b/lib/jkqtmathtext/nodes/jkqtmathtexttextnode.cpp index 1db3fbe250..40c6dce208 100644 --- a/lib/jkqtmathtext/nodes/jkqtmathtexttextnode.cpp +++ b/lib/jkqtmathtext/nodes/jkqtmathtexttextnode.cpp @@ -63,7 +63,7 @@ QString JKQTMathTextTextBaseNode::textTransform(const QString &text, const JKQTM } -bool JKQTMathTextTextBaseNode::toHtml(QString &html, JKQTMathTextEnvironment currentEv, JKQTMathTextEnvironment defaultEv) { +bool JKQTMathTextTextBaseNode::toHtml(QString &html, JKQTMathTextEnvironment currentEv, JKQTMathTextEnvironment defaultEv) const { html=html +currentEv.toHtmlStart(defaultEv, parentMathText) +textTransform(text, currentEv).toHtmlEscaped() @@ -121,19 +121,16 @@ JKQTMathTextTextNode::JKQTMathTextTextNode(JKQTMathText* _parent, const QString& JKQTMathTextTextNode::~JKQTMathTextTextNode() = default; -void JKQTMathTextTextNode::getSizeInternal(QPainter& painter, JKQTMathTextEnvironment currentEv, double& width, double& baselineHeight, double& overallHeight, double& strikeoutPos) { - QStringList textpart; - QList fontMode; - QList textpartXPos; - getSizeInternalAndData(painter, currentEv, width, baselineHeight, overallHeight, strikeoutPos,textpart, fontMode, textpartXPos); +JKQTMathTextNodeSize JKQTMathTextTextNode::getSizeInternal(QPainter& painter, JKQTMathTextEnvironment currentEv) const { + return calcLayout(painter, currentEv); } -void JKQTMathTextTextNode::getSizeInternalAndData(QPainter &painter, JKQTMathTextEnvironment currentEv, double &width, double &baselineHeight, double &overallHeight, double &strikeoutPos, QStringList &textpart, QList &fontMode, QList &textpartXPos) +JKQTMathTextTextNode::LayoutInfo JKQTMathTextTextNode::calcLayout(QPainter &painter, JKQTMathTextEnvironment currentEv) const { - textpart.clear(); - fontMode.clear(); + LayoutInfo l; + const QString txt=textTransform(text, currentEv); - splitTextForLayout(painter, currentEv, txt, textpart, fontMode); + splitTextForLayout(painter, currentEv, txt, l.textpart, l.fontMode); const QFont f=currentEv.getFont(parentMathText); const QFont fUpright=JKQTMathTextGetNonItalic(f); @@ -148,44 +145,45 @@ void JKQTMathTextTextNode::getSizeInternalAndData(QPainter &painter, JKQTMathTex #else const double sp=fm.width(' '); #endif - width=0; + l.width=0; double ascent=0; double descent=0; - for (int i=0; i0 && textpart[i].at(textpart[i].size()-1).isSpace()) { + l.textpartXPos.append(l.width); + l.width+=br.width(); + if (l.textpart[i].size()>0 && l.textpart[i].at(l.textpart[i].size()-1).isSpace()) { // this correction is necessary, because it seems that QFontMetricsF::boundingRect() ignores trailing spaces - width+=sp; + l.width+=sp; } const double thisAscent=-tbr.top(); const double thisDescent=tbr.bottom(); ascent=qMax(ascent, thisAscent); descent=qMax(descent, thisDescent); } - overallHeight=(ascent+descent); //fm.height(); - baselineHeight=ascent; - strikeoutPos=fm.strikeOutPos(); + l.overallHeight=(ascent+descent); //fm.height(); + l.baselineHeight=ascent; + l.strikeoutPos=fm.strikeOutPos(); + return l; } void JKQTMathTextTextNode::splitTextForLayout(QPainter &painter, JKQTMathTextEnvironment currentEv, const QString &txt, QStringList &textpart, QList &fontMode) const @@ -275,16 +273,9 @@ void JKQTMathTextTextNode::splitTextForLayout(QPainter &painter, JKQTMathTextEnv } } -double JKQTMathTextTextNode::draw(QPainter& painter, double x, double y, JKQTMathTextEnvironment currentEv) { - doDrawBoxes(painter, x, y, currentEv); - double width=0; - double baselineHeight=0; - double overallHeight=0; - double sp=0; - QStringList textpart; - QList textpartXPos; - QList fontMode; - getSizeInternalAndData(painter, currentEv, width, baselineHeight, overallHeight, sp, textpart, fontMode, textpartXPos); +double JKQTMathTextTextNode::draw(QPainter& painter, double x, double y, JKQTMathTextEnvironment currentEv) const { + const LayoutInfo l=calcLayout(painter, currentEv); + doDrawBoxes(painter, x, y, l); const QFont f=currentEv.getFont(parentMathText); @@ -303,32 +294,32 @@ double JKQTMathTextTextNode::draw(QPainter& painter, double x, double y, JKQTMat //qDebug()<<"JKQTMathTextTextNode: text="<0; @@ -468,14 +459,10 @@ bool JKQTMathTextVerbatimNode::toHtml(QString &html, JKQTMathTextEnvironment cur return true; } -void JKQTMathTextVerbatimNode::getSizeInternal(QPainter &painter, JKQTMathTextEnvironment currentEv, double &width, double &baselineHeight, double &overallHeight, double &strikeoutPos) +JKQTMathTextNodeSize JKQTMathTextVerbatimNode::getSizeInternal(QPainter &painter, JKQTMathTextEnvironment currentEv) const { transformEnvironment(currentEv); - const LayoutInfo l=calcLayout(painter, currentEv); - width=l.width; - overallHeight=l.overallHeight; - baselineHeight=l.baselineHeight; - strikeoutPos=l.strikeoutPos; + return calcLayout(painter, currentEv); } void JKQTMathTextVerbatimNode::transformEnvironment(JKQTMathTextEnvironment ¤tEv) const @@ -592,3 +579,38 @@ JKQTMathTextVerbatimNode::LayoutInfo::LayoutInfo(): { } + +JKQTMathTextTextNode::LayoutInfo::LayoutInfo(): + JKQTMathTextNodeSize(), + textpart(), fontMode(), textpartXPos() +{ + +} + +JKQTMathTextTextNode::LayoutInfo::LayoutInfo(const LayoutInfo &other): + LayoutInfo() +{ + operator=(other); +} + +JKQTMathTextTextNode::LayoutInfo::LayoutInfo(const JKQTMathTextNodeSize &other): + LayoutInfo() +{ + operator=(other); +} + +JKQTMathTextTextNode::LayoutInfo &JKQTMathTextTextNode::LayoutInfo::operator=(const LayoutInfo &other) { + JKQTMathTextNodeSize::operator=(other); + textpart=other.textpart; + fontMode=other.fontMode; + textpartXPos=other.textpartXPos; + return *this; +} + +JKQTMathTextTextNode::LayoutInfo &JKQTMathTextTextNode::LayoutInfo::operator=(const JKQTMathTextNodeSize &other) { + JKQTMathTextNodeSize::operator=(other); + textpart.clear(); + fontMode.clear(); + textpartXPos.clear(); + return *this; +} diff --git a/lib/jkqtmathtext/nodes/jkqtmathtexttextnode.h b/lib/jkqtmathtext/nodes/jkqtmathtexttextnode.h index bf491ad6e7..75a81fafa4 100644 --- a/lib/jkqtmathtext/nodes/jkqtmathtexttextnode.h +++ b/lib/jkqtmathtext/nodes/jkqtmathtexttextnode.h @@ -46,7 +46,7 @@ class JKQTMATHTEXT_LIB_EXPORT JKQTMathTextTextBaseNode: public JKQTMathTextNode explicit JKQTMathTextTextBaseNode(JKQTMathText* parent, const QString& text); virtual ~JKQTMathTextTextBaseNode() override; /** \copydoc JKQTMathTextNode::toHtml() */ - virtual bool toHtml(QString& html, JKQTMathTextEnvironment currentEv, JKQTMathTextEnvironment defaultEv) override; + virtual bool toHtml(QString& html, JKQTMathTextEnvironment currentEv, JKQTMathTextEnvironment defaultEv) const override; /** \copydoc text */ QString getText() const; protected: @@ -65,7 +65,7 @@ class JKQTMATHTEXT_LIB_EXPORT JKQTMathTextTextNode: public JKQTMathTextTextBaseN explicit JKQTMathTextTextNode(JKQTMathText* parent, const QString& text, bool addWhitespace, bool stripInnerWhitepace=false); virtual ~JKQTMathTextTextNode() override; /** \copydoc JKQTMathTextNode::draw() */ - virtual double draw(QPainter& painter, double x, double y, JKQTMathTextEnvironment currentEv) override; + virtual double draw(QPainter& painter, double x, double y, JKQTMathTextEnvironment currentEv) const override; /** \copydoc JKQTMathTextNode::getTypeName() */ virtual QString getTypeName() const override ; /** \brief remove trailing whitespace, is used by simplifyJKQTMathTextNode() */ @@ -82,9 +82,24 @@ class JKQTMATHTEXT_LIB_EXPORT JKQTMathTextTextNode: public JKQTMathTextTextBaseN FMfallbackSymbol, /*!< \brief use JKQTMathText::getFallbackFontSymbols() */ }; /** \copydoc JKQTMathTextNode::getSizeInternal() */ - virtual void getSizeInternal(QPainter& painter, JKQTMathTextEnvironment currentEv, double& width, double& baselineHeight, double& overallHeight, double& strikeoutPos) override; + virtual JKQTMathTextNodeSize getSizeInternal(QPainter& painter, JKQTMathTextEnvironment currentEv) const override; + + /** \brief describes the layout of the whole node */ + struct LayoutInfo: public JKQTMathTextNodeSize { + LayoutInfo(); + LayoutInfo(const LayoutInfo& other); + LayoutInfo(const JKQTMathTextNodeSize& other); + LayoutInfo& operator=(const JKQTMathTextNodeSize& other); + LayoutInfo& operator=(const LayoutInfo& other); + /** \brief the text that shall be printed is split up into different parts (with different formatting each) */ + QStringList textpart; + /** \brief formatting for each entry in textpart */ + QList fontMode; + /** \brief drawing x-position for each entry in textpart */ + QList textpartXPos; + }; /** \brief calculates the size of the node, much like JKQTMathTextNode::getSizeInternal(), but returns additional properties that can be reused for drawing */ - void getSizeInternalAndData(QPainter& painter, JKQTMathTextEnvironment currentEv, double& width, double& baselineHeight, double& overallHeight, double& strikeoutPos, QStringList& textpart, QList& fontMode, QList& textpartXPos) ; + LayoutInfo calcLayout(QPainter& painter, JKQTMathTextEnvironment currentEv) const ; /** \brief split text for Math-Modelayout into sections, where each section has a defined way of output * * \param painter the QPainter to use for sizing/drawing @@ -130,9 +145,9 @@ class JKQTMATHTEXT_LIB_EXPORT JKQTMathTextVerbatimNode: public JKQTMathTextTextB /** \copydoc tabSize */ size_t getTabSize() const; /** \copydoc JKQTMathTextNode::draw() */ - virtual double draw(QPainter& painter, double x, double y, JKQTMathTextEnvironment currentEv) override; + virtual double draw(QPainter& painter, double x, double y, JKQTMathTextEnvironment currentEv) const override; /** \copydoc JKQTMathTextNode::toHtml() */ - virtual bool toHtml(QString& html, JKQTMathTextEnvironment currentEv, JKQTMathTextEnvironment defaultEv) override; + virtual bool toHtml(QString& html, JKQTMathTextEnvironment currentEv, JKQTMathTextEnvironment defaultEv) const override; protected: /** \brief alignment scheme used to lay out all lines * @@ -157,7 +172,7 @@ class JKQTMATHTEXT_LIB_EXPORT JKQTMathTextVerbatimNode: public JKQTMathTextTextB size_t tabSize; /** \copydoc JKQTMathTextNode::getSizeInternal() */ - virtual void getSizeInternal(QPainter& painter, JKQTMathTextEnvironment currentEv, double& width, double& baselineHeight, double& overallHeight, double& strikeoutPos) override; + virtual JKQTMathTextNodeSize getSizeInternal(QPainter& painter, JKQTMathTextEnvironment currentEv) const override; /** \brief sets all necessary settings in \a currentEv for drawing this node */ virtual void transformEnvironment(JKQTMathTextEnvironment& currentEv) const; diff --git a/lib/jkqtmathtext/nodes/jkqtmathtextwhitespacenode.cpp b/lib/jkqtmathtext/nodes/jkqtmathtextwhitespacenode.cpp index f1837423b0..b7d779c2d2 100644 --- a/lib/jkqtmathtext/nodes/jkqtmathtextwhitespacenode.cpp +++ b/lib/jkqtmathtext/nodes/jkqtmathtextwhitespacenode.cpp @@ -79,7 +79,7 @@ QString JKQTMathTextWhitespaceNode::getTypeName() const return QLatin1String("JKQTMathTextWhitespaceNode(")+Type2String(whitespace.type)+", count="+QString::number(whitespace.count)+")"; } -bool JKQTMathTextWhitespaceNode::toHtml(QString &html, JKQTMathTextEnvironment /*currentEv*/, JKQTMathTextEnvironment /*defaultEv*/) { +bool JKQTMathTextWhitespaceNode::toHtml(QString &html, JKQTMathTextEnvironment /*currentEv*/, JKQTMathTextEnvironment /*defaultEv*/) const { for (size_t i=0; i(whitespace.count); - baselineHeight=0; - overallHeight=0; - strikeoutPos=fm.strikeOutPos(); + s.width=singelWidthPIX*static_cast(whitespace.count); + s.baselineHeight=0; + s.overallHeight=0; + s.strikeoutPos=fm.strikeOutPos(); + return s; } QHash JKQTMathTextWhitespaceNode::supportedInstructions; @@ -294,9 +295,9 @@ QString JKQTMathTextEmptyBoxNode::getTypeName() const return QString("JKQTMathTextEmptyBoxNode(%1%2 x %3%4)").arg(getWidth()).arg(JKQTMathTextEmptyBoxNode::Units2String(getWidthUnit())).arg(getHeight()).arg(JKQTMathTextEmptyBoxNode::Units2String(getHeightUnit())); } -bool JKQTMathTextEmptyBoxNode::toHtml(QString &html, JKQTMathTextEnvironment currentEv, JKQTMathTextEnvironment defaultEv) +bool JKQTMathTextEmptyBoxNode::toHtml(QString &html, JKQTMathTextEnvironment currentEv, JKQTMathTextEnvironment defaultEv) const { - return true; + return false; } JKQTMathTextEmptyBoxNode::Units JKQTMathTextEmptyBoxNode::getWidthUnit() const @@ -319,24 +320,26 @@ double JKQTMathTextEmptyBoxNode::getHeight() const return height; } -double JKQTMathTextEmptyBoxNode::draw(QPainter &painter, double x, double y, JKQTMathTextEnvironment currentEv) +double JKQTMathTextEmptyBoxNode::draw(QPainter &painter, double x, double y, JKQTMathTextEnvironment currentEv) const { - doDrawBoxes(painter, x,y,currentEv); const auto s=getSize(painter, currentEv); + doDrawBoxes(painter, x,y,s); return x+s.width; } -void JKQTMathTextEmptyBoxNode::getSizeInternal(QPainter &painter, JKQTMathTextEnvironment currentEv, double &width, double &baselineHeight, double &overallHeight, double &strikeoutPos) +JKQTMathTextNodeSize JKQTMathTextEmptyBoxNode::getSizeInternal(QPainter &painter, JKQTMathTextEnvironment currentEv) const { + JKQTMathTextNodeSize s; const QFontMetricsF fm(currentEv.getFont(parentMathText), painter.device()); - width=Units2PixelWidth(this->width, widthUnit, currentEv, painter.device()); - overallHeight=Units2PixelWidth(height, heightUnit, currentEv, painter.device()); + s.width=Units2PixelWidth(width, widthUnit, currentEv, painter.device()); + s.overallHeight=Units2PixelWidth(height, heightUnit, currentEv, painter.device()); if (height>0) { - baselineHeight=overallHeight; + s.baselineHeight=s.overallHeight; } else { - baselineHeight=0; + s.baselineHeight=0; } - strikeoutPos=fm.strikeOutPos(); + s.strikeoutPos=fm.strikeOutPos(); + return s; } @@ -383,35 +386,32 @@ QString JKQTMathTextPhantomNode::getTypeName() const return QLatin1String("JKQTMathTextPhantomNode(")+instructionName+")"; } -void JKQTMathTextPhantomNode::getSizeInternal(QPainter& painter, JKQTMathTextEnvironment currentEv, double& width, double& baselineHeight, double& overallHeight, double& strikeoutPos) { +JKQTMathTextNodeSize JKQTMathTextPhantomNode::getSizeInternal(QPainter& painter, JKQTMathTextEnvironment currentEv) const { fillInstructions(); - JKQTMathTextEnvironment ev=currentEv; - - getChild()->getSize(painter, ev, width, baselineHeight, overallHeight, strikeoutPos); + JKQTMathTextNodeSize s=getChild()->getSize(painter, currentEv); switch(instructions[getInstructionName()]) { case FMwidth: - overallHeight=0; - baselineHeight=0; - strikeoutPos=0; + s.overallHeight=0; + s.baselineHeight=0; + s.strikeoutPos=0; break; case FMwidthAndHeight: break; case FMheight: - width=0; + s.width=0; break; } + return s; } -double JKQTMathTextPhantomNode::draw(QPainter& painter, double x, double y, JKQTMathTextEnvironment currentEv) { - doDrawBoxes(painter, x, y, currentEv); - JKQTMathTextEnvironment ev=currentEv; - +double JKQTMathTextPhantomNode::draw(QPainter& painter, double x, double y, JKQTMathTextEnvironment currentEv) const { const JKQTMathTextNodeSize s=getSize(painter, currentEv); + doDrawBoxes(painter, x, y, s); return x+s.width; } -bool JKQTMathTextPhantomNode::toHtml(QString &html, JKQTMathTextEnvironment currentEv, JKQTMathTextEnvironment defaultEv) { +bool JKQTMathTextPhantomNode::toHtml(QString &html, JKQTMathTextEnvironment currentEv, JKQTMathTextEnvironment defaultEv) const { JKQTMathTextEnvironment ev=currentEv; fillInstructions(); return " "; diff --git a/lib/jkqtmathtext/nodes/jkqtmathtextwhitespacenode.h b/lib/jkqtmathtext/nodes/jkqtmathtextwhitespacenode.h index 0dee62671d..071537e48c 100644 --- a/lib/jkqtmathtext/nodes/jkqtmathtextwhitespacenode.h +++ b/lib/jkqtmathtext/nodes/jkqtmathtextwhitespacenode.h @@ -76,16 +76,16 @@ class JKQTMATHTEXT_LIB_EXPORT JKQTMathTextWhitespaceNode: public JKQTMathTextNod /** \copydoc JKQTMathTextNode::getTypeName() */ virtual QString getTypeName() const override; /** \copydoc JKQTMathTextNode::toHtml() */ - virtual bool toHtml(QString& html, JKQTMathTextEnvironment currentEv, JKQTMathTextEnvironment defaultEv) override; + virtual bool toHtml(QString& html, JKQTMathTextEnvironment currentEv, JKQTMathTextEnvironment defaultEv) const override; /** \copydoc WhitespaceProps::type */ Types getWhitespaceType() const; /** \copydoc WhitespaceProps::count */ size_t getWhitespaceCount() const; /** \copydoc JKQTMathTextNode::draw() */ - virtual double draw(QPainter& painter, double x, double y, JKQTMathTextEnvironment currentEv) override; + virtual double draw(QPainter& painter, double x, double y, JKQTMathTextEnvironment currentEv) const override; protected: /** \copydoc JKQTMathTextNode::getSizeInternal() */ - virtual void getSizeInternal(QPainter& painter, JKQTMathTextEnvironment currentEv, double& width, double& baselineHeight, double& overallHeight, double& strikeoutPos) override; + virtual JKQTMathTextNodeSize getSizeInternal(QPainter& painter, JKQTMathTextEnvironment currentEv) const override; /** \brief describes a whitespace */ struct WhitespaceProps { WhitespaceProps(Types type=WSTNormal, size_t count=1); @@ -129,7 +129,7 @@ class JKQTMATHTEXT_LIB_EXPORT JKQTMathTextEmptyBoxNode: public JKQTMathTextNode /** \copydoc JKQTMathTextNode::getTypeName() */ virtual QString getTypeName() const override; /** \copydoc JKQTMathTextNode::toHtml() */ - virtual bool toHtml(QString& html, JKQTMathTextEnvironment currentEv, JKQTMathTextEnvironment defaultEv) override; + virtual bool toHtml(QString& html, JKQTMathTextEnvironment currentEv, JKQTMathTextEnvironment defaultEv) const override; /** \copydoc widthUnit */ Units getWidthUnit() const; /** \copydoc width */ @@ -139,10 +139,10 @@ class JKQTMATHTEXT_LIB_EXPORT JKQTMathTextEmptyBoxNode: public JKQTMathTextNode /** \copydoc height */ double getHeight() const; /** \copydoc JKQTMathTextNode::draw() */ - virtual double draw(QPainter& painter, double x, double y, JKQTMathTextEnvironment currentEv) override; + virtual double draw(QPainter& painter, double x, double y, JKQTMathTextEnvironment currentEv) const override; protected: /** \copydoc JKQTMathTextNode::getSizeInternal() */ - virtual void getSizeInternal(QPainter& painter, JKQTMathTextEnvironment currentEv, double& width, double& baselineHeight, double& overallHeight, double& strikeoutPos) override; + virtual JKQTMathTextNodeSize getSizeInternal(QPainter& painter, JKQTMathTextEnvironment currentEv) const override; /** \brief width of the (empty) box, units of this value defined in widthUnit */ double width; /** \brief units to interpret width */ @@ -175,9 +175,9 @@ class JKQTMATHTEXT_LIB_EXPORT JKQTMathTextPhantomNode: public JKQTMathTextInstru /** \copydoc JKQTMathTextNode::getTypeName() */ virtual QString getTypeName() const override; /** \copydoc JKQTMathTextNode::draw() */ - virtual double draw(QPainter& painter, double x, double y, JKQTMathTextEnvironment currentEv) override; + virtual double draw(QPainter& painter, double x, double y, JKQTMathTextEnvironment currentEv) const override; /** \copydoc JKQTMathTextNode::toHtml() */ - virtual bool toHtml(QString& html, JKQTMathTextEnvironment currentEv, JKQTMathTextEnvironment defaultEv) override; + virtual bool toHtml(QString& html, JKQTMathTextEnvironment currentEv, JKQTMathTextEnvironment defaultEv) const override; /** \brief returns true, if the given \a instructionName can be represented by this node * \see instructions @@ -186,7 +186,7 @@ class JKQTMATHTEXT_LIB_EXPORT JKQTMathTextPhantomNode: public JKQTMathTextInstru protected: /** \copydoc JKQTMathTextNode::getSizeInternal() */ - virtual void getSizeInternal(QPainter& painter, JKQTMathTextEnvironment currentEv, double& width, double& baselineHeight, double& overallHeight, double& strikeoutPos) override; + virtual JKQTMathTextNodeSize getSizeInternal(QPainter& painter, JKQTMathTextEnvironment currentEv) const override; /** \brief fills instructions * * \note this is the customization point for new instructions!