Cleanup
This commit is contained in:
parent
83b273fbd3
commit
39572e264d
@ -1,194 +0,0 @@
|
|||||||
% use [nosolutions] flag to hide solutions.
|
|
||||||
% use [solutions] flag to show solutions.
|
|
||||||
\documentclass[
|
|
||||||
solutions
|
|
||||||
]{../resources/ormc_handout}
|
|
||||||
|
|
||||||
|
|
||||||
\NewDocumentCommand{\p}{ m m }{
|
|
||||||
\problem{}
|
|
||||||
\getproblem{#1}{#2}
|
|
||||||
|
|
||||||
\ifsolution{#1}{#2}{
|
|
||||||
\begin{solution}
|
|
||||||
\getsolution{#1}{#2}
|
|
||||||
\end{solution}
|
|
||||||
}[
|
|
||||||
\ifanswer{#1}{#2}{
|
|
||||||
{\color{red}\textbf{Solution:}} \getanswer{#1}{#2}
|
|
||||||
}
|
|
||||||
]
|
|
||||||
|
|
||||||
\vfill
|
|
||||||
}
|
|
||||||
|
|
||||||
% Defines a new problem.
|
|
||||||
% See problem definition files for usage examples.
|
|
||||||
\long\def\problemdef#1#2#3{
|
|
||||||
\ifcsname#1:problem:#2\endcsname
|
|
||||||
\PackageError{Problem Sets}{Problem #1:#2 is already defined}{}
|
|
||||||
\fi
|
|
||||||
|
|
||||||
% Use a group to limit scope of special commands.
|
|
||||||
\begingroup
|
|
||||||
|
|
||||||
% \gdef = \global\def
|
|
||||||
% This makes problem definitions global, and not restricted to this group.
|
|
||||||
%
|
|
||||||
% ##1: used to define parametrized macros in a parametrized macro.
|
|
||||||
% When \problemdef is expanded, ##1 becomes #1.
|
|
||||||
%
|
|
||||||
% \long\def: like \def, but allows multi-paragraph arguments
|
|
||||||
% \def\name#1{def: #1}: define a macro \name with one arg. TeX primitive.
|
|
||||||
%
|
|
||||||
% We don't use \newcommand or \renewcommand here because they will fail if
|
|
||||||
% a macro is defined/not defined. \def will always work, defining a new name
|
|
||||||
% in this group, temporarily redefining existing commands.
|
|
||||||
%
|
|
||||||
% \expandafter <macro> <tokens>
|
|
||||||
% \expandafter command delays expanding a macro until its arguments have been expanded.
|
|
||||||
\long\def\difficulty##1{\expandafter\gdef\csname#1:difficulty:#2\endcsname{##1}}
|
|
||||||
\long\def\statement##1{\expandafter\gdef\csname#1:problem:#2\endcsname{##1}}
|
|
||||||
\long\def\solution##1{\expandafter\gdef\csname#1:solution:#2\endcsname{##1}}
|
|
||||||
\long\def\answer##1{\expandafter\gdef\csname#1:answer:#2\endcsname{##1}}
|
|
||||||
|
|
||||||
#3
|
|
||||||
|
|
||||||
\endgroup
|
|
||||||
|
|
||||||
\ifcsname#1:all\endcsname
|
|
||||||
\expandafter\edef\csname#1:all\endcsname{\csname#1:all\endcsname \p{#1}{#2}}
|
|
||||||
\else
|
|
||||||
\expandafter\gdef\csname#1:all\endcsname{
|
|
||||||
\p{#1}{#2}
|
|
||||||
}
|
|
||||||
\fi
|
|
||||||
}
|
|
||||||
|
|
||||||
\input{problems/numbertheory}
|
|
||||||
\input{problems/algebra}
|
|
||||||
\input{problems/combinatorics}
|
|
||||||
\input{problems/pidgeonhole}
|
|
||||||
|
|
||||||
% Gets problem data.
|
|
||||||
% Arguments:
|
|
||||||
% #1: Category
|
|
||||||
% #2: Problem id
|
|
||||||
% #3: Field to get
|
|
||||||
\NewDocumentCommand{\get}{ m m m }{
|
|
||||||
\ifcsname#1:#3:#2\endcsname
|
|
||||||
\csname#1:#3:#2\endcsname
|
|
||||||
\else
|
|
||||||
\PackageError{Problem Sets}{Problem #1:#2 is not defined}{}
|
|
||||||
\fi
|
|
||||||
}
|
|
||||||
\NewDocumentCommand{\getdifficulty}{ m m }{\get{#1}{#2}{difficulty}}
|
|
||||||
\NewDocumentCommand{\getproblem}{ m m }{\get{#1}{#2}{problem}}
|
|
||||||
|
|
||||||
|
|
||||||
% #1: Category
|
|
||||||
% #2: Problem id
|
|
||||||
% #3: Show if this problem has an answer
|
|
||||||
% #4: Show if this problem doesn't have an answer
|
|
||||||
\NewDocumentCommand{\ifanswer}{ m m m d[]}{
|
|
||||||
\ifcsname#1:answer:#2\endcsname
|
|
||||||
#3
|
|
||||||
\else
|
|
||||||
\IfNoValueF{#4}{#4}
|
|
||||||
\fi
|
|
||||||
}
|
|
||||||
\NewDocumentCommand{\ifsolution}{ m m m d[]}{
|
|
||||||
\ifcsname#1:solution:#2\endcsname
|
|
||||||
#3
|
|
||||||
\else
|
|
||||||
\IfNoValueF{#4}{#4}
|
|
||||||
\fi
|
|
||||||
}
|
|
||||||
|
|
||||||
\NewDocumentCommand{\getanswer}{ m m }{
|
|
||||||
\ifanswer{#1}{#2}{
|
|
||||||
\get{#1}{#2}{answer}
|
|
||||||
}[
|
|
||||||
\PackageError{Problem Sets}{Problem #1:#2 has no answer}{}
|
|
||||||
]
|
|
||||||
}
|
|
||||||
|
|
||||||
\NewDocumentCommand{\getsolution}{ m m }{
|
|
||||||
\ifsolution{#1}{#2}{
|
|
||||||
\get{#1}{#2}{solution}
|
|
||||||
}[
|
|
||||||
\PackageError{Problem Sets}{Problem #1:#2 has no solution}{}
|
|
||||||
]
|
|
||||||
}
|
|
||||||
|
|
||||||
%\makeatletter
|
|
||||||
%\newcommand{\shoppinglist}[1]{Shopping list: #1\checknextarg}
|
|
||||||
%\newcommand{\checknextarg}{\@ifnextchar\bgroup{\gobblenextarg}{ and that's all!}}
|
|
||||||
%\newcommand{\gobblenextarg}[1]{ and also #1\@ifnextchar\bgroup%{\gobblenextarg}{ and that's all!}}
|
|
||||||
%\makeatother
|
|
||||||
|
|
||||||
\newcommand{\q}[1]{
|
|
||||||
\csname#1:all\endcsname
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
\begin{document}
|
|
||||||
|
|
||||||
\q{Algebra}
|
|
||||||
|
|
||||||
\maketitle
|
|
||||||
<Advanced 2>
|
|
||||||
<Winter 2022>
|
|
||||||
{Finite Automata}
|
|
||||||
{Prepared by Mark and Nikita on \today}
|
|
||||||
|
|
||||||
|
|
||||||
\section{Number Theory}
|
|
||||||
\p{NumberTheory}{1}
|
|
||||||
\p{NumberTheory}{2}
|
|
||||||
\p{NumberTheory}{3}
|
|
||||||
\p{NumberTheory}{4}
|
|
||||||
\p{NumberTheory}{5}
|
|
||||||
|
|
||||||
\pagebreak
|
|
||||||
|
|
||||||
\section{Algebra}
|
|
||||||
\p{Algebra}{1}
|
|
||||||
\p{Algebra}{2}
|
|
||||||
\p{Algebra}{3}
|
|
||||||
\p{Algebra}{4}
|
|
||||||
\p{Algebra}{5}
|
|
||||||
|
|
||||||
\pagebreak
|
|
||||||
|
|
||||||
\section{Combinatorics}
|
|
||||||
\p{Combinatorics}{1}
|
|
||||||
\p{Combinatorics}{2}
|
|
||||||
\p{Combinatorics}{3}
|
|
||||||
\p{Combinatorics}{4}
|
|
||||||
\p{Combinatorics}{5}
|
|
||||||
|
|
||||||
\pagebreak
|
|
||||||
|
|
||||||
\section{Pidgeonhole}
|
|
||||||
\p{Pidgeonhole}{1}
|
|
||||||
\p{Pidgeonhole}{2}
|
|
||||||
\p{Pidgeonhole}{3}
|
|
||||||
\p{Pidgeonhole}{4}
|
|
||||||
\p{Pidgeonhole}{5}
|
|
||||||
\p{Pidgeonhole}{6}
|
|
||||||
\p{Pidgeonhole}{7}
|
|
||||||
\p{Pidgeonhole}{8}
|
|
||||||
\p{Pidgeonhole}{9}
|
|
||||||
\p{Pidgeonhole}{10}
|
|
||||||
\p{Pidgeonhole}{11}
|
|
||||||
\p{Pidgeonhole}{12}
|
|
||||||
\p{Pidgeonhole}{13}
|
|
||||||
\p{Pidgeonhole}{14}
|
|
||||||
\p{Pidgeonhole}{15}
|
|
||||||
\p{Pidgeonhole}{16}
|
|
||||||
\p{Pidgeonhole}{17}
|
|
||||||
\p{Pidgeonhole}{18}
|
|
||||||
\p{Pidgeonhole}{19}
|
|
||||||
|
|
||||||
\end{document}
|
|
Loading…
x
Reference in New Issue
Block a user