From 33f13d78817dfb89134916f950323889fcc897aa Mon Sep 17 00:00:00 2001 From: Leedehai <18319900+Leedehai@users.noreply.github.com> Date: Mon, 5 Aug 2024 06:00:33 -0400 Subject: [PATCH] Fix historical ligatures for texts (#4603) --- crates/typst/src/text/mod.rs | 2 +- tests/ref/text-ligatures.png | Bin 345 -> 1157 bytes tests/suite/layout/inline/text.typ | 10 +++++++--- 3 files changed, 8 insertions(+), 4 deletions(-) diff --git a/crates/typst/src/text/mod.rs b/crates/typst/src/text/mod.rs index 76ea26c10..f2e525cfd 100644 --- a/crates/typst/src/text/mod.rs +++ b/crates/typst/src/text/mod.rs @@ -1179,7 +1179,7 @@ pub(crate) fn features(styles: StyleChain) -> Vec { } if TextElem::historical_ligatures_in(styles) { - feat(b"hilg", 1); + feat(b"hlig", 1); } match TextElem::number_type_in(styles) { diff --git a/tests/ref/text-ligatures.png b/tests/ref/text-ligatures.png index 6f0e286c6958e38a1878d90cde5a3868404158af..88720c89369d07359bd639bb025d2399fe936976 100644 GIT binary patch delta 1149 zcmV-@1cLk70)+{X7k@Pf00000ugP${000C`NklwNZXS3PH<(AZ>87BvqYVSWfp~EUC@PX7D9}*kE({Rl62z1N!ayvFa)=0p z(hdg{DD?Qf2jdCJ2&QQhHq-aR&y!d3`6i$5GM1=i4%h)Z;D1*NHs-hSk~;D<*dO-M zgzW*)oJtFi5?COWSpSg$Fh{0I#l!Z3h4nBEuz47MjbVY#mNNx#rT}U-*$XaOkzKa~ zc(?`VS=A=88~8Q0fU7UuO*? z8v*kgV}ZK$fPYa1Nb2!w0pT@(jZN9-@Ts>C>uW_%VVOpy%doZIK%BQ3!4 zUf}(a{7A$Nw!_08!*T#`Dfr%Hv!;3VG%)yH1No!3f`KD^4zwmKw2Xr^0qP zTdb`9p%Os;Wqd0%hTM{<0Ft3GCUy|C0nr1;VgYKuh<`2tQ`qICI6EE?W9Y6_okn1h z()NdDJOgtd*b&x`7*h^ru~>afDSVHHCX737_5Ti@zGuy=Sz5IKbSsU_YvRtJ)v(UF zgSm_rn4f`vH!dmzxY^egGH{IFAG;JBHWy@bg_^Kz9*hEO#WFjsA#S*UI zSJz;HXN8ly2r4wK9Nhc7mTi-GUFq*FFu3E<*MC-47L66K{#x?3*;Rk|qQWU{7QT=T zndvK7-ve{7;L=}Am#aTul4Y))UA1R(v&;Ee_{YY%**j*i4nAF~cAJ3>u0r0_THJ<& z2syR>tj7Bay*LQ~5grzD@#uimc+(7A$%d(1%O?}tNAOZ2mztc|P{lxbm|)GSPvm<& zk$=Wq)!-{jL+;-$2^blcWc^b9r}vphNMZ$GC>749#0b#ouQ>Y0ji|&9PRgXD1U)=_ z+B`G!X=?XM)awo@9hb`i|JPt+H!sc5gZ*KJ3kWRUH8-%>8#b>aMb6?4iI6Gn0mq%{ z3aIG}?z*2>JOi8e9*O^e*ly8^IH45W$8Cn$(;4_}$pB5M zpS8`wWJCb;y8r%|BBwlnt(qf}oKci=mw|uaLD4FT$1yAr*@?p zKokn4V`~6%-P9YT4D3dvR=W{$H~F;Ac9;NeDiOR>{V!&?H8*~vj5wbV2~bf1KC(*y zreJP7VEX$TKcytNKdStV;;1D#AfptXToO1c-dndMFlNUm;eZ|RlEZ%k(V?K#f3y}Q P00000NkvXXu0mjf3dAtt delta 331 zcmV-R0kr;w3E2XW7k?WF00000l5Z6H0003XNkll6DYbP5#t#F-p5@30ur%;&jD5~V_W+1*yEBBj(dHAtiCfQzd&%%i2X_MaXmX6) zk-wNO!xuY^uVK0#Xw3o5&?z6r768F59cQBDssf|+gs6wXR2dewWZ3p{?E}bqER47K z4002ovPDHLkV1nijo}d5# diff --git a/tests/suite/layout/inline/text.typ b/tests/suite/layout/inline/text.typ index e2bc84efc..ba0e625ef 100644 --- a/tests/suite/layout/inline/text.typ +++ b/tests/suite/layout/inline/text.typ @@ -12,8 +12,12 @@ a vs #text(alternates: true)[a] \ ß vs #text(stylistic-set: 5)[ß] --- text-ligatures --- -// Test ligatures. -fi vs. #text(ligatures: false)[No fi] +// Test text turning off (standard) ligatures of the font. +#text(ligatures: false)[fi Qu] vs fi Qu \ +// Test text turning on historical ligatures of the font. +abstract vs #text(historical-ligatures: true)[abstract] \ +// Test text turning on discretionary ligatures of the font. +waltz vs #text(discretionary-ligatures: true)[waltz] --- text-number-type --- // Test number type. @@ -34,7 +38,7 @@ fi vs. #text(ligatures: false)[No fi] 1/2 vs. #text(fractions: true)[1/2] --- text-features --- -// Test raw features. +// Test raw features array or dictionary. #text(features: ("smcp",))[Smcp] \ fi vs. #text(features: (liga: 0))[No fi]