From 83bbf2b575006e51203f2956edef39ef5dc20356 Mon Sep 17 00:00:00 2001 From: Caleb Maclennan Date: Mon, 3 Jun 2024 12:53:17 +0300 Subject: [PATCH 1/2] test(packages): Test `\font:clear-fallbacks` --- tests/font-fallback-empty.expected | 7 ++++++- tests/font-fallback-empty.sil | 13 ++++++++++++- 2 files changed, 18 insertions(+), 2 deletions(-) diff --git a/tests/font-fallback-empty.expected b/tests/font-fallback-empty.expected index 46f599954..f39c5f2c8 100644 --- a/tests/font-fallback-empty.expected +++ b/tests/font-fallback-empty.expected @@ -1,8 +1,13 @@ Set paper size 297.6377985 419.5275636 Begin page Mx 14.8819 -My 29.7654 +My 28.6664 +Set font Noto Serif CJK JP;10;400;;normal;;;LTR +T 1542 w=10.0000 (ん) +My 40.6664 Set font Gentium Plus;10;400;;normal;;;LTR T 0 w=6.8359 (ん) +My 52.6664 +T 0 w=6.8359 (ん) End page Finish diff --git a/tests/font-fallback-empty.sil b/tests/font-fallback-empty.sil index a6dfbd7ee..c821a716a 100644 --- a/tests/font-fallback-empty.sil +++ b/tests/font-fallback-empty.sil @@ -1,8 +1,19 @@ \begin[papersize=a6]{document} \nofolios -\noindent +\neverindent \use[module=packages.font-fallback] + +% Adding Noto as a fallback should make this character render \font:add-fallback[family=Noto Serif CJK JP] +ん + +% But removing it should give us tofu \font:remove-fallback ん + +% Also clearing all fallbacks should result in tofu +\font:add-fallback[family=Noto Serif CJK JP] +\font:clear-fallbacks +ん + \end{document} From 2b15de500371fa6cbdfdf6f302c1360b4a023883 Mon Sep 17 00:00:00 2001 From: Caleb Maclennan Date: Mon, 3 Jun 2024 12:53:54 +0300 Subject: [PATCH 2/2] fix(packages): Fix broken font fallback clear function --- packages/font-fallback/init.lua | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/font-fallback/init.lua b/packages/font-fallback/init.lua index bc8db71de..ce10a00ae 100644 --- a/packages/font-fallback/init.lua +++ b/packages/font-fallback/init.lua @@ -9,7 +9,7 @@ function package:registerCommands () self:registerCommand("font:clear-fallbacks", function () if SILE.shaper._name == "fallback" and lastShaperType then SU.debug("font-fallback", "Clearing fallbacks, switching from fallback enabled back to previous shaper") - SILE.shapers:clearFallbacks() + SILE.shaper:clearFallbacks() SILE.typesetter:leaveHmode(true) SILE.shapers[lastShaperType]:cast(SILE.shaper) lastShaperType = nil