From cca21126d3bc13d0377d87cefdd3e9bdb4b1bb8e Mon Sep 17 00:00:00 2001 From: Johannes Wolf Date: Fri, 8 May 2026 00:50:05 +0200 Subject: [PATCH] cetz-venn: 0.2.0 --- packages/preview/cetz-venn/0.2.0/LICENSE | 176 +++++++++++++++ packages/preview/cetz-venn/0.2.0/README.md | 40 ++++ .../preview/cetz-venn/0.2.0/gallery/venn2.png | Bin 0 -> 22687 bytes .../preview/cetz-venn/0.2.0/gallery/venn2.typ | 11 + .../preview/cetz-venn/0.2.0/gallery/venn3.png | Bin 0 -> 40576 bytes .../preview/cetz-venn/0.2.0/gallery/venn3.typ | 19 ++ packages/preview/cetz-venn/0.2.0/manual.pdf | Bin 0 -> 92191 bytes packages/preview/cetz-venn/0.2.0/manual.typ | 87 ++++++++ packages/preview/cetz-venn/0.2.0/src/lib.typ | 2 + packages/preview/cetz-venn/0.2.0/src/venn.typ | 209 ++++++++++++++++++ packages/preview/cetz-venn/0.2.0/typst.toml | 12 + 11 files changed, 556 insertions(+) create mode 100644 packages/preview/cetz-venn/0.2.0/LICENSE create mode 100644 packages/preview/cetz-venn/0.2.0/README.md create mode 100644 packages/preview/cetz-venn/0.2.0/gallery/venn2.png create mode 100644 packages/preview/cetz-venn/0.2.0/gallery/venn2.typ create mode 100644 packages/preview/cetz-venn/0.2.0/gallery/venn3.png create mode 100644 packages/preview/cetz-venn/0.2.0/gallery/venn3.typ create mode 100644 packages/preview/cetz-venn/0.2.0/manual.pdf create mode 100644 packages/preview/cetz-venn/0.2.0/manual.typ create mode 100644 packages/preview/cetz-venn/0.2.0/src/lib.typ create mode 100644 packages/preview/cetz-venn/0.2.0/src/venn.typ create mode 100644 packages/preview/cetz-venn/0.2.0/typst.toml diff --git a/packages/preview/cetz-venn/0.2.0/LICENSE b/packages/preview/cetz-venn/0.2.0/LICENSE new file mode 100644 index 0000000000..a7e77cb28d --- /dev/null +++ b/packages/preview/cetz-venn/0.2.0/LICENSE @@ -0,0 +1,176 @@ + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + +TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + +1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + +2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + +3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + +4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + +5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + +6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + +7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + +8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + +9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + +END OF TERMS AND CONDITIONS \ No newline at end of file diff --git a/packages/preview/cetz-venn/0.2.0/README.md b/packages/preview/cetz-venn/0.2.0/README.md new file mode 100644 index 0000000000..928ab5e8db --- /dev/null +++ b/packages/preview/cetz-venn/0.2.0/README.md @@ -0,0 +1,40 @@ +# CeTZ Venn + +A [CeTZ](https://github.com/cetz-package/cetz) library for drawing simple two- or three-set Venn diagrams. + +## Examples + + + + + + + +
+ + Two set Venn diagram + + + + Three set Venn diagram + +
Two set Venn diagramThree set Venn diagram
+ +*Click on the example image to jump to the code.* + +## Usage + +This package requires CeTZ version >= 0.5.0! + +For information, see the [manual (stable)](https://github.com/cetz-package/cetz-venn/blob/stable/manual.pdf?raw=true). + +To use this package, simply add the following code to your document: + +``` +#import "@preview/cetz:0.5.2" +#import "@preview/cetz-venn:0.2.0" + +#cetz.canvas({ + cetz-venn.venn2() +}) +``` diff --git a/packages/preview/cetz-venn/0.2.0/gallery/venn2.png b/packages/preview/cetz-venn/0.2.0/gallery/venn2.png new file mode 100644 index 0000000000000000000000000000000000000000..04f41a75751bef1c54fa44b7040dd298e66cb729 GIT binary patch literal 22687 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 rJ5O;I(FA#*6wcP! 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 literal 0 HcmV?d00001 diff --git a/packages/preview/cetz-venn/0.2.0/gallery/venn2.typ b/packages/preview/cetz-venn/0.2.0/gallery/venn2.typ new file mode 100644 index 0000000000..ef56f15d18 --- /dev/null +++ b/packages/preview/cetz-venn/0.2.0/gallery/venn2.typ @@ -0,0 +1,11 @@ +#set page(width: auto, height: auto, margin: .5cm) +#import "@preview/cetz:0.5.2" +#import "@preview/cetz-venn:0.2.0": venn2 + +#cetz.canvas({ + import cetz.draw: * + + venn2(name: "venn", a-fill: red, ab-fill: green) + content("venn.a", [A]) + content("venn.b", [B]) +}) diff --git a/packages/preview/cetz-venn/0.2.0/gallery/venn3.png b/packages/preview/cetz-venn/0.2.0/gallery/venn3.png new file mode 100644 index 0000000000000000000000000000000000000000..bd9adbdfa95d0de4c28018c106e44d96772e1007 GIT binary patch literal 40576 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 z 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 literal 0 HcmV?d00001 diff --git a/packages/preview/cetz-venn/0.2.0/gallery/venn3.typ b/packages/preview/cetz-venn/0.2.0/gallery/venn3.typ new file mode 100644 index 0000000000..00a360ef8c --- /dev/null +++ b/packages/preview/cetz-venn/0.2.0/gallery/venn3.typ @@ -0,0 +1,19 @@ +#set page(width: auto, height: auto, margin: .5cm) +#import "@preview/cetz:0.5.2" +#import "@preview/cetz-venn:0.2.0": venn3 + +#cetz.canvas({ + import cetz.draw: * + + scale(1.5) + venn3(name: "venn", a-fill: red, b-fill: green, c-fill: blue, + ab-fill: yellow, abc-fill: gray, bc-fill: gray) + + content("venn.a", [1], angle: 45deg) + content("venn.b", [2]) + content("venn.c", [3]) + content("venn.ab", [4]) + content("venn.bc", [5]) + content("venn.ac", [6]) + content("venn.abc", [7]) +}) diff --git a/packages/preview/cetz-venn/0.2.0/manual.pdf b/packages/preview/cetz-venn/0.2.0/manual.pdf new file mode 100644 index 0000000000000000000000000000000000000000..900043433e768c2055be3bbbbc594ec5e30c0491 GIT binary patch literal 92191 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 if num.pos().len() < 4 { + numbering("1.1", ..num) +}) +#show link: set text(blue) + +#rect(width: 100%, fill: blue.darken(30%), + table(columns: (1fr, 1fr), align: (left, right), stroke: none, + text(white)[*CeTZ Venn*], text(white)[#cetz-venn.version])) + +// Outline +#{ + show heading: none + columns(2, outline(depth: 3)) + pagebreak(weak: true) +} + +#set page(numbering: "1/1", header: align(right)[CeTZ Venn]) + += Introduction + +CeTZ Venn is a tiny package for drawing two- and three-set Venn diagrams +using Typst and CeTZ. + +*CeTZ version $>=$ 0.5.0 is required!* + += Examples + +A simple two set Venn diagram: + +```example +cetz.canvas({ + cetz-venn.venn2( + name: "venn", + a-fill: gray, + ab-fill: gray, + ) + + import cetz.draw: * + content("venn.ab", [AB]) +}) +``` + +A three set diagram with arrows: + +```example +cetz.canvas({ + cetz-venn.venn3( + name: "venn", + a-fill: gray, + b-fill: gray, + abc-fill: gray, + ) + + import cetz.draw: * + content("venn.c", [C]) + + line("venn.abc", (rel: (2.2,-2.5)), mark: (start: "o", fill: black), name: "arrow") + content("arrow.end", [Here], anchor: "north", padding: .1) +}) +``` + += Styling + +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", "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 + +#doc-style.parse-show-module("/src/venn.typ") diff --git a/packages/preview/cetz-venn/0.2.0/src/lib.typ b/packages/preview/cetz-venn/0.2.0/src/lib.typ new file mode 100644 index 0000000000..14f746ffa5 --- /dev/null +++ b/packages/preview/cetz-venn/0.2.0/src/lib.typ @@ -0,0 +1,2 @@ +#let version = version(0,2,0) +#import "/src/venn.typ": venn2, venn3 diff --git a/packages/preview/cetz-venn/0.2.0/src/venn.typ b/packages/preview/cetz-venn/0.2.0/src/venn.typ new file mode 100644 index 0000000000..f32439f762 --- /dev/null +++ b/packages/preview/cetz-venn/0.2.0/src/venn.typ @@ -0,0 +1,209 @@ +#import "@preview/cetz:0.5.2" + +#let default-venn2-style = ( + stroke: auto, + fill: white, + padding: 2em, + distance: 1.25, + radius: 1, + anchor-outset: -0.25, +) + +#let default-venn3-style = ( + ..default-venn2-style, + distance: 0.75, + anchor-outset: 0.4, +) + +#let venn-prepare-args(ctx, num-sets, args, style) = { + assert(2 <= num-sets and num-sets <= 3, + message: "Number of sets must be 2 or 3") + + let set-combinations = if num-sets == 2 { + ("a", "b", "ab", "not-ab") + } else { + ("a", "b", "c", "ab", "ac", "bc", "abc", "not-abc") + } + + let keys = ( + "fill": style.fill, + "stroke": style.stroke, + "layer": 0, + "ab-layer": -1, + "ac-layer": -1, + "bc-layer": -1, + "abc-layer": -1, + "ab-stroke": none, + "ac-stroke": none, + "bc-stroke": none, + "not-ab-layer": -2, + "not-abc-layer": -2, + "radius": style.radius, + "distance": style.distance, + "anchor-outset": style.anchor-outset, + ) + + let wants-resolve(key) = { + key in ("distance", "radius", "anchor-outset") + } + + let new = (:) + for combo in set-combinations { + for (suffix, def) in keys { + let key = combo + "-" + suffix + let value = args.at(key, default: keys.at(key, default: def)) + if wants-resolve(suffix) { + value = cetz.util.resolve-number(ctx, value) + } + new.insert(key, value) + } + } + + return new +} + +/// Draw a venn diagram with two sets a and b +/// +/// *Set attributes:* \ +/// The `venn2` function has two sets `a` and `b`, each of them having the following attributes: +/// - `*-fill`: Fill color +/// - `*-stroke`: Stroke style +/// - `*-layer`: CeTZ layer index +/// - `*-distance`: Distance of the center of the set to the center +/// - `*-anchor-outset`: Distance offset for the named anchor +/// - `*-radius`: Radius of the set circle +/// To set a set-attribute, combine the set name (`a`) and the attribute key (`fill`) with a dash: `a-fill`. +/// +/// ```example +/// cetz.canvas({ +/// cetz-venn.venn2(a-fill: red, b-fill: green) +/// }) +/// ``` +/// +/// The following set names exist and also act as anchors (for labels): +/// - `a` +/// - `b` +/// - `ab` +/// - `not-ab` +/// +#let venn2( + /// Set and style attributes -> any + ..args, + /// Element name -> none | string + name: none) = { + import cetz.draw: * + + assert-version(std.version(0, 5, 0), max: std.version(0, 6, 0), hint: "tests/version/assert-version") + + group(name: name, ctx => { + let style = cetz.styles.resolve(ctx.style, base: default-venn2-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(ctx, 2, args.named(), style) + let distance = cetz.util.resolve-number(ctx, style.distance) + + let pos-a = (-args.a-distance / 2,0) + let pos-b = (+args.b-distance / 2,0) + + let a = circle(pos-a, radius: args.a-radius) + let b = circle(pos-b, radius: args.b-radius) + + on-layer(args.not-ab-layer, + 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.a-layer, + boolean(a, b, op: "difference", name: "a", ignore-hidden: false, + fill: args.a-fill, stroke: args.a-stroke)) + on-layer(args.b-layer, + boolean(b, a, op: "difference", name: "b", ignore-hidden: false, + fill: args.b-fill, stroke: args.b-stroke)) + on-layer(args.ab-layer, + boolean(a, b, op: "intersection", name: "ab", ignore-hidden: false, + fill: args.ab-fill, stroke: args.ab-stroke)) + + anchor("a", ((0, 0), args.a-distance + args.a-anchor-outset, pos-a)) + anchor("b", ((0, 0), args.b-distance + args.b-anchor-outset, pos-b)) + anchor("ab", ("a", 50%, "b")) + anchor("not-ab", (rel: (padding.left / 2, padding.bottom / 2), to: "frame.south-west")) + }) +} + +/// Draw a venn diagram with three sets a, b and c +/// +/// See `venn2` for the attribute documentation. +/// +/// ```example +/// cetz.canvas({ +/// cetz-venn.venn3(not-abc-fill: red) +/// }) +/// ``` +/// +/// The following set names exist and also act as anchors (for labels): +/// - `a` +/// - `b` +/// - `c` +/// - `ab` +/// - `bc` +/// - `ac` +/// - `abc` +/// - `not-abc` +/// +#let venn3( + /// Set attributes -> any + ..args, + /// Element name -> none | string + name: none) = { + import cetz.draw: * + + assert-version(std.version(0, 5, 0), max: std.version(0, 6, 0), hint: "tests/version/assert-version") + + group(name: name, ctx => { + let style = cetz.styles.resolve(ctx.style, base: default-venn3-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(ctx, 3, args.named(), style) + let distance = cetz.util.resolve-number(ctx, style.distance) + + let pos-a = (-90deg + 2 * 360deg / 3, args.a-distance) + let pos-b = (-90deg + 360deg / 3, args.b-distance) + let pos-c = (-90deg + 360deg, args.c-distance) + + let a = circle(pos-a, radius: args.a-radius) + let b = circle(pos-b, radius: args.b-radius) + let c = circle(pos-c, radius: args.c-radius) + + on-layer(args.a-layer, + boolean(a, { b; c }, op: "difference", name: "a", fill: args.a-fill, stroke: args.a-stroke)) + on-layer(args.b-layer, + boolean(b, { a; c }, op: "difference", name: "b", fill: args.b-fill, stroke: args.b-stroke)) + on-layer(args.c-layer, + boolean(c, { a; b }, op: "difference", name: "c", fill: args.c-fill, stroke: args.c-stroke)) + on-layer(args.ab-layer, + boolean({ a; b }, c, op: "difference", name: "ab", fill: args.ab-fill, stroke: args.ab-stroke)) + on-layer(args.bc-layer, + boolean({ b; c }, a, op: "difference", name: "bc", fill: args.bc-fill, stroke: args.bc-stroke)) + on-layer(args.ac-layer, + boolean({ a; c }, b, op: "difference", name: "ac", fill: args.ac-fill, stroke: args.ac-stroke)) + on-layer(args.abc-layer, + boolean(boolean(a, b, op: "intersection"), c, op: "intersection", name: "abc", fill: args.abc-fill, stroke: args.abc-stroke)) + on-layer(args.not-abc-layer, + rect-around("a", "b", "c", fill: args.not-abc-fill, stroke: args.not-abc-stroke, padding: padding, name: "frame")) + + anchor("a", ((0, 0), args.a-distance + args.a-anchor-outset, pos-a)) + anchor("b", ((0, 0), args.b-distance + args.b-anchor-outset, pos-b)) + anchor("c", ((0, 0), args.c-distance + args.c-anchor-outset, pos-c)) + anchor("ab", ("a", 50%, "b")) + anchor("bc", ("b", 50%, "c")) + anchor("ac", ("c", 50%, "a")) + anchor("abc", (0,0)) + anchor("not-abc", (rel: (padding.left / 2, padding.bottom / 2), to: "frame.south-west")) + }) +} diff --git a/packages/preview/cetz-venn/0.2.0/typst.toml b/packages/preview/cetz-venn/0.2.0/typst.toml new file mode 100644 index 0000000000..b1a0810875 --- /dev/null +++ b/packages/preview/cetz-venn/0.2.0/typst.toml @@ -0,0 +1,12 @@ +[package] +name = "cetz-venn" +version = "0.2.0" +repository = "https://github.com/johannes-wolf/cetz-venn" +entrypoint = "src/lib.typ" +authors = [ + "Johannes Wolf " +] +license = "Apache-2.0" +description = "CeTZ library for drawing venn diagrams for two or three sets." +keywords = [ "venn", "diagram", "cetz" ] +exclude = [ "/gallery/*", "manual.pdf", "manual.typ" ]