Work on templating
This commit is contained in:
parent
df5c53727c
commit
85f13e5d46
13 changed files with 2528 additions and 17 deletions
103
chemex.typ
103
chemex.typ
|
|
@ -1,8 +1,20 @@
|
|||
#import "@preview/typsium-ghs:0.1.0": *
|
||||
#import "@preview/one-liner:0.2.0": fit-to-width
|
||||
#import "@preview/subpar:0.2.2"
|
||||
#import "@preview/typsium:0.3.0":*
|
||||
|
||||
|
||||
#let imageradius = 2pt
|
||||
|
||||
#let explanation = [
|
||||
Cats react with Mice to #ce("[Cu(H2O)4]^2+ + 4NH3 -> [Cu(NH3)4]^2+ + 4H2O")
|
||||
]
|
||||
|
||||
|
||||
#let language = "de"
|
||||
|
||||
#set text(lang:language)
|
||||
|
||||
#let repeated-table(num-repeats: 2, ..args) = {
|
||||
let options = args.named()
|
||||
let data = args.pos()
|
||||
|
|
@ -84,15 +96,17 @@
|
|||
|
||||
#let step_image_paths = (
|
||||
"figures/dummy.jpg",
|
||||
"figures/dummy.jpg",
|
||||
"none",
|
||||
"figures/dummy.jpg",
|
||||
|
||||
)
|
||||
|
||||
#let safety_notices = (h-statement(310), h-statement(310))
|
||||
|
||||
#let step_descriptions = (
|
||||
"Essen sie alle Kinder",
|
||||
"Essen sie alle Fische",
|
||||
lorem(20),
|
||||
lorem(10),
|
||||
|
||||
)
|
||||
|
||||
|
|
@ -102,7 +116,7 @@
|
|||
#let amounts = ("500g", 2, 7, 6, 7, 2, 2, 7, 6, 7, 2)
|
||||
#let material_names = ("Heißkleber", "Watteschen", "Plastic", "Wattestäbchen", "Wattestäbchen", "Watteschen", "Plastic", "Wattestäbchen", "Wattestäbchen","Heißkleber","Heißkleber","Heißkleber","Heißkleber","Heißkleber") // user input
|
||||
|
||||
#let tablecolumns = calc.ceil(amounts.len() / 6)
|
||||
#let tablecolumns = calc.ceil(amounts.len() / 7)
|
||||
|
||||
#let materials = material_names.map(name => text(name))
|
||||
|
||||
|
|
@ -115,27 +129,42 @@
|
|||
#let steps = step_descriptions.enumerate().map(((i, desc)) => {
|
||||
let img = if i < step_image_paths.len() { step_image_paths.at(i) } else { "none" }
|
||||
grid(
|
||||
columns: if has_images { (step_image_size, auto) } else { (auto) },
|
||||
inset: (0pt, 0pt),
|
||||
columns: if has_images { (1fr, step_image_size) } else { (1fr, auto) },
|
||||
align: (horizon+left, horizon+center),
|
||||
inset: 5pt,
|
||||
stroke: (
|
||||
top: (paint: black, thickness: 0.1pt, dash: "dashed"),
|
||||
bottom: (paint: black, thickness: 0.1pt, dash: "dashed"),
|
||||
left: none,
|
||||
right: none,
|
||||
),
|
||||
pad(top: 0.2cm, bottom: 0.2cm, text("Schritt " + str(i+1) + ":\n" + desc)),
|
||||
if img != "none" {
|
||||
pad(right: 10pt, image(img))
|
||||
pad(right: 10pt, block(
|
||||
clip: true,
|
||||
radius: imageradius,
|
||||
image(img)
|
||||
))
|
||||
} else {
|
||||
none
|
||||
},
|
||||
pad(bottom: 0.2cm, text("Schritt " + str(i+1) + ":\n" + desc)),
|
||||
v(0.2cm)
|
||||
)
|
||||
})
|
||||
|
||||
|
||||
#let figures = image_paths.map(path => image(path))
|
||||
#let figures = image_paths.map(path => block(
|
||||
clip: true,
|
||||
radius: imageradius,
|
||||
image(path)
|
||||
))
|
||||
|
||||
//title and hazard
|
||||
|
||||
|
||||
#grid(
|
||||
columns: (0.7fr, 1fr),
|
||||
align: (horizon, right+horizon),
|
||||
stroke: (bottom:0.7pt + black),
|
||||
stroke: (bottom:0.5pt + black),
|
||||
inset: (5pt),
|
||||
par(
|
||||
text("Methan-Mamba", size: 22pt)),
|
||||
|
|
@ -146,22 +175,37 @@
|
|||
)
|
||||
)
|
||||
|
||||
//safety
|
||||
#v(-0.3cm)
|
||||
#show table.cell: set text(size: 6pt)
|
||||
#box( stroke: 0.5pt + red, inset: -1pt, radius: 1pt,
|
||||
table(
|
||||
stroke: none,
|
||||
columns: ( 1fr, 1fr, 1fr, 1fr),
|
||||
..safety_notices,
|
||||
)
|
||||
)
|
||||
|
||||
|
||||
#let observation = []
|
||||
// Materials and Overview
|
||||
|
||||
#show table.cell: set text(size: 9pt)
|
||||
#grid(
|
||||
columns: (auto, 1fr),
|
||||
stroke: (bottom:0.7pt + black),
|
||||
inset: (5pt),
|
||||
stroke: (bottom:0.5pt + black),
|
||||
inset: (top: 0pt, bottom: 5pt, left: 5pt, right: 5pt),
|
||||
grid(
|
||||
rows: (auto),
|
||||
text("Material", weight: "bold"),
|
||||
v(0.4cm),
|
||||
repeated-table(
|
||||
num-repeats: tablecolumns,
|
||||
stroke: (_, y) => if y > 0 { (top: 0.3pt) },
|
||||
stroke: (x, y) =>
|
||||
(if y > 0 { (top: (paint: black, thickness: 0.1pt, dash: "dashed")) } else { none }) +
|
||||
(if calc.rem(x, 2) == 0 and x > 0 { (left: (paint: black, thickness: 0.1pt, dash: "dashed")) } else { none }),
|
||||
|
||||
columns: (auto, auto),
|
||||
inset: 6pt,
|
||||
align: (right, left),
|
||||
..for x in amounts.zip(material_names) {(
|
||||
..for y in x {(
|
||||
|
|
@ -185,8 +229,8 @@
|
|||
// Durchführung
|
||||
#grid(
|
||||
columns: (1fr),
|
||||
stroke: (bottom:0.7pt + black),
|
||||
inset: (5pt),
|
||||
stroke: (bottom:0.5pt + black),
|
||||
inset: (top: 0pt, bottom: 5pt, left: 5pt, right: 5pt),
|
||||
grid(
|
||||
rows: (auto),
|
||||
text("Durchführung", weight: "bold"),
|
||||
|
|
@ -195,8 +239,33 @@
|
|||
),
|
||||
)
|
||||
|
||||
// Safety Notices
|
||||
|
||||
//Interpretation
|
||||
#grid(
|
||||
columns: (1fr),
|
||||
stroke: (bottom:0.5pt + black),
|
||||
inset: (top: 0pt, bottom: 5pt, left: 5pt, right: 5pt),
|
||||
grid(
|
||||
rows: (auto),
|
||||
text("Interpretation", weight: "bold"),
|
||||
v(0.4cm),
|
||||
explanation
|
||||
),
|
||||
)
|
||||
|
||||
//observation
|
||||
#grid(
|
||||
columns: (1fr),
|
||||
stroke: (bottom:0.5pt + black),
|
||||
inset: (top: 0pt, bottom: 5pt, left: 5pt, right: 5pt),
|
||||
grid(
|
||||
rows: (auto),
|
||||
text("Observation", weight: "bold"),
|
||||
v(0.4cm),
|
||||
observation
|
||||
),
|
||||
)
|
||||
// Safety Notices
|
||||
|
||||
|
||||
// Interpretation
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue