Rewrite symmetric groups
Some checks failed
CI / Typos (pull_request) Successful in 9s
CI / Typst formatting (pull_request) Failing after 5s
CI / Build (pull_request) Has been skipped

This commit is contained in:
2025-09-24 21:58:18 -07:00
parent 81d6518553
commit 69d835a2d2
11 changed files with 1493 additions and 1121 deletions

View File

@ -0,0 +1,134 @@
#import "@local/handout:0.1.0": *
#import "@preview/cetz:0.4.2"
#let markline(s, from, to, c: oblue) = {
import cetz.draw: *
let del = 0.4 // small line
let arrow = (
symbol: ")>",
scale: s * 2.2,
fill: c,
stroke: c,
)
line(
from + ".south",
(v => cetz.vector.add(v, (0, -del * s)), from + ".south"),
(v => cetz.vector.add(v, (0, (del + 0.4) * s)), to + ".north"),
(v => cetz.vector.add(v, (0, 0.4 * s)), to + ".north"),
stroke: c + s * 1mm,
)
mark(
to + ".north",
270deg,
..arrow,
)
}
#let marklinetop(s, from, to, del: 0.8, c: oblue) = {
import cetz.draw: *
let arrow = (
symbol: ")>",
scale: s * 2.2,
fill: c,
stroke: c,
)
line(
from + ".north",
(v => cetz.vector.add(v, (0, del * s)), from + ".north"),
(v => cetz.vector.add(v, (0, del * s)), to + ".north"),
(v => cetz.vector.add(v, (0, 0.2 * s)), to + ".north"),
stroke: c + s * 1mm,
)
mark(
to + ".north",
270deg,
..arrow,
)
}
#let marklinebot(s, from, to, del: 0.8, c: oblue) = {
import cetz.draw: *
let arrow = (
symbol: ")>",
scale: s * 2.2,
fill: c,
stroke: c,
)
line(
from + ".south",
(v => cetz.vector.add(v, (0, -del * s)), from + ".south"),
(v => cetz.vector.add(v, (0, -del * s)), to + ".south"),
(v => cetz.vector.add(v, (0, -0.4 * s)), to + ".south"),
stroke: c + s * 1mm,
)
mark(
to + ".south",
90deg,
..arrow,
)
}
#let marklinebotswap(s, from, to, del: 0.8, c: oblue) = {
import cetz.draw: *
let arrow = (
symbol: ")>",
scale: s * 2.2,
fill: c,
stroke: c,
)
line(
from + ".south",
(v => cetz.vector.add(v, (0, -del * s)), from + ".south"),
(v => cetz.vector.add(v, (0.5 * s, -del * s)), to + ".south"),
(v => cetz.vector.add(v, (0.5 * s, -del * s)), to + ".south"),
(v => cetz.vector.add(v, (0.5 * s, del * s)), to + ".north"),
(v => cetz.vector.add(v, (0, del * s)), to + ".north"),
(v => cetz.vector.add(v, (0, 0.2 * s)), to + ".north"),
stroke: c + s * 1mm,
)
mark(
to + ".north",
270deg,
..arrow,
)
}
#let marklinetopswap(s, from, to, del: 0.8, c: oblue) = {
import cetz.draw: *
let arrow = (
symbol: ")>",
scale: s * 2.2,
fill: c,
stroke: c,
)
line(
from + ".north",
(v => cetz.vector.add(v, (0, del * s)), from + ".north"),
(v => cetz.vector.add(v, (0.5 * s, del * s)), to + ".north"),
(v => cetz.vector.add(v, (0.5 * s, del * s)), to + ".north"),
(v => cetz.vector.add(v, (0.5 * s, -del * s)), to + ".south"),
(v => cetz.vector.add(v, (0, -del * s)), to + ".south"),
(v => cetz.vector.add(v, (0, -0.2 * s)), to + ".south"),
stroke: c + s * 1mm,
)
mark(
to + ".south",
90deg,
..arrow,
)
}