summaryrefslogtreecommitdiff
path: root/macros/latex/contrib/homework/homework.cls
diff options
context:
space:
mode:
Diffstat (limited to 'macros/latex/contrib/homework/homework.cls')
-rw-r--r--macros/latex/contrib/homework/homework.cls51
1 files changed, 46 insertions, 5 deletions
diff --git a/macros/latex/contrib/homework/homework.cls b/macros/latex/contrib/homework/homework.cls
index 3af754dd25..29f2227f9f 100644
--- a/macros/latex/contrib/homework/homework.cls
+++ b/macros/latex/contrib/homework/homework.cls
@@ -12,7 +12,7 @@
\NeedsTeXFormat{LaTeX2e}[2022-06-01]
\ProvidesExplClass
{homework}
- {2023/09/30} {}
+ {2023/10/01} {}
{Document class for writing homework}
\keys_define:nn { homework }
@@ -31,6 +31,20 @@
, formal~title .bool_set:N = \l__homework_formal_title_bool
, formal title .bool_set:N = \l__homework_formal_title_bool
+ , colored-solution .tl_set:N = \l__homework_solution_color_tl
+ , colored-solution .initial:n = { main-text }
+ , colored-solution .default:n = { cyan!50!blue!90!main-text }
+ , colored~solution .tl_set:N = \l__homework_solution_color_tl
+ , colored~solution .default:n = { cyan!50!blue!90!main-text }
+ , colored solution .tl_set:N = \l__homework_solution_color_tl
+ , colored solution .default:n = { cyan!50!blue!90!main-text }
+ , colored-answer .tl_set:N = \l__homework_solution_color_tl
+ , colored-answer .default:n = { cyan!50!blue!90!main-text }
+ , colored~answer .tl_set:N = \l__homework_solution_color_tl
+ , colored~answer .default:n = { cyan!50!blue!90!main-text }
+ , colored answer .tl_set:N = \l__homework_solution_color_tl
+ , colored answer .default:n = { cyan!50!blue!90!main-text }
+
, hide-solution .bool_set:N = \l__homework_hide_solution_bool
, hide-solution .initial:n = { false }
, hide~solution .bool_set:N = \l__homework_hide_solution_bool
@@ -39,6 +53,11 @@
, hide~answer .bool_set:N = \l__homework_hide_solution_bool
, hide answer .bool_set:N = \l__homework_hide_solution_bool
+ , remove-qed .bool_set:N = \l__homework_no_qed_bool
+ , remove-qed .initial:n = { false }
+ , remove~qed .bool_set:N = \l__homework_no_qed_bool
+ , remove qed .bool_set:N = \l__homework_no_qed_bool
+
, unknown .code:n = {
\PassOptionsToClass { \CurrentOption } { minimart }
\PassOptionsToClass { \CurrentOption } { einfart }
@@ -53,11 +72,19 @@
\sys_if_engine_pdftex:TF
{
- \PassOptionsToClass { use indent = false, theorem with qed } { minimart }
+ \bool_if:NF \l__homework_no_qed_bool
+ {
+ \PassOptionsToClass { theorem with qed } { minimart }
+ }
+ \PassOptionsToClass { use indent = false } { minimart }
\LoadClass { minimart }
}
{
- \PassOptionsToClass { use indent = false, theorem with qed } { einfart }
+ \bool_if:NF \l__homework_no_qed_bool
+ {
+ \PassOptionsToClass { theorem with qed } { einfart }
+ }
+ \PassOptionsToClass { use indent = false } { einfart }
\LoadClass { einfart }
}
@@ -213,13 +240,27 @@
, RU = { Ответ }
}
+\newlist{soluenumerate}{enumerate}{3}
+\setlist[soluenumerate]{labelsep=*, leftmargin=*}
+\setlist[soluenumerate,1]{label = \normalfont$\big(\mskip-.5mu$\arabic*$\mskip-.5mu\big)$,
+ ref = \normalfont\color{.!45!paper}$\big(\mskip-.5mu$\arabic*$\mskip-.5mu\big)$,
+ leftmargin= \l__minimalist_item_indentation_dim + 2em }
+\setlist[soluenumerate,2]{label = \normalfont$\big(\mskip-.5mu$\roman*$\mskip-.5mu\big)$,
+ ref = \normalfont\color{.!45!paper}$\big(\mskip-.5mu$\arabic{soluenumeratei}.\roman*$\mskip-.5mu\big)$}
+\setlist[soluenumerate,3]{label = \normalfont$\big(\mskip-.5mu$\emph{\alph*}$\mskip-.5mu\big)$,
+ ref = \normalfont\color{.!45!paper}$\big(\mskip-.5mu$\arabic{soluenumeratei}.\roman{soluenumerateii}.\emph{\alph*}$\mskip-.5mu\big)$}
+
\newcommand\soluline{\bgroup\markoverwith{\rule[-.45ex]{1pt}{.75pt}}\ULon}
\NewDocumentEnvironment { solution } { O{ \l__homework_solution_tl } }
{
\par
\topsep0\p@\relax
+ \let\enumerate\soluenumerate
+ \let\endenumerate\endsoluenumerate
+ \setlist*[1]{itemsep=0\baselineskip, parsep=.5\parskip}
+ \setlist*[2]{itemsep=0\baselineskip, parsep=.5\parskip}
\trivlist
- \color{cyan!50!blue!90!main-text}
+ \color{\l__homework_solution_color_tl}
\item[\hskip\labelsep\soluline{#1}\nobreakspace\nobreakspace]
\let\qedsymbol\customqedsymbol
\ignorespaces
@@ -278,7 +319,7 @@
\setlist*[2]{itemsep=0\baselineskip, parsep=\parskip}
}
{
- \setlist*[1]{itemsep=.5\baselineskip, parsep=\parskip}
+ \setlist*[1]{itemsep=.5\baselineskip, parsep=\parskip, after*=\medskip}
\setlist*[2]{itemsep=.3\baselineskip, parsep=\parskip}
}