85 lines
3.0 KiB
Markdown
85 lines
3.0 KiB
Markdown
|
# LaTeX documentation
|
||
|
|
||
|
All LaTeX handouts are based on [`ormc_handout.cls`](./lib/tex/ormc_handout.cls). \
|
||
|
This class is based on `article.cls`, and should work with most LaTeX packages.
|
||
|
|
||
|
The best way to start a new document is to make a copy of an existing one.
|
||
|
- [Advanced/Cryptography](./src/Advanced/Cryptography) is a good example of a simple handout.
|
||
|
- [Advanced/DFAs](./src/Advanced/DFAs) is a good example of a handout with graphs.
|
||
|
- [Advanced/Geometric Optimization](./src/Advanced/Geometric%20Optimization) is a good example of a handout with geometry.
|
||
|
|
||
|
|
||
|
## Notes
|
||
|
- Compile your handouts with XeLaTeX. \
|
||
|
`pdflatex` is known to misbehave with `ormc_handout.cls`. \
|
||
|
This will happen by default if you use vscode. \
|
||
|
If you use Overleaf, you'll have to configure it manually (see document settings).
|
||
|
|
||
|
## Document Options
|
||
|
|
||
|
Document options are passed to `\documentclass`, as follows:
|
||
|
```latex
|
||
|
\documentclass[
|
||
|
% Show solutions is `solutions` is provided,
|
||
|
% hide them if `nosolutions` is provided.
|
||
|
%
|
||
|
% You should set only ONE of these flags at a time.
|
||
|
% Solutions are shown by default.
|
||
|
% All handouts are stored with `solutions` enabled.
|
||
|
solutions,
|
||
|
nosolutions,
|
||
|
|
||
|
% Enable this option if you need more space on the handout's first page.
|
||
|
% We use a long warning by default.
|
||
|
shortwarning,
|
||
|
|
||
|
% If present, hide page numbers.
|
||
|
% This should only be used for single-page handouts
|
||
|
% (e.g, warm-ups)
|
||
|
nopagenumber
|
||
|
]{ormc_handout}
|
||
|
```
|
||
|
|
||
|
Use `geometry` to change margins and page dimensions. US letter is the default.
|
||
|
|
||
|
|
||
|
## Utilities
|
||
|
- `\say{text}`: Puts text in quotes, handling details like period spacing. Courtesy of `dirtytalk`.
|
||
|
- `\note[Type]{text}`: Makes a note.
|
||
|
- `\hint{text}`: Shorthand for `\note[Hint]{text}`
|
||
|
|
||
|
## Sections
|
||
|
|
||
|
The usual LaTeX title-customization techniques *WILL NOT WORK* with this class. \
|
||
|
Don't even try to load `titlesec`.
|
||
|
|
||
|
`ormc_handout.cls` supports two levels of sections:
|
||
|
- `\section`, for large parts of the handout
|
||
|
- `\definition`, `\theorem`, `\proposition`, `\example`, `\remark`, `\problem`, and `\problempart`
|
||
|
|
||
|
All these macros have the following syntax: `\problem{title}<label>`
|
||
|
- `title` is the problem's title, and may be empty.
|
||
|
- `label` is the problem's label. This is optional. \
|
||
|
If a label is provided, this section may be referenced with `\ref{label}`.
|
||
|
|
||
|
Examples:
|
||
|
- `\problem{}`
|
||
|
- `\problem{Bonus}`
|
||
|
- `\problem{}<gcd>`, which may be referenced with `\ref{gcd}`
|
||
|
|
||
|
Do **not** use `\begin{problem} ... \end{problem}`. \
|
||
|
Sections are macros, not environments.
|
||
|
|
||
|
## Environments:
|
||
|
|
||
|
- `\begin{solution}`: A fancy red for solutions to problems. \
|
||
|
This is hidden if the `nosolutions` is provided.
|
||
|
- `\begin{instrutornote}`: A fancy blue box for instructor notes. \
|
||
|
This is hidden if the `nosolutions` is provided.
|
||
|
- `\begin{examplesolution}`: A fancy gray for sample solutions. \
|
||
|
This is never hidden.
|
||
|
|
||
|
All the above environments break across pages and may safely be nested.
|
||
|
|
||
|
Each of these environments also provides the `\linehack` macro, which draws a line across the box. \
|
||
|
This is useful for, say, solutions to multipart problems.
|