From d99359dede8f366fc16d38c6166b97a0f56fe0cb Mon Sep 17 00:00:00 2001 From: Laurenz Date: Sun, 12 Feb 2023 21:14:21 +0100 Subject: [PATCH] Add `baseline` argument to `box` --- library/src/layout/container.rs | 15 +++++++++++++-- tests/ref/text/baseline.png | Bin 6168 -> 29069 bytes tests/typ/text/baseline.typ | 5 ++++- 3 files changed, 17 insertions(+), 3 deletions(-) diff --git a/library/src/layout/container.rs b/library/src/layout/container.rs index 7d733a876..09cfac8db 100644 --- a/library/src/layout/container.rs +++ b/library/src/layout/container.rs @@ -47,6 +47,8 @@ pub struct BoxNode { pub width: Smart>, /// The box's height. pub height: Smart>, + /// The box's baseline shift. + pub baseline: Rel, } #[node] @@ -55,7 +57,8 @@ impl BoxNode { let body = args.eat::()?.unwrap_or_default(); let width = args.named("width")?.unwrap_or_default(); let height = args.named("height")?.unwrap_or_default(); - Ok(Self { body, width, height }.pack()) + let baseline = args.named("baseline")?.unwrap_or_default(); + Ok(Self { body, width, height, baseline }.pack()) } fn field(&self, name: &str) -> Option { @@ -86,7 +89,15 @@ impl Layout for BoxNode { let is_auto = sizing.as_ref().map(Smart::is_auto); let expand = regions.expand | !is_auto; let pod = Regions::one(size, expand); - self.body.layout(vt, styles, pod) + let mut frame = self.body.layout(vt, styles, pod)?.into_frame(); + + // Apply baseline shift. + let shift = self.baseline.resolve(styles).relative_to(frame.height()); + if !shift.is_zero() { + frame.set_baseline(frame.baseline() - shift); + } + + Ok(Fragment::frame(frame)) } } diff --git a/tests/ref/text/baseline.png b/tests/ref/text/baseline.png index f011c8c41dcd0e55359ef240f9f5854fb1d30ab1..c28b454a45435b144d5b2a581c598353a125c2d8 100644 GIT binary patch literal 29069 zcmbSyWl+^^_bv(|=q3a~LRvsT!cBKe2qGcfE!`a=2%;hlN_RKX0_vub?v|1ckI7X5N|qIn48Xkod)Yulrh8tR4FNnGDV?vRi0qXgG4RQYvU@*D&CJB-VBKPP82V z78;tPnw*rln#bg3qr2v?=Gm)c7Rj4$loR$p?w4@v&w5*|Hu5sjQrw8t#}Lm7eC2XO zTkrb5g#9NU%}P&;3kjv z*683%@VQc_a$)umwV?koQ^g#GMSaru)3ZfpHUuc~QtX=&+>$77?TuM2UH+j*kv z8yX@PJFESVw)HG6AHoANQ4@sz{rlH+iZE0P>$QukYy7zz0|NurYk7Hj zv45AxuCbeWP5tokG7R^Zx8EuwJO$se*X2MYE zqM~AFu6bu|OVQ;^S4MJ+O4fES*Fs0 z0$7AVBahC7!u!A6fCm+vs57Td$AguO7js3PVo%{=}rNJ~nhmb>Fc z&1%-y*EtZX%F5q46ciN|M^hOhWt%TgS!flUo&QF8lTc7d^L)G9sfndQA_v>sSLW0w zaVZ4u-o3lDzOJpUeR{a1Lyd~>a5z{WQDV1ZR7#O*XiZN~k0DR9&4Qb<*M+3|Uy@Fw z<>X*?>=x(c=Np-uKZ6^|$<5EtmseHYK>E0o%07t7%%oFcJ)gU}pjytYs;ZLJYIfZi zjk*%y=PR`D6f`WqHyxG{;7zj@h@?7}+yREgAo{cRfA)&su_U-gsM_U@R;y4mhqWCi29_#*U1PtgWuz=XVN{ zqV4JJB_k)VEH7tz_>hZ-M}@}*zRIk1b#;S7LLx_DA(wvtCMG0&Dkmr2Op8PkoH-X2 z6+!jMJ{VkBSZHwHiHPO3n|?*Tx{~UTi98QMz_vHtrIyT?lf(QHEi5S5u!Px{A}q=C zkd5uq4_TzwP+eTS1r>Ya#*N|OVT}@9arqBfS*B7_Ee9K8N~t2n#l;i^1QN87y(z-) z+ZQAMd?Dwxd#A6NEInok+xIS>C#$STJQ^XwYA5& zseWGjt9K~Fp_;r-_t%z|9*$cXiI(a&!r_)Udp1^TU}0zoCDgjGkn!bBr{ z+`KP|KeMoqoP^}9pX;+{xb-*1#lNSdP;QFcyLV4gLc-M4RE%@2c|hT`3~`T5SFFp+ z-~TF#JW0Uy)&yGJ4cg=5V=?@!w6xt~QwKM+dJaF5d4i#F_Z*XHh#8gsLyx5(W zBnWNk?G@qVl%$P>(4tp`nqLgG3_9C@5ZNXvpX;|Nfm*v@qM~%_}6N ztF9iGoNQ}lRZvAIePz<0KYzkizxA(&)1rq;$tx*^7<~drte7~RvTt^DaQMb?|L)x&y}8lR;B%`k z84oCr4jBV>NgJD@z(8~@8p$pLz#=HA>FN6{EE|cu_SH5M1Vlt|@>t>S70J!MXK`ZG zmM>ot5fg8Zm!oE9{rE`{I5^44$%&VQ6(Nc5-@k_*LP$tBG&HoixhXqGEh3Vlpv}Wm z4F||iEf|&{E)LEv-UC#3Jo}qBZ;VKOFE0aNNwDzV@BR8kO}^oAuucTu z#1OxK|GxLpw)AP0v$OMy7cZQgoW6YdVk&cdxHa|t`*%1uesPEfx2+#MY7w*DTT?ZW z*9_o}-@l75#R+k8(y_74j*qX-&x=?8U0Zv}%v=B+g!cVZwXM#x;EoPio5HoDIsf)1 zf?xs)3JRzds0>ol(4zd(()j3TNnVf3bAH^A2G73?$e4RXL~s0BdU_N`Esl*&;=9CX zBiZ!o;TvK5IF^={fGVr2s}Zdug&L`Rj<5F&01+eZwbEc^WM(eHCZ9&9r_*$aNV>Xm zBZYRgkYD{S5)u;|;H1G*H(wn7TffFe;rh?e(VCh>1{7@`BZahEt>B?P=6~)8r>x^a` zxW-FKneyYuj~e?q5&z5So*o=q?&XygSW|;~m$jJ&cUVYsQ`45NU)$UI+S<2FsaJZF z1wDjBgoTs$GTYjo2vPd4_S5Vq%>VJ|I(i#N$IVR?-tO$=FEI< z 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 G7w|uAaZ&^T literal 6168 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 RvH73KUrP