94 lines
3.2 KiB
Markdown
94 lines
3.2 KiB
Markdown
|
# Typst documentation
|
||
|
|
||
|
See [typst.app/docs](https://typst.app/docs) for typst's documentation. \
|
||
|
All typst handouts are based on [`handout@0.1.0`](./lib/typst/local/handout/0.1.0).
|
||
|
|
||
|
The best way to start a new document is to make a copy of an existing one.
|
||
|
- [Advanced/Tropical Polynomials](./src/Advanced/Tropical%20Polynomials) is a good place to start.
|
||
|
- [Warm-Ups/Painting](./src/Warm-Ups/Painting) is a good example of tikz-like pictures.
|
||
|
|
||
|
|
||
|
## Notes
|
||
|
- Typst's equivalent of tikz is cetz ([homepage](https://cetz-package.github.io), [docs](https://cetz-package.github.io/docs/api))
|
||
|
- Typst handouts are always compiled with solutions. \
|
||
|
Handouts without solutions are automatically compiled and published at [betalupi.com/handouts](https://static.betalupi.com/ormc). \
|
||
|
If you'd like to compile a student handout manually, run the following command in a handout directory:
|
||
|
```bash
|
||
|
typst compile main.typ --package-path ../../../lib/typst --input show_solutions=false
|
||
|
```
|
||
|
Where `package_path` is a relative path to [./lib/typst](./lib/typst).
|
||
|
|
||
|
## Document Options
|
||
|
|
||
|
All typst handouts start with the following:
|
||
|
```typst
|
||
|
#show: handout.with(
|
||
|
// Should match `meta.toml`
|
||
|
title: [handout title],
|
||
|
|
||
|
// Authors
|
||
|
by: "Mark",
|
||
|
|
||
|
// Subtitle (optional)
|
||
|
subtitle: "Based on a handout by Bryant Mathews",
|
||
|
|
||
|
// Group (optional)
|
||
|
group: "Advanced 2",
|
||
|
)
|
||
|
```
|
||
|
|
||
|
## Notable commands
|
||
|
- `#v(1fr)`: Like LaTeX's `\vfill`. Creates whitespace that grows automatically. \
|
||
|
`fr` means "fraction". `#v(2fr)` will fill twice as much space as `#v(1fr)` on the same page.
|
||
|
|
||
|
## Utilities
|
||
|
- `#note([content], type: "Note type")`: Makes a note. `type` is optional.
|
||
|
- `#hint([content])`: Shorthand for `#note([content], type: "Hint")`
|
||
|
- `#solution([content])`: A pretty box for solutions. Hidden in student handouts.
|
||
|
- `#examplesolution([content])`: Like `#solution()`, but is never hidden.
|
||
|
- `#if_solutions([content])`: Shows content only if we are showing solutions.
|
||
|
- `#if_no_solutions([content])`: Shows content only if we **aren't** showing solutions.
|
||
|
|
||
|
## Sections
|
||
|
High-level sections are denoted with `=`. \
|
||
|
Subsections start with `==`, subsubsections with `===`, and so on. \
|
||
|
**`handout@0.1.0` is only designed to use `=`, subsections might be ugly.**
|
||
|
|
||
|
|
||
|
`handout@0.1.0` also provides the following commands:
|
||
|
- `problem`
|
||
|
- `definition`
|
||
|
- `theorem`
|
||
|
- `example`
|
||
|
- `remark`
|
||
|
|
||
|
These all have the same syntax: `#problem("title", label: "label")`
|
||
|
- `title` is the problem's title, and may be omitted.
|
||
|
- `label` is the problem's label. This is optional. \
|
||
|
If a label is provided, this problem can be referenced with `@label`
|
||
|
|
||
|
**Examples:**
|
||
|
- `#problem()`
|
||
|
- `#problem("Bonus")`
|
||
|
- `#problem(label: "gcd")`, which may be referenced with `@gcd`
|
||
|
|
||
|
### Complete example:
|
||
|
|
||
|
```typst
|
||
|
// Import definition(), problem(), etc.
|
||
|
// Must be at the top of each file.
|
||
|
#import "@local/handout:0.1.0": *
|
||
|
|
||
|
// Make a section called "Tropical Cubic Polynomials"
|
||
|
= Tropical Cubic Polynomials
|
||
|
|
||
|
// Make a problem with a label
|
||
|
#problem(label: "imaproblem")
|
||
|
Consider the polynomial $f(x) = x^3 + 1x^2 + 3x + 6$.
|
||
|
- sketch a graph of this polynomial
|
||
|
|
||
|
// Make an untitled problem that references `problem`.
|
||
|
#problem()
|
||
|
Recall @imaproblem.
|
||
|
- use this graph to find the roots of $f$
|
||
|
```
|