diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index fc34a4c..a3a7e4b 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -13,16 +13,45 @@ jobs: steps: - uses: actions/checkout@v4 - - name: Download Tectonic - run: - wget "https://github.com/tectonic-typesetting/tectonic/releases/download/tectonic%400.15.0/tectonic-0.15.0-x86_64-unknown-linux-musl.tar.gz" && - tar -xf "tectonic-0.15.0-x86_64-unknown-linux-musl.tar.gz" + # Could instead install `texlive-full`, but that takes ~20 minutes. + # We'll specify the packages we need manually. + - name: "Install TeXLive" + run: | + sudo apt update + DEBIAN_FRONTEND=noninteractive \ + sudo apt install --yes \ + texlive texlive-xetex \ + texlive-games texlive-fonts-extra texlive-latex-extra \ + texlive-pictures texlive-pstricks - - name: Build LaTeX handouts - run: bash build.sh + # Typst isn't packaged, and manual download gives us + # more control anyway. + - name: "Download Typst" + run: | + wget -q "https://github.com/typst/typst/releases/download/v0.12.0/typst-x86_64-unknown-linux-musl.tar.xz" + tar -xf "typst-x86_64-unknown-linux-musl.tar.xz" + mv "typst-x86_64-unknown-linux-musl/typst" . + rm "typst-x86_64-unknown-linux-musl.tar.xz" + rm -dr "typst-x86_64-unknown-linux-musl" - - uses: actions/upload-artifact@v3 + # Builds all handouts, LaTeX and Typst + - name: "Build handouts" + run: TYPST_PATH="$(pwd)/typst" python tools/build/main.py + + # Upload logs, even if build fails. + # LaTeX stdout/stderr isn't always helpful. + - name: "Save LaTeX logs" + uses: actions/upload-artifact@v3 + if: always() with: - name: output + name: "LaTeX logs" + path: "**/*.log" + retention-days: 1 + + # Upload build output + - name: "Save output" + uses: actions/upload-artifact@v3 + with: + name: "Build output" path: "output/*" retention-days: 10 diff --git a/.github/workflows/lints.yml b/.github/workflows/lints.yml index 0fcd0a8..3b96eb9 100644 --- a/.github/workflows/lints.yml +++ b/.github/workflows/lints.yml @@ -12,4 +12,4 @@ jobs: - name: Check typos uses: crate-ci/typos@master with: - config: ./typos.toml + config: ./tools/typos.toml diff --git a/.gitignore b/.gitignore index 27e690e..2e22839 100644 --- a/.gitignore +++ b/.gitignore @@ -2,19 +2,18 @@ venv __pycache__ *.ignore +.mypy_cache # Output files /output /output.zip -/index.json -main.pdf -**/build *.pdf # TeX build files *.synctex.gz* *.latexmk *.aux +*.out *.log *.fls *.fdb_latexmk diff --git a/.vscode/settings.json b/.vscode/settings.json index d84c8bc..af71884 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -1,23 +1,3 @@ { - //"latex-workshop.latex.recipe.default": "latexmk (lualatex)", - - "latex-workshop.latex.recipe.default": "tectonic", - //"latex-workshop.latex.outDir": "%DIR%/../build/main", - "latex-workshop.latex.outDir": "%DIR%", - - "latex-workshop.latex.recipes": [ - { - "name": "tectonic", - "tools": ["tectonic"] - } - ], - - "latex-workshop.latex.tools": [ - { - "name": "tectonic", - "command": "/home/mark/.cargo/bin/tectonic", - "args": ["-X", "compile", "--keep-intermediates", "--keep-logs", "%DOC_EXT%"], - "env": {} - } - ] -} \ No newline at end of file + "latex-workshop.latex.recipe.default": "latexmk (xelatex)" +} diff --git a/Advanced/COM/main.tex b/Advanced/COM/main.tex deleted file mode 100755 index 9a60082..0000000 --- a/Advanced/COM/main.tex +++ /dev/null @@ -1,32 +0,0 @@ -% use [nosolutions] flag to hide solutions. -% use [solutions] flag to show solutions. -\documentclass[ - solutions, - singlenumbering, - shortwarning -]{../../resources/ormc_handout} -\usepackage{../../resources/macros} - -\usepackage{tikz} -\usetikzlibrary{patterns} - -\usepackage{graphicx} - - - -\uptitlel{Advanced 2} -\uptitler{\smallurl{}} -\title{Geometry of Masses I} -\subtitle{Prepared by Sunny \& Mark on \today{}} - - - - -\begin{document} - \maketitle - - \input{parts/0 balance} - \input{parts/1 continuous} - \input{parts/2 pappus} - -\end{document} \ No newline at end of file diff --git a/Advanced/COM/parts/0 balance.tex b/Advanced/COM/parts/0 balance.tex deleted file mode 100644 index 1f1f7d9..0000000 --- a/Advanced/COM/parts/0 balance.tex +++ /dev/null @@ -1,160 +0,0 @@ -\section{Balance} - -\example{} -Consider a mass $m_1$ on top of a pin in two-dimensional space. \par -Due to gravity, the mass exerts a force on the pin at the point of contact. \par -For simplicity, we'll say that the magnitude of this force is equal the mass of the object--- -that is, $m_1$. -\begin{center} - \begin{tikzpicture}[scale=2] - \fill[color = black] (0, 0.1) circle[radius=0.1]; - \node[above] at (0, 0.20) {$m_1$}; - - \draw[line width = 0.25mm, pattern=north west lines] (0, 0) -- (-0.15, -0.3) -- (0.15, -0.3) -- cycle; - - - \draw[color = black, opacity = 0.5] (1, 0.1) circle[radius=0.1]; - \draw[line width = 0.25mm, pattern=north west lines, opacity = 0.5] (1, 0) -- (0.85, -0.3) -- (1.15, -0.3) -- cycle; - - \draw[->, line width = 0.5mm] (1, 0) -- (1, -0.5) node[below] {$m_1$}; - %\draw[->, line width = 0.5mm, dashed] (1, 0) -- (1, 0.5) node[above] {$-m_1$}; - - \fill[color = red] (1, 0) circle[radius=0.025]; - \end{tikzpicture} -\end{center} -The pin exerts an opposing force on the mass at the same point, and the system thus stays still. - - -\remark{} -Forces, distances, and torques in this handout will be provided in arbitrary (though consistent) units. \par -We have no need for physical units in this handout. - -\example{} -Now attach this mass to a massless rod and try to balance the resulting system. \par -As you might expect, it is not stable: the rod pivots and falls down. -\begin{center} - \begin{tikzpicture}[scale=2] - \fill[color = black] (-0.3, 0.0) circle[radius=0.1]; - \node[above] at (-0.3, 0.1) {$m_1$}; - \draw[-, line width = 0.5mm] (-0.8, 0) -- (0.5, 0); - - \draw[line width = 0.25mm, pattern=north west lines] (0, 0) -- (-0.15, -0.3) -- (0.15, -0.3) -- cycle; - - - \draw[color = black, opacity = 0.5] (1.2, 0.0) circle[radius=0.1]; - \draw[-, line width = 0.5mm, opacity = 0.5] (0.7, 0) -- (1.9, 0); - - \draw[line width = 0.25mm, pattern=north west lines, opacity = 0.5] (1.5, 0) -- (1.35, -0.3) -- (1.65, -0.3) -- cycle; - - - \draw[->, line width = 0.5mm] (1.2, 0) -- (1.2, -0.5) node[below] {$m_1$}; - %\draw[->, line width = 0.5mm, dashed] (1.5, 0) -- (1.5, 0.5) node[above] {$f_p$}; - \end{tikzpicture} -\end{center} -This is because the force $m_1$ is offset from the pivot (i.e, the tip of the pin). \par -It therefore exerts a \textit{torque} on the mass-rod system, causing it to rotate and fall. - -\pagebreak - - -\definition{Torque} -Consider a rod on a single pivot point. -If a force with magnitude $m_1$ is applied at an offset $d$ from the pivot point, -the system experiences a \textit{torque} with magnitude $m_1 \times d$. -\begin{center} - \begin{tikzpicture}[scale=2] - \draw[-, line width = 0.5mm] (-1.2, 0) -- (0.5, 0); - \draw[line width = 0.25mm, pattern=north west lines] (0, 0) -- (-0.15, -0.3) -- (0.15, -0.3) -- cycle; - - \draw[->, line width = 0.5mm, dashed] (-0.8, 0) -- (-0.8, -0.5) node[below] {$m_1$}; - \fill[color = red] (-0.8, 0.0) circle[radius=0.05]; - - - \draw[-, line width = 0.3mm, double] (-0.8, 0.1) -- (-0.8, 0.2) -- (0, 0.2) node [midway, above] {$d$} -- (0, 0.1); - \end{tikzpicture} -\end{center} - -We'll say that a \textit{positive torque} results in \textit{clockwise} rotation, -and a \textit{negative torque} results in a \textit{counterclockwise rotation}. -As stated in \ref{fakeunits}, torque is given in arbitrary \say{torque units} -consistent with our units of distance and force. - -\vspace{2mm} - -% I believe the convention used in physics is opposite ours, but that's fine. -% Positive = clockwise is more intuitive given our setup, -% and we only use torque to define CoM anyway. -Look at the diagram above and convince yourself that this convention makes sense: -\begin{itemize} - \item $m_1$ is positive \note{(masses are usually positive)} - \item $d$ is negative \note{($m_1$ is \textit{behind} the pivot)} - \item therefore, $m_1 \times d$ is negative. -\end{itemize} - - -\definition{Center of mass} -The \textit{center of mass} of a physical system is the point at which one can place a pivot \par -so that the total torque the system experiences is 0. \par -\note{In other words, it is the point at which the system may be balanced on a pin.} - - -\problem{} -Consider the following physical system: -we have a massless rod of length $1$, with a mass of size 3 at position $0$ -and a mass of size $1$ at position $1$. -Find the position of this system's center of mass. \par - -\begin{center} - \begin{tikzpicture}[scale=2] - \draw[line width = 0.25mm, pattern=north west lines] (0, 0) -- (-0.15, -0.3) -- (0.15, -0.3) -- cycle; - - \draw[-, line width = 0.5mm] (-0.5, 0) -- (1.5, 0); - - - \fill[color = black] (-0.5, 0) circle[radius=0.1]; - \node[above] at (-0.5, 0.2) {$3$}; - - \fill[color = black] (1.5, 0) circle[radius=0.08]; - \node[above] at (1.5, 0.2) {$1$}; - \end{tikzpicture} -\end{center} - -\vfill - -\problem{} -Do the same for the following system, where $m_1$ and $m_2$ are arbitrary masses. - -\begin{center} - \begin{tikzpicture}[scale=2] - \draw[line width = 0.25mm, pattern=north west lines] (0.7, 0) -- (0.55, -0.3) -- (0.85, -0.3) -- cycle; - - \draw[-, line width = 0.5mm] (-0.5, 0) -- (1.5, 0); - - - \fill[color = black] (-0.5, 0) circle[radius=0.1]; - \node[above] at (-0.5, 0.2) {$m_1$}; - - \fill[color = black] (1.5, 0) circle[radius=0.08]; - \node[above] at (1.5, 0.2) {$m_2$}; - \end{tikzpicture} -\end{center} - -\vfill -\pagebreak - -\problem{} -Consider a massless horizontal rod of infinite length. \par -Attach $n$ masses $m_1, m_2, ..., m_n$ to it, placing each $m_i$ at position $x_i$. \par -Find the resulting system's center of mass. - -\vfill - -\problem{} -Extend \ref{massline} into two dimensions: \par -Place $n$ masses $m_1, m_2, ..., m_n$ at positions $(x_1, y_1),~ (x_2, y_2),~ (x_3, y_3)$ -on a massless plane. \par -Find the coordinates of the resulting system's center of mass. \par -\hint{If a plane balances on a pin, it does not tilt in the $x$ or $y$ direction.} - -\vfill -\pagebreak \ No newline at end of file diff --git a/Advanced/COM/parts/1 continuous.tex b/Advanced/COM/parts/1 continuous.tex deleted file mode 100644 index 6ee21a6..0000000 --- a/Advanced/COM/parts/1 continuous.tex +++ /dev/null @@ -1,64 +0,0 @@ -\section{Continuous mass} - -Now let's extend this idea to a \textit{continuous distribution} of masses rather than discrete point masses. This isn't so different; a continuous distribution of mass is really just a lot of point-masses, only that there are so many of them so close together that you can't even count them\footnote{For example, your pencil might seem like a continuous distribution of mass, but it's really just a whole lot of atoms.}. In general, finding the CoM requires integral calculus, but not always...\footnote{Many of the following problems can be solved with integration even though you're meant to solve them without it. But remember, in math, whenever you accomplish the same task two different ways, that really means that they're somehow the same thing.} - - -\problem{} -You are given a cardboard cutout of Figure \ref{seahorse} and some office supplies. How might you determine the CoM? Does your strategy also work in 3D? - -\vfill - -\problem{} -Where is the CoM of a right isosceles triangle? What about any isosceles triangle? - -\vfill - -\problem{} -How can you easily find the CoM of any triangle? Why does this work? - -\vfill - -\pagebreak - - -\problem{} -Consider Figure \ref{soda} depicting a simplified soda can. -If you leave just the right amount, -you can get it to balance on the beveled edge, as seen in Figure -\ref{soda filled}. - -\begin{figure}[htp] -\centering -\begin{minipage}{0.5\textwidth} - \centering - \includegraphics[width=0.6\linewidth]{img/soda.png} - \caption{} - \label{soda} -\end{minipage}\hfill -\begin{minipage}{0.5\textwidth} - \centering - \includegraphics[width=0.6 \linewidth]{img/soda_filled.png} - \caption{} - \label{soda filled} -\end{minipage} -\end{figure} - -\problem{} -See Figure \ref{soda filled}. Let's take the can to be massless and initially empty. Let's also assume that we live in two dimensions. We start slowly filling it up with soda to a vertical height $h$. What is $h$ just before the can tips over? - -\vfill - -\problem{}<3D soda> -Think about how you might approach this problem in 3D. Does $h$ become larger or smaller? - -\vfill - -\pagebreak - -So far we've made the assumption our shapes have mass that is \textit{uniformly distributed}. But that doesn't have to be the case. - -\problem{} -A mathemagical wizard will give you his staff if you can balance it horizontally on your finger. The strange magical staff has unit length and it's mass is distributed in a very special way. It's density decreases linearly from $\lambda_0$ at one end to $0$ at the other. Where is the staff's balancing point? - -\vfill -\pagebreak diff --git a/Advanced/COM/parts/2 pappus.tex b/Advanced/COM/parts/2 pappus.tex deleted file mode 100644 index 2568be6..0000000 --- a/Advanced/COM/parts/2 pappus.tex +++ /dev/null @@ -1,57 +0,0 @@ -\section{Pappus's Centroid Theorem} - -\begin{figure}[htp] - \centering - \includegraphics[width=0.6\linewidth]{img/pappus_1.png} - \caption{} - \label{pappus1} -\end{figure} - -\textit{Centroids} are closely related to, and often synonymous with, centres of mass. A centroid is the geometric centre of an object, regardless of the mass distribution. Thus, the centroid and centre of mass coincide when the mass is uniformly distributed. - -Figure \ref{pappus1} depicts three different surfaces constructed by revolving a line segment (in red) about a central axis. These are often called \textit{surfaces of revolution}. - -\textit{Pappus's First Centroid Theorem} allows you to determine the area of a surface of revolution using information about the line segment and the axis of rotation. - - Can you intuitively come up with Pappus's First Centroid Theorem for yourself? Figure \ref{pappus1} is very helpful. It may also help to draw from surface area formulae you already know. What limitations are there on the theorem? - -\vfill - -\pagebreak - -\textit{Pappus's Second Centroid Theorem} simply extends this concept to \textit{solids of revolution}, which are exactly what you think they are. - - Now that you've done the first theorem, what do you think Pappus's Second Centroid Theorem states? - -\vfill - - The centroid of a semi-circular line segment is already given in Figure \ref{pappus1}, but what about the centroid of a filled semi-circle? (Hint: For a sphere of radius $r$, $V=\frac{4}{3}\pi r^3$) - -\begin{figure}[htp] - \centering - \includegraphics[width=0.4\linewidth]{img/arc.png} - \caption{} - \label{arc} -\end{figure} - -\label{arc centroid} Given arc $AB$ with radius $r$ and subtended by $2\alpha$, determine $OG$, the distance from the centre of the circle to the centroid of the arc. - -\vfill - -\pagebreak - - Using your answers from Problem \ref{isosceles centroid} and Problem \ref{arc centroid}. Where is the centroid of the \textit{sector} of the circle in Figure \ref{arc}. (Hint: Cut it up.) - -\vfill - - Seeing your success with his linear staff, the wizard challenges you with another magical staff to balance. It looks identical to the first one, but you're told that the density decreases from $\lambda_0$ to $0$ according to the function $\lambda(x) = \lambda_0\sqrt{1-x^2}$. - -\vfill - - Infinitely many masses $m_i$ are placed at $x_i$ along the positive $x$-axis, starting with $m_0 = 1$ placed at $x_0 = 1$. Each successive mass is placed twice as far from the origin compared to the previous one. But also, each successive mass has a quarter the weight of the previous one. Find the CoM if it exists. - -\vfill - - (Bonus) Try to actually find $h$ from Problem \ref{3D soda}. Good luck. - -%\item (Bonus, not related to the packet) Spongebob, Patrick, and Squidward are all hiding from the Sea Bear. Initially, Spongebob and Patrick are keeping watch 100 yards apart with Squidward halfway in between them. When Spongebob gets scared, he runs to hide halfway between Squidward and Patrick. Then Patrick, not wanting to be the farthest from the centre, runs to be halfway between Squidward and Patrick. Squidward, seeing this, quickly finds the new halfway point between Spongebob and Patrick. This pattern keeps repeating until all three of them are pointlessly clambering on top of each other. Where do they end up relative to their initial positions? diff --git a/Advanced/DFAs/starred b/Advanced/DFAs/starred deleted file mode 100644 index e69de29..0000000 diff --git a/Advanced/Definable Sets/starred b/Advanced/Definable Sets/starred deleted file mode 100644 index e69de29..0000000 diff --git a/Advanced/Geometry of Masses/img/arc.png b/Advanced/Geometry of Masses/img/arc.png deleted file mode 100644 index a732cbb..0000000 Binary files a/Advanced/Geometry of Masses/img/arc.png and /dev/null differ diff --git a/Advanced/Geometry of Masses/img/pappus_1.png b/Advanced/Geometry of Masses/img/pappus_1.png deleted file mode 100644 index 1b67411..0000000 Binary files a/Advanced/Geometry of Masses/img/pappus_1.png and /dev/null differ diff --git a/Advanced/Geometry of Masses/img/soda.png b/Advanced/Geometry of Masses/img/soda.png deleted file mode 100644 index b45546d..0000000 Binary files a/Advanced/Geometry of Masses/img/soda.png and /dev/null differ diff --git a/Advanced/Geometry of Masses/img/soda_filled.png b/Advanced/Geometry of Masses/img/soda_filled.png deleted file mode 100644 index 4c695ec..0000000 Binary files a/Advanced/Geometry of Masses/img/soda_filled.png and /dev/null differ diff --git a/Advanced/Mock a Mockingbird/starred b/Advanced/Mock a Mockingbird/starred deleted file mode 100644 index e69de29..0000000 diff --git a/Advanced/Size of Sets/starred b/Advanced/Size of Sets/starred deleted file mode 100644 index e69de29..0000000 diff --git a/Misc/Moscow Puzzles/images/101a.png b/Misc/Moscow Puzzles/images/101a.png deleted file mode 100755 index 1c1360d..0000000 Binary files a/Misc/Moscow Puzzles/images/101a.png and /dev/null differ diff --git a/Misc/Moscow Puzzles/images/101b.png b/Misc/Moscow Puzzles/images/101b.png deleted file mode 100755 index e20e913..0000000 Binary files a/Misc/Moscow Puzzles/images/101b.png and /dev/null differ diff --git a/Misc/Moscow Puzzles/images/110.png b/Misc/Moscow Puzzles/images/110.png deleted file mode 100755 index cb511ad..0000000 Binary files a/Misc/Moscow Puzzles/images/110.png and /dev/null differ diff --git a/Misc/Moscow Puzzles/images/120.png b/Misc/Moscow Puzzles/images/120.png deleted file mode 100755 index dd0f70e..0000000 Binary files a/Misc/Moscow Puzzles/images/120.png and /dev/null differ diff --git a/Misc/Moscow Puzzles/images/121.png b/Misc/Moscow Puzzles/images/121.png deleted file mode 100755 index b9bc1d1..0000000 Binary files a/Misc/Moscow Puzzles/images/121.png and /dev/null differ diff --git a/Misc/Moscow Puzzles/images/239.png b/Misc/Moscow Puzzles/images/239.png deleted file mode 100755 index 3e63260..0000000 Binary files a/Misc/Moscow Puzzles/images/239.png and /dev/null differ diff --git a/Misc/Moscow Puzzles/images/252.png b/Misc/Moscow Puzzles/images/252.png deleted file mode 100755 index b34d907..0000000 Binary files a/Misc/Moscow Puzzles/images/252.png and /dev/null differ diff --git a/Misc/Moscow Puzzles/images/255.png b/Misc/Moscow Puzzles/images/255.png deleted file mode 100755 index 7f5343c..0000000 Binary files a/Misc/Moscow Puzzles/images/255.png and /dev/null differ diff --git a/Misc/Moscow Puzzles/images/263.png b/Misc/Moscow Puzzles/images/263.png deleted file mode 100755 index b46f648..0000000 Binary files a/Misc/Moscow Puzzles/images/263.png and /dev/null differ diff --git a/Misc/Moscow Puzzles/main.tex b/Misc/Moscow Puzzles/main.tex deleted file mode 100755 index 6f83bc8..0000000 --- a/Misc/Moscow Puzzles/main.tex +++ /dev/null @@ -1,36 +0,0 @@ -% use [nosolutions] flag to hide solutions. -% use [solutions] flag to show solutions. -\documentclass[ - solutions -]{../../resources/ormc_handout} -\usepackage{../../resources/macros} - - -\usepackage{subfiles} -\usepackage{graphicx} -\graphicspath{ {./images} } - - -\uptitlel{Intermediate 2} -\uptitler{\smallurl{}} -\title{Warm - Up} -\subtitle{ - Prepared by Mark on \today \\ - \medskip - These problems were originally found in \\ - Boris Kordemsky's \textit{The Moscow Puzzles} -} - -\begin{document} - - \maketitle - - \subfile{problems/217} - \vfill - \pagebreak - - \subfile{problems/101} - \vfill - \pagebreak - -\end{document} \ No newline at end of file diff --git a/Misc/Moscow Puzzles/problems/101.tex b/Misc/Moscow Puzzles/problems/101.tex deleted file mode 100755 index 0cb5db2..0000000 --- a/Misc/Moscow Puzzles/problems/101.tex +++ /dev/null @@ -1,23 +0,0 @@ -\documentclass[../main.tex]{subfiles} - -\begin{document} - - \problem{The Courageous Garrison} - - A courageous garrison was defending a snow fort. The commander arranged his forces as shown in the square frame (the inner square showing the garrison's total strength of 40 boys): 11 boys defending each side of the fort. - - \begin{figure}[h] - \centering - \includegraphics[width=12cm]{101a} - \end{figure} - - The garrison ``lost'' 4 boys during each of the first, second, third, and fourth assaults and 2 during the fifth and last. But after each charge 11 boys defended each side of the snow fort. How? - - \vfill - - \begin{figure}[h] - \centering - \includegraphics[width=4cm]{101b} - \end{figure} - -\end{document} \ No newline at end of file diff --git a/Misc/Moscow Puzzles/problems/110.tex b/Misc/Moscow Puzzles/problems/110.tex deleted file mode 100755 index 954f8df..0000000 --- a/Misc/Moscow Puzzles/problems/110.tex +++ /dev/null @@ -1,16 +0,0 @@ -\documentclass[../main.tex]{subfiles} - -\begin{document} - - \problem{Knight's Move} - - To solve this problem you need not be a chess player. You need only know the way a knight moves on the chessboard: two squares in one direction and one square at right angles to the first direction. The diagram shows 16 black pawns on a board. - - \begin{figure}[h] - \centering - \includegraphics[width=12cm]{110} - \end{figure} - - Can a knight capture all 16 pawns in 16 moves? - -\end{document} \ No newline at end of file diff --git a/Misc/Moscow Puzzles/problems/120.tex b/Misc/Moscow Puzzles/problems/120.tex deleted file mode 100755 index 4757edb..0000000 --- a/Misc/Moscow Puzzles/problems/120.tex +++ /dev/null @@ -1,24 +0,0 @@ -\documentclass[../main.tex]{subfiles} - -\begin{document} - - \problem{One Hundred and Forty-Five Doors} - A prisoner was thrown into a medieval dungeon with 145 doors. Nine, shown by black bars, are locked, but each one will open if before you reach it you pass through exactly 8 open doors. \\ - You don't have to go through every open door but you do have to go through every cell and all 9 locked doors. If you enter a cell or go through a door a second time, the doors clang shut, trapping you. \\ - - \medskip - - The prisoner (in the lower right corner cell) had a drawing of the dungeon. He thought a long time before he set out. He went through all the locked doors and escaped through the last, upper left corner one. What was his route? - - \begin{figure}[h] - \centering - \includegraphics[width=8cm]{120} - \end{figure} - - - \begin{figure}[h] - \centering - \includegraphics[width=8cm]{120} - \end{figure} - -\end{document} \ No newline at end of file diff --git a/Misc/Moscow Puzzles/problems/121.tex b/Misc/Moscow Puzzles/problems/121.tex deleted file mode 100755 index 1cb5f52..0000000 --- a/Misc/Moscow Puzzles/problems/121.tex +++ /dev/null @@ -1,37 +0,0 @@ -\documentclass[../main.tex]{subfiles} - -\begin{document} - - \problem{How Does the Prisoner Escape?} - - This dungeon has $49$ cells. In $7$ cells ($A$ to $G$ in the diagram) there is a locked door (black bar). The keys are in cells $a$ to $g$ respectively. The other doors open only from one side, as shown. \\ - - \medskip - - How does the prisoner in cell $O$ escape? He can pass through any door any number of times and need not unlock the doors in any special order. His aim is to get the key from cell $g$ and use it to escape through cell $G$ - - \vfill - - \begin{figure}[h] - \centering - \includegraphics[width=8cm]{121} - \end{figure} - \vfill - - Extra copies of the dungeon are on the next page. - \pagebreak - - \vfill - \begin{figure}[h] - \centering - \includegraphics[width=8cm]{121} - \end{figure} - \vfill - \begin{figure}[h] - \centering - \includegraphics[width=8cm]{121} - \end{figure} - \vfill - \pagebreak - -\end{document} \ No newline at end of file diff --git a/Misc/Moscow Puzzles/problems/217.tex b/Misc/Moscow Puzzles/problems/217.tex deleted file mode 100755 index 129c04e..0000000 --- a/Misc/Moscow Puzzles/problems/217.tex +++ /dev/null @@ -1,9 +0,0 @@ -\documentclass[../main.tex]{subfiles} - -\begin{document} - - \problem{Mutual Aid} - - During the rebuilding after World War II, the Soviet Union was short of tractors. The machine and tractor stations would lend each other equipment as needed. Three machine and tractor stations were neighbors. The first lent the second and third as many tractors as they each already had. A few months later, the second lent the first and third as many as they each had. Still later, the third lent the first and second as many as they each already had. Each station now had 24 tractors. How many tractors did each station originally have? - -\end{document} \ No newline at end of file diff --git a/Misc/Moscow Puzzles/problems/239.tex b/Misc/Moscow Puzzles/problems/239.tex deleted file mode 100755 index 644a528..0000000 --- a/Misc/Moscow Puzzles/problems/239.tex +++ /dev/null @@ -1,16 +0,0 @@ -\documentclass[../main.tex]{subfiles} - -\begin{document} - - \problem{The Air Parade} - - Volodya asked, ``What plane did you fly during the air parade?'' His father sketched a formation of 9 planes. - - \begin{figure}[h] - \centering - \includegraphics[width=9cm]{239} - \end{figure} - - ``The number of planes to the right of me multiplied by the number of planes to the left of me is 3 less than it would have been if my plane had been 3 places to the right of me.'' How did Volodya solve the problem? - -\end{document} \ No newline at end of file diff --git a/Misc/Moscow Puzzles/problems/252.tex b/Misc/Moscow Puzzles/problems/252.tex deleted file mode 100755 index c920cc8..0000000 --- a/Misc/Moscow Puzzles/problems/252.tex +++ /dev/null @@ -1,40 +0,0 @@ -\documentclass[../main.tex]{subfiles} - -\begin{document} - - \problem{An Elephant and a Mosquito} - - Does the weight of an elephant equal the weight of a mosquito? Let $x$ be the weight of an elephant, and $y$ that of a mosquito. - - \begin{figure}[h] - \centering - \includegraphics[width=10cm]{252} - \end{figure} - - Call the sum of the two weights $2v$, then $x + y = 2v$. - - From this equation we can obtain two more: - - \[ - x - 2v = -y \text{; } x = - y + 2v - \] - - Multiply: - \[ - x^2 - 2vx = y^2 - 2vy - \] - - Add $v^2$: - \[ - x^2 - 2vx + v^2 = y^2 - 2vy + v^2 \text{, or } (x - v)^2 = (y - v)^2 - \] - - Take square roots: - \[ - x - v = y - v \text{; } x = y - \] - - That is, the elephant's weight ($x$) equals the mosquito's weight ($y$). What is wrong here? - - -\end{document} \ No newline at end of file diff --git a/Misc/Moscow Puzzles/problems/255.tex b/Misc/Moscow Puzzles/problems/255.tex deleted file mode 100755 index 775c5f9..0000000 --- a/Misc/Moscow Puzzles/problems/255.tex +++ /dev/null @@ -1,16 +0,0 @@ -\documentclass[../main.tex]{subfiles} - -\begin{document} - - \problem{The Lucas Problem} - - This problem was invented by Edouard Lucas, a French nineteenth-century mathematician. \\ - ``Every day at noon,'' Lucas said, ``a ship leaves Le Havre for New York and another ship leaves New York for Le Havre. The trip lasts 7 days and 7 nights. How many New York-Le Havre ships will the ship leaving Le Havre today meet during its journey to New York? Can you answer graphically? - - \begin{figure}[h] - \centering - \includegraphics[width=10cm]{255} - \end{figure} - - -\end{document} \ No newline at end of file diff --git a/Misc/Moscow Puzzles/problems/263.tex b/Misc/Moscow Puzzles/problems/263.tex deleted file mode 100755 index 624eec5..0000000 --- a/Misc/Moscow Puzzles/problems/263.tex +++ /dev/null @@ -1,16 +0,0 @@ -\documentclass[../main.tex]{subfiles} - -\begin{document} - - \problem{A Shooting Match} - Andryusha, Borya, and Volodya each fired 6 shots, and each got 71 points. - - \begin{figure}[h] - \centering - \includegraphics[width=8cm]{263} - \end{figure} - - Andryusha's first 2 shots got 22 points and Volodya's first shot got only 3 points. \\ - Who hit the bull's-eye? - -\end{document} \ No newline at end of file diff --git a/README.md b/README.md index 08ca65e..1a4c177 100644 --- a/README.md +++ b/README.md @@ -35,7 +35,7 @@ To compile one handout, do the following: ```latex \documentclass[ ... - ]{../../resources/ormc_handout} + ]{../../../lib/tex/ormc_handout} ``` with diff --git a/build.sh b/build.sh deleted file mode 100755 index 73fb4fe..0000000 --- a/build.sh +++ /dev/null @@ -1,153 +0,0 @@ -#!/usr/bin/env bash -# -# This script builds every document in this repo, -# (handout and solutions, if they exist), and creates -# a zip of all resulting files. - -# Where we're running this script -run_dir=$(pwd) - -tectonic=$(pwd)/tectonic - -# Output files -target_dir="${run_dir}/output" -target_zip="${run_dir}/output.zip" - -# Clean up previous build -rm -drf "${target_dir}" -rm -f "${target_zip}" - -# Build one document. -# Args: -# target_dir: move output pdf to this directory -# job_name: name of this document. Output is saved as job_name.pdf -# doc_dir: cd here before building. -# main_file: build this tex file. Usually main.tex -# solutions: if 1, build solutions too -function build() { - local b_target_dir="${1}" - local job_name="${2}" - local doc_dir="${3}" - local main_file="${4}" - - echo "|> Building ${job_name}..." - cd "${doc_dir}" - - tectonic_args=( - --chatter minimal - #--web-bundle "https://static.betalupi.com/tectonic/texlive2023.tar" - ) - - # Build handout - echo "\\def\\argNoSolutions{1}\\input{${main_file}}" | - "${tectonic}" \ - "${tectonic_args[@]}" \ - --outfmt pdf \ - - - - handout_stat=$? - - if [[ $handout_stat == 0 ]]; then - mkdir -p "${b_target_dir}" - mv texput.pdf "${b_target_dir}/${job_name}.pdf" - else - rmdir --ignore-fail-on-non-empty "${b_target_dir}" - rm -f texput.pdf - echo "|> Handout build failed" - echo "" - fi - - if [[ $5 == 1 ]]; then - # Build solutions - echo "\\def\\argYesSolutions{1}\\input{${main_file}}" | - "${tectonic}" \ - "${tectonic_args[@]}" \ - --outfmt pdf \ - - - - solution_stat=$? - - if [[ $solution_stat == 0 ]]; then - mkdir -p "${b_target_dir}" - mv texput.pdf "${b_target_dir}/${job_name}.sols.pdf" - else - rmdir --ignore-fail-on-non-empty "${b_target_dir}" - rm -f texput.pdf - echo "|> Solution build failed" - fi - - # Clean up if files contents are identical - #if [[ $(cmp -bl "${b_target_dir}/${job_name}.sols.pdf" "${b_target_dir}/${job_name}.pdf" | wc -l) < 200 ]]; then - # echo "|> Versions identical, removing ${job_name}.sols.pdf" - # rm "${b_target_dir}/${job_name}.sols.pdf" - # solution_stat=1; - #fi - fi - - echo "" - - if [[ $handout_stat == 0 ]]; then - ( - echo -n "{" - echo -n "\"title\": \"${job_name}\"", - echo -n "\"type\": \"$(realpath --relative-to="${target_dir}" "${b_target_dir}")\"", - echo -n "\"description\": \"${job_name}\"", - echo -n "\"handout\": \"https://static.betalupi.com/ormc/$(realpath --relative-to="${target_dir}" "${b_target_dir}")/${job_name}.pdf\"," - if [[ $solution_stat == 0 ]]; then - echo -n "\"solutions\": \"https://static.betalupi.com/ormc/$(realpath --relative-to="${target_dir}" "${b_target_dir}")/${job_name}.sols.pdf\"," - fi - if [ -f "starred" ]; then - echo -n "\"starred\": true" - else - echo -n "\"starred\": false" - fi - echo -n "}," - ) >>"$target_dir/index.json" - fi - cd "${run_dir}" -} - -mkdir -p "${target_dir}" -echo -n "[" >"$target_dir/index.json" - -for d in "${run_dir}/Misc/Warm-Ups"/*.tex; do - file="$(basename "${d}")" - build \ - "${target_dir}/Warm-Ups" \ - "${file%.*}" \ - "${run_dir}/Misc/Warm-Ups" \ - "${file}" \ - 0 -done - -for d in "${run_dir}/Advanced"/*/; do - doc_dir=$(realpath "${d}") - job_name="$(basename "${doc_dir}")" - - build \ - "${target_dir}/Advanced" \ - "${job_name}" \ - "${doc_dir}" \ - "main.tex" \ - 1 -done - -for d in "${run_dir}/Intermediate"/*/; do - doc_dir=$(realpath "${d}") - job_name="$(basename "${doc_dir}")" - - build \ - "${target_dir}/Intermediate" \ - "${job_name}" \ - "${doc_dir}" \ - "main.tex" \ - 1 -done - -echo -n "{}]" >>"$target_dir/index.json" - -# cd so paths in zip are relative -cd "${target_dir}" - -zip -FSr "${target_zip}" . -zip -d "${target_zip}" "index.json" # We don't need this in the zip diff --git a/resources/macros.sty b/lib/tex/macros.sty similarity index 94% rename from resources/macros.sty rename to lib/tex/macros.sty index e4e5cca..f9a6497 100644 --- a/resources/macros.sty +++ b/lib/tex/macros.sty @@ -1,12 +1,12 @@ \NeedsTeXFormat{LaTeX2e} -\ProvidesPackage{macros}[2023/10/16 ORMC Macros] +\ProvidesPackage{../../../lib/tex/macros}[2023/10/16 ORMC Macros] \RequirePackage{hyperref} \RequirePackage{pgf} \RequirePackage{xcolor} -% Link to this repo, used in titles +% Link to this repository \newcommand{\smallurl}{\small\texttt{\href{https://betalupi.com/handouts}{https://betalupi.com/handouts}}} @@ -75,7 +75,7 @@ \endgroup } -% Ruble symbol, per official Kremlin specification +% Ruble symbol, per official specification % %\DeclareRobustCommand*{\Rub}{% % \begingroup diff --git a/resources/ormc_handout.cls b/lib/tex/ormc_handout.cls similarity index 99% rename from resources/ormc_handout.cls rename to lib/tex/ormc_handout.cls index f7066b8..3b103fb 100755 --- a/resources/ormc_handout.cls +++ b/lib/tex/ormc_handout.cls @@ -14,7 +14,7 @@ % along with this program. If not, see . \NeedsTeXFormat{LaTeX2e} -\ProvidesClass{ormc_handout}[2023/05/29 2.0.2 ORMC Handout] +\ProvidesClass{../../../lib/tex/ormc_handout}[2023/05/29 2.0.2 ORMC Handout] diff --git a/notes/2023-10-08_19-50.png b/notes/2023-10-08_19-50.png deleted file mode 100755 index 0aea089..0000000 Binary files a/notes/2023-10-08_19-50.png and /dev/null differ diff --git a/notes/2023-10-08_19-52.png b/notes/2023-10-08_19-52.png deleted file mode 100755 index aa44e0a..0000000 Binary files a/notes/2023-10-08_19-52.png and /dev/null differ diff --git a/notes/2023-10-30_11-29.png b/notes/2023-10-30_11-29.png deleted file mode 100755 index dacd108..0000000 Binary files a/notes/2023-10-30_11-29.png and /dev/null differ diff --git a/notes/AACoPtDtbiaLbtaIts.pdf b/notes/AACoPtDtbiaLbtaIts.pdf deleted file mode 100755 index ab466df..0000000 Binary files a/notes/AACoPtDtbiaLbtaIts.pdf and /dev/null differ diff --git a/notes/TODO.md b/notes/TODO.md deleted file mode 100755 index 7978193..0000000 --- a/notes/TODO.md +++ /dev/null @@ -1,49 +0,0 @@ - -# Game ideas - - Math dominos: - - Each problem is a domino tile, by difficulty. - - Score is sum if 1st try, max if 2nd try. Subtract min if no solution. - - Each team can have 2-3 dominos at a time. No free swaps. - - Pick up dominos without knowing problem. - - - что-где-когда: - - All teams solve one problem at once. - - - Spacewar!: - - Two teams, each starts in one root node. - - Graph of problems, symmetric across middle - - easy problems close, hard problems far. - - Goal: capture as many nodes as possible - - Solve a problem, capture a node - - solve a problem on the other team's side, capture their node. - - TODO: a fun way to resolve conflicts? - - -# Topics: -- Divisibility proofs & properties -- 1 exists ==> assume 2 exist -- <= , >= ==> = -- pidgeonhole - -# Handout ideas: -- Notation toolbox -- Propositional logic -- Rubik's group -- Graph combinatorics -- Fourier transforms -- Probabilistic proofs -- Bayesian / Frequentist probability -- Data structures - -# Handouts to clean up: - - Euler's number - - Lattices - - Nim handout - - Stocks - -# Problems to record: - - Nikita: weight of 100 cows - - Seat swapping: everyone wants a seat that's not their own, no two people want the same seat. Each cycle, everyone swaps. Min # of cycles? Solution: 2, reflect. use even and odd cycles. Takeaway: composition of reflections is rotation. - - Geometric optimization: ant on cube shortest path, ant on brick shortest path, ribbon on brick (over-under, h-shape) minimal length, Farthest point from corner of brick - - 180: Sperner lemma and brouwer theorem - - 25 horses. 5 at a time. find top 3? (7 races) diff --git a/notes/handouts/2016-05-22 1194.0.pub (5.22.2016).pdf b/notes/handouts/2016-05-22 1194.0.pub (5.22.2016).pdf deleted file mode 100755 index 88c48b1..0000000 Binary files a/notes/handouts/2016-05-22 1194.0.pub (5.22.2016).pdf and /dev/null differ diff --git a/notes/handouts/Geometric Optima handout.pdf b/notes/handouts/Geometric Optima handout.pdf deleted file mode 100755 index 42b3571..0000000 Binary files a/notes/handouts/Geometric Optima handout.pdf and /dev/null differ diff --git a/notes/handouts/N Sahoo BMC Handout_0.pdf b/notes/handouts/N Sahoo BMC Handout_0.pdf deleted file mode 100755 index 40bf23f..0000000 Binary files a/notes/handouts/N Sahoo BMC Handout_0.pdf and /dev/null differ diff --git a/notes/handouts/com_solutions.pdf b/notes/handouts/com_solutions.pdf deleted file mode 100755 index 35f0f7f..0000000 Binary files a/notes/handouts/com_solutions.pdf and /dev/null differ diff --git a/notes/handouts/nim.pdf b/notes/handouts/nim.pdf deleted file mode 100755 index fa87203..0000000 Binary files a/notes/handouts/nim.pdf and /dev/null differ diff --git a/notes/handouts/notes07.pdf b/notes/handouts/notes07.pdf deleted file mode 100755 index d62cedf..0000000 Binary files a/notes/handouts/notes07.pdf and /dev/null differ diff --git a/notes/handouts/nsa/1.pdf b/notes/handouts/nsa/1.pdf deleted file mode 100755 index 60f5b76..0000000 Binary files a/notes/handouts/nsa/1.pdf and /dev/null differ diff --git a/notes/handouts/nsa/1.sols.pdf b/notes/handouts/nsa/1.sols.pdf deleted file mode 100755 index 3d5df1b..0000000 Binary files a/notes/handouts/nsa/1.sols.pdf and /dev/null differ diff --git a/notes/handouts/nsa/2.pdf b/notes/handouts/nsa/2.pdf deleted file mode 100755 index 87091d1..0000000 Binary files a/notes/handouts/nsa/2.pdf and /dev/null differ diff --git a/notes/handouts/nsa/3.pdf b/notes/handouts/nsa/3.pdf deleted file mode 100755 index 019f165..0000000 Binary files a/notes/handouts/nsa/3.pdf and /dev/null differ diff --git a/notes/handouts/nsa/4.pdf b/notes/handouts/nsa/4.pdf deleted file mode 100755 index 95b6ada..0000000 Binary files a/notes/handouts/nsa/4.pdf and /dev/null differ diff --git a/notes/handouts/nsa/5.pdf b/notes/handouts/nsa/5.pdf deleted file mode 100755 index c7e05f0..0000000 Binary files a/notes/handouts/nsa/5.pdf and /dev/null differ diff --git a/notes/handouts/nsa/6.pdf b/notes/handouts/nsa/6.pdf deleted file mode 100755 index f0e0d35..0000000 Binary files a/notes/handouts/nsa/6.pdf and /dev/null differ diff --git a/notes/handouts/nsa/7.pdf b/notes/handouts/nsa/7.pdf deleted file mode 100755 index c44d804..0000000 Binary files a/notes/handouts/nsa/7.pdf and /dev/null differ diff --git a/notes/handouts/rubik/Group Theory and the Rubik's Cube.pdf b/notes/handouts/rubik/Group Theory and the Rubik's Cube.pdf deleted file mode 100755 index 4da2cf6..0000000 Binary files a/notes/handouts/rubik/Group Theory and the Rubik's Cube.pdf and /dev/null differ diff --git a/notes/handouts/rubik/Rubiks_Cube_Group.pdf b/notes/handouts/rubik/Rubiks_Cube_Group.pdf deleted file mode 100755 index 40db962..0000000 Binary files a/notes/handouts/rubik/Rubiks_Cube_Group.pdf and /dev/null differ diff --git a/notes/handouts/rubik/group.pdf b/notes/handouts/rubik/group.pdf deleted file mode 100755 index 1de008f..0000000 Binary files a/notes/handouts/rubik/group.pdf and /dev/null differ diff --git a/notes/handouts/rubik/rubik.pdf b/notes/handouts/rubik/rubik.pdf deleted file mode 100755 index 757e0c0..0000000 Binary files a/notes/handouts/rubik/rubik.pdf and /dev/null differ diff --git a/notes/handouts/solutions fundamental groups.pdf b/notes/handouts/solutions fundamental groups.pdf deleted file mode 100755 index 7933182..0000000 Binary files a/notes/handouts/solutions fundamental groups.pdf and /dev/null differ diff --git a/notes/handouts/stock.pdf b/notes/handouts/stock.pdf deleted file mode 100755 index d7a6471..0000000 Binary files a/notes/handouts/stock.pdf and /dev/null differ diff --git a/notes/handouts/stocks.pdf b/notes/handouts/stocks.pdf deleted file mode 100755 index 5f10937..0000000 Binary files a/notes/handouts/stocks.pdf and /dev/null differ diff --git a/notes/handouts/tangle.pdf b/notes/handouts/tangle.pdf deleted file mode 100755 index adcc5ac..0000000 Binary files a/notes/handouts/tangle.pdf and /dev/null differ diff --git a/notes/misc/alligators_colored.pdf b/notes/misc/alligators_colored.pdf deleted file mode 100755 index bf10225..0000000 Binary files a/notes/misc/alligators_colored.pdf and /dev/null differ diff --git a/notes/misc/alligators_white.pdf b/notes/misc/alligators_white.pdf deleted file mode 100755 index 45c75c8..0000000 Binary files a/notes/misc/alligators_white.pdf and /dev/null differ diff --git a/notes/misc/croc.html b/notes/misc/croc.html deleted file mode 100755 index 387da2a..0000000 --- a/notes/misc/croc.html +++ /dev/null @@ -1,138 +0,0 @@ - -Alligator Eggs! - - - -

