auto-update(nvim): 2025-01-06 20:03:55
This commit is contained in:
parent
c8a445ee2d
commit
15f7d08901
4 changed files with 467 additions and 1 deletions
320
documents/by-course/math-8/pset-1/dvd.typ
Normal file
320
documents/by-course/math-8/pset-1/dvd.typ
Normal file
|
@ -0,0 +1,320 @@
|
|||
#import "@preview/ctheorems:1.1.3": *
|
||||
#import "@preview/showybox:2.0.3": showybox
|
||||
|
||||
#let colors = (
|
||||
rgb("#9E9E9E"),
|
||||
rgb("#F44336"),
|
||||
rgb("#E91E63"),
|
||||
rgb("#9C27B0"),
|
||||
rgb("#673AB7"),
|
||||
rgb("#3F51B5"),
|
||||
rgb("#2196F3"),
|
||||
rgb("#03A9F4"),
|
||||
rgb("#00BCD4"),
|
||||
rgb("#009688"),
|
||||
rgb("#4CAF50"),
|
||||
rgb("#8BC34A"),
|
||||
rgb("#CDDC39"),
|
||||
rgb("#FFEB3B"),
|
||||
rgb("#FFC107"),
|
||||
rgb("#FF9800"),
|
||||
rgb("#FF5722"),
|
||||
rgb("#795548"),
|
||||
rgb("#9E9E9E"),
|
||||
)
|
||||
|
||||
#let dvdtyp(
|
||||
title: "",
|
||||
subtitle: "",
|
||||
author: "",
|
||||
abstract: none,
|
||||
bibliography: none,
|
||||
paper-size: "a4",
|
||||
date: "today",
|
||||
body,
|
||||
) = {
|
||||
set document(title: title, author: author)
|
||||
|
||||
set std.bibliography(style: "springer-mathphys", title: [References])
|
||||
|
||||
show: thmrules
|
||||
|
||||
set page(
|
||||
numbering: "1",
|
||||
number-align: center,
|
||||
header: locate(loc => {
|
||||
if loc.page() == 1 {
|
||||
return
|
||||
}
|
||||
box(stroke: (bottom: 0.7pt), inset: 0.4em)[#text(
|
||||
font: "New Computer Modern",
|
||||
)[
|
||||
*#author* --- #datetime.today().display("[day] [month repr:long] [year]")
|
||||
#h(1fr)
|
||||
*#title*
|
||||
]]
|
||||
}),
|
||||
paper: paper-size,
|
||||
// The margins depend on the paper size.
|
||||
margin: (
|
||||
left: (86pt / 216mm) * 100%,
|
||||
right: (86pt / 216mm) * 100%,
|
||||
),
|
||||
)
|
||||
|
||||
|
||||
set heading(numbering: "1.")
|
||||
show heading: it => {
|
||||
set text(font: "Libertinus Serif")
|
||||
set par(first-line-indent: 0em)
|
||||
|
||||
if it.numbering != none {
|
||||
text(rgb("#2196F3"), weight: 500)[#sym.section]
|
||||
|
||||
text(rgb("#2196F3"))[#counter(heading).display() ]
|
||||
}
|
||||
it.body
|
||||
}
|
||||
|
||||
set text(font: "New Computer Modern", lang: "en")
|
||||
|
||||
show math.equation: set text(weight: 400)
|
||||
|
||||
|
||||
// Title row.
|
||||
align(center)[
|
||||
#set text(font: "Libertinus Serif")
|
||||
#block(text(weight: 700, 26pt, title))
|
||||
|
||||
|
||||
#if subtitle != none [#text(12pt, weight: 500)[#(
|
||||
subtitle
|
||||
)]]
|
||||
|
||||
#if author != none [#text(16pt)[#smallcaps(author)]]
|
||||
#v(1.2em, weak: true)
|
||||
|
||||
#if date == "today" {
|
||||
datetime.today().display("[day] [month repr:long] [year]")
|
||||
} else {
|
||||
date
|
||||
}
|
||||
|
||||
]
|
||||
|
||||
if abstract != none [
|
||||
#v(2.2em)
|
||||
#set text(font: "Libertinus Serif")
|
||||
#pad(x: 14%, abstract)
|
||||
#v(1em)
|
||||
]
|
||||
|
||||
set outline(fill: repeat[~.], indent: 1em)
|
||||
|
||||
show outline: set heading(numbering: none)
|
||||
show outline: set par(first-line-indent: 0em)
|
||||
|
||||
show outline.entry.where(level: 1): it => {
|
||||
text(font: "Libertinus Serif", rgb("#2196F3"))[#strong[#it]]
|
||||
}
|
||||
show outline.entry: it => {
|
||||
h(1em)
|
||||
text(font: "Libertinus Serif", rgb("#2196F3"))[#it]
|
||||
}
|
||||
|
||||
|
||||
// Main body.
|
||||
set par(
|
||||
justify: true,
|
||||
first-line-indent: 1em,
|
||||
)
|
||||
|
||||
body
|
||||
|
||||
// Display the bibliography, if any is given.
|
||||
if bibliography != none {
|
||||
show std.bibliography: set text(footnote-size)
|
||||
show std.bibliography: set block(above: 11pt)
|
||||
show std.bibliography: pad.with(x: 0.5pt)
|
||||
bibliography
|
||||
}
|
||||
}
|
||||
|
||||
#let thmtitle(t, color: rgb("#000000")) = {
|
||||
return text(
|
||||
font: "Libertinus Serif",
|
||||
weight: "semibold",
|
||||
fill: color,
|
||||
)[#t]
|
||||
}
|
||||
#let thmname(t, color: rgb("#000000")) = {
|
||||
return text(font: "Libertinus Serif", fill: color)[(#t)]
|
||||
}
|
||||
|
||||
#let thmtext(t, color: rgb("#000000")) = {
|
||||
let a = t.children
|
||||
if (a.at(0) == [ ]) {
|
||||
a.remove(0)
|
||||
}
|
||||
t = a.join()
|
||||
|
||||
return text(font: "New Computer Modern", fill: color)[#t]
|
||||
}
|
||||
|
||||
#let thmbase(
|
||||
identifier,
|
||||
head,
|
||||
..blockargs,
|
||||
supplement: auto,
|
||||
padding: (top: 0.5em, bottom: 0.5em),
|
||||
namefmt: x => [(#x)],
|
||||
titlefmt: strong,
|
||||
bodyfmt: x => x,
|
||||
separator: [#h(0.1em).#h(0.2em) \ ],
|
||||
base: "heading",
|
||||
base_level: none,
|
||||
) = {
|
||||
if supplement == auto {
|
||||
supplement = head
|
||||
}
|
||||
let boxfmt(name, number, body, title: auto, ..blockargs_individual) = {
|
||||
if not name == none {
|
||||
name = [ #namefmt(name)]
|
||||
} else {
|
||||
name = []
|
||||
}
|
||||
if title == auto {
|
||||
title = head
|
||||
}
|
||||
if not number == none {
|
||||
title += " " + number
|
||||
}
|
||||
title = titlefmt(title)
|
||||
body = bodyfmt(body)
|
||||
pad(
|
||||
..padding,
|
||||
showybox(
|
||||
width: 100%,
|
||||
radius: 0.3em,
|
||||
breakable: true,
|
||||
padding: (top: 0em, bottom: 0em),
|
||||
..blockargs.named(),
|
||||
..blockargs_individual.named(),
|
||||
[#title#name#titlefmt(separator)#body],
|
||||
),
|
||||
)
|
||||
}
|
||||
|
||||
let auxthmenv = thmenv(
|
||||
identifier,
|
||||
base,
|
||||
base_level,
|
||||
boxfmt,
|
||||
).with(supplement: supplement)
|
||||
|
||||
return auxthmenv.with(numbering: "1.1")
|
||||
}
|
||||
|
||||
#let styled-thmbase = thmbase.with(
|
||||
titlefmt: thmtitle,
|
||||
namefmt: thmname,
|
||||
bodyfmt: thmtext,
|
||||
)
|
||||
|
||||
#let builder-thmbox(color: rgb("#000000"), ..builderargs) = styled-thmbase.with(
|
||||
titlefmt: thmtitle.with(color: color.darken(30%)),
|
||||
bodyfmt: thmtext.with(color: color.darken(70%)),
|
||||
namefmt: thmname.with(color: color.darken(30%)),
|
||||
frame: (
|
||||
body-color: color.lighten(92%),
|
||||
border-color: color.darken(10%),
|
||||
thickness: 1.5pt,
|
||||
inset: 1.2em,
|
||||
radius: 0.3em,
|
||||
),
|
||||
..builderargs,
|
||||
)
|
||||
|
||||
#let builder-thmline(
|
||||
color: rgb("#000000"),
|
||||
..builderargs,
|
||||
) = styled-thmbase.with(
|
||||
titlefmt: thmtitle.with(color: color.darken(30%)),
|
||||
bodyfmt: thmtext.with(color: color.darken(70%)),
|
||||
namefmt: thmname.with(color: color.darken(30%)),
|
||||
frame: (
|
||||
body-color: color.lighten(92%),
|
||||
border-color: color.darken(10%),
|
||||
thickness: (left: 2pt),
|
||||
inset: 1.2em,
|
||||
radius: 0em,
|
||||
),
|
||||
..builderargs,
|
||||
)
|
||||
|
||||
#let problem-style = builder-thmbox(
|
||||
color: colors.at(11),
|
||||
shadow: (offset: (x: 2pt, y: 2pt), color: luma(70%)),
|
||||
)
|
||||
|
||||
#let exercise = problem-style("item", "Exercise")
|
||||
#let problem = exercise
|
||||
|
||||
#let theorem-style = builder-thmbox(
|
||||
color: colors.at(6),
|
||||
shadow: (offset: (x: 3pt, y: 3pt), color: luma(70%)),
|
||||
)
|
||||
|
||||
#let example-style = builder-thmbox(
|
||||
color: colors.at(16),
|
||||
shadow: (offset: (x: 3pt, y: 3pt), color: luma(70%)),
|
||||
)
|
||||
|
||||
#let theorem = theorem-style("item", "Theorem")
|
||||
#let lemma = theorem-style("item", "Lemma")
|
||||
#let corollary = theorem-style("item", "Corollary")
|
||||
|
||||
#let definition-style = builder-thmline(color: colors.at(8))
|
||||
|
||||
// #let definition = definition-style("definition", "Definition")
|
||||
#let proposition = definition-style("item", "Proposition")
|
||||
#let remark = definition-style("item", "Remark")
|
||||
#let observation = definition-style("item", "Observation")
|
||||
|
||||
// #let example-style = builder-thmline(color: colors.at(16))
|
||||
|
||||
#let example = example-style("item", "Example")
|
||||
|
||||
#let proof(body, name: none) = {
|
||||
thmtitle[Proof]
|
||||
if name != none {
|
||||
[ #thmname[#name]]
|
||||
}
|
||||
thmtitle[.]
|
||||
body
|
||||
h(1fr)
|
||||
$square$
|
||||
}
|
||||
|
||||
#let fact = thmplain(
|
||||
"item",
|
||||
"Fact",
|
||||
titlefmt: strong,
|
||||
separator: ".",
|
||||
|
||||
inset: 0pt,
|
||||
)
|
||||
#let abuse = thmplain(
|
||||
"item",
|
||||
"Abuse of Notation",
|
||||
titlefmt: strong,
|
||||
separator: ".",
|
||||
inset: 0pt,
|
||||
)
|
||||
#let definition = thmplain(
|
||||
"item",
|
||||
"Definition",
|
||||
titlefmt: strong,
|
||||
separator: ".",
|
||||
inset: 0pt,
|
||||
)
|
109
documents/by-course/math-8/pset-1/main.typ
Normal file
109
documents/by-course/math-8/pset-1/main.typ
Normal file
|
@ -0,0 +1,109 @@
|
|||
#import "./dvd.typ": *
|
||||
|
||||
#show: dvdtyp.with(
|
||||
title: "Pset 1",
|
||||
author: "Youwen Wu",
|
||||
)
|
||||
|
||||
#set heading(
|
||||
numbering: (
|
||||
num => {
|
||||
return "1." + str(num)
|
||||
}
|
||||
),
|
||||
)
|
||||
|
||||
Problems:
|
||||
|
||||
1.1: \#1ceij, 2c, 3cdeghjL, 4cdefh, 6, 7cg, 10ce, 11bei, 12a, 13
|
||||
|
||||
1.2: \#1bd, 2bd, 3, 5cfgh, 6bcg, 7be, 10bfg, 12bc, 13, 16cde
|
||||
|
||||
= Exercises
|
||||
|
||||
1. \
|
||||
c. #[
|
||||
$x/2$ is a rational number.
|
||||
|
||||
True.
|
||||
] \
|
||||
e. #[
|
||||
Either $pi$ is rational and $17$ is a prime, or $7 < 13$ and $81$ is a perfect square.
|
||||
|
||||
True.
|
||||
] \
|
||||
i. #[
|
||||
It is not the case that $39$ is prime, or that 64 is a power of 2.
|
||||
|
||||
False.
|
||||
] \
|
||||
j. #[
|
||||
There are more than three false statements in this book, and this statement is one of them.
|
||||
|
||||
False.
|
||||
]
|
||||
|
||||
2c. #[
|
||||
$P$ is $5^2 + 12^2 = 13^2$ and $Q$ is $sqrt(2) + sqrt(3) = sqrt(2 + 3)$
|
||||
|
||||
$P and Q: "false"$
|
||||
|
||||
$P or Q: "true"$
|
||||
]
|
||||
|
||||
3. #[
|
||||
\
|
||||
c. $P and not Q$
|
||||
#[
|
||||
#table(
|
||||
columns: 3,
|
||||
align: center,
|
||||
[$P$], [$Q$], [$P and not Q$],
|
||||
[T], [T], [F],
|
||||
[T], [F], [T],
|
||||
[F], [T], [F],
|
||||
[F], [F], [F],
|
||||
)
|
||||
] \
|
||||
d. $P and (Q or not Q)$
|
||||
#[
|
||||
#table(
|
||||
columns: 5,
|
||||
align: center,
|
||||
[$P$], [$Q$], [$not Q$], [$Q or not Q$], [$P and (Q or not Q)$],
|
||||
[T], [T], [F], [T], [T],
|
||||
[T], [F], [T], [T], [T],
|
||||
[F], [T], [F], [T], [F],
|
||||
[F], [F], [T], [T], [F],
|
||||
)
|
||||
] \
|
||||
e. $(P and Q) or not Q$ \
|
||||
#[
|
||||
#table(
|
||||
columns: 5,
|
||||
align: center,
|
||||
[$P$], [$Q$], [$P and Q$], [$not Q$], [$(P and Q) or not Q$],
|
||||
[T], [T], [T], [F], [T],
|
||||
[F], [T], [F], [F], [F],
|
||||
[T], [F], [F], [T], [T],
|
||||
[F], [F], [F], [T], [T],
|
||||
)
|
||||
] \
|
||||
g. $(P or S) and (P or K)$
|
||||
#table(
|
||||
columns: (1fr, 1fr, 1fr, 1fr, 1fr, 2fr),
|
||||
align: center,
|
||||
[$P$], [$S$], [$K$], [$P or S$], [$P or K$], [$(P or S) and (P or K)$],
|
||||
[T], [T], [T], [T], [T], [T],
|
||||
[T], [T], [F], [T], [T], [T],
|
||||
[T], [F], [T], [T], [T], [T],
|
||||
[T], [F], [F], [T], [T], [T],
|
||||
[F], [T], [T], [T], [T], [T],
|
||||
[F], [T], [F], [T], [F], [F],
|
||||
[F], [F], [T], [F], [T], [T],
|
||||
[F], [F], [F], [F], [F], [F],
|
||||
)
|
||||
]
|
||||
|
||||
|
||||
= Exercises
|
37
documents/by-course/math-8/pset-1/package.nix
Normal file
37
documents/by-course/math-8/pset-1/package.nix
Normal file
|
@ -0,0 +1,37 @@
|
|||
{
|
||||
pkgs,
|
||||
typstPackagesCache,
|
||||
typixLib,
|
||||
cleanTypstSource,
|
||||
flakeSelf,
|
||||
...
|
||||
}:
|
||||
let
|
||||
src = cleanTypstSource ./.;
|
||||
commonArgs = {
|
||||
typstSource = "main.typ";
|
||||
|
||||
fontPaths = [
|
||||
# Add paths to fonts here
|
||||
# "${pkgs.roboto}/share/fonts/truetype"
|
||||
];
|
||||
|
||||
virtualPaths = [
|
||||
# Add paths that must be locally accessible to typst here
|
||||
# {
|
||||
# dest = "icons";
|
||||
# src = "${inputs.font-awesome}/svgs/regular";
|
||||
# }
|
||||
];
|
||||
|
||||
XDG_CACHE_HOME = typstPackagesCache;
|
||||
SOURCE_DATE_EPOCH = builtins.toString flakeSelf.lastModified;
|
||||
};
|
||||
|
||||
in
|
||||
typixLib.buildTypstProject (
|
||||
commonArgs
|
||||
// {
|
||||
inherit src;
|
||||
}
|
||||
)
|
|
@ -283,7 +283,7 @@
|
|||
|
||||
// #let example-style = builder-thmline(color: colors.at(16))
|
||||
|
||||
#let example = example-style("item", "Example").with(numbering: none)
|
||||
#let example = example-style("item", "Example")
|
||||
|
||||
#let proof(body, name: none) = {
|
||||
thmtitle[Proof]
|
||||
|
|
Loading…
Reference in a new issue