From ae9e48a8a6196d381ac24160c82d39f3fdc3da5c Mon Sep 17 00:00:00 2001 From: Johannes Wolf Date: Tue, 10 Sep 2024 21:36:29 +0200 Subject: [PATCH] venn: Forward style arguments & support padding --- manual.pdf | Bin 185149 -> 185571 bytes manual.typ | 4 +++- src/venn.typ | 30 ++++++++++++++++++------------ tests/venn2/ref/1.png | Bin 29682 -> 29784 bytes tests/venn2/test.typ | 2 +- tests/venn3/ref/1.png | Bin 67215 -> 67247 bytes tests/venn3/test.typ | 2 +- 7 files changed, 23 insertions(+), 15 deletions(-) diff --git a/manual.pdf b/manual.pdf index f6986771360157ac5496ea62813a99783fecb894..4680184eb169191c33518e6c17d9320916b0bcba 100644 GIT binary patch delta 11074 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 delta 10655 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 O+<%gaOh+fFEcG7?eVi8n diff --git a/manual.typ b/manual.typ index b33a52d..73a473c 100644 --- a/manual.typ +++ b/manual.typ @@ -78,7 +78,9 @@ cetz.canvas({ All diagrams use the style root `venn` and accept the following style keys: #doc-style.show-parameter-block("fill", "fill", default: "white", [The default fill for all elements]) #doc-style.show-parameter-block("stroke", "stroke", default: auto, [The default stroke for all elements]) -#doc-style.show-parameter-block("padding", "number", default: 2em, [Padding of the outer (rect) element]) +#doc-style.show-parameter-block("padding", ("number", "dictionary"), default: 2em, [ + Padding of the outer (rect) element. Per side padding can be specified by passing a dicitonary with one or more + of the following keys: `top`, `bottom`, `left`, `right` and `rest`, where `rest` acts as a fallback for unset values.]) = Functions diff --git a/src/venn.typ b/src/venn.typ index 029b056..6b0d2ba 100644 --- a/src/venn.typ +++ b/src/venn.typ @@ -57,7 +57,7 @@ /// - `ab` /// - `not-ab` /// -/// - ..args (any): Set attributes +/// - ..args (any): Set and style attributes /// - name (none, string): Element name #let venn2(..args, name: none) = { import cetz.draw: * @@ -65,8 +65,11 @@ let distance = 1.25 group(name: name, ctx => { - let style = cetz.styles.resolve(ctx.style, base: default-style, merge: (:), root: "venn") - let padding = cetz.util.resolve-number(ctx, style.padding) + let style = cetz.styles.resolve(ctx.style, base: default-style, root: "venn", merge: args.named()) + let padding = cetz.util.as-padding-dict(style.padding) + for (k, v) in padding { + padding.insert(k, cetz.util.resolve-number(ctx, v)) + } let args = venn-prepare-args(2, args.named(), style) @@ -82,8 +85,8 @@ }) on-layer(args.not-ab-layer, - rect((rel: (-1 - padding, -1 - padding), to: pos-a), - (rel: (+1 + padding, +1 + padding), to: pos-b), + rect((rel: (-1 - padding.left, -1 - padding.bottom), to: pos-a), + (rel: (+1 + padding.right, +1 + padding.top), to: pos-b), fill: args.not-ab-fill, stroke: args.not-ab-stroke, name: "frame")) on-layer(args.ab-layer, @@ -107,7 +110,7 @@ anchor("a", (rel: (-1 + distance / 2, 0), to: pos-a)) anchor("b", (rel: (+1 - distance / 2, 0), to: pos-b)) anchor("ab", (pos-a, 50%, pos-b)) - anchor("not-ab", (rel: (padding / 2, padding / 2), to: "frame.south-west")) + anchor("not-ab", (rel: (padding.left / 2, padding.bottom / 2), to: "frame.south-west")) }) } @@ -133,14 +136,17 @@ /// /// - ..args (any): Set attributes /// - name (none, string): Element name -#let venn3(..args, padding: .5, name: none) = { +#let venn3(..args, name: none) = { import cetz.draw: * let distance = .75 group(name: name, ctx => { - let style = cetz.styles.resolve(ctx.style, base: default-style, root: "venn") - let padding = cetz.util.resolve-number(ctx, style.padding) + let style = cetz.styles.resolve(ctx.style, base: default-style, root: "venn", merge: args.named()) + let padding = cetz.util.as-padding-dict(style.padding) + for (k, v) in padding { + padding.insert(k, cetz.util.resolve-number(ctx, v)) + } let args = venn-prepare-args(3, args.named(), style) @@ -171,8 +177,8 @@ let i-bc-1 = cetz.vector.add(m-bc, cetz.vector.rotate-z((-calc.sqrt(1 - calc.pow(d-bc / 2, 2)), 0), angle-bc + 90deg)) on-layer(args.not-abc-layer, - rect((rel: (-1 - padding, +1 + padding), to: pos-a), - (rel: (+1 + padding, -1 - padding), to: (pos-b.at(0), pos-c.at(1))), + rect((rel: (-1 - padding.left, +1 + padding.top), to: pos-a), + (rel: (+1 + padding.right, -1 - padding.bottom), to: (pos-b.at(0), pos-c.at(1))), fill: args.not-abc-fill, stroke: args.not-abc-stroke, name: "frame")) for (name, angle) in (("ab", 0deg), ("ac", 360deg / 3), ("bc", 2 * 360deg / 3)) { @@ -217,7 +223,7 @@ anchor("bc", cetz.vector.lerp(a-b, a-c, .5)) anchor("ac", cetz.vector.lerp(a-a, a-c, .5)) anchor("abc", (0,0)) - anchor("not-abc", (rel: (padding / 2, padding / 2), to: "frame.south-west")) + anchor("not-abc", (rel: (padding.left / 2, padding.bottom / 2), to: "frame.south-west")) }) } diff --git a/tests/venn2/ref/1.png b/tests/venn2/ref/1.png index 1b7498d1fc79a715442777d2a145743617ecde42..dc55675c8eae7d95af5df82e8d75326a6f09e983 100644 GIT binary patch delta 8248 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%0DwQOAT$0GCi5Uk@Kb=nptqjN6cjc+L*0Z}YK! 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 fjsJ$4zwlHjqt5f?I-^ShR7Ev diff --git a/tests/venn2/test.typ b/tests/venn2/test.typ index cd24cd7..dc3bfd1 100644 --- a/tests/venn2/test.typ +++ b/tests/venn2/test.typ @@ -29,6 +29,6 @@ }) #test-case({ - set-style(venn: (stroke: blue, fill: gray)) + set-style(venn: (stroke: blue, fill: gray, padding: (top: 1, bottom: .5, rest: .25))) venn2(name: "v", a-stroke: black, b-fill: green) }) diff --git a/tests/venn3/ref/1.png b/tests/venn3/ref/1.png index 926b0bb29e60147960ea5ab2f3bd06de92d7493b..b0eefdc8d3f3f49628147e0c0fa90611f04ea03f 100644 GIT binary patch delta 6755 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 delta 6392 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 BdFB8B diff --git a/tests/venn3/test.typ b/tests/venn3/test.typ index b21f7be..09e35fe 100644 --- a/tests/venn3/test.typ +++ b/tests/venn3/test.typ @@ -49,6 +49,6 @@ }) #test-case({ - set-style(venn: (stroke: blue, fill: gray)) + set-style(venn: (stroke: blue, fill: gray, padding: (top: 1, bottom: .5, rest: .25))) venn3(name: "v", a-stroke: black, ab-fill: green) })