From cc3b567b38b405deaea6609d4d03e5174d756fe4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beat=20J=C3=A4ckle?= Date: Wed, 14 May 2025 16:41:21 +0200 Subject: [PATCH] 0.0.1 --- 0.0.1/LICENSE | 1 + 0.0.1/README.md | 129 ++++++++++++++++++++++++++++++++++++++++++ 0.0.1/TODO | 3 + 0.0.1/assets/logo.svg | 1 + 0.0.1/lib.typ | 123 ++++++++++++++++++++++++++++++++++++++++ 5 files changed, 257 insertions(+) create mode 100644 0.0.1/LICENSE create mode 100644 0.0.1/README.md create mode 100644 0.0.1/TODO create mode 120000 0.0.1/assets/logo.svg create mode 100644 0.0.1/lib.typ diff --git a/0.0.1/LICENSE b/0.0.1/LICENSE new file mode 100644 index 0000000..6c05767 --- /dev/null +++ b/0.0.1/LICENSE @@ -0,0 +1 @@ +Copyright (c) 2025 Beat Jäckle diff --git a/0.0.1/README.md b/0.0.1/README.md new file mode 100644 index 0000000..0c8286b --- /dev/null +++ b/0.0.1/README.md @@ -0,0 +1,129 @@ +# jaebab + +Arbeitsblatt für JäB +[typst](https://github.com/typst/typst). Import using +```typst +#import "@dev/jaebab:0.0.1": * +#show: thmrules +``` + + diff --git a/0.0.1/TODO b/0.0.1/TODO new file mode 100644 index 0000000..20eeb59 --- /dev/null +++ b/0.0.1/TODO @@ -0,0 +1,3 @@ +Local repository +part label +merge first, then compile diff --git a/0.0.1/assets/logo.svg b/0.0.1/assets/logo.svg new file mode 120000 index 0000000..0a11bd3 --- /dev/null +++ b/0.0.1/assets/logo.svg @@ -0,0 +1 @@ +/home/beat/Dokumente/PMS/media/pms_logo_grey_crop.svg \ No newline at end of file diff --git a/0.0.1/lib.typ b/0.0.1/lib.typ new file mode 100644 index 0000000..f5e27d1 --- /dev/null +++ b/0.0.1/lib.typ @@ -0,0 +1,123 @@ +//".preamble.typ" +#import "@preview/ctheorems:1.1.3": thmbox, thmrules, thmproof, thmplain +// #let printanswers = true +#let printanswersstate = state("printanswers", false) +#let answers(b) = { +printanswersstate.update(printanswers => b) +} +#let ifprintanswers(thencontent, elsecontent: none) = { + context if printanswersstate.get(){ + thencontent + }else{ + elsecontent + } +} +#let underlinespace(width) = box( + width: width, + stroke: (bottom: .5pt), + outset: (bottom: 1pt), +) + +#let dx = $#h(.2em) d x$ + +#let häuschen_q = tiling(size: (4mm, 4mm), + //colour: red + )[ + #square( + size: 4mm, + fill: none, + stroke: gray, + //colour: gray, + //.conic(..olor.map.rainbow), + ) + // #place(line(start: (0%, 0%), end: (0%, 100%))) + // #place(line(start: (0%, 100%), end: (100%, 100%))) +] +#let häuschen_l = tiling( + size: (4mm, 4mm), + )[ + #place(line(stroke: gray, start: (0%, 0%), end: (0%, 100%))) + #place(line(stroke: gray, start: (0%, 0%), end: (100%, 0%))) +] + +#let fillwithgrid(p) = block( +//fill: häuschen_q, +fill: häuschen_l, +height: p, +width: 100%)[ +//Hallo +] +#let exmp = thmbox( + "exmp", + "Beispiel", + fill: rgb("#eee"), + base_level: 0, +) +#let solution = thmbox( + "solution", + "Lösung", +// fill: rgb("#eee"), +// base_level: none, +// qed-symbol: $qed$, +// qed-symbol: $circle$, + stroke: black, +).with(numbering: none) +#let question = thmbox( + "question", + "Aufgabe", +// fill: rgb("#eee"), + base_level: 0, + stroke: black, +) +#let part = thmplain( + "part", + "", + base: "question", +// fill: rgb("fff"), + base_level: 0, +// thmfmt: "bold" +// titlefmt: strong +).with(numbering: "a)") + +#let solutionorgrid(p: 10em, body) = { +v(-1.2em) +context if printanswersstate.get() { +solution[#body] +} +else {fillwithgrid(p)} +} +#let fillin(sol, width: 8em) = { +ifprintanswers(underline(sol), )} +#let definition = thmbox( + "definition", + "Definition", + base_level: 0, + fill: rgb("#eee"), + ) +#let bemerkung = thmbox( + "bemerkung", + "Bemerkung", +// base_level: none, + fill: rgb("#eee"), + ).with(numbering: none) + + + +#let abrules(title: none, doc) = [ + #if ( sys.inputs.at("answers", default: "false") =="true" ){ + answers(true) + } + #set page( + // paper: "us-letter", + header: ( box(image("assets/logo.svg"), height: 2em)+ h(1fr) + +ifprintanswers( + "Lösung", + elsecontent: "Vorname Name:"+underlinespace(12em), + ) + ) + , + numbering: "1", + ) + #{ifprintanswers({set document(title: context document.title + " -- Lösung")})} + #thmrules(doc) +]