From bf520fdc67d8e135cc713a9caa193f03cee62761 Mon Sep 17 00:00:00 2001 From: jollywatt Date: Sun, 15 Dec 2024 21:50:27 +0000 Subject: [PATCH] fix: unexpected line breaks in node labels (#64) --- src/draw.typ | 3 ++- tests/issues/ref/1.png | Bin 0 -> 4943 bytes tests/issues/test.typ | 9 +++++++++ 3 files changed, 11 insertions(+), 1 deletion(-) create mode 100644 tests/issues/ref/1.png create mode 100644 tests/issues/test.typ diff --git a/src/draw.typ b/src/draw.typ index 02fecfe..b2ea80f 100644 --- a/src/draw.typ +++ b/src/draw.typ @@ -29,13 +29,14 @@ } if node.label != none { + let ε = 1e-10pt // temp fix for https://github.com/Jollywatt/typst-fletcher/issues/64 cetz.draw.content( node.pos.xyz, box( // wrapping label in a box allows user to control its alignment align(center + horizon, node.label), stroke: if debug >= 3 { DEBUG_COLOR2 + 0.25pt }, - width: node.size.at(0) - 2*node.inset, + width: node.size.at(0) - 2*node.inset + ε, height: node.size.at(1) - 2*node.inset, ), anchor: "center", diff --git a/tests/issues/ref/1.png b/tests/issues/ref/1.png new file mode 100644 index 0000000000000000000000000000000000000000..ec12eb6138c864dd7e456f16b737fd80500a26ec GIT binary patch literal 4943 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 c67Yv|Me{pZRCvAO-=s`i!$7^}mhH3u0Z_mO8vp