Alligator Eggs!

-

A puzzle game by Bret Victor / May 1, 2007

-

-

Materials

-

Step 1: Print out this PDF onto six or so - different - colored - sheets - of - paper.
-(Even better, photocopy it onto cardstock.)

-

-

 

-

Step 2: Print out this PDF onto a couple white sheets of paper.

-

-

 

-

Step 3: Cut out the pieces!

-

-

Pieces

-

These are hungry alligators:

-

-

Hungry alligators are hungry. They'll eat anything that's in front of them! But they are also responsible alligators, so they guard their families.

-

 

-

These are old alligators:

-

-

Old alligators are not hungry. They've eaten enough. All they do is guard their families.

-

 

-

These are eggs:

-

-

Eggs hatch into new families of alligators!

-

Families

-

Here's a small family:

-

-

A green alligator is guarding her green egg.

-

 

-

Here's a slightly bigger family:

-

-

A green alligator and red alligator are guarding a green egg and a red egg. Or, you could say that the green alligator is guarding the red alligator, and the red alligator is guarding the eggs.

-

 

-

Here's a huge family!

-

-

We've got yellow, green, red alligators guarding this family. They are guarding three things: a green egg, an old alligator, and a red egg. The old alligator is guarding a yellow egg and a green egg.

-

Notice that eggs only use the colors of the alligators guarding them. You can't have a blue egg without there being a blue alligator around to guard it.

-

Eating

-

Now, things are going to get messy. Here are two families, side-by-side:

-

-

That green alligator sure is hungry. And there's a yellow family, right in front of her mouth, and it looks tasty!

-

-

I think you know what happens next.

-

-

Unfortunately, the green alligator's eyes were bigger than her stomach. She ate too much!

-

-

And so she dies, and goes off to alligator heaven. But, the story doesn't end there. Because the green alligator died, the green egg starts to hatch...

-

-

Amazingly, it hatches into exactly what the green alligator ate. It's the miracle of life!

-

-

Now, we're down to one family. We have a red alligator guarding a yellow alligator and a red egg, and the yellow alligator is guarding her yellow egg.

-

But that yellow alligator sure is hungry, and there's a tasty red egg in front of her. Here we go again...

-

-

Poor alligator. Even a single egg is too much for her stomach!

-

-

The yellow alligator dies... but once again, the yellow egg starts to hatch...

-

-

And it hatches into exactly what the yellow alligator ate!

-

-

Now, there's nothing for anyone to eat, so we stop.

-

The Eating Rule

-

That was an example of the first rule of the game: the eating rule.

-

The eating rule says that if there are some families side-by-side...

-

-

the top-left alligator eats the family to her right.

-

-

Then, that alligator dies. But if she was guarding any eggs of the same color, each of those eggs hatches into what she ate.

-

-

The Color Rule

-

Continuing with the example above, the orange alligator eats the yellow family, leaving this:

-

-

Now, the green alligator at the top-left wants to eat the family to her right. But before she can do so, we need to look at the color rule.

-

The color rule says that if an alligator is about to eat a family, and there's a color that appears in both families, we need to change that color in one family to something else.

-

In the picture above, green and red appear in both the first and second families. So, in the second family, we switch all of the greens to cyan, and all of the reds to blue.

-

-

Now that they don't share any colors, we can eat!

-

-

And eat!

-

-

And eat!

-

-

And eat, until there's nothing more that can be eaten.

-

-

Old Alligators

-

There's only one more rule in this game, and it has to do with old alligators:

-

-

The top-left alligator here is not hungry. She's not going to eat anything. All she cares about is her family. So, how does she die?

-

She dies when she's only guarding one thing. Right now, she's guarding both a green family and a red family. They need her to take care of them. But that green alligator is hungry. The green alligator eats the red family...

-

-

Now, the old alligator is only guarding a single family. That family can take care of itself. She's no longer needed. So, she grows old and dies.

-

-

That is the old age rule. When an old alligator is just guarding a single thing, it dies.

-

-

Now, the red alligator eats the yellow family, and there's no more that can be eaten.

-

-

Gameplay

-

The game would consist of a series of puzzles, challenging the player to devise a family that, when fed X, produces Y. For example:

-
-

Here are two families. They are named "True" and "False":

-

-

And here is a family called "Not":

-

-

When "Not" eats "True", it produces "False". And when "Not" eats "False", it produces "True". What colors should the two eggs at the bottom be?

-
-

(For this to work well, we'd need a better color rule, to explain that families with different colors in the same "pattern" are equivalent.)

-

These puzzles could be embedded into a story. The player would have to solve each puzzle to see what happens next. Alternatively, this could be made into a board game. Each player would roll a die, travel forward a number of spaces, and solve the puzzle at the destination.

-

Theory

-

This game represents the untyped lambda calculus. A hungry alligator is a lambda abstraction, an old alligator is parentheses, and eggs are variables. The eating rule corresponds to beta-reduction. The color rule corresponds to (over-cautious) alpha-conversion. The old age rule says that if a pair of parentheses contains a single term, the parentheses can be removed.

-

Variations

-

Oliver Steele pointed out that family roles are very important to children, and more could be made of the concept of grandparent alligators, parents, babies (eggs), and so on. Currently, variable names are represented with colors. Both are arbitrary, and require renaming/recoloring rules to avoid capture. An alternative may be something like de Bruijn indices, corresponding to birth order and family relation.

-

Oliver also suggested that kids might not like the idea of parents dying, and perhaps alligator removal could be explained as moving away.

-

By changing the game so alligators are greedy, and eat everything to their right, we represent a right-associative lambda calculus. This seems to eliminate a lot of old alligators (parentheses) in Church numerals, the Y combinator, etc. Unfortunately, it means that old alligators have to be born when an alligator eats more than one thing, among other problems. I'd still like to figure out how to make Church numerals (repeated application) look less ugly.

-

Schematic Form

-

I've found that a schematic form of alligator calculus is actually rather handy for calculating lambda terms by hand. We draw a lambda as a line with a mouth. Parentheses are a line without a mouth. Here's the identity function:

-

-

Here are some Church numerals:

-

-

Here are boolean AND and OR (assuming the standard definitions for TRUE and FALSE):

-

-

The Y combinator:

-

-

I don't know if these are any easier to read than the standard notation, but I've found them to be easier to work with, using pencil and paper. I imagine the terms eating one another and hatching below. I don't get lost in a long chain of symbols, losing track of what's applying to what.

-
\ No newline at end of file diff --git a/notes/misc/exact-values-sin-degrees.pdf b/notes/misc/exact-values-sin-degrees.pdf deleted file mode 100755 index d342c9a..0000000 Binary files a/notes/misc/exact-values-sin-degrees.pdf and /dev/null differ diff --git a/notes/misc/gear.svg b/notes/misc/gear.svg deleted file mode 100755 index 8792358..0000000 --- a/notes/misc/gear.svg +++ /dev/null @@ -1,491 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - A - - B - 1 - - - - - - - - - - - - - - - - A - I - II - III - - B - 1 - - - - B - 2 - - - - - B - 1 - - - - B - 2 - - - - B - 3 - - - diff --git a/notes/misc/genset.pdf b/notes/misc/genset.pdf deleted file mode 100755 index c543cea..0000000 Binary files a/notes/misc/genset.pdf and /dev/null differ diff --git a/notes/misc/holfstadter.pdf b/notes/misc/holfstadter.pdf deleted file mode 100755 index e8d240c..0000000 Binary files a/notes/misc/holfstadter.pdf and /dev/null differ diff --git a/notes/misc/induction.pdf b/notes/misc/induction.pdf deleted file mode 100755 index 20f7829..0000000 Binary files a/notes/misc/induction.pdf and /dev/null differ diff --git a/notes/misc/parabola multiplication.pdf b/notes/misc/parabola multiplication.pdf deleted file mode 100755 index 35504d4..0000000 Binary files a/notes/misc/parabola multiplication.pdf and /dev/null differ diff --git a/notes/misc/welldefined.pdf b/notes/misc/welldefined.pdf deleted file mode 100755 index a888075..0000000 Binary files a/notes/misc/welldefined.pdf and /dev/null differ diff --git a/notes/misc/writingtips.pdf b/notes/misc/writingtips.pdf deleted file mode 100755 index 3f8572e..0000000 Binary files a/notes/misc/writingtips.pdf and /dev/null differ diff --git a/notes/topics.md b/notes/topics.md deleted file mode 100755 index c84b151..0000000 --- a/notes/topics.md +++ /dev/null @@ -1,68 +0,0 @@ - - Telescoping sums - - Division algorithm - - Peano axions - - Proof basics - - Show that irrational - - Voting systems - - Weighings - -# Beginners 1 -Grades 2 - 4 - - Basic cyphers - - Modular Arithmetic - - Numbers in other bases - - - -# Beginners 2: -Grades 4 - 6 - - - Pidgeonhole principle - - Combinatorics - - N choose K (c and p) - - stars and bars - - Induction - - Boosted induction (cauchy, etc) - - Compass-and-Ruler constructions - - - -# Intermediate 1: -Grades 5 - 7 - - Graphs - - Instant Insanity - - Euler walks and paths - - Konigsberg - - Logs & Slide rules - - Vectors and Applications - - Probability - - Monty Hall problem - - - -# Intermediate 2: -Grades 6 - 9 - - - -# Advanced 1: -Grades 9 - 10 - - Linear Algebra Basics - - Graph Theory - - Algorithms: - - Ford-Fulkerson - - Dijkstra - - Minimal spanning tree - - Three-color theorem - - - -# Advanced 2: -Grades 11 - 12 - - Logic - - Exists, forall, not. (Definable sets handout) - - Mockingbird, lambda - - Numerical cryptography - - Group Theory - - Understand Euler's Number - - Relations \ No newline at end of file diff --git a/resources/share/main.tex b/resources/share/main.tex deleted file mode 100755 index b091bd5..0000000 --- a/resources/share/main.tex +++ /dev/null @@ -1,35 +0,0 @@ -% use [nosolutions] flag to hide solutions. -% use [solutions] flag to show solutions. -\documentclass[ - solutions, - singlenumbering -]{./ormc_handout} - - -\title{The Size of Sets} -\subtitle{Prepared by Mark on \today{}} - -\begin{document} - - \maketitle - - \section{Set Basics} - - \definition{} - A \textit{set} is a collection of objects. \par - If $a$ is an element of set $S$, we write $a \in S$. This is pronounced \say{$a$ in $S$.} \par - The position of each element in a set or the number of times it is repeated doesn't matter. \par - All that matters is \textit{which} elements are in the set. - - \vspace{2mm} - - We say two sets $A$ and $B$ are equal if every element of $A$ is in $B$, and every element of $B$ is in $A$. This is known as the \textit{principle of extensionality.} - - \problem{} - Convince yourself that $\{a, b\} = \{b, a\} = \{a, b, a, b, b\}$. - - \begin{solution} - This is a solution. - \end{solution} - -\end{document} \ No newline at end of file diff --git a/Advanced/Compression/main.tex b/src/Advanced/Compression/main.tex similarity index 88% rename from Advanced/Compression/main.tex rename to src/Advanced/Compression/main.tex index 1c9367b..d3d8bd9 100755 --- a/Advanced/Compression/main.tex +++ b/src/Advanced/Compression/main.tex @@ -3,8 +3,8 @@ \documentclass[ solutions, singlenumbering -]{../../resources/ormc_handout} -\usepackage{../../resources/macros} +]{../../../lib/tex/ormc_handout} +\usepackage{../../../lib/tex/macros} \input{tikzset.tex} \usepackage{units} diff --git a/src/Advanced/Compression/meta.toml b/src/Advanced/Compression/meta.toml new file mode 100644 index 0000000..ff6f333 --- /dev/null +++ b/src/Advanced/Compression/meta.toml @@ -0,0 +1,6 @@ +[metadata] +title = "Compression" + +[publish] +handout = true +solutions = true diff --git a/Advanced/Compression/parts/0 intro.tex b/src/Advanced/Compression/parts/0 intro.tex similarity index 100% rename from Advanced/Compression/parts/0 intro.tex rename to src/Advanced/Compression/parts/0 intro.tex diff --git a/Advanced/Compression/parts/1 runlength.tex b/src/Advanced/Compression/parts/1 runlength.tex similarity index 100% rename from Advanced/Compression/parts/1 runlength.tex rename to src/Advanced/Compression/parts/1 runlength.tex diff --git a/Advanced/Compression/parts/2 lzss.tex b/src/Advanced/Compression/parts/2 lzss.tex similarity index 100% rename from Advanced/Compression/parts/2 lzss.tex rename to src/Advanced/Compression/parts/2 lzss.tex diff --git a/Advanced/Compression/parts/3 huffman.tex b/src/Advanced/Compression/parts/3 huffman.tex similarity index 100% rename from Advanced/Compression/parts/3 huffman.tex rename to src/Advanced/Compression/parts/3 huffman.tex diff --git a/Advanced/Compression/parts/4 bonus.tex b/src/Advanced/Compression/parts/4 bonus.tex similarity index 100% rename from Advanced/Compression/parts/4 bonus.tex rename to src/Advanced/Compression/parts/4 bonus.tex diff --git a/Advanced/Compression/parts/qoi-specification.pdf b/src/Advanced/Compression/parts/qoi-specification.pdf similarity index 100% rename from Advanced/Compression/parts/qoi-specification.pdf rename to src/Advanced/Compression/parts/qoi-specification.pdf diff --git a/Advanced/Compression/tikzset.tex b/src/Advanced/Compression/tikzset.tex similarity index 100% rename from Advanced/Compression/tikzset.tex rename to src/Advanced/Compression/tikzset.tex diff --git a/Advanced/Continued Fractions/main.tex b/src/Advanced/Continued Fractions/main.tex similarity index 87% rename from Advanced/Continued Fractions/main.tex rename to src/Advanced/Continued Fractions/main.tex index beeaf10..2002cd1 100755 --- a/Advanced/Continued Fractions/main.tex +++ b/src/Advanced/Continued Fractions/main.tex @@ -5,8 +5,8 @@ shortwarning, singlenumbering, unfinished -]{../../resources/ormc_handout} -\usepackage{../../resources/macros} +]{../../../lib/tex/ormc_handout} +\usepackage{../../../lib/tex/macros} \usepackage{multicol} diff --git a/src/Advanced/Continued Fractions/meta.toml b/src/Advanced/Continued Fractions/meta.toml new file mode 100644 index 0000000..e6960ee --- /dev/null +++ b/src/Advanced/Continued Fractions/meta.toml @@ -0,0 +1,6 @@ +[metadata] +title = "Continued Fractions" + +[publish] +handout = true +solutions = true diff --git a/Advanced/Continued Fractions/parts/00 euclidean.tex b/src/Advanced/Continued Fractions/parts/00 euclidean.tex similarity index 100% rename from Advanced/Continued Fractions/parts/00 euclidean.tex rename to src/Advanced/Continued Fractions/parts/00 euclidean.tex diff --git a/Advanced/Continued Fractions/parts/01 part A.tex b/src/Advanced/Continued Fractions/parts/01 part A.tex similarity index 100% rename from Advanced/Continued Fractions/parts/01 part A.tex rename to src/Advanced/Continued Fractions/parts/01 part A.tex diff --git a/Advanced/Continued Fractions/parts/02 part B.tex b/src/Advanced/Continued Fractions/parts/02 part B.tex similarity index 100% rename from Advanced/Continued Fractions/parts/02 part B.tex rename to src/Advanced/Continued Fractions/parts/02 part B.tex diff --git a/Advanced/Cryptography/main.tex b/src/Advanced/Cryptography/main.tex similarity index 88% rename from Advanced/Cryptography/main.tex rename to src/Advanced/Cryptography/main.tex index 739b7b0..3a59153 100755 --- a/Advanced/Cryptography/main.tex +++ b/src/Advanced/Cryptography/main.tex @@ -4,8 +4,8 @@ solutions, singlenumbering, shortwarning -]{../../resources/ormc_handout} -\usepackage{../../resources/macros} +]{../../../lib/tex/ormc_handout} +\usepackage{../../../lib/tex/macros} \usepackage{multicol} \usepackage{mathtools} diff --git a/src/Advanced/Cryptography/meta.toml b/src/Advanced/Cryptography/meta.toml new file mode 100644 index 0000000..659ab7e --- /dev/null +++ b/src/Advanced/Cryptography/meta.toml @@ -0,0 +1,6 @@ +[metadata] +title = "Cryptography" + +[publish] +handout = true +solutions = true diff --git a/Advanced/Cryptography/parts/0 euclidean.tex b/src/Advanced/Cryptography/parts/0 euclidean.tex similarity index 100% rename from Advanced/Cryptography/parts/0 euclidean.tex rename to src/Advanced/Cryptography/parts/0 euclidean.tex diff --git a/Advanced/Cryptography/parts/1 mod.tex b/src/Advanced/Cryptography/parts/1 mod.tex similarity index 100% rename from Advanced/Cryptography/parts/1 mod.tex rename to src/Advanced/Cryptography/parts/1 mod.tex diff --git a/Advanced/Cryptography/parts/2 groups.tex b/src/Advanced/Cryptography/parts/2 groups.tex similarity index 100% rename from Advanced/Cryptography/parts/2 groups.tex rename to src/Advanced/Cryptography/parts/2 groups.tex diff --git a/Advanced/Cryptography/parts/3 DLP.tex b/src/Advanced/Cryptography/parts/3 DLP.tex similarity index 100% rename from Advanced/Cryptography/parts/3 DLP.tex rename to src/Advanced/Cryptography/parts/3 DLP.tex diff --git a/Advanced/Cryptography/parts/4 DiffieHellman.tex b/src/Advanced/Cryptography/parts/4 DiffieHellman.tex similarity index 100% rename from Advanced/Cryptography/parts/4 DiffieHellman.tex rename to src/Advanced/Cryptography/parts/4 DiffieHellman.tex diff --git a/Advanced/Cryptography/parts/5 Elgamal.tex b/src/Advanced/Cryptography/parts/5 Elgamal.tex similarity index 100% rename from Advanced/Cryptography/parts/5 Elgamal.tex rename to src/Advanced/Cryptography/parts/5 Elgamal.tex diff --git a/Advanced/Cryptography/parts/challenge.tex b/src/Advanced/Cryptography/parts/challenge.tex similarity index 100% rename from Advanced/Cryptography/parts/challenge.tex rename to src/Advanced/Cryptography/parts/challenge.tex diff --git a/Advanced/DFAs/main.tex b/src/Advanced/DFAs/main.tex similarity index 84% rename from Advanced/DFAs/main.tex rename to src/Advanced/DFAs/main.tex index 28a25b7..8a75b06 100755 --- a/Advanced/DFAs/main.tex +++ b/src/Advanced/DFAs/main.tex @@ -3,8 +3,8 @@ \documentclass[ solutions, singlenumbering -]{../../resources/ormc_handout} -\usepackage{../../resources/macros} +]{../../../lib/tex/ormc_handout} +\usepackage{../../../lib/tex/macros} \input{tikzset.tex} diff --git a/src/Advanced/DFAs/meta.toml b/src/Advanced/DFAs/meta.toml new file mode 100644 index 0000000..cbe951b --- /dev/null +++ b/src/Advanced/DFAs/meta.toml @@ -0,0 +1,6 @@ +[metadata] +title = "Finite Automata" + +[publish] +handout = true +solutions = true diff --git a/Advanced/DFAs/parts/0 DFA.tex b/src/Advanced/DFAs/parts/0 DFA.tex similarity index 100% rename from Advanced/DFAs/parts/0 DFA.tex rename to src/Advanced/DFAs/parts/0 DFA.tex diff --git a/Advanced/DFAs/parts/1 regular.tex b/src/Advanced/DFAs/parts/1 regular.tex similarity index 100% rename from Advanced/DFAs/parts/1 regular.tex rename to src/Advanced/DFAs/parts/1 regular.tex diff --git a/Advanced/DFAs/tikzset.tex b/src/Advanced/DFAs/tikzset.tex similarity index 100% rename from Advanced/DFAs/tikzset.tex rename to src/Advanced/DFAs/tikzset.tex diff --git a/Advanced/De Bruijn/main.tex b/src/Advanced/De Bruijn/main.tex similarity index 87% rename from Advanced/De Bruijn/main.tex rename to src/Advanced/De Bruijn/main.tex index f66fbc8..4dff0e9 100755 --- a/Advanced/De Bruijn/main.tex +++ b/src/Advanced/De Bruijn/main.tex @@ -3,8 +3,8 @@ \documentclass[ solutions, singlenumbering -]{../../resources/ormc_handout} -\usepackage{../../resources/macros} +]{../../../lib/tex/ormc_handout} +\usepackage{../../../lib/tex/macros} \input{tikzset.tex} diff --git a/src/Advanced/De Bruijn/meta.toml b/src/Advanced/De Bruijn/meta.toml new file mode 100644 index 0000000..e86e40b --- /dev/null +++ b/src/Advanced/De Bruijn/meta.toml @@ -0,0 +1,6 @@ +[metadata] +title = "De Bruijn" + +[publish] +handout = true +solutions = true diff --git a/Advanced/De Bruijn/parts/0 intro.tex b/src/Advanced/De Bruijn/parts/0 intro.tex similarity index 100% rename from Advanced/De Bruijn/parts/0 intro.tex rename to src/Advanced/De Bruijn/parts/0 intro.tex diff --git a/Advanced/De Bruijn/parts/1 words.tex b/src/Advanced/De Bruijn/parts/1 words.tex similarity index 100% rename from Advanced/De Bruijn/parts/1 words.tex rename to src/Advanced/De Bruijn/parts/1 words.tex diff --git a/Advanced/De Bruijn/parts/2 bruijn.tex b/src/Advanced/De Bruijn/parts/2 bruijn.tex similarity index 100% rename from Advanced/De Bruijn/parts/2 bruijn.tex rename to src/Advanced/De Bruijn/parts/2 bruijn.tex diff --git a/Advanced/De Bruijn/parts/3 line.tex b/src/Advanced/De Bruijn/parts/3 line.tex similarity index 100% rename from Advanced/De Bruijn/parts/3 line.tex rename to src/Advanced/De Bruijn/parts/3 line.tex diff --git a/Advanced/De Bruijn/parts/4 sturmian.tex b/src/Advanced/De Bruijn/parts/4 sturmian.tex similarity index 100% rename from Advanced/De Bruijn/parts/4 sturmian.tex rename to src/Advanced/De Bruijn/parts/4 sturmian.tex diff --git a/Advanced/De Bruijn/tikzset.tex b/src/Advanced/De Bruijn/tikzset.tex similarity index 100% rename from Advanced/De Bruijn/tikzset.tex rename to src/Advanced/De Bruijn/tikzset.tex diff --git a/Advanced/Definable Sets/main.tex b/src/Advanced/Definable Sets/main.tex similarity index 87% rename from Advanced/Definable Sets/main.tex rename to src/Advanced/Definable Sets/main.tex index b443741..7ba8c33 100755 --- a/Advanced/Definable Sets/main.tex +++ b/src/Advanced/Definable Sets/main.tex @@ -3,8 +3,8 @@ \documentclass[ solutions, singlenumbering -]{../../resources/ormc_handout} -\usepackage{../../resources/macros} +]{../../../lib/tex/ormc_handout} +\usepackage{../../../lib/tex/macros} % for \coloneqq, a centered := diff --git a/src/Advanced/Definable Sets/meta.toml b/src/Advanced/Definable Sets/meta.toml new file mode 100644 index 0000000..c071ab7 --- /dev/null +++ b/src/Advanced/Definable Sets/meta.toml @@ -0,0 +1,6 @@ +[metadata] +title = "Definable Sets" + +[publish] +handout = true +solutions = true diff --git a/Advanced/Definable Sets/parts/0 logic.tex b/src/Advanced/Definable Sets/parts/0 logic.tex similarity index 100% rename from Advanced/Definable Sets/parts/0 logic.tex rename to src/Advanced/Definable Sets/parts/0 logic.tex diff --git a/Advanced/Definable Sets/parts/1 structures.tex b/src/Advanced/Definable Sets/parts/1 structures.tex similarity index 100% rename from Advanced/Definable Sets/parts/1 structures.tex rename to src/Advanced/Definable Sets/parts/1 structures.tex diff --git a/Advanced/Definable Sets/parts/2 quantifiers.tex b/src/Advanced/Definable Sets/parts/2 quantifiers.tex similarity index 100% rename from Advanced/Definable Sets/parts/2 quantifiers.tex rename to src/Advanced/Definable Sets/parts/2 quantifiers.tex diff --git a/Advanced/Definable Sets/parts/3 sets.tex b/src/Advanced/Definable Sets/parts/3 sets.tex similarity index 100% rename from Advanced/Definable Sets/parts/3 sets.tex rename to src/Advanced/Definable Sets/parts/3 sets.tex diff --git a/Advanced/Definable Sets/parts/4 equivalence.tex b/src/Advanced/Definable Sets/parts/4 equivalence.tex similarity index 100% rename from Advanced/Definable Sets/parts/4 equivalence.tex rename to src/Advanced/Definable Sets/parts/4 equivalence.tex diff --git a/Advanced/Error-Correcting Codes/main.tex b/src/Advanced/Error-Correcting Codes/main.tex similarity index 86% rename from Advanced/Error-Correcting Codes/main.tex rename to src/Advanced/Error-Correcting Codes/main.tex index c2d8faf..741fb89 100755 --- a/Advanced/Error-Correcting Codes/main.tex +++ b/src/Advanced/Error-Correcting Codes/main.tex @@ -3,8 +3,8 @@ \documentclass[ solutions, singlenumbering -]{../../resources/ormc_handout} -\usepackage{../../resources/macros} +]{../../../lib/tex/ormc_handout} +\usepackage{../../../lib/tex/macros} \usepackage{hyperref} diff --git a/src/Advanced/Error-Correcting Codes/meta.toml b/src/Advanced/Error-Correcting Codes/meta.toml new file mode 100644 index 0000000..1857f05 --- /dev/null +++ b/src/Advanced/Error-Correcting Codes/meta.toml @@ -0,0 +1,6 @@ +[metadata] +title = "Error-Correcting Codes" + +[publish] +handout = true +solutions = true diff --git a/Advanced/Error-Correcting Codes/parts/00 detection.tex b/src/Advanced/Error-Correcting Codes/parts/00 detection.tex similarity index 100% rename from Advanced/Error-Correcting Codes/parts/00 detection.tex rename to src/Advanced/Error-Correcting Codes/parts/00 detection.tex diff --git a/Advanced/Error-Correcting Codes/parts/01 correction.tex b/src/Advanced/Error-Correcting Codes/parts/01 correction.tex similarity index 100% rename from Advanced/Error-Correcting Codes/parts/01 correction.tex rename to src/Advanced/Error-Correcting Codes/parts/01 correction.tex diff --git a/Advanced/Error-Correcting Codes/parts/02 hamming.tex b/src/Advanced/Error-Correcting Codes/parts/02 hamming.tex similarity index 100% rename from Advanced/Error-Correcting Codes/parts/02 hamming.tex rename to src/Advanced/Error-Correcting Codes/parts/02 hamming.tex diff --git a/Advanced/Error-Correcting Codes/qr.png b/src/Advanced/Error-Correcting Codes/qr.png similarity index 100% rename from Advanced/Error-Correcting Codes/qr.png rename to src/Advanced/Error-Correcting Codes/qr.png diff --git a/Advanced/Esoteric Languages/main.tex b/src/Advanced/Esoteric Languages/main.tex similarity index 95% rename from Advanced/Esoteric Languages/main.tex rename to src/Advanced/Esoteric Languages/main.tex index 8b34bd8..0fa8748 100755 --- a/Advanced/Esoteric Languages/main.tex +++ b/src/Advanced/Esoteric Languages/main.tex @@ -3,8 +3,8 @@ \documentclass[ nosolutions, singlenumbering -]{../../resources/ormc_handout} -\usepackage{../../resources/macros} +]{../../../lib/tex/ormc_handout} +\usepackage{../../../lib/tex/macros} % Factorial (print x! from x=0 onwards) diff --git a/src/Advanced/Esoteric Languages/meta.toml b/src/Advanced/Esoteric Languages/meta.toml new file mode 100644 index 0000000..f9d26e9 --- /dev/null +++ b/src/Advanced/Esoteric Languages/meta.toml @@ -0,0 +1,6 @@ +[metadata] +title = "Esoteric Languages" + +[publish] +handout = false +solutions = false diff --git a/Advanced/Esoteric Languages/parts/00 turing.tex b/src/Advanced/Esoteric Languages/parts/00 turing.tex similarity index 100% rename from Advanced/Esoteric Languages/parts/00 turing.tex rename to src/Advanced/Esoteric Languages/parts/00 turing.tex diff --git a/Advanced/Esoteric Languages/parts/01 befunge.tex b/src/Advanced/Esoteric Languages/parts/01 befunge.tex similarity index 100% rename from Advanced/Esoteric Languages/parts/01 befunge.tex rename to src/Advanced/Esoteric Languages/parts/01 befunge.tex diff --git a/Advanced/Estimathon/main.tex b/src/Advanced/Estimathon/main.tex similarity index 98% rename from Advanced/Estimathon/main.tex rename to src/Advanced/Estimathon/main.tex index ae301e3..a8682c7 100755 --- a/Advanced/Estimathon/main.tex +++ b/src/Advanced/Estimathon/main.tex @@ -4,8 +4,8 @@ solutions, singlenumbering, nopagenumber -]{../../resources/ormc_handout} -\usepackage{../../resources/macros} +]{../../../lib/tex/ormc_handout} +\usepackage{../../../lib/tex/macros} \uptitlel{Advanced 2} \uptitler{\smallurl{}} diff --git a/src/Advanced/Estimathon/meta.toml b/src/Advanced/Estimathon/meta.toml new file mode 100644 index 0000000..3bb5423 --- /dev/null +++ b/src/Advanced/Estimathon/meta.toml @@ -0,0 +1,6 @@ +[metadata] +title = "Estimathon" + +[publish] +handout = false +solutions = true diff --git a/Advanced/Generating Functions/main.tex b/src/Advanced/Generating Functions/main.tex similarity index 86% rename from Advanced/Generating Functions/main.tex rename to src/Advanced/Generating Functions/main.tex index dbe5e06..49a940d 100755 --- a/Advanced/Generating Functions/main.tex +++ b/src/Advanced/Generating Functions/main.tex @@ -3,8 +3,8 @@ \documentclass[ solutions, singlenumbering -]{../../resources/ormc_handout} -\usepackage{../../resources/macros} +]{../../../lib/tex/ormc_handout} +\usepackage{../../../lib/tex/macros} \uptitlel{Advanced 2} diff --git a/src/Advanced/Generating Functions/meta.toml b/src/Advanced/Generating Functions/meta.toml new file mode 100644 index 0000000..08749ca --- /dev/null +++ b/src/Advanced/Generating Functions/meta.toml @@ -0,0 +1,6 @@ +[metadata] +title = "Generating Functions" + +[publish] +handout = true +solutions = true diff --git a/Advanced/Generating Functions/parts/00 introduction.tex b/src/Advanced/Generating Functions/parts/00 introduction.tex similarity index 100% rename from Advanced/Generating Functions/parts/00 introduction.tex rename to src/Advanced/Generating Functions/parts/00 introduction.tex diff --git a/Advanced/Generating Functions/parts/01 fibonacci.tex b/src/Advanced/Generating Functions/parts/01 fibonacci.tex similarity index 100% rename from Advanced/Generating Functions/parts/01 fibonacci.tex rename to src/Advanced/Generating Functions/parts/01 fibonacci.tex diff --git a/Advanced/Generating Functions/parts/02 dice.tex b/src/Advanced/Generating Functions/parts/02 dice.tex similarity index 100% rename from Advanced/Generating Functions/parts/02 dice.tex rename to src/Advanced/Generating Functions/parts/02 dice.tex diff --git a/Advanced/Generating Functions/parts/03 coins.tex b/src/Advanced/Generating Functions/parts/03 coins.tex similarity index 100% rename from Advanced/Generating Functions/parts/03 coins.tex rename to src/Advanced/Generating Functions/parts/03 coins.tex diff --git a/Advanced/Geometric Optimization/main.tex b/src/Advanced/Geometric Optimization/main.tex similarity index 98% rename from Advanced/Geometric Optimization/main.tex rename to src/Advanced/Geometric Optimization/main.tex index 55e6fe3..8876c3c 100755 --- a/Advanced/Geometric Optimization/main.tex +++ b/src/Advanced/Geometric Optimization/main.tex @@ -2,8 +2,8 @@ % use [solutions] flag to show solutions. \documentclass[ solutions -]{../../resources/ormc_handout} -\usepackage{../../resources/macros} +]{../../../lib/tex/ormc_handout} +\usepackage{../../../lib/tex/macros} \uptitlel{Advanced 2} \uptitler{\smallurl{}} diff --git a/src/Advanced/Geometric Optimization/meta.toml b/src/Advanced/Geometric Optimization/meta.toml new file mode 100644 index 0000000..f3533c2 --- /dev/null +++ b/src/Advanced/Geometric Optimization/meta.toml @@ -0,0 +1,6 @@ +[metadata] +title = "Geometric Optimization" + +[publish] +handout = true +solutions = false diff --git a/Advanced/COM/img/arc.png b/src/Advanced/Geometry of Masses/img/arc.png similarity index 100% rename from Advanced/COM/img/arc.png rename to src/Advanced/Geometry of Masses/img/arc.png diff --git a/Advanced/COM/img/pappus_1.png b/src/Advanced/Geometry of Masses/img/pappus_1.png similarity index 100% rename from Advanced/COM/img/pappus_1.png rename to src/Advanced/Geometry of Masses/img/pappus_1.png diff --git a/Advanced/COM/img/soda.png b/src/Advanced/Geometry of Masses/img/soda.png similarity index 100% rename from Advanced/COM/img/soda.png rename to src/Advanced/Geometry of Masses/img/soda.png diff --git a/Advanced/COM/img/soda_filled.png b/src/Advanced/Geometry of Masses/img/soda_filled.png similarity index 100% rename from Advanced/COM/img/soda_filled.png rename to src/Advanced/Geometry of Masses/img/soda_filled.png diff --git a/Advanced/Geometry of Masses/main.tex b/src/Advanced/Geometry of Masses/main.tex similarity index 88% rename from Advanced/Geometry of Masses/main.tex rename to src/Advanced/Geometry of Masses/main.tex index be1ed2d..5971604 100755 --- a/Advanced/Geometry of Masses/main.tex +++ b/src/Advanced/Geometry of Masses/main.tex @@ -4,8 +4,8 @@ solutions, singlenumbering, shortwarning -]{../../resources/ormc_handout} -\usepackage{../../resources/macros} +]{../../../lib/tex/ormc_handout} +\usepackage{../../../lib/tex/macros} \usepackage{tikz} \usetikzlibrary{patterns} diff --git a/src/Advanced/Geometry of Masses/meta.toml b/src/Advanced/Geometry of Masses/meta.toml new file mode 100644 index 0000000..6b3a40d --- /dev/null +++ b/src/Advanced/Geometry of Masses/meta.toml @@ -0,0 +1,6 @@ +[metadata] +title = "Geometry of Masses" + +[publish] +handout = true +solutions = false diff --git a/Advanced/Geometry of Masses/parts/0 balance 1d.tex b/src/Advanced/Geometry of Masses/parts/0 balance 1d.tex similarity index 100% rename from Advanced/Geometry of Masses/parts/0 balance 1d.tex rename to src/Advanced/Geometry of Masses/parts/0 balance 1d.tex diff --git a/Advanced/Geometry of Masses/parts/1 balance 2d.tex b/src/Advanced/Geometry of Masses/parts/1 balance 2d.tex similarity index 100% rename from Advanced/Geometry of Masses/parts/1 balance 2d.tex rename to src/Advanced/Geometry of Masses/parts/1 balance 2d.tex diff --git a/Advanced/Geometry of Masses/parts/1 continuous.tex b/src/Advanced/Geometry of Masses/parts/1 continuous.tex similarity index 100% rename from Advanced/Geometry of Masses/parts/1 continuous.tex rename to src/Advanced/Geometry of Masses/parts/1 continuous.tex diff --git a/Advanced/Geometry of Masses/parts/2 pappus.tex b/src/Advanced/Geometry of Masses/parts/2 pappus.tex similarity index 100% rename from Advanced/Geometry of Masses/parts/2 pappus.tex rename to src/Advanced/Geometry of Masses/parts/2 pappus.tex diff --git a/Advanced/Graph Algorithms/main.tex b/src/Advanced/Graph Algorithms/main.tex similarity index 87% rename from Advanced/Graph Algorithms/main.tex rename to src/Advanced/Graph Algorithms/main.tex index 11bdd26..8c80ccb 100755 --- a/Advanced/Graph Algorithms/main.tex +++ b/src/Advanced/Graph Algorithms/main.tex @@ -2,8 +2,8 @@ % use [solutions] flag to show solutions. \documentclass[ solutions -]{../../resources/ormc_handout} -\usepackage{../../resources/macros} +]{../../../lib/tex/ormc_handout} +\usepackage{../../../lib/tex/macros} \input{tikxset} diff --git a/src/Advanced/Graph Algorithms/meta.toml b/src/Advanced/Graph Algorithms/meta.toml new file mode 100644 index 0000000..466ede4 --- /dev/null +++ b/src/Advanced/Graph Algorithms/meta.toml @@ -0,0 +1,6 @@ +[metadata] +title = "Graph Algorithms" + +[publish] +handout = true +solutions = true diff --git a/Advanced/Graph Algorithms/parts/00 review.tex b/src/Advanced/Graph Algorithms/parts/00 review.tex similarity index 100% rename from Advanced/Graph Algorithms/parts/00 review.tex rename to src/Advanced/Graph Algorithms/parts/00 review.tex diff --git a/Advanced/Graph Algorithms/parts/01 flow.tex b/src/Advanced/Graph Algorithms/parts/01 flow.tex similarity index 100% rename from Advanced/Graph Algorithms/parts/01 flow.tex rename to src/Advanced/Graph Algorithms/parts/01 flow.tex diff --git a/Advanced/Graph Algorithms/parts/02 residual.tex b/src/Advanced/Graph Algorithms/parts/02 residual.tex similarity index 100% rename from Advanced/Graph Algorithms/parts/02 residual.tex rename to src/Advanced/Graph Algorithms/parts/02 residual.tex diff --git a/Advanced/Graph Algorithms/parts/03 fulkerson.tex b/src/Advanced/Graph Algorithms/parts/03 fulkerson.tex similarity index 100% rename from Advanced/Graph Algorithms/parts/03 fulkerson.tex rename to src/Advanced/Graph Algorithms/parts/03 fulkerson.tex diff --git a/Advanced/Graph Algorithms/parts/04 applications.tex b/src/Advanced/Graph Algorithms/parts/04 applications.tex similarity index 100% rename from Advanced/Graph Algorithms/parts/04 applications.tex rename to src/Advanced/Graph Algorithms/parts/04 applications.tex diff --git a/Advanced/Graph Algorithms/parts/05 reductions.tex b/src/Advanced/Graph Algorithms/parts/05 reductions.tex similarity index 100% rename from Advanced/Graph Algorithms/parts/05 reductions.tex rename to src/Advanced/Graph Algorithms/parts/05 reductions.tex diff --git a/Advanced/Graph Algorithms/parts/06 bonus.tex b/src/Advanced/Graph Algorithms/parts/06 bonus.tex similarity index 100% rename from Advanced/Graph Algorithms/parts/06 bonus.tex rename to src/Advanced/Graph Algorithms/parts/06 bonus.tex diff --git a/Advanced/Graph Algorithms/tikxset.tex b/src/Advanced/Graph Algorithms/tikxset.tex similarity index 100% rename from Advanced/Graph Algorithms/tikxset.tex rename to src/Advanced/Graph Algorithms/tikxset.tex diff --git a/Advanced/Intro to Proofs/main.tex b/src/Advanced/Intro to Proofs/main.tex similarity index 99% rename from Advanced/Intro to Proofs/main.tex rename to src/Advanced/Intro to Proofs/main.tex index e19ab18..0519d7f 100755 --- a/Advanced/Intro to Proofs/main.tex +++ b/src/Advanced/Intro to Proofs/main.tex @@ -3,8 +3,8 @@ \documentclass[ nosolutions, singlenumbering -]{../../resources/ormc_handout} -\usepackage{../../resources/macros} +]{../../../lib/tex/ormc_handout} +\usepackage{../../../lib/tex/macros} \uptitlel{Advanced 2} diff --git a/src/Advanced/Intro to Proofs/meta.toml b/src/Advanced/Intro to Proofs/meta.toml new file mode 100644 index 0000000..8e885f4 --- /dev/null +++ b/src/Advanced/Intro to Proofs/meta.toml @@ -0,0 +1,6 @@ +[metadata] +title = "Intro to Proofs" + +[publish] +handout = true +solutions = false diff --git a/Advanced/Introduction to Quantum/Tectonic.toml b/src/Advanced/Introduction to Quantum/Tectonic.toml similarity index 100% rename from Advanced/Introduction to Quantum/Tectonic.toml rename to src/Advanced/Introduction to Quantum/Tectonic.toml diff --git a/Advanced/Introduction to Quantum/main.tex b/src/Advanced/Introduction to Quantum/main.tex similarity index 89% rename from Advanced/Introduction to Quantum/main.tex rename to src/Advanced/Introduction to Quantum/main.tex index a990526..34a3cd3 100755 --- a/Advanced/Introduction to Quantum/main.tex +++ b/src/Advanced/Introduction to Quantum/main.tex @@ -1,8 +1,8 @@ \documentclass[ solutions, singlenumbering -]{../../resources/ormc_handout} -\usepackage{../../resources/macros} +]{../../../lib/tex/ormc_handout} +\usepackage{../../../lib/tex/macros} \usepackage{units} \input{src/tikzset} diff --git a/src/Advanced/Introduction to Quantum/meta.toml b/src/Advanced/Introduction to Quantum/meta.toml new file mode 100644 index 0000000..27d5132 --- /dev/null +++ b/src/Advanced/Introduction to Quantum/meta.toml @@ -0,0 +1,6 @@ +[metadata] +title = "Quantum Computing" + +[publish] +handout = true +solutions = true diff --git a/Advanced/Introduction to Quantum/src/main.tex b/src/Advanced/Introduction to Quantum/src/main.tex similarity index 94% rename from Advanced/Introduction to Quantum/src/main.tex rename to src/Advanced/Introduction to Quantum/src/main.tex index 97b8fbb..4708319 100755 --- a/Advanced/Introduction to Quantum/src/main.tex +++ b/src/Advanced/Introduction to Quantum/src/main.tex @@ -18,8 +18,8 @@ \documentclass[ solutions, singlenumbering -]{../../../resources/ormc_handout} -\usepackage{../../../resources/macros} +]{../../../../lib/tex/ormc_handout} +\usepackage{../../../../lib/tex/macros} \usepackage{units} \input{tikzset} diff --git a/Advanced/Introduction to Quantum/src/parts/01 bits.tex b/src/Advanced/Introduction to Quantum/src/parts/01 bits.tex similarity index 100% rename from Advanced/Introduction to Quantum/src/parts/01 bits.tex rename to src/Advanced/Introduction to Quantum/src/parts/01 bits.tex diff --git a/Advanced/Introduction to Quantum/src/parts/02 qubit.tex b/src/Advanced/Introduction to Quantum/src/parts/02 qubit.tex similarity index 100% rename from Advanced/Introduction to Quantum/src/parts/02 qubit.tex rename to src/Advanced/Introduction to Quantum/src/parts/02 qubit.tex diff --git a/Advanced/Introduction to Quantum/src/parts/03 two qubits.tex b/src/Advanced/Introduction to Quantum/src/parts/03 two qubits.tex similarity index 100% rename from Advanced/Introduction to Quantum/src/parts/03 two qubits.tex rename to src/Advanced/Introduction to Quantum/src/parts/03 two qubits.tex diff --git a/Advanced/Introduction to Quantum/src/parts/04 logic gates.tex b/src/Advanced/Introduction to Quantum/src/parts/04 logic gates.tex similarity index 100% rename from Advanced/Introduction to Quantum/src/parts/04 logic gates.tex rename to src/Advanced/Introduction to Quantum/src/parts/04 logic gates.tex diff --git a/Advanced/Introduction to Quantum/src/parts/05 quantum gates.tex b/src/Advanced/Introduction to Quantum/src/parts/05 quantum gates.tex similarity index 100% rename from Advanced/Introduction to Quantum/src/parts/05 quantum gates.tex rename to src/Advanced/Introduction to Quantum/src/parts/05 quantum gates.tex diff --git a/Advanced/Introduction to Quantum/src/parts/06 hxh.tex b/src/Advanced/Introduction to Quantum/src/parts/06 hxh.tex similarity index 100% rename from Advanced/Introduction to Quantum/src/parts/06 hxh.tex rename to src/Advanced/Introduction to Quantum/src/parts/06 hxh.tex diff --git a/Advanced/Introduction to Quantum/src/parts/07 superdense.tex b/src/Advanced/Introduction to Quantum/src/parts/07 superdense.tex similarity index 100% rename from Advanced/Introduction to Quantum/src/parts/07 superdense.tex rename to src/Advanced/Introduction to Quantum/src/parts/07 superdense.tex diff --git a/Advanced/Introduction to Quantum/src/parts/08 teleport.tex b/src/Advanced/Introduction to Quantum/src/parts/08 teleport.tex similarity index 100% rename from Advanced/Introduction to Quantum/src/parts/08 teleport.tex rename to src/Advanced/Introduction to Quantum/src/parts/08 teleport.tex diff --git a/Advanced/Introduction to Quantum/src/tikzset.tex b/src/Advanced/Introduction to Quantum/src/tikzset.tex similarity index 100% rename from Advanced/Introduction to Quantum/src/tikzset.tex rename to src/Advanced/Introduction to Quantum/src/tikzset.tex diff --git a/Advanced/Lambda Calculus/main.tex b/src/Advanced/Lambda Calculus/main.tex similarity index 97% rename from Advanced/Lambda Calculus/main.tex rename to src/Advanced/Lambda Calculus/main.tex index e5a1ccf..6703558 100755 --- a/Advanced/Lambda Calculus/main.tex +++ b/src/Advanced/Lambda Calculus/main.tex @@ -3,8 +3,8 @@ \documentclass[ solutions, singlenumbering -]{../../resources/ormc_handout} -\usepackage{../../resources/macros} +]{../../../lib/tex/ormc_handout} +\usepackage{../../../lib/tex/macros} \usepackage{mathtools} % for \coloneqq diff --git a/src/Advanced/Lambda Calculus/meta.toml b/src/Advanced/Lambda Calculus/meta.toml new file mode 100644 index 0000000..8f8932c --- /dev/null +++ b/src/Advanced/Lambda Calculus/meta.toml @@ -0,0 +1,6 @@ +[metadata] +title = "Lambda Calculus" + +[publish] +handout = true +solutions = true diff --git a/Advanced/Lambda Calculus/parts/00 intro.tex b/src/Advanced/Lambda Calculus/parts/00 intro.tex similarity index 100% rename from Advanced/Lambda Calculus/parts/00 intro.tex rename to src/Advanced/Lambda Calculus/parts/00 intro.tex diff --git a/Advanced/Lambda Calculus/parts/01 combinators.tex b/src/Advanced/Lambda Calculus/parts/01 combinators.tex similarity index 100% rename from Advanced/Lambda Calculus/parts/01 combinators.tex rename to src/Advanced/Lambda Calculus/parts/01 combinators.tex diff --git a/Advanced/Lambda Calculus/parts/02 boolean.tex b/src/Advanced/Lambda Calculus/parts/02 boolean.tex similarity index 100% rename from Advanced/Lambda Calculus/parts/02 boolean.tex rename to src/Advanced/Lambda Calculus/parts/02 boolean.tex diff --git a/Advanced/Lambda Calculus/parts/03 numbers.tex b/src/Advanced/Lambda Calculus/parts/03 numbers.tex similarity index 100% rename from Advanced/Lambda Calculus/parts/03 numbers.tex rename to src/Advanced/Lambda Calculus/parts/03 numbers.tex diff --git a/Advanced/Lambda Calculus/parts/04 recursion.tex b/src/Advanced/Lambda Calculus/parts/04 recursion.tex similarity index 100% rename from Advanced/Lambda Calculus/parts/04 recursion.tex rename to src/Advanced/Lambda Calculus/parts/04 recursion.tex diff --git a/Advanced/Lambda Calculus/parts/05 challenges.tex b/src/Advanced/Lambda Calculus/parts/05 challenges.tex similarity index 100% rename from Advanced/Lambda Calculus/parts/05 challenges.tex rename to src/Advanced/Lambda Calculus/parts/05 challenges.tex diff --git a/Advanced/Lattices/main.tex b/src/Advanced/Lattices/main.tex similarity index 86% rename from Advanced/Lattices/main.tex rename to src/Advanced/Lattices/main.tex index 5f469ac..c8d93e4 100755 --- a/Advanced/Lattices/main.tex +++ b/src/Advanced/Lattices/main.tex @@ -3,8 +3,8 @@ \documentclass[ solutions, singlenumbering -]{../../resources/ormc_handout} -\usepackage{../../resources/macros} +]{../../../lib/tex/ormc_handout} +\usepackage{../../../lib/tex/macros} \usepackage{ifthen} %\usepackage{lua-visual-debug} diff --git a/src/Advanced/Lattices/meta.toml b/src/Advanced/Lattices/meta.toml new file mode 100644 index 0000000..782e271 --- /dev/null +++ b/src/Advanced/Lattices/meta.toml @@ -0,0 +1,6 @@ +[metadata] +title = "Lattices" + +[publish] +handout = true +solutions = true diff --git a/Advanced/Lattices/parts/0 intro.tex b/src/Advanced/Lattices/parts/0 intro.tex similarity index 100% rename from Advanced/Lattices/parts/0 intro.tex rename to src/Advanced/Lattices/parts/0 intro.tex diff --git a/Advanced/Lattices/parts/1 minkowski.tex b/src/Advanced/Lattices/parts/1 minkowski.tex similarity index 100% rename from Advanced/Lattices/parts/1 minkowski.tex rename to src/Advanced/Lattices/parts/1 minkowski.tex diff --git a/Advanced/Lattices/parts/2 orchard.tex b/src/Advanced/Lattices/parts/2 orchard.tex similarity index 100% rename from Advanced/Lattices/parts/2 orchard.tex rename to src/Advanced/Lattices/parts/2 orchard.tex diff --git a/Advanced/Lattices/proof.png b/src/Advanced/Lattices/proof.png similarity index 100% rename from Advanced/Lattices/proof.png rename to src/Advanced/Lattices/proof.png diff --git a/Advanced/Mock a Mockingbird/main.tex b/src/Advanced/Mock a Mockingbird/main.tex similarity index 95% rename from Advanced/Mock a Mockingbird/main.tex rename to src/Advanced/Mock a Mockingbird/main.tex index 6dab7e1..f772d2a 100755 --- a/Advanced/Mock a Mockingbird/main.tex +++ b/src/Advanced/Mock a Mockingbird/main.tex @@ -3,8 +3,8 @@ \documentclass[ solutions, singlenumbering -]{../../resources/ormc_handout} -\usepackage{../../resources/macros} +]{../../../lib/tex/ormc_handout} +\usepackage{../../../lib/tex/macros} \usepackage{mathtools} % for \coloneqq diff --git a/src/Advanced/Mock a Mockingbird/meta.toml b/src/Advanced/Mock a Mockingbird/meta.toml new file mode 100644 index 0000000..891ab9c --- /dev/null +++ b/src/Advanced/Mock a Mockingbird/meta.toml @@ -0,0 +1,6 @@ +[metadata] +title = "Mock a Mockingbird" + +[publish] +handout = true +solutions = true diff --git a/Advanced/Mock a Mockingbird/parts/00 intro.tex b/src/Advanced/Mock a Mockingbird/parts/00 intro.tex similarity index 100% rename from Advanced/Mock a Mockingbird/parts/00 intro.tex rename to src/Advanced/Mock a Mockingbird/parts/00 intro.tex diff --git a/Advanced/Mock a Mockingbird/parts/01 tmam.tex b/src/Advanced/Mock a Mockingbird/parts/01 tmam.tex similarity index 100% rename from Advanced/Mock a Mockingbird/parts/01 tmam.tex rename to src/Advanced/Mock a Mockingbird/parts/01 tmam.tex diff --git a/Advanced/Mock a Mockingbird/parts/02 kestrel.tex b/src/Advanced/Mock a Mockingbird/parts/02 kestrel.tex similarity index 100% rename from Advanced/Mock a Mockingbird/parts/02 kestrel.tex rename to src/Advanced/Mock a Mockingbird/parts/02 kestrel.tex diff --git a/Advanced/Nonstandard Analysis/main.tex b/src/Advanced/Nonstandard Analysis/main.tex similarity index 94% rename from Advanced/Nonstandard Analysis/main.tex rename to src/Advanced/Nonstandard Analysis/main.tex index bf35a4f..c0cc0e9 100755 --- a/Advanced/Nonstandard Analysis/main.tex +++ b/src/Advanced/Nonstandard Analysis/main.tex @@ -19,8 +19,8 @@ \documentclass[ nosolutions, singlenumbering, -]{../../resources/ormc_handout} -\usepackage{../../resources/macros} +]{../../../lib/tex/ormc_handout} +\usepackage{../../../lib/tex/macros} \usepackage{units} \uptitlel{Advanced 2} diff --git a/src/Advanced/Nonstandard Analysis/meta.toml b/src/Advanced/Nonstandard Analysis/meta.toml new file mode 100644 index 0000000..e79cf0a --- /dev/null +++ b/src/Advanced/Nonstandard Analysis/meta.toml @@ -0,0 +1,6 @@ +[metadata] +title = "Nonstandard Analysis" + +[publish] +handout = false +solutions = false diff --git a/Advanced/Nonstandard Analysis/parts/dual.tex b/src/Advanced/Nonstandard Analysis/parts/dual.tex similarity index 100% rename from Advanced/Nonstandard Analysis/parts/dual.tex rename to src/Advanced/Nonstandard Analysis/parts/dual.tex diff --git a/Advanced/Nonstandard Analysis/parts/extensions.tex b/src/Advanced/Nonstandard Analysis/parts/extensions.tex similarity index 100% rename from Advanced/Nonstandard Analysis/parts/extensions.tex rename to src/Advanced/Nonstandard Analysis/parts/extensions.tex diff --git a/Advanced/Nonstandard Analysis/parts/supremum.tex b/src/Advanced/Nonstandard Analysis/parts/supremum.tex similarity index 100% rename from Advanced/Nonstandard Analysis/parts/supremum.tex rename to src/Advanced/Nonstandard Analysis/parts/supremum.tex diff --git a/Advanced/Origami/images/72.png b/src/Advanced/Origami/images/72.png similarity index 100% rename from Advanced/Origami/images/72.png rename to src/Advanced/Origami/images/72.png diff --git a/Advanced/Origami/images/O5Compass.png b/src/Advanced/Origami/images/O5Compass.png similarity index 100% rename from Advanced/Origami/images/O5Compass.png rename to src/Advanced/Origami/images/O5Compass.png diff --git a/Advanced/Origami/images/Segment_division.png b/src/Advanced/Origami/images/Segment_division.png similarity index 100% rename from Advanced/Origami/images/Segment_division.png rename to src/Advanced/Origami/images/Segment_division.png diff --git a/Advanced/Origami/images/axioms/01.png b/src/Advanced/Origami/images/axioms/01.png similarity index 100% rename from Advanced/Origami/images/axioms/01.png rename to src/Advanced/Origami/images/axioms/01.png diff --git a/Advanced/Origami/images/axioms/02.png b/src/Advanced/Origami/images/axioms/02.png similarity index 100% rename from Advanced/Origami/images/axioms/02.png rename to src/Advanced/Origami/images/axioms/02.png diff --git a/Advanced/Origami/images/axioms/03.png b/src/Advanced/Origami/images/axioms/03.png similarity index 100% rename from Advanced/Origami/images/axioms/03.png rename to src/Advanced/Origami/images/axioms/03.png diff --git a/Advanced/Origami/images/axioms/04.png b/src/Advanced/Origami/images/axioms/04.png similarity index 100% rename from Advanced/Origami/images/axioms/04.png rename to src/Advanced/Origami/images/axioms/04.png diff --git a/Advanced/Origami/images/axioms/05.png b/src/Advanced/Origami/images/axioms/05.png similarity index 100% rename from Advanced/Origami/images/axioms/05.png rename to src/Advanced/Origami/images/axioms/05.png diff --git a/Advanced/Origami/images/axioms/06.png b/src/Advanced/Origami/images/axioms/06.png similarity index 100% rename from Advanced/Origami/images/axioms/06.png rename to src/Advanced/Origami/images/axioms/06.png diff --git a/Advanced/Origami/images/axioms/07.png b/src/Advanced/Origami/images/axioms/07.png similarity index 100% rename from Advanced/Origami/images/axioms/07.png rename to src/Advanced/Origami/images/axioms/07.png diff --git a/Advanced/Origami/images/exo51.png b/src/Advanced/Origami/images/exo51.png similarity index 100% rename from Advanced/Origami/images/exo51.png rename to src/Advanced/Origami/images/exo51.png diff --git a/Advanced/Origami/images/exo53.png b/src/Advanced/Origami/images/exo53.png similarity index 100% rename from Advanced/Origami/images/exo53.png rename to src/Advanced/Origami/images/exo53.png diff --git a/Advanced/Origami/images/prob9.png b/src/Advanced/Origami/images/prob9.png similarity index 100% rename from Advanced/Origami/images/prob9.png rename to src/Advanced/Origami/images/prob9.png diff --git a/Advanced/Origami/images/prob9s.png b/src/Advanced/Origami/images/prob9s.png similarity index 100% rename from Advanced/Origami/images/prob9s.png rename to src/Advanced/Origami/images/prob9s.png diff --git a/Advanced/Origami/main.tex b/src/Advanced/Origami/main.tex similarity index 99% rename from Advanced/Origami/main.tex rename to src/Advanced/Origami/main.tex index b7e5256..40d925b 100755 --- a/Advanced/Origami/main.tex +++ b/src/Advanced/Origami/main.tex @@ -3,7 +3,8 @@ \documentclass[ solutions, %shortwarning -]{../../resources/ormc_handout} +]{../../../lib/tex/ormc_handout} +\usepackage{../../../lib/tex/macros} \graphicspath{ {./images/} } diff --git a/src/Advanced/Origami/meta.toml b/src/Advanced/Origami/meta.toml new file mode 100644 index 0000000..9de3074 --- /dev/null +++ b/src/Advanced/Origami/meta.toml @@ -0,0 +1,6 @@ +[metadata] +title = "Origami" + +[publish] +handout = true +solutions = true diff --git a/Advanced/Pidgeonhole Problems/main.tex b/src/Advanced/Pidgeonhole Problems/main.tex similarity index 99% rename from Advanced/Pidgeonhole Problems/main.tex rename to src/Advanced/Pidgeonhole Problems/main.tex index 2cc4279..a7069d1 100755 --- a/Advanced/Pidgeonhole Problems/main.tex +++ b/src/Advanced/Pidgeonhole Problems/main.tex @@ -2,8 +2,8 @@ % use [solutions] flag to show solutions. \documentclass[ solutions -]{../../resources/ormc_handout} -\usepackage{../../resources/macros} +]{../../../lib/tex/ormc_handout} +\usepackage{../../../lib/tex/macros} \usepackage{amsmath} \usepackage{amssymb} diff --git a/src/Advanced/Pidgeonhole Problems/meta.toml b/src/Advanced/Pidgeonhole Problems/meta.toml new file mode 100644 index 0000000..c610312 --- /dev/null +++ b/src/Advanced/Pidgeonhole Problems/meta.toml @@ -0,0 +1,6 @@ +[metadata] +title = "Pidgeonhole Problems" + +[publish] +handout = true +solutions = true diff --git a/Advanced/Random Walks/main.tex b/src/Advanced/Random Walks/main.tex similarity index 88% rename from Advanced/Random Walks/main.tex rename to src/Advanced/Random Walks/main.tex index 8770dcc..1c03ca6 100755 --- a/Advanced/Random Walks/main.tex +++ b/src/Advanced/Random Walks/main.tex @@ -3,8 +3,8 @@ \documentclass[ solutions, singlenumbering -]{../../resources/ormc_handout} -\usepackage{../../resources/macros} +]{../../../lib/tex/ormc_handout} +\usepackage{../../../lib/tex/macros} \input{tikxset.tex} diff --git a/src/Advanced/Random Walks/meta.toml b/src/Advanced/Random Walks/meta.toml new file mode 100644 index 0000000..2be363f --- /dev/null +++ b/src/Advanced/Random Walks/meta.toml @@ -0,0 +1,6 @@ +[metadata] +title = "Random Walks" + +[publish] +handout = true +solutions = true diff --git a/Advanced/Random Walks/parts/0 random.tex b/src/Advanced/Random Walks/parts/0 random.tex similarity index 100% rename from Advanced/Random Walks/parts/0 random.tex rename to src/Advanced/Random Walks/parts/0 random.tex diff --git a/Advanced/Random Walks/parts/1 circuits.tex b/src/Advanced/Random Walks/parts/1 circuits.tex similarity index 100% rename from Advanced/Random Walks/parts/1 circuits.tex rename to src/Advanced/Random Walks/parts/1 circuits.tex diff --git a/Advanced/Random Walks/parts/2 equivalence.tex b/src/Advanced/Random Walks/parts/2 equivalence.tex similarity index 100% rename from Advanced/Random Walks/parts/2 equivalence.tex rename to src/Advanced/Random Walks/parts/2 equivalence.tex diff --git a/Advanced/Random Walks/parts/3 effective.tex b/src/Advanced/Random Walks/parts/3 effective.tex similarity index 100% rename from Advanced/Random Walks/parts/3 effective.tex rename to src/Advanced/Random Walks/parts/3 effective.tex diff --git a/Advanced/Random Walks/tikxset.tex b/src/Advanced/Random Walks/tikxset.tex similarity index 100% rename from Advanced/Random Walks/tikxset.tex rename to src/Advanced/Random Walks/tikxset.tex diff --git a/Advanced/Retrograde Analysis/chess-setup.tex b/src/Advanced/Retrograde Analysis/chess-setup.tex similarity index 100% rename from Advanced/Retrograde Analysis/chess-setup.tex rename to src/Advanced/Retrograde Analysis/chess-setup.tex diff --git a/Advanced/Retrograde Analysis/main.tex b/src/Advanced/Retrograde Analysis/main.tex similarity index 92% rename from Advanced/Retrograde Analysis/main.tex rename to src/Advanced/Retrograde Analysis/main.tex index 2e9aa34..e01ac25 100755 --- a/Advanced/Retrograde Analysis/main.tex +++ b/src/Advanced/Retrograde Analysis/main.tex @@ -3,8 +3,8 @@ \documentclass[ solutions, shortwarning -]{../../resources/ormc_handout} -\usepackage{../../resources/macros} +]{../../../lib/tex/ormc_handout} +\usepackage{../../../lib/tex/macros} \usepackage{chessfss} \usepackage{chessboard} diff --git a/src/Advanced/Retrograde Analysis/meta.toml b/src/Advanced/Retrograde Analysis/meta.toml new file mode 100644 index 0000000..1c4ea7e --- /dev/null +++ b/src/Advanced/Retrograde Analysis/meta.toml @@ -0,0 +1,6 @@ +[metadata] +title = "Retrograde Analysis" + +[publish] +handout = true +solutions = true diff --git a/Advanced/Retrograde Analysis/parts/01 intro.tex b/src/Advanced/Retrograde Analysis/parts/01 intro.tex similarity index 100% rename from Advanced/Retrograde Analysis/parts/01 intro.tex rename to src/Advanced/Retrograde Analysis/parts/01 intro.tex diff --git a/Advanced/Retrograde Analysis/parts/02 easy.tex b/src/Advanced/Retrograde Analysis/parts/02 easy.tex similarity index 100% rename from Advanced/Retrograde Analysis/parts/02 easy.tex rename to src/Advanced/Retrograde Analysis/parts/02 easy.tex diff --git a/Advanced/Retrograde Analysis/parts/03 medium.tex b/src/Advanced/Retrograde Analysis/parts/03 medium.tex similarity index 100% rename from Advanced/Retrograde Analysis/parts/03 medium.tex rename to src/Advanced/Retrograde Analysis/parts/03 medium.tex diff --git a/Advanced/Retrograde Analysis/parts/04 hard.tex b/src/Advanced/Retrograde Analysis/parts/04 hard.tex similarity index 100% rename from Advanced/Retrograde Analysis/parts/04 hard.tex rename to src/Advanced/Retrograde Analysis/parts/04 hard.tex diff --git a/Advanced/Size of Sets/main.tex b/src/Advanced/Size of Sets/main.tex similarity index 94% rename from Advanced/Size of Sets/main.tex rename to src/Advanced/Size of Sets/main.tex index 68d1abc..777c212 100755 --- a/Advanced/Size of Sets/main.tex +++ b/src/Advanced/Size of Sets/main.tex @@ -3,8 +3,8 @@ \documentclass[ solutions, singlenumbering -]{../../resources/ormc_handout} -\usepackage{../../resources/macros} +]{../../../lib/tex/ormc_handout} +\usepackage{../../../lib/tex/macros} diff --git a/src/Advanced/Size of Sets/meta.toml b/src/Advanced/Size of Sets/meta.toml new file mode 100644 index 0000000..8ff1deb --- /dev/null +++ b/src/Advanced/Size of Sets/meta.toml @@ -0,0 +1,6 @@ +[metadata] +title = "The Size of Sets" + +[publish] +handout = true +solutions = false diff --git a/Advanced/Size of Sets/parts/0 sets.tex b/src/Advanced/Size of Sets/parts/0 sets.tex similarity index 100% rename from Advanced/Size of Sets/parts/0 sets.tex rename to src/Advanced/Size of Sets/parts/0 sets.tex diff --git a/Advanced/Size of Sets/parts/1 really big.tex b/src/Advanced/Size of Sets/parts/1 really big.tex similarity index 100% rename from Advanced/Size of Sets/parts/1 really big.tex rename to src/Advanced/Size of Sets/parts/1 really big.tex diff --git a/Advanced/Size of Sets/parts/2 cartesian.tex b/src/Advanced/Size of Sets/parts/2 cartesian.tex similarity index 100% rename from Advanced/Size of Sets/parts/2 cartesian.tex rename to src/Advanced/Size of Sets/parts/2 cartesian.tex diff --git a/Advanced/Size of Sets/parts/3 functions.tex b/src/Advanced/Size of Sets/parts/3 functions.tex similarity index 100% rename from Advanced/Size of Sets/parts/3 functions.tex rename to src/Advanced/Size of Sets/parts/3 functions.tex diff --git a/Advanced/Size of Sets/parts/4 enumeration.tex b/src/Advanced/Size of Sets/parts/4 enumeration.tex similarity index 100% rename from Advanced/Size of Sets/parts/4 enumeration.tex rename to src/Advanced/Size of Sets/parts/4 enumeration.tex diff --git a/Advanced/Size of Sets/parts/5 dense.tex b/src/Advanced/Size of Sets/parts/5 dense.tex similarity index 100% rename from Advanced/Size of Sets/parts/5 dense.tex rename to src/Advanced/Size of Sets/parts/5 dense.tex diff --git a/Advanced/Size of Sets/parts/6 uncountable.tex b/src/Advanced/Size of Sets/parts/6 uncountable.tex similarity index 100% rename from Advanced/Size of Sets/parts/6 uncountable.tex rename to src/Advanced/Size of Sets/parts/6 uncountable.tex diff --git a/Advanced/Stopping Problems/main.tex b/src/Advanced/Stopping Problems/main.tex similarity index 87% rename from Advanced/Stopping Problems/main.tex rename to src/Advanced/Stopping Problems/main.tex index 7b32d45..fdc85c0 100755 --- a/Advanced/Stopping Problems/main.tex +++ b/src/Advanced/Stopping Problems/main.tex @@ -3,8 +3,8 @@ \documentclass[ solutions, singlenumbering -]{../../resources/ormc_handout} -\usepackage{../../resources/macros} +]{../../../lib/tex/ormc_handout} +\usepackage{../../../lib/tex/macros} \usepackage{units} \usepackage{mathtools} % for \coloneqq diff --git a/src/Advanced/Stopping Problems/meta.toml b/src/Advanced/Stopping Problems/meta.toml new file mode 100644 index 0000000..1566940 --- /dev/null +++ b/src/Advanced/Stopping Problems/meta.toml @@ -0,0 +1,6 @@ +[metadata] +title = "Stopping Problems" + +[publish] +handout = true +solutions = true diff --git a/Advanced/Stopping Problems/parts/0 probability.tex b/src/Advanced/Stopping Problems/parts/0 probability.tex similarity index 100% rename from Advanced/Stopping Problems/parts/0 probability.tex rename to src/Advanced/Stopping Problems/parts/0 probability.tex diff --git a/Advanced/Stopping Problems/parts/1 intro.tex b/src/Advanced/Stopping Problems/parts/1 intro.tex similarity index 100% rename from Advanced/Stopping Problems/parts/1 intro.tex rename to src/Advanced/Stopping Problems/parts/1 intro.tex diff --git a/Advanced/Stopping Problems/parts/2 secretary.tex b/src/Advanced/Stopping Problems/parts/2 secretary.tex similarity index 100% rename from Advanced/Stopping Problems/parts/2 secretary.tex rename to src/Advanced/Stopping Problems/parts/2 secretary.tex diff --git a/Advanced/Stopping Problems/parts/3 orderstat.tex b/src/Advanced/Stopping Problems/parts/3 orderstat.tex similarity index 100% rename from Advanced/Stopping Problems/parts/3 orderstat.tex rename to src/Advanced/Stopping Problems/parts/3 orderstat.tex diff --git a/Advanced/Symmetric Group/main.tex b/src/Advanced/Symmetric Groups/main.tex similarity index 94% rename from Advanced/Symmetric Group/main.tex rename to src/Advanced/Symmetric Groups/main.tex index be9f550..d11dcfe 100755 --- a/Advanced/Symmetric Group/main.tex +++ b/src/Advanced/Symmetric Groups/main.tex @@ -3,8 +3,8 @@ \documentclass[ solutions, singlenumbering -]{../../resources/ormc_handout} -\usepackage{../../resources/macros} +]{../../../lib/tex/ormc_handout} +\usepackage{../../../lib/tex/macros} \usetikzlibrary{calc} \uptitlel{Advanced 2} diff --git a/src/Advanced/Symmetric Groups/meta.toml b/src/Advanced/Symmetric Groups/meta.toml new file mode 100644 index 0000000..c30e90c --- /dev/null +++ b/src/Advanced/Symmetric Groups/meta.toml @@ -0,0 +1,6 @@ +[metadata] +title = "Symmetric Groups" + +[publish] +handout = true +solutions = true diff --git a/Advanced/Symmetric Group/parts/0 intro.tex b/src/Advanced/Symmetric Groups/parts/0 intro.tex similarity index 100% rename from Advanced/Symmetric Group/parts/0 intro.tex rename to src/Advanced/Symmetric Groups/parts/0 intro.tex diff --git a/Advanced/Symmetric Group/parts/1 cycle.tex b/src/Advanced/Symmetric Groups/parts/1 cycle.tex similarity index 100% rename from Advanced/Symmetric Group/parts/1 cycle.tex rename to src/Advanced/Symmetric Groups/parts/1 cycle.tex diff --git a/Advanced/Symmetric Group/parts/2 groups.tex b/src/Advanced/Symmetric Groups/parts/2 groups.tex similarity index 100% rename from Advanced/Symmetric Group/parts/2 groups.tex rename to src/Advanced/Symmetric Groups/parts/2 groups.tex diff --git a/Advanced/Symmetric Group/parts/3 subgroup.tex b/src/Advanced/Symmetric Groups/parts/3 subgroup.tex similarity index 100% rename from Advanced/Symmetric Group/parts/3 subgroup.tex rename to src/Advanced/Symmetric Groups/parts/3 subgroup.tex diff --git a/Advanced/Tropical Polynomials/handout.typ b/src/Advanced/Tropical Polynomials/handout.typ similarity index 100% rename from Advanced/Tropical Polynomials/handout.typ rename to src/Advanced/Tropical Polynomials/handout.typ diff --git a/Advanced/Tropical Polynomials/macros.typ b/src/Advanced/Tropical Polynomials/macros.typ similarity index 100% rename from Advanced/Tropical Polynomials/macros.typ rename to src/Advanced/Tropical Polynomials/macros.typ diff --git a/Advanced/Tropical Polynomials/main.typ b/src/Advanced/Tropical Polynomials/main.typ similarity index 100% rename from Advanced/Tropical Polynomials/main.typ rename to src/Advanced/Tropical Polynomials/main.typ diff --git a/src/Advanced/Tropical Polynomials/meta.toml b/src/Advanced/Tropical Polynomials/meta.toml new file mode 100644 index 0000000..ed4fa95 --- /dev/null +++ b/src/Advanced/Tropical Polynomials/meta.toml @@ -0,0 +1,7 @@ +[metadata] +title = "Tropical Polynomials" + + +[publish] +handout = true +solutions = true diff --git a/Advanced/Tropical Polynomials/parts/00 arithmetic.typ b/src/Advanced/Tropical Polynomials/parts/00 arithmetic.typ similarity index 100% rename from Advanced/Tropical Polynomials/parts/00 arithmetic.typ rename to src/Advanced/Tropical Polynomials/parts/00 arithmetic.typ diff --git a/Advanced/Tropical Polynomials/parts/01 polynomials.typ b/src/Advanced/Tropical Polynomials/parts/01 polynomials.typ similarity index 100% rename from Advanced/Tropical Polynomials/parts/01 polynomials.typ rename to src/Advanced/Tropical Polynomials/parts/01 polynomials.typ diff --git a/Advanced/Tropical Polynomials/parts/02 cubic.typ b/src/Advanced/Tropical Polynomials/parts/02 cubic.typ similarity index 100% rename from Advanced/Tropical Polynomials/parts/02 cubic.typ rename to src/Advanced/Tropical Polynomials/parts/02 cubic.typ diff --git a/Intermediate/An Introduction to Graph Theory/main.tex b/src/Intermediate/An Introduction to Graph Theory/main.tex similarity index 87% rename from Intermediate/An Introduction to Graph Theory/main.tex rename to src/Intermediate/An Introduction to Graph Theory/main.tex index fdd02ed..84c1ce3 100755 --- a/Intermediate/An Introduction to Graph Theory/main.tex +++ b/src/Intermediate/An Introduction to Graph Theory/main.tex @@ -3,8 +3,8 @@ \documentclass[ solutions, singlenumbering -]{../../resources/ormc_handout} -\usepackage{../../resources/macros} +]{../../../lib/tex/ormc_handout} +\usepackage{../../../lib/tex/macros} \input{tikxset.tex} diff --git a/src/Intermediate/An Introduction to Graph Theory/meta.toml b/src/Intermediate/An Introduction to Graph Theory/meta.toml new file mode 100644 index 0000000..56e9e19 --- /dev/null +++ b/src/Intermediate/An Introduction to Graph Theory/meta.toml @@ -0,0 +1,6 @@ +[metadata] +title = "An Introduction to Graph Theory" + +[publish] +handout = true +solutions = false diff --git a/Intermediate/An Introduction to Graph Theory/parts/0 intro.tex b/src/Intermediate/An Introduction to Graph Theory/parts/0 intro.tex similarity index 100% rename from Intermediate/An Introduction to Graph Theory/parts/0 intro.tex rename to src/Intermediate/An Introduction to Graph Theory/parts/0 intro.tex diff --git a/Intermediate/An Introduction to Graph Theory/parts/1 paths.tex b/src/Intermediate/An Introduction to Graph Theory/parts/1 paths.tex similarity index 100% rename from Intermediate/An Introduction to Graph Theory/parts/1 paths.tex rename to src/Intermediate/An Introduction to Graph Theory/parts/1 paths.tex diff --git a/Intermediate/An Introduction to Graph Theory/parts/2 planar.tex b/src/Intermediate/An Introduction to Graph Theory/parts/2 planar.tex similarity index 100% rename from Intermediate/An Introduction to Graph Theory/parts/2 planar.tex rename to src/Intermediate/An Introduction to Graph Theory/parts/2 planar.tex diff --git a/Intermediate/An Introduction to Graph Theory/parts/3 counting.tex b/src/Intermediate/An Introduction to Graph Theory/parts/3 counting.tex similarity index 100% rename from Intermediate/An Introduction to Graph Theory/parts/3 counting.tex rename to src/Intermediate/An Introduction to Graph Theory/parts/3 counting.tex diff --git a/Intermediate/An Introduction to Graph Theory/tikxset.tex b/src/Intermediate/An Introduction to Graph Theory/tikxset.tex similarity index 100% rename from Intermediate/An Introduction to Graph Theory/tikxset.tex rename to src/Intermediate/An Introduction to Graph Theory/tikxset.tex diff --git a/Intermediate/Combinatorics/main.tex b/src/Intermediate/Combinatorics/main.tex similarity index 99% rename from Intermediate/Combinatorics/main.tex rename to src/Intermediate/Combinatorics/main.tex index 785c9d9..fd09188 100755 --- a/Intermediate/Combinatorics/main.tex +++ b/src/Intermediate/Combinatorics/main.tex @@ -2,8 +2,8 @@ % use [solutions] flag to show solutions. \documentclass[ solutions -]{../../resources/ormc_handout} -\usepackage{../../resources/macros} +]{../../../lib/tex/ormc_handout} +\usepackage{../../../lib/tex/macros} diff --git a/src/Intermediate/Combinatorics/meta.toml b/src/Intermediate/Combinatorics/meta.toml new file mode 100644 index 0000000..cef0b9c --- /dev/null +++ b/src/Intermediate/Combinatorics/meta.toml @@ -0,0 +1,6 @@ +[metadata] +title = "Combinatorics" + +[publish] +handout = true +solutions = true diff --git a/Intermediate/Instant Insanity/4Dcube2.jpg b/src/Intermediate/Instant Insanity/4Dcube2.jpg similarity index 100% rename from Intermediate/Instant Insanity/4Dcube2.jpg rename to src/Intermediate/Instant Insanity/4Dcube2.jpg diff --git a/Intermediate/Instant Insanity/II.jpg b/src/Intermediate/Instant Insanity/II.jpg similarity index 100% rename from Intermediate/Instant Insanity/II.jpg rename to src/Intermediate/Instant Insanity/II.jpg diff --git a/Intermediate/Instant Insanity/dodecahedron.jpg b/src/Intermediate/Instant Insanity/dodecahedron.jpg similarity index 100% rename from Intermediate/Instant Insanity/dodecahedron.jpg rename to src/Intermediate/Instant Insanity/dodecahedron.jpg diff --git a/Intermediate/Instant Insanity/main.tex b/src/Intermediate/Instant Insanity/main.tex similarity index 99% rename from Intermediate/Instant Insanity/main.tex rename to src/Intermediate/Instant Insanity/main.tex index 6b292f0..3ae53c7 100755 --- a/Intermediate/Instant Insanity/main.tex +++ b/src/Intermediate/Instant Insanity/main.tex @@ -2,8 +2,8 @@ % use [solutions] flag to show solutions. \documentclass[ solutions -]{../../resources/ormc_handout} -\usepackage{../../resources/macros} +]{../../../lib/tex/ormc_handout} +\usepackage{../../../lib/tex/macros} \usepackage{tkz-graph} diff --git a/src/Intermediate/Instant Insanity/meta.toml b/src/Intermediate/Instant Insanity/meta.toml new file mode 100644 index 0000000..a34a07f --- /dev/null +++ b/src/Intermediate/Instant Insanity/meta.toml @@ -0,0 +1,6 @@ +[metadata] +title = "Instant Insanity" + +[publish] +handout = true +solutions = false diff --git a/Intermediate/Newton's Laws/main.tex b/src/Intermediate/Newton's Laws/main.tex similarity index 99% rename from Intermediate/Newton's Laws/main.tex rename to src/Intermediate/Newton's Laws/main.tex index 3874f5d..ee9dda9 100755 --- a/Intermediate/Newton's Laws/main.tex +++ b/src/Intermediate/Newton's Laws/main.tex @@ -2,8 +2,8 @@ % use [solutions] flag to show solutions. \documentclass[ solutions -]{../../resources/ormc_handout} -\usepackage{../../resources/macros} +]{../../../lib/tex/ormc_handout} +\usepackage{../../../lib/tex/macros} diff --git a/src/Intermediate/Newton's Laws/meta.toml b/src/Intermediate/Newton's Laws/meta.toml new file mode 100644 index 0000000..ea4c0a3 --- /dev/null +++ b/src/Intermediate/Newton's Laws/meta.toml @@ -0,0 +1,6 @@ +[metadata] +title = "Newton's Laws" + +[publish] +handout = true +solutions = false diff --git a/Intermediate/Probability/main.tex b/src/Intermediate/Probability/main.tex similarity index 99% rename from Intermediate/Probability/main.tex rename to src/Intermediate/Probability/main.tex index 2ef0251..a7deb79 100755 --- a/Intermediate/Probability/main.tex +++ b/src/Intermediate/Probability/main.tex @@ -1,7 +1,7 @@ % use [nosolutions] flag to hide solutions. % use [solutions] flag to show solutions. -\documentclass[solutions]{../../resources/ormc_handout} -\usepackage{../../resources/macros} +\documentclass[solutions]{../../../lib/tex/ormc_handout} +\usepackage{../../../lib/tex/macros} % Quick P() macro. diff --git a/src/Intermediate/Probability/meta.toml b/src/Intermediate/Probability/meta.toml new file mode 100644 index 0000000..7d7367b --- /dev/null +++ b/src/Intermediate/Probability/meta.toml @@ -0,0 +1,6 @@ +[metadata] +title = "Probability" + +[publish] +handout = true +solutions = false diff --git a/Misc/Proof Techniques/main.tex b/src/Intermediate/Proof Techniques/main.tex similarity index 83% rename from Misc/Proof Techniques/main.tex rename to src/Intermediate/Proof Techniques/main.tex index 9e32ac1..50161c1 100755 --- a/Misc/Proof Techniques/main.tex +++ b/src/Intermediate/Proof Techniques/main.tex @@ -3,12 +3,12 @@ \documentclass[ solutions, singlenumbering -]{../../resources/ormc_handout} -\usepackage{../../resources/macros} +]{../../../lib/tex/ormc_handout} +\usepackage{../../../lib/tex/macros} \usepackage{units} -\uptitlel{Math Circle Basics} +\uptitlel{Intermediate} \uptitler{\smallurl{}} \title{Proof Techniques} \subtitle{Prepared by Mark on \today{}} diff --git a/src/Intermediate/Proof Techniques/meta.toml b/src/Intermediate/Proof Techniques/meta.toml new file mode 100644 index 0000000..b566c29 --- /dev/null +++ b/src/Intermediate/Proof Techniques/meta.toml @@ -0,0 +1,6 @@ +[metadata] +title = "Proof Techniques" + +[publish] +handout = false +solutions = true diff --git a/Misc/Proof Techniques/parts/0 intro.tex b/src/Intermediate/Proof Techniques/parts/0 intro.tex similarity index 100% rename from Misc/Proof Techniques/parts/0 intro.tex rename to src/Intermediate/Proof Techniques/parts/0 intro.tex diff --git a/Misc/Proof Techniques/parts/1 contradiction.tex b/src/Intermediate/Proof Techniques/parts/1 contradiction.tex similarity index 100% rename from Misc/Proof Techniques/parts/1 contradiction.tex rename to src/Intermediate/Proof Techniques/parts/1 contradiction.tex diff --git a/Misc/Proof Techniques/parts/2 induction.tex b/src/Intermediate/Proof Techniques/parts/2 induction.tex similarity index 100% rename from Misc/Proof Techniques/parts/2 induction.tex rename to src/Intermediate/Proof Techniques/parts/2 induction.tex diff --git a/Intermediate/Slide Rules/main.tex b/src/Intermediate/Slide Rules/main.tex similarity index 94% rename from Intermediate/Slide Rules/main.tex rename to src/Intermediate/Slide Rules/main.tex index 275df07..2ea33da 100755 --- a/Intermediate/Slide Rules/main.tex +++ b/src/Intermediate/Slide Rules/main.tex @@ -1,9 +1,9 @@ % use [nosolutions] flag to hide solutions. % use [solutions] flag to show solutions. \documentclass[ - nosolutions -]{../../resources/ormc_handout} -\usepackage{../../resources/macros} + solutions +]{../../../lib/tex/ormc_handout} +\usepackage{../../../lib/tex/macros} \usepackage{pdfpages} diff --git a/src/Intermediate/Slide Rules/meta.toml b/src/Intermediate/Slide Rules/meta.toml new file mode 100644 index 0000000..43d74f7 --- /dev/null +++ b/src/Intermediate/Slide Rules/meta.toml @@ -0,0 +1,6 @@ +[metadata] +title = "Slide Rules" + +[publish] +handout = true +solutions = true diff --git a/Intermediate/Slide Rules/parts/0 logarithms.tex b/src/Intermediate/Slide Rules/parts/0 logarithms.tex similarity index 100% rename from Intermediate/Slide Rules/parts/0 logarithms.tex rename to src/Intermediate/Slide Rules/parts/0 logarithms.tex diff --git a/Intermediate/Slide Rules/parts/1 intro.tex b/src/Intermediate/Slide Rules/parts/1 intro.tex similarity index 100% rename from Intermediate/Slide Rules/parts/1 intro.tex rename to src/Intermediate/Slide Rules/parts/1 intro.tex diff --git a/Intermediate/Slide Rules/parts/2 multiplication.tex b/src/Intermediate/Slide Rules/parts/2 multiplication.tex similarity index 100% rename from Intermediate/Slide Rules/parts/2 multiplication.tex rename to src/Intermediate/Slide Rules/parts/2 multiplication.tex diff --git a/Intermediate/Slide Rules/parts/3 division.tex b/src/Intermediate/Slide Rules/parts/3 division.tex similarity index 100% rename from Intermediate/Slide Rules/parts/3 division.tex rename to src/Intermediate/Slide Rules/parts/3 division.tex diff --git a/Intermediate/Slide Rules/parts/4 squares.tex b/src/Intermediate/Slide Rules/parts/4 squares.tex similarity index 100% rename from Intermediate/Slide Rules/parts/4 squares.tex rename to src/Intermediate/Slide Rules/parts/4 squares.tex diff --git a/Intermediate/Slide Rules/parts/5 inverses.tex b/src/Intermediate/Slide Rules/parts/5 inverses.tex similarity index 100% rename from Intermediate/Slide Rules/parts/5 inverses.tex rename to src/Intermediate/Slide Rules/parts/5 inverses.tex diff --git a/Intermediate/Slide Rules/parts/6 log.tex b/src/Intermediate/Slide Rules/parts/6 log.tex similarity index 100% rename from Intermediate/Slide Rules/parts/6 log.tex rename to src/Intermediate/Slide Rules/parts/6 log.tex diff --git a/Intermediate/Slide Rules/resources/ISRC.pdf b/src/Intermediate/Slide Rules/resources/ISRC.pdf similarity index 100% rename from Intermediate/Slide Rules/resources/ISRC.pdf rename to src/Intermediate/Slide Rules/resources/ISRC.pdf diff --git a/Intermediate/Slide Rules/resources/rule.pdf b/src/Intermediate/Slide Rules/resources/rule.pdf similarity index 100% rename from Intermediate/Slide Rules/resources/rule.pdf rename to src/Intermediate/Slide Rules/resources/rule.pdf diff --git a/Intermediate/Slide Rules/resources/rule.svg b/src/Intermediate/Slide Rules/resources/rule.svg similarity index 100% rename from Intermediate/Slide Rules/resources/rule.svg rename to src/Intermediate/Slide Rules/resources/rule.svg diff --git a/Intermediate/Slide Rules/sliderule.sty b/src/Intermediate/Slide Rules/sliderule.sty similarity index 100% rename from Intermediate/Slide Rules/sliderule.sty rename to src/Intermediate/Slide Rules/sliderule.sty diff --git a/Intermediate/Vectors 1/main.tex b/src/Intermediate/Vectors 1/main.tex similarity index 99% rename from Intermediate/Vectors 1/main.tex rename to src/Intermediate/Vectors 1/main.tex index cbbceb1..f112369 100755 --- a/Intermediate/Vectors 1/main.tex +++ b/src/Intermediate/Vectors 1/main.tex @@ -1,8 +1,8 @@ % use [nosolutions] flag to hide solutions. % use [solutions] flag to show solutions. -\documentclass[solutions]{../../resources/ormc_handout} +\documentclass[solutions]{../../../lib/tex/ormc_handout} \usepackage{adjustbox} -\usepackage{../../resources/macros} +\usepackage{../../../lib/tex/macros} \uptitlel{Intermediate 2} diff --git a/src/Intermediate/Vectors 1/meta.toml b/src/Intermediate/Vectors 1/meta.toml new file mode 100644 index 0000000..98a4a91 --- /dev/null +++ b/src/Intermediate/Vectors 1/meta.toml @@ -0,0 +1,6 @@ +[metadata] +title = "Vectors 1" + +[publish] +handout = true +solutions = false diff --git a/Intermediate/Vectors 2/main.tex b/src/Intermediate/Vectors 2/main.tex similarity index 99% rename from Intermediate/Vectors 2/main.tex rename to src/Intermediate/Vectors 2/main.tex index 4d6b257..55c3755 100755 --- a/Intermediate/Vectors 2/main.tex +++ b/src/Intermediate/Vectors 2/main.tex @@ -1,7 +1,7 @@ % use [nosolutions] flag to hide solutions. % use [solutions] flag to show solutions. -\documentclass[solutions]{../../resources/ormc_handout} -\usepackage{../../resources/macros} +\documentclass[solutions]{../../../lib/tex/ormc_handout} +\usepackage{../../../lib/tex/macros} \uptitlel{Intermediate 2} diff --git a/src/Intermediate/Vectors 2/meta.toml b/src/Intermediate/Vectors 2/meta.toml new file mode 100644 index 0000000..eb9496b --- /dev/null +++ b/src/Intermediate/Vectors 2/meta.toml @@ -0,0 +1,6 @@ +[metadata] +title = "Vectors 2" + +[publish] +handout = true +solutions = false diff --git a/Misc/Warm-Ups/median.tex b/src/Warm-Ups/A Familiar Concept/main.tex similarity index 89% rename from Misc/Warm-Ups/median.tex rename to src/Warm-Ups/A Familiar Concept/main.tex index b39d5f8..8a754d3 100755 --- a/Misc/Warm-Ups/median.tex +++ b/src/Warm-Ups/A Familiar Concept/main.tex @@ -3,8 +3,8 @@ hidewarning, singlenumbering, nopagenumber -]{../../resources/ormc_handout} -\usepackage{../../resources/macros} +]{../../../lib/tex/ormc_handout} +\usepackage{../../../lib/tex/macros} diff --git a/src/Warm-Ups/A Familiar Concept/meta.toml b/src/Warm-Ups/A Familiar Concept/meta.toml new file mode 100644 index 0000000..70aa39f --- /dev/null +++ b/src/Warm-Ups/A Familiar Concept/meta.toml @@ -0,0 +1,6 @@ +[metadata] +title = "A Familiar Concept" + +[publish] +handout = true +solutions = false diff --git a/Misc/Warm-Ups/adders.tex b/src/Warm-Ups/Adders/main.tex similarity index 96% rename from Misc/Warm-Ups/adders.tex rename to src/Warm-Ups/Adders/main.tex index 61abfe5..ab4f1cf 100755 --- a/Misc/Warm-Ups/adders.tex +++ b/src/Warm-Ups/Adders/main.tex @@ -2,8 +2,8 @@ nosolutions, singlenumbering, nopagenumber -]{../../resources/ormc_handout} -\usepackage{../../resources/macros} +]{../../../lib/tex/ormc_handout} +\usepackage{../../../lib/tex/macros} \title{Warm-Up: Adders} diff --git a/src/Warm-Ups/Adders/meta.toml b/src/Warm-Ups/Adders/meta.toml new file mode 100644 index 0000000..5d59390 --- /dev/null +++ b/src/Warm-Ups/Adders/meta.toml @@ -0,0 +1,6 @@ +[metadata] +title = "Adders" + +[publish] +handout = true +solutions = true diff --git a/Misc/Warm-Ups/ttt.tex b/src/Warm-Ups/Big-Tac-Toe/main.tex similarity index 98% rename from Misc/Warm-Ups/ttt.tex rename to src/Warm-Ups/Big-Tac-Toe/main.tex index fd55c69..8f735f5 100755 --- a/Misc/Warm-Ups/ttt.tex +++ b/src/Warm-Ups/Big-Tac-Toe/main.tex @@ -3,8 +3,8 @@ hidewarning, singlenumbering, nopagenumber -]{../../resources/ormc_handout} -\usepackage{../../resources/macros} +]{../../../lib/tex/ormc_handout} +\usepackage{../../../lib/tex/macros} % x,y,scale,style \def\ttt#1#2#3#4{ diff --git a/src/Warm-Ups/Big-Tac-Toe/meta.toml b/src/Warm-Ups/Big-Tac-Toe/meta.toml new file mode 100644 index 0000000..eb2e016 --- /dev/null +++ b/src/Warm-Ups/Big-Tac-Toe/meta.toml @@ -0,0 +1,6 @@ +[metadata] +title = "Big-Tac-Toe" + +[publish] +handout = true +solutions = false diff --git a/Misc/Warm-Ups/electician.tex b/src/Warm-Ups/Electrician/main.tex similarity index 98% rename from Misc/Warm-Ups/electician.tex rename to src/Warm-Ups/Electrician/main.tex index 5086d32..1aabec0 100755 --- a/Misc/Warm-Ups/electician.tex +++ b/src/Warm-Ups/Electrician/main.tex @@ -3,8 +3,8 @@ hidewarning, singlenumbering, nopagenumber -]{../../resources/ormc_handout} -\usepackage{../../resources/macros} +]{../../../lib/tex/ormc_handout} +\usepackage{../../../lib/tex/macros} diff --git a/src/Warm-Ups/Electrician/meta.toml b/src/Warm-Ups/Electrician/meta.toml new file mode 100644 index 0000000..37d2a77 --- /dev/null +++ b/src/Warm-Ups/Electrician/meta.toml @@ -0,0 +1,6 @@ +[metadata] +title = "The Electrician's Warm-Up" + +[publish] +handout = true +solutions = false diff --git a/Misc/Warm-Ups/flipflop.tex b/src/Warm-Ups/Flip-Flops/main.tex similarity index 98% rename from Misc/Warm-Ups/flipflop.tex rename to src/Warm-Ups/Flip-Flops/main.tex index 0cb93ba..f201103 100755 --- a/Misc/Warm-Ups/flipflop.tex +++ b/src/Warm-Ups/Flip-Flops/main.tex @@ -3,8 +3,8 @@ shortwarning, singlenumbering, nopagenumber -]{../../resources/ormc_handout} -\usepackage{../../resources/macros} +]{../../../lib/tex/ormc_handout} +\usepackage{../../../lib/tex/macros} \geometry{top = 20mm} diff --git a/src/Warm-Ups/Flip-Flops/meta.toml b/src/Warm-Ups/Flip-Flops/meta.toml new file mode 100644 index 0000000..5751cb0 --- /dev/null +++ b/src/Warm-Ups/Flip-Flops/meta.toml @@ -0,0 +1,6 @@ +[metadata] +title = "Flip-Flops" + +[publish] +handout = true +solutions = true diff --git a/Misc/Warm-Ups/strings.tex b/src/Warm-Ups/Fuse Timers/main.tex similarity index 88% rename from Misc/Warm-Ups/strings.tex rename to src/Warm-Ups/Fuse Timers/main.tex index 5fb17c5..b0c5d1a 100755 --- a/Misc/Warm-Ups/strings.tex +++ b/src/Warm-Ups/Fuse Timers/main.tex @@ -3,8 +3,8 @@ hidewarning, singlenumbering, nopagenumber -]{../../resources/ormc_handout} -\usepackage{../../resources/macros} +]{../../../lib/tex/ormc_handout} +\usepackage{../../../lib/tex/macros} diff --git a/src/Warm-Ups/Fuse Timers/meta.toml b/src/Warm-Ups/Fuse Timers/meta.toml new file mode 100644 index 0000000..bf3cdd8 --- /dev/null +++ b/src/Warm-Ups/Fuse Timers/meta.toml @@ -0,0 +1,6 @@ +[metadata] +title = "Fuse Timers" + +[publish] +handout = true +solutions = false diff --git a/Misc/Warm-Ups/gallery.tex b/src/Warm-Ups/Gallery/main.tex similarity index 97% rename from Misc/Warm-Ups/gallery.tex rename to src/Warm-Ups/Gallery/main.tex index 55e751a..e4541ac 100755 --- a/Misc/Warm-Ups/gallery.tex +++ b/src/Warm-Ups/Gallery/main.tex @@ -2,8 +2,8 @@ solutions, singlenumbering, nopagenumber -]{../../resources/ormc_handout} -\usepackage{../../resources/macros} +]{../../../lib/tex/ormc_handout} +\usepackage{../../../lib/tex/macros} \makeatletter diff --git a/src/Warm-Ups/Gallery/meta.toml b/src/Warm-Ups/Gallery/meta.toml new file mode 100644 index 0000000..6e093f1 --- /dev/null +++ b/src/Warm-Ups/Gallery/meta.toml @@ -0,0 +1,6 @@ +[metadata] +title = "The Gallery" + +[publish] +handout = true +solutions = true diff --git a/Misc/Warm-Ups/jump chess.tex b/src/Warm-Ups/Jump Chess/main.tex similarity index 93% rename from Misc/Warm-Ups/jump chess.tex rename to src/Warm-Ups/Jump Chess/main.tex index 5eb6b28..c1d3658 100755 --- a/Misc/Warm-Ups/jump chess.tex +++ b/src/Warm-Ups/Jump Chess/main.tex @@ -3,8 +3,8 @@ hidewarning, singlenumbering, nopagenumber -]{../../resources/ormc_handout} -\usepackage{../../resources/macros} +]{../../../lib/tex/ormc_handout} +\usepackage{../../../lib/tex/macros} @@ -16,8 +16,6 @@ \subtitle{Prepared by Mark on \today} -% Source: Khan LSAT prep - \begin{document} \maketitle diff --git a/src/Warm-Ups/Jump Chess/meta.toml b/src/Warm-Ups/Jump Chess/meta.toml new file mode 100644 index 0000000..789e618 --- /dev/null +++ b/src/Warm-Ups/Jump Chess/meta.toml @@ -0,0 +1,6 @@ +[metadata] +title = "Jump Chess" + +[publish] +handout = true +solutions = true diff --git a/Misc/Warm-Ups/mario.tex b/src/Warm-Ups/Mario Kart/main.tex similarity index 95% rename from Misc/Warm-Ups/mario.tex rename to src/Warm-Ups/Mario Kart/main.tex index fde7982..f5af8a0 100755 --- a/Misc/Warm-Ups/mario.tex +++ b/src/Warm-Ups/Mario Kart/main.tex @@ -3,8 +3,8 @@ hidewarning, singlenumbering, nopagenumber -]{../../resources/ormc_handout} -\usepackage{../../resources/macros} +]{../../../lib/tex/ormc_handout} +\usepackage{../../../lib/tex/macros} \title{Warm-Up: Mario Kart} diff --git a/src/Warm-Ups/Mario Kart/meta.toml b/src/Warm-Ups/Mario Kart/meta.toml new file mode 100644 index 0000000..717d963 --- /dev/null +++ b/src/Warm-Ups/Mario Kart/meta.toml @@ -0,0 +1,6 @@ +[metadata] +title = "Mario Kart" + +[publish] +handout = true +solutions = true diff --git a/Misc/Warm-Ups/nontransitive dice.tex b/src/Warm-Ups/Odd Dice/main.tex similarity index 96% rename from Misc/Warm-Ups/nontransitive dice.tex rename to src/Warm-Ups/Odd Dice/main.tex index 10a35bb..270936d 100755 --- a/Misc/Warm-Ups/nontransitive dice.tex +++ b/src/Warm-Ups/Odd Dice/main.tex @@ -3,8 +3,8 @@ hidewarning, singlenumbering, nopagenumber -]{../../resources/ormc_handout} -\usepackage{../../resources/macros} +]{../../../lib/tex/ormc_handout} +\usepackage{../../../lib/tex/macros} @@ -39,7 +39,7 @@ } } -\title{Warm Up: Odd dice} +\title{Warm Up: Odd Dice} \uptitler{\smallurl{}} \subtitle{Prepared by Mark on \today} diff --git a/src/Warm-Ups/Odd Dice/meta.toml b/src/Warm-Ups/Odd Dice/meta.toml new file mode 100644 index 0000000..93cc543 --- /dev/null +++ b/src/Warm-Ups/Odd Dice/meta.toml @@ -0,0 +1,6 @@ +[metadata] +title = "Odd Dice" + +[publish] +handout = true +solutions = true diff --git a/Misc/Warm-Ups/painting.tex b/src/Warm-Ups/Painting/main.tex similarity index 93% rename from Misc/Warm-Ups/painting.tex rename to src/Warm-Ups/Painting/main.tex index c992a81..93f0bd4 100755 --- a/Misc/Warm-Ups/painting.tex +++ b/src/Warm-Ups/Painting/main.tex @@ -2,10 +2,10 @@ solutions, singlenumbering, nopagenumber -]{../../resources/ormc_handout} -\usepackage{../../resources/macros} +]{../../../lib/tex/ormc_handout} +\usepackage{../../../lib/tex/macros} -\title{Warm-Up: Painting} +\title{Warm-Up: The Painting} \uptitler{\smallurl{}} \subtitle{Prepared by Mark on \today.} @@ -25,8 +25,6 @@ \begin{center} \begin{tikzpicture}[scale=2.0] - - \draw[line width = 0.5mm] (0, 1) -- (2, 1) -- @@ -62,8 +60,6 @@ \fill[color=white] (0.66, 0.66) circle[radius = 0.8mm]; \draw (0.66, 0.66) circle[radius = 0.8mm]; - - \end{tikzpicture} \end{center} diff --git a/src/Warm-Ups/Painting/meta.toml b/src/Warm-Ups/Painting/meta.toml new file mode 100644 index 0000000..85587d2 --- /dev/null +++ b/src/Warm-Ups/Painting/meta.toml @@ -0,0 +1,6 @@ +[metadata] +title = "The Painting" + +[publish] +handout = true +solutions = true diff --git a/Misc/Warm-Ups/partitions.tex b/src/Warm-Ups/Partition Products/main.tex similarity index 95% rename from Misc/Warm-Ups/partitions.tex rename to src/Warm-Ups/Partition Products/main.tex index 3e1d751..a440b7e 100755 --- a/Misc/Warm-Ups/partitions.tex +++ b/src/Warm-Ups/Partition Products/main.tex @@ -2,8 +2,8 @@ solutions, singlenumbering, nopagenumber -]{../../resources/ormc_handout} -\usepackage{../../resources/macros} +]{../../../lib/tex/ormc_handout} +\usepackage{../../../lib/tex/macros} \title{Warm-Up: Partition Products} diff --git a/src/Warm-Ups/Partition Products/meta.toml b/src/Warm-Ups/Partition Products/meta.toml new file mode 100644 index 0000000..7ce2d2c --- /dev/null +++ b/src/Warm-Ups/Partition Products/meta.toml @@ -0,0 +1,6 @@ +[metadata] +title = "Partition Products" + +[publish] +handout = true +solutions = true diff --git a/Misc/Warm-Ups/passing.tex b/src/Warm-Ups/Passing Balls/main.tex similarity index 92% rename from Misc/Warm-Ups/passing.tex rename to src/Warm-Ups/Passing Balls/main.tex index 4c23ddc..4a57dc1 100755 --- a/Misc/Warm-Ups/passing.tex +++ b/src/Warm-Ups/Passing Balls/main.tex @@ -2,12 +2,12 @@ solutions, singlenumbering, nopagenumber -]{../../resources/ormc_handout} -\usepackage{../../resources/macros} +]{../../../lib/tex/ormc_handout} +\usepackage{../../../lib/tex/macros} \usepackage{graphicx} -\title{Warm-Up: Passing balls} +\title{Warm-Up: Passing Balls} \uptitler{\smallurl{}} \subtitle{Prepared by Mark on \today} diff --git a/src/Warm-Ups/Passing Balls/meta.toml b/src/Warm-Ups/Passing Balls/meta.toml new file mode 100644 index 0000000..4027d2b --- /dev/null +++ b/src/Warm-Ups/Passing Balls/meta.toml @@ -0,0 +1,6 @@ +[metadata] +title = "Passing Balls" + +[publish] +handout = true +solutions = true diff --git a/Misc/Warm-Ups/pass-sol.png b/src/Warm-Ups/Passing Balls/pass-sol.png similarity index 100% rename from Misc/Warm-Ups/pass-sol.png rename to src/Warm-Ups/Passing Balls/pass-sol.png diff --git a/Misc/Warm-Ups/primes.tex b/src/Warm-Ups/Prime Factors/main.tex similarity index 87% rename from Misc/Warm-Ups/primes.tex rename to src/Warm-Ups/Prime Factors/main.tex index dbeaac4..4f5a400 100755 --- a/Misc/Warm-Ups/primes.tex +++ b/src/Warm-Ups/Prime Factors/main.tex @@ -3,8 +3,8 @@ singlenumbering, nopagenumber, hidewarning -]{../../resources/ormc_handout} -\usepackage{../../resources/macros} +]{../../../lib/tex/ormc_handout} +\usepackage{../../../lib/tex/macros} \title{Warm-Up: Prime Factors} \uptitler{\smallurl{}} diff --git a/src/Warm-Ups/Prime Factors/meta.toml b/src/Warm-Ups/Prime Factors/meta.toml new file mode 100644 index 0000000..dd92f66 --- /dev/null +++ b/src/Warm-Ups/Prime Factors/meta.toml @@ -0,0 +1,6 @@ +[metadata] +title = "Prime Factors" + +[publish] +handout = true +solutions = false diff --git a/Misc/Warm-Ups/regex.tex b/src/Warm-Ups/Regex Warm-Up/main.tex similarity index 97% rename from Misc/Warm-Ups/regex.tex rename to src/Warm-Ups/Regex Warm-Up/main.tex index b9e4e74..a8f48e7 100644 --- a/Misc/Warm-Ups/regex.tex +++ b/src/Warm-Ups/Regex Warm-Up/main.tex @@ -1,14 +1,13 @@ \documentclass[ solutions, hidewarning, -]{../../resources/ormc_handout} -\usepackage{../../resources/macros} +]{../../../lib/tex/ormc_handout} +\usepackage{../../../lib/tex/macros} \usepackage{xcolor} \usepackage{soul} \usepackage{hyperref} -\usepackage[T1]{fontenc} % Fixes texttt braces \definecolor{Light}{gray}{.90} \sethlcolor{Light} @@ -145,14 +144,8 @@ \item A sentence that does not start with a capital letter. \end{enumerate} - - \vfill - - - - \problem{} If you'd like to know more, check out \url{https://regexr.com}. It offers an interactive regex prompt, as well as a cheatsheet that explains every other regex token there is. \par You will find a nice set of challenges at \url{https://alf.nu/RegexGolf}. diff --git a/src/Warm-Ups/Regex Warm-Up/meta.toml b/src/Warm-Ups/Regex Warm-Up/meta.toml new file mode 100644 index 0000000..7ac3a8e --- /dev/null +++ b/src/Warm-Ups/Regex Warm-Up/meta.toml @@ -0,0 +1,6 @@ +[metadata] +title = "The Regex Warm-Up" + +[publish] +handout = true +solutions = false diff --git a/Misc/Warm-Ups/rootbound.tex b/src/Warm-Ups/Rootbound/main.tex similarity index 98% rename from Misc/Warm-Ups/rootbound.tex rename to src/Warm-Ups/Rootbound/main.tex index 6827ca4..185dadf 100755 --- a/Misc/Warm-Ups/rootbound.tex +++ b/src/Warm-Ups/Rootbound/main.tex @@ -3,8 +3,8 @@ hidewarning, singlenumbering, nopagenumber -]{../../resources/ormc_handout} -\usepackage{../../resources/macros} +]{../../../lib/tex/ormc_handout} +\usepackage{../../../lib/tex/macros} \def\utri#1#2{ \draw (#1,#2) -- ++(60:1) -- ++(-60:1) -- cycle; diff --git a/src/Warm-Ups/Rootbound/meta.toml b/src/Warm-Ups/Rootbound/meta.toml new file mode 100644 index 0000000..0206584 --- /dev/null +++ b/src/Warm-Ups/Rootbound/meta.toml @@ -0,0 +1,6 @@ +[metadata] +title = "Rootbound" + +[publish] +handout = true +solutions = false diff --git a/Misc/Warm-Ups/raid.tex b/src/Warm-Ups/Sysadmin's Warm-Up/main.tex similarity index 96% rename from Misc/Warm-Ups/raid.tex rename to src/Warm-Ups/Sysadmin's Warm-Up/main.tex index bce4d0d..850ff53 100755 --- a/Misc/Warm-Ups/raid.tex +++ b/src/Warm-Ups/Sysadmin's Warm-Up/main.tex @@ -3,8 +3,8 @@ hidewarning, singlenumbering, nopagenumber -]{../../resources/ormc_handout} -\usepackage{../../resources/macros} +]{../../../lib/tex/ormc_handout} +\usepackage{../../../lib/tex/macros} diff --git a/src/Warm-Ups/Sysadmin's Warm-Up/meta.toml b/src/Warm-Ups/Sysadmin's Warm-Up/meta.toml new file mode 100644 index 0000000..e7dabe0 --- /dev/null +++ b/src/Warm-Ups/Sysadmin's Warm-Up/meta.toml @@ -0,0 +1,6 @@ +[metadata] +title = "The Sysadmin's Warm-Up" + +[publish] +handout = true +solutions = false diff --git a/Misc/Warm-Ups/travellers.tex b/src/Warm-Ups/Travellers/main.tex similarity index 93% rename from Misc/Warm-Ups/travellers.tex rename to src/Warm-Ups/Travellers/main.tex index 39e222c..cc38713 100755 --- a/Misc/Warm-Ups/travellers.tex +++ b/src/Warm-Ups/Travellers/main.tex @@ -2,8 +2,8 @@ solutions, singlenumbering, nopagenumber -]{../../resources/ormc_handout} -\usepackage{../../resources/macros} +]{../../../lib/tex/ormc_handout} +\usepackage{../../../lib/tex/macros} \title{Warm-Up: Travellers} \uptitler{\smallurl{}} diff --git a/src/Warm-Ups/Travellers/meta.toml b/src/Warm-Ups/Travellers/meta.toml new file mode 100644 index 0000000..6da7493 --- /dev/null +++ b/src/Warm-Ups/Travellers/meta.toml @@ -0,0 +1,6 @@ +[metadata] +title = "Travellers" + +[publish] +handout = true +solutions = true diff --git a/Misc/Warm-Ups/ast.tex b/src/Warm-Ups/What's an AST/main.tex similarity index 92% rename from Misc/Warm-Ups/ast.tex rename to src/Warm-Ups/What's an AST/main.tex index 32813aa..39dd677 100755 --- a/Misc/Warm-Ups/ast.tex +++ b/src/Warm-Ups/What's an AST/main.tex @@ -3,8 +3,8 @@ hidewarning, singlenumbering, nopagenumber -]{../../resources/ormc_handout} -\usepackage{../../resources/macros} +]{../../../lib/tex/ormc_handout} +\usepackage{../../../lib/tex/macros} \usepackage[linguistics]{forest} diff --git a/src/Warm-Ups/What's an AST/meta.toml b/src/Warm-Ups/What's an AST/meta.toml new file mode 100644 index 0000000..ee63eb3 --- /dev/null +++ b/src/Warm-Ups/What's an AST/meta.toml @@ -0,0 +1,6 @@ +[metadata] +title = "What's an AST?" + +[publish] +handout = true +solutions = false diff --git a/Misc/Warm-Ups/wild ttt.tex b/src/Warm-Ups/Wild Tic-Tac-Toe/main.tex similarity index 95% rename from Misc/Warm-Ups/wild ttt.tex rename to src/Warm-Ups/Wild Tic-Tac-Toe/main.tex index 93e7052..b006ae0 100755 --- a/Misc/Warm-Ups/wild ttt.tex +++ b/src/Warm-Ups/Wild Tic-Tac-Toe/main.tex @@ -3,8 +3,8 @@ hidewarning, singlenumbering, nopagenumber -]{../../resources/ormc_handout} -\usepackage{../../resources/macros} +]{../../../lib/tex/ormc_handout} +\usepackage{../../../lib/tex/macros} % x,y,scale,style \def\ttt#1#2#3#4{ diff --git a/src/Warm-Ups/Wild Tic-Tac-Toe/meta.toml b/src/Warm-Ups/Wild Tic-Tac-Toe/meta.toml new file mode 100644 index 0000000..be38d96 --- /dev/null +++ b/src/Warm-Ups/Wild Tic-Tac-Toe/meta.toml @@ -0,0 +1,6 @@ +[metadata] +title = "Wild Tic-Tac-Toe" + +[publish] +handout = true +solutions = false diff --git a/Misc/Warm-Ups/furniture.tex b/src/Warm-Ups/Zeno's Furniture/main.tex similarity index 98% rename from Misc/Warm-Ups/furniture.tex rename to src/Warm-Ups/Zeno's Furniture/main.tex index 469c0a3..5b696d4 100755 --- a/Misc/Warm-Ups/furniture.tex +++ b/src/Warm-Ups/Zeno's Furniture/main.tex @@ -2,8 +2,8 @@ solutions, singlenumbering, nopagenumber -]{../../resources/ormc_handout} -\usepackage{../../resources/macros} +]{../../../lib/tex/ormc_handout} +\usepackage{../../../lib/tex/macros} \makeatletter diff --git a/src/Warm-Ups/Zeno's Furniture/meta.toml b/src/Warm-Ups/Zeno's Furniture/meta.toml new file mode 100644 index 0000000..7fd5552 --- /dev/null +++ b/src/Warm-Ups/Zeno's Furniture/meta.toml @@ -0,0 +1,6 @@ +[metadata] +title = "Zeno's Furniture" + +[publish] +handout = true +solutions = true diff --git a/Misc/Warm-Ups/fmod.tex b/src/Warm-Ups/fmod/main.tex similarity index 84% rename from Misc/Warm-Ups/fmod.tex rename to src/Warm-Ups/fmod/main.tex index 0f2b180..693d94e 100755 --- a/Misc/Warm-Ups/fmod.tex +++ b/src/Warm-Ups/fmod/main.tex @@ -3,8 +3,8 @@ hidewarning, singlenumbering, nopagenumber -]{../../resources/ormc_handout} -\usepackage{../../resources/macros} +]{../../../lib/tex/ormc_handout} +\usepackage{../../../lib/tex/macros} \title{Warm-Up: \texttt{fmod}} diff --git a/src/Warm-Ups/fmod/meta.toml b/src/Warm-Ups/fmod/meta.toml new file mode 100644 index 0000000..f031491 --- /dev/null +++ b/src/Warm-Ups/fmod/meta.toml @@ -0,0 +1,6 @@ +[metadata] +title = "fmod" + +[publish] +handout = true +solutions = false diff --git a/Misc/Warm-Ups/gear.svg b/src/Warm-Ups/gear.svg similarity index 100% rename from Misc/Warm-Ups/gear.svg rename to src/Warm-Ups/gear.svg diff --git a/Misc/Warm-Ups/sin.tex b/src/Warm-Ups/sin.tex similarity index 93% rename from Misc/Warm-Ups/sin.tex rename to src/Warm-Ups/sin.tex index a520635..b9e92fb 100755 --- a/Misc/Warm-Ups/sin.tex +++ b/src/Warm-Ups/sin.tex @@ -2,8 +2,8 @@ solutions, singlenumbering, nopagenumber -]{../../resources/ormc_handout} -\usepackage{../../resources/macros} +]{../../../lib/tex/ormc_handout} +\usepackage{../../../lib/tex/macros} \title{Warm-Up: Exact answers} diff --git a/Misc/Warm-Ups/snake.tex b/src/Warm-Ups/snake.tex similarity index 98% rename from Misc/Warm-Ups/snake.tex rename to src/Warm-Ups/snake.tex index 8c286f3..9c8cb01 100755 --- a/Misc/Warm-Ups/snake.tex +++ b/src/Warm-Ups/snake.tex @@ -2,8 +2,8 @@ solutions, singlenumbering, nopagenumber -]{../../resources/ormc_handout} -\usepackage{../../resources/macros} +]{../../../lib/tex/ormc_handout} +\usepackage{../../../lib/tex/macros} \usepackage{ifthen} diff --git a/Misc/Warm-Ups/turing.tex b/src/Warm-Ups/turing.tex similarity index 97% rename from Misc/Warm-Ups/turing.tex rename to src/Warm-Ups/turing.tex index 14ef534..8f1353b 100755 --- a/Misc/Warm-Ups/turing.tex +++ b/src/Warm-Ups/turing.tex @@ -3,8 +3,8 @@ hidewarning, singlenumbering, nopagenumber -]{../../resources/ormc_handout} -\usepackage{../../resources/macros} +]{../../../lib/tex/ormc_handout} +\usepackage{../../../lib/tex/macros} \title{Warm-Up: Turing Machine} diff --git a/tools/build/main.py b/tools/build/main.py new file mode 100644 index 0000000..c33bfbd --- /dev/null +++ b/tools/build/main.py @@ -0,0 +1,307 @@ +from typing import TypedDict +from pathlib import Path +import subprocess +import tomllib +import shutil +import json +import os + +# TODO: +# list handouts without solutions +# list handouts that are not published +# lint: always commit without `nosolutions` +# use latexmk + +ROOT: Path = Path(os.getcwd()) + +### CONFIGURATION +OUT_DIR: Path = ROOT / "output" +TYPST_PATH: str = "typst" +XETEX_PATH: str = "xelatex" +### END CONFIGURATION + +# Allow path override +_env = os.environ.get("TYPST_PATH") +if isinstance(_env, str): + TYPST_PATH = _env + + +def log(msg): + print(f"[BUILD.PY] {msg}") + + +log(f"Running in {ROOT}") +if not ROOT.is_dir(): + log("Root is not a directory, cannot continue") + exit(1) + +log(f"Output dir is {OUT_DIR}") +if OUT_DIR.exists(): + log("Output dir exists, removing") + shutil.rmtree(OUT_DIR) + +OUT_DIR.mkdir(parents=True) + + +IndexEntry = TypedDict( + "IndexEntry", + {"title": str, "group": str, "handout_file": str, "solutions_file": str | None}, +) + + +MetaToml = TypedDict( + "MetaToml", {"title": str, "publish_handout": bool, "publish_solutions": bool} +) + + +def sanitize_file_name(file: str) -> str: + return file.replace("?", "") + + +def read_meta_toml(file: Path) -> MetaToml: + with file.open("rb") as f: + base = tomllib.load(f) + + meta = base.get("metadata") + if not isinstance(meta, dict): + log("Invalid meta.toml: `metadata` should be a table") + exit(1) + + title = meta.get("title") + if not isinstance(title, str): + log("Invalid meta.toml: `title` should be a string") + exit(1) + + pub = base.get("publish") + if not isinstance(pub, dict): + log("Invalid meta.toml: `publish` should be a table") + exit(1) + + pub_handout = pub.get("handout") + if not isinstance(pub_handout, bool): + log("Invalid meta.toml: `publish.handout` should be a boolean") + exit(1) + + pub_solutions = pub.get("solutions") + if not isinstance(pub_solutions, bool): + log("Invalid meta.toml: `publish.solutions` should be a boolean") + exit(1) + + return { + "title": title, + "publish_handout": pub_handout, + "publish_solutions": pub_solutions, + } + + +def log_error(res): + stdout = res.stdout.decode("utf-8").strip() + stderr = res.stderr.decode("utf-8").strip() + + log(f"Build failed with code {res.returncode}") + + if stdout == "": + log("Stdout: ") + else: + log("Stdout:") + print(stdout) + + if stderr == "": + log("Stderr: ") + else: + log("Stderr:") + print(stderr) + + exit(1) + + +def build_typst(source_dir: Path, out_subdir: Path) -> IndexEntry | None: + if not (source_dir / "main.typ").is_file(): + # log(f"No main.typ, skipping {source_dir}") + return None + + meta_path = source_dir / "meta.toml" + if not meta_path.is_file(): + log(f"No meta.toml, skipping {source_dir}") + return None + meta = read_meta_toml(meta_path) + + # Do nothing if not published + if not meta["publish_handout"]: + return None + + # Build handout + log(f"Building typst (handout) : {source_dir}") + + out = OUT_DIR / out_subdir + out.mkdir(parents=True, exist_ok=True) + + file_name = sanitize_file_name(f"{meta['title']}.pdf") + res = subprocess.run( + [ + TYPST_PATH, + "compile", + "--ignore-system-fonts", + "main.typ", + "--input", + "show_solutions=false", + f"{out}/{file_name}", + ], + cwd=source_dir, + stdout=subprocess.PIPE, + stderr=subprocess.PIPE, + ) + + if res.returncode != 0: + log_error(res) + + # Build solutions + if meta["publish_solutions"]: + log(f"Building typst (solutions): {source_dir}") + file_name = sanitize_file_name(f"{meta['title']}.sols.pdf") + res = subprocess.run( + [ + TYPST_PATH, + "compile", + "--ignore-system-fonts", + "main.typ", + f"{out}/{file_name}", + ], + cwd=source_dir, + stdout=subprocess.PIPE, + stderr=subprocess.PIPE, + ) + + if res.returncode != 0: + log_error(res) + + return { + "title": meta["title"], + "group": str(out_subdir), + "handout_file": f"{out_subdir}/{meta['title']}.pdf", + "solutions_file": ( + f"{out_subdir}/{meta['title']}.sols.pdf" + if meta["publish_solutions"] + else None + ), + } + + +def build_xetex(source_dir: Path, out_subdir: Path) -> IndexEntry | None: + if not (source_dir / "main.tex").is_file(): + # log(f"No main.tex, skipping {source_dir}") + return None + + meta_path = source_dir / "meta.toml" + if not meta_path.is_file(): + log(f"No meta.toml, skipping {source_dir}") + return None + meta = read_meta_toml(meta_path) + + # Do nothing if not published + if not meta["publish_handout"]: + return None + + # Build handout + log(f"Building xetex (handout) : {source_dir}") + + out = OUT_DIR / out_subdir + out.mkdir(parents=True, exist_ok=True) + + res = subprocess.run( + [ + XETEX_PATH, + "-interaction=batchmode", + ], + input=b"\\def\\argNoSolutions{1}\\input{main.tex}", + cwd=source_dir, + stdout=subprocess.PIPE, + stderr=subprocess.PIPE, + ) + + file_name = sanitize_file_name(f"{meta['title']}.pdf") + try: + shutil.copy(source_dir / "main.pdf", f"{out}/{file_name}") + except Exception as e: + log(f"Error: {e}") + log_error(res) + + if res.returncode != 0: + log_error(res) + + # Build solutions + if meta["publish_solutions"]: + log(f"Building xetex (solutions): {source_dir}") + res = subprocess.run( + [ + XETEX_PATH, + "-interaction=batchmode", + ], + input=b"\\def\\argYesSolutions{1}\\input{main.tex}", + cwd=source_dir, + stdout=subprocess.PIPE, + stderr=subprocess.PIPE, + ) + + file_name = sanitize_file_name(f"{meta['title']}.sols.pdf") + try: + shutil.copy(source_dir / "main.pdf", f"{out}/{file_name}") + except Exception as e: + log(f"Error: {e}") + log_error(res) + + if res.returncode != 0: + log_error(res) + + return { + "title": meta["title"], + "group": str(out_subdir), + "handout_file": f"{out_subdir}/{meta['title']}.pdf", + "solutions_file": ( + f"{out_subdir}/{meta['title']}.sols.pdf" + if meta["publish_solutions"] + else None + ), + } + + +# Try to build handouts in all subdirs of `base`, +# skipping those that do not contain a handout. +# +# This method does _not_ recurse into subdirectories. +def build_dir(base: str, out_sub: str, index: list[IndexEntry]): + builders = [build_typst, build_xetex] + + for d_str in os.listdir(base): + d = base / Path(d_str) + if not d.is_dir(): + continue + + # Try each builder, + # stopping at the first success + done = False + for builder in builders: + res = builder(d, Path(out_sub)) + if res is not None: + # Check for duplicate titles + for i in index: + if i["title"] == res["title"]: + log(f'Duplicate title "{i["title"]}", cannot continue') + exit(1) + # Save to index and exit + index.append(res) + done = True + if done: + break + + return index + + +index: list[IndexEntry] = [] + +index.extend(build_dir("src/Advanced", "Advanced", index)) +index.extend(build_dir("src/Intermediate", "Intermediate", index)) +index.extend(build_dir("src/Warm-Ups", "Warm-Ups", index)) + +with open(OUT_DIR / "index.json", "w") as f: + f.write(json.dumps(index)) diff --git a/tools/build/ruff.toml b/tools/build/ruff.toml new file mode 100644 index 0000000..f110dc4 --- /dev/null +++ b/tools/build/ruff.toml @@ -0,0 +1,17 @@ +exclude = ["venv"] +line-length = 88 +indent-width = 4 +target-version = "py39" + +[lint] +select = ["E4", "E7", "E9", "F"] +ignore = [] +fixable = ["ALL"] +unfixable = [] +dummy-variable-rgx = "^(_+|(_+[a-zA-Z0-9_]*[a-zA-Z0-9]+?))$" + +[format] +quote-style = "double" +indent-style = "tab" +skip-magic-trailing-comma = false +line-ending = "lf" diff --git a/tools/meta.toml b/tools/meta.toml new file mode 100644 index 0000000..8147e05 --- /dev/null +++ b/tools/meta.toml @@ -0,0 +1,23 @@ +# This is a sample `meta.toml`. +# A copy of this file should exist in every handout directory. +# +# All keys are required. + +[metadata] +title = "title of this handout" + + +[publish] +# Should we publish this handout? +# If `false`, no part of this handout is published. +# (useful for drafts) +handout = true + +# Should we publish an "instructor's" version of this handout? +# This has no effect if `publish.handout == false`. +# +# If `true`, publish a version of this handout with solutions. +# If `false`, do not publish a handout with solutions. +# +# Set this to `false` if solutions have not been written. +solutions = true diff --git a/typos.toml b/tools/typos.toml similarity index 100% rename from typos.toml rename to tools/typos.toml